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:
2026-11-14 13:24:24 +09:00
co-authored by Claude Opus 5.5
parent e655e29cdc
commit c5fc1fd7aa
36 changed files with 14374 additions and 19 deletions
@@ -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 고정폭 자리
@@ -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) 원본 자료 표본이 없어 필드 전체 대응을 맞춰 볼 수 없음.
@@ -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;
@@ -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);
@@ -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);
@@ -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);
@@ -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");
@@ -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;
@@ -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;
@@ -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);
@@ -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]
@@ -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
@@ -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