feat(stmate-test): REA MCP(Ghidra) 변경 차수·잔여 재검증 — 변경 4차 = 계열 5 · 할증 계수 4바이트 실수 · 손료 계수 칸 걷음 · 강제금액 = JDL 변환 · JDL 고정폭 형식
- 변경 차수 상한 4차(K_ORD>4 거부) · 4차 = 5번째 칸(MCOST5·XX5NM·QTY5) - 할증 계수 float32 — 70%·115% 1원 적음 - 손료 E0~E3 = 조달청 XML 구분값뿐 · 계수 곱 없음 - jdl_format.py — 13종 자르는 자리 · 단가 목록 8종 열 이름 · 줄 만들기·읽기·검사 - 지식DB 34번 §17 · REA_MCP_보강 근거 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -114,3 +114,7 @@ REA 6.7.0 / Ghidra 12.1.4 / 기존 JDK 21.0.7. Ghidra는 LOCALAPPDATA/STMATE-REA
|
||||
- 2026-11-14 33_기성준공단계_작업자료 — 칸 1 계약·2 누계·3 전회·4 금회 · 회차 등록(전회<-누계) · 기성 수량 상한 · 기성 제잡비 계산서(계약잡비율 적용·부가세 4택·절사→이윤 보정·1.1 나눔·1~10원 반복) · 저장(COSTW3/4·[2_/4_KANJUB]) · 0632 인쇄 비율 정적 확인 · 0633~0647 열 산식·준공금액 미해독
|
||||
- 2026-11-14 32단계: [실행예산·계약 변환 정적 분석](32_실행계약단계_작업자료_20261114/32_실행계약단계_정적분석.md) — MROUNDUD 선택 0 절사·1 사사오입 · OPTIMIZ 끝전 배분 · 중기 실행단가(ExecX 0x4da7a8) · 할증(0x511fa8) · TwM_Mk_Cont 옵션·코드 갈래·적용제외·비과세자재대 · SET_REP 0623~0674 열. 바이트 읽기만, 원본 실행 없음.
|
||||
- 2026-11-14 34단계: [설계변경 차수·잔여 계산 정적 분석](34_변경차수_잔여계산_작업자료_20261114/34_변경차수_잔여계산규칙.md) — 차수 콤보 PCLASS 갈래(ST_KanJub 0x46c779) · 직전 계열 되셈 사슬(Main 0x473ade) · 보험료 3모드 문·기본값 · 방법 A/B = 5항목 전용 · 선택축 계산 본체 미사용 · 퇴직공제·건설기계·30일 미만 조회 · 표준시장단가 나눔 · 할증율 · JCD · RXX 갈래 · EXRNM · JDL · 구버전 변환 · 강제금액
|
||||
|
||||
- 2026-11-14 33_기성준공단계 REA MCP 보강 — Ghidra 대조 일치(행 다시 셈·끝전·1~10원 반복·저장·회차 등록) · 수량 상한 해제 = Act_Enabl_OVR6 「누계수량 제한해제」 · [3_KANJUB] = 회차 등록 때 [2_KANJUB] 복사·[4_KANJUB] 지움 · 기성 단가 칸 1(중) · 0633~0647 열 = 인쇄 칸 배열 금액(비율·사정·잔량·준공금액 산식 미발견)
|
||||
- 2026-11-14 32단계 REA MCP 보강(Ghidra 12.1.4): 계약 코드 갈래 교차 확인 · MROUNDUP = 버린 숫자 Ceil 올림 · ITM_TYP 이름표(0x587d9c) · 울진 미변환 = 머리 블록 둘 · 실행예산서 Ⅰ·Ⅱ = Prn_Nae_Cont1·2 줄 고르기 · 0623·0624 = 내역서 인쇄 모듈 · 행 금액 = 공용 행 엔진 · 예상적용율 = 비목 합 근사 되풀이.
|
||||
- 2026-11-14 34단계 REA MCP 보강: [34 §17](34_변경차수_잔여계산_작업자료_20261114/34_변경차수_잔여계산규칙.md) — Ghidra 디컴파일로 직전 계열·보험료 문·표준시장단가·차수 콤보 대조(고칠 것 없음) · 변경 상한 4차 = 계열 5 · 할증율 float32 · 행자부 문턱 · E0~E3 계수 없음 · 강제금액 = JDL 변환 전용 · JDL TEXT 고정폭 자리
|
||||
|
||||
+102
@@ -344,6 +344,8 @@
|
||||
|
||||
## 15. 남은 미확인
|
||||
|
||||
- 17장(REA MCP 보강)에서 계열 5 저장 칸 · 할증율 실수 · 행자부 문턱 · E0~E3 · 강제금액 · JDL 형식이 풀리거나 좁혀짐.
|
||||
|
||||
- 계열 5(K_ORD 4 · PCLASS 7)의 저장 칸.
|
||||
- 0645 변경율 식.
|
||||
- 굴착 양식 금액 칸 계산.
|
||||
@@ -368,3 +370,103 @@
|
||||
- main_438960_RXsel_head · main_50a384_RXXmap · main_EXRNM_437b04_Sconv 등
|
||||
- `JDL_구버전_강제금액/` — 12~14장
|
||||
- jdl_lits_* · ev_conv_jdlcheck · ev_conv_ConvToWin8 · ev_conv_forcedamt 등
|
||||
|
||||
## 17. REA MCP 보강 (rea-agents 6.7.0 · Ghidra 12.1.4 디컴파일)
|
||||
|
||||
- 방법: REA MCP 세션에서 open_binary(provider ghidra) · procedure_pseudo_code · batch_decompile 사용. 원본 실행 없음.
|
||||
- 근거 파일: `REA_MCP_보강/` (Ghidra 의사코드 + evidence JSON · 자르기 자리 · 필드 정의 · 양식 목록).
|
||||
|
||||
### 17.1 앞 판정 대조
|
||||
|
||||
| 항목 | Ghidra 결과 | 판정 |
|
||||
|---|---|---|
|
||||
| 직전 계열 되셈 0x473a9c | `iVar3 = 계열 − 1` · `FUN_0046455c(iVar3,…)` · `FUN_00469dec(iVar3, 0x5e725c + iVar3×0x30, 0)` · +0xc0·+0xdc 옮김 | 1.3 그대로 확인 |
|
||||
| 건강·연금 문 0x469dec | `DAT_005e7474 == 7 && 1 < 계열 && I_BF_CH_BO − 1 < 2` (의사코드 1128줄) · 모드 2 밑수 < 1 → 증감×율 | 2장 그대로 확인 |
|
||||
| 장기요양·퇴직공제 | `I_BF_CH_BO != 2 \|\| 당초 < 1.0` 이면 다시 셈(1780·1928줄) · 퇴직공제 `I_COST_BO == 2` 먼저(1915줄) | 2장 그대로 확인 |
|
||||
| 안전관리비 | `PCLASS != 7 \|\| 계열 < 2 \|\| I_ANJUNAUTO != 2` 이면 비율 안 씀(3103줄) | 3장 그대로 확인 |
|
||||
| 표준시장단가 0x45a468 | `R != 0 \|\| 미리 L == 0` 일 때만 L0·X 계산 · 1 = OPTIMIZ 1번 칸 · 2 = 4번 칸 · 그 밖 MROUNDUD · 나머지 ACTTYP 1 재료 · 2 경비 · 그 밖 넷째 칸 | 6장 그대로 확인 · X 는 double 계산(의사코드의 float 형변환은 디컴파일 표기 · 명령은 `fld dword [100.0f]; fsub qword` · 0x45a4e3) |
|
||||
| 차수 콤보 0x46c1d8 | PCLASS 0·4·5·9→1 · 1·3→2 · 2→2 · 6→1 · 7→K_ORD+1(K_ORD 1~4) 아니면 2 · 8→4 | 1.1·1.2 그대로 확인 |
|
||||
|
||||
- 고칠 것 없음. 다만 1.1 의 「계열 5 저장 칸 미확인」은 17.2 로 풀림.
|
||||
|
||||
### 17.2 변경 4차 저장 칸 — 확인
|
||||
|
||||
- ST_KanJub 0x46c214: `PCLASS == 7 && K_ORD > 4` 이면 「설계변경 내역서의 차수 입력이 잘못 … 1차 ~ 4차까지 가능 합니다」(접미사 배열 [4] = "4") 를 띄우고 화면을 열지 않음.
|
||||
- ST_Prt 0x4b317a~0x4b31e6: `PCLASS 7 · K_ORD ≥ 5` 에 같은 안내 · 인쇄 거부.
|
||||
- ⇒ 변경 차수 상한 = 4차(K_ORD 4) = 계열 5.
|
||||
- 저장 칸(실물 영덕 변경 STC 필드표):
|
||||
- PRJLST: MCOST5 · LCOST5 · SCOST5 · TCOST5 · ACOST5 · COSTW5 · XX5NM
|
||||
- BOQ: QTY5 · MAMT5 · M_AMT5 · LAMT5 · L_AMT5 · SAMT5 · S_AMT5 · TAMT5 · T_AMT5 · AAMT5 · A_AMT5 (EXIST5·BDCODE5 없음)
|
||||
- PRJLST.SMT: `5_` 접두 열쇠(계열 접미사 배열 "0"~"7")
|
||||
|
||||
### 17.3 실무 4건 퇴직공제 요율 0 — 조건부(원인 범위 좁힘)
|
||||
|
||||
- 제비율 다시 잡기 0x47a1bc 를 부르는 곳: TYPEChange(선택축 고침) · mBtn_Set_DefClick(기본값) · mBtn_RateClick(제비율 적용) · cBx_ChasuValueChange · cBx_W_TypeValueChange · mBtn_PrintClick · 합계 입력칸.
|
||||
- 화면 열기(0x46c1d8 → 0x46d0f2)는 PCLASS 9 특례에서만 부름. 그 밖은 저장 R_ 값을 그대로 읽음.
|
||||
- 다시 잡기가 한 번이라도 돌면 I_TBUGUM 0 → R_TBUGUM = RATE_16(2.3).
|
||||
- ⇒ 저장 0 은 다시 잡기 뒤 사용자가 칸을 손으로 고친 값, 또는 다시 잡기가 돈 적 없는 경우로 좁혀짐. 둘 중 무엇인지는 바이트로 가르지 못함.
|
||||
- 퇴직공제 조회 앞의 `[직접공사비] + [ebp−8]` 합(0x47ae70)은 쓰이지 않음(금액 문턱 비교 없음).
|
||||
|
||||
### 17.4 할증율 4바이트 실수 — 확인
|
||||
|
||||
- ST_Boq 0x4e9b20·0x4e9b6a·0x4e9bb4 `fstp dword` 로 계수 보관 · 0x4e9bde 등 `fmul dword` 로 곱함.
|
||||
- 결과 = 원 미만 버림(기준단가 × float32(율/100)).
|
||||
- 1000원 기준: 70% → 699 · 115% → 1149 (십진 계산 700·1150 보다 1원 적음) · 107.5% → 1075.
|
||||
- 실무 7건 BOQ 의 RL·RM·RS·RATE 는 모두 0 (영향 표본 없음).
|
||||
|
||||
### 17.5 행자부 규모 문턱 — 확인 · 콤보 정수값 짝은 미확인
|
||||
|
||||
- 문턱 배열 G = DATA 0x4d114c(포인터 0x4d2468): [5억, 30억, 50억, 300억, 500억, 1000억, 5천만, 1억].
|
||||
- 행자부 간접노무비 구간 = 직접공사비 기준 G[2] 50억 · G[3] 300억(0x47acd8~0x47ad06). 화면 문구(「~5억, 5억~30억, 30억~」「~5천만, 5천만~3억, 3억~」)와 다름 — 문구는 안내 글뿐.
|
||||
- I_SET_BASE 저장값 = TwCombo.GetInteger(RealGridEX6 import). DFM 에 Values 없음 → 값 1 이 「지방계약법」인지 「행자부기준」인지 미확인.
|
||||
|
||||
### 17.6 변경율 내역서 0645 · 굴착·시도 양식 — 양식 목록 확인 · 식 미확인
|
||||
|
||||
- ST_U_Convert 양식 목록(0601~0695): 0643 변경내역서 · 0644 변경내역서(종양식) · 0645 「설계변경내역서(변경율)」 머리 「증 감」 · 0648 설계변경증감대비표.
|
||||
- 굴착·시도 계열(조회 표 `ST_U_Convert_양식목록_0601_0695.txt`):
|
||||
- 0651 총괄(구.시도) · 0652 총괄(시도) · 0653 총괄(구도) · 0654 설계내역서(굴착) · 0656 설계(시도) · 0657 설계(구도)
|
||||
- 0661 변경총괄(구.시도) · 0662 변경총괄(시도) · 0663 변경총괄(구도) · 0664 변경내역서(굴착) · 0665 변경(구.시도) · 0666 변경(시도) · 0667 변경(구도)
|
||||
- 「구.시도 / 시도 / 구도」 = 시비(계열 1·3)·구비(2·4)·합. 굴착 양식 머리 「(1단:시비, 2단:구비, 3단:계)」(ST_P_Excav · ST_P_Collect · ST_P_XLS).
|
||||
- 「증감비율」 머리 문자열은 ST_P_Nae · ST_P_XLS 에 있음. 율 식(분모·자리)은 인쇄 모듈 의사코드를 뽑지 않아 미확인.
|
||||
|
||||
### 17.7 손료 E0~E3 — 확인(계수 없음)
|
||||
|
||||
- 「E0-주간 · E1-야간 · E2-주야간2교대 · E3-주야간3교대」는 ST_PList · ST_U_Archive · ST_U_Convert 의 조달청 XML 열거 이름표(문자열 쌍)뿐.
|
||||
- System 폴더 전체(BSC·STBSC·DBF 포함)에 이 구분의 계수 상수나 계수 표가 없음.
|
||||
- 원본 계산에는 E1~E3 계수 곱이 없음. 손료 구분은 XML 내보내기 값임.
|
||||
|
||||
### 17.8 강제금액 — 확인(화면 문법 없음)
|
||||
|
||||
- `` `z6 … `z5 … `6z `` · `` `c0( `` 등은 조달청 JDL Danga FORM 식의 내부 표기(INT→`` `c0( `` · SIN→`` `cx( `` · ROUND→`` `cg( `` · CUT→`` `c1( `` …, ST_U_Convert 0x454ce0~0x454e37 대응표).
|
||||
- 강제금액 = JDL 산식의 금액 참조 자리에 코드 대신 숫자가 든 경우 → 가져올 때 W 견적코드를 새로 만들어 바꿈.
|
||||
- STmate 자체 산출근거 문법(Main · ST_SanCal · ST_EdSan · ST_EdiLWi)에는 「강제금액」 문자열·갈래가 없음.
|
||||
- 사용자 입력 쪽 기능은 「강제수량」(ST_SanCal, 14장)뿐임.
|
||||
|
||||
### 17.9 JDL TEXT 형식 — 단가 목록 8종 확인 · 세부 3종 조건부
|
||||
|
||||
- JDLCHK.Tab_33.dll 검사 함수가 각 .Txt 줄을 **고정폭 바이트 자리**로 자름(0x5051e0). 자리 표 = 0x405dd8(SetLength) 바로 뒤 dword 값.
|
||||
- 열 개수 검사 = 0x405bfc(Length) 뒤 cmp.
|
||||
- M.Txt 검사 함수 0x4ea818 의사코드:
|
||||
- 열 0 F_CODE · 1 F_DES · 2 F_SIZE · 3 F_UNIT · 4 F_MPRICE · 5 F_SCODE · 6~17 F_PRICEi/F_PAGEi · 18 F_BIGO
|
||||
- F_ORICODE 는 줄에 없음.
|
||||
|
||||
| 파일 | 자르기 자리(바이트) | 열 수 | 열 이름 |
|
||||
|---|---|---|---|
|
||||
| M | 12 · 42 · 72 · 78 · 90 · 102 · 114 · 120 · 132 … 204 · 210 | 19 | 위 M 열 |
|
||||
| L | 12 · 42 · 72 · 78 · 90 · 102 | 7 | CODE · DES · SIZE · UNIT · LPRICE · SCODE · BIGO |
|
||||
| E · W · J | 12 · 42 · 72 · 78 · 90 · 102 · 114 · 126 | 9 | CODE · DES · SIZE · UNIT · MPRICE · LPRICE · EPRICE · SCODE · BIGO |
|
||||
| Unit · JUnit · Danga | 위 + 130 | 10 | 위 + TFNO(4) 뒤 BIGO |
|
||||
| GongJong | 13 · 43 · 47 | 4 | 조건부 |
|
||||
| MainPart | 13 · 24 · 54 · 84 · 90 · 100 … 318 | 31 | 0 CODE · 1 CODE1 · 2 DES · 3 SIZE · 4 UNIT · 5 QQTY · 6 MPRICE · 7 LPRICE · 8 EPRICE · 이후 조건부 |
|
||||
| UnitPart | 12 · 23 · 53 · 83 · 89 … 292 | 28 | 조건부 |
|
||||
| JPart | 12 · 23 · 34 · 64 · 94 … 177 | 19 | 조건부 |
|
||||
| Main | 11 · 91 | 3 | 조건부 |
|
||||
|
||||
- 열 너비 = 같은 함수의 FieldDefs.Add(0x491dec) 크기(코드 12 · 명칭·규격 30 · 단위 6 · 단가 12 · 쪽 6 · 손료번호 4).
|
||||
- 코드 열 글자: A~Z · 0~9 · - _ / ^.
|
||||
- 묶음 파일 목록: M · L · E · W · J · GongJong · Unit · Danga · MainPart · UnitPart · JPart · Main · JUnit · CostAccount · Global.Ini.
|
||||
|
||||
### 17.10 구버전 변환 (F4-28) — 차례 확인 · 형식 표본 없음
|
||||
|
||||
- 13장 차례·필드 이름 바꿈 외 새 근거 없음.
|
||||
- DOS(COSTN1.DBF·CODE1.NTX·Start.MEM)·7.x(Memo.Ini·BOQ<PCODE>.DBF) 원본 자료 표본이 없어 필드 전체 대응을 맞춰 볼 수 없음.
|
||||
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
|
||||
|
||||
void FUN_004ea1c8(void)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
char **ppcVar1;
|
||||
|
||||
undefined4 uVar2;
|
||||
|
||||
int *piVar3;
|
||||
|
||||
int iVar4;
|
||||
|
||||
undefined4 extraout_ECX;
|
||||
|
||||
int unaff_EBX;
|
||||
|
||||
undefined4 *in_FS_OFFSET;
|
||||
|
||||
byte *local_50;
|
||||
|
||||
undefined4 local_4c;
|
||||
|
||||
char **local_48;
|
||||
|
||||
char *pcVar5;
|
||||
|
||||
char *pcVar6;
|
||||
|
||||
undefined4 *local_3c;
|
||||
|
||||
undefined4 **ppuVar7;
|
||||
|
||||
undefined1 *puVar8;
|
||||
|
||||
char *pcVar9;
|
||||
|
||||
char *local_30;
|
||||
|
||||
undefined *local_2c;
|
||||
|
||||
char *local_28;
|
||||
|
||||
byte *local_20;
|
||||
|
||||
undefined4 *local_1c;
|
||||
|
||||
undefined1 *local_18;
|
||||
|
||||
|
||||
|
||||
pcVar9 = &stack0xfffffffc;
|
||||
|
||||
iVar4 = 9;
|
||||
|
||||
do {
|
||||
|
||||
iVar4 = iVar4 + -1;
|
||||
|
||||
} while (iVar4 != 0);
|
||||
|
||||
local_18 = (undefined1 *)0x4ea1e7;
|
||||
|
||||
FUN_004051dc((int)&stack0xffffffec,(int)&DAT_004e6188);
|
||||
|
||||
local_1c = (undefined4 *)&LAB_004ea4ac;
|
||||
|
||||
local_20 = (byte *)*in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_20;
|
||||
|
||||
local_18 = &stack0xfffffffc;
|
||||
|
||||
FUN_004b721c(*(int *)PTR_DAT_00509c78,2);
|
||||
|
||||
local_28 = (char *)0x4ea21e;
|
||||
|
||||
FUN_004b7240(*(int *)PTR_DAT_00509c78,1,(uint *)"Main.Txt",(uint *)0x0);
|
||||
|
||||
local_28 = *(char **)(*(int *)PTR_DAT_00509e54 + 8);
|
||||
|
||||
local_2c = &DAT_004ea4d8;
|
||||
|
||||
local_30 = "Main.Txt";
|
||||
|
||||
FUN_00404b40((int *)&local_18,3);
|
||||
|
||||
uVar2 = FUN_0040980c(local_18);
|
||||
|
||||
if ((char)uVar2 == '\0') {
|
||||
|
||||
pcVar9 = "214001";
|
||||
|
||||
ppuVar7 = &local_1c;
|
||||
|
||||
local_3c = (undefined4 *)0x4ea265;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_005095e4,(int *)&local_20);
|
||||
|
||||
local_30 = "Main.Txt";
|
||||
|
||||
local_2c = (undefined *)CONCAT31(local_2c._1_3_,0xb);
|
||||
|
||||
local_28 = *(char **)(*(int *)PTR_DAT_00509e54 + 8);
|
||||
|
||||
local_3c = (undefined4 *)0x4ea294;
|
||||
|
||||
FUN_0040a4d8(local_20,&local_30,1,(int *)ppuVar7);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,local_1c,pcVar9);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
piVar3 = (int *)FUN_004038d8((int *)&PTR_FUN_0041be6c,'\x01',extraout_ECX);
|
||||
|
||||
puVar8 = &LAB_004ea46f;
|
||||
|
||||
local_3c = (undefined4 *)*in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_3c;
|
||||
|
||||
local_48 = (char **)0x4ea4c4;
|
||||
|
||||
+493
@@ -0,0 +1,493 @@
|
||||
|
||||
|
||||
void FUN_004f246c(void)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
byte *pbVar1;
|
||||
|
||||
char cVar2;
|
||||
|
||||
undefined4 uVar3;
|
||||
|
||||
int *piVar4;
|
||||
|
||||
int iVar5;
|
||||
|
||||
int *piVar6;
|
||||
|
||||
int iVar7;
|
||||
|
||||
int iVar8;
|
||||
|
||||
undefined4 extraout_ECX;
|
||||
|
||||
undefined4 extraout_ECX_00;
|
||||
|
||||
undefined4 extraout_ECX_01;
|
||||
|
||||
undefined4 extraout_ECX_02;
|
||||
|
||||
undefined4 extraout_ECX_03;
|
||||
|
||||
undefined4 extraout_ECX_04;
|
||||
|
||||
undefined4 extraout_ECX_05;
|
||||
|
||||
undefined4 extraout_ECX_06;
|
||||
|
||||
undefined4 extraout_ECX_07;
|
||||
|
||||
uint extraout_ECX_08;
|
||||
|
||||
int *extraout_ECX_09;
|
||||
|
||||
int *extraout_ECX_10;
|
||||
|
||||
int *extraout_ECX_11;
|
||||
|
||||
undefined4 extraout_EDX;
|
||||
|
||||
undefined4 extraout_EDX_00;
|
||||
|
||||
undefined4 extraout_EDX_01;
|
||||
|
||||
int *unaff_EBX;
|
||||
|
||||
undefined4 *in_FS_OFFSET;
|
||||
|
||||
byte *local_120;
|
||||
|
||||
int *local_11c;
|
||||
|
||||
int local_118;
|
||||
|
||||
undefined4 *local_114;
|
||||
|
||||
byte *local_110;
|
||||
|
||||
int *local_10c;
|
||||
|
||||
char *local_108;
|
||||
|
||||
undefined4 *local_104;
|
||||
|
||||
VARIANTARG local_100;
|
||||
|
||||
char *local_f0;
|
||||
|
||||
undefined1 *local_ec;
|
||||
|
||||
char *local_e8;
|
||||
|
||||
undefined4 *local_e4;
|
||||
|
||||
char *local_e0;
|
||||
|
||||
byte *local_dc;
|
||||
|
||||
int *local_d8;
|
||||
|
||||
int local_d4;
|
||||
|
||||
undefined4 *local_d0;
|
||||
|
||||
byte *local_cc;
|
||||
|
||||
int *local_c8;
|
||||
|
||||
int local_c4;
|
||||
|
||||
undefined4 *local_c0;
|
||||
|
||||
byte *local_bc;
|
||||
|
||||
int *local_b8;
|
||||
|
||||
int local_b4;
|
||||
|
||||
undefined4 *local_b0;
|
||||
|
||||
byte *local_ac;
|
||||
|
||||
int *local_a8;
|
||||
|
||||
int local_a4;
|
||||
|
||||
undefined4 *local_a0;
|
||||
|
||||
byte *local_9c;
|
||||
|
||||
int *local_98;
|
||||
|
||||
int local_94;
|
||||
|
||||
undefined4 *local_90;
|
||||
|
||||
byte *local_8c;
|
||||
|
||||
int *local_88;
|
||||
|
||||
int local_84;
|
||||
|
||||
undefined4 *local_80;
|
||||
|
||||
byte *local_7c;
|
||||
|
||||
int *in_stack_ffffff88;
|
||||
|
||||
char *local_74;
|
||||
|
||||
char *local_70;
|
||||
|
||||
char **local_6c;
|
||||
|
||||
undefined4 *in_stack_ffffff98;
|
||||
|
||||
byte *local_64;
|
||||
|
||||
char **local_60;
|
||||
|
||||
undefined *puVar9;
|
||||
|
||||
char **ppcVar10;
|
||||
|
||||
char *pcVar11;
|
||||
|
||||
char *pcVar12;
|
||||
|
||||
char *local_4c;
|
||||
|
||||
undefined *local_48;
|
||||
|
||||
uint *local_44;
|
||||
|
||||
undefined *local_40;
|
||||
|
||||
undefined4 **ppuVar13;
|
||||
|
||||
undefined1 *puVar14;
|
||||
|
||||
char *pcVar15;
|
||||
|
||||
byte *local_28;
|
||||
|
||||
undefined4 *local_24;
|
||||
|
||||
undefined *local_20;
|
||||
|
||||
int local_8;
|
||||
|
||||
|
||||
|
||||
iVar5 = 0x23;
|
||||
|
||||
do {
|
||||
|
||||
iVar8 = iVar5;
|
||||
|
||||
iVar5 = iVar8 + -1;
|
||||
|
||||
} while (iVar8 + -1 != 0);
|
||||
|
||||
local_20 = (undefined *)0x4f248d;
|
||||
|
||||
FUN_004051dc((int)&stack0xffffffec,(int)&DAT_004e6188);
|
||||
|
||||
local_24 = (undefined4 *)&LAB_004f31f9;
|
||||
|
||||
local_28 = (byte *)*in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_28;
|
||||
|
||||
pcVar15 = "GongJong.Txt";
|
||||
|
||||
local_20 = &stack0xfffffffc;
|
||||
|
||||
FUN_00404b40((int *)&local_20,3);
|
||||
|
||||
uVar3 = FUN_0040980c(local_20);
|
||||
|
||||
if ((char)uVar3 == '\0') {
|
||||
|
||||
ppuVar13 = &local_24;
|
||||
|
||||
local_40 = (undefined *)0x4f24e2;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_005095e4,(int *)&local_28);
|
||||
|
||||
pcVar15 = "GongJong.Txt";
|
||||
|
||||
local_40 = (undefined *)0x4f2511;
|
||||
|
||||
FUN_0040a4d8(local_28,&stack0xffffffc8,1,(int *)ppuVar13);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,local_24,pcVar15);
|
||||
|
||||
FUN_004b721c(*(int *)PTR_DAT_00509c78,1);
|
||||
|
||||
puVar14 = &LAB_004f3244;
|
||||
|
||||
local_40 = (undefined *)0x4f254e;
|
||||
|
||||
FUN_004b7240(*(int *)PTR_DAT_00509c78,1,(uint *)"GongJong.Txt",(uint *)&LAB_004f3244);
|
||||
|
||||
*in_FS_OFFSET = puVar14;
|
||||
|
||||
FUN_004047e4((int *)&local_120,8);
|
||||
|
||||
FUN_004112f0(&local_100,extraout_EDX_01,extraout_ECX_11);
|
||||
|
||||
FUN_004047e4((int *)&local_f0,0x20);
|
||||
|
||||
FUN_004047e4((int *)&stack0xffffff98,0xc);
|
||||
|
||||
FUN_004047e4((int *)&local_28,3);
|
||||
|
||||
FUN_004047c0((int *)&stack0xffffffe8);
|
||||
|
||||
FUN_004052ac((int)&stack0xffffffec,(int)&DAT_004e6188);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
piVar4 = (int *)FUN_004038d8((int *)&PTR_FUN_0041be6c,'\x01',extraout_ECX);
|
||||
|
||||
puVar14 = &LAB_004f3189;
|
||||
|
||||
local_40 = (undefined *)*in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_40;
|
||||
|
||||
local_44 = *(uint **)(*(int *)PTR_DAT_00509e54 + 8);
|
||||
|
||||
local_48 = &DAT_004f3210;
|
||||
|
||||
local_4c = "GongJong.Txt";
|
||||
|
||||
FUN_00404b40((int *)&stack0xffffffc4,3);
|
||||
|
||||
(**(code **)(*piVar4 + 0x68))(piVar4,puVar14);
|
||||
|
||||
iVar5 = (**(code **)(*piVar4 + 0x14))();
|
||||
|
||||
FUN_004b721c(*(int *)PTR_DAT_00509c78,iVar5);
|
||||
|
||||
piVar6 = FUN_00491d98((int *)&PTR_FUN_00491d18,'\x01',0);
|
||||
|
||||
*(undefined1 *)(piVar6 + 7) = 2;
|
||||
|
||||
*(undefined1 *)((int)piVar6 + 0x1d) = 1;
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_CODE",CONCAT31((int3)((uint)extraout_ECX_00 >> 8),1),0,0xc);
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_DES",CONCAT31((int3)((uint)extraout_ECX_01 >> 8),1),0,0x1e);
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_QQTY",CONCAT31((int3)((uint)extraout_ECX_02 >> 8),6),0,10);
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_MPRICE",CONCAT31((int3)((uint)extraout_ECX_03 >> 8),6),0,0xc)
|
||||
|
||||
;
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_LPRICE",CONCAT31((int3)((uint)extraout_ECX_04 >> 8),6),0,0xc)
|
||||
|
||||
;
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_EPRICE",CONCAT31((int3)((uint)extraout_ECX_05 >> 8),6),0,0xc)
|
||||
|
||||
;
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_BIGO",CONCAT31((int3)((uint)extraout_ECX_06 >> 8),1),0,0xc);
|
||||
|
||||
FUN_00491dec(piVar6,(undefined4 *)"F_ORICODE",CONCAT31((int3)((uint)extraout_ECX_07 >> 8),1),0,0xc
|
||||
|
||||
);
|
||||
|
||||
FUN_00404acc((int *)&local_40,*(undefined4 **)(*(int *)PTR_DAT_00509e54 + 0x48),
|
||||
|
||||
(undefined4 *)"\\GongJong.Dbf");
|
||||
|
||||
FUN_00499a1c(*(int **)(*(int *)PTR_DAT_00509e54 + 0x28),local_40);
|
||||
|
||||
FUN_00498e98(*(int **)(*(int *)PTR_DAT_00509e54 + 0x28),(int)piVar6);
|
||||
|
||||
FUN_00403908(piVar6);
|
||||
|
||||
FUN_00484600(*(int **)(*(int *)PTR_DAT_00509e54 + 0x28));
|
||||
|
||||
piVar6 = *(int **)(*(int *)PTR_DAT_00509e54 + 0x28);
|
||||
|
||||
*(undefined1 *)(piVar6 + 0x6b) = 0;
|
||||
|
||||
uVar3 = FUN_004845f4(piVar6);
|
||||
|
||||
pcVar12 = (char *)CONCAT31((int3)((uint)uVar3 >> 8),3);
|
||||
|
||||
pcVar11 = (char *)0x0;
|
||||
|
||||
FUN_00499bc8(*(int **)(*(int *)PTR_DAT_00509e54 + 0x28),&DAT_004f3308,(byte *)"F_CODE",0,3);
|
||||
|
||||
piVar6 = *(int **)(*(int *)PTR_DAT_00509e54 + 0x28);
|
||||
|
||||
*(undefined1 *)(piVar6 + 0x6b) = 0;
|
||||
|
||||
FUN_004845f4(piVar6);
|
||||
|
||||
FUN_004990d8(*(int **)(*(int *)PTR_DAT_00509e54 + 0x28));
|
||||
|
||||
FUN_00499c38(*(int **)(*(int *)PTR_DAT_00509e54 + 0x28),(undefined4 *)&DAT_004f3308);
|
||||
|
||||
iVar5 = (**(code **)(*piVar4 + 0x14))();
|
||||
|
||||
if (-1 < iVar5 + -1) {
|
||||
|
||||
local_8 = 0;
|
||||
|
||||
do {
|
||||
|
||||
(**(code **)(*piVar4 + 0xc))(piVar4,local_8,&local_44);
|
||||
|
||||
FUN_004b7240(*(int *)PTR_DAT_00509c78,1,(uint *)"GongJong.Txt",local_44);
|
||||
|
||||
FUN_0044b940(*(int *)PTR_DAT_00509b60,extraout_EDX,extraout_ECX_08);
|
||||
|
||||
local_60 = (char **)0x4f278d;
|
||||
|
||||
FUN_00405dd8(&DAT_0050b150,(int)&DAT_004e61b0,1);
|
||||
|
||||
*DAT_0050b150 = 0xd;
|
||||
|
||||
DAT_0050b150[1] = 0x2b;
|
||||
|
||||
DAT_0050b150[2] = 0x2f;
|
||||
|
||||
(**(code **)(*piVar4 + 0xc))(piVar4,local_8,&local_4c);
|
||||
|
||||
FUN_005051e0((undefined4 *)local_4c,(int)DAT_0050b150,(int *)&local_48);
|
||||
|
||||
(**(code **)(*piVar4 + 0x20))(piVar4,local_8,local_48);
|
||||
|
||||
puVar9 = (undefined *)0x4f27ee;
|
||||
|
||||
(**(code **)(*piVar4 + 0xc))(piVar4,local_8,&stack0xffffffb0);
|
||||
|
||||
FUN_00504d20(pcVar12,(int *)&stack0xffffffec);
|
||||
|
||||
iVar7 = FUN_00405bfc((int)unaff_EBX);
|
||||
|
||||
if (iVar7 < 4) {
|
||||
|
||||
pcVar15 = (char *)CONCAT31((int3)((uint)pcVar15 >> 8),0xb);
|
||||
|
||||
local_40 = (undefined *)0x4f282d;
|
||||
|
||||
(**(code **)(*piVar4 + 0xc))(piVar4,local_8,&stack0xffffffa4);
|
||||
|
||||
local_4c = " - ";
|
||||
|
||||
pcVar12 = "GongJong.Txt";
|
||||
|
||||
pcVar11 = " Line : ";
|
||||
|
||||
local_48 = puVar9;
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&local_60);
|
||||
|
||||
ppcVar10 = local_60;
|
||||
|
||||
FUN_00404b40((int *)&stack0xffffffa8,5);
|
||||
|
||||
puVar14 = &stack0xffffffc8;
|
||||
|
||||
local_60 = (char **)0x4f2876;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509e94,(int *)&local_64);
|
||||
|
||||
FUN_0040a4d8(local_64,puVar14,1,(int *)ppcVar10);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,(undefined4 *)pcVar11,pcVar11);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
iVar7 = FUN_00404a80(*unaff_EBX);
|
||||
|
||||
if (0xc < iVar7) {
|
||||
|
||||
local_40 = &DAT_004f3358;
|
||||
|
||||
local_44 = (uint *)*unaff_EBX;
|
||||
|
||||
local_48 = &DAT_004f336c;
|
||||
|
||||
local_4c = &DAT_004f3378;
|
||||
|
||||
pcVar12 = " - ";
|
||||
|
||||
pcVar11 = "GongJong.Txt";
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&stack0xffffff88);
|
||||
|
||||
local_60 = (char **)0x4f28f1;
|
||||
|
||||
piVar6 = in_stack_ffffff88;
|
||||
|
||||
FUN_00404b40((int *)&local_74,8);
|
||||
|
||||
local_70 = local_74;
|
||||
|
||||
local_6c = (char **)CONCAT31(local_6c._1_3_,0xb);
|
||||
|
||||
local_60 = &local_70;
|
||||
|
||||
local_64 = (byte *)0x4f290c;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509bf0,(int *)&local_7c);
|
||||
|
||||
ppcVar10 = local_60;
|
||||
|
||||
local_60 = (char **)0x4f2917;
|
||||
|
||||
FUN_0040a4d8(local_7c,ppcVar10,0,piVar6);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,in_stack_ffffff98,pcVar15);
|
||||
|
||||
}
|
||||
|
||||
iVar7 = FUN_00404a80(unaff_EBX[1]);
|
||||
|
||||
if (0x1e < iVar7) {
|
||||
|
||||
local_40 = &DAT_004f3358;
|
||||
|
||||
local_44 = (uint *)*unaff_EBX;
|
||||
|
||||
local_48 = &DAT_004f336c;
|
||||
|
||||
local_4c = &DAT_004f33a8;
|
||||
|
||||
pcVar12 = (char *)unaff_EBX[1];
|
||||
|
||||
pcVar11 = ", ";
|
||||
|
||||
local_60 = (char **)0x4f321c;
|
||||
|
||||
local_64 = (byte *)0x4f3334;
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&local_88);
|
||||
|
||||
local_6c = (char **)0x4f299a;
|
||||
|
||||
piVar6 = local_88;
|
||||
|
||||
FUN_00404b40(&local_84,0xb);
|
||||
|
||||
local_6c = &local_70;
|
||||
|
||||
local_70 = (char *)0x4f29b8;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509bf0,(int *)&local_8c);
|
||||
+668
@@ -0,0 +1,668 @@
|
||||
|
||||
|
||||
void FUN_004f6138(void)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
byte *pbVar1;
|
||||
|
||||
char cVar2;
|
||||
|
||||
undefined4 uVar3;
|
||||
|
||||
int *piVar4;
|
||||
|
||||
int *piVar5;
|
||||
|
||||
int iVar6;
|
||||
|
||||
int iVar7;
|
||||
|
||||
int iVar8;
|
||||
|
||||
undefined4 extraout_ECX;
|
||||
|
||||
undefined4 extraout_ECX_00;
|
||||
|
||||
undefined4 extraout_ECX_01;
|
||||
|
||||
undefined4 extraout_ECX_02;
|
||||
|
||||
undefined4 extraout_ECX_03;
|
||||
|
||||
undefined4 extraout_ECX_04;
|
||||
|
||||
undefined4 extraout_ECX_05;
|
||||
|
||||
undefined4 extraout_ECX_06;
|
||||
|
||||
undefined4 extraout_ECX_07;
|
||||
|
||||
undefined4 extraout_ECX_08;
|
||||
|
||||
undefined4 extraout_ECX_09;
|
||||
|
||||
undefined4 extraout_ECX_10;
|
||||
|
||||
undefined4 extraout_ECX_11;
|
||||
|
||||
uint extraout_ECX_12;
|
||||
|
||||
int *extraout_ECX_13;
|
||||
|
||||
int *extraout_ECX_14;
|
||||
|
||||
undefined4 extraout_EDX;
|
||||
|
||||
undefined4 extraout_EDX_00;
|
||||
|
||||
int *unaff_EBX;
|
||||
|
||||
undefined4 *in_FS_OFFSET;
|
||||
|
||||
undefined1 uVar9;
|
||||
|
||||
float10 in_ST0;
|
||||
|
||||
float10 in_ST1;
|
||||
|
||||
float10 in_ST2;
|
||||
|
||||
float10 in_ST3;
|
||||
|
||||
float10 in_ST4;
|
||||
|
||||
float10 in_ST5;
|
||||
|
||||
float10 fVar10;
|
||||
|
||||
float10 in_ST6;
|
||||
|
||||
float10 in_ST7;
|
||||
|
||||
byte *local_178;
|
||||
|
||||
int *local_174;
|
||||
|
||||
int local_170;
|
||||
|
||||
undefined4 *local_16c;
|
||||
|
||||
byte *local_168;
|
||||
|
||||
int local_164;
|
||||
|
||||
byte *local_160;
|
||||
|
||||
int *local_15c;
|
||||
|
||||
char *local_158;
|
||||
|
||||
undefined4 *local_154;
|
||||
|
||||
undefined4 *local_150;
|
||||
|
||||
VARIANTARG local_14c;
|
||||
|
||||
byte *local_13c;
|
||||
|
||||
int *local_138;
|
||||
|
||||
char *local_134;
|
||||
|
||||
undefined4 *local_130;
|
||||
|
||||
byte *local_12c;
|
||||
|
||||
int *local_128;
|
||||
|
||||
char *local_124;
|
||||
|
||||
undefined4 *local_120;
|
||||
|
||||
byte *local_11c;
|
||||
|
||||
int *local_118;
|
||||
|
||||
char *local_114;
|
||||
|
||||
undefined4 *local_110;
|
||||
|
||||
byte *local_10c;
|
||||
|
||||
int *local_108;
|
||||
|
||||
int local_104;
|
||||
|
||||
undefined4 *local_100;
|
||||
|
||||
byte *local_fc;
|
||||
|
||||
int *local_f8;
|
||||
|
||||
int local_f4;
|
||||
|
||||
undefined4 *local_f0;
|
||||
|
||||
byte *local_ec;
|
||||
|
||||
int *local_e8;
|
||||
|
||||
int local_e4;
|
||||
|
||||
undefined4 *local_e0;
|
||||
|
||||
byte *local_dc;
|
||||
|
||||
int *local_d8;
|
||||
|
||||
int local_d4;
|
||||
|
||||
undefined4 *local_d0;
|
||||
|
||||
byte *local_cc;
|
||||
|
||||
int *local_c8;
|
||||
|
||||
int local_c4;
|
||||
|
||||
undefined4 *local_c0;
|
||||
|
||||
byte *local_bc;
|
||||
|
||||
int *local_b8;
|
||||
|
||||
int local_b4;
|
||||
|
||||
undefined4 *local_b0;
|
||||
|
||||
byte *local_ac;
|
||||
|
||||
int *local_a8;
|
||||
|
||||
int local_a4;
|
||||
|
||||
undefined4 *local_a0;
|
||||
|
||||
byte *local_9c;
|
||||
|
||||
int *local_98;
|
||||
|
||||
int local_94;
|
||||
|
||||
undefined4 *local_90;
|
||||
|
||||
byte *local_8c;
|
||||
|
||||
int *local_88;
|
||||
|
||||
int local_84;
|
||||
|
||||
undefined4 *local_80;
|
||||
|
||||
byte *local_7c;
|
||||
|
||||
byte **ppbVar11;
|
||||
|
||||
char *in_stack_ffffff8c;
|
||||
|
||||
char *local_70;
|
||||
|
||||
char **local_6c;
|
||||
|
||||
int *piVar12;
|
||||
|
||||
double local_68;
|
||||
|
||||
char **ppcStack_64;
|
||||
|
||||
char **ppcVar13;
|
||||
|
||||
undefined *puVar14;
|
||||
|
||||
double dVar15;
|
||||
|
||||
char *pcVar16;
|
||||
|
||||
char *local_4c;
|
||||
|
||||
undefined *local_48;
|
||||
|
||||
uint *local_44;
|
||||
|
||||
undefined *local_40;
|
||||
|
||||
undefined4 **ppuVar17;
|
||||
|
||||
undefined1 *puVar18;
|
||||
|
||||
char *pcVar19;
|
||||
|
||||
byte *local_28;
|
||||
|
||||
undefined4 *local_24;
|
||||
|
||||
undefined *local_20;
|
||||
|
||||
int local_8;
|
||||
|
||||
|
||||
|
||||
iVar8 = 0x2e;
|
||||
|
||||
do {
|
||||
|
||||
iVar7 = iVar8;
|
||||
|
||||
iVar8 = iVar7 + -1;
|
||||
|
||||
} while (iVar8 != 0);
|
||||
|
||||
local_20 = (undefined *)0x4f6159;
|
||||
|
||||
FUN_004051dc((int)&stack0xffffffec,(int)&DAT_004e6188);
|
||||
|
||||
local_24 = (undefined4 *)&LAB_004f743a;
|
||||
|
||||
local_28 = (byte *)*in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_28;
|
||||
|
||||
pcVar19 = "Danga.Txt";
|
||||
|
||||
local_20 = &stack0xfffffffc;
|
||||
|
||||
FUN_00404b40((int *)&local_20,3);
|
||||
|
||||
uVar3 = FUN_0040980c(local_20);
|
||||
|
||||
if ((char)uVar3 == '\0') {
|
||||
|
||||
ppuVar17 = &local_24;
|
||||
|
||||
local_40 = (undefined *)0x4f61ae;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_005095e4,(int *)&local_28);
|
||||
|
||||
pcVar19 = "Danga.Txt";
|
||||
|
||||
local_40 = (undefined *)0x4f61dd;
|
||||
|
||||
FUN_0040a4d8(local_28,&stack0xffffffc8,1,(int *)ppuVar17);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,local_24,pcVar19);
|
||||
|
||||
FUN_004b721c(*(int *)PTR_DAT_00509c78,1);
|
||||
|
||||
puVar18 = &LAB_004f7480;
|
||||
|
||||
local_40 = (undefined *)0x4f621a;
|
||||
|
||||
FUN_004b7240(*(int *)PTR_DAT_00509c78,1,(uint *)"Danga.Txt",(uint *)&LAB_004f7480);
|
||||
|
||||
*in_FS_OFFSET = puVar18;
|
||||
|
||||
FUN_004047e4((int *)&local_178,0xb);
|
||||
|
||||
FUN_004112f0(&local_14c,extraout_EDX_00,extraout_ECX_14);
|
||||
|
||||
FUN_004047e4((int *)&local_13c,0x33);
|
||||
|
||||
FUN_004047e4((int *)&stack0xffffff98,0xc);
|
||||
|
||||
FUN_004047e4((int *)&local_28,3);
|
||||
|
||||
FUN_004047c0((int *)&stack0xffffffe8);
|
||||
|
||||
FUN_004052ac((int)&stack0xffffffec,(int)&DAT_004e6188);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
piVar4 = (int *)FUN_004038d8((int *)&PTR_FUN_0041be6c,'\x01',extraout_ECX);
|
||||
|
||||
puVar18 = &LAB_004f73ca;
|
||||
|
||||
local_40 = (undefined *)*in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_40;
|
||||
|
||||
local_44 = *(uint **)(*(int *)PTR_DAT_00509e54 + 8);
|
||||
|
||||
local_48 = &DAT_004f7450;
|
||||
|
||||
local_4c = "Danga.Txt";
|
||||
|
||||
FUN_00404b40((int *)&stack0xffffffc4,3);
|
||||
|
||||
(**(code **)(*piVar4 + 0x68))(piVar4,puVar18);
|
||||
|
||||
iVar8 = (**(code **)(*piVar4 + 0x14))();
|
||||
|
||||
FUN_004b721c(*(int *)PTR_DAT_00509c78,iVar8);
|
||||
|
||||
piVar5 = FUN_00491d98((int *)&PTR_FUN_00491d18,'\x01',0);
|
||||
|
||||
*(undefined1 *)(piVar5 + 7) = 2;
|
||||
|
||||
*(undefined1 *)((int)piVar5 + 0x1d) = 1;
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_CODE",CONCAT31((int3)((uint)extraout_ECX_00 >> 8),1),0,0xc);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_DES",CONCAT31((int3)((uint)extraout_ECX_01 >> 8),1),0,0x1e);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_SIZE",CONCAT31((int3)((uint)extraout_ECX_02 >> 8),1),0,0x1e);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_UNIT",CONCAT31((int3)((uint)extraout_ECX_03 >> 8),1),0,6);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_MPRICE",CONCAT31((int3)((uint)extraout_ECX_04 >> 8),6),0,0xc)
|
||||
|
||||
;
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_LPRICE",CONCAT31((int3)((uint)extraout_ECX_05 >> 8),6),0,0xc)
|
||||
|
||||
;
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_EPRICE",CONCAT31((int3)((uint)extraout_ECX_06 >> 8),6),0,0xc)
|
||||
|
||||
;
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_SCODE",CONCAT31((int3)((uint)extraout_ECX_07 >> 8),1),0,0xc);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_TFNO",CONCAT31((int3)((uint)extraout_ECX_08 >> 8),1),0,4);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_BIGO",CONCAT31((int3)((uint)extraout_ECX_09 >> 8),1),0,0xc);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_ORICODE",CONCAT31((int3)((uint)extraout_ECX_10 >> 8),1),0,0xc
|
||||
|
||||
);
|
||||
|
||||
FUN_00491dec(piVar5,(undefined4 *)"F_MEMO",CONCAT31((int3)((uint)extraout_ECX_11 >> 8),0x10),0,10)
|
||||
|
||||
;
|
||||
|
||||
FUN_00404acc((int *)&local_40,*(undefined4 **)(*(int *)PTR_DAT_00509e54 + 0x48),
|
||||
|
||||
(undefined4 *)"\\Danga.Dbf");
|
||||
|
||||
FUN_00499a1c(*(int **)(*(int *)PTR_DAT_00509e54 + 0x34),local_40);
|
||||
|
||||
FUN_00498e98(*(int **)(*(int *)PTR_DAT_00509e54 + 0x34),(int)piVar5);
|
||||
|
||||
FUN_00403908(piVar5);
|
||||
|
||||
FUN_00484600(*(int **)(*(int *)PTR_DAT_00509e54 + 0x34));
|
||||
|
||||
piVar5 = *(int **)(*(int *)PTR_DAT_00509e54 + 0x34);
|
||||
|
||||
*(undefined1 *)(piVar5 + 0x6b) = 0;
|
||||
|
||||
uVar3 = FUN_004845f4(piVar5);
|
||||
|
||||
dVar15 = (double)((ulonglong)CONCAT31((int3)((uint)uVar3 >> 8),3) << 0x20);
|
||||
|
||||
FUN_00499bc8(*(int **)(*(int *)PTR_DAT_00509e54 + 0x34),&DAT_004f7580,(byte *)"F_CODE",0,3);
|
||||
|
||||
piVar5 = *(int **)(*(int *)PTR_DAT_00509e54 + 0x34);
|
||||
|
||||
*(undefined1 *)(piVar5 + 0x6b) = 0;
|
||||
|
||||
FUN_004845f4(piVar5);
|
||||
|
||||
FUN_004990d8(*(int **)(*(int *)PTR_DAT_00509e54 + 0x34));
|
||||
|
||||
FUN_00499c38(*(int **)(*(int *)PTR_DAT_00509e54 + 0x34),(undefined4 *)&DAT_004f7580);
|
||||
|
||||
iVar8 = (**(code **)(*piVar4 + 0x14))();
|
||||
|
||||
if (-1 < iVar8 + -1) {
|
||||
|
||||
local_8 = 0;
|
||||
|
||||
do {
|
||||
|
||||
pcVar16 = (char *)((ulonglong)dVar15 >> 0x20);
|
||||
|
||||
(**(code **)(*piVar4 + 0xc))(piVar4,local_8,&local_44);
|
||||
|
||||
FUN_004b7240(*(int *)PTR_DAT_00509c78,1,(uint *)"Danga.Txt",local_44);
|
||||
|
||||
FUN_0044b940(*(int *)PTR_DAT_00509b60,extraout_EDX,extraout_ECX_12);
|
||||
|
||||
piVar5 = (int *)0x4f64a1;
|
||||
|
||||
FUN_00405dd8(&DAT_0050b150,(int)&DAT_004e61b0,1);
|
||||
|
||||
*DAT_0050b150 = 0xc;
|
||||
|
||||
DAT_0050b150[1] = 0x2a;
|
||||
|
||||
DAT_0050b150[2] = 0x48;
|
||||
|
||||
DAT_0050b150[3] = 0x4e;
|
||||
|
||||
DAT_0050b150[4] = 0x5a;
|
||||
|
||||
DAT_0050b150[5] = 0x66;
|
||||
|
||||
DAT_0050b150[6] = 0x72;
|
||||
|
||||
DAT_0050b150[7] = 0x7e;
|
||||
|
||||
DAT_0050b150[8] = 0x82;
|
||||
|
||||
(**(code **)(*piVar4 + 0xc))(piVar4,local_8,&local_4c);
|
||||
|
||||
FUN_005051e0((undefined4 *)local_4c,(int)DAT_0050b150,(int *)&local_48);
|
||||
|
||||
(**(code **)(*piVar4 + 0x20))(piVar4,local_8,local_48);
|
||||
|
||||
puVar14 = (undefined *)0x4f654a;
|
||||
|
||||
(**(code **)(*piVar4 + 0xc))(piVar4,local_8,&stack0xffffffb0);
|
||||
|
||||
FUN_00504d20(pcVar16,(int *)&stack0xffffffec);
|
||||
|
||||
iVar6 = FUN_00405bfc((int)unaff_EBX);
|
||||
|
||||
if (iVar6 == 10) {
|
||||
|
||||
iVar6 = FUN_00404a80(*unaff_EBX);
|
||||
|
||||
if (0xb < iVar6) {
|
||||
|
||||
local_40 = &DAT_004f75d0;
|
||||
|
||||
local_44 = (uint *)*unaff_EBX;
|
||||
|
||||
local_48 = &DAT_004f75e4;
|
||||
|
||||
local_4c = &DAT_004f75f0;
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&stack0xffffff88);
|
||||
|
||||
dVar15 = _local_7c;
|
||||
|
||||
ppbVar11 = (byte **)((ulonglong)_local_7c >> 0x20);
|
||||
|
||||
piVar5 = (int *)ppbVar11;
|
||||
|
||||
_local_7c = dVar15;
|
||||
|
||||
FUN_00404b40((int *)&stack0xffffff8c,8);
|
||||
|
||||
local_6c = (char **)CONCAT31(local_6c._1_3_,0xb);
|
||||
|
||||
ppcVar13 = &local_70;
|
||||
|
||||
local_68 = (double)CONCAT44(0x4f6668,piVar12);
|
||||
|
||||
local_70 = in_stack_ffffff8c;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509bf0,(int *)&local_7c);
|
||||
|
||||
FUN_0040a4d8(local_7c,ppcVar13,0,piVar5);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,piVar12,pcVar19);
|
||||
|
||||
}
|
||||
|
||||
iVar6 = FUN_00404a80(unaff_EBX[1]);
|
||||
|
||||
if (0x1e < iVar6) {
|
||||
|
||||
local_40 = &DAT_004f75d0;
|
||||
|
||||
local_44 = (uint *)*unaff_EBX;
|
||||
|
||||
local_48 = &DAT_004f75e4;
|
||||
|
||||
local_4c = &DAT_004f7620;
|
||||
|
||||
ppcStack_64 = (char **)0x4f75ac;
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&local_88);
|
||||
|
||||
local_6c = (char **)0x4f66f6;
|
||||
|
||||
piVar12 = local_88;
|
||||
|
||||
FUN_00404b40(&local_84,0xb);
|
||||
|
||||
local_6c = &local_70;
|
||||
|
||||
local_70 = (char *)0x4f6714;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509bf0,(int *)&local_8c);
|
||||
|
||||
ppcVar13 = local_6c;
|
||||
|
||||
local_6c = (char **)0x4f6722;
|
||||
|
||||
FUN_0040a4d8(local_8c,ppcVar13,0,piVar12);
|
||||
|
||||
local_68 = (double)CONCAT44(ppcStack_64,0x4f6733);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,local_80,pcVar19);
|
||||
|
||||
}
|
||||
|
||||
iVar6 = FUN_00404a80(unaff_EBX[2]);
|
||||
|
||||
if (0x1e < iVar6) {
|
||||
|
||||
local_40 = &DAT_004f75d0;
|
||||
|
||||
local_44 = (uint *)*unaff_EBX;
|
||||
|
||||
local_48 = &DAT_004f75e4;
|
||||
|
||||
local_4c = &DAT_004f7654;
|
||||
|
||||
ppcStack_64 = (char **)0x4f75ac;
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&local_98);
|
||||
|
||||
local_6c = (char **)0x4f67ab;
|
||||
|
||||
piVar12 = local_98;
|
||||
|
||||
FUN_00404b40(&local_94,0xb);
|
||||
|
||||
local_6c = &local_70;
|
||||
|
||||
local_70 = (char *)0x4f67cc;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509bf0,(int *)&local_9c);
|
||||
|
||||
ppcVar13 = local_6c;
|
||||
|
||||
local_6c = (char **)0x4f67da;
|
||||
|
||||
FUN_0040a4d8(local_9c,ppcVar13,0,piVar12);
|
||||
|
||||
local_68 = (double)CONCAT44(ppcStack_64,0x4f67ee);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,local_90,pcVar19);
|
||||
|
||||
}
|
||||
|
||||
iVar6 = FUN_00404a80(unaff_EBX[3]);
|
||||
|
||||
if (6 < iVar6) {
|
||||
|
||||
local_40 = &DAT_004f75d0;
|
||||
|
||||
local_44 = (uint *)*unaff_EBX;
|
||||
|
||||
local_48 = &DAT_004f75e4;
|
||||
|
||||
local_4c = &DAT_004f767c;
|
||||
|
||||
ppcStack_64 = (char **)0x4f75ac;
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&local_a8);
|
||||
|
||||
local_6c = (char **)0x4f6866;
|
||||
|
||||
piVar12 = local_a8;
|
||||
|
||||
FUN_00404b40(&local_a4,0xb);
|
||||
|
||||
local_6c = &local_70;
|
||||
|
||||
local_70 = (char *)0x4f6887;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509bf0,(int *)&local_ac);
|
||||
|
||||
ppcVar13 = local_6c;
|
||||
|
||||
local_6c = (char **)0x4f6895;
|
||||
|
||||
FUN_0040a4d8(local_ac,ppcVar13,0,piVar12);
|
||||
|
||||
local_68 = (double)CONCAT44(ppcStack_64,0x4f68a9);
|
||||
|
||||
FUN_004b5210(*(int *)PTR_DAT_00509e54,(undefined4 *)0x0,local_a0,pcVar19);
|
||||
|
||||
}
|
||||
|
||||
iVar6 = FUN_00404a80(unaff_EBX[4]);
|
||||
|
||||
if (0xc < iVar6) {
|
||||
|
||||
local_40 = &DAT_004f75d0;
|
||||
|
||||
local_44 = (uint *)*unaff_EBX;
|
||||
|
||||
local_48 = &DAT_004f75e4;
|
||||
|
||||
local_4c = &DAT_004f76a4;
|
||||
|
||||
ppcStack_64 = (char **)0x4f75ac;
|
||||
|
||||
FUN_00409304(local_8 + 1,(int *)&local_b8);
|
||||
|
||||
local_6c = (char **)0x4f6921;
|
||||
|
||||
piVar12 = local_b8;
|
||||
|
||||
FUN_00404b40(&local_b4,0xb);
|
||||
|
||||
local_6c = &local_70;
|
||||
|
||||
local_70 = (char *)0x4f6942;
|
||||
|
||||
FUN_00406b28((undefined4 *)PTR_PTR_00509bf0,(int *)&local_bc);
|
||||
|
||||
ppcVar13 = local_6c;
|
||||
|
||||
local_6c = (char **)0x4f6950;
|
||||
|
||||
FUN_0040a4d8(local_bc,ppcVar13,0,piVar12);
|
||||
|
||||
local_68 = (double)CONCAT44(ppcStack_64,0x4f6964);
|
||||
|
||||
+1298
File diff suppressed because it is too large
Load Diff
+2053
File diff suppressed because it is too large
Load Diff
+1097
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+1228
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+925
@@ -0,0 +1,925 @@
|
||||
|
||||
|
||||
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
||||
|
||||
|
||||
|
||||
void Edit_KanJub(void)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
int *piVar1;
|
||||
|
||||
undefined1 *puVar2;
|
||||
|
||||
char **ppcVar3;
|
||||
|
||||
undefined *puVar4;
|
||||
|
||||
char cVar5;
|
||||
|
||||
undefined1 uVar6;
|
||||
|
||||
undefined4 uVar7;
|
||||
|
||||
int iVar8;
|
||||
|
||||
undefined4 *puVar9;
|
||||
|
||||
int iVar10;
|
||||
|
||||
undefined4 *puVar11;
|
||||
|
||||
char *pcVar12;
|
||||
|
||||
undefined4 *puVar13;
|
||||
|
||||
undefined4 *puVar14;
|
||||
|
||||
undefined4 *puVar15;
|
||||
|
||||
undefined4 *in_FS_OFFSET;
|
||||
|
||||
byte bVar16;
|
||||
|
||||
float10 in_ST0;
|
||||
|
||||
float10 in_ST1;
|
||||
|
||||
float10 in_ST2;
|
||||
|
||||
float10 in_ST3;
|
||||
|
||||
float10 in_ST4;
|
||||
|
||||
float10 in_ST5;
|
||||
|
||||
float10 in_ST6;
|
||||
|
||||
float10 in_ST7;
|
||||
|
||||
float10 fVar17;
|
||||
|
||||
undefined4 in_stack_00000004;
|
||||
|
||||
undefined4 in_stack_00000008;
|
||||
|
||||
undefined1 local_20c [16];
|
||||
|
||||
undefined1 local_1fc [16];
|
||||
|
||||
undefined4 local_1ec;
|
||||
|
||||
undefined4 local_1e8;
|
||||
|
||||
undefined4 local_1e4;
|
||||
|
||||
undefined4 local_1e0;
|
||||
|
||||
undefined4 local_1dc;
|
||||
|
||||
undefined4 local_1d8;
|
||||
|
||||
undefined4 local_1d4;
|
||||
|
||||
undefined4 local_1d0;
|
||||
|
||||
undefined1 local_1cc [16];
|
||||
|
||||
undefined4 local_1bc;
|
||||
|
||||
undefined4 local_1b8;
|
||||
|
||||
undefined4 local_1b4;
|
||||
|
||||
undefined4 local_1b0;
|
||||
|
||||
undefined4 local_1ac;
|
||||
|
||||
undefined4 local_1a8;
|
||||
|
||||
undefined4 local_1a4;
|
||||
|
||||
undefined4 local_1a0;
|
||||
|
||||
undefined1 local_19c [16];
|
||||
|
||||
undefined4 local_18c;
|
||||
|
||||
undefined1 local_188 [12];
|
||||
|
||||
undefined4 uStack_17c;
|
||||
|
||||
char *local_178;
|
||||
|
||||
undefined4 local_174;
|
||||
|
||||
undefined4 local_170;
|
||||
|
||||
undefined1 *local_16c;
|
||||
|
||||
undefined4 local_168;
|
||||
|
||||
undefined1 *local_164;
|
||||
|
||||
undefined4 local_160;
|
||||
|
||||
undefined4 local_15c;
|
||||
|
||||
undefined4 local_158;
|
||||
|
||||
undefined4 local_154;
|
||||
|
||||
undefined4 uStack_150;
|
||||
|
||||
undefined4 uStack_14c;
|
||||
|
||||
undefined4 uStack_148;
|
||||
|
||||
undefined4 local_144;
|
||||
|
||||
undefined4 local_140;
|
||||
|
||||
undefined4 local_13c;
|
||||
|
||||
undefined1 *local_138;
|
||||
|
||||
undefined4 local_134;
|
||||
|
||||
undefined4 local_130;
|
||||
|
||||
undefined4 local_12c;
|
||||
|
||||
undefined4 local_128;
|
||||
|
||||
undefined4 local_124;
|
||||
|
||||
undefined4 uStack_120;
|
||||
|
||||
undefined4 uStack_11c;
|
||||
|
||||
undefined4 uStack_118;
|
||||
|
||||
undefined4 local_114;
|
||||
|
||||
undefined1 *local_110;
|
||||
|
||||
undefined4 *local_10c;
|
||||
|
||||
undefined4 local_108;
|
||||
|
||||
undefined4 local_104;
|
||||
|
||||
undefined4 local_100;
|
||||
|
||||
undefined4 local_fc;
|
||||
|
||||
undefined4 local_f8;
|
||||
|
||||
undefined1 *local_f4;
|
||||
|
||||
undefined4 uStack_f0;
|
||||
|
||||
undefined4 uStack_ec;
|
||||
|
||||
undefined4 uStack_e8;
|
||||
|
||||
undefined4 *local_e4;
|
||||
|
||||
uint local_e0;
|
||||
|
||||
undefined4 local_dc;
|
||||
|
||||
undefined4 uStack_d8;
|
||||
|
||||
undefined4 uStack_d4;
|
||||
|
||||
undefined4 uStack_d0;
|
||||
|
||||
undefined4 local_cc;
|
||||
|
||||
undefined4 uStack_c8;
|
||||
|
||||
undefined4 uStack_c4;
|
||||
|
||||
undefined4 uStack_c0;
|
||||
|
||||
undefined1 **local_bc;
|
||||
|
||||
undefined4 uStack_b8;
|
||||
|
||||
undefined4 uStack_b4;
|
||||
|
||||
undefined4 uStack_b0;
|
||||
|
||||
undefined4 local_ac;
|
||||
|
||||
undefined4 uStack_a8;
|
||||
|
||||
undefined4 uStack_a4;
|
||||
|
||||
undefined4 uStack_a0;
|
||||
|
||||
undefined4 local_9c;
|
||||
|
||||
undefined4 uStack_98;
|
||||
|
||||
undefined4 *puStack_94;
|
||||
|
||||
undefined4 uStack_90;
|
||||
|
||||
undefined4 local_8c;
|
||||
|
||||
undefined4 *puStack_88;
|
||||
|
||||
char *pcStack_84;
|
||||
|
||||
undefined4 uStack_80;
|
||||
|
||||
undefined4 *local_7c;
|
||||
|
||||
undefined4 uStack_78;
|
||||
|
||||
undefined4 uStack_74;
|
||||
|
||||
undefined1 ***pppuStack_70;
|
||||
|
||||
char *local_6c;
|
||||
|
||||
undefined4 uStack_68;
|
||||
|
||||
undefined4 *puStack_64;
|
||||
|
||||
undefined4 uStack_60;
|
||||
|
||||
undefined4 local_5c;
|
||||
|
||||
undefined4 *local_58;
|
||||
|
||||
char *local_54;
|
||||
|
||||
undefined *local_50;
|
||||
|
||||
char **local_4c;
|
||||
|
||||
char *local_48;
|
||||
|
||||
char **local_44;
|
||||
|
||||
undefined4 **local_40;
|
||||
|
||||
char *local_3c;
|
||||
|
||||
undefined **local_38;
|
||||
|
||||
undefined4 local_34;
|
||||
|
||||
undefined *local_30;
|
||||
|
||||
undefined *local_2c;
|
||||
|
||||
undefined4 *local_28;
|
||||
|
||||
undefined4 *local_24;
|
||||
|
||||
undefined4 *local_20;
|
||||
|
||||
undefined4 uStack_1c;
|
||||
|
||||
int iVar18;
|
||||
|
||||
int *local_c;
|
||||
|
||||
undefined4 uStack_8;
|
||||
|
||||
|
||||
|
||||
/* 0x6c1d8 5 Edit_KanJub */
|
||||
|
||||
bVar16 = 0;
|
||||
|
||||
uStack_1c = &stack0xfffffffc;
|
||||
|
||||
iVar10 = 0x41;
|
||||
|
||||
do {
|
||||
|
||||
iVar10 = iVar10 + -1;
|
||||
|
||||
} while (iVar10 != 0);
|
||||
|
||||
local_20 = (undefined4 *)&LAB_0046d6bc;
|
||||
|
||||
local_24 = (undefined4 *)*in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_24;
|
||||
|
||||
uStack_8 = 0;
|
||||
|
||||
local_28 = (undefined4 *)0x46c20b;
|
||||
|
||||
_Forms_TApplication_SetHandle_qqrui(*(undefined4 *)_Forms_Application_exref,in_stack_00000004);
|
||||
|
||||
local_28 = (undefined4 *)0x46c210;
|
||||
|
||||
FUN_004097e8();
|
||||
|
||||
local_28 = (undefined4 *)0x41d0b852;
|
||||
|
||||
local_2c = (undefined *)0x46c21a;
|
||||
|
||||
cVar5 = FUN_00436418();
|
||||
|
||||
if (cVar5 == '\0') {
|
||||
|
||||
LAB_0046d619:
|
||||
|
||||
*in_FS_OFFSET = local_28;
|
||||
|
||||
local_20 = (undefined4 *)&LAB_0046d6c6;
|
||||
|
||||
local_24 = (undefined4 *)0x46d63c;
|
||||
|
||||
_System__FinalizeArray_qqrpvt1ui(local_20c,__xp_14System_Variant_exref,8);
|
||||
|
||||
local_24 = (undefined4 *)0x46d647;
|
||||
|
||||
_System__LStrClr_qqrpv(&local_18c);
|
||||
|
||||
local_24 = (undefined4 *)0x46d652;
|
||||
|
||||
_System__VarClr_qqrr14System_Variant(local_188);
|
||||
|
||||
local_24 = (undefined4 *)0x46d65d;
|
||||
|
||||
_System__LStrClr_qqrpv(&local_178);
|
||||
|
||||
local_24 = (undefined4 *)0x46d673;
|
||||
|
||||
_System__FinalizeArray_qqrpvt1ui(&local_174,__xp_14System_Variant_exref,9);
|
||||
|
||||
local_24 = (undefined4 *)0x46d683;
|
||||
|
||||
_System__LStrArrayClr_qqrpvi(&local_e4,2);
|
||||
|
||||
local_24 = (undefined4 *)0x46d699;
|
||||
|
||||
_System__FinalizeArray_qqrpvt1ui(&local_dc,__xp_14System_Variant_exref,8);
|
||||
|
||||
local_24 = (undefined4 *)0x46d6a6;
|
||||
|
||||
_System__LStrArrayClr_qqrpvi(&local_5c,7);
|
||||
|
||||
local_24 = (undefined4 *)0x46d6b3;
|
||||
|
||||
_System__LStrArrayClr_qqrpvi(&local_38,2);
|
||||
|
||||
local_24 = (undefined4 *)0x46d6bb;
|
||||
|
||||
_System__LStrClr_qqrpv(&local_2c);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
local_2c = (undefined *)0x46c227;
|
||||
|
||||
cVar5 = FUN_00436ff0();
|
||||
|
||||
if (cVar5 == '\0') goto LAB_0046d619;
|
||||
|
||||
local_2c = (undefined *)0x46c244;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(PTR_DAT_004d2460,*(undefined4 *)(*(int *)PTR_DAT_004d25c8 + 0x38));
|
||||
|
||||
local_2c = (undefined *)0x46c25b;
|
||||
|
||||
_Apodset_TApolloTable_GetString_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"PCODE",&local_2c);
|
||||
|
||||
puVar4 = local_2c;
|
||||
|
||||
local_2c = (undefined *)0x46c268;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(PTR_DAT_004d2580,puVar4);
|
||||
|
||||
local_2c = (undefined *)0x46c27c;
|
||||
|
||||
DAT_004f48d0 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"PCLASS");
|
||||
|
||||
local_2c = (undefined *)0x46c295;
|
||||
|
||||
DAT_004f48d1 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"SCLASS");
|
||||
|
||||
local_2c = (undefined *)0x46c2ae;
|
||||
|
||||
DAT_004f48d2 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"K_ORD");
|
||||
|
||||
if ((DAT_004f48d0 == '\a') && ('\x04' < DAT_004f48d2)) {
|
||||
|
||||
local_2c = &DAT_0046d71c;
|
||||
|
||||
local_34 = 1;
|
||||
|
||||
local_30 = &DAT_0046d72c;
|
||||
|
||||
local_38 = &local_30;
|
||||
|
||||
local_3c = (char *)0x0;
|
||||
|
||||
local_40 = (undefined4 **)&LAB_0046d740;
|
||||
|
||||
local_44 = *(char ***)(PTR_PTR_004d25a0 + 0x10);
|
||||
|
||||
local_48 = &DAT_0046d794;
|
||||
|
||||
local_4c = (char **)&DAT_0046d7b0;
|
||||
|
||||
local_50 = &DAT_0046d7b0;
|
||||
|
||||
local_54 = &DAT_0046d7bc;
|
||||
|
||||
local_58 = (undefined4 *)0x46c30d;
|
||||
|
||||
_System__LStrCatN_qqrv(&local_34,6);
|
||||
|
||||
local_2c = (undefined *)0x46c324;
|
||||
|
||||
FUN_0042b334(*(undefined4 *)(*(int *)_Forms_Application_exref + 0x30),local_34,&DAT_0046d7f8);
|
||||
|
||||
goto LAB_0046d619;
|
||||
|
||||
}
|
||||
|
||||
local_2c = (undefined *)0x46c33e;
|
||||
|
||||
_Forms_TApplication_CreateForm_qqrp17System_TMetaClasspv
|
||||
|
||||
(*(undefined4 *)_Forms_Application_exref,&PTR_LAB_004674e0,&local_c);
|
||||
|
||||
local_2c = (undefined *)0x46c34f;
|
||||
|
||||
_System__FillChar_qqrpvic(PTR_DAT_004d26cc,0x10,0);
|
||||
|
||||
DAT_004f48d4 = 0;
|
||||
|
||||
local_30 = &LAB_0046d60f;
|
||||
|
||||
local_34 = *in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &local_34;
|
||||
|
||||
local_38 = (undefined **)0x46c376;
|
||||
|
||||
local_2c = &stack0xfffffffc;
|
||||
|
||||
FUN_004315e8(local_c,"POS_D_KANJUB",&DAT_004f48e8);
|
||||
|
||||
if ((byte)(*(char *)(*(int *)PTR_DAT_004d25c8 + 0x57) - 2U) < 2) {
|
||||
|
||||
local_38 = (undefined **)0x46c39a;
|
||||
|
||||
iVar10 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"PCLASS");
|
||||
|
||||
if (iVar10 != 0) {
|
||||
|
||||
local_38 = (undefined **)0x46c3ae;
|
||||
|
||||
_Controls_TControl_SetAlign_qqr15Controls_TAlign(local_c[0xbe],3);
|
||||
|
||||
local_38 = (undefined **)0x46c3c1;
|
||||
|
||||
_Controls_TControl_SetWidth_qqri(local_c[0xbe],0x324);
|
||||
|
||||
local_38 = (undefined **)0x46c3d1;
|
||||
|
||||
_Controls_TControl_SetVisible_qqro(local_c[0x37c],1);
|
||||
|
||||
goto LAB_0046c415;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
local_38 = (undefined **)0x46c3e3;
|
||||
|
||||
_Controls_TControl_SetAlign_qqr15Controls_TAlign(local_c[0xbe],5);
|
||||
|
||||
local_38 = (undefined **)0x46c3f3;
|
||||
|
||||
_Controls_TControl_SetVisible_qqro(local_c[0x37c],0);
|
||||
|
||||
local_38 = (undefined **)0x46c408;
|
||||
|
||||
_Controls_TSizeConstraints_SetConstraints_qqrii(local_c[0x1d],3,0x32f);
|
||||
|
||||
local_38 = (undefined **)0x46c415;
|
||||
|
||||
_Controls_TControl_SetWidth_qqri(local_c,0x32f);
|
||||
|
||||
LAB_0046c415:
|
||||
|
||||
_DAT_004e425c = in_stack_00000008;
|
||||
|
||||
local_38 = (undefined **)0x46c427;
|
||||
|
||||
_Forms_TCustomForm_SetActiveControl_qqrp20Controls_TWinControl(local_c,0);
|
||||
|
||||
local_38 = (undefined **)0x46c437;
|
||||
|
||||
_Controls_TControl_SetAlign_qqr15Controls_TAlign(local_c[0xbd],0);
|
||||
|
||||
local_38 = (undefined **)0x46c44b;
|
||||
|
||||
_Controls_TControl_SetAnchors_qqr48System__Set_t20Controls_TAnchorKind_iuc_0_iuc_3_
|
||||
|
||||
(local_c[0xbd],0xd);
|
||||
|
||||
local_38 = (undefined **)0x46c453;
|
||||
|
||||
iVar10 = _Classes_TComponent_GetComponentCount_qqrv(local_c);
|
||||
|
||||
if (-1 < iVar10 + -1) {
|
||||
|
||||
iVar18 = 0;
|
||||
|
||||
do {
|
||||
|
||||
local_38 = (undefined **)0x46c46d;
|
||||
|
||||
uVar7 = _Classes_TComponent_GetComponent_qqri(local_c,iVar18);
|
||||
|
||||
local_38 = (undefined **)0x46c478;
|
||||
|
||||
cVar5 = _System__IsClass_qqrp14System_TObjectp17System_TMetaClass
|
||||
|
||||
(uVar7,_Urmgrid_TRealGrid__exref);
|
||||
|
||||
if (cVar5 != '\0') {
|
||||
|
||||
local_38 = (undefined **)0x46c487;
|
||||
|
||||
iVar8 = _Classes_TComponent_GetComponent_qqri(local_c,iVar18);
|
||||
|
||||
local_38 = (undefined **)0x46c492;
|
||||
|
||||
_Sysutils_UpperCase_qqrx17System_AnsiString(*(undefined4 *)(iVar8 + 8),&local_38);
|
||||
|
||||
local_3c = "ADD";
|
||||
|
||||
local_40 = (undefined4 **)0x46c4a0;
|
||||
|
||||
cVar5 = MPOS();
|
||||
|
||||
if (cVar5 != '\0') {
|
||||
|
||||
local_38 = (undefined **)0x46c4af;
|
||||
|
||||
uVar7 = _Classes_TComponent_GetComponent_qqri(local_c,iVar18);
|
||||
|
||||
local_38 = (undefined **)0x46c4b9;
|
||||
|
||||
_Urmgrid_TRealGrid_SetMaxRowCount_qqri(uVar7,0x13);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
iVar18 = iVar18 + 1;
|
||||
|
||||
iVar10 = iVar10 + -1;
|
||||
|
||||
} while (iVar10 != 0);
|
||||
|
||||
}
|
||||
|
||||
local_38 = (undefined **)0x46c4d5;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0xf3] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c4eb;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0xf4] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c501;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0xf5] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c517;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x104] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c52d;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x15e] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c543;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x175] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c559;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x130] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c56f;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x180] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c585;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x20f] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c59b;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x22a] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c5b1;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x1da] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c5c7;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x236] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c5dd;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x28d] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c5f3;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x2ad] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c609;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x246] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c61f;
|
||||
|
||||
_Urgrids_TwGridHeaders_SetVisible_qqro(*(undefined4 *)(local_c[0x2b8] + 0x2ec),0);
|
||||
|
||||
local_38 = (undefined **)0x46c633;
|
||||
|
||||
DAT_004f48d0 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"PCLASS");
|
||||
|
||||
local_38 = (undefined **)0x46c64c;
|
||||
|
||||
DAT_004f48d1 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"SCLASS");
|
||||
|
||||
local_38 = (undefined **)0x46c665;
|
||||
|
||||
DAT_004f48d2 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),"K_ORD");
|
||||
|
||||
*(int *)PTR_DAT_004d26a4 = (int)DAT_004f48d0;
|
||||
|
||||
switch(DAT_004f48d0) {
|
||||
|
||||
case '\0':
|
||||
|
||||
case '\x04':
|
||||
|
||||
case '\x05':
|
||||
|
||||
case '\t':
|
||||
|
||||
DAT_004f48d3 = '\x01';
|
||||
|
||||
break;
|
||||
|
||||
case '\x01':
|
||||
|
||||
case '\x03':
|
||||
|
||||
DAT_004f48d3 = '\x02';
|
||||
|
||||
break;
|
||||
|
||||
case '\x02':
|
||||
|
||||
DAT_004f48d3 = '\x02';
|
||||
|
||||
break;
|
||||
|
||||
case '\x06':
|
||||
|
||||
DAT_004f48d3 = '\x01';
|
||||
|
||||
break;
|
||||
|
||||
case '\a':
|
||||
|
||||
if ((int)DAT_004f48d2 - 1U < 4) {
|
||||
|
||||
DAT_004f48d3 = DAT_004f48d2 + '\x01';
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
DAT_004f48d3 = '\x02';
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case '\b':
|
||||
|
||||
DAT_004f48d3 = '\x04';
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
DAT_004f48d3 = '\x01';
|
||||
|
||||
}
|
||||
|
||||
local_38 = (undefined **)0x46c71a;
|
||||
|
||||
FUN_00487818(local_c);
|
||||
|
||||
if ((((byte)(DAT_004f48d0 - 2U) < 2) || ((byte)(DAT_004f48d0 - 7U) < 2)) ||
|
||||
|
||||
((DAT_004f48d0 == '\x04' && (DAT_004f48d1 == '\x01')))) {
|
||||
|
||||
uVar7 = 1;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
uVar7 = 0;
|
||||
|
||||
}
|
||||
|
||||
local_38 = (undefined **)0x46c751;
|
||||
|
||||
_Controls_TControl_SetVisible_qqro(local_c[0x18b],uVar7);
|
||||
|
||||
local_38 = (undefined **)0x46c765;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x44))();
|
||||
|
||||
local_38 = (undefined **)0x46c779;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x28c) + 0x44))();
|
||||
|
||||
switch(DAT_004f48d0) {
|
||||
|
||||
default:
|
||||
|
||||
local_38 = (undefined **)0x46cc36;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(*(int *)(local_c[0x18b] + 0x240) + 0x34,&DAT_0046d918);
|
||||
|
||||
local_38 = (undefined **)0x46cc4f;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&DAT_0046dad0);
|
||||
|
||||
local_40 = (undefined4 **)0x101;
|
||||
|
||||
local_3c = (char *)((uint)local_3c & 0xffffff00);
|
||||
|
||||
local_38 = (undefined **)0x46cc70;
|
||||
|
||||
FUN_0046c188(&local_40,4);
|
||||
|
||||
break;
|
||||
|
||||
case '\x01':
|
||||
|
||||
local_38 = (undefined **)0x46c7d0;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(*(int *)(local_c[0x18b] + 0x240) + 0x34,&LAB_0046d850);
|
||||
|
||||
local_38 = (undefined **)0x46c7e9;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&LAB_0046d868);
|
||||
|
||||
local_38 = (undefined **)0x46c802;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&DAT_0046d87c);
|
||||
|
||||
local_40 = (undefined4 **)0x20102;
|
||||
|
||||
local_3c = (char *)((uint)local_3c & 0xffffff00);
|
||||
|
||||
local_38 = (undefined **)0x46c823;
|
||||
|
||||
FUN_0046c188(&local_40,4);
|
||||
|
||||
break;
|
||||
|
||||
case '\x02':
|
||||
|
||||
local_38 = (undefined **)0x46cb1f;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(*(int *)(local_c[0x18b] + 0x240) + 0x34,&LAB_0046da10);
|
||||
|
||||
local_38 = (undefined **)0x46cb38;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&LAB_0046da28);
|
||||
|
||||
local_38 = (undefined **)0x46cb51;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&DAT_0046da40);
|
||||
|
||||
local_40 = (undefined4 **)0x20102;
|
||||
|
||||
local_3c = (char *)((uint)local_3c & 0xffffff00);
|
||||
|
||||
local_38 = (undefined **)0x46cb72;
|
||||
|
||||
FUN_0046c188(&local_40,4);
|
||||
|
||||
break;
|
||||
|
||||
case '\x03':
|
||||
|
||||
local_38 = (undefined **)0x46c844;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(*(int *)(local_c[0x18b] + 0x240) + 0x34,&LAB_0046d890);
|
||||
|
||||
local_38 = (undefined **)0x46c85d;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&DAT_0046d8a8);
|
||||
|
||||
local_38 = (undefined **)0x46c876;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&DAT_0046d8c0);
|
||||
|
||||
local_40 = (undefined4 **)0x20102;
|
||||
|
||||
local_3c = (char *)((uint)local_3c & 0xffffff00);
|
||||
|
||||
local_38 = (undefined **)0x46c897;
|
||||
|
||||
FUN_0046c188(&local_40,4);
|
||||
|
||||
break;
|
||||
|
||||
case '\x04':
|
||||
|
||||
if (DAT_004f48d1 == '\x01') {
|
||||
|
||||
local_38 = (undefined **)0x46c8c1;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(*(int *)(local_c[0x18b] + 0x240) + 0x34,&DAT_0046d8d8);
|
||||
|
||||
local_38 = (undefined **)0x46c8da;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&DAT_0046d8f0);
|
||||
|
||||
local_38 = (undefined **)0x46c8f3;
|
||||
|
||||
(**(code **)(**(int **)(local_c[0x18b] + 0x284) + 0x38))
|
||||
|
||||
(*(int **)(local_c[0x18b] + 0x284),&DAT_0046d904);
|
||||
|
||||
local_40 = (undefined4 **)0x10202;
|
||||
|
||||
local_3c = (char *)((uint)local_3c & 0xffffff00);
|
||||
|
||||
local_38 = (undefined **)0x46c914;
|
||||
|
||||
FUN_0046c188(&local_40,4);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
local_38 = (undefined **)0x46c935;
|
||||
|
||||
_System__LStrAsg_qqrpvpxv(*(int *)(local_c[0x18b] + 0x240) + 0x34,&DAT_0046d918);
|
||||
+530
@@ -0,0 +1,530 @@
|
||||
|
||||
|
||||
/* WARNING: Type propagation algorithm not settling */
|
||||
|
||||
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
||||
|
||||
|
||||
|
||||
void FUN_0047fa24(int param_1,int param_2)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
bool bVar1;
|
||||
|
||||
undefined8 *puVar2;
|
||||
|
||||
char cVar3;
|
||||
|
||||
int iVar4;
|
||||
|
||||
int iVar5;
|
||||
|
||||
undefined4 extraout_EDX;
|
||||
|
||||
int extraout_EDX_00;
|
||||
|
||||
int extraout_EDX_01;
|
||||
|
||||
int extraout_EDX_02;
|
||||
|
||||
int extraout_EDX_03;
|
||||
|
||||
int extraout_EDX_04;
|
||||
|
||||
int extraout_EDX_05;
|
||||
|
||||
int extraout_EDX_06;
|
||||
|
||||
int extraout_EDX_07;
|
||||
|
||||
int extraout_EDX_08;
|
||||
|
||||
int extraout_EDX_09;
|
||||
|
||||
int extraout_EDX_10;
|
||||
|
||||
int extraout_EDX_11;
|
||||
|
||||
int extraout_EDX_12;
|
||||
|
||||
undefined4 *in_FS_OFFSET;
|
||||
|
||||
float10 in_ST0;
|
||||
|
||||
float10 fVar6;
|
||||
|
||||
float10 fVar7;
|
||||
|
||||
float10 in_ST1;
|
||||
|
||||
float10 in_ST2;
|
||||
|
||||
undefined4 local_80;
|
||||
|
||||
undefined4 local_7c;
|
||||
|
||||
undefined4 local_78;
|
||||
|
||||
undefined4 local_74;
|
||||
|
||||
undefined4 local_70;
|
||||
|
||||
undefined4 local_6c;
|
||||
|
||||
undefined4 local_68;
|
||||
|
||||
undefined2 local_64;
|
||||
|
||||
undefined2 uStack_62;
|
||||
|
||||
undefined4 *local_60;
|
||||
|
||||
undefined4 local_5c;
|
||||
|
||||
undefined4 local_58;
|
||||
|
||||
undefined4 uStack_54;
|
||||
|
||||
undefined4 uStack_50;
|
||||
|
||||
undefined4 uStack_4c;
|
||||
|
||||
undefined4 local_48;
|
||||
|
||||
undefined8 *local_44;
|
||||
|
||||
undefined4 *local_40;
|
||||
|
||||
undefined2 local_3c;
|
||||
|
||||
undefined2 uStack_3a;
|
||||
|
||||
undefined4 *******local_38;
|
||||
|
||||
undefined8 *puStack_34;
|
||||
|
||||
undefined4 *puStack_30;
|
||||
|
||||
undefined *puStack_2c;
|
||||
|
||||
undefined4 uStack_28;
|
||||
|
||||
undefined8 local_24;
|
||||
|
||||
int iVar8;
|
||||
|
||||
undefined4 uVar9;
|
||||
|
||||
|
||||
|
||||
iVar5 = 0xf;
|
||||
|
||||
do {
|
||||
|
||||
iVar5 = iVar5 + -1;
|
||||
|
||||
} while (iVar5 != 0);
|
||||
|
||||
LOCK();
|
||||
|
||||
UNLOCK();
|
||||
|
||||
local_24 = (double)CONCAT44(&stack0xfffffffc,&LAB_00480403);
|
||||
|
||||
uStack_28 = *in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = &uStack_28;
|
||||
|
||||
puStack_2c = (undefined *)0x47fa65;
|
||||
|
||||
_System_Randomize_qqrv();
|
||||
|
||||
puStack_2c = (undefined *)0x47fa6f;
|
||||
|
||||
local_38 = (undefined4 *******)_System__RandInt_qqrv(2);
|
||||
|
||||
fVar6 = (float10)(int)local_38;
|
||||
|
||||
puStack_2c = (undefined *)0x47fa7a;
|
||||
|
||||
iVar5 = _System__ROUND_qqrv();
|
||||
|
||||
_DAT_00504854 = 0;
|
||||
|
||||
_DAT_00504850 = 0;
|
||||
|
||||
if ((param_2 <= iVar5 + 10) ||
|
||||
|
||||
(0.0 <= (double)CONCAT44(DAT_004e4618._4_4_,(undefined4)DAT_004e4618))) {
|
||||
|
||||
_DAT_00504850 = (undefined4)DAT_004e4618;
|
||||
|
||||
_DAT_00504854 = DAT_004e4618._4_4_;
|
||||
|
||||
puStack_2c = (undefined *)CONCAT31((int3)((uint)extraout_EDX >> 8),DAT_004f48dc);
|
||||
|
||||
puStack_30 = &DAT_004e4260;
|
||||
|
||||
puStack_34 = &DAT_004f46b0;
|
||||
|
||||
local_38 = (undefined4 *******)0x1;
|
||||
|
||||
local_3c = 0xfb21;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
Calc_Kanjub((int)DAT_004f48d3,PTR_DAT_004d25b8 + DAT_004f48d3 * 0x30 + -0x30,0);
|
||||
|
||||
bVar1 = false;
|
||||
|
||||
if ((((double)CONCAT44(DAT_004f472c,DAT_004f4728) != 0.0) ||
|
||||
|
||||
((double)CONCAT44(DAT_004e43d4,DAT_004e43d0) != 0.0)) &&
|
||||
|
||||
(DAT_004e4610 < *(double *)PTR_DAT_004d2758)) {
|
||||
|
||||
bVar1 = true;
|
||||
|
||||
DAT_004f4728 = 0;
|
||||
|
||||
DAT_004f472c = 0;
|
||||
|
||||
DAT_004e43d0 = 0;
|
||||
|
||||
DAT_004e43d4 = 0;
|
||||
|
||||
DAT_004f4730 = 0;
|
||||
|
||||
DAT_004f4734 = 0;
|
||||
|
||||
DAT_004e43d8 = 0;
|
||||
|
||||
DAT_004e43dc = 0;
|
||||
|
||||
DAT_004f4738 = 0;
|
||||
|
||||
DAT_004f473c = 0;
|
||||
|
||||
DAT_004e43e0 = 0;
|
||||
|
||||
DAT_004e43e4 = 0;
|
||||
|
||||
}
|
||||
|
||||
if (((double)CONCAT44(DAT_004f4720._4_4_,(undefined4)DAT_004f4720) != 0.0) &&
|
||||
|
||||
(DAT_004e4610 < *(double *)(PTR_DAT_004d2458 + 8))) {
|
||||
|
||||
bVar1 = true;
|
||||
|
||||
DAT_004f4720._0_4_ = 0;
|
||||
|
||||
DAT_004f4720._4_4_ = 0;
|
||||
|
||||
}
|
||||
|
||||
iVar8 = 0;
|
||||
|
||||
if (1 < DAT_004f484c - 8) {
|
||||
|
||||
if (DAT_004f4874 == 2) {
|
||||
|
||||
iVar8 = 0x26;
|
||||
|
||||
}
|
||||
|
||||
else if ((DAT_004f4874 == 1) || (*(double *)(PTR_DAT_004d2608 + 0x18) <= DAT_004e4608)) {
|
||||
|
||||
if (DAT_004f4874 == 2) {
|
||||
|
||||
iVar8 = 0x26;
|
||||
|
||||
}
|
||||
|
||||
else if (DAT_004f484c == 3) {
|
||||
|
||||
iVar8 = 0x25;
|
||||
|
||||
}
|
||||
|
||||
else if ((DAT_004f484c < 3) || (DAT_004f484c == 4)) {
|
||||
|
||||
iVar8 = 0x24;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
iVar8 = 0;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (*(double *)(PTR_DAT_004d2608 + 8) <= DAT_004e4608) {
|
||||
|
||||
if (*(double *)(PTR_DAT_004d2608 + 0x10) <= DAT_004e4608) {
|
||||
|
||||
iVar8 = 0x1f;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
iVar8 = 0x1a;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
iVar8 = 0x15;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (((iVar8 == 0) || (DAT_004f4834 == 1)) || (DAT_004f484c == 5)) {
|
||||
|
||||
if ((double)CONCAT44(DAT_004f4798._4_4_,DAT_004f4798._0_4_) != 0.0) {
|
||||
|
||||
bVar1 = true;
|
||||
|
||||
}
|
||||
|
||||
DAT_004f4798 = 0.0;
|
||||
|
||||
in_ST2 = in_ST1;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
local_3c = 0xfd07;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
_Apodset_TApolloTable_Go_qqri(*(undefined4 *)(param_1 + 0x490),iVar8);
|
||||
|
||||
local_3c = 0xfd17;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_19");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
fVar6 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST1;
|
||||
|
||||
DAT_004f4798 = (double)CONCAT44(DAT_004f4798._4_4_,DAT_004f4798._0_4_);
|
||||
|
||||
if (local_24 != (double)CONCAT44(DAT_004f4798._4_4_,DAT_004f4798._0_4_)) {
|
||||
|
||||
bVar1 = true;
|
||||
|
||||
DAT_004f4798 = local_24;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
local_3c = 0xfd74;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
_Apodset_TApolloTable_Go_qqri(*(undefined4 *)(param_1 + 0x490),0x32);
|
||||
|
||||
iVar8 = 0;
|
||||
|
||||
fVar7 = fVar6;
|
||||
|
||||
if ((DAT_004f484c == 5) || (iVar8 = DAT_004f484c - 10, DAT_004f484c - 8 < 2)) {
|
||||
|
||||
local_24 = 0.0;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
iVar8 = DAT_004f4838 + 1;
|
||||
|
||||
switch(iVar8) {
|
||||
|
||||
case 0:
|
||||
|
||||
local_24 = 0.0;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
switch(DAT_004f484c) {
|
||||
|
||||
case 0:
|
||||
|
||||
local_3c = 0xfe83;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
fVar7 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST2;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_01");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
iVar8 = extraout_EDX_05;
|
||||
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
||||
case 4:
|
||||
|
||||
local_3c = 0xfec5;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
fVar7 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST2;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_04");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
iVar8 = extraout_EDX_08;
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
||||
local_3c = 0xfe99;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
fVar7 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST2;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_02");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
iVar8 = extraout_EDX_06;
|
||||
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
||||
local_3c = 0xfeaf;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
fVar7 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST2;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_03");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
iVar8 = extraout_EDX_07;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
local_24 = 0.0;
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
||||
local_3c = 0xfde6;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_06");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
iVar8 = extraout_EDX_00;
|
||||
|
||||
fVar7 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST2;
|
||||
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
||||
local_3c = 0xfdff;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_07");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
iVar8 = extraout_EDX_01;
|
||||
|
||||
fVar7 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST2;
|
||||
|
||||
break;
|
||||
|
||||
case 4:
|
||||
|
||||
local_3c = 0xfe18;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_08");
|
||||
|
||||
local_24 = (double)fVar6;
|
||||
|
||||
iVar8 = extraout_EDX_02;
|
||||
|
||||
fVar7 = in_ST0;
|
||||
|
||||
in_ST0 = in_ST2;
|
||||
|
||||
break;
|
||||
|
||||
case 5:
|
||||
|
||||
local_3c = 0xfe31;
|
||||
|
||||
uStack_3a = 0x47;
|
||||
|
||||
_Apodset_TApolloTable_GetDouble_qqr17System_AnsiString
|
||||
|
||||
(*(undefined4 *)(param_1 + 0x490),"RATE_09");
|
||||
|
||||
+195
@@ -0,0 +1,195 @@
|
||||
|
||||
|
||||
void FUN_004805f8(int param_1)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
int *piVar1;
|
||||
|
||||
uint uVar2;
|
||||
|
||||
undefined4 uVar3;
|
||||
|
||||
int iVar4;
|
||||
|
||||
undefined4 unaff_EBX;
|
||||
|
||||
undefined4 unaff_ESI;
|
||||
|
||||
int *in_FS_OFFSET;
|
||||
|
||||
undefined **ppuVar5;
|
||||
|
||||
undefined *puVar6;
|
||||
|
||||
undefined4 uVar7;
|
||||
|
||||
undefined *puVar8;
|
||||
|
||||
undefined *puVar9;
|
||||
|
||||
undefined *local_44;
|
||||
|
||||
undefined4 local_40;
|
||||
|
||||
undefined *local_3c;
|
||||
|
||||
undefined *local_38;
|
||||
|
||||
undefined1 *local_34;
|
||||
|
||||
undefined *local_30;
|
||||
|
||||
undefined *local_2c;
|
||||
|
||||
undefined4 local_28;
|
||||
|
||||
undefined *local_24;
|
||||
|
||||
int iStack_20;
|
||||
|
||||
undefined1 *puStack_1c;
|
||||
|
||||
undefined1 *puStack_18;
|
||||
|
||||
undefined4 local_c;
|
||||
|
||||
undefined4 local_8;
|
||||
|
||||
|
||||
|
||||
puStack_18 = &stack0xfffffffc;
|
||||
|
||||
iVar4 = 8;
|
||||
|
||||
do {
|
||||
|
||||
local_8 = 0;
|
||||
|
||||
iVar4 = iVar4 + -1;
|
||||
|
||||
} while (iVar4 != 0);
|
||||
|
||||
puStack_1c = &LAB_00480a27;
|
||||
|
||||
iStack_20 = *in_FS_OFFSET;
|
||||
|
||||
*in_FS_OFFSET = (int)&iStack_20;
|
||||
|
||||
local_24 = (undefined *)0x480626;
|
||||
|
||||
_Controls_TControl_SetVisible_qqro(*(undefined4 *)(param_1 + 0xde4),1);
|
||||
|
||||
if (DAT_004f4880 == 1) {
|
||||
|
||||
while( true ) {
|
||||
|
||||
local_24 = (undefined *)0x48065c;
|
||||
|
||||
iVar4 = (**(code **)(**(int **)(*(int *)(param_1 + 0xde4) + 0x284) + 0x14))();
|
||||
|
||||
if (iVar4 < 5) break;
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x48064b;
|
||||
|
||||
(**(code **)(*piVar1 + 0x48))(piVar1,4);
|
||||
|
||||
}
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x480679;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,0,&LAB_00480a3c);
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x480694;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,1,&DAT_00480a50);
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x4806af;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,2,&DAT_00480a64);
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x4806ca;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,3,&DAT_00480a80);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
while( true ) {
|
||||
|
||||
local_24 = (undefined *)0x4806f3;
|
||||
|
||||
iVar4 = (**(code **)(**(int **)(*(int *)(param_1 + 0xde4) + 0x284) + 0x14))();
|
||||
|
||||
if (4 < iVar4) break;
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x4806e2;
|
||||
|
||||
(**(code **)(*piVar1 + 0x38))(piVar1,0);
|
||||
|
||||
}
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x480710;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,0,&LAB_00480a3c);
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x48072b;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,1,&LAB_00480a94);
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x480746;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,2,&LAB_00480aa8);
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x480761;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,3,&LAB_00480ac4);
|
||||
|
||||
piVar1 = *(int **)(*(int *)(param_1 + 0xde4) + 0x284);
|
||||
|
||||
local_24 = (undefined *)0x48077c;
|
||||
|
||||
(**(code **)(*piVar1 + 0x20))(piVar1,4,&DAT_00480ae0);
|
||||
|
||||
}
|
||||
|
||||
if (DAT_004f4880 == 1) {
|
||||
|
||||
if (DAT_004f4834 == 1) {
|
||||
|
||||
local_24 = &DAT_00480af4;
|
||||
|
||||
local_28 = 0x4807a5;
|
||||
|
||||
_Controls_TControl_GetText_qqrv(*(undefined4 *)(param_1 + 0xde8),&local_8);
|
||||
|
||||
local_28 = local_8;
|
||||
|
||||
local_2c = &DAT_00480b1c;
|
||||
|
||||
local_30 = &DAT_00480b28;
|
||||
|
||||
local_34 = &LAB_00480b34;
|
||||
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
+68
@@ -0,0 +1,68 @@
|
||||
|
||||
|
||||
void FUN_0045a468(double *param_1,int param_2,int param_3,double param_4)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
double dVar1;
|
||||
|
||||
int iVar2;
|
||||
|
||||
float10 in_ST0;
|
||||
|
||||
undefined4 local_3c;
|
||||
|
||||
undefined4 uStack_38;
|
||||
|
||||
double local_34;
|
||||
|
||||
double local_1c;
|
||||
|
||||
undefined4 local_14;
|
||||
|
||||
undefined4 local_10;
|
||||
|
||||
|
||||
|
||||
_System__FillChar_qqrpvic(&local_3c,0x30,0);
|
||||
|
||||
local_3c = *(undefined4 *)param_1;
|
||||
|
||||
uStack_38 = *(undefined4 *)((int)param_1 + 4);
|
||||
|
||||
local_14 = *(undefined4 *)(param_1 + 5);
|
||||
|
||||
local_10 = *(undefined4 *)((int)param_1 + 0x2c);
|
||||
|
||||
if ((param_4 != 0.0) || (param_1[1] == 0.0)) {
|
||||
|
||||
local_34 = (*param_1 * param_4) / 100.0;
|
||||
|
||||
local_1c = (double)(((100.0 - (float)param_4) * (float)*param_1) / 100.0);
|
||||
|
||||
if (param_3 == 1) {
|
||||
|
||||
iVar2 = 0xb;
|
||||
|
||||
do {
|
||||
|
||||
iVar2 = iVar2 + -1;
|
||||
|
||||
} while (-1 < iVar2);
|
||||
|
||||
OPTIMIZ();
|
||||
|
||||
iVar2 = *(int *)PTR_DAT_005e5d84;
|
||||
|
||||
*(undefined4 *)(param_1 + 1) = *(undefined4 *)(iVar2 + 8);
|
||||
|
||||
*(undefined4 *)((int)param_1 + 0xc) = *(undefined4 *)(iVar2 + 0xc);
|
||||
|
||||
}
|
||||
|
||||
else if (param_3 == 2) {
|
||||
|
||||
local_1c = (*param_1 * param_4) / 100.0;
|
||||
|
||||
+1
File diff suppressed because one or more lines are too long
+4862
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+94
@@ -0,0 +1,94 @@
|
||||
|
||||
|
||||
void FUN_00473a9c(undefined4 param_1,int param_2)
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
undefined1 *puVar1;
|
||||
|
||||
int iVar2;
|
||||
|
||||
int iVar3;
|
||||
|
||||
undefined4 *puVar4;
|
||||
|
||||
undefined4 *puVar5;
|
||||
|
||||
int *in_FS_OFFSET;
|
||||
|
||||
byte bVar6;
|
||||
|
||||
undefined1 auStack_10674 [544];
|
||||
|
||||
undefined4 auStack_10454 [2];
|
||||
|
||||
double dStack_1044c;
|
||||
|
||||
double dStack_10444;
|
||||
|
||||
double dStack_103c4;
|
||||
|
||||
undefined4 uStack_10304;
|
||||
|
||||
undefined4 uStack_10300;
|
||||
|
||||
undefined4 uStack_102fc;
|
||||
|
||||
undefined4 uStack_102f8;
|
||||
|
||||
undefined4 uStack_102f4;
|
||||
|
||||
undefined4 uStack_102f0;
|
||||
|
||||
undefined4 uStack_102ec;
|
||||
|
||||
undefined4 uStack_102e8;
|
||||
|
||||
undefined4 uStack_102ac;
|
||||
|
||||
undefined4 uStack_102a8;
|
||||
|
||||
undefined4 uStack_10284;
|
||||
|
||||
undefined4 uStack_10280;
|
||||
|
||||
double dStack_10174;
|
||||
|
||||
undefined4 uStack_16a4;
|
||||
|
||||
undefined1 *puStack_16a0;
|
||||
|
||||
undefined4 *puStack_169c;
|
||||
|
||||
undefined1 *puStack_1698;
|
||||
|
||||
undefined4 uStack_1694;
|
||||
|
||||
undefined4 uStack_1690;
|
||||
|
||||
int iStack_168c;
|
||||
|
||||
undefined1 *puStack_1688;
|
||||
|
||||
undefined1 *puStack_1684;
|
||||
|
||||
|
||||
|
||||
bVar6 = 0;
|
||||
|
||||
iVar2 = 0x10;
|
||||
|
||||
do {
|
||||
|
||||
iVar3 = iVar2;
|
||||
|
||||
iVar2 = iVar3 + -1;
|
||||
|
||||
} while (iVar2 != 0);
|
||||
|
||||
puStack_1684 = (undefined1 *)0x473ad0;
|
||||
|
||||
_System__InitializeRecord_qqrpvt1(auStack_10454,&DAT_00463d88);
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
Main.Txt 0x4ea305 2 [11, 91]
|
||||
M.Txt 0x4eac0b 18 [12, 42, 72, 78, 90, 102, 114, 120, 132, 138, 150, 156, 168, 174, 186, 192, 204, 210]
|
||||
L.Txt 0x4ecfab 6 [12, 42, 72, 78, 90, 102]
|
||||
E.Txt 0x4ee03f 8 [12, 42, 72, 78, 90, 102, 114, 126]
|
||||
W.Txt 0x4ef503 8 [12, 42, 72, 78, 90, 102, 114, 126]
|
||||
J.Txt 0x4f09c8 8 [12, 42, 72, 78, 90, 102, 114, 126]
|
||||
GongJong.Txt 0x4f2788 3 [13, 43, 47]
|
||||
Unit.Txt 0x4f3885 9 [12, 42, 72, 78, 90, 102, 114, 126, 130]
|
||||
JUnit.Txt 0x4f4e79 9 [12, 42, 72, 78, 90, 102, 114, 126, 130]
|
||||
Danga.Txt 0x4f649c 9 [12, 42, 72, 78, 90, 102, 114, 126, 130]
|
||||
MainPart.Txt 0x4f7db4 30 [13, 24, 54, 84, 90, 100, 112, 124, 136, 148, 150, 151, 152, 162, 163, 175, 176, 188, 198, 210, 220, 232, 242, 254, 264, 276, 286, 298, 308, 318]
|
||||
UnitPart.Txt 0x4fad23 27 [12, 23, 53, 83, 89, 99, 111, 123, 135, 147, 149, 150, 151, 161, 162, 172, 184, 194, 206, 216, 228, 238, 250, 260, 272, 282, 292]
|
||||
JPart.Txt 0x4fe0f4 18 [12, 23, 34, 64, 94, 100, 110, 122, 134, 146, 158, 160, 161, 162, 168, 169, 173, 177]
|
||||
+268
@@ -0,0 +1,268 @@
|
||||
## 0x4ea20f Main.Txt
|
||||
## 0x4ea269 Main.Txt
|
||||
## 0x4ea39e Main.Txt
|
||||
## 0x4ea3c7 Main.Txt
|
||||
## 0x4ea6ac CostAccount.Txt
|
||||
## 0x4ea891 M.Txt
|
||||
## 0x4ea8ea M.Txt
|
||||
0x4ea982 F_CODE type ? push ['0xc', '0']
|
||||
0x4ea994 F_DES type ? push ['0x1e', '0']
|
||||
0x4ea9a6 F_SIZE type ? push ['0x1e', '0']
|
||||
0x4ea9b8 F_UNIT type ? push ['6', '0']
|
||||
0x4ea9ca F_MPRICE type ? push ['0xc', '0']
|
||||
0x4ea9dc F_SCODE type ? push ['0xc', '0']
|
||||
0x4ea9ee F_PRICE1 type ? push ['0xc', '0']
|
||||
0x4eaa00 F_PAGE1 type ? push ['6', '0']
|
||||
0x4eaa12 F_PRICE2 type ? push ['0xc', '0']
|
||||
0x4eaa24 F_PAGE2 type ? push ['6', '0']
|
||||
0x4eaa36 F_PRICE3 type ? push ['0xc', '0']
|
||||
0x4eaa48 F_PAGE3 type ? push ['6', '0']
|
||||
0x4eaa5a F_PRICE4 type ? push ['0xc', '0']
|
||||
0x4eaa6c F_PAGE4 type ? push ['6', '0']
|
||||
0x4eaa7e F_PRICE5 type ? push ['0xc', '0']
|
||||
0x4eaa90 F_PAGE5 type ? push ['6', '0']
|
||||
0x4eaaa2 F_PRICE6 type ? push ['0xc', '0']
|
||||
0x4eaab4 F_PAGE6 type ? push ['6', '0']
|
||||
0x4eaac6 F_BIGO type ? push ['0xc', '0']
|
||||
0x4eaad8 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4eaaea \M.Dbf
|
||||
## 0x4eabde M.Txt
|
||||
## 0x4ead4a M.Txt
|
||||
## 0x4ecd09 L.Txt
|
||||
## 0x4ecd62 L.Txt
|
||||
0x4ecdfa F_CODE type ? push ['0xc', '0']
|
||||
0x4ece0c F_DES type ? push ['0x1e', '0']
|
||||
0x4ece1e F_SIZE type ? push ['0x1e', '0']
|
||||
0x4ece30 F_UNIT type ? push ['6', '0']
|
||||
0x4ece42 F_LPRICE type ? push ['0xc', '0']
|
||||
0x4ece54 F_SCODE type ? push ['0xc', '0']
|
||||
0x4ece66 F_BIGO type ? push ['0xc', '0']
|
||||
0x4ece78 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4ece8a \L.Dbf
|
||||
## 0x4ecf7e L.Txt
|
||||
## 0x4ed05a L.Txt
|
||||
## 0x4edd79 E.Txt
|
||||
## 0x4eddd2 E.Txt
|
||||
0x4ede6a F_CODE type ? push ['0xc', '0']
|
||||
0x4ede7c F_DES type ? push ['0x1e', '0']
|
||||
0x4ede8e F_SIZE type ? push ['0x1e', '0']
|
||||
0x4edea0 F_UNIT type ? push ['6', '0']
|
||||
0x4edeb2 F_MPRICE type ? push ['0xc', '0']
|
||||
0x4edec4 F_LPRICE type ? push ['0xc', '0']
|
||||
0x4eded6 F_EPRICE type ? push ['0xc', '0']
|
||||
0x4edee8 F_SCODE type ? push ['0xc', '0']
|
||||
0x4edefa F_BIGO type ? push ['0xc', '0']
|
||||
0x4edf0c F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4edf1e \E.Dbf
|
||||
## 0x4ee012 E.Txt
|
||||
## 0x4ee106 E.Txt
|
||||
## 0x4ef23d W.Txt
|
||||
## 0x4ef296 W.Txt
|
||||
0x4ef32e F_CODE type ? push ['0xc', '0']
|
||||
0x4ef340 F_DES type ? push ['0x1e', '0']
|
||||
0x4ef352 F_SIZE type ? push ['0x1e', '0']
|
||||
0x4ef364 F_UNIT type ? push ['6', '0']
|
||||
0x4ef376 F_MPRICE type ? push ['0xc', '0']
|
||||
0x4ef388 F_LPRICE type ? push ['0xc', '0']
|
||||
0x4ef39a F_EPRICE type ? push ['0xc', '0']
|
||||
0x4ef3ac F_SCODE type ? push ['0xc', '0']
|
||||
0x4ef3be F_BIGO type ? push ['0xc', '0']
|
||||
0x4ef3d0 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4ef3e2 \W.Dbf
|
||||
## 0x4ef4d6 W.Txt
|
||||
## 0x4ef5ca W.Txt
|
||||
## 0x4f0702 J.Txt
|
||||
## 0x4f075b J.Txt
|
||||
0x4f07f3 F_CODE type ? push ['0xc', '0']
|
||||
0x4f0805 F_DES type ? push ['0x1e', '0']
|
||||
0x4f0817 F_SIZE type ? push ['0x1e', '0']
|
||||
0x4f0829 F_UNIT type ? push ['6', '0']
|
||||
0x4f083b F_MPRICE type ? push ['0xc', '0']
|
||||
0x4f084d F_LPRICE type ? push ['0xc', '0']
|
||||
0x4f085f F_EPRICE type ? push ['0xc', '0']
|
||||
0x4f0871 F_SCODE type ? push ['0xc', '0']
|
||||
0x4f0883 F_BIGO type ? push ['0xc', '0']
|
||||
0x4f0895 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4f08a7 \J.Dbf
|
||||
## 0x4f099b J.Txt
|
||||
## 0x4f0a8f J.Txt
|
||||
## 0x4f24e6 GongJong.Txt
|
||||
## 0x4f253f GongJong.Txt
|
||||
0x4f25d7 F_CODE type ? push ['0xc', '0']
|
||||
0x4f25e9 F_DES type ? push ['0x1e', '0']
|
||||
0x4f25fb F_QQTY type ? push ['0xa', '0']
|
||||
0x4f260d F_MPRICE type ? push ['0xc', '0']
|
||||
0x4f261f F_LPRICE type ? push ['0xc', '0']
|
||||
0x4f2631 F_EPRICE type ? push ['0xc', '0']
|
||||
0x4f2643 F_BIGO type ? push ['0xc', '0']
|
||||
0x4f2655 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4f2667 \GongJong.Dbf
|
||||
## 0x4f275b GongJong.Txt
|
||||
## 0x4f2813 GongJong.Txt
|
||||
## 0x4f35ad Unit.Txt
|
||||
## 0x4f3606 Unit.Txt
|
||||
0x4f369e F_CODE type ? push ['0xc', '0']
|
||||
0x4f36b0 F_DES type ? push ['0x1e', '0']
|
||||
0x4f36c2 F_SIZE type ? push ['0x1e', '0']
|
||||
0x4f36d4 F_UNIT type ? push ['6', '0']
|
||||
0x4f36e6 F_MPRICE type ? push ['0xc', '0']
|
||||
0x4f36f8 F_LPRICE type ? push ['0xc', '0']
|
||||
0x4f370a F_EPRICE type ? push ['0xc', '0']
|
||||
0x4f371c F_SCODE type ? push ['0xc', '0']
|
||||
0x4f372e F_TFNO type ? push ['4', '0']
|
||||
0x4f3740 F_BIGO type ? push ['0xc', '0']
|
||||
0x4f3752 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4f3764 \Unit.Dbf
|
||||
## 0x4f3858 Unit.Txt
|
||||
## 0x4f3958 Unit.Txt
|
||||
## 0x4f4ba1 JUnit.Txt
|
||||
## 0x4f4bfa JUnit.Txt
|
||||
0x4f4c92 F_CODE type ? push ['0xc', '0']
|
||||
0x4f4ca4 F_DES type ? push ['0x1e', '0']
|
||||
0x4f4cb6 F_SIZE type ? push ['0x1e', '0']
|
||||
0x4f4cc8 F_UNIT type ? push ['6', '0']
|
||||
0x4f4cda F_MPRICE type ? push ['0xc', '0']
|
||||
0x4f4cec F_LPRICE type ? push ['0xc', '0']
|
||||
0x4f4cfe F_EPRICE type ? push ['0xc', '0']
|
||||
0x4f4d10 F_SCODE type ? push ['0xc', '0']
|
||||
0x4f4d22 F_TFNO type ? push ['4', '0']
|
||||
0x4f4d34 F_BIGO type ? push ['0xc', '0']
|
||||
0x4f4d46 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4f4d58 \JUnit.Dbf
|
||||
## 0x4f4e4c JUnit.Txt
|
||||
## 0x4f4f4c JUnit.Txt
|
||||
## 0x4f61b2 Danga.Txt
|
||||
## 0x4f620b Danga.Txt
|
||||
0x4f62a3 F_CODE type ? push ['0xc', '0']
|
||||
0x4f62b5 F_DES type ? push ['0x1e', '0']
|
||||
0x4f62c7 F_SIZE type ? push ['0x1e', '0']
|
||||
0x4f62d9 F_UNIT type ? push ['6', '0']
|
||||
0x4f62eb F_MPRICE type ? push ['0xc', '0']
|
||||
0x4f62fd F_LPRICE type ? push ['0xc', '0']
|
||||
0x4f630f F_EPRICE type ? push ['0xc', '0']
|
||||
0x4f6321 F_SCODE type ? push ['0xc', '0']
|
||||
0x4f6333 F_TFNO type ? push ['4', '0']
|
||||
0x4f6345 F_BIGO type ? push ['0xc', '0']
|
||||
0x4f6357 F_ORICODE type ? push ['0xc', '0']
|
||||
0x4f6369 F_MEMO type ? push ['0xa', '0']
|
||||
## 0x4f637b \Danga.Dbf
|
||||
## 0x4f646f Danga.Txt
|
||||
## 0x4f656f Danga.Txt
|
||||
## 0x4f7909 MainPart.Txt
|
||||
## 0x4f7962 MainPart.Txt
|
||||
0x4f7a29 F_CODE type ? push ['0xc', '0']
|
||||
0x4f7a3b F_SEQ type ? push ['0xa', '0']
|
||||
0x4f7a4d F_CODE1 type ? push ['0xc', '0']
|
||||
0x4f7a5f F_DES type ? push ['0x1e', '0']
|
||||
0x4f7a71 F_SIZE type ? push ['0x1e', '0']
|
||||
0x4f7a83 F_UNIT type ? push ['6', '0']
|
||||
0x4f7a95 F_QQTY type ? push ['0xa', '0']
|
||||
0x4f7aa7 F_MPRICE type ? push ['0xc', '0']
|
||||
0x4f7ab9 F_LPRICE type ? push ['0xc', '0']
|
||||
0x4f7acb F_EPRICE type ? push ['0xc', '0']
|
||||
0x4f7add F_SPROPER type ? push ['2', '0']
|
||||
0x4f7aef F_LOADBM type ? push ['1', '0']
|
||||
0x4f7b01 F_SAVEBM type ? push ['1', '0']
|
||||
0x4f7b13 F_SRATE type ? push ['0xa', '0']
|
||||
0x4f7b25 F_KWAN type ? push ['1', '0']
|
||||
0x4f7b37 F_SCOST type ? push ['0xc', '0']
|
||||
0x4f7b49 F_SGUBUN type ? push ['1', '0']
|
||||
0x4f7b5b F_SCODE type ? push ['0xc', '0']
|
||||
0x4f7b6d F_SANQTY type ? push ['0xa', '0']
|
||||
0x4f7b7f F_LCODE1 type ? push ['0xc', '0']
|
||||
0x4f7b91 F_LQTY1 type ? push ['0xa', '0']
|
||||
0x4f7ba3 F_LCODE2 type ? push ['0xc', '0']
|
||||
0x4f7bb5 F_LQTY2 type ? push ['0xa', '0']
|
||||
0x4f7bc7 F_LCODE3 type ? push ['0xc', '0']
|
||||
0x4f7bd9 F_LQTY3 type ? push ['0xa', '0']
|
||||
0x4f7beb F_LCODE4 type ? push ['0xc', '0']
|
||||
0x4f7bfd F_LQTY4 type ? push ['0xa', '0']
|
||||
0x4f7c0f F_LCODE5 type ? push ['0xc', '0']
|
||||
0x4f7c21 F_LQTY5 type ? push ['0xa', '0']
|
||||
0x4f7c33 F_LRATE type ? push ['0xa', '0']
|
||||
0x4f7c48 F_SAN type ? push ['0x7d0', '0']
|
||||
0x4f7c5a F_CLASS type ? push ['1', '0']
|
||||
0x4f7c6c F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4f7c7e \MainPart.Dbf
|
||||
## 0x4f7d7f MainPart.Txt
|
||||
## 0x4f7f83 MainPart.Txt
|
||||
## 0x4fa884 UnitPart.Txt
|
||||
## 0x4fa8ef UnitPart.Txt
|
||||
0x4fa995 F_CODE type ? push ['0xc', '0']
|
||||
0x4fa9a7 F_SEQ type ? push ['0xa', '0']
|
||||
0x4fa9b9 F_CODE1 type ? push ['0xc', '0']
|
||||
0x4fa9cb F_DES type ? push ['0x1e', '0']
|
||||
0x4fa9dd F_SIZE type ? push ['0x1e', '0']
|
||||
0x4fa9ef F_UNIT type ? push ['6', '0']
|
||||
0x4faa01 F_QQTY type ? push ['0xa', '0']
|
||||
0x4faa13 F_MPRICE type ? push ['0xc', '0']
|
||||
0x4faa25 F_LPRICE type ? push ['0xc', '0']
|
||||
0x4faa37 F_EPRICE type ? push ['0xc', '0']
|
||||
0x4faa49 F_MCOST type ? push ['0xc', '0']
|
||||
0x4faa5b F_LCOST type ? push ['0xc', '0']
|
||||
0x4faa6d F_ECOST type ? push ['0xc', '0']
|
||||
0x4faa7f F_SPROPER type ? push ['2', '0']
|
||||
0x4faa91 F_LOADBM type ? push ['1', '0']
|
||||
0x4faaa3 F_SAVEBM type ? push ['1', '0']
|
||||
0x4faab5 F_SRATE type ? push ['0xa', '0']
|
||||
0x4faac7 F_KWAN type ? push ['1', '0']
|
||||
0x4faad9 F_SANQTY type ? push ['0xa', '0']
|
||||
0x4faaeb F_LCODE1 type ? push ['0xc', '0']
|
||||
0x4faafd F_LQTY1 type ? push ['0xa', '0']
|
||||
0x4fab0f F_LCODE2 type ? push ['0xc', '0']
|
||||
0x4fab21 F_LQTY2 type ? push ['0xa', '0']
|
||||
0x4fab33 F_LCODE3 type ? push ['0xc', '0']
|
||||
0x4fab45 F_LQTY3 type ? push ['0xa', '0']
|
||||
0x4fab57 F_LCODE4 type ? push ['0xc', '0']
|
||||
0x4fab69 F_LQTY4 type ? push ['0xa', '0']
|
||||
0x4fab7b F_LCODE5 type ? push ['0xc', '0']
|
||||
0x4fab8d F_LQTY5 type ? push ['0xa', '0']
|
||||
0x4fab9f F_LRATE type ? push ['0xa', '0']
|
||||
0x4fabb4 F_SAN type ? push ['0x7d0', '0']
|
||||
0x4fabc6 F_CLASS type ? push ['1', '0']
|
||||
0x4fabd8 F_ORICODE type ? push ['0xc', '0']
|
||||
## 0x4fabed \UnitPart.Dbf
|
||||
## 0x4facee UnitPart.Txt
|
||||
## 0x4faee3 UnitPart.Txt
|
||||
## 0x4fdd8a JPart.Txt
|
||||
## 0x4fdde3 JPart.Txt
|
||||
0x4fde83 F_CODE type ? push ['0xc', '0']
|
||||
0x4fde95 F_SEQ type ? push ['0xa', '0']
|
||||
0x4fdea7 F_CODE1 type ? push ['0xc', '0']
|
||||
0x4fdeb9 F_DES type ? push ['0x1e', '0']
|
||||
0x4fdecb F_SIZE type ? push ['0x1e', '0']
|
||||
0x4fdedd F_UNIT type ? push ['6', '0']
|
||||
0x4fdeef F_QQTY type ? push ['0xa', '0']
|
||||
0x4fdf01 F_MPRICE type ? push ['0xc', '0']
|
||||
0x4fdf13 F_LPRICE type ? push ['0xc', '0']
|
||||
0x4fdf25 F_EPRICE type ? push ['0xc', '0']
|
||||
0x4fdf37 F_SPROPER type ? push ['2', '0']
|
||||
0x4fdf49 F_LOADBM type ? push ['1', '0']
|
||||
0x4fdf5b F_SAVEBM type ? push ['1', '0']
|
||||
0x4fdf6d F_SRATE type ? push ['0xa', '0']
|
||||
0x4fdf7f F_KWAN type ? push ['1', '0']
|
||||
0x4fdf91 F_CLASS type ? push ['1', '0']
|
||||
0x4fdfa3 F_ORICODE type ? push ['0xc', '0']
|
||||
0x4fdfb5 F_GBCODE type ? push ['0xc', '0']
|
||||
## 0x4fdfc7 \JUnitPart.Dbf
|
||||
## 0x4fe0bf JPart.Txt
|
||||
## 0x4fe233 JUnitPart.Txt
|
||||
### 열 개수 검사(0x405bfc 뒤 cmp)
|
||||
Main.Txt 0x4ea3b5 eax, 3
|
||||
Main.Txt 0x4ea69a eax, 6
|
||||
M.Txt 0x4ead38 eax, 0x13
|
||||
L.Txt 0x4ed048 eax, 7
|
||||
E.Txt 0x4ee0f4 eax, 9
|
||||
W.Txt 0x4ef5b8 eax, 9
|
||||
J.Txt 0x4f0a7d eax, 9
|
||||
GongJong.Txt 0x4f2801 eax, 4
|
||||
GongJong.Txt 0x4f2b55 eax, 3
|
||||
GongJong.Txt 0x4f2c21 eax, 4
|
||||
GongJong.Txt 0x4f2ced eax, 5
|
||||
GongJong.Txt 0x4f2db9 eax, 2
|
||||
Unit.Txt 0x4f3946 eax, 0xa
|
||||
JUnit.Txt 0x4f4f3a eax, 0xa
|
||||
Danga.Txt 0x4f655d eax, 0xa
|
||||
MainPart.Txt 0x4f7f71 eax, 0x1f
|
||||
UnitPart.Txt 0x4faece eax, 0x1c
|
||||
JPart.Txt 0x4fe221 eax, 0x13
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
| " | 표준시장/시장시공 수량,금액 집계표 | 0601 | 총괄내역서 | 총 괄 내 역 서 | 0608 | 공사원가계산서 | 공 사 원 가 계 산 서 | 비 목 | 구 분 | 금 액 | 구 성 비 | 비 고 | 착공일로부터 ○○개월 | 0609 | 총괄집계표 | 총 괄 집 계 표 | 0602 | 총괄내역서(종양식) | 산출내역 | 0603 | 내역서 | 설 계 내 역 서 | 총 액 | 0604 | 내역서(종양식) | 0605 | 분할내역서(횡양식) | 분 할 내 역 서 | 전 체 | 금 회 | 0606 | 내역서(도공양식) | 0607 | 사,관급내역서 | 관 급 내 역 서 | 사 급 분 | 계 | 0613 | 견적내역서 | 견 적 내 역 서 | 0614 | 견적내역서(종양식) | 0615 | 견적단가대비표 | 견 적 단 가 대 비 표 | 견적단가 | 기준단가 | 0623 | 계약내역서 | 계 약 내 역 서 | 0624 | 계약내역서(종양식) | 0632 | 기성부분총괄내역서 | 기성부분 총괄내역서 | 계 약 | 전 회 | 금 회 | 누 계 | 금 액 | 비율 | 0633 | 기성내역서 | 기 성 내 역 서 | 0634 | 기성내역서(사정) | 사 정 | 0635 | 기성내역서(기성율) | 0636 | 기성검사조서(을) | 기성부분 감독/검사 조서(을) | 계 약 금 액 | 기 성 고 (%) | 전회 | 금회 | 누계 | 기 성 금 액 | 0637 | 기성검사조서(병) | 기성부분 감독/검사 조서(병) | 0638 | 기성부분수량조서 | 기 성 부 분 수 량 조 서 | 기 성 수 량 | 전회누계 | 기성(%) | 잔 량 | 0643 | 변경내역서 | 설 계 변 경 내 역 서 | 0644 | 변경내역서(종양식) | 0645 | 설계변경내역서(변경율) | 증 감 | 0646 | 준공조서(을) | 준공 감독/검사조서(을) | 준 공 금 액 | 0647 | 준공조서(병) | 준공 감독/검사조서(병) | 0648 | 설계변경증감대비표 | 설 계 변 경 증 감 대 비 표 | 당 초 | 변 경 | 증 감 | 0651 | 총괄내역서(구.시도) | 총 괄 내 역 서 (구.시도) | 시 기 금 | 구 기 금 | 합 계 | 0652 | 총괄내역서(시도) | 총 괄 내 역 서 (시도) | 0653 | 총괄내역서(구도) | 총 괄 내 역 서 (구도) | 0654 | 설계내역서(굴착) | 0655 | 설계내역서(구.시도) | 설 계 내 역 서 (구.시도) | 0656 | 설계내역서(시도) | 설 계 내 역 서 (시도) | 0657 | 설계내역서(구도) | 설 계 내 역 서 (구도) | 0661 | 변경총괄내역서(구.시도) | 변 경 총 괄 내 역 서 (구.시도) | 0662 | 변경총괄내역서(시도) | 변 경 총 괄 내 역 서 (시도) | 0663 | 변경총괄내역서(구도) | 변 경 총 괄 내 역 서 (구도) | 0664 | 변경내역서(굴착) | 변 경 내 역 서 | 증 감 | 0665 | 변경내역서(구.시도) | 변 경 내 역 서 (구.시도) | 0666 | 변경내역서(시도) | 변 경 내 역 서 (시도) | 0667 | 변경내역서(구도) | 변 경 내 역 서 (구도) | 0672 | 총괄내역서(비교) | 0673 | 실행예산서Ⅰ | 실 행 예 산 서 | 공 종 | 설 계 ( 계 획 ) | 실 행 예 산 | 작 업 명 | 구 분 | 0674 | 실행예산서Ⅱ | 0675 | 재료비집계표 | 재 료 비 집 계 표 | 공 종 | 0676 | 노무비집계표 | 노 무 비 집 계 표 | 0677 | 중장비집계표 | 중 장 비 집 계 표 | 0678 | 자재사용계획 | 자 재 사 용 계 획 | 0679 | 인력투입계획 | 인 력 투 입 계 획 | 0671 | 장비투입계획 | 장 비 투 입 계 획 | 0693 | 기본수량 | 할증 | 내역물량 | 공량합계 | 0694 | 0695 | 간이명세서 | 간이공사비 산출명세서 | U뗭3�QQQQQQQQS�] | 딢 | 蘊�� | 3픘h | eH | d | 0d� 끱t%� | D` | � | 뗒鰲쟤 | 婉쏓 | hR먁A�H斅 | 꽵 | 꽛 | 힒 | h4eH | j | 뛇�딲 | � | 瘟샘 | 3픘h�dH | d | 0d� 梡濫 | j | j | � | 콯퇗eH | 搖濫 | j | j | � | 콯퇨eH | 娃濫 | j | j | �( | 콯퇲eH | 椀濫 | j | j | � | 콼�|eH | 壅濫 | j | j | � | 콾툕eH | �졥� | � | j | j | 뛘�떸矮덖 | 딲�뛇擅쐃H | 鈺�� | 딢川 | 콯�n濫 | j | j | 뛘�떸兀덖 | 딲�뛇罹촦H | ���� | 딢移 | 콾�A濫 | C껢 | u쟩 | j | � | 콯맑eH | �&濫 | j | j | 뛇阿4eH | 딼 | �B�� | 딲�f� | 딢鋪촬� | 꽵t | j | 뛇仙�eH | 딼 | � | �� | 딢�P�t뷌 | 딢鋪맵� | j | 딢�P�]K | 딢鋪藁� | 튗eH | 딢鋪p | 딢鋪맷� | 딢鋪먌� | 3픝YYd� | h�dH | �Z幾 | 딢鋪b�� | 췌弛� | 應3픝YYd� | h eH | 뛇僊 | �@�� | 뛇 | �0�� | 췌짭� | 蔭둉 | [뗥]� | SET_REP.DBF | INDX | NAME | HEADTITLE | EN_HEAD | FLDCNT |
|
||||
=====JD_Lst
|
||||
I020001680;MBI020001690;MBI020001700;MBI020001710;MBI020001720;MBI020001730;MBI020001740;MBI020001750;MBI020002000;MBI020002010;MBI020002020;MBI020002030;MBI020002040;MBI020002050;MBI020002060;MBI020002070;MBI020002080;MBI020002090;MBI020002100;MBI020002110;MBI020002120;MBI020002130;MBI020002140;MBI020002150;MBI030002500;MBI030002510;MBI030002520;MBI030002530;MBI030002540;MBI030002550;MBI030002560;MBI030002570;MBI030002580;MBI030002590;MBI030002600;MBI030002610;MBI030002620;MBI030002630;MBI030002640;MBI030002650;MBI040003000;MBI040003010;MBI040003020;MBI040003030;MBI040003040;MBI040003050;MBI040003060;MBI040003070;MBI040003080;MBI040003090;MBI040003100;MBI040003110;MBI040003120;MBI040003130;MBI040003140;MBI040003150;MBI040003500;MBI040003510;MBI040003520;MBI040003530;MBI040003540;MBI040003550;MBI040003560;MBI040003570;MBI040003580;MBI040003590;MBI040003600;MBI040003610;MBI040003620;MBI040003630;MBI040003640;MBI040003650;MBI050004000;MBI050004010;MBI050004020;MBI050004030;MBI050004040;MBI050004050;MBI050004060;MBI050004070;MBI050004080;MBI050004090;MBI050004100;MBI050004110;MBI050004120;MBI050004130;MBI050004140;MBI050004150;MBI060005000;MBI060005010;MBI060005020;MBI060005030;MBI060005040;MBI060005050;MBI060005060;MBI060005070;MBI060005080;MBI060005090;MBI060005100;MBI060005110;MBI060005120;MBI060005130;MBI060005140;MBI060005150;MBI070006500;MBI070006510;MBI070006520;MBI070006530;MBI070006540;MBI070006550;MBI070006560;MBI070006570;MBI070006580;MBI070006590;MBI070006600;MBI070006610;MBI070006620;MBI070006630;MBI070006640;MBI070006650;MBI080007500;MBI080007510;MBI080007520;MBI080007530;MBI080007540;MBI080007550;MBI080007560;MBI080007570;MBI080007580;MBI080007590;MBI080007600;MBI080007610;MBI080007620;MBI080007630;MBI080007640;MBI080007650;MBJ010010000;MBJ010010010;MBJ010010020;MBJ010010030;MBJ010010040;MBJ010010050;MBJ010010060;MBJ010010070;MBJ010010080;MBJ010010090;MBJ010010100;MBJ010010110;MBJ010010120;MBJ010010130;MBJ010010140;MBJ010010150;MBJ020012500;MBJ020012510;MBJ020012520;MBJ020012530;MBJ020012540;MBJ020012550;MBJ020012560;MBJ020012570;MBJ020012580;MBJ020012590;MBJ020012600;MBJ020012610;MBJ020012620;MBJ020012630;MBJ020012640;MBJ020012650;MBJ030015000;MBJ030015010;MBJ030015020;MBJ030015030;MBJ030015040;MBJ030015050;MBJ030015060;MBJ030015070;MBJ030015080;MBJ030015090;MBJ030015100;MBJ030015110;MBJ030015120;MBJ030015130;MBJ030015140;MBJ030015150;MBJ040020000;MBJ040020010;MBJ040020020;MBJ040020030;MBJ040020040;MBJ040020050;MBJ040020060;MBJ040020070;MBJ040020080;MBJ040020090;MBJ040020100;MBJ040020110;MBJ040020120;MBJ040020130;MBJ040020140;MBJ040020150;MBP110001500;MBP110001510;MBP110001520;MBP110001530;MBP120002000;MBP120002010;MBP120002020;MBP120002030;MBP130002500;MBP130002510;MBP130002520;MBP130002530;MBP140003200;MBP140003210;MBP140003220;MBP140003230;MBP150004000;MBP150004010;MBP150004020;MBP150004030;MBP160005000;MBP160005010;MBP160005020;MBP160005030;MBP170006500;MBP170006510;MBP170006520;MBP170006530;MBP180008000;MBP180008010;MBP180008020;MBP180008030;MBP310370000;MBP310370010;MBP310370080;MBP310370090;MBP310370100;MBP310370110;MBP320370000;MBP320370010;MBP330370000;MBP330370010;MBP340370000;MBP340370010;MBP350370000;MBP350370010;MBP360370000;MBP360370010;MBP370370000;MBP370370010;MBP380370000;MBP380370010;MBQ110010000;MBQ110010010;MBQ110010020;MBQ110010030;MBQ120112500;MBQ120112510;MBQ120112520;MBQ120112530;MBQ130115000;MBQ130115010;MBQ130115020;MBQ130115030;MBQ140120000;MBQ140120010;MBQ140120020;MBQ140120030;MBQ150025000;MBQ150025010;MBQ150025020;MBQ150025030;MBQ160030000;MBQ160030010;MBQ160030020;MBQ160030030;MBQ170035000;MBQ170035010;MBQ170035020;MBQ170035030;MBQ180040000;MBQ180040010;MBQ180040020;MBQ180040030;MBQ310370000;MBQ310370010;MBQ320371000;MBQ320371010;MBQ330371000;MBQ330371010;MBQ340371000;MBQ340371010;MBQ350370000;MBQ350370010;MDA511101500;MDA511101510;MDA511101520;MDA511101530;MDA511101540;MDA511101550;MDA511101560;MDA511101570;MDA511101580;MDA511101590;MDA511101600;MDA511101610;MDA517101500;MDA51710151
|
||||
@@ -50,6 +50,13 @@ const MODES = {
|
||||
excav({ nodes, pclass }) {
|
||||
return Ch.excavTable({ nodes }, pclass);
|
||||
},
|
||||
halbase({ rows, pct, base }) {
|
||||
const m = { rows: JSON.parse(JSON.stringify(rows)), items: [] };
|
||||
T.applyHalRate(m, null, { M: pct, L: pct, S: pct }, "each", {
|
||||
base: () => ({ M: base, L: base, S: base }),
|
||||
});
|
||||
return ["MAMT1", "LAMT1", "SAMT1"].map((k) => Number(m.rows[0][k]));
|
||||
},
|
||||
hal({ rows, rates, how }) {
|
||||
const model = { rows, items: [] };
|
||||
const r = T.applyHalRate(model, null, rates, how);
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
"""STMATE 재현 앱 — 조달청 JDL TEXT 고정폭 형식(지식DB REA 34 「REA MCP 보강」) 지킴 시험 · 할증율 4바이트 계수 · 변경 4차 칸.
|
||||
|
||||
근거: JDLCHK.Tab_33.dll 파일마다 자르기 자리 표(0x405dd8 뒤) · 열 개수 검사(0x405bfc 뒤 cmp) · FieldDefs(0x491dec)
|
||||
M.Txt 검사 함수 0x4ea818 Ghidra 의사코드 — 열 0 F_CODE · 1 F_DES · 2 F_SIZE · 3 F_UNIT · 4 F_MPRICE · 5 F_SCODE · 6~17 가격·쪽 · 18 F_BIGO
|
||||
할증율 = ST_Boq 0x4e9b20 fstp dword · 0x4e9bde fmul dword · 변경 4차 = PRJLST MCOST5·XX5NM · ST_Prt 0x4b3183
|
||||
"""
|
||||
|
||||
import json
|
||||
import math
|
||||
import struct
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
sys.path.insert(0, str(ROOT / "tools/stmate-test"))
|
||||
import jdl_format as J # noqa: E402
|
||||
from kanjub_cfg import stage_slots # noqa: E402
|
||||
|
||||
# 검사기 cmp 값(열 개수) — 자르기 자리 + 1 과 같아야 함
|
||||
CMP = {
|
||||
"Main.Txt": 3,
|
||||
"M.Txt": 0x13,
|
||||
"L.Txt": 7,
|
||||
"E.Txt": 9,
|
||||
"W.Txt": 9,
|
||||
"J.Txt": 9,
|
||||
"GongJong.Txt": 4,
|
||||
}
|
||||
CMP |= {
|
||||
"Unit.Txt": 10,
|
||||
"JUnit.Txt": 10,
|
||||
"Danga.Txt": 10,
|
||||
"MainPart.Txt": 0x1F,
|
||||
"UnitPart.Txt": 0x1C,
|
||||
"JPart.Txt": 0x13,
|
||||
}
|
||||
|
||||
|
||||
def test_cut_tables_match_column_checks():
|
||||
for name, n in CMP.items():
|
||||
assert len(J.CUTS[name]) + 1 == n, name
|
||||
if name in J.COLUMNS:
|
||||
assert len(J.COLUMNS[name]) == n, name
|
||||
|
||||
|
||||
def test_price_widths_follow_field_defs():
|
||||
"""단가 목록 너비 = FieldDefs 크기(코드 12 · 명칭·규격 30 · 단위 6 · 단가 12 · 쪽 6 · 손료번호 4)."""
|
||||
size = {"F_CODE": 12, "F_DES": 30, "F_SIZE": 30, "F_UNIT": 6, "F_MPRICE": 12, "F_LPRICE": 12}
|
||||
size |= {"F_EPRICE": 12, "F_SCODE": 12, "F_TFNO": 4} | {f"F_PRICE{i}": 12 for i in range(1, 7)}
|
||||
size |= {f"F_PAGE{i}": 6 for i in range(1, 7)}
|
||||
for name, cols in J.COLUMNS.items():
|
||||
for col, w in zip(cols, J.widths(name)):
|
||||
assert w == size.get(col), (name, col, w)
|
||||
|
||||
|
||||
def test_line_roundtrip_and_checks():
|
||||
row = {
|
||||
"F_CODE": "M00001",
|
||||
"F_DES": "레미콘 25-21-120",
|
||||
"F_SIZE": "",
|
||||
"F_UNIT": "M3",
|
||||
"F_MPRICE": "93000",
|
||||
}
|
||||
row |= {"F_SCODE": "", "F_PRICE1": "92500", "F_PAGE1": "123", "F_BIGO": "비고"}
|
||||
b = J.build_line("M.Txt", row)
|
||||
assert b[:12] == b"M00001 " and len(b) == 210 + len("비고".encode("cp949"))
|
||||
back = J.split_line("M.Txt", b)
|
||||
assert back[0] == "M00001" and back[1] == "레미콘 25-21-120" and back[6:8] == ["92500", "123"]
|
||||
assert back[18] == "비고"
|
||||
assert J.check_lines("M.Txt", b + b"\r\n") == []
|
||||
errs = J.check_lines(
|
||||
"L.Txt", J.build_line("L.Txt", ["l0001", "x", "", "", "1", "", ""]) + b"\r\nL00002"
|
||||
)
|
||||
assert any("코드 글자" in e for e in errs) and any("Line : 2" in e for e in errs)
|
||||
long = J.build_line("L.Txt", ["L00001", "가" * 20, "", "", "", "", ""])
|
||||
assert len(long[12:42]) == 30 and long[12:42].decode("cp949").strip() == "가" * 15
|
||||
|
||||
|
||||
def _f32(x):
|
||||
return struct.unpack("<f", struct.pack("<f", x))[0]
|
||||
|
||||
|
||||
def test_hal_rate_float32_factor():
|
||||
"""할증 계수 4바이트 실수 — 70%·115% 에서 십진 계산보다 1원 적음."""
|
||||
helper = Path(__file__).with_name("helper_stmate_kanjub_rea.cjs")
|
||||
rows = [{"BDCODE1": "M00001", "_recno": 1, "SORTCODE": "1", "ENDCODE": "0"}]
|
||||
for pct, base in ((70, 1000), (115, 1000), (107.5, 2000)):
|
||||
want = math.trunc(base * _f32(pct / 100))
|
||||
out = json.loads(
|
||||
subprocess.check_output(
|
||||
["node", str(helper)],
|
||||
input=json.dumps({"mode": "halbase", "rows": rows, "pct": pct, "base": base}),
|
||||
text=True,
|
||||
encoding="utf-8",
|
||||
)
|
||||
)
|
||||
assert out == [want] * 3, (pct, out)
|
||||
assert math.trunc(1000 * _f32(0.7)) == 699 and math.trunc(1000 * _f32(1.15)) == 1149
|
||||
|
||||
|
||||
def test_fifth_series_slot():
|
||||
"""변경 4차 = 계열 5 — 저장 칸 5 를 차수로 읽음."""
|
||||
assert stage_slots({"1_C_KANNO": 1, "5_C_KANNO": 2}) == [1, 5]
|
||||
@@ -57,6 +57,10 @@ def test_chasu_combo_by_pclass():
|
||||
"3차 변경내역",
|
||||
]
|
||||
assert [lb.strip() for lb, _ in out[8]["list"]][2] == "변경내역-시비"
|
||||
over = run({"mode": "native", "cases": [[7, 4, 0], [7, 5, 0]]})
|
||||
assert [s for _, s in over[0]["list"]] == [1, 2, 3, 4, 5] and over[1][
|
||||
"list"
|
||||
] == [] # 4차 = 계열 5 · 5차 거부
|
||||
|
||||
|
||||
def test_first_series_and_change_defaults():
|
||||
|
||||
Reference in New Issue
Block a user