diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/33_기성준공단계_정적분석.md b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/33_기성준공단계_정적분석.md index d4cf95376..73446279c 100644 --- a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/33_기성준공단계_정적분석.md +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/33_기성준공단계_정적분석.md @@ -57,7 +57,7 @@ | QTY2(누계) | QTY1×QTY2 > 0 이고 설정 바이트([+0x1068]+0x69) 0 이고 \|QTY2\| > \|QTY1\| 이면 QTY2 = QTY1 → QTY4 = QTY2 − QTY3 | 0x4f4aa4~0x4f4ba0 | | QTY4(금회) | QTY1×QTY4 > 0 이고 설정 바이트 0 이고 \|QTY3+QTY4\| > \|QTY1\| 이면 QTY4 = QTY1 − QTY3 → QTY2 = QTY3 + QTY4 | 0x4f4bad~0x4f4ceb | -- 설정 바이트 +0x69 의 화면 이름 미확인(「초과 입력 허용」 성격으로 보이나 이름 근거 없음). +- 설정 = TwBoq 필드 +0x1068 `Act_Enabl_OVR6`(TAction · 보기/설정 · AutoCheck) 「누계수량 제한해제 (계약수량 〈 누계수량)」 · 메뉴 N229 · DFM 에 Checked 없음(처음 꺼짐) — §10 참고. - 편집 뒤 행 금액 다시 셈 0x4fc498 호출(0x4f4cf3). ## 5. 기성 행 금액 — ST_Boq 0x4fc498 (신뢰도 중) @@ -170,11 +170,11 @@ MROUNDUD 선택값 0 = 버림(08·13번 작업자료). | 항목 | 상태 | |---|---| -| 금회 칸(4) 단가 원천 | 미확인 — 회차 등록 복사는 1→2·3 만 | -| ST_Boq 0x456504 칸 인자 뜻 | 미확인 | -| [3_KANJUB] 전회 제잡비 이관 | 미확인 | -| 설정 바이트 +0x69(수량 상한 해제) 이름 | 미확인 | -| 0633~0638 · 0646·0647 열 산식 · 준공금액 원천 | 미확인 | +| 금회 칸(4) 단가 원천 | §10.2 — 단가 칸 = 1(계약) 관찰(중) | +| ST_Boq 0x456504 칸 인자 뜻 | §10.2 — 수량 칸·단가 칸 인자 대응(중) | +| [3_KANJUB] 전회 제잡비 이관 | §10.3 — 회차 등록 때 2→3 복사 · 4 지움(상) | +| 수량 상한 해제 설정 이름 | §10.1 — Act_Enabl_OVR6(상) | +| 0633~0638 · 0646·0647 열 산식 · 준공금액 원천 | §10.4 — 열 = 인쇄 대화 상자가 고른 칸 금액 · 비율·사정·기성고·잔량·준공금액 산식 미발견 | | 도서할증 행 밑수 PRJLST.LCOST2 의 업무 뜻 | 관찰만(칸 2 노무비 자리) | | 원본 실행 수치 일치 | 미검증 | @@ -182,3 +182,56 @@ MROUNDUD 선택값 0 = 버림(08·13번 작업자료). - evidence/ — 구간별 역어셈블(주석: 가져오기 이름·문자열·상수) · DFM 해독(TWM_KANJUB_K.json · TPM_JAB_K.json) - scripts/ — pe.py(섹션 대응) · dz.py(주석 역어셈블) · inv.py(VMT·메서드·내보내기) · rsrc.py(RCDATA) · litref.py · strfind.py(문자열·참조) · parse_dfm.py(DFM) + +## 10. REA MCP 보강 (rea-agents 6.7.0 + Ghidra 12.1.4, 2026-11-14) + +- 방법: Ghidra 헤드리스 자동 분석 + 디컴파일(`procedure_pseudo_code` · `batch_decompile`) · 원본 바이트 쓰기 없음 · 실행 없음. +- Ghidra 함수 경계 한계: Delphi published 메서드(VMT 메서드표로만 닿는 것)는 함수로 잡히지 않음 — ST_KanJub 0x4cdec0 · ST_Boq 0x4fc498 · 0x456504 · 0x4f4a2f 「not_in_procedure」(rea_mcp/*not_*.json). 이 구간은 §1~§7 capstone 판독 유지. +- 대조 결과(일치): + +| 대상 | Ghidra 근거 | 결과 | +|---|---|---| +| 행 다시 셈 0x4ce2c8 | rea_mcp/KanJub_0x4ce2c8_row_recalc.ghidra.json | §6.4 와 같음 — 종류 2 누적 · 도서할증 LCOST2 × 율 ÷ 100 · 이윤 − 조정량 · 부가세 1/2/3 · 누계 = 전회 + 금회 | +| 끝전 0x4ce55c | KanJub_0x4ce55c_cut.ghidra.json | 같음 — 공급가액 절사 우선 · 아니면 총공사비 · 총공사비 절사 + 부가세 1택이면 ÷ 상수 후 버림(상수 1.1 은 capstone 0x4ce6b8) | +| 총공사비 계산 0x4ce6c4 | KanJub_0x4ce6c4_calc_jab.ghidra.json | 같음 — `if (9 < ROUND(d) − 1U) break` = 1~10원 남으면 이윤 1 빼고 소계 다음부터 다시 셈 | +| 저장 0x4ca5ac · 0x4cac0c · 0x4caa48 | KanJub_batch_*.ghidra.json | 같음 — COSTW4 ← 열 6 마지막 행 · COSTW3 ← 열 8 · PXXNM · 섹션 지움(vt+0x4c) · FUN_004caa48(4, 금회) · (2, 누계) | +| 회차 등록 0x55a640 | Main_0x55a640_MkBoq.ghidra.c.txt | 같음 — 목표 6(기성) 분기 k_ord 대입 · 원본 PCLASS 4/6/7 갈래 | + +### 10.1 수량 상한 해제 설정 (상) + +- ST_Boq TwBoq 필드표: +0x1068 = `Act_Enabl_OVR6`. DFM TWBOQ: TAction Category 「보기/설정」 · Caption 「누계수량 제한해제 (계약수량 〈 누계수량)」 · AutoCheck · OnExecute `Act_Enabl_OVR6Execute` · 메뉴 N229 연결. +- 0x4f4af5 · 0x4f4c02 의 `[+0x1068]+0x69` = 이 액션의 체크 상태 바이트(TAction 내부 오프셋 — 이름은 필드표, 바이트 뜻은 AutoCheck 와 맞춰 읽음 · 중). +- 같은 DFM: 메뉴 「계약수량 ⇒ 기성누계수량(100%)」(mQty6All) · 「전체수량 ⇒ 금회수량(전체수량 적용)」(mQtyDevd, 숨김). + +### 10.2 금회 칸 단가 (중) + +- ST_Boq 0x4e4967~0x4e4a59: 열기 때 전역 [0x541898] = 1 · [0x541894] = 1 · [0x54189c] = 1 → PCLASS 3 이면 [0x541898] = [0x541894] = 2 · PCLASS 6 이면 [0x541894] = 4 만 바꿈([0x541898] = 1 유지) · PCLASS 7 이면 [0x541894] = IIF(K_ORD−1 < 4, K_ORD+1, 2). +- 행 금액 0x4fc674(PCLASS 6): 0x456504(…, 편집 칸, [0x541894], [0x541898], …) — 0x456504 머리 0x4565ad~0x4565e6: 수량 칸 = IIF(인자 c = 0, 순번, 인자 d) → `'QTY' + 칸 글자`. +- IIF 인자 순서(stdcall — 둘째로 넣은 값 = 참): ST_Boq 0x4e49c4 `IIF(K_ORD−1 < 4, K_ORD+1, 2)` 가 변경 차수 칸 규칙과 맞음. +- 읽음: 기성 프로젝트 편집 칸 = 4(금회) · 단가 칸 인자 = 1(계약). 누계 다시 셈 0x4fce6e 의 단가 칸 인자 = IIF(PR·%·Q 행, 2, 1). 인자 e 가 단가 칸이라는 대응은 호출 짝으로 읽은 것(0x44019c 안쪽 미해독) — 신뢰도 중. + +### 10.3 [3_KANJUB] 전회 제잡비 (상) + +- 섹션 복사 함수 Main 0x455e68(메모, 원본 칸 글자, 대상 칸 문자열, …, 지울 칸 문자열): PRJ_MEMO.INI 로 풀어 원본 `n_KANJUB` 키를 읽고 → 대상 `m_KANJUB` 섹션 지움(vt+0x4c) → 키 첫 글자를 대상 칸으로 바꿔 기록(0x456128~0x4562b5) · KANJUB_ADD 의 칸 꼬리 키도 복사 · 끝에 지울 칸 문자열의 '1'~'4' 마다 `n_KANJUB` EraseSection(0x45676b~0x4567c0) · KANJUB_ADD 의 그 칸 값 '0'(0x4564e8). +- 회차 등록 목표 6(기성) 갈래(0x55b287~0x55b3cb, Ghidra 같음): + +| 원본 PCLASS | 섹션 처리 | PRJLST | +|---|---|---| +| 4 계약 | 0x455e68(src '1' → '1', 지움 '234') | k_ord = 1 | +| 6 기성 | 0x455e68(src '2' → '3', 지움 '4') | TCOST3 ← TCOST2 · TCOST4 = 0 · 뒤 0x55d1d3 k_ord = K+1 | +| 7 변경 | 0x455e68(src 차수 칸 → '1', …) · (src '4' → '3') 등 | 세부 미정리 | + +- 따라서 전회 제잡비 [3_KANJUB] 는 다음 회차 등록 때 앞 회차 누계 [2_KANJUB] 를 복사해 채움 · 금회 [4_KANJUB] 는 지워진 채 시작. + +### 10.4 인쇄 열 계산 (0633~0638 · 0646·0647) + +- ST_P_Nae `Prn_Jab` 0x4b1998 → 양식 `TPM_Jab`(DFM 머리 「총 괄 설 계 내 역 서」를 서식 이름으로 바꿔 씀 · 자료 PRT.DBF) · 띠 출력 0x4b2600: 열 k 의 금액 = `T_AMT`/`M_AMT`/`L_AMT`/`S_AMT` + 칸 글자, 칸 = 설정 배열 [+0x1788 + k] (0x4b285c~0x4b29e1). +- 칸 배열은 ST_Prt 인쇄 대화 상자에서 채움 — 0x4b6b14~0x4b6b40 이 전역 0x4d5498(6바이트)을 +0x1788 로 복사 · 0x4a27c0 이 대화 상자 선택값으로 0x4d5498 을 채움(당초·변경 칸 1·2 갈래 관찰). +- 관찰: Prn_Jab · TPM_Jab 띠 출력에 금액 나눗셈(비율) · 사정 · 잔량 연산 없음(나눗셈은 배치 폭 2.0 · 376.0 뿐). 0632(TPM_JAB_K) 만 비율 연산 있음(§2). +- 0635 비율 · 0636/0637 기성고(%) · 0638 기성(%)·잔량 · 0634 사정 · 0646/0647 준공금액 의 산식 원천은 이번 범위에서 미발견. 서식별 기본 칸 배열(어느 열이 어느 칸)도 미확정. +- 관련 관찰: ST_P_ConEst TPM_NAE_C3 0x479007~0x479158 — 머리 문구 IIF([0x4aa738] = 1, 「◎ 준공 정산액 :」, 「◎ 기성부분금액 :」)(IIF 순서 §10.2) · 금액 = PRJLST `TCOST` + 첫 열 칸 글자(설정 +0x1788). + +### 10.5 자료 + +- rea_mcp/ — Ghidra 결과 JSON(evidence_id 포함) · MkBoq 디컴파일 본문. +- evidence/ 추가 — Main_0x455e68_kanjub_section_copy · Main_0x55b0b5_registration_kanjub_branch · Boq_0x4e4920_qty_price_slot_globals · Boq_0x456504_row_calc_head · Nae_0x4b285c_TPM_Jab_column_slot · Prt_0x4b6b14_column_slot_array · ConEst_0x479007_jungong_label · TPM_JAB.json. diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Boq_0x456504_row_calc_head.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Boq_0x456504_row_calc_head.asm.txt new file mode 100644 index 000000000..49413fecd --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Boq_0x456504_row_calc_head.asm.txt @@ -0,0 +1,80 @@ +456504: push ebp +456505: mov ebp, esp +456507: push ecx +456508: mov ecx, 0x46 +45650d: push 0 +45650f: push 0 +456511: dec ecx +456512: jne 0x45650d +456514: push ecx +456515: xchg dword ptr [ebp - 4], ecx +456518: push ebx +456519: push esi +45651a: push edi +45651b: mov byte ptr [ebp - 2], cl +45651e: mov edi, edx +456520: mov byte ptr [ebp - 1], al +456523: mov ebx, dword ptr [ebp + 8] +456526: xor eax, eax +456528: push ebp +456529: push 0x456efa +45652e: push dword ptr fs:[eax] +456531: mov dword ptr fs:[eax], esp +456534: cmp byte ptr [ebp - 1], 0 +456538: je 0x456638 +45653e: mov esi, 1 +456543: lea eax, [ebx + 0x130] +456549: mov dword ptr [ebp - 8], eax +45654c: push esi +45654d: push edi +45654e: mov esi, 0x456f0c +456553: lea edi, [ebp - 0x30] +456556: mov ecx, 8 +45655b: rep movsd dword ptr es:[edi], dword ptr [esi] +45655d: pop edi +45655e: pop esi +45655f: mov eax, esi +456561: cmp eax, 0xff +456566: ja 0x45656c +456568: bts dword ptr [ebp - 0x30], eax +45656c: mov eax, dword ptr [ebp + 0xc] +45656f: cmp eax, 0xff +456574: ja 0x45657a +456576: bt dword ptr [ebp - 0x30], eax +45657a: jae 0x4565f1 +45657c: lea eax, [ebp - 0x54] +45657f: mov edx, dword ptr [ebp + 0x10] +456582: mov cl, 0xfc +456584: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +456589: push dword ptr [ebp - 0x48] +45658c: push dword ptr [ebp - 0x4c] +45658f: push dword ptr [ebp - 0x50] +456592: push dword ptr [ebp - 0x54] +456595: lea eax, [ebp - 0x64] +456598: mov edx, esi +45659a: mov cl, 0xfc +45659c: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +4565a1: push dword ptr [ebp - 0x58] +4565a4: push dword ptr [ebp - 0x5c] +4565a7: push dword ptr [ebp - 0x60] +4565aa: push dword ptr [ebp - 0x64] +4565ad: cmp dword ptr [ebp + 0xc], 0 +4565b1: sete al +4565b4: push eax +4565b5: lea eax, [ebp - 0x44] +4565b8: push eax +4565b9: call 0x42b2f8 ; DP_COMMON!IIF +4565be: lea eax, [ebp - 0x44] +4565c1: call 0x401350 ; rtl60!@System@@VarToReal$qqrrx14System@Variant +4565c6: call 0x401068 ; rtl60!@System@@ROUND$qqrv +4565cb: mov edx, dword ptr [0x52e784] +4565d1: mov ecx, dword ptr [edx + eax*4] +4565d4: lea eax, [ebp - 0x34] +4565d7: mov edx, 0x456f34 ; 'QTY' +4565dc: call 0x401270 ; rtl60!@System@@LStrCat3$qqrv +4565e1: mov edx, dword ptr [ebp - 0x34] +4565e4: mov eax, edi +4565e6: call 0x403ab0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +4565eb: mov eax, dword ptr [ebp - 8] +4565ee: fstp qword ptr [eax] +4565f0: wait diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Boq_0x4e4920_qty_price_slot_globals.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Boq_0x4e4920_qty_price_slot_globals.asm.txt new file mode 100644 index 000000000..6841bce81 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Boq_0x4e4920_qty_price_slot_globals.asm.txt @@ -0,0 +1,63 @@ +4e4920: .byte 0xff +4e4921: .byte 0xff +4e4922: .byte 0xff +4e4923: call 0x401340 ; rtl60!@System@@VarToInt$qqrrx14System@Variant +4e4928: mov edx, dword ptr [0x5417b8] +4e492e: mov dword ptr [edx + 0x118c], eax +4e4934: jmp 0x4e4967 ; '�' +4e4936: mov eax, dword ptr [0x5417b8] +4e493b: mov dword ptr [eax + 0x118c], 1 +4e4945: jmp 0x4e4967 ; '�' +4e4947: mov eax, dword ptr [0x5417b8] +4e494c: mov dword ptr [eax + 0x118c], 1 +4e4956: jmp 0x4e4967 ; '�' +4e4958: mov eax, dword ptr [0x5417b8] +4e495d: mov dword ptr [eax + 0x118c], 1 +4e4967: mov dword ptr [0x541898], 1 +4e4971: mov dword ptr [0x541894], 1 +4e497b: mov dword ptr [0x54189c], 1 +4e4985: mov eax, dword ptr [0x5417bc] +4e498a: sub eax, 3 +4e498d: je 0x4e499c +4e498f: sub eax, 3 +4e4992: je 0x4e49b5 +4e4994: dec eax +4e4995: je 0x4e49c4 +4e4997: jmp 0x4e4a45 +4e499c: mov dword ptr [0x541898], 2 +4e49a6: mov dword ptr [0x541894], 2 +4e49b0: jmp 0x4e4a59 ; '�' +4e49b5: mov dword ptr [0x541894], 4 +4e49bf: jmp 0x4e4a59 ; '�' +4e49c4: lea eax, [ebp - 0xfc] +4e49ca: mov edx, 2 +4e49cf: mov cl, 1 +4e49d1: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +4e49d6: push dword ptr [ebp - 0xf0] +4e49dc: push dword ptr [ebp - 0xf4] +4e49e2: push dword ptr [ebp - 0xf8] +4e49e8: push dword ptr [ebp - 0xfc] +4e49ee: lea eax, [ebp - 0x10c] +4e49f4: mov edx, dword ptr [0x5417c0] +4e49fa: inc edx +4e49fb: mov cl, 0xfc +4e49fd: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +4e4a02: push dword ptr [ebp - 0x100] +4e4a08: push dword ptr [ebp - 0x104] +4e4a0e: push dword ptr [ebp - 0x108] +4e4a14: push dword ptr [ebp - 0x10c] +4e4a1a: mov eax, dword ptr [0x5417c0] +4e4a1f: dec eax +4e4a20: sub eax, 4 +4e4a23: setb al +4e4a26: push eax +4e4a27: lea eax, [ebp - 0xec] +4e4a2d: push eax +4e4a2e: call 0x42b2f8 ; DP_COMMON!IIF +4e4a33: lea eax, [ebp - 0xec] +4e4a39: call 0x401340 ; rtl60!@System@@VarToInt$qqrrx14System@Variant +4e4a3e: mov dword ptr [0x541894], eax +4e4a43: jmp 0x4e4a59 ; '�' +4e4a45: mov dword ptr [0x541898], 1 +4e4a4f: mov dword ptr [0x541894], 1 +4e4a59: cmp dword ptr [0x5417bc], 5 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/ConEst_0x479007_jungong_label.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/ConEst_0x479007_jungong_label.asm.txt new file mode 100644 index 000000000..cf4a86c73 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/ConEst_0x479007_jungong_label.asm.txt @@ -0,0 +1,70 @@ +479007: lea eax, [ebp - 0x490] +47900d: mov edx, 0x479998 ; 'TCOST' +479012: call 0x401350 +479017: lea eax, [ebp - 0x490] +47901d: push eax +47901e: mov al, 0x32 +479020: mov byte ptr [ebp - 0x413], al +479026: mov byte ptr [ebp - 0x414], 1 +47902d: lea eax, [ebp - 0x4b0] +479033: lea edx, [ebp - 0x414] +479039: call 0x401348 +47903e: push dword ptr [ebp - 0x4a4] +479044: push dword ptr [ebp - 0x4a8] +47904a: push dword ptr [ebp - 0x4ac] +479050: push dword ptr [ebp - 0x4b0] +479056: lea eax, [ebp - 0x4c0] +47905c: mov edx, dword ptr [0x486740] +479062: mov edx, dword ptr [edx] +479064: movsx edx, byte ptr [edx + 0x1788] +47906b: mov ecx, dword ptr [0x48682c] +479071: mov edx, dword ptr [ecx + edx*4] +479074: call 0x401350 +479079: push dword ptr [ebp - 0x4b4] +47907f: push dword ptr [ebp - 0x4b8] +479085: push dword ptr [ebp - 0x4bc] +47908b: push dword ptr [ebp - 0x4c0] +479091: cmp dword ptr [0x4aa738], 1 +479098: sete al +47909b: push eax +47909c: lea eax, [ebp - 0x4a0] +4790a2: push eax +4790a3: call 0x43768c ; DP_COMMON!IIF +4790a8: lea edx, [ebp - 0x4a0] +4790ae: pop eax +4790af: call 0x401358 +4790b4: lea edx, [ebp - 0x490] +4790ba: lea eax, [ebp - 0x480] +4790c0: call 0x401310 +4790c5: mov edx, dword ptr [ebp - 0x480] +4790cb: mov eax, dword ptr [0x486914] +4790d0: mov eax, dword ptr [eax] +4790d2: mov eax, dword ptr [eax + 0x20] +4790d5: call 0x402cb0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +4790da: fstp qword ptr [ebp - 0x18] +4790dd: wait +4790de: lea eax, [ebp - 0x4e0] +4790e4: mov edx, 0x4799e4 ; '◎ 기성부분금액 : ' +4790e9: call 0x401350 +4790ee: push dword ptr [ebp - 0x4d4] +4790f4: push dword ptr [ebp - 0x4d8] +4790fa: push dword ptr [ebp - 0x4dc] +479100: push dword ptr [ebp - 0x4e0] +479106: lea eax, [ebp - 0x4f0] +47910c: mov edx, 0x479a00 ; '◎ 준공 정산액 : ' +479111: call 0x401350 +479116: push dword ptr [ebp - 0x4e4] +47911c: push dword ptr [ebp - 0x4e8] +479122: push dword ptr [ebp - 0x4ec] +479128: push dword ptr [ebp - 0x4f0] +47912e: cmp dword ptr [0x4aa738], 1 +479135: sete al +479138: push eax +479139: lea eax, [ebp - 0x4d0] +47913f: push eax +479140: call 0x43768c ; DP_COMMON!IIF +479145: lea edx, [ebp - 0x4d0] +47914b: mov eax, dword ptr [ebp - 0x20] +47914e: mov eax, dword ptr [eax] +479150: mov ecx, dword ptr [eax] +479152: call dword ptr [ecx + 0xc4] diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Main_0x455e68_kanjub_section_copy.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Main_0x455e68_kanjub_section_copy.asm.txt new file mode 100644 index 000000000..29f70c5a0 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Main_0x455e68_kanjub_section_copy.asm.txt @@ -0,0 +1,813 @@ +455e68: push ebp +455e69: mov ebp, esp +455e6b: push ecx +455e6c: mov ecx, 0x51 +455e71: push 0 +455e73: push 0 +455e75: dec ecx +455e76: jne 0x455e71 +455e78: xchg dword ptr [ebp - 4], ecx +455e7b: push ebx +455e7c: push esi +455e7d: push edi +455e7e: mov dword ptr [ebp - 0xc], ecx +455e81: mov byte ptr [ebp - 5], dl +455e84: mov dword ptr [ebp - 4], eax +455e87: mov eax, dword ptr [ebp - 4] +455e8a: call 0x4012c8 ; rtl60!@System@@LStrAddRef$qqrpv +455e8f: mov eax, dword ptr [ebp - 0xc] +455e92: call 0x4012c8 ; rtl60!@System@@LStrAddRef$qqrpv +455e97: mov eax, dword ptr [ebp + 0x14] +455e9a: call 0x4012c8 ; rtl60!@System@@LStrAddRef$qqrpv +455e9f: xor eax, eax +455ea1: push ebp +455ea2: push 0x456963 +455ea7: push dword ptr fs:[eax] +455eaa: mov dword ptr fs:[eax], esp +455ead: mov eax, dword ptr [ebp + 8] +455eb0: mov edx, dword ptr [ebp - 4] +455eb3: call 0x401260 ; rtl60!@System@@LStrAsg$qqrpvpxv +455eb8: lea edx, [ebp - 0x1f4] +455ebe: mov eax, dword ptr [ebp - 4] +455ec1: call 0x401e30 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +455ec6: cmp dword ptr [ebp - 0x1f4], 0 +455ecd: je 0x455f0a +455ecf: cmp dword ptr [ebp + 0x10], 4 +455ed3: je 0x455f46 +455ed5: lea eax, [ebp - 0x1f8] +455edb: mov dl, byte ptr [ebp - 5] +455ede: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +455ee3: mov eax, dword ptr [ebp - 0x1f8] +455ee9: mov edx, dword ptr [ebp - 0xc] +455eec: call 0x4012c0 ; rtl60!@System@@LStrCmp$qqrv +455ef1: jne 0x455f46 +455ef3: lea edx, [ebp - 0x1fc] +455ef9: mov eax, dword ptr [ebp + 0x14] +455efc: call 0x401e30 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +455f01: cmp dword ptr [ebp - 0x1fc], 0 +455f08: jne 0x455f46 +455f0a: push 0 +455f0c: lea eax, [ebp - 0x200] +455f12: mov edx, dword ptr [0x5e5e7c] +455f18: mov edx, dword ptr [edx] +455f1a: add edx, 0x156d +455f20: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255% +455f25: lea eax, [ebp - 0x200] +455f2b: mov edx, 0x45697c ; 'PRJ_MEMO.INI' +455f30: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +455f35: mov eax, dword ptr [ebp - 0x200] +455f3b: push eax +455f3c: call 0x42297c ; DP_COMMON!DELE_FILE +455f41: jmp 0x45692d +455f46: xor eax, eax +455f48: push ebp +455f49: push 0x45609d +455f4e: push dword ptr fs:[eax] +455f51: mov dword ptr fs:[eax], esp +455f54: lea eax, [ebp - 0x204] +455f5a: mov edx, dword ptr [0x5e5e7c] +455f60: mov edx, dword ptr [edx] +455f62: add edx, 0x156d +455f68: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255% +455f6d: lea eax, [ebp - 0x204] +455f73: mov edx, 0x45697c ; 'PRJ_MEMO.INI' +455f78: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +455f7d: mov edx, dword ptr [ebp - 0x204] +455f83: lea eax, [ebp - 0x1f0] +455f89: call 0x4010a8 ; rtl60!@System@@Assign$qqrr15System@TTextRecx17System@AnsiString +455f8e: lea eax, [ebp - 0x1f0] +455f94: call 0x401098 ; rtl60!@System@@RewritText$qqrr15System@TTextRec +455f99: call 0x401038 ; rtl60!@System@@_IOTest$qqrv +455f9e: jmp 0x456052 +455fa3: lea eax, [ebp - 0x208] +455fa9: push eax +455faa: mov edx, dword ptr [ebp - 4] +455fad: mov eax, 0x456994 ; '\r' +455fb2: call 0x401300 ; rtl60!@System@@LStrPos$qqrv +455fb7: mov ecx, eax +455fb9: dec ecx +455fba: mov edx, 1 +455fbf: mov eax, dword ptr [ebp - 4] +455fc2: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +455fc7: mov edx, dword ptr [ebp - 0x208] +455fcd: lea eax, [ebp - 0x1f0] +455fd3: call 0x401318 ; rtl60!@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString +455fd8: call 0x401110 ; rtl60!@System@@WriteLn$qqrr15System@TTextRec +455fdd: call 0x401038 ; rtl60!@System@@_IOTest$qqrv +455fe2: mov edx, dword ptr [ebp - 4] +455fe5: mov eax, 0x456994 ; '\r' +455fea: call 0x401300 ; rtl60!@System@@LStrPos$qqrv +455fef: mov ebx, eax +455ff1: mov edx, dword ptr [ebp - 4] +455ff4: mov eax, 0x4569a0 ; '\r\n' +455ff9: call 0x401300 ; rtl60!@System@@LStrPos$qqrv +455ffe: cmp ebx, eax +456000: jne 0x45602c +456002: lea eax, [ebp - 4] +456005: push eax +456006: mov edx, dword ptr [ebp - 4] +456009: mov eax, 0x456994 ; '\r' +45600e: call 0x401300 ; rtl60!@System@@LStrPos$qqrv +456013: add eax, 2 +456016: push eax +456017: mov eax, dword ptr [ebp - 4] +45601a: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +45601f: mov ecx, eax +456021: mov eax, dword ptr [ebp - 4] +456024: pop edx +456025: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +45602a: jmp 0x456052 +45602c: lea eax, [ebp - 4] +45602f: push eax +456030: mov edx, dword ptr [ebp - 4] +456033: mov eax, 0x456994 ; '\r' +456038: call 0x401300 ; rtl60!@System@@LStrPos$qqrv +45603d: inc eax +45603e: push eax +45603f: mov eax, dword ptr [ebp - 4] +456042: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +456047: mov ecx, eax +456049: mov eax, dword ptr [ebp - 4] +45604c: pop edx +45604d: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +456052: mov edx, dword ptr [ebp - 4] +456055: mov eax, 0x456994 ; '\r' +45605a: call 0x401300 ; rtl60!@System@@LStrPos$qqrv +45605f: test eax, eax +456061: jg 0x455fa3 +456067: mov edx, dword ptr [ebp - 4] +45606a: lea eax, [ebp - 0x1f0] +456070: call 0x401318 ; rtl60!@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString +456075: call 0x401110 ; rtl60!@System@@WriteLn$qqrr15System@TTextRec +45607a: call 0x401038 ; rtl60!@System@@_IOTest$qqrv +45607f: xor eax, eax +456081: pop edx +456082: pop ecx +456083: pop ecx +456084: mov dword ptr fs:[eax], edx +456087: push 0x4560a4 +45608c: lea eax, [ebp - 0x1f0] +456092: call 0x4010b0 ; rtl60!@System@@Close$qqrr15System@TTextRec +456097: call 0x401038 ; rtl60!@System@@_IOTest$qqrv +45609c: ret +45609d: jmp 0x401200 ; rtl60!@System@@HandleFinally$qqrv +4560a2: jmp 0x45608c +4560a4: lea eax, [ebp - 0x20c] +4560aa: mov edx, dword ptr [0x5e5e7c] +4560b0: mov edx, dword ptr [edx] +4560b2: add edx, 0x156d +4560b8: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255% +4560bd: lea eax, [ebp - 0x20c] +4560c3: mov edx, 0x45697c ; 'PRJ_MEMO.INI' +4560c8: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +4560cd: mov ecx, dword ptr [ebp - 0x20c] +4560d3: mov dl, 1 +4560d5: mov eax, dword ptr [0x5fe630] ; [rtl60!@Inifiles@TIniFile@] +4560da: call 0x404248 ; rtl60!@Inifiles@TCustomIniFile@$bctr$qqrx17System@AnsiString +4560df: mov dword ptr [ebp - 0x20], eax +4560e2: xor eax, eax +4560e4: push ebp +4560e5: push 0x4568ef +4560ea: push dword ptr fs:[eax] +4560ed: mov dword ptr fs:[eax], esp +4560f0: mov dl, 1 +4560f2: mov eax, dword ptr [0x5fd800] ; [rtl60!@Classes@TStringList@] +4560f7: call 0x401170 ; rtl60!@System@TObject@$bctr$qqrv +4560fc: mov dword ptr [ebp - 0x10], eax +4560ff: mov dl, 1 +456101: mov eax, dword ptr [0x5fd800] ; [rtl60!@Classes@TStringList@] +456106: call 0x401170 ; rtl60!@System@TObject@$bctr$qqrv +45610b: mov dword ptr [ebp - 0x14], eax +45610e: mov eax, dword ptr [ebp - 0xc] +456111: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +456116: test eax, eax +456118: jle 0x456524 +45611e: mov dword ptr [ebp - 0x24], eax +456121: mov dword ptr [ebp - 0x1c], 1 +456128: mov eax, dword ptr [ebp - 0xc] +45612b: mov edx, dword ptr [ebp - 0x1c] +45612e: mov al, byte ptr [eax + edx - 1] +456132: cmp al, byte ptr [ebp - 5] +456135: je 0x456518 +45613b: mov eax, dword ptr [ebp - 0x10] +45613e: mov edx, dword ptr [eax] +456140: call dword ptr [edx + 0x44] +456143: lea eax, [ebp - 0x210] +456149: mov dl, byte ptr [ebp - 5] +45614c: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +456151: lea eax, [ebp - 0x210] +456157: mov edx, 0x4569ac ; '_KANJUB' +45615c: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +456161: mov edx, dword ptr [ebp - 0x210] +456167: mov ecx, dword ptr [ebp - 0x10] +45616a: mov eax, dword ptr [ebp - 0x20] +45616d: mov ebx, dword ptr [eax] +45616f: call dword ptr [ebx + 0x40] +456172: lea eax, [ebp - 0x214] +456178: mov edx, dword ptr [ebp - 0xc] +45617b: mov ecx, dword ptr [ebp - 0x1c] +45617e: mov dl, byte ptr [edx + ecx - 1] +456182: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +456187: lea eax, [ebp - 0x214] +45618d: mov edx, 0x4569ac ; '_KANJUB' +456192: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +456197: mov edx, dword ptr [ebp - 0x214] +45619d: mov eax, dword ptr [ebp - 0x20] +4561a0: mov ecx, dword ptr [eax] +4561a2: call dword ptr [ecx + 0x4c] +4561a5: mov eax, dword ptr [ebp - 0x10] +4561a8: mov edx, dword ptr [eax] +4561aa: call dword ptr [edx + 0x14] +4561ad: mov esi, eax +4561af: dec esi +4561b0: test esi, esi +4561b2: jl 0x4562bd +4561b8: inc esi +4561b9: xor ebx, ebx +4561bb: push 0 +4561bd: lea eax, [ebp - 0x218] +4561c3: push eax +4561c4: lea ecx, [ebp - 0x21c] +4561ca: mov edx, ebx +4561cc: mov eax, dword ptr [ebp - 0x10] +4561cf: mov edi, dword ptr [eax] +4561d1: call dword ptr [edi + 0xc] +4561d4: mov eax, dword ptr [ebp - 0x21c] +4561da: push eax +4561db: lea eax, [ebp - 0x220] +4561e1: mov dl, byte ptr [ebp - 5] +4561e4: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +4561e9: lea eax, [ebp - 0x220] +4561ef: mov edx, 0x4569ac ; '_KANJUB' +4561f4: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +4561f9: mov edx, dword ptr [ebp - 0x220] +4561ff: mov eax, dword ptr [ebp - 0x20] +456202: pop ecx +456203: mov edi, dword ptr [eax] +456205: call dword ptr [edi] +456207: mov eax, dword ptr [ebp - 0x218] +45620d: push eax +45620e: lea eax, [ebp - 0x224] +456214: mov edx, dword ptr [ebp - 0xc] +456217: mov ecx, dword ptr [ebp - 0x1c] +45621a: mov dl, byte ptr [edx + ecx - 1] +45621e: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +456223: lea eax, [ebp - 0x224] +456229: push eax +45622a: lea eax, [ebp - 0x228] +456230: push eax +456231: lea ecx, [ebp - 0x22c] +456237: mov edx, ebx +456239: mov eax, dword ptr [ebp - 0x10] +45623c: mov edi, dword ptr [eax] +45623e: call dword ptr [edi + 0xc] +456241: mov eax, dword ptr [ebp - 0x22c] +456247: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +45624c: push eax +45624d: lea ecx, [ebp - 0x230] +456253: mov edx, ebx +456255: mov eax, dword ptr [ebp - 0x10] +456258: mov edi, dword ptr [eax] +45625a: call dword ptr [edi + 0xc] +45625d: mov eax, dword ptr [ebp - 0x230] +456263: mov edx, 2 +456268: pop ecx +456269: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +45626e: mov edx, dword ptr [ebp - 0x228] +456274: pop eax +456275: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +45627a: mov eax, dword ptr [ebp - 0x224] +456280: push eax +456281: lea eax, [ebp - 0x234] +456287: mov edx, dword ptr [ebp - 0xc] +45628a: mov ecx, dword ptr [ebp - 0x1c] +45628d: mov dl, byte ptr [edx + ecx - 1] +456291: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +456296: lea eax, [ebp - 0x234] +45629c: mov edx, 0x4569ac ; '_KANJUB' +4562a1: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +4562a6: mov edx, dword ptr [ebp - 0x234] +4562ac: mov eax, dword ptr [ebp - 0x20] +4562af: pop ecx +4562b0: mov edi, dword ptr [eax] +4562b2: call dword ptr [edi + 4] +4562b5: inc ebx +4562b6: dec esi +4562b7: jne 0x4561bb +4562bd: mov eax, dword ptr [ebp - 0x10] +4562c0: mov edx, dword ptr [eax] +4562c2: call dword ptr [edx + 0x44] +4562c5: mov eax, dword ptr [ebp - 0x14] +4562c8: mov edx, dword ptr [eax] +4562ca: call dword ptr [edx + 0x44] +4562cd: mov ecx, dword ptr [ebp - 0x10] +4562d0: mov edx, 0x4569bc ; 'KANJUB_ADD' +4562d5: mov eax, dword ptr [ebp - 0x20] +4562d8: mov ebx, dword ptr [eax] +4562da: call dword ptr [ebx + 0x40] +4562dd: mov ecx, dword ptr [ebp - 0x14] +4562e0: mov edx, 0x4569bc ; 'KANJUB_ADD' +4562e5: mov eax, dword ptr [ebp - 0x20] +4562e8: mov ebx, dword ptr [eax] +4562ea: call dword ptr [ebx + 0x48] +4562ed: mov eax, dword ptr [ebp - 0x10] +4562f0: mov edx, dword ptr [eax] +4562f2: call dword ptr [edx + 0x14] +4562f5: mov esi, eax +4562f7: dec esi +4562f8: test esi, esi +4562fa: jl 0x456518 +456300: inc esi +456301: xor ebx, ebx +456303: lea ecx, [ebp - 0x238] +456309: mov edx, ebx +45630b: mov eax, dword ptr [ebp - 0x10] +45630e: mov edi, dword ptr [eax] +456310: call dword ptr [edi + 0xc] +456313: mov eax, dword ptr [ebp - 0x238] +456319: push eax +45631a: push 0x4569d0 ; 'ADD_AMT_' +45631f: call 0x4228cc ; DP_COMMON!MPOS +456324: test al, al +456326: je 0x456510 +45632c: lea eax, [ebp - 0x23c] +456332: push eax +456333: lea ecx, [ebp - 0x240] +456339: mov edx, ebx +45633b: mov eax, dword ptr [ebp - 0x10] +45633e: mov edi, dword ptr [eax] +456340: call dword ptr [edi + 0xc] +456343: mov eax, dword ptr [ebp - 0x240] +456349: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +45634e: push eax +45634f: lea ecx, [ebp - 0x244] +456355: mov edx, ebx +456357: mov eax, dword ptr [ebp - 0x10] +45635a: mov edi, dword ptr [eax] +45635c: call dword ptr [edi + 0xc] +45635f: mov eax, dword ptr [ebp - 0x244] +456365: mov ecx, 1 +45636a: pop edx +45636b: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +456370: mov eax, dword ptr [ebp - 0x23c] +456376: push eax +456377: lea eax, [ebp - 0x248] +45637d: mov dl, byte ptr [ebp - 5] +456380: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +456385: mov edx, dword ptr [ebp - 0x248] +45638b: pop eax +45638c: call 0x4012c0 ; rtl60!@System@@LStrCmp$qqrv +456391: jne 0x456480 +456397: lea eax, [ebp - 0x24c] +45639d: push eax +45639e: lea ecx, [ebp - 0x250] +4563a4: mov edx, ebx +4563a6: mov eax, dword ptr [ebp - 0x14] +4563a9: mov edi, dword ptr [eax] +4563ab: call dword ptr [edi + 0xc] +4563ae: mov eax, dword ptr [ebp - 0x250] +4563b4: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +4563b9: push eax +4563ba: lea ecx, [ebp - 0x254] +4563c0: mov edx, ebx +4563c2: mov eax, dword ptr [ebp - 0x14] +4563c5: mov edi, dword ptr [eax] +4563c7: call dword ptr [edi + 0xc] +4563ca: mov edx, dword ptr [ebp - 0x254] +4563d0: mov eax, 0x4569e4 ; '=' +4563d5: call 0x401300 ; rtl60!@System@@LStrPos$qqrv +4563da: inc eax +4563db: push eax +4563dc: lea ecx, [ebp - 0x258] +4563e2: mov edx, ebx +4563e4: mov eax, dword ptr [ebp - 0x14] +4563e7: mov edi, dword ptr [eax] +4563e9: call dword ptr [edi + 0xc] +4563ec: mov eax, dword ptr [ebp - 0x258] +4563f2: pop edx +4563f3: pop ecx +4563f4: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +4563f9: mov eax, dword ptr [ebp - 0x24c] +4563ff: push eax +456400: lea eax, [ebp - 0x25c] +456406: push eax +456407: lea ecx, [ebp - 0x260] +45640d: mov edx, ebx +45640f: mov eax, dword ptr [ebp - 0x10] +456412: mov edi, dword ptr [eax] +456414: call dword ptr [edi + 0xc] +456417: mov eax, dword ptr [ebp - 0x260] +45641d: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +456422: dec eax +456423: push eax +456424: lea ecx, [ebp - 0x264] +45642a: mov edx, ebx +45642c: mov eax, dword ptr [ebp - 0x10] +45642f: mov edi, dword ptr [eax] +456431: call dword ptr [edi + 0xc] +456434: mov eax, dword ptr [ebp - 0x264] +45643a: mov edx, 1 +45643f: pop ecx +456440: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +456445: lea eax, [ebp - 0x25c] +45644b: push eax +45644c: lea eax, [ebp - 0x268] +456452: mov edx, dword ptr [ebp - 0xc] +456455: mov ecx, dword ptr [ebp - 0x1c] +456458: mov dl, byte ptr [edx + ecx - 1] +45645c: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +456461: mov edx, dword ptr [ebp - 0x268] +456467: pop eax +456468: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +45646d: mov ecx, dword ptr [ebp - 0x25c] +456473: mov edx, 0x4569bc ; 'KANJUB_ADD' +456478: mov eax, dword ptr [ebp - 0x20] +45647b: mov edi, dword ptr [eax] +45647d: call dword ptr [edi + 4] +456480: cmp dword ptr [ebp + 0x10], 4 +456484: jne 0x456490 +456486: cmp dword ptr [ebp + 0xc], 7 +45648a: je 0x456510 +456490: mov eax, dword ptr [ebp + 0x14] +456493: push eax +456494: lea eax, [ebp - 0x26c] +45649a: push eax +45649b: lea ecx, [ebp - 0x270] +4564a1: mov edx, ebx +4564a3: mov eax, dword ptr [ebp - 0x10] +4564a6: mov edi, dword ptr [eax] +4564a8: call dword ptr [edi + 0xc] +4564ab: mov eax, dword ptr [ebp - 0x270] +4564b1: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +4564b6: push eax +4564b7: lea ecx, [ebp - 0x274] +4564bd: mov edx, ebx +4564bf: mov eax, dword ptr [ebp - 0x10] +4564c2: mov edi, dword ptr [eax] +4564c4: call dword ptr [edi + 0xc] +4564c7: mov eax, dword ptr [ebp - 0x274] +4564cd: mov ecx, 1 +4564d2: pop edx +4564d3: call 0x4012e8 ; rtl60!@System@@LStrCopy$qqrv +4564d8: mov eax, dword ptr [ebp - 0x26c] +4564de: push eax +4564df: call 0x4228cc ; DP_COMMON!MPOS +4564e4: test al, al +4564e6: je 0x456510 +4564e8: push 0x4569f0 ; '0' +4564ed: lea ecx, [ebp - 0x278] +4564f3: mov edx, ebx +4564f5: mov eax, dword ptr [ebp - 0x10] +4564f8: mov edi, dword ptr [eax] +4564fa: call dword ptr [edi + 0xc] +4564fd: mov ecx, dword ptr [ebp - 0x278] +456503: mov edx, 0x4569bc ; 'KANJUB_ADD' +456508: mov eax, dword ptr [ebp - 0x20] +45650b: mov edi, dword ptr [eax] +45650d: call dword ptr [edi + 4] +456510: inc ebx +456511: dec esi +456512: jne 0x456303 +456518: inc dword ptr [ebp - 0x1c] +45651b: dec dword ptr [ebp - 0x24] +45651e: jne 0x456128 ; '�' +456524: mov eax, dword ptr [ebp + 0x10] +456527: sub eax, 4 +45652a: je 0x456541 +45652c: sub eax, 2 +45652f: je 0x4566c2 +456535: dec eax +456536: je 0x456631 +45653c: jmp 0x45676b +456541: push 1 +456543: mov ecx, 0x4569fc ; '1_I_COST_BO' +456548: mov edx, 0x456a10 ; '1_KANJUB' +45654d: mov eax, dword ptr [ebp - 0x20] +456550: mov ebx, dword ptr [eax] +456552: call dword ptr [ebx + 0xc] +456555: push 1 +456557: mov ecx, 0x456a24 ; '1_D_KUNBO' +45655c: mov edx, 0x456a10 ; '1_KANJUB' +456561: mov eax, dword ptr [ebp - 0x20] +456564: mov ebx, dword ptr [eax] +456566: call dword ptr [ebx + 0xc] +456569: push 1 +45656b: mov ecx, 0x456a38 ; '1_D_YUNBO' +456570: mov edx, 0x456a10 ; '1_KANJUB' +456575: mov eax, dword ptr [ebp - 0x20] +456578: mov ebx, dword ptr [eax] +45657a: call dword ptr [ebx + 0xc] +45657d: push 1 +45657f: mov ecx, 0x456a4c ; '1_D_ANJUN' +456584: mov edx, 0x456a10 ; '1_KANJUB' +456589: mov eax, dword ptr [ebp - 0x20] +45658c: mov ebx, dword ptr [eax] +45658e: call dword ptr [ebx + 0xc] +456591: push 1 +456593: mov ecx, 0x456a60 ; '1_D_SLVBO' +456598: mov edx, 0x456a10 ; '1_KANJUB' +45659d: mov eax, dword ptr [ebp - 0x20] +4565a0: mov ebx, dword ptr [eax] +4565a2: call dword ptr [ebx + 0xc] +4565a5: push 1 +4565a7: mov ecx, 0x456a74 ; '1_D_TBUGUM' +4565ac: mov edx, 0x456a10 ; '1_KANJUB' +4565b1: mov eax, dword ptr [ebp - 0x20] +4565b4: mov ebx, dword ptr [eax] +4565b6: call dword ptr [ebx + 0xc] +4565b9: cmp dword ptr [ebp + 0xc], 7 +4565bd: je 0x4565d3 +4565bf: push 0 +4565c1: mov ecx, 0x456a88 ; '1_C_IYUN_M' +4565c6: mov edx, 0x456a10 ; '1_KANJUB' +4565cb: mov eax, dword ptr [ebp - 0x20] +4565ce: mov ebx, dword ptr [eax] +4565d0: call dword ptr [ebx + 0xc] +4565d3: push 1 +4565d5: mov ecx, 0x456a9c ; '1_D_EIS_SUPPAY' +4565da: mov edx, 0x456a10 ; '1_KANJUB' +4565df: mov eax, dword ptr [ebp - 0x20] +4565e2: mov ebx, dword ptr [eax] +4565e4: call dword ptr [ebx + 0xc] +4565e7: push 0 +4565e9: push 0 +4565eb: mov ecx, 0x456ab4 ; '1_C_EIS_SUPPAY' +4565f0: mov edx, 0x456a10 ; '1_KANJUB' +4565f5: mov eax, dword ptr [ebp - 0x20] +4565f8: mov ebx, dword ptr [eax] +4565fa: call dword ptr [ebx + 0x38] +4565fd: push 0 +4565ff: push 0 +456601: mov ecx, 0x456acc ; '1_C_EIS_HOLPAY' +456606: mov edx, 0x456a10 ; '1_KANJUB' +45660b: mov eax, dword ptr [ebp - 0x20] +45660e: mov ebx, dword ptr [eax] +456610: call dword ptr [ebx + 0x24] +456613: add esp, -8 +456616: fstp qword ptr [esp] +456619: wait +45661a: mov ecx, 0x456ae4 ; '1_C_EIS_HOLLAB' +45661f: mov edx, 0x456a10 ; '1_KANJUB' +456624: mov eax, dword ptr [ebp - 0x20] +456627: mov ebx, dword ptr [eax] +456629: call dword ptr [ebx + 0x38] +45662c: jmp 0x45676b +456631: push 1 +456633: mov ecx, 0x456afc ; '2_D_KUNBO' +456638: mov edx, 0x456b10 ; '2_KANJUB' +45663d: mov eax, dword ptr [ebp - 0x20] +456640: mov ebx, dword ptr [eax] +456642: call dword ptr [ebx + 0xc] +456645: push 1 +456647: mov ecx, 0x456b24 ; '2_D_YUNBO' +45664c: mov edx, 0x456b10 ; '2_KANJUB' +456651: mov eax, dword ptr [ebp - 0x20] +456654: mov ebx, dword ptr [eax] +456656: call dword ptr [ebx + 0xc] +456659: push 1 +45665b: mov ecx, 0x456b38 ; '2_D_SLVBO' +456660: mov edx, 0x456b10 ; '2_KANJUB' +456665: mov eax, dword ptr [ebp - 0x20] +456668: mov ebx, dword ptr [eax] +45666a: call dword ptr [ebx + 0xc] +45666d: push 1 +45666f: mov ecx, 0x456b4c ; '2_D_TBUGUM' +456674: mov edx, 0x456b10 ; '2_KANJUB' +456679: mov eax, dword ptr [ebp - 0x20] +45667c: mov ebx, dword ptr [eax] +45667e: call dword ptr [ebx + 0xc] +456681: push 2 +456683: mov ecx, 0x456b60 ; '2_I_BF_CH_BO' +456688: mov edx, 0x456b10 ; '2_KANJUB' +45668d: mov eax, dword ptr [ebp - 0x20] +456690: mov ebx, dword ptr [eax] +456692: call dword ptr [ebx + 0xc] +456695: push 2 +456697: mov ecx, 0x456b78 ; '2_I_ANJUNAUTO' +45669c: mov edx, 0x456b10 ; '2_KANJUB' +4566a1: mov eax, dword ptr [ebp - 0x20] +4566a4: mov ebx, dword ptr [eax] +4566a6: call dword ptr [ebx + 0xc] +4566a9: push 0 +4566ab: mov ecx, 0x456b90 ; '2_D_ANJUN' +4566b0: mov edx, 0x456b10 ; '2_KANJUB' +4566b5: mov eax, dword ptr [ebp - 0x20] +4566b8: mov ebx, dword ptr [eax] +4566ba: call dword ptr [ebx + 0xc] +4566bd: jmp 0x45676b +4566c2: push 0 +4566c4: mov ecx, 0x456ba4 ; '1_I_BF_CH_BO' +4566c9: mov edx, 0x456a10 ; '1_KANJUB' +4566ce: mov eax, dword ptr [ebp - 0x20] +4566d1: mov ebx, dword ptr [eax] +4566d3: call dword ptr [ebx + 8] +4566d6: test eax, eax +4566d8: je 0x45672a +4566da: push 1 +4566dc: mov ecx, 0x456a24 ; '1_D_KUNBO' +4566e1: mov edx, 0x456a10 ; '1_KANJUB' +4566e6: mov eax, dword ptr [ebp - 0x20] +4566e9: mov ebx, dword ptr [eax] +4566eb: call dword ptr [ebx + 0xc] +4566ee: push 1 +4566f0: mov ecx, 0x456a38 ; '1_D_YUNBO' +4566f5: mov edx, 0x456a10 ; '1_KANJUB' +4566fa: mov eax, dword ptr [ebp - 0x20] +4566fd: mov ebx, dword ptr [eax] +4566ff: call dword ptr [ebx + 0xc] +456702: push 1 +456704: mov ecx, 0x456a60 ; '1_D_SLVBO' +456709: mov edx, 0x456a10 ; '1_KANJUB' +45670e: mov eax, dword ptr [ebp - 0x20] +456711: mov ebx, dword ptr [eax] +456713: call dword ptr [ebx + 0xc] +456716: push 1 +456718: mov ecx, 0x456a74 ; '1_D_TBUGUM' +45671d: mov edx, 0x456a10 ; '1_KANJUB' +456722: mov eax, dword ptr [ebp - 0x20] +456725: mov ebx, dword ptr [eax] +456727: call dword ptr [ebx + 0xc] +45672a: push 0 +45672c: mov ecx, 0x456bbc ; '1_I_ANJUNAUTO' +456731: mov edx, 0x456a10 ; '1_KANJUB' +456736: mov eax, dword ptr [ebp - 0x20] +456739: mov ebx, dword ptr [eax] +45673b: call dword ptr [ebx + 8] +45673e: cmp eax, 2 +456741: jne 0x45676b +456743: push 1 +456745: mov ecx, 0x456a4c ; '1_D_ANJUN' +45674a: mov edx, 0x456a10 ; '1_KANJUB' +45674f: mov eax, dword ptr [ebp - 0x20] +456752: mov ebx, dword ptr [eax] +456754: call dword ptr [ebx + 0xc] +456757: push 1 +456759: mov ecx, 0x456bbc ; '1_I_ANJUNAUTO' +45675e: mov edx, 0x456a10 ; '1_KANJUB' +456763: mov eax, dword ptr [ebp - 0x20] +456766: mov ebx, dword ptr [eax] +456768: call dword ptr [ebx + 0xc] +45676b: mov eax, dword ptr [ebp + 0x14] +45676e: call 0x4012a0 ; rtl60!@System@@LStrLen$qqrx17System@AnsiString +456773: test eax, eax +456775: jle 0x4567c2 +456777: mov dword ptr [ebp - 0x24], eax +45677a: mov ebx, 1 +45677f: mov eax, dword ptr [ebp + 0x14] +456782: mov al, byte ptr [eax + ebx - 1] +456786: add al, 0xcf +456788: sub al, 4 +45678a: jae 0x4567bc +45678c: lea eax, [ebp - 0x27c] +456792: mov edx, dword ptr [ebp + 0x14] +456795: mov dl, byte ptr [edx + ebx - 1] +456799: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +45679e: lea eax, [ebp - 0x27c] +4567a4: mov edx, 0x4569ac ; '_KANJUB' +4567a9: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +4567ae: mov edx, dword ptr [ebp - 0x27c] +4567b4: mov eax, dword ptr [ebp - 0x20] +4567b7: mov ecx, dword ptr [eax] +4567b9: call dword ptr [ecx + 0x4c] +4567bc: inc ebx +4567bd: dec dword ptr [ebp - 0x24] +4567c0: jne 0x45677f ; '�' +4567c2: lea eax, [ebp - 4] +4567c5: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv +4567ca: mov dl, 1 +4567cc: mov eax, dword ptr [0x5fd800] ; [rtl60!@Classes@TStringList@] +4567d1: call 0x401170 ; rtl60!@System@TObject@$bctr$qqrv +4567d6: mov dword ptr [ebp - 0x18], eax +4567d9: mov edx, dword ptr [ebp - 0x18] +4567dc: mov eax, dword ptr [ebp - 0x20] +4567df: mov ecx, dword ptr [eax] +4567e1: call dword ptr [ecx + 0x44] +4567e4: mov eax, dword ptr [ebp - 0x18] +4567e7: mov edx, dword ptr [eax] +4567e9: call dword ptr [edx + 0x14] +4567ec: dec eax +4567ed: test eax, eax +4567ef: jl 0x4568be +4567f5: inc eax +4567f6: mov dword ptr [ebp - 0x24], eax +4567f9: xor ebx, ebx +4567fb: mov eax, dword ptr [ebp - 0x10] +4567fe: mov edx, dword ptr [eax] +456800: call dword ptr [edx + 0x44] +456803: lea ecx, [ebp - 0x280] +456809: mov edx, ebx +45680b: mov eax, dword ptr [ebp - 0x18] +45680e: mov esi, dword ptr [eax] +456810: call dword ptr [esi + 0xc] +456813: mov edx, dword ptr [ebp - 0x280] +456819: mov ecx, dword ptr [ebp - 0x10] +45681c: mov eax, dword ptr [ebp - 0x20] +45681f: mov esi, dword ptr [eax] +456821: call dword ptr [esi + 0x48] +456824: push dword ptr [ebp - 4] +456827: push 0x456bd4 ; '[' +45682c: lea ecx, [ebp - 0x284] +456832: mov edx, ebx +456834: mov eax, dword ptr [ebp - 0x18] +456837: mov esi, dword ptr [eax] +456839: call dword ptr [esi + 0xc] +45683c: push dword ptr [ebp - 0x284] +456842: push 0x456be0 ; ']' +456847: push 0x456994 ; '\r' +45684c: push 0x456bec ; '\n' +456851: lea eax, [ebp - 4] +456854: mov edx, 6 +456859: call 0x4012b8 ; rtl60!@System@@LStrCatN$qqrv +45685e: mov eax, dword ptr [ebp - 0x10] +456861: mov edx, dword ptr [eax] +456863: call dword ptr [edx + 0x14] +456866: mov esi, eax +456868: dec esi +456869: test esi, esi +45686b: jl 0x4568ac +45686d: inc esi +45686e: mov dword ptr [ebp - 0x1c], 0 +456875: push dword ptr [ebp - 4] +456878: lea ecx, [ebp - 0x288] +45687e: mov edx, dword ptr [ebp - 0x1c] +456881: mov eax, dword ptr [ebp - 0x10] +456884: mov edi, dword ptr [eax] +456886: call dword ptr [edi + 0xc] +456889: push dword ptr [ebp - 0x288] +45688f: push 0x456994 ; '\r' +456894: push 0x456bec ; '\n' +456899: lea eax, [ebp - 4] +45689c: mov edx, 4 +4568a1: call 0x4012b8 ; rtl60!@System@@LStrCatN$qqrv +4568a6: inc dword ptr [ebp - 0x1c] +4568a9: dec esi +4568aa: jne 0x456875 +4568ac: mov eax, dword ptr [ebp - 0x10] +4568af: mov edx, dword ptr [eax] +4568b1: call dword ptr [edx + 0x44] +4568b4: inc ebx +4568b5: dec dword ptr [ebp - 0x24] +4568b8: jne 0x4567fb +4568be: mov eax, dword ptr [ebp + 8] +4568c1: mov edx, dword ptr [ebp - 4] +4568c4: call 0x401260 ; rtl60!@System@@LStrAsg$qqrpvpxv +4568c9: xor eax, eax +4568cb: pop edx +4568cc: pop ecx +4568cd: pop ecx +4568ce: mov dword ptr fs:[eax], edx +4568d1: push 0x4568f6 +4568d6: mov eax, dword ptr [ebp - 0x10] +4568d9: call 0x401180 ; rtl60!@System@TObject@Free$qqrv +4568de: mov eax, dword ptr [ebp - 0x18] +4568e1: call 0x401180 ; rtl60!@System@TObject@Free$qqrv +4568e6: mov eax, dword ptr [ebp - 0x20] +4568e9: call 0x401180 ; rtl60!@System@TObject@Free$qqrv +4568ee: ret +4568ef: jmp 0x401200 ; rtl60!@System@@HandleFinally$qqrv +4568f4: jmp 0x4568d6 +4568f6: push 0 +4568f8: lea eax, [ebp - 0x28c] +4568fe: mov edx, dword ptr [0x5e5e7c] +456904: mov edx, dword ptr [edx] +456906: add edx, 0x156d +45690c: call 0x401288 ; rtl60!@System@@LStrFromString$qqrr17System@AnsiStringrx28System@%SmallString$iuc$255% +456911: lea eax, [ebp - 0x28c] +456917: mov edx, 0x45697c ; 'PRJ_MEMO.INI' +45691c: call 0x4012a8 ; rtl60!@System@@LStrCat$qqrv +456921: mov eax, dword ptr [ebp - 0x28c] +456927: push eax +456928: call 0x42297c ; DP_COMMON!DELE_FILE +45692d: xor eax, eax +45692f: pop edx +456930: pop ecx +456931: pop ecx +456932: mov dword ptr fs:[eax], edx +456935: push 0x45696a +45693a: lea eax, [ebp - 0x28c] +456940: mov edx, 0x27 +456945: call 0x401258 ; rtl60!@System@@LStrArrayClr$qqrpvi +45694a: lea eax, [ebp - 0xc] +45694d: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv +456952: lea eax, [ebp - 4] +456955: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv +45695a: lea eax, [ebp + 0x14] +45695d: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv +456962: ret +456963: jmp 0x401200 ; rtl60!@System@@HandleFinally$qqrv +456968: jmp 0x45693a +45696a: pop edi +45696b: pop esi +45696c: pop ebx +45696d: mov esp, ebp +45696f: pop ebp +456970: ret 0x10 +456973: add bh, bh +456975: .byte 0xff +456976: .byte 0xff +456977: dec dword ptr [eax + eax] +45697a: add byte ptr [eax], al +45697c: push eax +45697d: push edx +45697e: dec edx +45697f: pop edi diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Main_0x55b0b5_registration_kanjub_branch.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Main_0x55b0b5_registration_kanjub_branch.asm.txt new file mode 100644 index 000000000..8da565245 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Main_0x55b0b5_registration_kanjub_branch.asm.txt @@ -0,0 +1,184 @@ +55b0b5: mov eax, dword ptr [ebp - 4] +55b0b8: mov ebx, dword ptr [eax + 0x57c] +55b0be: cmp ebx, 4 +55b0c1: jne 0x55b287 +55b0c7: mov eax, dword ptr [ebp - 4] +55b0ca: mov esi, dword ptr [eax + 0x578] +55b0d0: mov eax, esi +55b0d2: sub eax, 1 +55b0d5: jb 0x55b0e1 +55b0d7: sub eax, 6 +55b0da: je 0x55b13a +55b0dc: jmp 0x55b7d9 +55b0e1: push 0x55f3d8 ; '234' +55b0e6: push ebx +55b0e7: push 0 +55b0e9: lea eax, [ebp - 0x354] +55b0ef: push eax +55b0f0: mov eax, dword ptr [0x5e5f40] +55b0f5: mov edx, dword ptr [ebp - 0x28] +55b0f8: mov eax, dword ptr [eax + edx*4 + 4] +55b0fc: mov dl, byte ptr [eax] +55b0fe: mov ecx, 0x55f3e4 ; '1' +55b103: mov eax, dword ptr [ebp - 0x44] +55b106: call 0x455e68 +55b10b: mov edx, dword ptr [ebp - 0x354] +55b111: lea eax, [ebp - 0x350] +55b117: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +55b11c: lea ecx, [ebp - 0x350] +55b122: mov eax, dword ptr [ebp - 4] +55b125: mov eax, dword ptr [eax + 0x2f4] +55b12b: mov edx, 0x55f374 ; 'PRJ_MEMO' +55b130: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b135: jmp 0x55b7d9 +55b13a: push 0x55f3d8 ; '234' +55b13f: push ebx +55b140: push esi +55b141: lea eax, [ebp - 0x368] +55b147: push eax +55b148: mov eax, dword ptr [0x5e5f40] +55b14d: mov edx, dword ptr [ebp - 0x28] +55b150: mov eax, dword ptr [eax + edx*4 + 4] +55b154: mov dl, byte ptr [eax] +55b156: mov ecx, 0x55f3e4 ; '1' +55b15b: mov eax, dword ptr [ebp - 0x44] +55b15e: call 0x455e68 +55b163: mov edx, dword ptr [ebp - 0x368] +55b169: lea eax, [ebp - 0x364] +55b16f: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +55b174: lea ecx, [ebp - 0x364] +55b17a: mov eax, dword ptr [ebp - 4] +55b17d: mov eax, dword ptr [eax + 0x2f4] +55b183: mov edx, 0x55f374 ; 'PRJ_MEMO' +55b188: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b18d: mov eax, dword ptr [0x5e5f40] +55b192: mov edx, dword ptr [ebp - 0x28] +55b195: mov ecx, dword ptr [eax + edx*4 + 4] +55b199: lea eax, [ebp - 0x37c] +55b19f: mov edx, 0x55f364 ; 'TCOST' +55b1a4: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +55b1a9: mov edx, dword ptr [ebp - 0x37c] +55b1af: lea ecx, [ebp - 0x378] +55b1b5: mov eax, dword ptr [ebp - 4] +55b1b8: mov ebx, dword ptr [eax + 0x2f4] +55b1be: mov eax, ebx +55b1c0: call 0x403d00 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +55b1c5: lea ecx, [ebp - 0x378] +55b1cb: mov eax, ebx +55b1cd: mov edx, 0x55f3f0 ; 'TCOST1' +55b1d2: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b1d7: lea eax, [ebp - 0x38c] +55b1dd: xor edx, edx +55b1df: mov cl, 1 +55b1e1: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +55b1e6: lea ecx, [ebp - 0x38c] +55b1ec: mov eax, dword ptr [ebp - 4] +55b1ef: mov eax, dword ptr [eax + 0x2f4] +55b1f5: mov edx, 0x55f400 ; 'TCOST2' +55b1fa: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b1ff: lea eax, [ebp - 0x39c] +55b205: xor edx, edx +55b207: mov cl, 1 +55b209: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +55b20e: lea ecx, [ebp - 0x39c] +55b214: mov eax, dword ptr [ebp - 4] +55b217: mov eax, dword ptr [eax + 0x2f4] +55b21d: mov edx, 0x55f410 ; 'TCOST3' +55b222: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b227: lea eax, [ebp - 0x3ac] +55b22d: xor edx, edx +55b22f: mov cl, 1 +55b231: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +55b236: lea ecx, [ebp - 0x3ac] +55b23c: mov eax, dword ptr [ebp - 4] +55b23f: mov eax, dword ptr [eax + 0x2f4] +55b245: mov edx, 0x55f420 ; 'TCOST4' +55b24a: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b24f: mov eax, dword ptr [ebp - 4] +55b252: xor edx, edx +55b254: mov dword ptr [eax + 0x580], edx +55b25a: lea eax, [ebp - 0x3bc] +55b260: xor edx, edx +55b262: mov cl, 1 +55b264: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +55b269: lea ecx, [ebp - 0x3bc] +55b26f: mov eax, dword ptr [ebp - 4] +55b272: mov eax, dword ptr [eax + 0x2f4] +55b278: mov edx, 0x55f430 ; 'K_ORD' +55b27d: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b282: jmp 0x55b7d9 +55b287: cmp ebx, 6 +55b28a: jne 0x55b523 +55b290: lea eax, [ebp - 0x3cc] +55b296: mov edx, 1 +55b29b: mov cl, 1 +55b29d: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +55b2a2: lea ecx, [ebp - 0x3cc] +55b2a8: mov eax, dword ptr [ebp - 4] +55b2ab: mov eax, dword ptr [eax + 0x2f4] +55b2b1: mov edx, 0x55f440 ; 'k_ord' +55b2b6: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b2bb: mov eax, dword ptr [ebp - 4] +55b2be: mov eax, dword ptr [eax + 0x578] +55b2c4: sub eax, 4 +55b2c7: je 0x55b2da +55b2c9: sub eax, 2 +55b2cc: je 0x55b328 +55b2ce: dec eax +55b2cf: je 0x55b3d0 +55b2d5: jmp 0x55b7d9 +55b2da: push 0x55f3d8 ; '234' +55b2df: push 0 +55b2e1: push 0 +55b2e3: lea eax, [ebp - 0x3e0] +55b2e9: push eax +55b2ea: mov ecx, 0x55f3e4 ; '1' +55b2ef: mov dl, 0x31 +55b2f1: mov eax, dword ptr [ebp - 0x44] +55b2f4: call 0x455e68 +55b2f9: mov edx, dword ptr [ebp - 0x3e0] +55b2ff: lea eax, [ebp - 0x3dc] +55b305: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +55b30a: lea ecx, [ebp - 0x3dc] +55b310: mov eax, dword ptr [ebp - 4] +55b313: mov eax, dword ptr [eax + 0x2f4] +55b319: mov edx, 0x55f374 ; 'PRJ_MEMO' +55b31e: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b323: jmp 0x55b7d9 +55b328: push 0x55f450 ; '4' +55b32d: push 0 +55b32f: push 0 +55b331: lea eax, [ebp - 0x3f4] +55b337: push eax +55b338: mov ecx, 0x55f45c ; '3' +55b33d: mov dl, 0x32 +55b33f: mov eax, dword ptr [ebp - 0x44] +55b342: call 0x455e68 +55b347: mov edx, dword ptr [ebp - 0x3f4] +55b34d: lea eax, [ebp - 0x3f0] +55b353: call 0x4013f8 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +55b358: lea ecx, [ebp - 0x3f0] +55b35e: mov eax, dword ptr [ebp - 4] +55b361: mov eax, dword ptr [eax + 0x2f4] +55b367: mov edx, 0x55f374 ; 'PRJ_MEMO' +55b36c: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b371: lea ecx, [ebp - 0x404] +55b377: mov eax, dword ptr [ebp - 4] +55b37a: mov eax, dword ptr [eax + 0x2f4] +55b380: mov edx, 0x55f400 ; 'TCOST2' +55b385: call 0x403d00 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +55b38a: lea ecx, [ebp - 0x404] +55b390: mov eax, dword ptr [ebp - 4] +55b393: mov eax, dword ptr [eax + 0x2f4] +55b399: mov edx, 0x55f410 ; 'TCOST3' +55b39e: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b3a3: lea eax, [ebp - 0x414] +55b3a9: xor edx, edx +55b3ab: mov cl, 1 +55b3ad: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +55b3b2: lea ecx, [ebp - 0x414] +55b3b8: mov eax, dword ptr [ebp - 4] +55b3bb: mov eax, dword ptr [eax + 0x2f4] +55b3c1: mov edx, 0x55f420 ; 'TCOST4' +55b3c6: call 0x403d08 ; dbrtl60!@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant +55b3cb: jmp 0x55b7d9 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Nae_0x4b285c_TPM_Jab_column_slot.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Nae_0x4b285c_TPM_Jab_column_slot.asm.txt new file mode 100644 index 000000000..e748c1444 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Nae_0x4b285c_TPM_Jab_column_slot.asm.txt @@ -0,0 +1,80 @@ +4b285c: mov eax, dword ptr [0x4ebf3c] +4b2861: mov eax, dword ptr [eax] +4b2863: mov edx, dword ptr [ebp - 0xc] +4b2866: movsx eax, byte ptr [eax + edx + 0x1788] +4b286e: mov edx, dword ptr [0x4ec028] +4b2874: mov ecx, dword ptr [edx + eax*4] +4b2877: lea eax, [ebp - 0x1a0] +4b287d: mov edx, 0x4b3cf0 ; 'T_AMT' +4b2882: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv +4b2887: mov edx, dword ptr [ebp - 0x1a0] +4b288d: lea ecx, [ebp - 0x19c] +4b2893: mov eax, dword ptr [esi + 0x328] +4b2899: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +4b289e: lea edx, [ebp - 0x19c] +4b28a4: mov eax, dword ptr [ebx - 4] +4b28a7: mov ecx, dword ptr [eax] +4b28a9: call dword ptr [ecx + 0xc4] +4b28af: cmp byte ptr [ebp - 0x15], 0 +4b28b3: je 0x4b29b6 +4b28b9: mov eax, dword ptr [0x4ebf3c] +4b28be: mov eax, dword ptr [eax] +4b28c0: mov edx, dword ptr [ebp - 0xc] +4b28c3: movsx eax, byte ptr [eax + edx + 0x1788] +4b28cb: mov edx, dword ptr [0x4ec028] +4b28d1: mov ecx, dword ptr [edx + eax*4] +4b28d4: lea eax, [ebp - 0x1b4] +4b28da: mov edx, 0x4b3d00 ; 'M_AMT' +4b28df: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv +4b28e4: mov edx, dword ptr [ebp - 0x1b4] +4b28ea: lea ecx, [ebp - 0x1b0] +4b28f0: mov eax, dword ptr [esi + 0x328] +4b28f6: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +4b28fb: lea edx, [ebp - 0x1b0] +4b2901: mov eax, dword ptr [ebx] +4b2903: mov ecx, dword ptr [eax] +4b2905: call dword ptr [ecx + 0xc4] +4b290b: mov eax, dword ptr [0x4ebf3c] +4b2910: mov eax, dword ptr [eax] +4b2912: mov edx, dword ptr [ebp - 0xc] +4b2915: movsx eax, byte ptr [eax + edx + 0x1788] +4b291d: mov edx, dword ptr [0x4ec028] +4b2923: mov ecx, dword ptr [edx + eax*4] +4b2926: lea eax, [ebp - 0x1c8] +4b292c: mov edx, 0x4b3d10 ; 'L_AMT' +4b2931: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv +4b2936: mov edx, dword ptr [ebp - 0x1c8] +4b293c: lea ecx, [ebp - 0x1c4] +4b2942: mov eax, dword ptr [esi + 0x328] +4b2948: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +4b294d: lea edx, [ebp - 0x1c4] +4b2953: mov eax, dword ptr [ebx + 4] +4b2956: mov ecx, dword ptr [eax] +4b2958: call dword ptr [ecx + 0xc4] +4b295e: mov eax, dword ptr [0x4ebf3c] +4b2963: mov eax, dword ptr [eax] +4b2965: mov edx, dword ptr [ebp - 0xc] +4b2968: movsx eax, byte ptr [eax + edx + 0x1788] +4b2970: mov edx, dword ptr [0x4ec028] +4b2976: mov ecx, dword ptr [edx + eax*4] +4b2979: lea eax, [ebp - 0x1dc] +4b297f: mov edx, 0x4b3d20 ; 'S_AMT' +4b2984: call 0x401240 ; rtl60!@System@@LStrCat3$qqrv +4b2989: mov edx, dword ptr [ebp - 0x1dc] +4b298f: lea ecx, [ebp - 0x1d8] +4b2995: mov eax, dword ptr [esi + 0x328] +4b299b: call 0x402838 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +4b29a0: lea edx, [ebp - 0x1d8] +4b29a6: mov eax, dword ptr [ebx + 8] +4b29a9: mov ecx, dword ptr [eax] +4b29ab: call dword ptr [ecx + 0xc4] +4b29b1: jmp 0x4b2df7 +4b29b6: cmp byte ptr [ebp - 6], 0x54 +4b29ba: je 0x4b2df7 +4b29c0: mov eax, dword ptr [0x4ebf3c] +4b29c5: mov eax, dword ptr [eax] +4b29c7: mov edx, dword ptr [ebp - 0xc] +4b29ca: movsx eax, byte ptr [eax + edx + 0x1788] +4b29d2: mov edx, dword ptr [0x4ec028] +4b29d8: mov ecx, dword ptr [edx + eax*4] +4b29db: lea eax, [ebp - 0x1f0] diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Prt_0x4b6b14_column_slot_array.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Prt_0x4b6b14_column_slot_array.asm.txt new file mode 100644 index 000000000..bb57bc691 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/Prt_0x4b6b14_column_slot_array.asm.txt @@ -0,0 +1,14 @@ +4b6b14: xor edx, edx +4b6b16: mov eax, 0x4d5498 +4b6b1b: mov ecx, dword ptr [0x4c294c] +4b6b21: mov ecx, dword ptr [ecx] +4b6b23: mov bl, byte ptr [eax] +4b6b25: mov byte ptr [ecx + edx + 0x1788], bl +4b6b2c: inc edx +4b6b2d: inc eax +4b6b2e: cmp edx, 6 +4b6b31: jne 0x4b6b1b +4b6b33: mov eax, dword ptr [0x4c294c] +4b6b38: mov eax, dword ptr [eax] +4b6b3a: mov dl, byte ptr [0x4d5498] +4b6b40: mov byte ptr [eax + 0x178e], dl diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/TPM_JAB.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/TPM_JAB.json new file mode 100644 index 000000000..0f77a3b27 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/evidence/TPM_JAB.json @@ -0,0 +1,754 @@ +{ + "class": "TPM_Jab", + "name": "PM_Jab", + "flags": [], + "child_pos": null, + "properties": { + "Left": 192, + "Top": 107, + "Width": 696, + "Height": 477, + "Caption": "PM_Jab", + "Color": "clBtnFace", + "Font.Charset": "HANGEUL_CHARSET", + "Font.Color": "clWindowText", + "Font.Height": -12, + "Font.Name": "굴림체", + "Font.Style": [], + "OldCreateOrder": false, + "Scaled": false, + "WindowState": "wsMaximized", + "PixelsPerInch": 96, + "TextHeight": 12 + }, + "children": [ + { + "class": "THRPage", + "name": "HRPage1", + "flags": [], + "child_pos": null, + "properties": { + "Left": 0, + "Top": 0, + "Width": 1123, + "Height": 794, + "BeforePrint": "HRPage1BeforePrint", + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clSilver", + "Font.Charset": "HANGEUL_CHARSET", + "Font.Color": "clWindowText", + "Font.Height": -16, + "Font.Name": "굴림체", + "Font.Style": [], + "ParentFont": false, + "PageInfo.Width": 210, + "PageInfo.Height": 297, + "PageInfo.MargineLeft": 20, + "PageInfo.MargineTop": 15, + "PageInfo.MargineRight": 20, + "PageInfo.MargineBottom": 15, + "PageInfo.Orientation": "hpoLandscape", + "PrintZoom": 100, + "Ruler": true, + "Units": "hpuMM" + }, + "children": [ + { + "class": "THRPageBand", + "name": "HRPageBand3", + "flags": [], + "child_pos": null, + "properties": { + "Left": 76, + "Top": 107, + "Width": 971, + "Height": 586, + "LocateAtPage": "alNone", + "BandType": "hpbPageHeader", + "Alignment": "taLeftJustify", + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnRight", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clGreen" + }, + "children": [ + { + "class": "THRLabel", + "name": "lb_Smpl", + "flags": [], + "child_pos": null, + "properties": { + "Left": 72, + "Top": 80, + "Width": 500, + "Height": 168, + "Alignment": "taCenter", + "Font.Charset": "ANSI_CHARSET", + "Font.Color": 13290239, + "Font.Height": -160, + "Font.Name": "Times New Roman", + "Font.Style": [], + "FontWidth": 30, + "ParentFont": false, + "Transparent": true, + "Visible": false, + "BorderStyle.ShadowBrush.Color": "clGray", + "BorderStyle.ShadowWidth": 3, + "BorderStyle.Slash": [ + "slNormal" + ], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Color": 13290239, + "BorderStyle.Pen.Width": 3, + "BorderStyle.Transparent": true, + "Caption": "S A M P L E", + "LocateAtText": "hllNone" + }, + "children": [] + } + ] + }, + { + "class": "THRPageBand", + "name": "HRPageBand1", + "flags": [], + "child_pos": null, + "properties": { + "Left": 76, + "Top": 57, + "Width": 971, + "Height": 50, + "LocateAtPage": "alTop", + "BandType": "hpbPageHeader", + "Alignment": "taLeftJustify", + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clGreen", + "BorderStyle.Transparent": true + }, + "children": [ + { + "class": "THRLabel", + "name": "HlCap", + "flags": [], + "child_pos": null, + "properties": { + "Left": 0, + "Top": 0, + "Width": 971, + "Height": 27, + "Alignment": "taCenter", + "Font.Charset": "HANGEUL_CHARSET", + "Font.Color": "clBlack", + "Font.Height": -21, + "Font.Name": "굴림체", + "Font.Style": [ + "fsBold", + "fsUnderline" + ], + "FontWidth": 6, + "ParentFont": false, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Transparent": true, + "Caption": "총 괄 설 계 내 역 서", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "txPName", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 900000, + "Left": 0, + "Top": 26, + "Width": 720, + "Height": 23, + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Transparent": true, + "BorderMargine.Bottom": 0, + "Caption": "공사명 : 경영정보(주) 앞 도로개설공사", + "LocateAtText": "hllNone" + }, + "children": [] + } + ] + }, + { + "class": "THRPageBand", + "name": "HRPageBand2", + "flags": [], + "child_pos": null, + "properties": { + "Left": 76, + "Top": 693, + "Width": 971, + "Height": 44, + "LocateAtPage": "alBottom", + "BandType": "hpbPageFooter", + "Alignment": "taLeftJustify", + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clGreen", + "BorderStyle.Transparent": true + }, + "children": [ + { + "class": "THRLabel", + "name": "CopName", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 900000, + "Left": 0, + "Top": 4, + "Width": 971, + "Height": 22, + "Alignment": "taRightJustify", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Transparent": true, + "BorderMargine.Top": 4, + "Caption": "경영정보(주)", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRCalc", + "name": "HrPage", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 900000, + "Left": 0, + "Top": 4, + "Width": 971, + "Height": 22, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Transparent": true, + "BorderMargine.Top": 4, + "ResetType": "hrtResetValue", + "ResetValue": 1, + "CalcFunction": "hcfPageNo", + "DisplayFormat": "- #,# -", + "LocateAtText": "hllNone" + }, + "children": [] + } + ] + }, + { + "class": "THRGroup", + "name": "HRGroup1", + "flags": [], + "child_pos": null, + "properties": { + "Left": 76, + "Top": 142, + "Width": 971, + "Height": 22, + "AfterPrint": "HRGroup1AfterPrint", + "BeforePrint": "HRGroup1BeforePrint", + "Alignment": "taLeftJustify", + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clAqua", + "BorderStyle.Transparent": true, + "GroupStyle.RepeatToEOP": true, + "GroupStyle.RepeatControls": true, + "GroupStyle.SuppressText": true, + "GroupStyle.PrintOnRepeat": true, + "LocateAtPage": "hgaNone" + }, + "children": [ + { + "class": "THRDBText", + "name": "txITNUM", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 200010, + "Left": 0, + "Top": 0, + "Width": 78, + "Height": 23, + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 5, + "DataField": "ITNUM", + "TextFunction": "htfNone" + }, + "children": [] + }, + { + "class": "THRDBText", + "name": "txNAME1", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 200020, + "Left": 77, + "Top": 0, + "Width": 201, + "Height": 23, + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 5, + "DataField": "NAME1", + "TextFunction": "htfNone" + }, + "children": [] + }, + { + "class": "THRDBText", + "name": "txSIZE1", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 200030, + "Left": 277, + "Top": 0, + "Width": 186, + "Height": 23, + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 5, + "DataField": "SIZE1", + "TextFunction": "htfNone" + }, + "children": [] + } + ] + }, + { + "class": "THRGroupBand", + "name": "HRGroupBand0", + "flags": [], + "child_pos": null, + "properties": { + "Left": 76, + "Top": 107, + "Width": 971, + "Height": 35, + "AlignWithGroup": "hbaGroupBoth", + "LocateAtGroup": "hblTopAttach", + "BodyGroup": "HRGroup1", + "BandType": "hgbGroupHeader", + "Alignment": "taLeftJustify", + "BorderStyle.Slash": [], + "BorderStyle.Lines": [], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Transparent": true + }, + "children": [ + { + "class": "THRLabel", + "name": "lbFld01", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100010, + "Left": 0, + "Top": 0, + "Width": 78, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "공 종", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "lbFld02", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100020, + "Left": 77, + "Top": 0, + "Width": 201, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "명 칭", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "lbFld03", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100030, + "Left": 277, + "Top": 0, + "Width": 186, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "규 격", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "lbFld04", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100040, + "Left": 462, + "Top": 0, + "Width": 128, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "계", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "lbFld05", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100050, + "Left": 589, + "Top": 0, + "Width": 128, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "재료비", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "lbFld06", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100060, + "Left": 716, + "Top": 0, + "Width": 128, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "노무비", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "lbFld07", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100070, + "Left": 843, + "Top": 0, + "Width": 128, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "경 비", + "LocateAtText": "hllNone" + }, + "children": [] + }, + { + "class": "THRLabel", + "name": "lbFld08", + "flags": [], + "child_pos": null, + "properties": { + "Tag": 100080, + "Left": 589, + "Top": 0, + "Width": 381, + "Height": 36, + "Alignment": "taCenter", + "FontWidth": 6, + "Transparent": true, + "BorderStyle.Slash": [], + "BorderStyle.Lines": [ + "lnLeft", + "lnTop", + "lnBottom" + ], + "BorderStyle.DesignPen.Color": "clSilver", + "BorderStyle.Pen.Width": 0, + "BorderStyle.Transparent": true, + "BorderMargine.Top": 11, + "AlignWithText.Left": true, + "AlignWithText.Top": true, + "AlignWithText.Width": true, + "AlignWithText.Height": true, + "Caption": "산 출 내 역", + "LocateAtText": "hllNone" + }, + "children": [] + } + ] + } + ] + }, + { + "class": "THyperReport", + "name": "Hrp", + "flags": [], + "child_pos": null, + "properties": { + "PreviewOptions.Caption": "총괄설계내역서", + "PreviewOptions.ShowModal": true, + "PreviewOptions.WindowState": "wsMaximized", + "PreviewOptions.ZoomMin": 50, + "PreviewOptions.ZoomMax": 150, + "PreviewOptions.ZoomStep": 10, + "PreviewOptions.MargineColor": "clWhite", + "PreviewOptions.VisibleButtons": [ + "btFirst", + "btPrev", + "btNext", + "btLast", + "btStart", + "btStop", + "btZoomIn", + "btZoomOut", + "btSave", + "btPrint" + ], + "PrintFirstHeader": true, + "SuppressHeaderGroup": true, + "EnableSaveReport": true, + "SaveAllProperties": true, + "SpoolTitle": "총괄내역서", + "OnSaveDialog": "HrpSaveDialog", + "OnShowPrintDialog": "HrpShowPrintDialog", + "Left": 24, + "Top": 16 + }, + "children": [] + }, + { + "class": "THRLink", + "name": "HRLink1", + "flags": [], + "child_pos": null, + "properties": { + "LinkInfo.SourceTrees.Strings": [ + " 0 0PM_Jab.ds_Jab" + ], + "LinkInfo.MasterFields.Strings": [ + "Master;" + ], + "LinkInfo.DetailFields.Strings": [ + "Detail;" + ], + "LinkInfo.SelfKyFields.Strings": [ + "SelfKy;" + ], + "LinkInfo.GroupOrders.Strings": [ + "Groups;HRGroup1;0::1:1:1:0:" + ], + "Left": 72, + "Top": 16 + }, + "children": [] + }, + { + "class": "TApolloTable", + "name": "tb_Jab", + "flags": [], + "child_pos": null, + "properties": { + "DatabaseName": "ST_Work", + "CachedUpdates": false, + "FieldDefs": [], + "IndexDefs": [], + "Sequenced": false, + "TableName": "PRT.DBF", + "TableType": "ttSXNSX", + "Left": 128, + "Top": 16 + }, + "children": [] + }, + { + "class": "TDataSource", + "name": "ds_Jab", + "flags": [], + "child_pos": null, + "properties": { + "DataSet": "tb_Jab", + "Left": 176, + "Top": 16 + }, + "children": [] + } + ] +} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Boq_0x4fc498_not_in_procedure.ghidra.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Boq_0x4fc498_not_in_procedure.ghidra.json new file mode 100644 index 000000000..1fbd547a3 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Boq_0x4fc498_not_in_procedure.ghidra.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_af8ebd77b1f388fd2c8a0d45bc3dbb63cc364da982737cf7c4a9c525e44a48cc\",\"subject\":{\"name\":\"ST_Boq.CPM\",\"digest\":{\"sha256\":\"180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"format\":\"pe\",\"architecture\":\"x86\"},\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"analysis_profile\":{\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"parameters\":{\"target_kind\":\"executable\",\"target_format\":\"pe\",\"executable_role\":\"shared-library\",\"managed\":false,\"native_aot_metadata\":{\"contract_revision\":\"rtr-9.1-x64-pe-read-only-v5\",\"source_bytes\":134217728,\"work_units\":67108864,\"working_memory_bytes\":67108864,\"report_bytes\":4194304},\"architecture\":\"x86\",\"available_architectures\":[\"x86\"],\"import_mode\":\"ephemeral-source-immutable\",\"pdb_observations\":\"program-info-v5\",\"annotation_policy\":\"atomic-function-entry-metadata-v1\",\"load_image_observations\":\"source-mappings-entry-context-v2\",\"function_body_evidence\":\"complete-inclusive-ranges-v1\",\"function_references\":\"complete-body-and-entry-reference-manager-v2\",\"call_relationship_coverage\":\"function-body-call-coverage-v5\",\"function_dossier_coverage\":\"observed-facets-and-call-relationships-v1\",\"string_inventory_evidence\":\"defined-data-coverage-v1\",\"location_resolution\":\"explicit-address-exact-entry-symbol-first-v3\",\"procedure_file_offset_resolution\":\"address-first-unique-target-source-mapping-v2\",\"instruction_flow_evidence\":\"decoded-return-pcode-v1\",\"instruction_references\":\"exact-address-incoming-without-synthetic-entry-v2\",\"function_boundary_observations\":\"ghidra-function-boundary-limitations-v4\",\"no_return_repair\":\"disabled-windows-p0\",\"process_launch\":\"official-headless-script-v1\",\"jump_table_evidence\":\"typed-case-default-blocks-v1\",\"decompiler_jump_loads\":true,\"loader\":\"auto-from-header\",\"language_id\":\"auto-from-header\",\"compiler_spec_id\":\"auto-default\",\"analyzer_preset\":\"ghidra-default\"},\"digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\"},\"predicate_type\":\"rea.analysis\",\"operation\":\"resolve_containing_procedure\",\"parameters\":{\"address\":\"0x4fc498\"},\"raw_result\":{\"query_address\":\"0x4fc498\",\"found\":false,\"procedure\":null,\"reason\":\"not_in_procedure\"},\"normalized_result\":{\"query_address\":\"0x4fc498\",\"found\":false,\"procedure\":null,\"reason\":\"not_in_procedure\"},\"confidence\":\"observed\",\"authority\":\"shipped-artifact\",\"environment\":null,\"limitations\":[\"The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.\",\"The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.\",\"Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.\",\"Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.\",\"An exact external entry resolves to its observed function identity even when its body is empty. This does not establish mapped executable bytes or containment of nearby external addresses.\",\"Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.\",\"The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.\",\"Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically.\"],\"relationship_coverage\":null,\"locations\":[],\"evidence_links\":[]}"}], "structuredContent": {"evidence_id": "ev_af8ebd77b1f388fd2c8a0d45bc3dbb63cc364da982737cf7c4a9c525e44a48cc", "subject": {"name": "ST_Boq.CPM", "digest": {"sha256": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3"}, "local_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "format": "pe", "architecture": "x86"}, "provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "analysis_profile": {"provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "parameters": {"target_kind": "executable", "target_format": "pe", "executable_role": "shared-library", "managed": false, "native_aot_metadata": {"contract_revision": "rtr-9.1-x64-pe-read-only-v5", "source_bytes": 134217728, "work_units": 67108864, "working_memory_bytes": 67108864, "report_bytes": 4194304}, "architecture": "x86", "available_architectures": ["x86"], "import_mode": "ephemeral-source-immutable", "pdb_observations": "program-info-v5", "annotation_policy": "atomic-function-entry-metadata-v1", "load_image_observations": "source-mappings-entry-context-v2", "function_body_evidence": "complete-inclusive-ranges-v1", "function_references": "complete-body-and-entry-reference-manager-v2", "call_relationship_coverage": "function-body-call-coverage-v5", "function_dossier_coverage": "observed-facets-and-call-relationships-v1", "string_inventory_evidence": "defined-data-coverage-v1", "location_resolution": "explicit-address-exact-entry-symbol-first-v3", "procedure_file_offset_resolution": "address-first-unique-target-source-mapping-v2", "instruction_flow_evidence": "decoded-return-pcode-v1", "instruction_references": "exact-address-incoming-without-synthetic-entry-v2", "function_boundary_observations": "ghidra-function-boundary-limitations-v4", "no_return_repair": "disabled-windows-p0", "process_launch": "official-headless-script-v1", "jump_table_evidence": "typed-case-default-blocks-v1", "decompiler_jump_loads": true, "loader": "auto-from-header", "language_id": "auto-from-header", "compiler_spec_id": "auto-default", "analyzer_preset": "ghidra-default"}, "digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b"}, "predicate_type": "rea.analysis", "operation": "resolve_containing_procedure", "parameters": {"address": "0x4fc498"}, "raw_result": {"query_address": "0x4fc498", "found": false, "procedure": null, "reason": "not_in_procedure"}, "normalized_result": {"query_address": "0x4fc498", "found": false, "procedure": null, "reason": "not_in_procedure"}, "confidence": "observed", "authority": "shipped-artifact", "environment": null, "limitations": ["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", "An exact external entry resolves to its observed function identity even when its body is empty. This does not establish mapped executable bytes or containment of nearby external addresses.", "Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.", "The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.", "Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically."], "relationship_coverage": null, "locations": [], "evidence_links": []}}, "jsonrpc": "2.0", "id": 10} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4cdec0_not_function.ghidra.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4cdec0_not_function.ghidra.json new file mode 100644 index 000000000..18cabbfc2 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4cdec0_not_function.ghidra.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"error\":{\"code\":\"invalid_request\",\"category\":\"invalid_input\",\"message\":\"Analysis input is invalid. Check the arguments and try again.\",\"retryable\":true,\"remediation\":{\"action\":\"Correct the listed arguments and retry.\"},\"details\":{\"operation\":\"procedure_pseudo_code\",\"issues\":[{\"path\":[],\"reason\":\"invalid_value\",\"message\":\"File offset 0x4cdec0 has no loaded source mapping for the admitted target file; Ghidra image base: 0x400000. Inspect mappings with rea inspect-native-load-image --provider ghidra --json or MCP inspect_native_load_image.\"}],\"diagnostics\":{\"target_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_KanJub.CPM\",\"target_sha256\":\"ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03\",\"target_admission\":{\"source\":{\"requestedPath\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_KanJub.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_KanJub.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"806e1100000015000000000000000000\",\"size\":1718272,\"directory\":false},\"snapshot\":{\"requestedPath\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\target-ef8d55b259b3.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\target-ef8d55b259b3.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"74200300000023000000000000000000\",\"size\":1718272,\"directory\":false}},\"transport\":\"authenticated-loopback-tcp\",\"provider_version\":\"12.1.4\",\"profile_digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\",\"run_id\":\"3f50ed5a-d81e-450c-9bf1-dda6a6da08da\",\"runtime_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\",\"endpoint_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\bridge-endpoint.json\",\"project_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\project\",\"ghidra_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\ghidra.log\",\"script_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\script.log\",\"process_id\":44264,\"launch_support\":[{\"mode\":\"-envvars\",\"stderr\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\tmp\\\" \\\"-XX:-UsePerfData\\\"\\r\\nPicked up JAVA_TOOL_OPTIONS: \\nPicked up _JAVA_OPTIONS: \\n\",\"stderr_bytes\":308,\"stderr_truncated\":false},{\"mode\":\"-vmargs\",\"stderr\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\tmp\\\" \\\"-XX:-UsePerfData\\\"\\r\\nPicked up JAVA_TOOL_OPTIONS: \\nPicked up _JAVA_OPTIONS: \\n\",\"stderr_bytes\":308,\"stderr_truncated\":false}],\"exit_code\":null,\"exit_signal\":null,\"diagnostic_truncated\":false,\"output_incomplete\":false,\"stdout\":{\"text\":\"INFO Using log config file: jar:file:/C:/Users/umsan/AppData/Local/STMATE-REA-tools/ghidra_12.1.4_PUBLIC/Ghidra/Framework/Generic/lib/Generic.jar!/generic.log4j.xml (LoggingInitialization) \\r\\nINFO Using log file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\ghidra.log (LoggingInitialization) \\r\\nINFO Loading user preferences: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\preferences (Preferences) \\r\\nINFO Searching for classes... (ClassSearcher) \\r\\nINFO Class search complete (1206 ms) (ClassSearcher) \\r\\nINFO Initializing SSL Context (DefaultSSLContextInitializer) \\r\\nINFO Initializing Random Number Generator... (SecureRandomFactory) \\r\\nINFO Random Number Generator initialization complete: SHA1PRNG (SecureRandomFactory) \\r\\nINFO Trust manager disabled, cacerts have not been set (DefaultTrustManagerFactory) \\r\\nINFO Starting cache cleanup: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\cache\\\\umsan-ghidra\\\\fscache2 (FileCacheMaintenanceDaemon) \\r\\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \\r\\nINFO Headless startup complete (3873 ms) (AnalyzeHeadless) \\r\\nINFO Class searcher loaded 59 extension points (20 false positives) (ClassSearcher) \\r\\nINFO HEADLESS Script Paths:\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\VersionTracking\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\npm-cache\\\\_npx\\\\a1722018f28f9df2\\\\node_modules\\\\rea-agents\\\\bridge\\\\ghidra\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\GnuDemangler\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\BSim\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\MicrosoftCodeAnalyzer\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\DecompilerDependent\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\FileFormats\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Debug\\\\Debugger-rmi-trace\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\FunctionID\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\SystemEmulation\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Processors\\\\PIC\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Processors\\\\8051\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\Base\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Processors\\\\Atmel\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\Decompiler\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Processors\\\\DATA\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Debug\\\\Debugger\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\WildcardAssembler\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\SwiftDemangler\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\PDB\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Processors\\\\JVM\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\BytePatterns\\\\ghidra_scripts\\n C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\PyGhidra\\\\ghidra_scripts (HeadlessAnalyzer) \\r\\nINFO HEADLESS: execution starts (HeadlessAnalyzer) \\r\\nINFO Creating temporary project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO Creating project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\project\\\\rea-project (DefaultProject) \\r\\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \\r\\nINFO project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e/target-ef8d55b259b3.CPM (HeadlessAnalyzer) \\r\\nINFO Using Loader: Portable Executable (PE) (ProgramLoader) \\r\\nINFO Using Language/Compiler: x86:LE:32:default:borlanddelphi (ProgramLoader) \\r\\nINFO Using Library Search Path: [., C:\\\\WINDOWS\\\\SysWOW64, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\jdk-21.0.13+9\\\\bin, C:\\\\WINDOWS\\\\Sun\\\\Java\\\\bin, C:\\\\WINDOWS\\\\system32, C:\\\\WINDOWS, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\npm-cache\\\\_npx\\\\a1722018f28f9df2\\\\node_modules\\\\.bin, D:\\\\aislo-wt\\\\안티그래비티\\\\tmp\\\\rea_mcp\\\\node_modules\\\\.bin, D:\\\\aislo-wt\\\\안티그래비티\\\\tmp\\\\node_modules\\\\.bin, D:\\\\aislo-wt\\\\안티그래비티\\\\node_modules\\\\.bin, D:\\\\aislo-wt\\\\node_modules\\\\.bin, D:\\\\node_modules\\\\.bin, C:\\\\Program Files\\\\nodejs\\\\node_modules\\\\npm\\\\node_modules\\\\@npmcli\\\\run-script\\\\lib\\\\node-gyp-bin, C:\\\\Users\\\\umsan\\\\bin, C:\\\\Program Files\\\\Git\\\\mingw64\\\\bin, C:\\\\Program Files\\\\Git\\\\usr\\\\local\\\\bin, C:\\\\Program Files\\\\Git\\\\usr\\\\bin, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\orca\\\\resources\\\\bin, C:\\\\Users\\\\umsan\\\\.volta\\\\bin, C:\\\\Users\\\\umsan\\\\.asdf\\\\shims, C:\\\\Users\\\\umsan\\\\.local\\\\share\\\\mise\\\\shims, C:\\\\Users\\\\umsan\\\\.local\\\\bin, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\pnpm, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Yarn\\\\bin, C:\\\\Users\\\\umsan\\\\.bun\\\\bin, C:\\\\Program Files (x86)\\\\ESTsoft\\\\ALSee\\\\x64, C:\\\\Users\\\\umsan\\\\AppData\\\\Roaming\\\\fnm\\\\aliases\\\\default, C:\\\\Users\\\\umsan\\\\.fnm\\\\aliases\\\\default, D:\\\\99_Program\\\\Antigravity IDE\\\\bin, C:\\\\Python313\\\\Scripts, C:\\\\Python313, C:\\\\WINDOWS\\\\System32\\\\Wbem, C:\\\\WINDOWS\\\\System32\\\\WindowsPowerShell\\\\v1.0, C:\\\\WINDOWS\\\\System32\\\\OpenSSH, C:\\\\Java_1.8\\\\bin, C:\\\\Program Files\\\\PTC\\\\Creo 4.0\\\\M030\\\\Parametric\\\\bin, C:\\\\Program Files (x86)\\\\Windows Kits\\\\8.1\\\\Windows Performance Toolkit, C:\\\\Program Files\\\\Bandizip, C:\\\\Program Files\\\\dotnet, C:\\\\Program Files\\\\PuTTY, C:\\\\Program Files\\\\NVIDIA Corporation\\\\NVIDIA app\\\\NvDLISR, C:\\\\Program Files (x86)\\\\NVIDIA Corporation\\\\PhysX\\\\Common, C:\\\\Program Files\\\\nodejs, C:\\\\ProgramData\\\\chocolatey\\\\bin, C:\\\\Program Files\\\\Android\\\\Android Studio\\\\jbr\\\\bin, C:\\\\Program Files\\\\Git\\\\cmd, C:\\\\Program Files\\\\GitHub CLI, C:\\\\Program Files\\\\Tailscale, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\Scripts, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\agy\\\\bin, C:\\\\Users\\\\umsan\\\\.espressif\\\\eim_gui, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python313\\\\Scripts, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python313, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Microsoft\\\\WindowsApps, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\bin, C:\\\\Users\\\\umsan\\\\AppData\\\\Roaming\\\\npm, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\Microsoft VS Code\\\\bin\\\\copilot-shim, C:\\\\Program Files\\\\Git\\\\usr\\\\bin\\\\vendor_perl, C:\\\\Program Files\\\\Git\\\\usr\\\\bin\\\\core_perl, C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Programs\\\\orca\\\\resources\\\\native-chat-visuals\\\\bin, C:\\\\Users\\\\umsan\\\\.claude\\\\plugins\\\\cache\\\\caveman\\\\caveman\\\\0d95a81d35a9\\\\bin, C:\\\\Users\\\\umsan\\\\.claude\\\\plugins\\\\cache\\\\claude-plugins-official\\\\superpowers\\\\6.3.0\\\\bin] (ProgramLoader) \\r\\nINFO TLS callbacks at 100022a4 (TLSDirectory) \\r\\nWARN Invalid or missing function at 10075a80 (ExportDataDirectory) \\r\\nINFO TLS callbacks at 10029728 (TLSDirectory) \\r\\nWARN Invalid or missing function at 105f9f4c (ExportDataDirectory) \\r\\nWARN Invalid or missing function at 100e31dc (ExportDataDirectory) \\r\\nINFO TLS callbacks at 10002504 (TLSDirectory) \\r\\nWARN Invalid or missing function at 10066194 (ExportDataDirectory) \\r\\nINFO Additional info:\\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e/target-ef8d55b259b3.CPM?MD5=7b2aa53b24952562f39a1e007b16ce98...\\n------------------------------------------------\\n\\nSearching 38 paths for library APOLLO5D6.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library BORLNDMM.DLL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library DBRTL60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library DCLHRP60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library DP_COMMON.CPM...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library GDI32.DLL...\\nLoading file:///C:/Windows/SysWOW64/gdi32.dll?MD5=37002dbb23f87dae9ebd7dd7b5051995...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\gdi32.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library HHCTRL.OCX...\\nLoading file:///C:/Windows/SysWOW64/hhctrl.ocx?MD5=3ef07f5ec1a4f969b1cd7cb63160dbb0...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\hhctrl.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library KERNEL32.DLL...\\nLoading file:///C:/Windows/SysWOW64/kernel32.dll?MD5=505c80011e47bc0dd833c598919d64c6...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\kernel32.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library REALGRID6.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library REALGRIDDB6.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library REALGRIDEX6.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library RTL60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library SHELL32.DLL...\\nLoading file:///C:/Windows/SysWOW64/shell32.dll?MD5=d8b1a97aefe8518dc5688c76b39c6d77...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\shell32.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library ST_COM_V.CPM...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library ST_FUNC_C.CPM...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library USER32.DLL...\\nLoading file:///C:/Windows/SysWOW64/user32.dll?MD5=7597f31e467fc6b4be8e2390e761cf9c...\\n[user32.dll]: failed to create WEVTResource at 10101a70: Failed to resolve data length for WEVTResource\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\user32.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library VCL60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library VCLDB60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library VCLJPG60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library VCLSMP60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library VCLX60.BPL...\\nLibrary not found.\\n------------------------------------------------\\n\\nSearching 38 paths for library WINMM.DLL...\\nLoading file:///C:/Windows/SysWOW64/winmm.dll?MD5=de35ab1e1f7c3099fe9116e109003f17...\\n[winmm.dll]: failed to create WEVTResource at 1002b310: Failed to resolve data length for WEVTResource\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winmm.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library WINSPOOL.DRV...\\nLoading file:///C:/Windows/SysWOW64/winspool.drv?MD5=aea4411ab865c10b53ae28094b3f3b79...\\n[winspool.drv]: failed to create WEVTResource at 1006e4b8: Failed to resolve data length for WEVTResource\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winspool.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nApplying cached symbols from KERNEL32.DLL\\nApplying cached symbols from USER32.DLL\\nApplying cached symbols from GDI32.DLL\\nApplying cached symbols from SHELL32.DLL\\nApplying cached symbols from WINSPOOL.DRV\\nApplying cached symbols from WINMM.DLL\\nApplying cached symbols from HHCTRL.OCX\\nLinking the External Programs of 'target-ef8d55b259b3.CPM' to imported libraries...\\n [RTL60.BPL] -> not found in project\\n [KERNEL32.DLL] -> not found in project\\n [BORLNDMM.DLL] -> not found in project\\n [USER32.DLL] -> not found in project\\n [GDI32.DLL] -> not found in project\\n [VCL60.BPL] -> not found in project\\n [SHELL32.DLL] -> not found in project\\n [WINSPOOL.DRV] -> not found in project\\n [DBRTL60.BPL] -> not found in project\\n [VCLX60.BPL] -> not found in project\\n [APOLLO5D6.BPL] -> not found in project\\n [REALGRID6.BPL] -> not found in project\\n [REALGRIDEX6.BPL] -> not found in project\\n [WINMM.DLL] -> not found in project\\n [VCLDB60.BPL] -> not found in project\\n [VCLSMP60.BPL] -> not found in project\\n [VCLJPG60.BPL] -> not found in project\\n [DCLHRP60.BPL] -> not found in project\\n [REALGRIDDB6.BPL] -> not found in project\\n [HHCTRL.OCX] -> not found in project\\n [ST_COM_V.CPM] -> not found in project\\n [ST_FUNC_C.CPM] -> not found in project\\n [DP_COMMON.CPM] -> not found in project\\n------------------------------------------------\\n\\n (ProgramLoader) \\r\\nINFO IMPORTING: Loaded 0 additional files (HeadlessAnalyzer) \\r\\nINFO ANALYZING all memory and code: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e/target-ef8d55b259b3.CPM (HeadlessAnalyzer) \\r\\nWARN Ignoring leading '_' chars on no-return name '___raise_securityfailure' specified in file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\Base\\\\data\\\\PEFunctionsThatDoNotReturn (NoReturnFunctionAnalyzer) \\r\\nWARN Ignoring leading '_' chars on no-return name '___report_rangecheckfailure' specified in file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\STMATE-REA-tools\\\\ghidra_12.1.4_PUBLIC\\\\Ghidra\\\\Features\\\\Base\\\\data\\\\PEFunctionsThatDoNotReturn (NoReturnFunctionAnalyzer) \\r\\nINFO Skipping PDB processing: missing PDB information in program metadata (PdbUniversalAnalyzer) \\r\\nERROR Invalid PNG data at 004d1be0 (PngDataType) \\r\\nINFO Packed database cache: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\cache\\\\umsan-ghidra\\\\packed-db-cache (PackedDatabaseCache) \\r\\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \\r\\nINFO -----------------------------------------------------\\n ASCII Strings 0.627 secs\\n Apply Data Archives 1.155 secs\\n Call Convention ID 0.001 secs\\n Call-Fixup Installer 0.031 secs\\n Create Address Tables 0.697 secs\\n Create Address Tables - One Time 0.796 secs\\n Create Function 0.511 secs\\n Data Reference 1.355 secs\\n Decompiler Switch Analysis 133.451 secs\\n Demangler GNU 0.271 secs\\n Demangler Microsoft 0.082 secs\\n Disassemble 0.693 secs\\n Disassemble Entry Points 2.162 secs\\n Embedded Media 0.049 secs\\n External Entry References 0.001 secs\\n Function ID 1.238 secs\\n Function Start Search 0.035 secs\\n Function Start Search After Code 0.078 secs\\n Non-Returning Functions - Discovered 0.653 secs\\n Non-Returning Functions - Known 0.019 secs\\n PDB Universal 0.003 secs\\n Reference 1.678 secs\\n Scalar Operand References 1.484 secs\\n Shared Return Calls 0.232 secs\\n Stack 5.862 secs\\n Subroutine References 1.807 secs\\n Subroutine References - One Time 0.001 secs\\n WindowsResourceReference 5.720 secs\\n X86 Function Callee Purge 0.208 secs\\n x86 Constant Reference Analyzer 6.791 secs\\n-----------------------------------------------------\\n Total Time 167 secs\\n-----------------------------------------------------\\n (AutoAnalysisManager) \\r\\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e/target-ef8d55b259b3.CPM (HeadlessAnalyzer) \\r\\nINFO REPORT: Execute script: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\npm-cache\\\\_npx\\\\a1722018f28f9df2\\\\node_modules\\\\rea-agents\\\\bridge\\\\ghidra\\\\ReaGhidraBridge.java 'C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\session.json' (HeadlessAnalyzer) \\r\\nINFO SCRIPT: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\npm-cache\\\\_npx\\\\a1722018f28f9df2\\\\node_modules\\\\rea-agents\\\\bridge\\\\ghidra\\\\ReaGhidraBridge.java (HeadlessAnalyzer) \\r\\n\",\"bytes\":18057,\"retained_bytes\":18057},\"stderr\":{\"text\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\tmp\\\" \\\"-XX:-UsePerfData\\\"\\r\\nPicked up JAVA_TOOL_OPTIONS: \\nPicked up _JAVA_OPTIONS: \\nNOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\tmp\\\" \\\"-XX:-UsePerfData\\\"\\r\\nPicked up JAVA_TOOL_OPTIONS: \\nPicked up _JAVA_OPTIONS: \\nNOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\tmp\\\" \\\"-XX:-UsePerfData\\\"\\r\\nPicked up JAVA_TOOL_OPTIONS: \\nPicked up _JAVA_OPTIONS: \\nNOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-fc5547989cf6d1771ec43d30dd2f8c8e\\\\tmp\\\" \\\"-XX:-UsePerfData\\\"\\r\\nPicked up JAVA_TOOL_OPTIONS: \\nPicked up _JAVA_OPTIONS: \\n\",\"bytes\":1232,\"retained_bytes\":1232},\"failure_output\":{\"stdout\":{\"text\":\"\",\"bytes\":0,\"retained_bytes\":0},\"stderr\":{\"text\":\"\",\"bytes\":0,\"retained_bytes\":0},\"complete\":true},\"failure_cause\":{\"name\":\"GhidraRemoteError\",\"message\":\"File offset 0x4cdec0 has no loaded source mapping for the admitted target file; Ghidra image base: 0x400000. Inspect mappings with rea inspect-native-load-image --provider ghidra --json or MCP inspect_native_load_image.\",\"code\":\"not_found\"},\"failure_kind\":\"remote\",\"failure_message\":\"File offset 0x4cdec0 has no loaded source mapping for the admitted target file; Ghidra image base: 0x400000. Inspect mappings with rea inspect-native-load-image --provider ghidra --json or MCP inspect_native_load_image.\",\"remote_code\":\"not_found\",\"remote_message\":\"File offset 0x4cdec0 has no loaded source mapping for the admitted target file; Ghidra image base: 0x400000. Inspect mappings with rea inspect-native-load-image --provider ghidra --json or MCP inspect_native_load_image.\"}}}}"}], "isError": true}, "jsonrpc": "2.0", "id": 3} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce2c8_row_recalc.ghidra.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce2c8_row_recalc.ghidra.json new file mode 100644 index 000000000..cb5ad41c0 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce2c8_row_recalc.ghidra.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_9688b626d542c1465ad71b19dd071eb6b2f5623e8bf4b2100033cf680b170520\",\"subject\":{\"name\":\"ST_KanJub.CPM\",\"digest\":{\"sha256\":\"ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_KanJub.CPM\",\"format\":\"pe\",\"architecture\":\"x86\"},\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"analysis_profile\":{\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"parameters\":{\"target_kind\":\"executable\",\"target_format\":\"pe\",\"executable_role\":\"shared-library\",\"managed\":false,\"native_aot_metadata\":{\"contract_revision\":\"rtr-9.1-x64-pe-read-only-v5\",\"source_bytes\":134217728,\"work_units\":67108864,\"working_memory_bytes\":67108864,\"report_bytes\":4194304},\"architecture\":\"x86\",\"available_architectures\":[\"x86\"],\"import_mode\":\"ephemeral-source-immutable\",\"pdb_observations\":\"program-info-v5\",\"annotation_policy\":\"atomic-function-entry-metadata-v1\",\"load_image_observations\":\"source-mappings-entry-context-v2\",\"function_body_evidence\":\"complete-inclusive-ranges-v1\",\"function_references\":\"complete-body-and-entry-reference-manager-v2\",\"call_relationship_coverage\":\"function-body-call-coverage-v5\",\"function_dossier_coverage\":\"observed-facets-and-call-relationships-v1\",\"string_inventory_evidence\":\"defined-data-coverage-v1\",\"location_resolution\":\"explicit-address-exact-entry-symbol-first-v3\",\"procedure_file_offset_resolution\":\"address-first-unique-target-source-mapping-v2\",\"instruction_flow_evidence\":\"decoded-return-pcode-v1\",\"instruction_references\":\"exact-address-incoming-without-synthetic-entry-v2\",\"function_boundary_observations\":\"ghidra-function-boundary-limitations-v4\",\"no_return_repair\":\"disabled-windows-p0\",\"process_launch\":\"official-headless-script-v1\",\"jump_table_evidence\":\"typed-case-default-blocks-v1\",\"decompiler_jump_loads\":true,\"loader\":\"auto-from-header\",\"language_id\":\"auto-from-header\",\"compiler_spec_id\":\"auto-default\",\"analyzer_preset\":\"ghidra-default\"},\"digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\"},\"predicate_type\":\"rea.analysis\",\"operation\":\"procedure_pseudo_code\",\"parameters\":{\"procedure\":\"0x4ce2c8\"},\"raw_result\":{\"value\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n\\r\\nvoid FUN_004ce2c8(int param_1,undefined4 param_2,undefined4 param_3,int param_4)\\r\\n\\r\\n{\\r\\n undefined4 uVar1;\\r\\n short sVar2;\\r\\n int iVar3;\\r\\n float10 in_ST0;\\r\\n float10 fVar4;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 in_ST3;\\r\\n undefined4 uVar5;\\r\\n undefined4 uVar6;\\r\\n undefined2 uVar7;\\r\\n undefined8 uVar8;\\r\\n \\r\\n uVar1 = *(undefined4 *)(*(int *)(param_4 + -0x14) + 0x300);\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,0xb,param_1);\\r\\n sVar2 = _Urmgrid_TwCells_GetWord_qqrv();\\r\\n if (sVar2 == 2) {\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii\\r\\n (uVar1,6,param_1,*(undefined4 *)(param_4 + -8),*(undefined4 *)(param_4 + -4));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii\\r\\n (uVar1,8,param_1,*(undefined4 *)(param_4 + -0x10),\\r\\n (short)*(undefined4 *)(param_4 + -0xc));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n }\\r\\n else {\\r\\n if (param_1 == DAT_005e92f8) {\\r\\n uVar8 = 0;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),\\\"LCOST2\\\");\\r\\n fVar4 = (in_ST0 * (float10)_DAT_005e887c) / (float10)100.0;\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST1,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST2;\\r\\n in_ST1 = in_ST3;\\r\\n }\\r\\n else if (param_1 == DAT_005e92e8) {\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii\\r\\n (uVar1,6,param_1,(double)(in_ST0 - (float10)*(double *)(param_4 + -0x20)));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n else if (param_1 == DAT_005e92f0) {\\r\\n iVar3 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(param_4 + -0x14) + 800));\\r\\n if (iVar3 == 1) {\\r\\n uVar8 = 0;\\r\\n fVar4 = _DAT_004ce550 * (float10)*(double *)(param_4 + -8);\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n else if (iVar3 == 2) {\\r\\n uVar8 = 0;\\r\\n fVar4 = _DAT_004ce550 * (float10)_DAT_005c7d94;\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n else if (iVar3 == 3) {\\r\\n uVar8 = 0;\\r\\n fVar4 = _DAT_004ce550 * ((float10)_DAT_005c7d94 + (float10)_DAT_005c7d9c);\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n }\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,4,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1,(double)(in_ST1 + (float10)(double)in_ST0));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n FUN_004caa38(param_4 + -8);\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n FUN_004caa38(param_4 + -0x10);\\r\\n }\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"limitations\":[]},\"normalized_result\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n\\r\\nvoid FUN_004ce2c8(int param_1,undefined4 param_2,undefined4 param_3,int param_4)\\r\\n\\r\\n{\\r\\n undefined4 uVar1;\\r\\n short sVar2;\\r\\n int iVar3;\\r\\n float10 in_ST0;\\r\\n float10 fVar4;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 in_ST3;\\r\\n undefined4 uVar5;\\r\\n undefined4 uVar6;\\r\\n undefined2 uVar7;\\r\\n undefined8 uVar8;\\r\\n \\r\\n uVar1 = *(undefined4 *)(*(int *)(param_4 + -0x14) + 0x300);\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,0xb,param_1);\\r\\n sVar2 = _Urmgrid_TwCells_GetWord_qqrv();\\r\\n if (sVar2 == 2) {\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii\\r\\n (uVar1,6,param_1,*(undefined4 *)(param_4 + -8),*(undefined4 *)(param_4 + -4));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii\\r\\n (uVar1,8,param_1,*(undefined4 *)(param_4 + -0x10),\\r\\n (short)*(undefined4 *)(param_4 + -0xc));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n }\\r\\n else {\\r\\n if (param_1 == DAT_005e92f8) {\\r\\n uVar8 = 0;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),\\\"LCOST2\\\");\\r\\n fVar4 = (in_ST0 * (float10)_DAT_005e887c) / (float10)100.0;\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST1,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST2;\\r\\n in_ST1 = in_ST3;\\r\\n }\\r\\n else if (param_1 == DAT_005e92e8) {\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii\\r\\n (uVar1,6,param_1,(double)(in_ST0 - (float10)*(double *)(param_4 + -0x20)));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n else if (param_1 == DAT_005e92f0) {\\r\\n iVar3 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(param_4 + -0x14) + 800));\\r\\n if (iVar3 == 1) {\\r\\n uVar8 = 0;\\r\\n fVar4 = _DAT_004ce550 * (float10)*(double *)(param_4 + -8);\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n else if (iVar3 == 2) {\\r\\n uVar8 = 0;\\r\\n fVar4 = _DAT_004ce550 * (float10)_DAT_005c7d94;\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n else if (iVar3 == 3) {\\r\\n uVar8 = 0;\\r\\n fVar4 = _DAT_004ce550 * ((float10)_DAT_005c7d94 + (float10)_DAT_005c7d9c);\\r\\n uVar5 = SUB104(fVar4,0);\\r\\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\\r\\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\\r\\n MROUNDUD();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n }\\r\\n }\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,4,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1,(double)(in_ST1 + (float10)(double)in_ST0));\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n FUN_004caa38(param_4 + -8);\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n FUN_004caa38(param_4 + -0x10);\\r\\n }\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"confidence\":\"observed\",\"authority\":\"shipped-artifact\",\"environment\":null,\"limitations\":[\"The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.\",\"The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.\",\"Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.\",\"Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.\",\"Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.\",\"External functions and functions without an analyzable body return null; other decompiler failures remain explicit.\",\"Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.\",\"The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.\",\"Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically.\"],\"relationship_coverage\":null,\"locations\":[],\"evidence_links\":[]}"}], "structuredContent": {"evidence_id": "ev_9688b626d542c1465ad71b19dd071eb6b2f5623e8bf4b2100033cf680b170520", "subject": {"name": "ST_KanJub.CPM", "digest": {"sha256": "ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03"}, "local_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_KanJub.CPM", "format": "pe", "architecture": "x86"}, "provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "analysis_profile": {"provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "parameters": {"target_kind": "executable", "target_format": "pe", "executable_role": "shared-library", "managed": false, "native_aot_metadata": {"contract_revision": "rtr-9.1-x64-pe-read-only-v5", "source_bytes": 134217728, "work_units": 67108864, "working_memory_bytes": 67108864, "report_bytes": 4194304}, "architecture": "x86", "available_architectures": ["x86"], "import_mode": "ephemeral-source-immutable", "pdb_observations": "program-info-v5", "annotation_policy": "atomic-function-entry-metadata-v1", "load_image_observations": "source-mappings-entry-context-v2", "function_body_evidence": "complete-inclusive-ranges-v1", "function_references": "complete-body-and-entry-reference-manager-v2", "call_relationship_coverage": "function-body-call-coverage-v5", "function_dossier_coverage": "observed-facets-and-call-relationships-v1", "string_inventory_evidence": "defined-data-coverage-v1", "location_resolution": "explicit-address-exact-entry-symbol-first-v3", "procedure_file_offset_resolution": "address-first-unique-target-source-mapping-v2", "instruction_flow_evidence": "decoded-return-pcode-v1", "instruction_references": "exact-address-incoming-without-synthetic-entry-v2", "function_boundary_observations": "ghidra-function-boundary-limitations-v4", "no_return_repair": "disabled-windows-p0", "process_launch": "official-headless-script-v1", "jump_table_evidence": "typed-case-default-blocks-v1", "decompiler_jump_loads": true, "loader": "auto-from-header", "language_id": "auto-from-header", "compiler_spec_id": "auto-default", "analyzer_preset": "ghidra-default"}, "digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b"}, "predicate_type": "rea.analysis", "operation": "procedure_pseudo_code", "parameters": {"procedure": "0x4ce2c8"}, "raw_result": {"value": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n\r\nvoid FUN_004ce2c8(int param_1,undefined4 param_2,undefined4 param_3,int param_4)\r\n\r\n{\r\n undefined4 uVar1;\r\n short sVar2;\r\n int iVar3;\r\n float10 in_ST0;\r\n float10 fVar4;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 in_ST3;\r\n undefined4 uVar5;\r\n undefined4 uVar6;\r\n undefined2 uVar7;\r\n undefined8 uVar8;\r\n \r\n uVar1 = *(undefined4 *)(*(int *)(param_4 + -0x14) + 0x300);\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,0xb,param_1);\r\n sVar2 = _Urmgrid_TwCells_GetWord_qqrv();\r\n if (sVar2 == 2) {\r\n _Urmgrid_TRealGrid_GetCells_qqrii\r\n (uVar1,6,param_1,*(undefined4 *)(param_4 + -8),*(undefined4 *)(param_4 + -4));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii\r\n (uVar1,8,param_1,*(undefined4 *)(param_4 + -0x10),\r\n (short)*(undefined4 *)(param_4 + -0xc));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n }\r\n else {\r\n if (param_1 == DAT_005e92f8) {\r\n uVar8 = 0;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),\"LCOST2\");\r\n fVar4 = (in_ST0 * (float10)_DAT_005e887c) / (float10)100.0;\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST1,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST2;\r\n in_ST1 = in_ST3;\r\n }\r\n else if (param_1 == DAT_005e92e8) {\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n _Urmgrid_TRealGrid_GetCells_qqrii\r\n (uVar1,6,param_1,(double)(in_ST0 - (float10)*(double *)(param_4 + -0x20)));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n else if (param_1 == DAT_005e92f0) {\r\n iVar3 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(param_4 + -0x14) + 800));\r\n if (iVar3 == 1) {\r\n uVar8 = 0;\r\n fVar4 = _DAT_004ce550 * (float10)*(double *)(param_4 + -8);\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n else if (iVar3 == 2) {\r\n uVar8 = 0;\r\n fVar4 = _DAT_004ce550 * (float10)_DAT_005c7d94;\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n else if (iVar3 == 3) {\r\n uVar8 = 0;\r\n fVar4 = _DAT_004ce550 * ((float10)_DAT_005c7d94 + (float10)_DAT_005c7d9c);\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n }\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,4,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1,(double)(in_ST1 + (float10)(double)in_ST0));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n FUN_004caa38(param_4 + -8);\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n FUN_004caa38(param_4 + -0x10);\r\n }\r\n return;\r\n}\r\n\r\n", "limitations": []}, "normalized_result": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n\r\nvoid FUN_004ce2c8(int param_1,undefined4 param_2,undefined4 param_3,int param_4)\r\n\r\n{\r\n undefined4 uVar1;\r\n short sVar2;\r\n int iVar3;\r\n float10 in_ST0;\r\n float10 fVar4;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 in_ST3;\r\n undefined4 uVar5;\r\n undefined4 uVar6;\r\n undefined2 uVar7;\r\n undefined8 uVar8;\r\n \r\n uVar1 = *(undefined4 *)(*(int *)(param_4 + -0x14) + 0x300);\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,0xb,param_1);\r\n sVar2 = _Urmgrid_TwCells_GetWord_qqrv();\r\n if (sVar2 == 2) {\r\n _Urmgrid_TRealGrid_GetCells_qqrii\r\n (uVar1,6,param_1,*(undefined4 *)(param_4 + -8),*(undefined4 *)(param_4 + -4));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii\r\n (uVar1,8,param_1,*(undefined4 *)(param_4 + -0x10),\r\n (short)*(undefined4 *)(param_4 + -0xc));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n }\r\n else {\r\n if (param_1 == DAT_005e92f8) {\r\n uVar8 = 0;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(*(int *)PTR_DAT_004d2694 + 0x20),\"LCOST2\");\r\n fVar4 = (in_ST0 * (float10)_DAT_005e887c) / (float10)100.0;\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST1,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST2;\r\n in_ST1 = in_ST3;\r\n }\r\n else if (param_1 == DAT_005e92e8) {\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n _Urmgrid_TRealGrid_GetCells_qqrii\r\n (uVar1,6,param_1,(double)(in_ST0 - (float10)*(double *)(param_4 + -0x20)));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n else if (param_1 == DAT_005e92f0) {\r\n iVar3 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(param_4 + -0x14) + 800));\r\n if (iVar3 == 1) {\r\n uVar8 = 0;\r\n fVar4 = _DAT_004ce550 * (float10)*(double *)(param_4 + -8);\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n else if (iVar3 == 2) {\r\n uVar8 = 0;\r\n fVar4 = _DAT_004ce550 * (float10)_DAT_005c7d94;\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n else if (iVar3 == 3) {\r\n uVar8 = 0;\r\n fVar4 = _DAT_004ce550 * ((float10)_DAT_005c7d94 + (float10)_DAT_005c7d9c);\r\n uVar5 = SUB104(fVar4,0);\r\n uVar6 = (undefined4)((unkuint10)fVar4 >> 0x20);\r\n uVar7 = (undefined2)((unkuint10)fVar4 >> 0x40);\r\n MROUNDUD();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1,(double)in_ST0,uVar5,uVar6,uVar7,uVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n }\r\n }\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,4,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1,(double)(in_ST1 + (float10)(double)in_ST0));\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,6,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n FUN_004caa38(param_4 + -8);\r\n _Urmgrid_TRealGrid_GetCells_qqrii(uVar1,8,param_1);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n FUN_004caa38(param_4 + -0x10);\r\n }\r\n return;\r\n}\r\n\r\n", "confidence": "observed", "authority": "shipped-artifact", "environment": null, "limitations": ["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", "Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.", "The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.", "Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically."], "relationship_coverage": null, "locations": [], "evidence_links": []}}, "jsonrpc": "2.0", "id": 4} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce55c_cut.ghidra.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce55c_cut.ghidra.json new file mode 100644 index 000000000..b0924defe --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce55c_cut.ghidra.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_5889f3ea3c778b330b71b8e906f004445f6f759a1f85213b466dcb20e98bfddf\",\"subject\":{\"name\":\"ST_KanJub.CPM\",\"digest\":{\"sha256\":\"ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_KanJub.CPM\",\"format\":\"pe\",\"architecture\":\"x86\"},\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"analysis_profile\":{\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"parameters\":{\"target_kind\":\"executable\",\"target_format\":\"pe\",\"executable_role\":\"shared-library\",\"managed\":false,\"native_aot_metadata\":{\"contract_revision\":\"rtr-9.1-x64-pe-read-only-v5\",\"source_bytes\":134217728,\"work_units\":67108864,\"working_memory_bytes\":67108864,\"report_bytes\":4194304},\"architecture\":\"x86\",\"available_architectures\":[\"x86\"],\"import_mode\":\"ephemeral-source-immutable\",\"pdb_observations\":\"program-info-v5\",\"annotation_policy\":\"atomic-function-entry-metadata-v1\",\"load_image_observations\":\"source-mappings-entry-context-v2\",\"function_body_evidence\":\"complete-inclusive-ranges-v1\",\"function_references\":\"complete-body-and-entry-reference-manager-v2\",\"call_relationship_coverage\":\"function-body-call-coverage-v5\",\"function_dossier_coverage\":\"observed-facets-and-call-relationships-v1\",\"string_inventory_evidence\":\"defined-data-coverage-v1\",\"location_resolution\":\"explicit-address-exact-entry-symbol-first-v3\",\"procedure_file_offset_resolution\":\"address-first-unique-target-source-mapping-v2\",\"instruction_flow_evidence\":\"decoded-return-pcode-v1\",\"instruction_references\":\"exact-address-incoming-without-synthetic-entry-v2\",\"function_boundary_observations\":\"ghidra-function-boundary-limitations-v4\",\"no_return_repair\":\"disabled-windows-p0\",\"process_launch\":\"official-headless-script-v1\",\"jump_table_evidence\":\"typed-case-default-blocks-v1\",\"decompiler_jump_loads\":true,\"loader\":\"auto-from-header\",\"language_id\":\"auto-from-header\",\"compiler_spec_id\":\"auto-default\",\"analyzer_preset\":\"ghidra-default\"},\"digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\"},\"predicate_type\":\"rea.analysis\",\"operation\":\"procedure_pseudo_code\",\"parameters\":{\"procedure\":\"0x4ce55c\"},\"raw_result\":{\"value\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n\\r\\nvoid FUN_004ce55c(void)\\r\\n\\r\\n{\\r\\n int *piVar1;\\r\\n int iVar2;\\r\\n int iVar3;\\r\\n float10 in_ST0;\\r\\n float10 fVar4;\\r\\n float10 fVar5;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 in_ST3;\\r\\n int in_stack_00000004;\\r\\n \\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\\r\\n if (iVar2 == 0) {\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\\r\\n fVar4 = in_ST0;\\r\\n if (iVar2 != 0) {\\r\\n _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\\r\\n fVar4 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n in_ST2 = in_ST3;\\r\\n MROUNDUD();\\r\\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e931c - in_ST0);\\r\\n }\\r\\n }\\r\\n else {\\r\\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\\r\\n MROUNDUD();\\r\\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e930c - in_ST0);\\r\\n fVar4 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n in_ST2 = in_ST3;\\r\\n }\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\\r\\n fVar5 = fVar4;\\r\\n if (iVar2 != 0) {\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 800));\\r\\n fVar5 = fVar4;\\r\\n if (iVar2 == 1) {\\r\\n fVar5 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n MROUNDUD();\\r\\n *(double *)(in_stack_00000004 + -0x20) = (double)fVar4;\\r\\n }\\r\\n }\\r\\n piVar1 = *(int **)(*(int *)(in_stack_00000004 + -0x14) + 0x300);\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,DAT_005e92e4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n *(double *)(in_stack_00000004 + -8) = (double)fVar5;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,DAT_005e92e4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n *(double *)(in_stack_00000004 + -0x10) = (double)in_ST1;\\r\\n iVar3 = DAT_005e92e4 + 1;\\r\\n iVar2 = (**(code **)(*piVar1 + 300))();\\r\\n if (iVar3 <= iVar2 + -1) {\\r\\n iVar2 = ((iVar2 + -1) - iVar3) + 1;\\r\\n do {\\r\\n FUN_004ce2c8(iVar3);\\r\\n iVar3 = iVar3 + 1;\\r\\n iVar2 = iVar2 + -1;\\r\\n } while (iVar2 != 0);\\r\\n }\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"limitations\":[]},\"normalized_result\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n\\r\\nvoid FUN_004ce55c(void)\\r\\n\\r\\n{\\r\\n int *piVar1;\\r\\n int iVar2;\\r\\n int iVar3;\\r\\n float10 in_ST0;\\r\\n float10 fVar4;\\r\\n float10 fVar5;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 in_ST3;\\r\\n int in_stack_00000004;\\r\\n \\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\\r\\n if (iVar2 == 0) {\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\\r\\n fVar4 = in_ST0;\\r\\n if (iVar2 != 0) {\\r\\n _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\\r\\n fVar4 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n in_ST2 = in_ST3;\\r\\n MROUNDUD();\\r\\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e931c - in_ST0);\\r\\n }\\r\\n }\\r\\n else {\\r\\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\\r\\n MROUNDUD();\\r\\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e930c - in_ST0);\\r\\n fVar4 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n in_ST2 = in_ST3;\\r\\n }\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\\r\\n fVar5 = fVar4;\\r\\n if (iVar2 != 0) {\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\\r\\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 800));\\r\\n fVar5 = fVar4;\\r\\n if (iVar2 == 1) {\\r\\n fVar5 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n MROUNDUD();\\r\\n *(double *)(in_stack_00000004 + -0x20) = (double)fVar4;\\r\\n }\\r\\n }\\r\\n piVar1 = *(int **)(*(int *)(in_stack_00000004 + -0x14) + 0x300);\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,DAT_005e92e4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n *(double *)(in_stack_00000004 + -8) = (double)fVar5;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,DAT_005e92e4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n *(double *)(in_stack_00000004 + -0x10) = (double)in_ST1;\\r\\n iVar3 = DAT_005e92e4 + 1;\\r\\n iVar2 = (**(code **)(*piVar1 + 300))();\\r\\n if (iVar3 <= iVar2 + -1) {\\r\\n iVar2 = ((iVar2 + -1) - iVar3) + 1;\\r\\n do {\\r\\n FUN_004ce2c8(iVar3);\\r\\n iVar3 = iVar3 + 1;\\r\\n iVar2 = iVar2 + -1;\\r\\n } while (iVar2 != 0);\\r\\n }\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"confidence\":\"observed\",\"authority\":\"shipped-artifact\",\"environment\":null,\"limitations\":[\"The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.\",\"The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.\",\"Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.\",\"Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.\",\"Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.\",\"External functions and functions without an analyzable body return null; other decompiler failures remain explicit.\",\"Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.\",\"The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.\",\"Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically.\"],\"relationship_coverage\":null,\"locations\":[],\"evidence_links\":[]}"}], "structuredContent": {"evidence_id": "ev_5889f3ea3c778b330b71b8e906f004445f6f759a1f85213b466dcb20e98bfddf", "subject": {"name": "ST_KanJub.CPM", "digest": {"sha256": "ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03"}, "local_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_KanJub.CPM", "format": "pe", "architecture": "x86"}, "provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "analysis_profile": {"provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "parameters": {"target_kind": "executable", "target_format": "pe", "executable_role": "shared-library", "managed": false, "native_aot_metadata": {"contract_revision": "rtr-9.1-x64-pe-read-only-v5", "source_bytes": 134217728, "work_units": 67108864, "working_memory_bytes": 67108864, "report_bytes": 4194304}, "architecture": "x86", "available_architectures": ["x86"], "import_mode": "ephemeral-source-immutable", "pdb_observations": "program-info-v5", "annotation_policy": "atomic-function-entry-metadata-v1", "load_image_observations": "source-mappings-entry-context-v2", "function_body_evidence": "complete-inclusive-ranges-v1", "function_references": "complete-body-and-entry-reference-manager-v2", "call_relationship_coverage": "function-body-call-coverage-v5", "function_dossier_coverage": "observed-facets-and-call-relationships-v1", "string_inventory_evidence": "defined-data-coverage-v1", "location_resolution": "explicit-address-exact-entry-symbol-first-v3", "procedure_file_offset_resolution": "address-first-unique-target-source-mapping-v2", "instruction_flow_evidence": "decoded-return-pcode-v1", "instruction_references": "exact-address-incoming-without-synthetic-entry-v2", "function_boundary_observations": "ghidra-function-boundary-limitations-v4", "no_return_repair": "disabled-windows-p0", "process_launch": "official-headless-script-v1", "jump_table_evidence": "typed-case-default-blocks-v1", "decompiler_jump_loads": true, "loader": "auto-from-header", "language_id": "auto-from-header", "compiler_spec_id": "auto-default", "analyzer_preset": "ghidra-default"}, "digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b"}, "predicate_type": "rea.analysis", "operation": "procedure_pseudo_code", "parameters": {"procedure": "0x4ce55c"}, "raw_result": {"value": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n\r\nvoid FUN_004ce55c(void)\r\n\r\n{\r\n int *piVar1;\r\n int iVar2;\r\n int iVar3;\r\n float10 in_ST0;\r\n float10 fVar4;\r\n float10 fVar5;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 in_ST3;\r\n int in_stack_00000004;\r\n \r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\r\n if (iVar2 == 0) {\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\r\n fVar4 = in_ST0;\r\n if (iVar2 != 0) {\r\n _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\r\n fVar4 = in_ST1;\r\n in_ST1 = in_ST2;\r\n in_ST2 = in_ST3;\r\n MROUNDUD();\r\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e931c - in_ST0);\r\n }\r\n }\r\n else {\r\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\r\n MROUNDUD();\r\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e930c - in_ST0);\r\n fVar4 = in_ST1;\r\n in_ST1 = in_ST2;\r\n in_ST2 = in_ST3;\r\n }\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\r\n fVar5 = fVar4;\r\n if (iVar2 != 0) {\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 800));\r\n fVar5 = fVar4;\r\n if (iVar2 == 1) {\r\n fVar5 = in_ST1;\r\n in_ST1 = in_ST2;\r\n MROUNDUD();\r\n *(double *)(in_stack_00000004 + -0x20) = (double)fVar4;\r\n }\r\n }\r\n piVar1 = *(int **)(*(int *)(in_stack_00000004 + -0x14) + 0x300);\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,DAT_005e92e4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n *(double *)(in_stack_00000004 + -8) = (double)fVar5;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,DAT_005e92e4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n *(double *)(in_stack_00000004 + -0x10) = (double)in_ST1;\r\n iVar3 = DAT_005e92e4 + 1;\r\n iVar2 = (**(code **)(*piVar1 + 300))();\r\n if (iVar3 <= iVar2 + -1) {\r\n iVar2 = ((iVar2 + -1) - iVar3) + 1;\r\n do {\r\n FUN_004ce2c8(iVar3);\r\n iVar3 = iVar3 + 1;\r\n iVar2 = iVar2 + -1;\r\n } while (iVar2 != 0);\r\n }\r\n return;\r\n}\r\n\r\n", "limitations": []}, "normalized_result": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n\r\nvoid FUN_004ce55c(void)\r\n\r\n{\r\n int *piVar1;\r\n int iVar2;\r\n int iVar3;\r\n float10 in_ST0;\r\n float10 fVar4;\r\n float10 fVar5;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 in_ST3;\r\n int in_stack_00000004;\r\n \r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\r\n if (iVar2 == 0) {\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\r\n fVar4 = in_ST0;\r\n if (iVar2 != 0) {\r\n _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\r\n fVar4 = in_ST1;\r\n in_ST1 = in_ST2;\r\n in_ST2 = in_ST3;\r\n MROUNDUD();\r\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e931c - in_ST0);\r\n }\r\n }\r\n else {\r\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x328));\r\n MROUNDUD();\r\n *(double *)(in_stack_00000004 + -0x20) = (double)((float10)_DAT_005e930c - in_ST0);\r\n fVar4 = in_ST1;\r\n in_ST1 = in_ST2;\r\n in_ST2 = in_ST3;\r\n }\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 0x330));\r\n fVar5 = fVar4;\r\n if (iVar2 != 0) {\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv\r\n (*(undefined4 *)(*(int *)(in_stack_00000004 + -0x14) + 800));\r\n fVar5 = fVar4;\r\n if (iVar2 == 1) {\r\n fVar5 = in_ST1;\r\n in_ST1 = in_ST2;\r\n MROUNDUD();\r\n *(double *)(in_stack_00000004 + -0x20) = (double)fVar4;\r\n }\r\n }\r\n piVar1 = *(int **)(*(int *)(in_stack_00000004 + -0x14) + 0x300);\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,DAT_005e92e4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n *(double *)(in_stack_00000004 + -8) = (double)fVar5;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,DAT_005e92e4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n *(double *)(in_stack_00000004 + -0x10) = (double)in_ST1;\r\n iVar3 = DAT_005e92e4 + 1;\r\n iVar2 = (**(code **)(*piVar1 + 300))();\r\n if (iVar3 <= iVar2 + -1) {\r\n iVar2 = ((iVar2 + -1) - iVar3) + 1;\r\n do {\r\n FUN_004ce2c8(iVar3);\r\n iVar3 = iVar3 + 1;\r\n iVar2 = iVar2 + -1;\r\n } while (iVar2 != 0);\r\n }\r\n return;\r\n}\r\n\r\n", "confidence": "observed", "authority": "shipped-artifact", "environment": null, "limitations": ["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", "Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.", "The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.", "Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically."], "relationship_coverage": null, "locations": [], "evidence_links": []}}, "jsonrpc": "2.0", "id": 5} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce6c4_calc_jab.ghidra.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce6c4_calc_jab.ghidra.json new file mode 100644 index 000000000..789e709b7 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_0x4ce6c4_calc_jab.ghidra.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_8c7c4340fcbd2385b69d145f8e114c4d0d0bd43e9dedb825a0b681f232a47754\",\"subject\":{\"name\":\"ST_KanJub.CPM\",\"digest\":{\"sha256\":\"ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_KanJub.CPM\",\"format\":\"pe\",\"architecture\":\"x86\"},\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"analysis_profile\":{\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"parameters\":{\"target_kind\":\"executable\",\"target_format\":\"pe\",\"executable_role\":\"shared-library\",\"managed\":false,\"native_aot_metadata\":{\"contract_revision\":\"rtr-9.1-x64-pe-read-only-v5\",\"source_bytes\":134217728,\"work_units\":67108864,\"working_memory_bytes\":67108864,\"report_bytes\":4194304},\"architecture\":\"x86\",\"available_architectures\":[\"x86\"],\"import_mode\":\"ephemeral-source-immutable\",\"pdb_observations\":\"program-info-v5\",\"annotation_policy\":\"atomic-function-entry-metadata-v1\",\"load_image_observations\":\"source-mappings-entry-context-v2\",\"function_body_evidence\":\"complete-inclusive-ranges-v1\",\"function_references\":\"complete-body-and-entry-reference-manager-v2\",\"call_relationship_coverage\":\"function-body-call-coverage-v5\",\"function_dossier_coverage\":\"observed-facets-and-call-relationships-v1\",\"string_inventory_evidence\":\"defined-data-coverage-v1\",\"location_resolution\":\"explicit-address-exact-entry-symbol-first-v3\",\"procedure_file_offset_resolution\":\"address-first-unique-target-source-mapping-v2\",\"instruction_flow_evidence\":\"decoded-return-pcode-v1\",\"instruction_references\":\"exact-address-incoming-without-synthetic-entry-v2\",\"function_boundary_observations\":\"ghidra-function-boundary-limitations-v4\",\"no_return_repair\":\"disabled-windows-p0\",\"process_launch\":\"official-headless-script-v1\",\"jump_table_evidence\":\"typed-case-default-blocks-v1\",\"decompiler_jump_loads\":true,\"loader\":\"auto-from-header\",\"language_id\":\"auto-from-header\",\"compiler_spec_id\":\"auto-default\",\"analyzer_preset\":\"ghidra-default\"},\"digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\"},\"predicate_type\":\"rea.analysis\",\"operation\":\"procedure_pseudo_code\",\"parameters\":{\"procedure\":\"0x4ce6c4\"},\"raw_result\":{\"value\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n\\r\\nvoid FUN_004ce6c4(int param_1)\\r\\n\\r\\n{\\r\\n char cVar1;\\r\\n int iVar2;\\r\\n int *piVar3;\\r\\n undefined4 uVar4;\\r\\n undefined4 uVar5;\\r\\n uint extraout_EDX;\\r\\n int iVar6;\\r\\n double *pdVar7;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n float10 in_ST0;\\r\\n float10 fVar8;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 fVar9;\\r\\n float10 in_ST3;\\r\\n float10 in_ST4;\\r\\n float10 in_ST5;\\r\\n float10 in_ST6;\\r\\n float10 in_ST7;\\r\\n undefined4 uStackY_d4;\\r\\n undefined2 uVar10;\\r\\n undefined2 uStack_ca;\\r\\n undefined4 uStack_80;\\r\\n undefined1 *puStack_7c;\\r\\n undefined1 *puStack_78;\\r\\n undefined4 uStack_74;\\r\\n undefined1 *puStack_70;\\r\\n undefined1 *puStack_6c;\\r\\n undefined4 local_60;\\r\\n undefined4 local_5c;\\r\\n undefined4 local_58;\\r\\n undefined4 local_54;\\r\\n undefined4 local_50;\\r\\n undefined4 local_4c;\\r\\n undefined4 local_48;\\r\\n undefined4 local_44;\\r\\n undefined4 local_40;\\r\\n undefined4 local_3c;\\r\\n double local_38;\\r\\n int local_30;\\r\\n int *local_2c;\\r\\n int local_28;\\r\\n undefined4 local_24;\\r\\n undefined4 local_20;\\r\\n int local_18;\\r\\n undefined8 local_14;\\r\\n undefined8 local_c;\\r\\n \\r\\n puStack_6c = &stack0xfffffffc;\\r\\n puStack_78 = &stack0xfffffffc;\\r\\n local_60 = 0;\\r\\n local_5c = 0;\\r\\n local_58 = 0;\\r\\n local_54 = 0;\\r\\n local_50 = 0;\\r\\n local_4c = 0;\\r\\n local_48 = 0;\\r\\n local_44 = 0;\\r\\n local_40 = 0;\\r\\n local_3c = 0;\\r\\n puStack_70 = &LAB_004cec4b;\\r\\n uStack_74 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_74;\\r\\n local_2c = *(int **)(param_1 + 0x300);\\r\\n puStack_7c = &LAB_004cec29;\\r\\n uStack_80 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_80;\\r\\n local_18 = param_1;\\r\\n _Urgrids_TwCustomGrid_BeginUpdate_qqrv(local_2c);\\r\\n iVar2 = *(int *)(local_18 + 0x300);\\r\\n *(undefined4 *)(iVar2 + 0x4d0) = 0;\\r\\n *(undefined4 *)(iVar2 + 0x4d4) = 0;\\r\\n cVar1 = _Urgrids_TwCustomGrid_Editing_qqrv(iVar2);\\r\\n if (cVar1 != '\\\\0') {\\r\\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\\r\\n }\\r\\n local_c = (double)CONCAT44(DAT_005c7d88,DAT_005c7d84);\\r\\n local_14 = (double)CONCAT44(DAT_005a74e8,DAT_005a74e4);\\r\\n _System__FillChar_qqrpvic(&DAT_005e92fc,0x30,0);\\r\\n iVar2 = (**(code **)(*local_2c + 300))();\\r\\n if (-1 < iVar2 + -1) {\\r\\n iVar6 = 0;\\r\\n local_30 = iVar2;\\r\\n do {\\r\\n FUN_004ce2c8(iVar6);\\r\\n local_28 = 4;\\r\\n piVar3 = &DAT_005e92e8;\\r\\n pdVar7 = (double *)&DAT_005e9304;\\r\\n do {\\r\\n if (iVar6 == *piVar3) {\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,iVar6);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n *pdVar7 = (double)in_ST0;\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n in_ST2 = in_ST3;\\r\\n in_ST3 = in_ST4;\\r\\n in_ST4 = in_ST5;\\r\\n in_ST5 = in_ST6;\\r\\n in_ST6 = in_ST7;\\r\\n break;\\r\\n }\\r\\n pdVar7 = pdVar7 + 1;\\r\\n piVar3 = piVar3 + 1;\\r\\n local_28 = local_28 + -1;\\r\\n } while (local_28 != 0);\\r\\n iVar6 = iVar6 + 1;\\r\\n local_30 = local_30 + -1;\\r\\n } while (local_30 != 0);\\r\\n }\\r\\n local_24 = 0;\\r\\n local_20 = 0;\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800));\\r\\n if (((iVar2 != 0) ||\\r\\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x328)), iVar2 != 0)) ||\\r\\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330)), iVar2 != 0)) {\\r\\n FUN_004ce55c();\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\\r\\n if ((iVar2 != 0) &&\\r\\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800)), iVar2 == 1)) {\\r\\n while( true ) {\\r\\n fVar9 = in_ST5;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92f4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n local_38 = (double)in_ST0;\\r\\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\\r\\n in_ST5 = in_ST7;\\r\\n MROUNDUD();\\r\\n fVar8 = (float10)local_38 - in_ST1;\\r\\n iVar2 = _System__ROUND_qqrv();\\r\\n if (9 < iVar2 - 1U) break;\\r\\n local_24 = 0;\\r\\n local_20 = 0x3ff00000;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92e4);\\r\\n in_ST0 = in_ST3;\\r\\n in_ST1 = in_ST4;\\r\\n in_ST3 = in_ST6;\\r\\n in_ST4 = in_ST7;\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n local_c = (double)fVar8;\\r\\n in_ST6 = in_ST5;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,8,DAT_005e92e4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n local_14 = (double)in_ST2;\\r\\n iVar6 = DAT_005e92e4 + 1;\\r\\n in_ST7 = in_ST6;\\r\\n iVar2 = (**(code **)(*local_2c + 300))();\\r\\n in_ST2 = fVar9;\\r\\n if (iVar6 <= iVar2 + -1) {\\r\\n local_30 = ((iVar2 + -1) - iVar6) + 1;\\r\\n do {\\r\\n FUN_004ce2c8(iVar6);\\r\\n iVar6 = iVar6 + 1;\\r\\n local_30 = local_30 + -1;\\r\\n } while (local_30 != 0);\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\\r\\n FUN_004cac0c(local_18);\\r\\n _Graphics_TFont_SetColor_qqr15Graphics_TColor\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),0);\\r\\n _Graphics_TFont_SetStyle_qqr47System__Set_t19Graphics_TFontStyle_iuc_0_iuc_3_\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),extraout_EDX & 0xffffff00);\\r\\n (**(code **)(**(int **)(local_18 + 0x310) + 100))(*(int **)(local_18 + 0x310),0);\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_3c);\\r\\n uVar5 = local_3c;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),1);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_40);\\r\\n uVar5 = local_40;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),2);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n if (_DAT_0059744c == 0.0) {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_44);\\r\\n uVar5 = local_44;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n else {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_48);\\r\\n uVar5 = local_48;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_4c);\\r\\n uVar5 = local_4c;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),4);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n if (_DAT_0059744c == 0.0) {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_50);\\r\\n uVar5 = local_50;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n else {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_54);\\r\\n uVar5 = local_54;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_58);\\r\\n uVar10 = (undefined2)local_58;\\r\\n uVar5 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),6);\\r\\n uStack_ca = 0x4c;\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar5,uVar10);\\r\\n if (_DAT_0059744c == 0.0) {\\r\\n uVar10 = 0;\\r\\n uStack_ca = 0;\\r\\n uStackY_d4 = 0;\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_5c);\\r\\n uVar5 = local_5c;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n else {\\r\\n fVar8 = ((float10)local_14 / (float10)_DAT_0059744c) * (float10)100.0;\\r\\n uStackY_d4 = SUB104(fVar8,0);\\r\\n uVar10 = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_60);\\r\\n uVar5 = local_60;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n *in_FS_OFFSET = uStackY_d4;\\r\\n local_2c[0x135] = local_18;\\r\\n local_2c[0x134] = (int)&LAB_004cec80;\\r\\n _Urgrids_TwCustomGrid_EndUpdate_qqro(local_2c,1,CONCAT22(uStack_ca,uVar10),0xec30);\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"limitations\":[\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce6fa (push 0x4cec4b followed by fs-segment stack chaining); handler 0x4cec4b lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce714 (push 0x4cec29 followed by fs-segment stack chaining); handler 0x4cec29 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\"]},\"normalized_result\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n\\r\\nvoid FUN_004ce6c4(int param_1)\\r\\n\\r\\n{\\r\\n char cVar1;\\r\\n int iVar2;\\r\\n int *piVar3;\\r\\n undefined4 uVar4;\\r\\n undefined4 uVar5;\\r\\n uint extraout_EDX;\\r\\n int iVar6;\\r\\n double *pdVar7;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n float10 in_ST0;\\r\\n float10 fVar8;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 fVar9;\\r\\n float10 in_ST3;\\r\\n float10 in_ST4;\\r\\n float10 in_ST5;\\r\\n float10 in_ST6;\\r\\n float10 in_ST7;\\r\\n undefined4 uStackY_d4;\\r\\n undefined2 uVar10;\\r\\n undefined2 uStack_ca;\\r\\n undefined4 uStack_80;\\r\\n undefined1 *puStack_7c;\\r\\n undefined1 *puStack_78;\\r\\n undefined4 uStack_74;\\r\\n undefined1 *puStack_70;\\r\\n undefined1 *puStack_6c;\\r\\n undefined4 local_60;\\r\\n undefined4 local_5c;\\r\\n undefined4 local_58;\\r\\n undefined4 local_54;\\r\\n undefined4 local_50;\\r\\n undefined4 local_4c;\\r\\n undefined4 local_48;\\r\\n undefined4 local_44;\\r\\n undefined4 local_40;\\r\\n undefined4 local_3c;\\r\\n double local_38;\\r\\n int local_30;\\r\\n int *local_2c;\\r\\n int local_28;\\r\\n undefined4 local_24;\\r\\n undefined4 local_20;\\r\\n int local_18;\\r\\n undefined8 local_14;\\r\\n undefined8 local_c;\\r\\n \\r\\n puStack_6c = &stack0xfffffffc;\\r\\n puStack_78 = &stack0xfffffffc;\\r\\n local_60 = 0;\\r\\n local_5c = 0;\\r\\n local_58 = 0;\\r\\n local_54 = 0;\\r\\n local_50 = 0;\\r\\n local_4c = 0;\\r\\n local_48 = 0;\\r\\n local_44 = 0;\\r\\n local_40 = 0;\\r\\n local_3c = 0;\\r\\n puStack_70 = &LAB_004cec4b;\\r\\n uStack_74 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_74;\\r\\n local_2c = *(int **)(param_1 + 0x300);\\r\\n puStack_7c = &LAB_004cec29;\\r\\n uStack_80 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_80;\\r\\n local_18 = param_1;\\r\\n _Urgrids_TwCustomGrid_BeginUpdate_qqrv(local_2c);\\r\\n iVar2 = *(int *)(local_18 + 0x300);\\r\\n *(undefined4 *)(iVar2 + 0x4d0) = 0;\\r\\n *(undefined4 *)(iVar2 + 0x4d4) = 0;\\r\\n cVar1 = _Urgrids_TwCustomGrid_Editing_qqrv(iVar2);\\r\\n if (cVar1 != '\\\\0') {\\r\\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\\r\\n }\\r\\n local_c = (double)CONCAT44(DAT_005c7d88,DAT_005c7d84);\\r\\n local_14 = (double)CONCAT44(DAT_005a74e8,DAT_005a74e4);\\r\\n _System__FillChar_qqrpvic(&DAT_005e92fc,0x30,0);\\r\\n iVar2 = (**(code **)(*local_2c + 300))();\\r\\n if (-1 < iVar2 + -1) {\\r\\n iVar6 = 0;\\r\\n local_30 = iVar2;\\r\\n do {\\r\\n FUN_004ce2c8(iVar6);\\r\\n local_28 = 4;\\r\\n piVar3 = &DAT_005e92e8;\\r\\n pdVar7 = (double *)&DAT_005e9304;\\r\\n do {\\r\\n if (iVar6 == *piVar3) {\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,iVar6);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n *pdVar7 = (double)in_ST0;\\r\\n in_ST0 = in_ST1;\\r\\n in_ST1 = in_ST2;\\r\\n in_ST2 = in_ST3;\\r\\n in_ST3 = in_ST4;\\r\\n in_ST4 = in_ST5;\\r\\n in_ST5 = in_ST6;\\r\\n in_ST6 = in_ST7;\\r\\n break;\\r\\n }\\r\\n pdVar7 = pdVar7 + 1;\\r\\n piVar3 = piVar3 + 1;\\r\\n local_28 = local_28 + -1;\\r\\n } while (local_28 != 0);\\r\\n iVar6 = iVar6 + 1;\\r\\n local_30 = local_30 + -1;\\r\\n } while (local_30 != 0);\\r\\n }\\r\\n local_24 = 0;\\r\\n local_20 = 0;\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800));\\r\\n if (((iVar2 != 0) ||\\r\\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x328)), iVar2 != 0)) ||\\r\\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330)), iVar2 != 0)) {\\r\\n FUN_004ce55c();\\r\\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\\r\\n if ((iVar2 != 0) &&\\r\\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800)), iVar2 == 1)) {\\r\\n while( true ) {\\r\\n fVar9 = in_ST5;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92f4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n local_38 = (double)in_ST0;\\r\\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\\r\\n in_ST5 = in_ST7;\\r\\n MROUNDUD();\\r\\n fVar8 = (float10)local_38 - in_ST1;\\r\\n iVar2 = _System__ROUND_qqrv();\\r\\n if (9 < iVar2 - 1U) break;\\r\\n local_24 = 0;\\r\\n local_20 = 0x3ff00000;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92e4);\\r\\n in_ST0 = in_ST3;\\r\\n in_ST1 = in_ST4;\\r\\n in_ST3 = in_ST6;\\r\\n in_ST4 = in_ST7;\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n local_c = (double)fVar8;\\r\\n in_ST6 = in_ST5;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,8,DAT_005e92e4);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n local_14 = (double)in_ST2;\\r\\n iVar6 = DAT_005e92e4 + 1;\\r\\n in_ST7 = in_ST6;\\r\\n iVar2 = (**(code **)(*local_2c + 300))();\\r\\n in_ST2 = fVar9;\\r\\n if (iVar6 <= iVar2 + -1) {\\r\\n local_30 = ((iVar2 + -1) - iVar6) + 1;\\r\\n do {\\r\\n FUN_004ce2c8(iVar6);\\r\\n iVar6 = iVar6 + 1;\\r\\n local_30 = local_30 + -1;\\r\\n } while (local_30 != 0);\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\\r\\n FUN_004cac0c(local_18);\\r\\n _Graphics_TFont_SetColor_qqr15Graphics_TColor\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),0);\\r\\n _Graphics_TFont_SetStyle_qqr47System__Set_t19Graphics_TFontStyle_iuc_0_iuc_3_\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),extraout_EDX & 0xffffff00);\\r\\n (**(code **)(**(int **)(local_18 + 0x310) + 100))(*(int **)(local_18 + 0x310),0);\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_3c);\\r\\n uVar5 = local_3c;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),1);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_40);\\r\\n uVar5 = local_40;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),2);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n if (_DAT_0059744c == 0.0) {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_44);\\r\\n uVar5 = local_44;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n else {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_48);\\r\\n uVar5 = local_48;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_4c);\\r\\n uVar5 = local_4c;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),4);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n if (_DAT_0059744c == 0.0) {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_50);\\r\\n uVar5 = local_50;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n else {\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_54);\\r\\n uVar5 = local_54;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_58);\\r\\n uVar10 = (undefined2)local_58;\\r\\n uVar5 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),6);\\r\\n uStack_ca = 0x4c;\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar5,uVar10);\\r\\n if (_DAT_0059744c == 0.0) {\\r\\n uVar10 = 0;\\r\\n uStack_ca = 0;\\r\\n uStackY_d4 = 0;\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_5c);\\r\\n uVar5 = local_5c;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n else {\\r\\n fVar8 = ((float10)local_14 / (float10)_DAT_0059744c) * (float10)100.0;\\r\\n uStackY_d4 = SUB104(fVar8,0);\\r\\n uVar10 = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.00%;;#\\\",&local_60);\\r\\n uVar5 = local_60;\\r\\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\\r\\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\\r\\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\\r\\n }\\r\\n *in_FS_OFFSET = uStackY_d4;\\r\\n local_2c[0x135] = local_18;\\r\\n local_2c[0x134] = (int)&LAB_004cec80;\\r\\n _Urgrids_TwCustomGrid_EndUpdate_qqro(local_2c,1,CONCAT22(uStack_ca,uVar10),0xec30);\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"confidence\":\"observed\",\"authority\":\"shipped-artifact\",\"environment\":null,\"limitations\":[\"The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.\",\"The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.\",\"Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.\",\"Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.\",\"Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.\",\"External functions and functions without an analyzable body return null; other decompiler failures remain explicit.\",\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce6fa (push 0x4cec4b followed by fs-segment stack chaining); handler 0x4cec4b lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce714 (push 0x4cec29 followed by fs-segment stack chaining); handler 0x4cec29 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.\",\"The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.\",\"Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically.\"],\"relationship_coverage\":null,\"locations\":[],\"evidence_links\":[]}"}], "structuredContent": {"evidence_id": "ev_8c7c4340fcbd2385b69d145f8e114c4d0d0bd43e9dedb825a0b681f232a47754", "subject": {"name": "ST_KanJub.CPM", "digest": {"sha256": "ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03"}, "local_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_KanJub.CPM", "format": "pe", "architecture": "x86"}, "provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "analysis_profile": {"provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "parameters": {"target_kind": "executable", "target_format": "pe", "executable_role": "shared-library", "managed": false, "native_aot_metadata": {"contract_revision": "rtr-9.1-x64-pe-read-only-v5", "source_bytes": 134217728, "work_units": 67108864, "working_memory_bytes": 67108864, "report_bytes": 4194304}, "architecture": "x86", "available_architectures": ["x86"], "import_mode": "ephemeral-source-immutable", "pdb_observations": "program-info-v5", "annotation_policy": "atomic-function-entry-metadata-v1", "load_image_observations": "source-mappings-entry-context-v2", "function_body_evidence": "complete-inclusive-ranges-v1", "function_references": "complete-body-and-entry-reference-manager-v2", "call_relationship_coverage": "function-body-call-coverage-v5", "function_dossier_coverage": "observed-facets-and-call-relationships-v1", "string_inventory_evidence": "defined-data-coverage-v1", "location_resolution": "explicit-address-exact-entry-symbol-first-v3", "procedure_file_offset_resolution": "address-first-unique-target-source-mapping-v2", "instruction_flow_evidence": "decoded-return-pcode-v1", "instruction_references": "exact-address-incoming-without-synthetic-entry-v2", "function_boundary_observations": "ghidra-function-boundary-limitations-v4", "no_return_repair": "disabled-windows-p0", "process_launch": "official-headless-script-v1", "jump_table_evidence": "typed-case-default-blocks-v1", "decompiler_jump_loads": true, "loader": "auto-from-header", "language_id": "auto-from-header", "compiler_spec_id": "auto-default", "analyzer_preset": "ghidra-default"}, "digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b"}, "predicate_type": "rea.analysis", "operation": "procedure_pseudo_code", "parameters": {"procedure": "0x4ce6c4"}, "raw_result": {"value": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n\r\nvoid FUN_004ce6c4(int param_1)\r\n\r\n{\r\n char cVar1;\r\n int iVar2;\r\n int *piVar3;\r\n undefined4 uVar4;\r\n undefined4 uVar5;\r\n uint extraout_EDX;\r\n int iVar6;\r\n double *pdVar7;\r\n undefined4 *in_FS_OFFSET;\r\n float10 in_ST0;\r\n float10 fVar8;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 fVar9;\r\n float10 in_ST3;\r\n float10 in_ST4;\r\n float10 in_ST5;\r\n float10 in_ST6;\r\n float10 in_ST7;\r\n undefined4 uStackY_d4;\r\n undefined2 uVar10;\r\n undefined2 uStack_ca;\r\n undefined4 uStack_80;\r\n undefined1 *puStack_7c;\r\n undefined1 *puStack_78;\r\n undefined4 uStack_74;\r\n undefined1 *puStack_70;\r\n undefined1 *puStack_6c;\r\n undefined4 local_60;\r\n undefined4 local_5c;\r\n undefined4 local_58;\r\n undefined4 local_54;\r\n undefined4 local_50;\r\n undefined4 local_4c;\r\n undefined4 local_48;\r\n undefined4 local_44;\r\n undefined4 local_40;\r\n undefined4 local_3c;\r\n double local_38;\r\n int local_30;\r\n int *local_2c;\r\n int local_28;\r\n undefined4 local_24;\r\n undefined4 local_20;\r\n int local_18;\r\n undefined8 local_14;\r\n undefined8 local_c;\r\n \r\n puStack_6c = &stack0xfffffffc;\r\n puStack_78 = &stack0xfffffffc;\r\n local_60 = 0;\r\n local_5c = 0;\r\n local_58 = 0;\r\n local_54 = 0;\r\n local_50 = 0;\r\n local_4c = 0;\r\n local_48 = 0;\r\n local_44 = 0;\r\n local_40 = 0;\r\n local_3c = 0;\r\n puStack_70 = &LAB_004cec4b;\r\n uStack_74 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_74;\r\n local_2c = *(int **)(param_1 + 0x300);\r\n puStack_7c = &LAB_004cec29;\r\n uStack_80 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_80;\r\n local_18 = param_1;\r\n _Urgrids_TwCustomGrid_BeginUpdate_qqrv(local_2c);\r\n iVar2 = *(int *)(local_18 + 0x300);\r\n *(undefined4 *)(iVar2 + 0x4d0) = 0;\r\n *(undefined4 *)(iVar2 + 0x4d4) = 0;\r\n cVar1 = _Urgrids_TwCustomGrid_Editing_qqrv(iVar2);\r\n if (cVar1 != '\\0') {\r\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\r\n }\r\n local_c = (double)CONCAT44(DAT_005c7d88,DAT_005c7d84);\r\n local_14 = (double)CONCAT44(DAT_005a74e8,DAT_005a74e4);\r\n _System__FillChar_qqrpvic(&DAT_005e92fc,0x30,0);\r\n iVar2 = (**(code **)(*local_2c + 300))();\r\n if (-1 < iVar2 + -1) {\r\n iVar6 = 0;\r\n local_30 = iVar2;\r\n do {\r\n FUN_004ce2c8(iVar6);\r\n local_28 = 4;\r\n piVar3 = &DAT_005e92e8;\r\n pdVar7 = (double *)&DAT_005e9304;\r\n do {\r\n if (iVar6 == *piVar3) {\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,iVar6);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n *pdVar7 = (double)in_ST0;\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n in_ST2 = in_ST3;\r\n in_ST3 = in_ST4;\r\n in_ST4 = in_ST5;\r\n in_ST5 = in_ST6;\r\n in_ST6 = in_ST7;\r\n break;\r\n }\r\n pdVar7 = pdVar7 + 1;\r\n piVar3 = piVar3 + 1;\r\n local_28 = local_28 + -1;\r\n } while (local_28 != 0);\r\n iVar6 = iVar6 + 1;\r\n local_30 = local_30 + -1;\r\n } while (local_30 != 0);\r\n }\r\n local_24 = 0;\r\n local_20 = 0;\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800));\r\n if (((iVar2 != 0) ||\r\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x328)), iVar2 != 0)) ||\r\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330)), iVar2 != 0)) {\r\n FUN_004ce55c();\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\r\n if ((iVar2 != 0) &&\r\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800)), iVar2 == 1)) {\r\n while( true ) {\r\n fVar9 = in_ST5;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92f4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n local_38 = (double)in_ST0;\r\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\r\n in_ST5 = in_ST7;\r\n MROUNDUD();\r\n fVar8 = (float10)local_38 - in_ST1;\r\n iVar2 = _System__ROUND_qqrv();\r\n if (9 < iVar2 - 1U) break;\r\n local_24 = 0;\r\n local_20 = 0x3ff00000;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92e4);\r\n in_ST0 = in_ST3;\r\n in_ST1 = in_ST4;\r\n in_ST3 = in_ST6;\r\n in_ST4 = in_ST7;\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n local_c = (double)fVar8;\r\n in_ST6 = in_ST5;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,8,DAT_005e92e4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n local_14 = (double)in_ST2;\r\n iVar6 = DAT_005e92e4 + 1;\r\n in_ST7 = in_ST6;\r\n iVar2 = (**(code **)(*local_2c + 300))();\r\n in_ST2 = fVar9;\r\n if (iVar6 <= iVar2 + -1) {\r\n local_30 = ((iVar2 + -1) - iVar6) + 1;\r\n do {\r\n FUN_004ce2c8(iVar6);\r\n iVar6 = iVar6 + 1;\r\n local_30 = local_30 + -1;\r\n } while (local_30 != 0);\r\n }\r\n }\r\n }\r\n }\r\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\r\n FUN_004cac0c(local_18);\r\n _Graphics_TFont_SetColor_qqr15Graphics_TColor\r\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),0);\r\n _Graphics_TFont_SetStyle_qqr47System__Set_t19Graphics_TFontStyle_iuc_0_iuc_3_\r\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),extraout_EDX & 0xffffff00);\r\n (**(code **)(**(int **)(local_18 + 0x310) + 100))(*(int **)(local_18 + 0x310),0);\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_3c);\r\n uVar5 = local_3c;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),1);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_40);\r\n uVar5 = local_40;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),2);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n if (_DAT_0059744c == 0.0) {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_44);\r\n uVar5 = local_44;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n else {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_48);\r\n uVar5 = local_48;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_4c);\r\n uVar5 = local_4c;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),4);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n if (_DAT_0059744c == 0.0) {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_50);\r\n uVar5 = local_50;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n else {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_54);\r\n uVar5 = local_54;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_58);\r\n uVar10 = (undefined2)local_58;\r\n uVar5 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),6);\r\n uStack_ca = 0x4c;\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar5,uVar10);\r\n if (_DAT_0059744c == 0.0) {\r\n uVar10 = 0;\r\n uStack_ca = 0;\r\n uStackY_d4 = 0;\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_5c);\r\n uVar5 = local_5c;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n else {\r\n fVar8 = ((float10)local_14 / (float10)_DAT_0059744c) * (float10)100.0;\r\n uStackY_d4 = SUB104(fVar8,0);\r\n uVar10 = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_60);\r\n uVar5 = local_60;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n *in_FS_OFFSET = uStackY_d4;\r\n local_2c[0x135] = local_18;\r\n local_2c[0x134] = (int)&LAB_004cec80;\r\n _Urgrids_TwCustomGrid_EndUpdate_qqro(local_2c,1,CONCAT22(uStack_ca,uVar10),0xec30);\r\n return;\r\n}\r\n\r\n", "limitations": ["Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce6fa (push 0x4cec4b followed by fs-segment stack chaining); handler 0x4cec4b lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce714 (push 0x4cec29 followed by fs-segment stack chaining); handler 0x4cec29 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region."]}, "normalized_result": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n\r\nvoid FUN_004ce6c4(int param_1)\r\n\r\n{\r\n char cVar1;\r\n int iVar2;\r\n int *piVar3;\r\n undefined4 uVar4;\r\n undefined4 uVar5;\r\n uint extraout_EDX;\r\n int iVar6;\r\n double *pdVar7;\r\n undefined4 *in_FS_OFFSET;\r\n float10 in_ST0;\r\n float10 fVar8;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 fVar9;\r\n float10 in_ST3;\r\n float10 in_ST4;\r\n float10 in_ST5;\r\n float10 in_ST6;\r\n float10 in_ST7;\r\n undefined4 uStackY_d4;\r\n undefined2 uVar10;\r\n undefined2 uStack_ca;\r\n undefined4 uStack_80;\r\n undefined1 *puStack_7c;\r\n undefined1 *puStack_78;\r\n undefined4 uStack_74;\r\n undefined1 *puStack_70;\r\n undefined1 *puStack_6c;\r\n undefined4 local_60;\r\n undefined4 local_5c;\r\n undefined4 local_58;\r\n undefined4 local_54;\r\n undefined4 local_50;\r\n undefined4 local_4c;\r\n undefined4 local_48;\r\n undefined4 local_44;\r\n undefined4 local_40;\r\n undefined4 local_3c;\r\n double local_38;\r\n int local_30;\r\n int *local_2c;\r\n int local_28;\r\n undefined4 local_24;\r\n undefined4 local_20;\r\n int local_18;\r\n undefined8 local_14;\r\n undefined8 local_c;\r\n \r\n puStack_6c = &stack0xfffffffc;\r\n puStack_78 = &stack0xfffffffc;\r\n local_60 = 0;\r\n local_5c = 0;\r\n local_58 = 0;\r\n local_54 = 0;\r\n local_50 = 0;\r\n local_4c = 0;\r\n local_48 = 0;\r\n local_44 = 0;\r\n local_40 = 0;\r\n local_3c = 0;\r\n puStack_70 = &LAB_004cec4b;\r\n uStack_74 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_74;\r\n local_2c = *(int **)(param_1 + 0x300);\r\n puStack_7c = &LAB_004cec29;\r\n uStack_80 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_80;\r\n local_18 = param_1;\r\n _Urgrids_TwCustomGrid_BeginUpdate_qqrv(local_2c);\r\n iVar2 = *(int *)(local_18 + 0x300);\r\n *(undefined4 *)(iVar2 + 0x4d0) = 0;\r\n *(undefined4 *)(iVar2 + 0x4d4) = 0;\r\n cVar1 = _Urgrids_TwCustomGrid_Editing_qqrv(iVar2);\r\n if (cVar1 != '\\0') {\r\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\r\n }\r\n local_c = (double)CONCAT44(DAT_005c7d88,DAT_005c7d84);\r\n local_14 = (double)CONCAT44(DAT_005a74e8,DAT_005a74e4);\r\n _System__FillChar_qqrpvic(&DAT_005e92fc,0x30,0);\r\n iVar2 = (**(code **)(*local_2c + 300))();\r\n if (-1 < iVar2 + -1) {\r\n iVar6 = 0;\r\n local_30 = iVar2;\r\n do {\r\n FUN_004ce2c8(iVar6);\r\n local_28 = 4;\r\n piVar3 = &DAT_005e92e8;\r\n pdVar7 = (double *)&DAT_005e9304;\r\n do {\r\n if (iVar6 == *piVar3) {\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,iVar6);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n *pdVar7 = (double)in_ST0;\r\n in_ST0 = in_ST1;\r\n in_ST1 = in_ST2;\r\n in_ST2 = in_ST3;\r\n in_ST3 = in_ST4;\r\n in_ST4 = in_ST5;\r\n in_ST5 = in_ST6;\r\n in_ST6 = in_ST7;\r\n break;\r\n }\r\n pdVar7 = pdVar7 + 1;\r\n piVar3 = piVar3 + 1;\r\n local_28 = local_28 + -1;\r\n } while (local_28 != 0);\r\n iVar6 = iVar6 + 1;\r\n local_30 = local_30 + -1;\r\n } while (local_30 != 0);\r\n }\r\n local_24 = 0;\r\n local_20 = 0;\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800));\r\n if (((iVar2 != 0) ||\r\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x328)), iVar2 != 0)) ||\r\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330)), iVar2 != 0)) {\r\n FUN_004ce55c();\r\n iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\r\n if ((iVar2 != 0) &&\r\n (iVar2 = _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 800)), iVar2 == 1)) {\r\n while( true ) {\r\n fVar9 = in_ST5;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92f4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n local_38 = (double)in_ST0;\r\n _Urcombos_TwCombo_GetInteger_qqrv(*(undefined4 *)(local_18 + 0x330));\r\n in_ST5 = in_ST7;\r\n MROUNDUD();\r\n fVar8 = (float10)local_38 - in_ST1;\r\n iVar2 = _System__ROUND_qqrv();\r\n if (9 < iVar2 - 1U) break;\r\n local_24 = 0;\r\n local_20 = 0x3ff00000;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,6,DAT_005e92e4);\r\n in_ST0 = in_ST3;\r\n in_ST1 = in_ST4;\r\n in_ST3 = in_ST6;\r\n in_ST4 = in_ST7;\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n local_c = (double)fVar8;\r\n in_ST6 = in_ST5;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_2c,8,DAT_005e92e4);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n local_14 = (double)in_ST2;\r\n iVar6 = DAT_005e92e4 + 1;\r\n in_ST7 = in_ST6;\r\n iVar2 = (**(code **)(*local_2c + 300))();\r\n in_ST2 = fVar9;\r\n if (iVar6 <= iVar2 + -1) {\r\n local_30 = ((iVar2 + -1) - iVar6) + 1;\r\n do {\r\n FUN_004ce2c8(iVar6);\r\n iVar6 = iVar6 + 1;\r\n local_30 = local_30 + -1;\r\n } while (local_30 != 0);\r\n }\r\n }\r\n }\r\n }\r\n _Urmgrid_TRealGrid_Post_qqrv(local_2c);\r\n FUN_004cac0c(local_18);\r\n _Graphics_TFont_SetColor_qqr15Graphics_TColor\r\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),0);\r\n _Graphics_TFont_SetStyle_qqr47System__Set_t19Graphics_TFontStyle_iuc_0_iuc_3_\r\n (*(undefined4 *)(*(int *)(local_18 + 0x310) + 0x68),extraout_EDX & 0xffffff00);\r\n (**(code **)(**(int **)(local_18 + 0x310) + 100))(*(int **)(local_18 + 0x310),0);\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_3c);\r\n uVar5 = local_3c;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),1);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_40);\r\n uVar5 = local_40;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),2);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n if (_DAT_0059744c == 0.0) {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_44);\r\n uVar5 = local_44;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n else {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_48);\r\n uVar5 = local_48;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),3);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_4c);\r\n uVar5 = local_4c;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),4);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n if (_DAT_0059744c == 0.0) {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_50);\r\n uVar5 = local_50;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n else {\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_54);\r\n uVar5 = local_54;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),5);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(&DAT_004cec64,&local_58);\r\n uVar10 = (undefined2)local_58;\r\n uVar5 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),6);\r\n uStack_ca = 0x4c;\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar5,uVar10);\r\n if (_DAT_0059744c == 0.0) {\r\n uVar10 = 0;\r\n uStack_ca = 0;\r\n uStackY_d4 = 0;\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_5c);\r\n uVar5 = local_5c;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n else {\r\n fVar8 = ((float10)local_14 / (float10)_DAT_0059744c) * (float10)100.0;\r\n uStackY_d4 = SUB104(fVar8,0);\r\n uVar10 = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.00%;;#\",&local_60);\r\n uVar5 = local_60;\r\n uVar4 = _Comctrls_TStatusPanels_GetItem_qqri\r\n (*(undefined4 *)(*(int *)(local_18 + 0x2f4) + 0x208),7);\r\n _Comctrls_TStatusPanel_SetText_qqrx17System_AnsiString(uVar4,uVar5);\r\n }\r\n *in_FS_OFFSET = uStackY_d4;\r\n local_2c[0x135] = local_18;\r\n local_2c[0x134] = (int)&LAB_004cec80;\r\n _Urgrids_TwCustomGrid_EndUpdate_qqro(local_2c,1,CONCAT22(uStack_ca,uVar10),0xec30);\r\n return;\r\n}\r\n\r\n", "confidence": "observed", "authority": "shipped-artifact", "environment": null, "limitations": ["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", "Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce6fa (push 0x4cec4b followed by fs-segment stack chaining); handler 0x4cec4b lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ce714 (push 0x4cec29 followed by fs-segment stack chaining); handler 0x4cec29 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.", "The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.", "Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically."], "relationship_coverage": null, "locations": [], "evidence_links": []}}, "jsonrpc": "2.0", "id": 6} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_batch_0x4ca5ac_0x4cac0c_0x4caa48_0x4cb03c.ghidra.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_batch_0x4ca5ac_0x4cac0c_0x4caa48_0x4cb03c.ghidra.json new file mode 100644 index 000000000..c3835b86f --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/KanJub_batch_0x4ca5ac_0x4cac0c_0x4caa48_0x4cb03c.ghidra.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_5cb012b17eca081bd8827b442aa08408c9fbe24e36e36dbc0c0992f6ca6537aa\",\"subject\":{\"name\":\"ST_KanJub.CPM\",\"digest\":{\"sha256\":\"ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_KanJub.CPM\",\"format\":\"pe\",\"architecture\":\"x86\"},\"provider\":{\"id\":\"rea-workflow\",\"name\":\"REA composed investigation workflow\",\"version\":\"1\"},\"analysis_profile\":{\"provider\":{\"id\":\"rea-workflow\",\"name\":\"REA composed investigation workflow\",\"version\":\"1\"},\"parameters\":{\"upstream_analysis_profile\":{\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"parameters\":{\"target_kind\":\"executable\",\"target_format\":\"pe\",\"executable_role\":\"shared-library\",\"managed\":false,\"native_aot_metadata\":{\"contract_revision\":\"rtr-9.1-x64-pe-read-only-v5\",\"source_bytes\":134217728,\"work_units\":67108864,\"working_memory_bytes\":67108864,\"report_bytes\":4194304},\"architecture\":\"x86\",\"available_architectures\":[\"x86\"],\"import_mode\":\"ephemeral-source-immutable\",\"pdb_observations\":\"program-info-v5\",\"annotation_policy\":\"atomic-function-entry-metadata-v1\",\"load_image_observations\":\"source-mappings-entry-context-v2\",\"function_body_evidence\":\"complete-inclusive-ranges-v1\",\"function_references\":\"complete-body-and-entry-reference-manager-v2\",\"call_relationship_coverage\":\"function-body-call-coverage-v5\",\"function_dossier_coverage\":\"observed-facets-and-call-relationships-v1\",\"string_inventory_evidence\":\"defined-data-coverage-v1\",\"location_resolution\":\"explicit-address-exact-entry-symbol-first-v3\",\"procedure_file_offset_resolution\":\"address-first-unique-target-source-mapping-v2\",\"instruction_flow_evidence\":\"decoded-return-pcode-v1\",\"instruction_references\":\"exact-address-incoming-without-synthetic-entry-v2\",\"function_boundary_observations\":\"ghidra-function-boundary-limitations-v4\",\"no_return_repair\":\"disabled-windows-p0\",\"process_launch\":\"official-headless-script-v1\",\"jump_table_evidence\":\"typed-case-default-blocks-v1\",\"decompiler_jump_loads\":true,\"loader\":\"auto-from-header\",\"language_id\":\"auto-from-header\",\"compiler_spec_id\":\"auto-default\",\"analyzer_preset\":\"ghidra-default\"},\"digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\"},\"source_limitations\":\"provider-operation-caveats-v1\",\"workflow_revision\":3},\"digest\":\"1a39a6c00c9e459da7510f93acc42e98aedf846675b544366c4e1235f30df663\"},\"predicate_type\":\"rea.analysis\",\"operation\":\"batch_decompile\",\"parameters\":{\"addresses\":[\"0x4ca5ac\",\"0x4cac0c\",\"0x4caa48\",\"0x4cb03c\"]},\"raw_result\":null,\"normalized_result\":{\"items\":[{\"address\":\"0x4ca5ac\",\"procedure\":{\"status\":\"resolved\",\"address\":\"0x4ca5ac\",\"name\":\"Edit_KanJub_K\"},\"status\":\"ok\",\"pseudocode\":\"\\r\\nvoid Edit_KanJub_K(void)\\r\\n\\r\\n{\\r\\n int *piVar1;\\r\\n undefined *puVar2;\\r\\n undefined4 uVar3;\\r\\n char cVar4;\\r\\n int iVar5;\\r\\n undefined4 unaff_EBX;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n undefined4 in_stack_00000004;\\r\\n char *pcVar6;\\r\\n undefined4 local_60;\\r\\n undefined4 *puStack_5c;\\r\\n undefined4 uStack_58;\\r\\n undefined4 uStack_54;\\r\\n undefined4 local_50;\\r\\n undefined4 uStack_4c;\\r\\n undefined4 uStack_48;\\r\\n undefined4 uStack_44;\\r\\n undefined *local_40;\\r\\n undefined4 uStack_3c;\\r\\n undefined *puStack_38;\\r\\n undefined4 uStack_34;\\r\\n undefined1 *local_30;\\r\\n undefined1 *puStack_2c;\\r\\n undefined4 uStack_28;\\r\\n undefined4 uStack_24;\\r\\n undefined1 *local_20;\\r\\n undefined1 *local_1c;\\r\\n int local_10;\\r\\n int *local_c;\\r\\n undefined4 uStack_8;\\r\\n \\r\\n puVar2 = PTR_DAT_004d2694;\\r\\n /* 0xca5ac 2 Edit_KanJub_K */\\r\\n local_1c = &stack0xfffffffc;\\r\\n local_10 = 0xb;\\r\\n do {\\r\\n uStack_8 = 0;\\r\\n local_10 = local_10 + -1;\\r\\n } while (local_10 != 0);\\r\\n local_20 = &LAB_004ca959;\\r\\n uStack_24 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_24;\\r\\n uStack_28 = 0x4ca5e1;\\r\\n _Forms_TApplication_SetHandle_qqrui(*(undefined4 *)_Forms_Application_exref,in_stack_00000004);\\r\\n uStack_28 = 0x4ca5e6;\\r\\n FUN_004097e8();\\r\\n uStack_28 = 0x41d0b852;\\r\\n puStack_2c = (undefined1 *)0x4ca5f0;\\r\\n cVar4 = FUN_00436418();\\r\\n if (cVar4 != '\\\\0') {\\r\\n puStack_2c = (undefined1 *)0x4ca60d;\\r\\n _Forms_TApplication_CreateForm_qqrp17System_TMetaClasspv\\r\\n (*(undefined4 *)_Forms_Application_exref,&PTR_LAB_004ca1dc,&local_c);\\r\\n puStack_2c = (undefined1 *)0x4ca61e;\\r\\n _System__FillChar_qqrpvic(PTR_DAT_004d26cc,0x10,0);\\r\\n local_30 = &LAB_004ca924;\\r\\n uStack_34 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_34;\\r\\n puStack_38 = (undefined *)0x4ca641;\\r\\n puStack_2c = &stack0xfffffffc;\\r\\n _System__LStrAsg_qqrpvpxv(PTR_DAT_004d2460,*(undefined4 *)(*(int *)PTR_DAT_004d25c8 + 0x38));\\r\\n puStack_38 = (undefined *)0x4ca653;\\r\\n _Apodset_TApolloTable_GetString_qqr17System_AnsiString\\r\\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\\\"PCODE\\\",&local_10);\\r\\n puStack_38 = (undefined *)0x4ca660;\\r\\n _System__LStrAsg_qqrpvpxv(PTR_DAT_004d2580,local_10);\\r\\n puStack_38 = (undefined *)0x4ca66e;\\r\\n _Db_TDataSet_Close_qqrv(local_c[0xc1]);\\r\\n puStack_38 = &DAT_004ca984;\\r\\n uStack_3c = 0x4ca685;\\r\\n _Apodset_TApolloTable_GetString_qqr17System_AnsiString\\r\\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\\\"PCODE\\\",&stack0xffffffe8);\\r\\n local_40 = &DAT_004ca990;\\r\\n uStack_44 = 0x4ca69a;\\r\\n _System__LStrCatN_qqrv(&stack0xffffffec,3);\\r\\n uStack_44 = 0x4ca6ab;\\r\\n _Apodset_TApolloTable_SetTableName_qqr17System_AnsiString(local_c[0xc1],unaff_EBX);\\r\\n uStack_44 = 0x4ca6b9;\\r\\n _Db_TDataSet_Open_qqrv(local_c[0xc1]);\\r\\n uStack_44 = 0x4ca6cb;\\r\\n _Apodset_TApolloTable_GetString_qqr17System_AnsiString\\r\\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\\\"PNAME\\\",&local_20);\\r\\n uStack_44 = 0x4ca6db;\\r\\n _System__LStrCat3_qqrv(&local_1c,&LAB_004ca9b0,local_20);\\r\\n uStack_44 = 0x4ca6e6;\\r\\n _Controls_TControl_SetText_qqrx17System_AnsiString(local_c,local_1c);\\r\\n uStack_44 = 0x4ca6f3;\\r\\n _Forms_TCustomForm_SetClientWidth_qqri(local_c,0x3ba);\\r\\n uStack_44 = 0x4ca709;\\r\\n _Controls_TSizeConstraints_SetConstraints_qqrii(local_c[0x1d],1,local_c[0x12]);\\r\\n uStack_44 = 5;\\r\\n uStack_48 = 0x4ca71f;\\r\\n FUN_004c9a98(&DAT_00586c44,5,&DAT_005e8624);\\r\\n uStack_48 = 0x4ca727;\\r\\n FUN_004cb564(local_c);\\r\\n uStack_48 = 0x4ca735;\\r\\n _Urmgrid_TRealGrid_Post_qqrv(local_c[0xc0]);\\r\\n uStack_48 = 0x4ca73f;\\r\\n FUN_004ce6c4(local_c,0);\\r\\n uStack_48 = 0x4ca752;\\r\\n _Urgrids_TwCustomGrid_SetSelectedIndex_qqri(local_c[0xc0],6);\\r\\n uStack_48 = 0x4ca763;\\r\\n _Forms_TCustomForm_SetActiveControl_qqrp20Controls_TWinControl(local_c,local_c[0xc0]);\\r\\n uStack_48 = 0x4ca774;\\r\\n FUN_004cddac(local_c,local_c[0xc0]);\\r\\n uStack_48 = 0x4ca789;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(local_c[0xc0],0xd,0);\\r\\n uStack_48 = 0x4ca78e;\\r\\n iVar5 = _Urmgrid_TwCells_GetLong_qqrv();\\r\\n if (iVar5 == 100) {\\r\\n uStack_48 = 0x4ca7a9;\\r\\n (**(code **)(*(int *)local_c[0xc0] + 0x128))((int *)local_c[0xc0],1);\\r\\n }\\r\\n uStack_48 = 0;\\r\\n uStack_4c = 0;\\r\\n local_50 = 0x4ca7c1;\\r\\n FUN_0043974c(1,\\\"Ind_Cost\\\",&DAT_004ca9d0);\\r\\n local_50 = 0x4ca7cc;\\r\\n (**(code **)(*local_c + 0xe8))();\\r\\n local_50 = 0;\\r\\n uStack_54 = 0;\\r\\n uStack_58 = 0x4ca7e4;\\r\\n FUN_0043974c(2,\\\"Ind_Cost\\\",&DAT_004ca9d0);\\r\\n uStack_58 = 0x4ca7ee;\\r\\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(*(int *)puVar2 + 0x20));\\r\\n piVar1 = (int *)local_c[0xc0];\\r\\n uStack_58 = 0x4ca801;\\r\\n iVar5 = (**(code **)(*piVar1 + 300))();\\r\\n uStack_58 = 0x4ca810;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,iVar5 + -1);\\r\\n uStack_58 = 0x4ca815;\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n uStack_58 = 0x4ca81d;\\r\\n _System__VarFromReal_qqrv(&local_30);\\r\\n uStack_58 = 0x4ca82f;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\\\"COSTW4\\\",&local_30);\\r\\n piVar1 = (int *)local_c[0xc0];\\r\\n uStack_58 = 0x4ca842;\\r\\n iVar5 = (**(code **)(*piVar1 + 300))();\\r\\n uStack_58 = 0x4ca851;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,iVar5 + -1);\\r\\n uStack_58 = 0x4ca856;\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n uStack_58 = 0x4ca85e;\\r\\n _System__VarFromReal_qqrv(&local_40);\\r\\n uStack_58 = 0x4ca870;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\\\"COSTW3\\\",&local_40);\\r\\n uStack_58 = 0x4ca87a;\\r\\n _System__VarFromBool_qqrr14System_Variantxo(&local_50,1);\\r\\n uStack_58 = 0x4ca88c;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\\\"PXXNM\\\",&local_50);\\r\\n uStack_58 = 0;\\r\\n puStack_5c = (undefined4 *)0x4ca898;\\r\\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(&local_60,0);\\r\\n puStack_5c = &local_60;\\r\\n local_60 = 1;\\r\\n pcVar6 = \\\"PRJ_MEMO\\\";\\r\\n FUN_0042a878(PTR_DAT_004d26cc + 0xc,*(int *)puVar2 + 0x20,*(undefined4 *)(PTR_DAT_004d26cc + 4),\\r\\n \\\"PRJ_MEMO\\\",1);\\r\\n _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(*(int *)puVar2 + 0x20));\\r\\n uVar3 = local_60;\\r\\n *in_FS_OFFSET = pcVar6;\\r\\n local_60 = 0x4ca92b;\\r\\n _Db_TDataSet_Close_qqrv(local_c[0xc1],pcVar6,uVar3);\\r\\n if (*(int *)(PTR_DAT_004d26cc + 0xc) != 0) {\\r\\n _System_TObject_Free_qqrv(*(int *)(PTR_DAT_004d26cc + 0xc),PTR_DAT_004d26cc);\\r\\n *(undefined4 *)(PTR_DAT_004d26cc + 0xc) = 0;\\r\\n }\\r\\n DELE_FILE();\\r\\n _System_TObject_Free_qqrv(local_c);\\r\\n return;\\r\\n }\\r\\n *in_FS_OFFSET = uStack_28;\\r\\n local_20 = &LAB_004ca960;\\r\\n uStack_24 = 0x4ca94b;\\r\\n _System__FinalizeArray_qqrpvt1ui(&local_60,__xp_14System_Variant_exref,4);\\r\\n uStack_24 = 0x4ca958;\\r\\n _System__LStrArrayClr_qqrpvi(&local_20,5);\\r\\n return;\\r\\n}\\r\\n\\r\\n\"},{\"address\":\"0x4cac0c\",\"procedure\":{\"status\":\"resolved\",\"address\":\"0x4cac0c\",\"name\":\"FUN_004cac0c\"},\"status\":\"ok\",\"pseudocode\":\"\\r\\nvoid FUN_004cac0c(int param_1)\\r\\n\\r\\n{\\r\\n int *piVar1;\\r\\n undefined4 *puVar2;\\r\\n undefined1 *puVar3;\\r\\n undefined4 uVar4;\\r\\n int iVar5;\\r\\n int unaff_EBX;\\r\\n int iVar6;\\r\\n undefined4 unaff_ESI;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n undefined4 local_3c;\\r\\n undefined1 local_38 [4];\\r\\n undefined4 uStack_34;\\r\\n undefined1 *puStack_30;\\r\\n undefined4 *puStack_2c;\\r\\n undefined4 local_28;\\r\\n undefined4 local_24;\\r\\n undefined1 *puStack_20;\\r\\n undefined1 *puStack_1c;\\r\\n undefined4 local_c;\\r\\n undefined4 local_8;\\r\\n \\r\\n puStack_1c = &stack0xfffffffc;\\r\\n iVar5 = 7;\\r\\n do {\\r\\n local_8 = 0;\\r\\n iVar5 = iVar5 + -1;\\r\\n } while (iVar5 != 0);\\r\\n puStack_20 = &LAB_004cad92;\\r\\n local_24 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &local_24;\\r\\n local_28 = 0x4cac44;\\r\\n _System__LStrCat3_qqrv(&local_8,&DAT_004cadac,*(undefined4 *)(PTR_DAT_004d26cc + 8));\\r\\n local_28 = 0x4cac54;\\r\\n (**(code **)(**(int **)(PTR_DAT_004d26cc + 0xc) + 0x4c))\\r\\n (*(int **)(PTR_DAT_004d26cc + 0xc),local_8);\\r\\n local_28 = 0x4cac6a;\\r\\n _System__LStrCat3_qqrv(&local_c,&LAB_004cadb8,*(undefined4 *)(PTR_DAT_004d26cc + 8));\\r\\n local_28 = 0x4cac7a;\\r\\n (**(code **)(**(int **)(PTR_DAT_004d26cc + 0xc) + 0x4c))\\r\\n (*(int **)(PTR_DAT_004d26cc + 0xc),local_c);\\r\\n piVar1 = *(int **)(param_1 + 0x300);\\r\\n local_28 = 0x4cac8a;\\r\\n iVar5 = (**(code **)(*piVar1 + 300))();\\r\\n if (-1 < iVar5 + -1) {\\r\\n iVar6 = 0;\\r\\n do {\\r\\n local_28 = 0x4caca6;\\r\\n uVar4 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar6);\\r\\n local_28 = 0x4cacae;\\r\\n _Urmgrid_TwCells_GetString_qqrv(uVar4,&stack0xffffffec);\\r\\n local_28 = 0x4cacb9;\\r\\n _Sysutils_Trim_qqrx17System_AnsiString(unaff_ESI,&stack0xfffffff0);\\r\\n if (unaff_EBX != 0) {\\r\\n local_28 = 3;\\r\\n puStack_2c = (undefined4 *)0x4cacd3;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,iVar6);\\r\\n puStack_2c = (undefined4 *)0x4cacd8;\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n puStack_2c = (undefined4 *)0x4cace0;\\r\\n _System__VarFromReal_qqrv(&local_24);\\r\\n puStack_2c = &local_24;\\r\\n puStack_30 = (undefined1 *)0x4cacf2;\\r\\n uVar4 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar6);\\r\\n puStack_30 = (undefined1 *)0x4cacfa;\\r\\n _Urmgrid_TwCells_GetString_qqrv(uVar4,&local_28);\\r\\n puVar2 = puStack_2c;\\r\\n puStack_2c = (undefined4 *)0x4cad08;\\r\\n FUN_004caa48(4,local_28,puVar2);\\r\\n puStack_2c = (undefined4 *)0x3;\\r\\n puStack_30 = (undefined1 *)0x4cad18;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,iVar6);\\r\\n puStack_30 = (undefined1 *)0x4cad1d;\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n puStack_30 = (undefined1 *)0x4cad25;\\r\\n _System__VarFromReal_qqrv(local_38);\\r\\n puStack_30 = local_38;\\r\\n uStack_34 = 0x4cad37;\\r\\n uVar4 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar6);\\r\\n uStack_34 = 0x4cad3f;\\r\\n _Urmgrid_TwCells_GetString_qqrv(uVar4,&local_3c);\\r\\n uVar4 = local_28;\\r\\n local_28 = 0x4cad4d;\\r\\n FUN_004caa48(2,local_3c,uVar4);\\r\\n }\\r\\n iVar6 = iVar6 + 1;\\r\\n iVar5 = iVar5 + -1;\\r\\n } while (iVar5 != 0);\\r\\n }\\r\\n puVar3 = puStack_1c;\\r\\n *in_FS_OFFSET = local_24;\\r\\n puStack_1c = &LAB_004cad99;\\r\\n puStack_20 = (undefined1 *)0x4cad6c;\\r\\n _System__LStrClr_qqrpv(&local_3c,local_24,puVar3);\\r\\n puStack_20 = (undefined1 *)0x4cad74;\\r\\n _System__VarClr_qqrr14System_Variant(local_38);\\r\\n puStack_20 = (undefined1 *)0x4cad7c;\\r\\n _System__LStrClr_qqrpv(&local_28);\\r\\n puStack_20 = (undefined1 *)0x4cad84;\\r\\n _System__VarClr_qqrr14System_Variant(&local_24);\\r\\n puStack_20 = (undefined1 *)0x4cad91;\\r\\n _System__LStrArrayClr_qqrpvi(&stack0xffffffec,4);\\r\\n return;\\r\\n}\\r\\n\\r\\n\"},{\"address\":\"0x4caa48\",\"procedure\":{\"status\":\"resolved\",\"address\":\"0x4caa48\",\"name\":\"FUN_004caa48\"},\"status\":\"ok\",\"pseudocode\":\"\\r\\nvoid FUN_004caa48(int param_1,int param_2,undefined4 *param_3,undefined4 param_4)\\r\\n\\r\\n{\\r\\n undefined1 *puVar1;\\r\\n int iVar2;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n undefined4 uVar3;\\r\\n undefined *puVar4;\\r\\n undefined4 uStack_44;\\r\\n undefined1 *puStack_40;\\r\\n undefined1 *puStack_3c;\\r\\n undefined4 local_2c;\\r\\n undefined4 local_28;\\r\\n undefined4 local_24;\\r\\n undefined4 local_20;\\r\\n undefined4 local_1c;\\r\\n undefined4 uStack_18;\\r\\n undefined4 uStack_14;\\r\\n undefined4 uStack_10;\\r\\n int local_8;\\r\\n \\r\\n local_28 = 0;\\r\\n local_2c = 0;\\r\\n local_20 = 0;\\r\\n local_24 = 0;\\r\\n local_1c = *param_3;\\r\\n uStack_18 = param_3[1];\\r\\n uStack_14 = param_3[2];\\r\\n uStack_10 = param_3[3];\\r\\n puStack_3c = (undefined1 *)0x4caa75;\\r\\n local_8 = param_2;\\r\\n _System__LStrAddRef_qqrpv(param_2);\\r\\n puStack_3c = (undefined1 *)0x4caa7d;\\r\\n _System__VarAddRef_qqrr14System_Variant(&local_1c);\\r\\n puStack_40 = &LAB_004cabbc;\\r\\n uStack_44 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_44;\\r\\n puStack_3c = &stack0xfffffffc;\\r\\n if (local_8 != 0) {\\r\\n puStack_3c = &stack0xfffffffc;\\r\\n iVar2 = _System__LStrPos_qqrv(&DAT_004cabd4,local_8);\\r\\n if (iVar2 == 1) {\\r\\n iVar2 = _System__LStrPos_qqrv(\\\"ADD_AMT_\\\",local_8);\\r\\n if (iVar2 == 1) {\\r\\n puVar4 = &DAT_004cabf8;\\r\\n uVar3 = *(undefined4 *)(PTR_PTR_004d25a0 + param_1 * 4);\\r\\n iVar2 = local_8;\\r\\n _System__LStrCatN_qqrv(&local_20,3);\\r\\n _System__LStrCat3_qqrv\\r\\n (&local_24,*(undefined4 *)(PTR_DAT_004d26cc + 8),&DAT_004cac04,0,param_4,&local_1c\\r\\n ,local_20,uVar3,puVar4,iVar2);\\r\\n uStack_44 = local_24;\\r\\n FUN_0042a878(PTR_DAT_004d26cc + 0xc,*(int *)PTR_DAT_004d2694 + 0x20,\\r\\n *(undefined4 *)(PTR_DAT_004d26cc + 4));\\r\\n }\\r\\n }\\r\\n else {\\r\\n _System__LStrCatN_qqrv(&local_28,3);\\r\\n _System__LStrCatN_qqrv(&local_2c,3);\\r\\n uStack_44 = local_2c;\\r\\n FUN_0042a878(PTR_DAT_004d26cc + 0xc,*(int *)PTR_DAT_004d2694 + 0x20,\\r\\n *(undefined4 *)(PTR_DAT_004d26cc + 4));\\r\\n }\\r\\n }\\r\\n puVar1 = puStack_3c;\\r\\n *in_FS_OFFSET = uStack_44;\\r\\n puStack_3c = &LAB_004cabc3;\\r\\n puStack_40 = (undefined1 *)0x4cabab;\\r\\n _System__LStrArrayClr_qqrpvi(&local_2c,4,puVar1);\\r\\n puStack_40 = (undefined1 *)0x4cabb3;\\r\\n _System__VarClr_qqrr14System_Variant(&local_1c);\\r\\n puStack_40 = (undefined1 *)0x4cabbb;\\r\\n _System__LStrClr_qqrpv(&local_8);\\r\\n return;\\r\\n}\\r\\n\\r\\n\"},{\"address\":\"0x4cb03c\",\"procedure\":{\"status\":\"resolved\",\"address\":\"0x4cb03c\",\"name\":\"FUN_004cb03c\"},\"status\":\"ok\",\"pseudocode\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n/* WARNING: Restarted to delay deadcode elimination for space: stack */\\r\\n\\r\\nvoid FUN_004cb03c(uint param_1,undefined4 param_2,undefined4 param_3,int param_4,short param_5,\\r\\n int param_6,int param_7,undefined4 param_8,int param_9)\\r\\n\\r\\n{\\r\\n int *piVar1;\\r\\n undefined1 *puVar2;\\r\\n int iVar3;\\r\\n int iVar4;\\r\\n int iVar5;\\r\\n int iVar6;\\r\\n int iVar7;\\r\\n int iVar8;\\r\\n undefined4 uVar9;\\r\\n undefined4 uVar10;\\r\\n int iVar11;\\r\\n undefined2 extraout_var;\\r\\n undefined4 unaff_EBX;\\r\\n double *pdVar12;\\r\\n undefined1 **unaff_ESI;\\r\\n undefined4 unaff_EDI;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n undefined1 uVar13;\\r\\n undefined1 **local_30;\\r\\n undefined4 local_2c;\\r\\n undefined4 local_28;\\r\\n undefined1 *puStack_24;\\r\\n undefined1 *local_20;\\r\\n undefined3 uVar14;\\r\\n \\r\\n iVar11 = 5;\\r\\n do {\\r\\n iVar11 = iVar11 + -1;\\r\\n } while (iVar11 != 0);\\r\\n LOCK();\\r\\n UNLOCK();\\r\\n for (iVar11 = param_6 * 2 + 1; -1 < iVar11; iVar11 = iVar11 + -1) {\\r\\n unaff_EDI = *(undefined4 *)(param_7 + iVar11 * 4);\\r\\n }\\r\\n pdVar12 = (double *)&stack0xffffffe4;\\r\\n local_20 = (undefined1 *)0x4cb07d;\\r\\n _System__LStrAddRef_qqrpv(param_2);\\r\\n local_20 = (undefined1 *)0x4cb085;\\r\\n _System__LStrAddRef_qqrpv(0);\\r\\n local_20 = (undefined1 *)0x4cb08d;\\r\\n _System__LStrAddRef_qqrpv(param_8);\\r\\n puStack_24 = &LAB_004cb426;\\r\\n local_28 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &local_28;\\r\\n if (-1 < param_6) {\\r\\n param_6 = param_6 + 1;\\r\\n do {\\r\\n if (_DAT_004cb43c < ABS((float10)*pdVar12)) {\\r\\n *(undefined4 *)pdVar12 = 0;\\r\\n *(undefined4 *)((int)pdVar12 + 4) = 0;\\r\\n }\\r\\n pdVar12 = pdVar12 + 1;\\r\\n param_6 = param_6 + -1;\\r\\n } while (param_6 != 0);\\r\\n }\\r\\n if ((param_1 < 2) ||\\r\\n (iVar11 = DAT_005e92e4, iVar3 = DAT_005e92e8, iVar4 = DAT_005e92ec, iVar5 = DAT_005e92f0,\\r\\n iVar6 = DAT_005e92f4, iVar7 = DAT_005e92f8, local_20 = &stack0xfffffffc,\\r\\n (double)CONCAT44(unaff_ESI,unaff_EDI) != 0.0)) {\\r\\n piVar1 = *(int **)(*(int *)(param_9 + -4) + 0x300);\\r\\n local_2c = 0;\\r\\n local_30 = (undefined1 **)0x4cb0f5;\\r\\n local_20 = &stack0xfffffffc;\\r\\n _Urmgrid_TRealGrid_AddRow_qqrooo(piVar1,1,0);\\r\\n local_30 = (undefined1 **)0x4cb0ff;\\r\\n iVar8 = (**(code **)(*piVar1 + 300))();\\r\\n iVar8 = iVar8 + -1;\\r\\n if ((param_4 == 0x28c) || (param_4 == 0xfb)) {\\r\\n local_30 = (undefined1 **)0x4cb11f;\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0,iVar8);\\r\\n local_30 = (undefined1 **)0x4cb129;\\r\\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,&DAT_004cb454);\\r\\n }\\r\\n else {\\r\\n uVar14 = (undefined3)((uint)unaff_ESI >> 8);\\r\\n if (param_1 == 0) {\\r\\n *(int *)(param_9 + -8) = *(int *)(param_9 + -8) + 1;\\r\\n local_30 = (undefined1 **)&stack0xffffffec;\\r\\n _System__LStrCopy_qqrv(&LAB_004cb460,(*(int *)(param_9 + -8) + -1) * 2 + 1,2);\\r\\n _System__LStrCat_qqrv(&local_20,&DAT_004cb4a4);\\r\\n unaff_ESI = (undefined1 **)CONCAT31(uVar14,0xb);\\r\\n _Sysutils_Format_qqrx17System_AnsiStringpx14System_TVarRecxi\\r\\n (&DAT_004cb4b0,&stack0xffffffe4,0);\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0,iVar8);\\r\\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,unaff_EBX);\\r\\n }\\r\\n else {\\r\\n *(int *)(param_9 + -0xc) = *(int *)(param_9 + -0xc) + 1;\\r\\n local_30 = &puStack_24;\\r\\n _Sysutils_IntToStr_qqri(*(undefined4 *)(param_9 + -0xc),&local_28);\\r\\n _System__LStrCat_qqrv(&local_28,&DAT_004cb4a4);\\r\\n unaff_ESI = (undefined1 **)CONCAT31(uVar14,0xb);\\r\\n _Sysutils_Format_qqrx17System_AnsiStringpx14System_TVarRecxi\\r\\n (&DAT_004cb4c0,&stack0xffffffe4,0);\\r\\n puVar2 = puStack_24;\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0,iVar8);\\r\\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,puVar2);\\r\\n }\\r\\n }\\r\\n local_30 = (undefined1 **)0x4cb1fd;\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,1,iVar8);\\r\\n local_30 = (undefined1 **)0x4cb205;\\r\\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,param_2);\\r\\n local_30 = (undefined1 **)0x4cb213;\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,2,iVar8);\\r\\n local_30 = (undefined1 **)0x4cb21b;\\r\\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,0);\\r\\n local_30 = unaff_ESI;\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,3,iVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,4,iVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,iVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,iVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar8);\\r\\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,param_8);\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xb,iVar8);\\r\\n _Urmgrid_TwCells_SetWord_qqrus(uVar9,CONCAT22(extraout_var,param_5));\\r\\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xd,iVar8);\\r\\n _Urmgrid_TwCells_SetLong_qqri(uVar9,param_4);\\r\\n uVar13 = 0;\\r\\n if ((param_5 == 1) && (uVar13 = _DAT_00597094 == 0.0, !(bool)uVar13)) {\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xc,iVar8);\\r\\n _Urmgrid_TwCells_SetFloat_qqrd();\\r\\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xc,iVar8);\\r\\n _Urmgrid_TwCells_GetFloat_qqrv();\\r\\n uVar13 = &stack0x00000000 == (undefined1 *)0x60;\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"0.000%;;#\\\",&local_30);\\r\\n _System__LStrCat3_qqrv(&local_2c,&DAT_004cb4e4,local_30);\\r\\n uVar9 = local_2c;\\r\\n uVar10 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,2,iVar8);\\r\\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar10,uVar9);\\r\\n }\\r\\n _System__LStrCmp_qqrv(param_8,\\\"C_DOSEOH\\\");\\r\\n iVar11 = DAT_005e92e4;\\r\\n iVar3 = DAT_005e92e8;\\r\\n iVar4 = DAT_005e92ec;\\r\\n iVar5 = DAT_005e92f0;\\r\\n iVar6 = DAT_005e92f4;\\r\\n iVar7 = iVar8;\\r\\n if (!(bool)uVar13) {\\r\\n local_2c = 0x4cb37b;\\r\\n _System__LStrCmp_qqrv(param_8,\\\"C_TOT_1\\\");\\r\\n iVar11 = iVar8;\\r\\n iVar3 = DAT_005e92e8;\\r\\n iVar4 = DAT_005e92ec;\\r\\n iVar5 = DAT_005e92f0;\\r\\n iVar6 = DAT_005e92f4;\\r\\n iVar7 = DAT_005e92f8;\\r\\n if (!(bool)uVar13) {\\r\\n local_2c = 0x4cb392;\\r\\n _System__LStrCmp_qqrv(param_8,\\\"C_IYUN\\\");\\r\\n iVar11 = DAT_005e92e4;\\r\\n iVar3 = iVar8;\\r\\n iVar4 = DAT_005e92ec;\\r\\n iVar5 = DAT_005e92f0;\\r\\n iVar6 = DAT_005e92f4;\\r\\n iVar7 = DAT_005e92f8;\\r\\n if (!(bool)uVar13) {\\r\\n local_2c = 0x4cb3a9;\\r\\n _System__LStrCmp_qqrv(param_8,\\\"C_KONGGUP\\\");\\r\\n iVar11 = DAT_005e92e4;\\r\\n iVar3 = DAT_005e92e8;\\r\\n iVar4 = iVar8;\\r\\n iVar5 = DAT_005e92f0;\\r\\n iVar6 = DAT_005e92f4;\\r\\n iVar7 = DAT_005e92f8;\\r\\n if (!(bool)uVar13) {\\r\\n local_2c = 0x4cb3c0;\\r\\n _System__LStrCmp_qqrv(param_8,\\\"C_BUGA\\\");\\r\\n iVar11 = DAT_005e92e4;\\r\\n iVar3 = DAT_005e92e8;\\r\\n iVar4 = DAT_005e92ec;\\r\\n iVar5 = iVar8;\\r\\n iVar6 = DAT_005e92f4;\\r\\n iVar7 = DAT_005e92f8;\\r\\n if (!(bool)uVar13) {\\r\\n local_2c = 0x4cb3d7;\\r\\n _System__LStrCmp_qqrv(param_8,\\\"C_DOGUP\\\");\\r\\n iVar11 = DAT_005e92e4;\\r\\n iVar3 = DAT_005e92e8;\\r\\n iVar4 = DAT_005e92ec;\\r\\n iVar5 = DAT_005e92f0;\\r\\n iVar6 = iVar8;\\r\\n iVar7 = DAT_005e92f8;\\r\\n if (!(bool)uVar13) {\\r\\n local_2c = 0x4cb3ee;\\r\\n _System__LStrCmp_qqrv(param_8,\\\"C_TOTAL\\\");\\r\\n iVar11 = DAT_005e92e4;\\r\\n iVar3 = DAT_005e92e8;\\r\\n iVar4 = DAT_005e92ec;\\r\\n iVar5 = DAT_005e92f0;\\r\\n iVar6 = DAT_005e92f4;\\r\\n iVar7 = DAT_005e92f8;\\r\\n if ((bool)uVar13) {\\r\\n iVar6 = iVar8;\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n DAT_005e92f8 = iVar7;\\r\\n DAT_005e92f4 = iVar6;\\r\\n DAT_005e92f0 = iVar5;\\r\\n DAT_005e92ec = iVar4;\\r\\n DAT_005e92e8 = iVar3;\\r\\n DAT_005e92e4 = iVar11;\\r\\n puVar2 = local_20;\\r\\n *in_FS_OFFSET = local_28;\\r\\n local_20 = &LAB_004cb42d;\\r\\n puStack_24 = (undefined1 *)0x4cb410;\\r\\n _System__LStrArrayClr_qqrpvi(&local_30,5,puVar2);\\r\\n puStack_24 = (undefined1 *)0x4cb41d;\\r\\n _System__LStrArrayClr_qqrpvi(&stack0xffffffec,3);\\r\\n puStack_24 = (undefined1 *)0x4cb425;\\r\\n _System__LStrClr_qqrpv(¶m_8);\\r\\n return;\\r\\n}\\r\\n\\r\\n\"}],\"total\":4,\"succeeded\":4,\"failed\":0},\"confidence\":\"derived\",\"authority\":\"shipped-artifact\",\"environment\":null,\"limitations\":[\"Derived by an REA composed workflow.\",\"Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.\",\"Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.\",\"Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.\",\"Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.\",\"Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.\",\"Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.\",\"Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically.\",\"Ghidra (ghidra 12.1.4) procedure_address: External functions and local thunks are distinct; procedure metadata identifies both and preserves a thunk target when Ghidra resolves one.\",\"Ghidra (ghidra 12.1.4) procedure_pseudo_code: External functions and functions without an analyzable body return null; other decompiler failures remain explicit.\",\"Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ca5cf (push 0x4ca959 followed by fs-segment stack chaining); handler 0x4ca959 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ca629 (push 0x4ca924 followed by fs-segment stack chaining); handler 0x4ca924 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4caa88 (push 0x4cabbc followed by fs-segment stack chaining); handler 0x4cabbc lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4cac2b (push 0x4cad92 followed by fs-segment stack chaining); handler 0x4cad92 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4cb098 (push 0x4cb426 followed by fs-segment stack chaining); handler 0x4cb426 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra (ghidra 12.1.4) procedure_pseudo_code: Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.\"],\"relationship_coverage\":null,\"locations\":[{\"kind\":\"address\",\"address\":\"0x4ca5ac\"},{\"kind\":\"address\",\"address\":\"0x4cac0c\"},{\"kind\":\"address\",\"address\":\"0x4caa48\"},{\"kind\":\"address\",\"address\":\"0x4cb03c\"}],\"evidence_links\":[]}"}], "structuredContent": {"evidence_id": "ev_5cb012b17eca081bd8827b442aa08408c9fbe24e36e36dbc0c0992f6ca6537aa", "subject": {"name": "ST_KanJub.CPM", "digest": {"sha256": "ef8d55b259b37916496e80cab6a4a2ba46216e0bd7c5199083dbda632bd50d03"}, "local_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_KanJub.CPM", "format": "pe", "architecture": "x86"}, "provider": {"id": "rea-workflow", "name": "REA composed investigation workflow", "version": "1"}, "analysis_profile": {"provider": {"id": "rea-workflow", "name": "REA composed investigation workflow", "version": "1"}, "parameters": {"upstream_analysis_profile": {"provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "parameters": {"target_kind": "executable", "target_format": "pe", "executable_role": "shared-library", "managed": false, "native_aot_metadata": {"contract_revision": "rtr-9.1-x64-pe-read-only-v5", "source_bytes": 134217728, "work_units": 67108864, "working_memory_bytes": 67108864, "report_bytes": 4194304}, "architecture": "x86", "available_architectures": ["x86"], "import_mode": "ephemeral-source-immutable", "pdb_observations": "program-info-v5", "annotation_policy": "atomic-function-entry-metadata-v1", "load_image_observations": "source-mappings-entry-context-v2", "function_body_evidence": "complete-inclusive-ranges-v1", "function_references": "complete-body-and-entry-reference-manager-v2", "call_relationship_coverage": "function-body-call-coverage-v5", "function_dossier_coverage": "observed-facets-and-call-relationships-v1", "string_inventory_evidence": "defined-data-coverage-v1", "location_resolution": "explicit-address-exact-entry-symbol-first-v3", "procedure_file_offset_resolution": "address-first-unique-target-source-mapping-v2", "instruction_flow_evidence": "decoded-return-pcode-v1", "instruction_references": "exact-address-incoming-without-synthetic-entry-v2", "function_boundary_observations": "ghidra-function-boundary-limitations-v4", "no_return_repair": "disabled-windows-p0", "process_launch": "official-headless-script-v1", "jump_table_evidence": "typed-case-default-blocks-v1", "decompiler_jump_loads": true, "loader": "auto-from-header", "language_id": "auto-from-header", "compiler_spec_id": "auto-default", "analyzer_preset": "ghidra-default"}, "digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b"}, "source_limitations": "provider-operation-caveats-v1", "workflow_revision": 3}, "digest": "1a39a6c00c9e459da7510f93acc42e98aedf846675b544366c4e1235f30df663"}, "predicate_type": "rea.analysis", "operation": "batch_decompile", "parameters": {"addresses": ["0x4ca5ac", "0x4cac0c", "0x4caa48", "0x4cb03c"]}, "raw_result": null, "normalized_result": {"items": [{"address": "0x4ca5ac", "procedure": {"status": "resolved", "address": "0x4ca5ac", "name": "Edit_KanJub_K"}, "status": "ok", "pseudocode": "\r\nvoid Edit_KanJub_K(void)\r\n\r\n{\r\n int *piVar1;\r\n undefined *puVar2;\r\n undefined4 uVar3;\r\n char cVar4;\r\n int iVar5;\r\n undefined4 unaff_EBX;\r\n undefined4 *in_FS_OFFSET;\r\n undefined4 in_stack_00000004;\r\n char *pcVar6;\r\n undefined4 local_60;\r\n undefined4 *puStack_5c;\r\n undefined4 uStack_58;\r\n undefined4 uStack_54;\r\n undefined4 local_50;\r\n undefined4 uStack_4c;\r\n undefined4 uStack_48;\r\n undefined4 uStack_44;\r\n undefined *local_40;\r\n undefined4 uStack_3c;\r\n undefined *puStack_38;\r\n undefined4 uStack_34;\r\n undefined1 *local_30;\r\n undefined1 *puStack_2c;\r\n undefined4 uStack_28;\r\n undefined4 uStack_24;\r\n undefined1 *local_20;\r\n undefined1 *local_1c;\r\n int local_10;\r\n int *local_c;\r\n undefined4 uStack_8;\r\n \r\n puVar2 = PTR_DAT_004d2694;\r\n /* 0xca5ac 2 Edit_KanJub_K */\r\n local_1c = &stack0xfffffffc;\r\n local_10 = 0xb;\r\n do {\r\n uStack_8 = 0;\r\n local_10 = local_10 + -1;\r\n } while (local_10 != 0);\r\n local_20 = &LAB_004ca959;\r\n uStack_24 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_24;\r\n uStack_28 = 0x4ca5e1;\r\n _Forms_TApplication_SetHandle_qqrui(*(undefined4 *)_Forms_Application_exref,in_stack_00000004);\r\n uStack_28 = 0x4ca5e6;\r\n FUN_004097e8();\r\n uStack_28 = 0x41d0b852;\r\n puStack_2c = (undefined1 *)0x4ca5f0;\r\n cVar4 = FUN_00436418();\r\n if (cVar4 != '\\0') {\r\n puStack_2c = (undefined1 *)0x4ca60d;\r\n _Forms_TApplication_CreateForm_qqrp17System_TMetaClasspv\r\n (*(undefined4 *)_Forms_Application_exref,&PTR_LAB_004ca1dc,&local_c);\r\n puStack_2c = (undefined1 *)0x4ca61e;\r\n _System__FillChar_qqrpvic(PTR_DAT_004d26cc,0x10,0);\r\n local_30 = &LAB_004ca924;\r\n uStack_34 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_34;\r\n puStack_38 = (undefined *)0x4ca641;\r\n puStack_2c = &stack0xfffffffc;\r\n _System__LStrAsg_qqrpvpxv(PTR_DAT_004d2460,*(undefined4 *)(*(int *)PTR_DAT_004d25c8 + 0x38));\r\n puStack_38 = (undefined *)0x4ca653;\r\n _Apodset_TApolloTable_GetString_qqr17System_AnsiString\r\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\"PCODE\",&local_10);\r\n puStack_38 = (undefined *)0x4ca660;\r\n _System__LStrAsg_qqrpvpxv(PTR_DAT_004d2580,local_10);\r\n puStack_38 = (undefined *)0x4ca66e;\r\n _Db_TDataSet_Close_qqrv(local_c[0xc1]);\r\n puStack_38 = &DAT_004ca984;\r\n uStack_3c = 0x4ca685;\r\n _Apodset_TApolloTable_GetString_qqr17System_AnsiString\r\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\"PCODE\",&stack0xffffffe8);\r\n local_40 = &DAT_004ca990;\r\n uStack_44 = 0x4ca69a;\r\n _System__LStrCatN_qqrv(&stack0xffffffec,3);\r\n uStack_44 = 0x4ca6ab;\r\n _Apodset_TApolloTable_SetTableName_qqr17System_AnsiString(local_c[0xc1],unaff_EBX);\r\n uStack_44 = 0x4ca6b9;\r\n _Db_TDataSet_Open_qqrv(local_c[0xc1]);\r\n uStack_44 = 0x4ca6cb;\r\n _Apodset_TApolloTable_GetString_qqr17System_AnsiString\r\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\"PNAME\",&local_20);\r\n uStack_44 = 0x4ca6db;\r\n _System__LStrCat3_qqrv(&local_1c,&LAB_004ca9b0,local_20);\r\n uStack_44 = 0x4ca6e6;\r\n _Controls_TControl_SetText_qqrx17System_AnsiString(local_c,local_1c);\r\n uStack_44 = 0x4ca6f3;\r\n _Forms_TCustomForm_SetClientWidth_qqri(local_c,0x3ba);\r\n uStack_44 = 0x4ca709;\r\n _Controls_TSizeConstraints_SetConstraints_qqrii(local_c[0x1d],1,local_c[0x12]);\r\n uStack_44 = 5;\r\n uStack_48 = 0x4ca71f;\r\n FUN_004c9a98(&DAT_00586c44,5,&DAT_005e8624);\r\n uStack_48 = 0x4ca727;\r\n FUN_004cb564(local_c);\r\n uStack_48 = 0x4ca735;\r\n _Urmgrid_TRealGrid_Post_qqrv(local_c[0xc0]);\r\n uStack_48 = 0x4ca73f;\r\n FUN_004ce6c4(local_c,0);\r\n uStack_48 = 0x4ca752;\r\n _Urgrids_TwCustomGrid_SetSelectedIndex_qqri(local_c[0xc0],6);\r\n uStack_48 = 0x4ca763;\r\n _Forms_TCustomForm_SetActiveControl_qqrp20Controls_TWinControl(local_c,local_c[0xc0]);\r\n uStack_48 = 0x4ca774;\r\n FUN_004cddac(local_c,local_c[0xc0]);\r\n uStack_48 = 0x4ca789;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(local_c[0xc0],0xd,0);\r\n uStack_48 = 0x4ca78e;\r\n iVar5 = _Urmgrid_TwCells_GetLong_qqrv();\r\n if (iVar5 == 100) {\r\n uStack_48 = 0x4ca7a9;\r\n (**(code **)(*(int *)local_c[0xc0] + 0x128))((int *)local_c[0xc0],1);\r\n }\r\n uStack_48 = 0;\r\n uStack_4c = 0;\r\n local_50 = 0x4ca7c1;\r\n FUN_0043974c(1,\"Ind_Cost\",&DAT_004ca9d0);\r\n local_50 = 0x4ca7cc;\r\n (**(code **)(*local_c + 0xe8))();\r\n local_50 = 0;\r\n uStack_54 = 0;\r\n uStack_58 = 0x4ca7e4;\r\n FUN_0043974c(2,\"Ind_Cost\",&DAT_004ca9d0);\r\n uStack_58 = 0x4ca7ee;\r\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(*(int *)puVar2 + 0x20));\r\n piVar1 = (int *)local_c[0xc0];\r\n uStack_58 = 0x4ca801;\r\n iVar5 = (**(code **)(*piVar1 + 300))();\r\n uStack_58 = 0x4ca810;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,iVar5 + -1);\r\n uStack_58 = 0x4ca815;\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n uStack_58 = 0x4ca81d;\r\n _System__VarFromReal_qqrv(&local_30);\r\n uStack_58 = 0x4ca82f;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\"COSTW4\",&local_30);\r\n piVar1 = (int *)local_c[0xc0];\r\n uStack_58 = 0x4ca842;\r\n iVar5 = (**(code **)(*piVar1 + 300))();\r\n uStack_58 = 0x4ca851;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,iVar5 + -1);\r\n uStack_58 = 0x4ca856;\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n uStack_58 = 0x4ca85e;\r\n _System__VarFromReal_qqrv(&local_40);\r\n uStack_58 = 0x4ca870;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\"COSTW3\",&local_40);\r\n uStack_58 = 0x4ca87a;\r\n _System__VarFromBool_qqrr14System_Variantxo(&local_50,1);\r\n uStack_58 = 0x4ca88c;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)puVar2 + 0x20),\"PXXNM\",&local_50);\r\n uStack_58 = 0;\r\n puStack_5c = (undefined4 *)0x4ca898;\r\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(&local_60,0);\r\n puStack_5c = &local_60;\r\n local_60 = 1;\r\n pcVar6 = \"PRJ_MEMO\";\r\n FUN_0042a878(PTR_DAT_004d26cc + 0xc,*(int *)puVar2 + 0x20,*(undefined4 *)(PTR_DAT_004d26cc + 4),\r\n \"PRJ_MEMO\",1);\r\n _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(*(int *)puVar2 + 0x20));\r\n uVar3 = local_60;\r\n *in_FS_OFFSET = pcVar6;\r\n local_60 = 0x4ca92b;\r\n _Db_TDataSet_Close_qqrv(local_c[0xc1],pcVar6,uVar3);\r\n if (*(int *)(PTR_DAT_004d26cc + 0xc) != 0) {\r\n _System_TObject_Free_qqrv(*(int *)(PTR_DAT_004d26cc + 0xc),PTR_DAT_004d26cc);\r\n *(undefined4 *)(PTR_DAT_004d26cc + 0xc) = 0;\r\n }\r\n DELE_FILE();\r\n _System_TObject_Free_qqrv(local_c);\r\n return;\r\n }\r\n *in_FS_OFFSET = uStack_28;\r\n local_20 = &LAB_004ca960;\r\n uStack_24 = 0x4ca94b;\r\n _System__FinalizeArray_qqrpvt1ui(&local_60,__xp_14System_Variant_exref,4);\r\n uStack_24 = 0x4ca958;\r\n _System__LStrArrayClr_qqrpvi(&local_20,5);\r\n return;\r\n}\r\n\r\n"}, {"address": "0x4cac0c", "procedure": {"status": "resolved", "address": "0x4cac0c", "name": "FUN_004cac0c"}, "status": "ok", "pseudocode": "\r\nvoid FUN_004cac0c(int param_1)\r\n\r\n{\r\n int *piVar1;\r\n undefined4 *puVar2;\r\n undefined1 *puVar3;\r\n undefined4 uVar4;\r\n int iVar5;\r\n int unaff_EBX;\r\n int iVar6;\r\n undefined4 unaff_ESI;\r\n undefined4 *in_FS_OFFSET;\r\n undefined4 local_3c;\r\n undefined1 local_38 [4];\r\n undefined4 uStack_34;\r\n undefined1 *puStack_30;\r\n undefined4 *puStack_2c;\r\n undefined4 local_28;\r\n undefined4 local_24;\r\n undefined1 *puStack_20;\r\n undefined1 *puStack_1c;\r\n undefined4 local_c;\r\n undefined4 local_8;\r\n \r\n puStack_1c = &stack0xfffffffc;\r\n iVar5 = 7;\r\n do {\r\n local_8 = 0;\r\n iVar5 = iVar5 + -1;\r\n } while (iVar5 != 0);\r\n puStack_20 = &LAB_004cad92;\r\n local_24 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &local_24;\r\n local_28 = 0x4cac44;\r\n _System__LStrCat3_qqrv(&local_8,&DAT_004cadac,*(undefined4 *)(PTR_DAT_004d26cc + 8));\r\n local_28 = 0x4cac54;\r\n (**(code **)(**(int **)(PTR_DAT_004d26cc + 0xc) + 0x4c))\r\n (*(int **)(PTR_DAT_004d26cc + 0xc),local_8);\r\n local_28 = 0x4cac6a;\r\n _System__LStrCat3_qqrv(&local_c,&LAB_004cadb8,*(undefined4 *)(PTR_DAT_004d26cc + 8));\r\n local_28 = 0x4cac7a;\r\n (**(code **)(**(int **)(PTR_DAT_004d26cc + 0xc) + 0x4c))\r\n (*(int **)(PTR_DAT_004d26cc + 0xc),local_c);\r\n piVar1 = *(int **)(param_1 + 0x300);\r\n local_28 = 0x4cac8a;\r\n iVar5 = (**(code **)(*piVar1 + 300))();\r\n if (-1 < iVar5 + -1) {\r\n iVar6 = 0;\r\n do {\r\n local_28 = 0x4caca6;\r\n uVar4 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar6);\r\n local_28 = 0x4cacae;\r\n _Urmgrid_TwCells_GetString_qqrv(uVar4,&stack0xffffffec);\r\n local_28 = 0x4cacb9;\r\n _Sysutils_Trim_qqrx17System_AnsiString(unaff_ESI,&stack0xfffffff0);\r\n if (unaff_EBX != 0) {\r\n local_28 = 3;\r\n puStack_2c = (undefined4 *)0x4cacd3;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,iVar6);\r\n puStack_2c = (undefined4 *)0x4cacd8;\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n puStack_2c = (undefined4 *)0x4cace0;\r\n _System__VarFromReal_qqrv(&local_24);\r\n puStack_2c = &local_24;\r\n puStack_30 = (undefined1 *)0x4cacf2;\r\n uVar4 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar6);\r\n puStack_30 = (undefined1 *)0x4cacfa;\r\n _Urmgrid_TwCells_GetString_qqrv(uVar4,&local_28);\r\n puVar2 = puStack_2c;\r\n puStack_2c = (undefined4 *)0x4cad08;\r\n FUN_004caa48(4,local_28,puVar2);\r\n puStack_2c = (undefined4 *)0x3;\r\n puStack_30 = (undefined1 *)0x4cad18;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,iVar6);\r\n puStack_30 = (undefined1 *)0x4cad1d;\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n puStack_30 = (undefined1 *)0x4cad25;\r\n _System__VarFromReal_qqrv(local_38);\r\n puStack_30 = local_38;\r\n uStack_34 = 0x4cad37;\r\n uVar4 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar6);\r\n uStack_34 = 0x4cad3f;\r\n _Urmgrid_TwCells_GetString_qqrv(uVar4,&local_3c);\r\n uVar4 = local_28;\r\n local_28 = 0x4cad4d;\r\n FUN_004caa48(2,local_3c,uVar4);\r\n }\r\n iVar6 = iVar6 + 1;\r\n iVar5 = iVar5 + -1;\r\n } while (iVar5 != 0);\r\n }\r\n puVar3 = puStack_1c;\r\n *in_FS_OFFSET = local_24;\r\n puStack_1c = &LAB_004cad99;\r\n puStack_20 = (undefined1 *)0x4cad6c;\r\n _System__LStrClr_qqrpv(&local_3c,local_24,puVar3);\r\n puStack_20 = (undefined1 *)0x4cad74;\r\n _System__VarClr_qqrr14System_Variant(local_38);\r\n puStack_20 = (undefined1 *)0x4cad7c;\r\n _System__LStrClr_qqrpv(&local_28);\r\n puStack_20 = (undefined1 *)0x4cad84;\r\n _System__VarClr_qqrr14System_Variant(&local_24);\r\n puStack_20 = (undefined1 *)0x4cad91;\r\n _System__LStrArrayClr_qqrpvi(&stack0xffffffec,4);\r\n return;\r\n}\r\n\r\n"}, {"address": "0x4caa48", "procedure": {"status": "resolved", "address": "0x4caa48", "name": "FUN_004caa48"}, "status": "ok", "pseudocode": "\r\nvoid FUN_004caa48(int param_1,int param_2,undefined4 *param_3,undefined4 param_4)\r\n\r\n{\r\n undefined1 *puVar1;\r\n int iVar2;\r\n undefined4 *in_FS_OFFSET;\r\n undefined4 uVar3;\r\n undefined *puVar4;\r\n undefined4 uStack_44;\r\n undefined1 *puStack_40;\r\n undefined1 *puStack_3c;\r\n undefined4 local_2c;\r\n undefined4 local_28;\r\n undefined4 local_24;\r\n undefined4 local_20;\r\n undefined4 local_1c;\r\n undefined4 uStack_18;\r\n undefined4 uStack_14;\r\n undefined4 uStack_10;\r\n int local_8;\r\n \r\n local_28 = 0;\r\n local_2c = 0;\r\n local_20 = 0;\r\n local_24 = 0;\r\n local_1c = *param_3;\r\n uStack_18 = param_3[1];\r\n uStack_14 = param_3[2];\r\n uStack_10 = param_3[3];\r\n puStack_3c = (undefined1 *)0x4caa75;\r\n local_8 = param_2;\r\n _System__LStrAddRef_qqrpv(param_2);\r\n puStack_3c = (undefined1 *)0x4caa7d;\r\n _System__VarAddRef_qqrr14System_Variant(&local_1c);\r\n puStack_40 = &LAB_004cabbc;\r\n uStack_44 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_44;\r\n puStack_3c = &stack0xfffffffc;\r\n if (local_8 != 0) {\r\n puStack_3c = &stack0xfffffffc;\r\n iVar2 = _System__LStrPos_qqrv(&DAT_004cabd4,local_8);\r\n if (iVar2 == 1) {\r\n iVar2 = _System__LStrPos_qqrv(\"ADD_AMT_\",local_8);\r\n if (iVar2 == 1) {\r\n puVar4 = &DAT_004cabf8;\r\n uVar3 = *(undefined4 *)(PTR_PTR_004d25a0 + param_1 * 4);\r\n iVar2 = local_8;\r\n _System__LStrCatN_qqrv(&local_20,3);\r\n _System__LStrCat3_qqrv\r\n (&local_24,*(undefined4 *)(PTR_DAT_004d26cc + 8),&DAT_004cac04,0,param_4,&local_1c\r\n ,local_20,uVar3,puVar4,iVar2);\r\n uStack_44 = local_24;\r\n FUN_0042a878(PTR_DAT_004d26cc + 0xc,*(int *)PTR_DAT_004d2694 + 0x20,\r\n *(undefined4 *)(PTR_DAT_004d26cc + 4));\r\n }\r\n }\r\n else {\r\n _System__LStrCatN_qqrv(&local_28,3);\r\n _System__LStrCatN_qqrv(&local_2c,3);\r\n uStack_44 = local_2c;\r\n FUN_0042a878(PTR_DAT_004d26cc + 0xc,*(int *)PTR_DAT_004d2694 + 0x20,\r\n *(undefined4 *)(PTR_DAT_004d26cc + 4));\r\n }\r\n }\r\n puVar1 = puStack_3c;\r\n *in_FS_OFFSET = uStack_44;\r\n puStack_3c = &LAB_004cabc3;\r\n puStack_40 = (undefined1 *)0x4cabab;\r\n _System__LStrArrayClr_qqrpvi(&local_2c,4,puVar1);\r\n puStack_40 = (undefined1 *)0x4cabb3;\r\n _System__VarClr_qqrr14System_Variant(&local_1c);\r\n puStack_40 = (undefined1 *)0x4cabbb;\r\n _System__LStrClr_qqrpv(&local_8);\r\n return;\r\n}\r\n\r\n"}, {"address": "0x4cb03c", "procedure": {"status": "resolved", "address": "0x4cb03c", "name": "FUN_004cb03c"}, "status": "ok", "pseudocode": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n/* WARNING: Restarted to delay deadcode elimination for space: stack */\r\n\r\nvoid FUN_004cb03c(uint param_1,undefined4 param_2,undefined4 param_3,int param_4,short param_5,\r\n int param_6,int param_7,undefined4 param_8,int param_9)\r\n\r\n{\r\n int *piVar1;\r\n undefined1 *puVar2;\r\n int iVar3;\r\n int iVar4;\r\n int iVar5;\r\n int iVar6;\r\n int iVar7;\r\n int iVar8;\r\n undefined4 uVar9;\r\n undefined4 uVar10;\r\n int iVar11;\r\n undefined2 extraout_var;\r\n undefined4 unaff_EBX;\r\n double *pdVar12;\r\n undefined1 **unaff_ESI;\r\n undefined4 unaff_EDI;\r\n undefined4 *in_FS_OFFSET;\r\n undefined1 uVar13;\r\n undefined1 **local_30;\r\n undefined4 local_2c;\r\n undefined4 local_28;\r\n undefined1 *puStack_24;\r\n undefined1 *local_20;\r\n undefined3 uVar14;\r\n \r\n iVar11 = 5;\r\n do {\r\n iVar11 = iVar11 + -1;\r\n } while (iVar11 != 0);\r\n LOCK();\r\n UNLOCK();\r\n for (iVar11 = param_6 * 2 + 1; -1 < iVar11; iVar11 = iVar11 + -1) {\r\n unaff_EDI = *(undefined4 *)(param_7 + iVar11 * 4);\r\n }\r\n pdVar12 = (double *)&stack0xffffffe4;\r\n local_20 = (undefined1 *)0x4cb07d;\r\n _System__LStrAddRef_qqrpv(param_2);\r\n local_20 = (undefined1 *)0x4cb085;\r\n _System__LStrAddRef_qqrpv(0);\r\n local_20 = (undefined1 *)0x4cb08d;\r\n _System__LStrAddRef_qqrpv(param_8);\r\n puStack_24 = &LAB_004cb426;\r\n local_28 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &local_28;\r\n if (-1 < param_6) {\r\n param_6 = param_6 + 1;\r\n do {\r\n if (_DAT_004cb43c < ABS((float10)*pdVar12)) {\r\n *(undefined4 *)pdVar12 = 0;\r\n *(undefined4 *)((int)pdVar12 + 4) = 0;\r\n }\r\n pdVar12 = pdVar12 + 1;\r\n param_6 = param_6 + -1;\r\n } while (param_6 != 0);\r\n }\r\n if ((param_1 < 2) ||\r\n (iVar11 = DAT_005e92e4, iVar3 = DAT_005e92e8, iVar4 = DAT_005e92ec, iVar5 = DAT_005e92f0,\r\n iVar6 = DAT_005e92f4, iVar7 = DAT_005e92f8, local_20 = &stack0xfffffffc,\r\n (double)CONCAT44(unaff_ESI,unaff_EDI) != 0.0)) {\r\n piVar1 = *(int **)(*(int *)(param_9 + -4) + 0x300);\r\n local_2c = 0;\r\n local_30 = (undefined1 **)0x4cb0f5;\r\n local_20 = &stack0xfffffffc;\r\n _Urmgrid_TRealGrid_AddRow_qqrooo(piVar1,1,0);\r\n local_30 = (undefined1 **)0x4cb0ff;\r\n iVar8 = (**(code **)(*piVar1 + 300))();\r\n iVar8 = iVar8 + -1;\r\n if ((param_4 == 0x28c) || (param_4 == 0xfb)) {\r\n local_30 = (undefined1 **)0x4cb11f;\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0,iVar8);\r\n local_30 = (undefined1 **)0x4cb129;\r\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,&DAT_004cb454);\r\n }\r\n else {\r\n uVar14 = (undefined3)((uint)unaff_ESI >> 8);\r\n if (param_1 == 0) {\r\n *(int *)(param_9 + -8) = *(int *)(param_9 + -8) + 1;\r\n local_30 = (undefined1 **)&stack0xffffffec;\r\n _System__LStrCopy_qqrv(&LAB_004cb460,(*(int *)(param_9 + -8) + -1) * 2 + 1,2);\r\n _System__LStrCat_qqrv(&local_20,&DAT_004cb4a4);\r\n unaff_ESI = (undefined1 **)CONCAT31(uVar14,0xb);\r\n _Sysutils_Format_qqrx17System_AnsiStringpx14System_TVarRecxi\r\n (&DAT_004cb4b0,&stack0xffffffe4,0);\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0,iVar8);\r\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,unaff_EBX);\r\n }\r\n else {\r\n *(int *)(param_9 + -0xc) = *(int *)(param_9 + -0xc) + 1;\r\n local_30 = &puStack_24;\r\n _Sysutils_IntToStr_qqri(*(undefined4 *)(param_9 + -0xc),&local_28);\r\n _System__LStrCat_qqrv(&local_28,&DAT_004cb4a4);\r\n unaff_ESI = (undefined1 **)CONCAT31(uVar14,0xb);\r\n _Sysutils_Format_qqrx17System_AnsiStringpx14System_TVarRecxi\r\n (&DAT_004cb4c0,&stack0xffffffe4,0);\r\n puVar2 = puStack_24;\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0,iVar8);\r\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,puVar2);\r\n }\r\n }\r\n local_30 = (undefined1 **)0x4cb1fd;\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,1,iVar8);\r\n local_30 = (undefined1 **)0x4cb205;\r\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,param_2);\r\n local_30 = (undefined1 **)0x4cb213;\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,2,iVar8);\r\n local_30 = (undefined1 **)0x4cb21b;\r\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,0);\r\n local_30 = unaff_ESI;\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,3,iVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,4,iVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,6,iVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,8,iVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,10,iVar8);\r\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar9,param_8);\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xb,iVar8);\r\n _Urmgrid_TwCells_SetWord_qqrus(uVar9,CONCAT22(extraout_var,param_5));\r\n uVar9 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xd,iVar8);\r\n _Urmgrid_TwCells_SetLong_qqri(uVar9,param_4);\r\n uVar13 = 0;\r\n if ((param_5 == 1) && (uVar13 = _DAT_00597094 == 0.0, !(bool)uVar13)) {\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xc,iVar8);\r\n _Urmgrid_TwCells_SetFloat_qqrd();\r\n _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,0xc,iVar8);\r\n _Urmgrid_TwCells_GetFloat_qqrv();\r\n uVar13 = &stack0x00000000 == (undefined1 *)0x60;\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"0.000%;;#\",&local_30);\r\n _System__LStrCat3_qqrv(&local_2c,&DAT_004cb4e4,local_30);\r\n uVar9 = local_2c;\r\n uVar10 = _Urmgrid_TRealGrid_GetCells_qqrii(piVar1,2,iVar8);\r\n _Urmgrid_TwCells_SetString_qqrx17System_AnsiString(uVar10,uVar9);\r\n }\r\n _System__LStrCmp_qqrv(param_8,\"C_DOSEOH\");\r\n iVar11 = DAT_005e92e4;\r\n iVar3 = DAT_005e92e8;\r\n iVar4 = DAT_005e92ec;\r\n iVar5 = DAT_005e92f0;\r\n iVar6 = DAT_005e92f4;\r\n iVar7 = iVar8;\r\n if (!(bool)uVar13) {\r\n local_2c = 0x4cb37b;\r\n _System__LStrCmp_qqrv(param_8,\"C_TOT_1\");\r\n iVar11 = iVar8;\r\n iVar3 = DAT_005e92e8;\r\n iVar4 = DAT_005e92ec;\r\n iVar5 = DAT_005e92f0;\r\n iVar6 = DAT_005e92f4;\r\n iVar7 = DAT_005e92f8;\r\n if (!(bool)uVar13) {\r\n local_2c = 0x4cb392;\r\n _System__LStrCmp_qqrv(param_8,\"C_IYUN\");\r\n iVar11 = DAT_005e92e4;\r\n iVar3 = iVar8;\r\n iVar4 = DAT_005e92ec;\r\n iVar5 = DAT_005e92f0;\r\n iVar6 = DAT_005e92f4;\r\n iVar7 = DAT_005e92f8;\r\n if (!(bool)uVar13) {\r\n local_2c = 0x4cb3a9;\r\n _System__LStrCmp_qqrv(param_8,\"C_KONGGUP\");\r\n iVar11 = DAT_005e92e4;\r\n iVar3 = DAT_005e92e8;\r\n iVar4 = iVar8;\r\n iVar5 = DAT_005e92f0;\r\n iVar6 = DAT_005e92f4;\r\n iVar7 = DAT_005e92f8;\r\n if (!(bool)uVar13) {\r\n local_2c = 0x4cb3c0;\r\n _System__LStrCmp_qqrv(param_8,\"C_BUGA\");\r\n iVar11 = DAT_005e92e4;\r\n iVar3 = DAT_005e92e8;\r\n iVar4 = DAT_005e92ec;\r\n iVar5 = iVar8;\r\n iVar6 = DAT_005e92f4;\r\n iVar7 = DAT_005e92f8;\r\n if (!(bool)uVar13) {\r\n local_2c = 0x4cb3d7;\r\n _System__LStrCmp_qqrv(param_8,\"C_DOGUP\");\r\n iVar11 = DAT_005e92e4;\r\n iVar3 = DAT_005e92e8;\r\n iVar4 = DAT_005e92ec;\r\n iVar5 = DAT_005e92f0;\r\n iVar6 = iVar8;\r\n iVar7 = DAT_005e92f8;\r\n if (!(bool)uVar13) {\r\n local_2c = 0x4cb3ee;\r\n _System__LStrCmp_qqrv(param_8,\"C_TOTAL\");\r\n iVar11 = DAT_005e92e4;\r\n iVar3 = DAT_005e92e8;\r\n iVar4 = DAT_005e92ec;\r\n iVar5 = DAT_005e92f0;\r\n iVar6 = DAT_005e92f4;\r\n iVar7 = DAT_005e92f8;\r\n if ((bool)uVar13) {\r\n iVar6 = iVar8;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n DAT_005e92f8 = iVar7;\r\n DAT_005e92f4 = iVar6;\r\n DAT_005e92f0 = iVar5;\r\n DAT_005e92ec = iVar4;\r\n DAT_005e92e8 = iVar3;\r\n DAT_005e92e4 = iVar11;\r\n puVar2 = local_20;\r\n *in_FS_OFFSET = local_28;\r\n local_20 = &LAB_004cb42d;\r\n puStack_24 = (undefined1 *)0x4cb410;\r\n _System__LStrArrayClr_qqrpvi(&local_30,5,puVar2);\r\n puStack_24 = (undefined1 *)0x4cb41d;\r\n _System__LStrArrayClr_qqrpvi(&stack0xffffffec,3);\r\n puStack_24 = (undefined1 *)0x4cb425;\r\n _System__LStrClr_qqrpv(¶m_8);\r\n return;\r\n}\r\n\r\n"}], "total": 4, "succeeded": 4, "failed": 0}, "confidence": "derived", "authority": "shipped-artifact", "environment": null, "limitations": ["Derived by an REA composed workflow.", "Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", "Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", "Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.", "Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", "Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", "Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.", "Ghidra (ghidra 12.1.4) address_name, procedure_address, procedure_pseudo_code: Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically.", "Ghidra (ghidra 12.1.4) procedure_address: External functions and local thunks are distinct; procedure metadata identifies both and preserves a thunk target when Ghidra resolves one.", "Ghidra (ghidra 12.1.4) procedure_pseudo_code: External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", "Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ca5cf (push 0x4ca959 followed by fs-segment stack chaining); handler 0x4ca959 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4ca629 (push 0x4ca924 followed by fs-segment stack chaining); handler 0x4ca924 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4caa88 (push 0x4cabbc followed by fs-segment stack chaining); handler 0x4cabbc lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4cac2b (push 0x4cad92 followed by fs-segment stack chaining); handler 0x4cad92 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra (ghidra 12.1.4) procedure_pseudo_code: Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4cb098 (push 0x4cb426 followed by fs-segment stack chaining); handler 0x4cb426 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra (ghidra 12.1.4) procedure_pseudo_code: Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output."], "relationship_coverage": null, "locations": [{"kind": "address", "address": "0x4ca5ac"}, {"kind": "address", "address": "0x4cac0c"}, {"kind": "address", "address": "0x4caa48"}, {"kind": "address", "address": "0x4cb03c"}], "evidence_links": []}}, "jsonrpc": "2.0", "id": 20} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Main_0x455e68_kanjub_section_copy.ghidra.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Main_0x455e68_kanjub_section_copy.ghidra.json new file mode 100644 index 000000000..303552b7f --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Main_0x455e68_kanjub_section_copy.ghidra.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_b3d6f6955450844567af12414a66ee2d19ef7ce45a099a31142f3f996e870e10\",\"subject\":{\"name\":\"STmate.Cpm\",\"digest\":{\"sha256\":\"99d5c05675ba1399c51a71db8e26ebd5ff39fd78d02360147c7705deb399b5f5\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\STmate.Cpm\",\"format\":\"pe\",\"architecture\":\"x86\"},\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"analysis_profile\":{\"provider\":{\"id\":\"ghidra\",\"name\":\"Ghidra\",\"version\":\"12.1.4\"},\"parameters\":{\"target_kind\":\"executable\",\"target_format\":\"pe\",\"executable_role\":\"application\",\"managed\":false,\"native_aot_metadata\":{\"contract_revision\":\"rtr-9.1-x64-pe-read-only-v5\",\"source_bytes\":134217728,\"work_units\":67108864,\"working_memory_bytes\":67108864,\"report_bytes\":4194304},\"architecture\":\"x86\",\"available_architectures\":[\"x86\"],\"import_mode\":\"ephemeral-source-immutable\",\"pdb_observations\":\"program-info-v5\",\"annotation_policy\":\"atomic-function-entry-metadata-v1\",\"load_image_observations\":\"source-mappings-entry-context-v2\",\"function_body_evidence\":\"complete-inclusive-ranges-v1\",\"function_references\":\"complete-body-and-entry-reference-manager-v2\",\"call_relationship_coverage\":\"function-body-call-coverage-v5\",\"function_dossier_coverage\":\"observed-facets-and-call-relationships-v1\",\"string_inventory_evidence\":\"defined-data-coverage-v1\",\"location_resolution\":\"explicit-address-exact-entry-symbol-first-v3\",\"procedure_file_offset_resolution\":\"address-first-unique-target-source-mapping-v2\",\"instruction_flow_evidence\":\"decoded-return-pcode-v1\",\"instruction_references\":\"exact-address-incoming-without-synthetic-entry-v2\",\"function_boundary_observations\":\"ghidra-function-boundary-limitations-v4\",\"no_return_repair\":\"disabled-windows-p0\",\"process_launch\":\"official-headless-script-v1\",\"jump_table_evidence\":\"typed-case-default-blocks-v1\",\"decompiler_jump_loads\":true,\"loader\":\"auto-from-header\",\"language_id\":\"auto-from-header\",\"compiler_spec_id\":\"auto-default\",\"analyzer_preset\":\"ghidra-default\"},\"digest\":\"3de5374fadd78e0d56219c4afc6b4f2efac7101ff92b72faf375fb0070bbc896\"},\"predicate_type\":\"rea.analysis\",\"operation\":\"procedure_pseudo_code\",\"parameters\":{\"procedure\":\"0x455e68\"},\"raw_result\":{\"value\":\"\\r\\nvoid FUN_00455e68(undefined4 param_1,undefined1 param_2,undefined4 param_3,undefined4 param_4,\\r\\n undefined4 param_5,int param_6,undefined4 param_7)\\r\\n\\r\\n{\\r\\n undefined4 *puVar1;\\r\\n undefined1 *puVar2;\\r\\n int iVar3;\\r\\n undefined4 uVar4;\\r\\n int iVar5;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n undefined1 uVar6;\\r\\n undefined1 local_290 [132];\\r\\n undefined4 local_20c;\\r\\n undefined4 local_208;\\r\\n undefined4 local_204;\\r\\n int local_200;\\r\\n undefined4 local_1fc;\\r\\n int local_1f8;\\r\\n undefined1 local_1f4 [432];\\r\\n undefined4 uStack_44;\\r\\n int iStack_40;\\r\\n undefined4 *puStack_3c;\\r\\n undefined4 *puStack_38;\\r\\n undefined4 uStack_34;\\r\\n undefined1 *puStack_30;\\r\\n undefined1 *puStack_2c;\\r\\n undefined1 *puStack_28;\\r\\n undefined1 *puStack_24;\\r\\n undefined1 *puStack_20;\\r\\n undefined4 local_10;\\r\\n undefined3 uStack_c;\\r\\n undefined1 local_9;\\r\\n undefined4 local_8;\\r\\n \\r\\n iVar5 = 0x51;\\r\\n do {\\r\\n iVar5 = iVar5 + -1;\\r\\n } while (iVar5 != 0);\\r\\n LOCK();\\r\\n UNLOCK();\\r\\n local_10 = 0;\\r\\n uStack_c = 0;\\r\\n puStack_20 = (undefined1 *)0x455e8f;\\r\\n local_8 = param_1;\\r\\n local_9 = param_2;\\r\\n _System__LStrAddRef_qqrpv(param_1);\\r\\n puStack_20 = (undefined1 *)0x455e97;\\r\\n _System__LStrAddRef_qqrpv(local_10);\\r\\n puStack_20 = (undefined1 *)0x455e9f;\\r\\n _System__LStrAddRef_qqrpv(param_7);\\r\\n puStack_24 = &LAB_00456963;\\r\\n puStack_28 = (undefined1 *)*in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &puStack_28;\\r\\n puStack_2c = (undefined1 *)0x455eb8;\\r\\n puStack_20 = &stack0xfffffffc;\\r\\n _System__LStrAsg_qqrpvpxv(param_4,local_8);\\r\\n puStack_2c = (undefined1 *)0x455ec6;\\r\\n _Sysutils_Trim_qqrx17System_AnsiString(local_8,&local_1f8);\\r\\n if (local_1f8 != 0) {\\r\\n uVar6 = param_6 == 4;\\r\\n if (!(bool)uVar6) {\\r\\n puStack_2c = (undefined1 *)0x455ee3;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_1fc,local_9);\\r\\n puStack_2c = (undefined1 *)0x455ef1;\\r\\n _System__LStrCmp_qqrv(local_1fc,local_10);\\r\\n if ((bool)uVar6) {\\r\\n puStack_2c = (undefined1 *)0x455f01;\\r\\n _Sysutils_Trim_qqrx17System_AnsiString(param_7,&local_200);\\r\\n if (local_200 == 0) goto LAB_00455f0a;\\r\\n }\\r\\n }\\r\\n puStack_30 = &LAB_0045609d;\\r\\n uStack_34 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_34;\\r\\n puStack_38 = (undefined4 *)0x455f6d;\\r\\n puStack_2c = &stack0xfffffffc;\\r\\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\\r\\n (&local_208,*(int *)PTR_DAT_005e5e7c + 0x156d);\\r\\n puStack_38 = (undefined4 *)0x455f7d;\\r\\n _System__LStrCat_qqrv(&local_208,\\\"PRJ_MEMO.INI\\\");\\r\\n puStack_38 = (undefined4 *)0x455f8e;\\r\\n _System__Assign_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_208);\\r\\n puStack_38 = (undefined4 *)0x455f99;\\r\\n _System__RewritText_qqrr15System_TTextRec(local_1f4);\\r\\n puStack_38 = (undefined4 *)0x455f9e;\\r\\n _System___IOTest_qqrv();\\r\\n while( true ) {\\r\\n puStack_38 = (undefined4 *)0x45605f;\\r\\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n if (iVar5 < 1) break;\\r\\n puStack_38 = &local_20c;\\r\\n puStack_3c = (undefined4 *)0x455fb7;\\r\\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n puStack_3c = (undefined4 *)0x455fc7;\\r\\n _System__LStrCopy_qqrv(local_8,1,iVar5 + -1);\\r\\n puStack_3c = (undefined4 *)0x455fd8;\\r\\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_20c);\\r\\n puStack_3c = (undefined4 *)0x455fdd;\\r\\n _System__WriteLn_qqrr15System_TTextRec();\\r\\n puStack_3c = (undefined4 *)0x455fe2;\\r\\n _System___IOTest_qqrv();\\r\\n puStack_3c = (undefined4 *)0x455fef;\\r\\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n puStack_3c = (undefined4 *)0x455ffe;\\r\\n iVar3 = _System__LStrPos_qqrv(&DAT_004569a0,local_8);\\r\\n if (iVar5 == iVar3) {\\r\\n puStack_3c = &local_8;\\r\\n iStack_40 = 0x456013;\\r\\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n iStack_40 = iStack_40 + 2;\\r\\n uStack_44 = 0x45601f;\\r\\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\\r\\n puVar1 = puStack_38;\\r\\n puStack_38 = (undefined4 *)0x45602a;\\r\\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\\r\\n }\\r\\n else {\\r\\n puStack_3c = &local_8;\\r\\n iStack_40 = 0x45603d;\\r\\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n iStack_40 = iStack_40 + 1;\\r\\n uStack_44 = 0x456047;\\r\\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\\r\\n puVar1 = puStack_38;\\r\\n puStack_38 = (undefined4 *)0x456052;\\r\\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\\r\\n }\\r\\n }\\r\\n puStack_38 = (undefined4 *)0x456075;\\r\\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_8);\\r\\n puStack_38 = (undefined4 *)0x45607a;\\r\\n _System__WriteLn_qqrr15System_TTextRec();\\r\\n puStack_38 = (undefined4 *)0x45607f;\\r\\n _System___IOTest_qqrv();\\r\\n puVar2 = puStack_2c;\\r\\n *in_FS_OFFSET = uStack_34;\\r\\n puStack_2c = &LAB_004560a4;\\r\\n puStack_30 = (undefined1 *)0x456097;\\r\\n _System__Close_qqrr15System_TTextRec(local_1f4,uStack_34,puVar2);\\r\\n puStack_30 = (undefined1 *)0x45609c;\\r\\n _System___IOTest_qqrv();\\r\\n return;\\r\\n }\\r\\nLAB_00455f0a:\\r\\n puStack_2c = (undefined1 *)0x0;\\r\\n puStack_30 = (undefined1 *)0x455f25;\\r\\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\\r\\n (&local_204,*(int *)PTR_DAT_005e5e7c + 0x156d);\\r\\n puStack_30 = (undefined1 *)0x455f35;\\r\\n _System__LStrCat_qqrv(&local_204,\\\"PRJ_MEMO.INI\\\");\\r\\n puStack_30 = (undefined1 *)local_204;\\r\\n uStack_34 = 0x455f41;\\r\\n DELE_FILE();\\r\\n puVar2 = puStack_28;\\r\\n *in_FS_OFFSET = puStack_30;\\r\\n puStack_28 = &LAB_0045696a;\\r\\n puStack_2c = (undefined1 *)0x45694a;\\r\\n _System__LStrArrayClr_qqrpvi(local_290,0x27,puVar2);\\r\\n puStack_2c = (undefined1 *)0x456952;\\r\\n _System__LStrClr_qqrpv(&local_10);\\r\\n puStack_2c = (undefined1 *)0x45695a;\\r\\n _System__LStrClr_qqrpv(&local_8);\\r\\n puStack_2c = (undefined1 *)0x456962;\\r\\n _System__LStrClr_qqrpv(¶m_7);\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"limitations\":[\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455eaa (push 0x456963 followed by fs-segment stack chaining); handler 0x456963 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455f51 (push 0x45609d followed by fs-segment stack chaining); handler 0x45609d lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\"]},\"normalized_result\":\"\\r\\nvoid FUN_00455e68(undefined4 param_1,undefined1 param_2,undefined4 param_3,undefined4 param_4,\\r\\n undefined4 param_5,int param_6,undefined4 param_7)\\r\\n\\r\\n{\\r\\n undefined4 *puVar1;\\r\\n undefined1 *puVar2;\\r\\n int iVar3;\\r\\n undefined4 uVar4;\\r\\n int iVar5;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n undefined1 uVar6;\\r\\n undefined1 local_290 [132];\\r\\n undefined4 local_20c;\\r\\n undefined4 local_208;\\r\\n undefined4 local_204;\\r\\n int local_200;\\r\\n undefined4 local_1fc;\\r\\n int local_1f8;\\r\\n undefined1 local_1f4 [432];\\r\\n undefined4 uStack_44;\\r\\n int iStack_40;\\r\\n undefined4 *puStack_3c;\\r\\n undefined4 *puStack_38;\\r\\n undefined4 uStack_34;\\r\\n undefined1 *puStack_30;\\r\\n undefined1 *puStack_2c;\\r\\n undefined1 *puStack_28;\\r\\n undefined1 *puStack_24;\\r\\n undefined1 *puStack_20;\\r\\n undefined4 local_10;\\r\\n undefined3 uStack_c;\\r\\n undefined1 local_9;\\r\\n undefined4 local_8;\\r\\n \\r\\n iVar5 = 0x51;\\r\\n do {\\r\\n iVar5 = iVar5 + -1;\\r\\n } while (iVar5 != 0);\\r\\n LOCK();\\r\\n UNLOCK();\\r\\n local_10 = 0;\\r\\n uStack_c = 0;\\r\\n puStack_20 = (undefined1 *)0x455e8f;\\r\\n local_8 = param_1;\\r\\n local_9 = param_2;\\r\\n _System__LStrAddRef_qqrpv(param_1);\\r\\n puStack_20 = (undefined1 *)0x455e97;\\r\\n _System__LStrAddRef_qqrpv(local_10);\\r\\n puStack_20 = (undefined1 *)0x455e9f;\\r\\n _System__LStrAddRef_qqrpv(param_7);\\r\\n puStack_24 = &LAB_00456963;\\r\\n puStack_28 = (undefined1 *)*in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &puStack_28;\\r\\n puStack_2c = (undefined1 *)0x455eb8;\\r\\n puStack_20 = &stack0xfffffffc;\\r\\n _System__LStrAsg_qqrpvpxv(param_4,local_8);\\r\\n puStack_2c = (undefined1 *)0x455ec6;\\r\\n _Sysutils_Trim_qqrx17System_AnsiString(local_8,&local_1f8);\\r\\n if (local_1f8 != 0) {\\r\\n uVar6 = param_6 == 4;\\r\\n if (!(bool)uVar6) {\\r\\n puStack_2c = (undefined1 *)0x455ee3;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_1fc,local_9);\\r\\n puStack_2c = (undefined1 *)0x455ef1;\\r\\n _System__LStrCmp_qqrv(local_1fc,local_10);\\r\\n if ((bool)uVar6) {\\r\\n puStack_2c = (undefined1 *)0x455f01;\\r\\n _Sysutils_Trim_qqrx17System_AnsiString(param_7,&local_200);\\r\\n if (local_200 == 0) goto LAB_00455f0a;\\r\\n }\\r\\n }\\r\\n puStack_30 = &LAB_0045609d;\\r\\n uStack_34 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &uStack_34;\\r\\n puStack_38 = (undefined4 *)0x455f6d;\\r\\n puStack_2c = &stack0xfffffffc;\\r\\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\\r\\n (&local_208,*(int *)PTR_DAT_005e5e7c + 0x156d);\\r\\n puStack_38 = (undefined4 *)0x455f7d;\\r\\n _System__LStrCat_qqrv(&local_208,\\\"PRJ_MEMO.INI\\\");\\r\\n puStack_38 = (undefined4 *)0x455f8e;\\r\\n _System__Assign_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_208);\\r\\n puStack_38 = (undefined4 *)0x455f99;\\r\\n _System__RewritText_qqrr15System_TTextRec(local_1f4);\\r\\n puStack_38 = (undefined4 *)0x455f9e;\\r\\n _System___IOTest_qqrv();\\r\\n while( true ) {\\r\\n puStack_38 = (undefined4 *)0x45605f;\\r\\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n if (iVar5 < 1) break;\\r\\n puStack_38 = &local_20c;\\r\\n puStack_3c = (undefined4 *)0x455fb7;\\r\\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n puStack_3c = (undefined4 *)0x455fc7;\\r\\n _System__LStrCopy_qqrv(local_8,1,iVar5 + -1);\\r\\n puStack_3c = (undefined4 *)0x455fd8;\\r\\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_20c);\\r\\n puStack_3c = (undefined4 *)0x455fdd;\\r\\n _System__WriteLn_qqrr15System_TTextRec();\\r\\n puStack_3c = (undefined4 *)0x455fe2;\\r\\n _System___IOTest_qqrv();\\r\\n puStack_3c = (undefined4 *)0x455fef;\\r\\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n puStack_3c = (undefined4 *)0x455ffe;\\r\\n iVar3 = _System__LStrPos_qqrv(&DAT_004569a0,local_8);\\r\\n if (iVar5 == iVar3) {\\r\\n puStack_3c = &local_8;\\r\\n iStack_40 = 0x456013;\\r\\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n iStack_40 = iStack_40 + 2;\\r\\n uStack_44 = 0x45601f;\\r\\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\\r\\n puVar1 = puStack_38;\\r\\n puStack_38 = (undefined4 *)0x45602a;\\r\\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\\r\\n }\\r\\n else {\\r\\n puStack_3c = &local_8;\\r\\n iStack_40 = 0x45603d;\\r\\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\\r\\n iStack_40 = iStack_40 + 1;\\r\\n uStack_44 = 0x456047;\\r\\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\\r\\n puVar1 = puStack_38;\\r\\n puStack_38 = (undefined4 *)0x456052;\\r\\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\\r\\n }\\r\\n }\\r\\n puStack_38 = (undefined4 *)0x456075;\\r\\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_8);\\r\\n puStack_38 = (undefined4 *)0x45607a;\\r\\n _System__WriteLn_qqrr15System_TTextRec();\\r\\n puStack_38 = (undefined4 *)0x45607f;\\r\\n _System___IOTest_qqrv();\\r\\n puVar2 = puStack_2c;\\r\\n *in_FS_OFFSET = uStack_34;\\r\\n puStack_2c = &LAB_004560a4;\\r\\n puStack_30 = (undefined1 *)0x456097;\\r\\n _System__Close_qqrr15System_TTextRec(local_1f4,uStack_34,puVar2);\\r\\n puStack_30 = (undefined1 *)0x45609c;\\r\\n _System___IOTest_qqrv();\\r\\n return;\\r\\n }\\r\\nLAB_00455f0a:\\r\\n puStack_2c = (undefined1 *)0x0;\\r\\n puStack_30 = (undefined1 *)0x455f25;\\r\\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\\r\\n (&local_204,*(int *)PTR_DAT_005e5e7c + 0x156d);\\r\\n puStack_30 = (undefined1 *)0x455f35;\\r\\n _System__LStrCat_qqrv(&local_204,\\\"PRJ_MEMO.INI\\\");\\r\\n puStack_30 = (undefined1 *)local_204;\\r\\n uStack_34 = 0x455f41;\\r\\n DELE_FILE();\\r\\n puVar2 = puStack_28;\\r\\n *in_FS_OFFSET = puStack_30;\\r\\n puStack_28 = &LAB_0045696a;\\r\\n puStack_2c = (undefined1 *)0x45694a;\\r\\n _System__LStrArrayClr_qqrpvi(local_290,0x27,puVar2);\\r\\n puStack_2c = (undefined1 *)0x456952;\\r\\n _System__LStrClr_qqrpv(&local_10);\\r\\n puStack_2c = (undefined1 *)0x45695a;\\r\\n _System__LStrClr_qqrpv(&local_8);\\r\\n puStack_2c = (undefined1 *)0x456962;\\r\\n _System__LStrClr_qqrpv(¶m_7);\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"confidence\":\"observed\",\"authority\":\"shipped-artifact\",\"environment\":null,\"limitations\":[\"The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.\",\"The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.\",\"Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.\",\"Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.\",\"Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.\",\"External functions and functions without an analyzable body return null; other decompiler failures remain explicit.\",\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455eaa (push 0x456963 followed by fs-segment stack chaining); handler 0x456963 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455f51 (push 0x45609d followed by fs-segment stack chaining); handler 0x45609d lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\",\"Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.\",\"The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.\",\"Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically.\"],\"relationship_coverage\":null,\"locations\":[],\"evidence_links\":[]}"}], "structuredContent": {"evidence_id": "ev_b3d6f6955450844567af12414a66ee2d19ef7ce45a099a31142f3f996e870e10", "subject": {"name": "STmate.Cpm", "digest": {"sha256": "99d5c05675ba1399c51a71db8e26ebd5ff39fd78d02360147c7705deb399b5f5"}, "local_path": "C:\\경영정보(주)\\System\\STmate.Cpm", "format": "pe", "architecture": "x86"}, "provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "analysis_profile": {"provider": {"id": "ghidra", "name": "Ghidra", "version": "12.1.4"}, "parameters": {"target_kind": "executable", "target_format": "pe", "executable_role": "application", "managed": false, "native_aot_metadata": {"contract_revision": "rtr-9.1-x64-pe-read-only-v5", "source_bytes": 134217728, "work_units": 67108864, "working_memory_bytes": 67108864, "report_bytes": 4194304}, "architecture": "x86", "available_architectures": ["x86"], "import_mode": "ephemeral-source-immutable", "pdb_observations": "program-info-v5", "annotation_policy": "atomic-function-entry-metadata-v1", "load_image_observations": "source-mappings-entry-context-v2", "function_body_evidence": "complete-inclusive-ranges-v1", "function_references": "complete-body-and-entry-reference-manager-v2", "call_relationship_coverage": "function-body-call-coverage-v5", "function_dossier_coverage": "observed-facets-and-call-relationships-v1", "string_inventory_evidence": "defined-data-coverage-v1", "location_resolution": "explicit-address-exact-entry-symbol-first-v3", "procedure_file_offset_resolution": "address-first-unique-target-source-mapping-v2", "instruction_flow_evidence": "decoded-return-pcode-v1", "instruction_references": "exact-address-incoming-without-synthetic-entry-v2", "function_boundary_observations": "ghidra-function-boundary-limitations-v4", "no_return_repair": "disabled-windows-p0", "process_launch": "official-headless-script-v1", "jump_table_evidence": "typed-case-default-blocks-v1", "decompiler_jump_loads": true, "loader": "auto-from-header", "language_id": "auto-from-header", "compiler_spec_id": "auto-default", "analyzer_preset": "ghidra-default"}, "digest": "3de5374fadd78e0d56219c4afc6b4f2efac7101ff92b72faf375fb0070bbc896"}, "predicate_type": "rea.analysis", "operation": "procedure_pseudo_code", "parameters": {"procedure": "0x455e68"}, "raw_result": {"value": "\r\nvoid FUN_00455e68(undefined4 param_1,undefined1 param_2,undefined4 param_3,undefined4 param_4,\r\n undefined4 param_5,int param_6,undefined4 param_7)\r\n\r\n{\r\n undefined4 *puVar1;\r\n undefined1 *puVar2;\r\n int iVar3;\r\n undefined4 uVar4;\r\n int iVar5;\r\n undefined4 *in_FS_OFFSET;\r\n undefined1 uVar6;\r\n undefined1 local_290 [132];\r\n undefined4 local_20c;\r\n undefined4 local_208;\r\n undefined4 local_204;\r\n int local_200;\r\n undefined4 local_1fc;\r\n int local_1f8;\r\n undefined1 local_1f4 [432];\r\n undefined4 uStack_44;\r\n int iStack_40;\r\n undefined4 *puStack_3c;\r\n undefined4 *puStack_38;\r\n undefined4 uStack_34;\r\n undefined1 *puStack_30;\r\n undefined1 *puStack_2c;\r\n undefined1 *puStack_28;\r\n undefined1 *puStack_24;\r\n undefined1 *puStack_20;\r\n undefined4 local_10;\r\n undefined3 uStack_c;\r\n undefined1 local_9;\r\n undefined4 local_8;\r\n \r\n iVar5 = 0x51;\r\n do {\r\n iVar5 = iVar5 + -1;\r\n } while (iVar5 != 0);\r\n LOCK();\r\n UNLOCK();\r\n local_10 = 0;\r\n uStack_c = 0;\r\n puStack_20 = (undefined1 *)0x455e8f;\r\n local_8 = param_1;\r\n local_9 = param_2;\r\n _System__LStrAddRef_qqrpv(param_1);\r\n puStack_20 = (undefined1 *)0x455e97;\r\n _System__LStrAddRef_qqrpv(local_10);\r\n puStack_20 = (undefined1 *)0x455e9f;\r\n _System__LStrAddRef_qqrpv(param_7);\r\n puStack_24 = &LAB_00456963;\r\n puStack_28 = (undefined1 *)*in_FS_OFFSET;\r\n *in_FS_OFFSET = &puStack_28;\r\n puStack_2c = (undefined1 *)0x455eb8;\r\n puStack_20 = &stack0xfffffffc;\r\n _System__LStrAsg_qqrpvpxv(param_4,local_8);\r\n puStack_2c = (undefined1 *)0x455ec6;\r\n _Sysutils_Trim_qqrx17System_AnsiString(local_8,&local_1f8);\r\n if (local_1f8 != 0) {\r\n uVar6 = param_6 == 4;\r\n if (!(bool)uVar6) {\r\n puStack_2c = (undefined1 *)0x455ee3;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_1fc,local_9);\r\n puStack_2c = (undefined1 *)0x455ef1;\r\n _System__LStrCmp_qqrv(local_1fc,local_10);\r\n if ((bool)uVar6) {\r\n puStack_2c = (undefined1 *)0x455f01;\r\n _Sysutils_Trim_qqrx17System_AnsiString(param_7,&local_200);\r\n if (local_200 == 0) goto LAB_00455f0a;\r\n }\r\n }\r\n puStack_30 = &LAB_0045609d;\r\n uStack_34 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_34;\r\n puStack_38 = (undefined4 *)0x455f6d;\r\n puStack_2c = &stack0xfffffffc;\r\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\r\n (&local_208,*(int *)PTR_DAT_005e5e7c + 0x156d);\r\n puStack_38 = (undefined4 *)0x455f7d;\r\n _System__LStrCat_qqrv(&local_208,\"PRJ_MEMO.INI\");\r\n puStack_38 = (undefined4 *)0x455f8e;\r\n _System__Assign_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_208);\r\n puStack_38 = (undefined4 *)0x455f99;\r\n _System__RewritText_qqrr15System_TTextRec(local_1f4);\r\n puStack_38 = (undefined4 *)0x455f9e;\r\n _System___IOTest_qqrv();\r\n while( true ) {\r\n puStack_38 = (undefined4 *)0x45605f;\r\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n if (iVar5 < 1) break;\r\n puStack_38 = &local_20c;\r\n puStack_3c = (undefined4 *)0x455fb7;\r\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n puStack_3c = (undefined4 *)0x455fc7;\r\n _System__LStrCopy_qqrv(local_8,1,iVar5 + -1);\r\n puStack_3c = (undefined4 *)0x455fd8;\r\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_20c);\r\n puStack_3c = (undefined4 *)0x455fdd;\r\n _System__WriteLn_qqrr15System_TTextRec();\r\n puStack_3c = (undefined4 *)0x455fe2;\r\n _System___IOTest_qqrv();\r\n puStack_3c = (undefined4 *)0x455fef;\r\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n puStack_3c = (undefined4 *)0x455ffe;\r\n iVar3 = _System__LStrPos_qqrv(&DAT_004569a0,local_8);\r\n if (iVar5 == iVar3) {\r\n puStack_3c = &local_8;\r\n iStack_40 = 0x456013;\r\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n iStack_40 = iStack_40 + 2;\r\n uStack_44 = 0x45601f;\r\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\r\n puVar1 = puStack_38;\r\n puStack_38 = (undefined4 *)0x45602a;\r\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\r\n }\r\n else {\r\n puStack_3c = &local_8;\r\n iStack_40 = 0x45603d;\r\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n iStack_40 = iStack_40 + 1;\r\n uStack_44 = 0x456047;\r\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\r\n puVar1 = puStack_38;\r\n puStack_38 = (undefined4 *)0x456052;\r\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\r\n }\r\n }\r\n puStack_38 = (undefined4 *)0x456075;\r\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_8);\r\n puStack_38 = (undefined4 *)0x45607a;\r\n _System__WriteLn_qqrr15System_TTextRec();\r\n puStack_38 = (undefined4 *)0x45607f;\r\n _System___IOTest_qqrv();\r\n puVar2 = puStack_2c;\r\n *in_FS_OFFSET = uStack_34;\r\n puStack_2c = &LAB_004560a4;\r\n puStack_30 = (undefined1 *)0x456097;\r\n _System__Close_qqrr15System_TTextRec(local_1f4,uStack_34,puVar2);\r\n puStack_30 = (undefined1 *)0x45609c;\r\n _System___IOTest_qqrv();\r\n return;\r\n }\r\nLAB_00455f0a:\r\n puStack_2c = (undefined1 *)0x0;\r\n puStack_30 = (undefined1 *)0x455f25;\r\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\r\n (&local_204,*(int *)PTR_DAT_005e5e7c + 0x156d);\r\n puStack_30 = (undefined1 *)0x455f35;\r\n _System__LStrCat_qqrv(&local_204,\"PRJ_MEMO.INI\");\r\n puStack_30 = (undefined1 *)local_204;\r\n uStack_34 = 0x455f41;\r\n DELE_FILE();\r\n puVar2 = puStack_28;\r\n *in_FS_OFFSET = puStack_30;\r\n puStack_28 = &LAB_0045696a;\r\n puStack_2c = (undefined1 *)0x45694a;\r\n _System__LStrArrayClr_qqrpvi(local_290,0x27,puVar2);\r\n puStack_2c = (undefined1 *)0x456952;\r\n _System__LStrClr_qqrpv(&local_10);\r\n puStack_2c = (undefined1 *)0x45695a;\r\n _System__LStrClr_qqrpv(&local_8);\r\n puStack_2c = (undefined1 *)0x456962;\r\n _System__LStrClr_qqrpv(¶m_7);\r\n return;\r\n}\r\n\r\n", "limitations": ["Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455eaa (push 0x456963 followed by fs-segment stack chaining); handler 0x456963 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455f51 (push 0x45609d followed by fs-segment stack chaining); handler 0x45609d lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region."]}, "normalized_result": "\r\nvoid FUN_00455e68(undefined4 param_1,undefined1 param_2,undefined4 param_3,undefined4 param_4,\r\n undefined4 param_5,int param_6,undefined4 param_7)\r\n\r\n{\r\n undefined4 *puVar1;\r\n undefined1 *puVar2;\r\n int iVar3;\r\n undefined4 uVar4;\r\n int iVar5;\r\n undefined4 *in_FS_OFFSET;\r\n undefined1 uVar6;\r\n undefined1 local_290 [132];\r\n undefined4 local_20c;\r\n undefined4 local_208;\r\n undefined4 local_204;\r\n int local_200;\r\n undefined4 local_1fc;\r\n int local_1f8;\r\n undefined1 local_1f4 [432];\r\n undefined4 uStack_44;\r\n int iStack_40;\r\n undefined4 *puStack_3c;\r\n undefined4 *puStack_38;\r\n undefined4 uStack_34;\r\n undefined1 *puStack_30;\r\n undefined1 *puStack_2c;\r\n undefined1 *puStack_28;\r\n undefined1 *puStack_24;\r\n undefined1 *puStack_20;\r\n undefined4 local_10;\r\n undefined3 uStack_c;\r\n undefined1 local_9;\r\n undefined4 local_8;\r\n \r\n iVar5 = 0x51;\r\n do {\r\n iVar5 = iVar5 + -1;\r\n } while (iVar5 != 0);\r\n LOCK();\r\n UNLOCK();\r\n local_10 = 0;\r\n uStack_c = 0;\r\n puStack_20 = (undefined1 *)0x455e8f;\r\n local_8 = param_1;\r\n local_9 = param_2;\r\n _System__LStrAddRef_qqrpv(param_1);\r\n puStack_20 = (undefined1 *)0x455e97;\r\n _System__LStrAddRef_qqrpv(local_10);\r\n puStack_20 = (undefined1 *)0x455e9f;\r\n _System__LStrAddRef_qqrpv(param_7);\r\n puStack_24 = &LAB_00456963;\r\n puStack_28 = (undefined1 *)*in_FS_OFFSET;\r\n *in_FS_OFFSET = &puStack_28;\r\n puStack_2c = (undefined1 *)0x455eb8;\r\n puStack_20 = &stack0xfffffffc;\r\n _System__LStrAsg_qqrpvpxv(param_4,local_8);\r\n puStack_2c = (undefined1 *)0x455ec6;\r\n _Sysutils_Trim_qqrx17System_AnsiString(local_8,&local_1f8);\r\n if (local_1f8 != 0) {\r\n uVar6 = param_6 == 4;\r\n if (!(bool)uVar6) {\r\n puStack_2c = (undefined1 *)0x455ee3;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_1fc,local_9);\r\n puStack_2c = (undefined1 *)0x455ef1;\r\n _System__LStrCmp_qqrv(local_1fc,local_10);\r\n if ((bool)uVar6) {\r\n puStack_2c = (undefined1 *)0x455f01;\r\n _Sysutils_Trim_qqrx17System_AnsiString(param_7,&local_200);\r\n if (local_200 == 0) goto LAB_00455f0a;\r\n }\r\n }\r\n puStack_30 = &LAB_0045609d;\r\n uStack_34 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &uStack_34;\r\n puStack_38 = (undefined4 *)0x455f6d;\r\n puStack_2c = &stack0xfffffffc;\r\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\r\n (&local_208,*(int *)PTR_DAT_005e5e7c + 0x156d);\r\n puStack_38 = (undefined4 *)0x455f7d;\r\n _System__LStrCat_qqrv(&local_208,\"PRJ_MEMO.INI\");\r\n puStack_38 = (undefined4 *)0x455f8e;\r\n _System__Assign_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_208);\r\n puStack_38 = (undefined4 *)0x455f99;\r\n _System__RewritText_qqrr15System_TTextRec(local_1f4);\r\n puStack_38 = (undefined4 *)0x455f9e;\r\n _System___IOTest_qqrv();\r\n while( true ) {\r\n puStack_38 = (undefined4 *)0x45605f;\r\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n if (iVar5 < 1) break;\r\n puStack_38 = &local_20c;\r\n puStack_3c = (undefined4 *)0x455fb7;\r\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n puStack_3c = (undefined4 *)0x455fc7;\r\n _System__LStrCopy_qqrv(local_8,1,iVar5 + -1);\r\n puStack_3c = (undefined4 *)0x455fd8;\r\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_20c);\r\n puStack_3c = (undefined4 *)0x455fdd;\r\n _System__WriteLn_qqrr15System_TTextRec();\r\n puStack_3c = (undefined4 *)0x455fe2;\r\n _System___IOTest_qqrv();\r\n puStack_3c = (undefined4 *)0x455fef;\r\n iVar5 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n puStack_3c = (undefined4 *)0x455ffe;\r\n iVar3 = _System__LStrPos_qqrv(&DAT_004569a0,local_8);\r\n if (iVar5 == iVar3) {\r\n puStack_3c = &local_8;\r\n iStack_40 = 0x456013;\r\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n iStack_40 = iStack_40 + 2;\r\n uStack_44 = 0x45601f;\r\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\r\n puVar1 = puStack_38;\r\n puStack_38 = (undefined4 *)0x45602a;\r\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\r\n }\r\n else {\r\n puStack_3c = &local_8;\r\n iStack_40 = 0x45603d;\r\n iStack_40 = _System__LStrPos_qqrv(&DAT_00456994,local_8);\r\n iStack_40 = iStack_40 + 1;\r\n uStack_44 = 0x456047;\r\n uVar4 = _System__LStrLen_qqrx17System_AnsiString(local_8);\r\n puVar1 = puStack_38;\r\n puStack_38 = (undefined4 *)0x456052;\r\n _System__LStrCopy_qqrv(local_8,puVar1,uVar4);\r\n }\r\n }\r\n puStack_38 = (undefined4 *)0x456075;\r\n _System__Write0LString_qqrr15System_TTextRecx17System_AnsiString(local_1f4,local_8);\r\n puStack_38 = (undefined4 *)0x45607a;\r\n _System__WriteLn_qqrr15System_TTextRec();\r\n puStack_38 = (undefined4 *)0x45607f;\r\n _System___IOTest_qqrv();\r\n puVar2 = puStack_2c;\r\n *in_FS_OFFSET = uStack_34;\r\n puStack_2c = &LAB_004560a4;\r\n puStack_30 = (undefined1 *)0x456097;\r\n _System__Close_qqrr15System_TTextRec(local_1f4,uStack_34,puVar2);\r\n puStack_30 = (undefined1 *)0x45609c;\r\n _System___IOTest_qqrv();\r\n return;\r\n }\r\nLAB_00455f0a:\r\n puStack_2c = (undefined1 *)0x0;\r\n puStack_30 = (undefined1 *)0x455f25;\r\n _System__LStrFromString_qqrr17System_AnsiStringrx28System__SmallString_iuc_255_\r\n (&local_204,*(int *)PTR_DAT_005e5e7c + 0x156d);\r\n puStack_30 = (undefined1 *)0x455f35;\r\n _System__LStrCat_qqrv(&local_204,\"PRJ_MEMO.INI\");\r\n puStack_30 = (undefined1 *)local_204;\r\n uStack_34 = 0x455f41;\r\n DELE_FILE();\r\n puVar2 = puStack_28;\r\n *in_FS_OFFSET = puStack_30;\r\n puStack_28 = &LAB_0045696a;\r\n puStack_2c = (undefined1 *)0x45694a;\r\n _System__LStrArrayClr_qqrpvi(local_290,0x27,puVar2);\r\n puStack_2c = (undefined1 *)0x456952;\r\n _System__LStrClr_qqrpv(&local_10);\r\n puStack_2c = (undefined1 *)0x45695a;\r\n _System__LStrClr_qqrpv(&local_8);\r\n puStack_2c = (undefined1 *)0x456962;\r\n _System__LStrClr_qqrpv(¶m_7);\r\n return;\r\n}\r\n\r\n", "confidence": "observed", "authority": "shipped-artifact", "environment": null, "limitations": ["The session serves operations only after Ghidra reports default auto-analysis complete; incomplete analysis does not expose partial results.", "The imported Program and temporary project are ephemeral and deleted on close. Annotation operations edit session database metadata; original executable bytes are never written.", "Cancelling an active Ghidra request terminates its ephemeral database and discards session annotations. The selected target remains open; the next provider query imports the original artifact again.", "Default-space addresses use lowercase 0x-prefixed hexadecimal; other address spaces use :0x.", "Pseudocode is Ghidra decompiler output, not original source and not text-equivalent to Hopper output.", "External functions and functions without an analyzable body return null; other decompiler failures remain explicit.", "Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455eaa (push 0x456963 followed by fs-segment stack chaining); handler 0x456963 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x455f51 (push 0x45609d followed by fs-segment stack chaining); handler 0x45609d lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.", "Windows Ghidra P0 accepts native x86, x86-64, ARMNT (Thumb-2) and ARM64 PE applications and DLLs, and explicitly selected raw 6502 images; managed, hostile, sensitive, and mutable-path targets are unsupported.", "The Windows bridge uses authenticated IPv4 loopback because Node path-based IPC does not expose Java AF_UNIX sockets; the endpoint file contains no bearer token.", "Windows sessions require the matching packaged Windows x64 native addon, local NTFS targets and runtimes, and Windows 10 or later. Native handles enforce path admission, private DACLs, and Job Object ownership automatically."], "relationship_coverage": null, "locations": [], "evidence_links": []}}, "jsonrpc": "2.0", "id": 18} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Main_0x55a640_MkBoq.ghidra.c.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Main_0x55a640_MkBoq.ghidra.c.txt new file mode 100644 index 000000000..26af42290 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/33_기성준공단계_작업자료_20261114/rea_mcp/Main_0x55a640_MkBoq.ghidra.c.txt @@ -0,0 +1,2976 @@ + +/* WARNING: Removing unreachable block (ram,0x0055b7df) */ +/* WARNING: Removing unreachable block (ram,0x0055b812) */ + +void FUN_0055a640(int param_1,int param_2,undefined4 param_3,char param_4) + +{ + undefined1 *puVar1; + undefined *puVar2; + undefined1 **ppuVar3; + char cVar4; + short sVar5; + undefined4 uVar6; + undefined4 uVar7; + int iVar8; + int iVar9; + int iVar10; + undefined *puVar11; + undefined2 extraout_var; + int iVar12; + double *pdVar13; + undefined4 *puVar14; + uint *in_FS_OFFSET; + float10 in_ST0; + float10 fVar15; + float10 fVar16; + float10 in_ST1; + float10 in_ST2; + float10 in_ST3; + float10 in_ST4; + float10 in_ST5; + float10 in_ST6; + float10 in_ST7; + float10 fVar17; + undefined4 local_fc4; + undefined1 local_fc0 [16]; + undefined1 local_fb0 [16]; + undefined4 local_fa0; + undefined4 local_f9c; + undefined4 local_f98; + undefined4 local_f94; + undefined4 local_f90; + undefined **local_f8c; + undefined4 local_f88; + undefined4 local_f84; + int local_f80; + undefined1 local_f7c [16]; + undefined1 local_f6c [16]; + undefined4 local_f5c; + undefined4 local_f58; + undefined4 local_f54; + undefined4 local_f50; + undefined4 local_f4c; + undefined **local_f48; + undefined4 local_f44; + undefined4 local_f40; + int local_f3c; + undefined1 **local_f38; + undefined4 local_f34; + undefined *local_f30; + int local_f2c; + undefined4 local_f28; + undefined *local_f24; + undefined **local_f20; + undefined4 local_f1c; + undefined1 local_f18 [16]; + undefined4 local_f08; + undefined4 local_f04; + undefined1 local_f00 [16]; + undefined4 local_ef0; + undefined *local_eec; + undefined4 local_ee8; + undefined4 *local_ee4; + undefined4 local_ee0; + undefined *local_edc; + undefined4 local_ed8; + undefined4 local_ed4; + undefined4 *local_ed0; + undefined1 local_ecc [16]; + undefined1 local_ebc [16]; + undefined4 local_eac; + undefined4 local_ea8; + undefined4 local_ea4; + undefined1 local_ea0 [16]; + undefined4 local_e90; + undefined4 local_e8c; + undefined1 *local_e88; + undefined4 local_e84; + undefined4 local_e80; + undefined4 local_e7c; + undefined4 local_e78; + undefined4 local_e74; + undefined *local_e70; + undefined1 local_e6c [16]; + undefined4 local_e5c; + undefined1 local_e58 [16]; + undefined4 local_e48; + undefined4 local_e44; + int local_e40; + undefined4 local_e3c; + undefined4 local_e38; + undefined4 local_e34; + undefined **local_e30; + undefined4 local_e2c; + undefined4 local_e28; + int local_e24; + undefined1 local_e20 [16]; + undefined1 local_e10 [16]; + undefined1 local_e00 [16]; + undefined1 local_df0 [16]; + undefined1 local_de0 [16]; + undefined1 local_dd0 [16]; + undefined1 local_dc0 [16]; + undefined1 local_db0 [16]; + undefined1 local_da0 [16]; + undefined4 local_d90; + undefined4 local_d8c; + undefined1 local_d88 [16]; + undefined4 local_d78; + undefined4 local_d74; + undefined1 local_d70 [16]; + undefined4 local_d60; + undefined4 local_d5c; + undefined1 local_d58 [16]; + undefined4 local_d48; + undefined4 local_d44; + undefined1 local_d40 [16]; + undefined1 local_d30 [16]; + undefined4 local_d20; + undefined1 *local_d1c; + undefined1 *local_d18; + undefined1 *local_d14; + undefined1 *local_d10; + undefined1 local_d0c [16]; + undefined1 local_cfc [16]; + undefined1 local_cec [16]; + undefined4 local_cdc; + undefined4 local_cd8; + undefined1 local_cd4 [16]; + undefined1 local_cc4 [16]; + undefined1 local_cb4 [16]; + undefined1 local_ca4 [16]; + undefined1 local_c94 [16]; + undefined1 local_c84 [16]; + undefined1 local_c74 [16]; + undefined4 local_c64; + undefined4 local_c60; + undefined1 local_c5c [16]; + undefined1 local_c4c [16]; + undefined1 local_c3c [16]; + undefined1 local_c2c [16]; + undefined4 local_c1c; + undefined4 local_c18; + undefined1 local_c14 [16]; + undefined4 local_c04; + undefined4 local_c00; + undefined4 local_bfc; + undefined4 local_bf8; + undefined4 local_bf4; + undefined4 local_bf0; + undefined4 local_bec; + undefined4 local_be8; + undefined4 local_be4; + undefined **local_be0; + undefined4 local_bdc; + undefined4 local_bd8; + int local_bd4; + undefined1 local_bd0 [16]; + undefined4 local_bc0; + undefined4 local_bbc; + undefined1 local_bb8 [16]; + undefined4 local_ba8; + undefined4 local_ba4; + undefined1 local_ba0 [16]; + undefined4 local_b90; + undefined4 local_b8c; + undefined1 local_b88 [16]; + undefined4 local_b78; + undefined4 local_b74; + undefined1 local_b70 [16]; + undefined4 local_b60; + undefined4 local_b5c; + undefined1 local_b58 [16]; + undefined4 local_b48; + undefined4 local_b44; + int local_b40; + undefined4 local_b3c; + undefined4 local_b38; + undefined4 local_b34; + undefined **local_b30; + undefined4 local_b2c; + undefined4 local_b28; + int local_b24; + undefined1 local_b20 [16]; + undefined1 local_b10 [16]; + undefined1 local_b00 [16]; + undefined1 local_af0 [16]; + undefined4 local_ae0; + undefined4 local_adc; + undefined4 local_ad8; + undefined4 local_ad4; + undefined4 local_ad0; + undefined **local_acc; + undefined4 local_ac8; + undefined4 local_ac4; + int local_ac0; + undefined1 local_abc [16]; + undefined1 local_aac [16]; + undefined1 local_a9c [16]; + undefined1 local_a8c [16]; + undefined1 local_a7c [16]; + undefined4 local_a6c; + undefined4 local_a68; + undefined4 local_a64; + undefined4 local_a60; + undefined4 local_a5c; + undefined **local_a58; + undefined4 local_a54; + undefined4 local_a50; + int local_a4c; + undefined1 local_a48 [16]; + undefined1 local_a38 [16]; + undefined1 local_a28 [16]; + undefined4 local_a18; + undefined4 local_a14; + undefined4 local_a10; + undefined4 local_a0c; + undefined4 local_a08; + undefined **local_a04; + undefined4 local_a00; + undefined4 local_9fc; + int local_9f8; + undefined1 local_9f4 [16]; + undefined4 local_9e4; + undefined1 *local_9e0; + undefined *local_9dc; + undefined1 *local_9d8; + int local_9d4; + undefined1 local_9d0 [16]; + undefined1 local_9c0 [16]; + undefined1 local_9b0 [16]; + undefined1 local_9a0 [16]; + undefined1 local_990 [16]; + undefined1 local_980 [16]; + undefined4 local_970; + undefined4 local_96c; + undefined4 local_968; + undefined4 local_964; + undefined4 local_960; + undefined **local_95c; + undefined4 local_958; + undefined4 local_954; + int local_950; + undefined1 local_94c [304]; + undefined1 local_81c [12]; + undefined1 local_810 [16]; + undefined1 local_800 [12]; + undefined1 local_7f4 [4]; + undefined1 local_7f0 [64]; + undefined1 local_7b0 [20]; + undefined1 local_79c [16]; + undefined1 local_78c [4]; + undefined1 local_788 [16]; + undefined1 local_778 [8]; + undefined1 local_770 [16]; + undefined1 local_760 [16]; + undefined1 local_750 [16]; + undefined1 local_740 [4]; + undefined1 local_73c [16]; + undefined1 local_72c [4]; + undefined1 local_728 [32]; + undefined1 local_708 [44]; + undefined *local_6dc; + undefined4 local_6d8; + undefined1 local_6d4 [16]; + undefined1 local_6c4 [16]; + undefined1 local_6b4 [16]; + float10 local_6a4; + undefined1 local_698 [16]; + undefined1 local_688 [16]; + undefined4 local_678; + undefined4 local_674; + undefined4 local_670; + undefined4 local_66c; + undefined4 local_668; + undefined4 local_664; + undefined4 local_660; + undefined1 *local_65c; + undefined1 local_658 [16]; + undefined1 local_648 [16]; + undefined1 local_638 [16]; + undefined4 local_628; + undefined4 local_624; + undefined4 local_620; + undefined4 *local_61c; + undefined4 local_618; + undefined4 local_614; + undefined4 local_610; + undefined4 local_60c; + undefined4 local_608; + undefined1 *local_604; + undefined4 local_600; + undefined1 local_5fc [16]; + undefined1 local_5ec [16]; + undefined1 local_5dc [16]; + undefined1 local_5cc [16]; + undefined1 local_5bc [16]; + undefined1 local_5ac [16]; + undefined4 local_59c; + undefined1 local_598 [16]; + undefined1 local_588 [16]; + undefined1 local_578 [16]; + undefined1 local_568 [16]; + undefined1 local_558 [16]; + undefined1 local_548 [48]; + undefined4 local_518; + undefined4 local_514; + undefined1 local_510 [16]; + undefined1 local_500 [16]; + undefined1 *local_4f0; + undefined4 local_4ec; + undefined4 local_4e8; + undefined1 local_4e4 [16]; + undefined4 local_4d4; + undefined4 local_4d0; + undefined *local_4cc; + undefined4 local_4c8; + undefined1 local_4c4; + undefined1 local_4c3; + undefined4 *local_4c0; + undefined *local_4bc; + undefined4 local_4b8; + undefined4 local_4b4; + undefined1 local_4b0 [16]; + undefined4 local_4a0; + undefined4 local_49c; + undefined1 local_498 [16]; + undefined4 local_488; + undefined1 local_484 [16]; + undefined1 local_474 [16]; + undefined4 local_464; + undefined1 local_460 [16]; + undefined1 local_450 [16]; + undefined1 local_440 [16]; + undefined4 local_430; + undefined4 local_42c; + undefined1 local_428 [16]; + undefined1 local_418 [16]; + undefined1 local_408 [16]; + undefined4 local_3f8; + undefined1 local_3f4 [16]; + undefined4 local_3e4; + undefined1 local_3e0 [16]; + undefined1 local_3d0 [16]; + undefined1 local_3c0 [16]; + undefined1 local_3b0 [16]; + undefined1 local_3a0 [16]; + undefined1 local_390 [16]; + undefined4 local_380; + undefined1 local_37c [16]; + undefined4 local_36c; + undefined1 local_368 [16]; + undefined4 local_358; + undefined1 local_354 [16]; + undefined4 local_344; + undefined1 local_340 [16]; + undefined4 local_330; + undefined1 local_32c [16]; + undefined4 local_31c; + undefined1 local_318 [16]; + undefined4 local_308; + undefined1 local_304 [16]; + undefined4 local_2f4; + undefined4 local_2f0; + undefined4 local_2ec; + undefined *local_2e8; + undefined1 *local_2e4; + int local_2e0; + undefined1 **local_2dc; + undefined4 local_2d8; + undefined1 local_2d4 [16]; + undefined1 local_2c4 [16]; + undefined1 local_2b4 [16]; + undefined1 local_2a4 [16]; + undefined1 local_294 [16]; + undefined1 local_284 [16]; + undefined1 local_274 [16]; + undefined1 local_264 [16]; + undefined1 local_254 [16]; + undefined1 local_244 [16]; + undefined1 local_234 [16]; + undefined4 local_224; + undefined4 local_220; + undefined4 local_21c; + undefined4 local_218; + undefined4 local_214; + undefined *local_210; + undefined **local_20c; + undefined4 local_208; + undefined *local_204; + undefined *local_200; + undefined1 *local_1fc; + uint local_1f8; + undefined local_1f4 [16]; + undefined4 local_1e4; + undefined4 local_1e0; + undefined1 local_1dc [16]; + undefined1 local_1cc [16]; + undefined1 local_1bc [16]; + undefined1 local_1ac [16]; + undefined4 local_19c; + undefined1 local_198 [16]; + undefined1 local_188 [16]; + undefined1 local_178 [16]; + undefined1 local_168 [16]; + undefined *local_158 [5]; + double local_144 [9]; + undefined4 uStack_f8; + undefined4 uStack_f4; + undefined4 uStack_f0; + undefined4 uStack_ec; + undefined1 *puStack_e8; + undefined4 uStack_e4; + undefined4 uStack_e0; + undefined4 uStack_dc; + undefined4 uStack_d8; + undefined4 uStack_d4; + undefined4 uStack_d0; + undefined4 uStack_cc; + undefined4 uStack_c8; + undefined1 *puStack_c4; + undefined1 *puStack_c0; + undefined *puStack_bc; + undefined4 uStack_b8; + undefined *puStack_b4; + undefined4 uStack_b0; + undefined4 *puStack_ac; + undefined *puStack_a8; + undefined4 uStack_a4; + undefined4 uStack_a0; + undefined4 *puStack_9c; + undefined1 *puStack_98; + undefined *puStack_94; + undefined1 *puStack_90; + undefined1 *puStack_8c; + undefined4 uStack_88; + undefined4 uStack_84; + undefined4 uStack_80; + undefined4 uStack_7c; + undefined *puStack_78; + undefined1 *puStack_74; + char *pcStack_70; + undefined1 **ppuStack_6c; + undefined4 uStack_68; + undefined *puStack_64; + int local_60; + undefined4 local_5c; + undefined *puStack_58; + undefined **local_54; + undefined1 *local_50; + undefined4 uStack_4c; + undefined *local_48; + undefined1 *local_44; + uint local_40; + undefined1 local_3c [8]; + undefined1 *local_34; + int *local_30; + uint local_2c; + undefined1 *local_28; + undefined1 *local_24; + int local_c; + int local_8; + + iVar12 = 0x1f7; + do { + iVar12 = iVar12 + -1; + } while (iVar12 != 0); + LOCK(); + UNLOCK(); + local_24 = (undefined1 *)0x55a668; + local_c = param_2; + local_8 = param_1; + _System__LStrAddRef_qqrpv(param_2); + local_28 = &LAB_0055f0fd; + local_2c = *in_FS_OFFSET; + *in_FS_OFFSET = (uint)&local_2c; + local_24 = &stack0xfffffffc; + if (*(char *)(*(int *)PTR_DAT_005e5e7c + 0xe5d) != '\0') { + local_30 = (int *)0x55a698; + local_24 = &stack0xfffffffc; + iVar12 = _Apodset_TApolloTable_Count_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + if (*(int *)(PTR_DAT_005e61e0 + 0x28) < iVar12) { + local_30 = (int *)&DAT_0055f11c; + local_34 = (undefined1 *)0x7f04; + local_3c._4_4_ = 1; + local_158[0] = &DAT_0055f12c; + local_3c._0_4_ = local_158; + local_40 = 0; + local_44 = (undefined1 *)0x55a6dc; + FUN_0044b680(*(undefined4 *)(*(int *)_Forms_Application_exref + 0x30),&DAT_0055f164, + &DAT_0055f140); + goto LAB_0055e966; + } + } + if ((*(int *)(local_8 + 0x588) == 3) && (*(int *)(local_8 + 0x57c) == 6)) { + if ((*(int *)(local_8 + 0x578) == 4) || (*(int *)(local_8 + 0x578) == 6)) { + local_30 = (int *)0x55a719; + _System__LStrLAsg_qqrpvpxv(local_3c,"K_ONGSA"); + } + else { + local_30 = (int *)0x55a728; + _System__LStrLAsg_qqrpvpxv(local_3c,"K_ONGSAA"); + } + } + **(char **)PTR_DAT_005e6148 = **(char **)PTR_DAT_005e6148 + '\x01'; + local_30 = (int *)(uint)**(byte **)PTR_DAT_005e6148; + local_34 = (undefined1 *)0x55a755; + (**(code **)(**(int **)(*(int *)PTR_DAT_005e5f8c + 0x5c) + 0xc)) + (*(int **)(*(int *)PTR_DAT_005e5f8c + 0x5c),"START","PCDNM"); + local_50 = (undefined1 *)0x1; + local_54 = (undefined **)0x2; + if (local_c == 0) { + local_34 = local_3c + 4; + local_3c._4_4_ = 0x55a787; + FUN_0055fd50(local_8,**(undefined1 **)PTR_DAT_005e6148,0); + if (local_3c._4_4_ == 0) { + local_3c._4_4_ = 0x55a79f; + _Apodset_TApolloTable_Append_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + local_3c._4_4_ = 0x55a7b7; + _System__VarFromInt_qqrr14System_Variantxixi(local_168,**(undefined1 **)PTR_DAT_005e6148,1); + local_3c._4_4_ = 0x55a7d0; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PCode",local_168); + if ((*(char *)(*(int *)PTR_DAT_005e5f8c + 0x57) == '\x04') && + (*(char *)(*(int *)PTR_DAT_005e5e7c + 0xe40) != '\0')) { + local_3c._4_4_ = 0x55a812; + _System__VarFromInt_qqrr14System_Variantxixi(local_178,0,0xfc); + local_3c._4_4_ = 0x55a82b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PClass",local_178); + } + else { + local_3c._4_4_ = 0x55a83c; + _System__VarFromInt_qqrr14System_Variantxixi(local_188,0,1); + local_3c._4_4_ = 0x55a855; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PClass",local_188); + } + local_3c._4_4_ = 0x55a85a; + _Sysutils_Now_qqrv(); + local_3c = (undefined1 [8])(double)in_ST0; + local_40 = 0x55a86c; + _Sysutils_DateToStr_qqrx16System_TDateTime(&local_19c); + local_40 = 0x55a87c; + _System__LStrCat_qqrv(&local_19c," - 00"); + local_40 = 0x55a88d; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_198,local_19c); + local_40 = 0x55a8a6; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),&DAT_0055f23c,local_198); + local_40 = 0x55a8b6; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_1ac,&DAT_0055f24c); + local_40 = 0x55a8cf; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PName",local_1ac); + local_40 = 0x55a8df; + _System__VarFromInt_qqrr14System_Variantxixi(local_1bc,local_50,0xfc); + local_40 = 0x55a8f8; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"ACTTYP",local_1bc); + local_40 = 0x55a908; + _System__VarFromInt_qqrr14System_Variantxixi(local_1cc,local_54,0xfc); + local_40 = 0x55a921; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"ACTOPT",local_1cc); + local_40 = 0x55a92e; + _System__VarFromBool_qqrr14System_Variantxo(local_1dc,1); + local_40 = 0x55a947; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRIV_PR",local_1dc); + local_40 = 0x55a957; + FUN_00454e58(*(undefined4 *)(local_8 + 0x2f4),0); + local_40 = 0x55a965; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + } + else { + local_3c._4_4_ = 0x10; + local_3c._0_4_ = &LAB_0055f2b8; + local_40 = 0x10; + local_44 = &LAB_0055f2d4; + local_48 = (undefined *)0x55a98d; + _System__LStrCatN_qqrv(&local_1e0,3); + local_48 = (undefined *)0x55a998; + uVar6 = _System__LStrToPChar_qqrx17System_AnsiString(local_1e0); + local_48 = (undefined *)0x55a9ab; + _Forms_TApplication_MessageBox_qqrpxct1i + (*(undefined4 *)_Forms_Application_exref,uVar6,&DAT_0055f2e0); + **(char **)PTR_DAT_005e6148 = **(char **)PTR_DAT_005e6148 + -1; + local_48 = (undefined *)(uint)**(byte **)PTR_DAT_005e6148; + uStack_4c = (undefined *)0x55a9d8; + (**(code **)(**(int **)(*(int *)PTR_DAT_005e5f8c + 0x5c) + 0xc)) + (*(int **)(*(int *)PTR_DAT_005e5f8c + 0x5c),"START","PCDNM"); + } + } + else { + uVar6 = *(undefined4 *)(local_8 + 0x2f4); + local_34 = (undefined1 *)0x55a9ed; + uVar7 = _Apodset_TApolloTable_GetSXRecno_qqrv(uVar6); + local_34 = (undefined1 *)0x55a9f6; + _Apodset_TApolloTable_Go_qqri(uVar6,uVar7); + local_34 = (undefined1 *)0x55aa01; + uVar6 = _System__ValLong_qqrx17System_AnsiStringri(local_c,&local_24); + local_34 = (undefined1 *)0x55aa1a; + _Apodset_TApolloTable_GetTrimString_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),&DAT_0055f23c,&local_40); + fVar16 = in_ST0; + if (*(int *)(local_8 + 0x57c) == 7) { + local_34 = (undefined1 *)0x55aa2b; + fVar16 = in_ST1; + in_ST1 = in_ST2; + in_ST2 = in_ST3; + in_ST3 = in_ST4; + in_ST4 = in_ST5; + in_ST5 = in_ST6; + in_ST6 = in_ST7; + _Sysutils_Now_qqrv(); + unique0x0000aa00 = (double)in_ST0; + local_3c._0_4_ = 0x55aa3d; + in_ST7 = in_ST6; + _Sysutils_DateToStr_qqrx16System_TDateTime(&local_1e4); + local_3c._0_4_ = 0x55aa50; + _System__LStrCat3_qqrv(&local_40,local_1e4," - 00"); + } + local_34 = (undefined1 *)0x55aa66; + _Apodset_TApolloTable_GetTrimString_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"PName",&local_44); + local_34 = (undefined1 *)0x55aa79; + iVar12 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"PClass"); + local_34 = (undefined1 *)0x55aa8f; + iVar8 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"SClass"); + local_34 = local_3c + 4; + local_3c._4_4_ = 0x55aaac; + FUN_0055fd50(local_8,**(undefined1 **)PTR_DAT_005e6148,local_c); + local_3c._4_4_ = 0x55aabf; + local_2c = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"k_Ord"); + local_3c._4_4_ = 0x55aad5; + sVar5 = _Apodset_TApolloTable_GetLogical_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"PRIV_PR"); + uStack_4c._0_2_ = CONCAT11('\x01' - (sVar5 == 0),(undefined1)uStack_4c); + local_3c._4_4_ = 0x55aae7; + iVar9 = _Sysutils_StrToInt_qqrx17System_AnsiString(local_c); + local_3c._4_4_ = *(int *)(*(int *)(*(int *)PTR_DAT_005e5f8c + 0x550) + iVar9 * 4); + local_3c._0_4_ = &DAT_0055f31c; + local_40 = 0x55ab03; + cVar4 = MPOS(); + if (cVar4 == '\0') { + local_40 = 0x55ab0f; + iVar9 = _Sysutils_StrToInt_qqrx17System_AnsiString(local_c); + local_40 = *(uint *)(*(int *)(*(int *)PTR_DAT_005e5f8c + 0x550) + iVar9 * 4); + local_44 = &DAT_0055f328; + local_48 = (undefined *)0x55ab2b; + cVar4 = MPOS(); + if (cVar4 == '\0') { + uStack_4c._0_2_ = CONCAT11(1,(undefined1)uStack_4c); + } + } + if (iVar12 == 9) { + local_40 = 0x55ab4c; + local_50 = (undefined1 *) + _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"ACTTYP"); + local_40 = 0x55ab62; + local_54 = (undefined **) + _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"ACTOPT"); + } + uVar7 = *(undefined4 *)(local_8 + 0x2f4); + local_40 = 0x55ab80; + _System__VarFromInt_qqrr14System_Variantxixi(&local_204,4,1); + local_40 = local_1f8; + local_44 = local_1fc; + local_48 = local_200; + uStack_4c = local_204; + local_50 = (undefined1 *)0x55abaa; + _System__VarFromInt_qqrr14System_Variantxixi(&local_214,5,1); + local_50 = (undefined1 *)local_208; + local_54 = local_20c; + puStack_58 = local_210; + local_5c = local_214; + local_60 = CONCAT31((int3)((uint)local_8 >> 8),*(int *)(local_8 + 0x57c) == 7); + puStack_64 = local_1f4; + uStack_68 = 0x55abdc; + IIF(); + uStack_68 = 0x55abe7; + iVar9 = _System__VarToInt_qqrrx14System_Variant(local_1f4); + if (0 < iVar9) { + pdVar13 = local_144; + fVar15 = in_ST3; + puVar14 = (undefined4 *)PTR_PTR_005e5f40; + local_60 = iVar9; + do { + in_ST3 = in_ST7; + puVar14 = puVar14 + 1; + uStack_68 = 0x55ac13; + _System__LStrCat3_qqrv(&local_218,"MCOST",*puVar14); + uStack_68 = 0x55ac20; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar7,local_218); + *pdVar13 = (double)fVar16; + uStack_68 = 0x55ac35; + fVar17 = in_ST3; + _System__LStrCat3_qqrv(&local_21c,"LCOST",*puVar14); + uStack_68 = 0x55ac42; + fVar16 = in_ST4; + in_ST4 = fVar17; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar7,local_21c); + pdVar13[-1] = (double)in_ST1; + uStack_68 = 0x55ac58; + fVar17 = in_ST4; + _System__LStrCat3_qqrv(&local_220,"SCOST",*puVar14); + uStack_68 = 0x55ac65; + in_ST1 = in_ST5; + in_ST5 = fVar17; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar7,local_220); + pdVar13[1] = (double)in_ST2; + uStack_68 = 0x55ac7b; + fVar17 = in_ST5; + _System__LStrCat3_qqrv(&local_224,"TCOST",*puVar14); + uStack_68 = 0x55ac88; + in_ST2 = in_ST6; + in_ST6 = fVar17; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar7,local_224); + pdVar13[-2] = (double)fVar15; + pdVar13 = pdVar13 + 6; + local_60 = local_60 + -1; + fVar15 = in_ST3; + in_ST7 = in_ST6; + } while (local_60 != 0); + } + if (local_3c._4_4_ == 0) { + uStack_68 = 0x55acba; + uVar7 = _Apodset_TApolloTable_GetMemo_qqr17System_AnsiStringi + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",0); + uStack_68 = 0x55acc4; + _System__LStrFromPChar_qqrr17System_AnsiStringpc(&local_48,uVar7); + uStack_4c = (undefined *)((uint)uStack_4c & 0xffffff); + if ((*(int *)(local_8 + 0x57c) == 6) && (*(int *)(local_8 + 0x578) == 7)) { + uStack_68 = 0x55acf7; + iVar9 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"CCODE"); + if (10 < iVar9) { + uStack_68 = 0x55ad0f; + iVar9 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"CCODE"); + uStack_68 = 0x55ad24; + iVar10 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"PCODE"); + if (iVar9 < iVar10) { + uVar7 = *(undefined4 *)(local_8 + 0x2f4); + uStack_68 = 0x55ad3d; + iVar9 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString(uVar7,"CCODE"); + uStack_68 = 0x55ad49; + _Apodset_TApolloTable_Go_qqri(uVar7,iVar9 + -10); + uStack_68 = 0x55ad5c; + iVar9 = _Apodset_TApolloTable_GetInteger_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"PCLASS"); + uStack_4c = (undefined *)CONCAT13(iVar9 == 6,(uint3)uStack_4c); + } + } + } + uStack_68 = 0x55ad71; + _Apodset_TApolloTable_AppendBlank_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + uStack_68 = 0x55ad7f; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + uStack_68 = 0x55ad8d; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + uStack_68 = 0x55ad9d; + _System__VarFromInt_qqrr14System_Variantxixi(local_234,uVar6,0xfc); + uStack_68 = 0x55adb6; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"cCode",local_234); + uStack_68 = 0x55adce; + _System__VarFromInt_qqrr14System_Variantxixi(local_244,**(undefined1 **)PTR_DAT_005e6148,1); + uStack_68 = 0x55ade7; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PCode",local_244); + uStack_68 = 0x55adf4; + _System__VarFromBool_qqrr14System_Variantxo(local_254,0); + uStack_68 = 0x55ae0d; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Pxxnm",local_254); + uStack_68 = 0x55ae1b; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_264,local_40); + uStack_68 = 0x55ae34; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),&DAT_0055f23c,local_264); + uStack_68 = 0x55ae42; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_274,local_44); + uStack_68 = 0x55ae5b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PName",local_274); + uStack_68 = 0x55ae6b; + _System__VarFromInt_qqrr14System_Variantxixi(local_284,iVar12,0xfc); + uStack_68 = 0x55ae84; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PClass",local_284); + uStack_68 = 0x55ae92; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_294,local_48); + uStack_68 = 0x55aeab; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_294); + uStack_68 = 0x55aeb9; + _System__VarFromBool_qqrr14System_Variantxo(local_2a4,(uint)uStack_4c >> 8 & 0xff); + uStack_68 = 0x55aed2; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRIV_PR",local_2a4); + uStack_68 = 0x55aee2; + _System__VarFromInt_qqrr14System_Variantxixi(local_2b4,local_50,0xfc); + uStack_68 = 0x55aefb; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"ACTTYP",local_2b4); + uStack_68 = 0x55af0b; + _System__VarFromInt_qqrr14System_Variantxixi(local_2c4,local_54,0xfc); + uStack_68 = 0x55af24; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"ACTOPT",local_2c4); + uStack_68 = 0x55af36; + _System__VarFromInt_qqrr14System_Variantxixi(&local_2e4,4,1); + uStack_68 = local_2d8; + ppuStack_6c = local_2dc; + pcStack_70 = (char *)local_2e0; + puStack_74 = local_2e4; + puStack_78 = (undefined *)0x55af60; + _System__VarFromInt_qqrr14System_Variantxixi(&local_2f4,5,1); + puStack_78 = local_2e8; + uStack_7c = local_2ec; + uStack_80 = local_2f0; + uStack_84 = local_2f4; + uStack_88 = CONCAT31((int3)((uint)local_8 >> 8),*(int *)(local_8 + 0x57c) == 7); + puStack_8c = local_2d4; + puStack_90 = (undefined1 *)0x55af92; + IIF(); + puStack_90 = (undefined1 *)0x55af9d; + iVar9 = _System__VarToInt_qqrrx14System_Variant(local_2d4); + if (0 < iVar9) { + local_60 = iVar9; + pdVar13 = local_144; + fVar15 = in_ST3; + puVar14 = (undefined4 *)PTR_PTR_005e5f40; + do { + puVar14 = puVar14 + 1; + in_ST3 = (float10)*pdVar13; + puStack_90 = (undefined1 *)0x55afc4; + _System__VarFromReal_qqrv(local_304); + puStack_90 = local_304; + puStack_94 = (undefined *)0x55afdd; + _System__LStrCat3_qqrv(&local_308,"MCOST",*puVar14); + puVar1 = puStack_90; + puStack_90 = (undefined1 *)0x55aff2; + in_ST6 = in_ST2; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),local_308,puVar1); + in_ST2 = (float10)pdVar13[-1]; + puStack_90 = (undefined1 *)0x55b000; + _System__VarFromReal_qqrv(local_318); + puStack_90 = local_318; + puStack_94 = (undefined *)0x55b019; + _System__LStrCat3_qqrv(&local_31c,"LCOST",*puVar14); + puVar1 = puStack_90; + puStack_90 = (undefined1 *)0x55b02e; + in_ST5 = in_ST1; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),local_31c,puVar1); + in_ST1 = (float10)pdVar13[1]; + puStack_90 = (undefined1 *)0x55b03c; + _System__VarFromReal_qqrv(local_32c); + puStack_90 = local_32c; + puStack_94 = (undefined *)0x55b055; + _System__LStrCat3_qqrv(&local_330,"SCOST",*puVar14); + puVar1 = puStack_90; + puStack_90 = (undefined1 *)0x55b06a; + in_ST4 = fVar16; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),local_330,puVar1); + fVar16 = (float10)pdVar13[-2]; + puStack_90 = (undefined1 *)0x55b078; + _System__VarFromReal_qqrv(local_340); + puStack_90 = local_340; + puStack_94 = (undefined *)0x55b091; + _System__LStrCat3_qqrv(&local_344,"TCOST",*puVar14); + puVar1 = puStack_90; + puStack_90 = (undefined1 *)0x55b0a6; + in_ST7 = fVar15; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),local_344,puVar1); + pdVar13 = pdVar13 + 6; + local_60 = local_60 + -1; + fVar15 = in_ST3; + } while (local_60 != 0); + } + puVar11 = *(undefined **)(local_8 + 0x57c); + if (puVar11 == (undefined *)0x4) { + puVar1 = *(undefined1 **)(local_8 + 0x578); + if (puVar1 == (undefined1 *)0x0) { + puStack_90 = &DAT_0055f3d8; + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_358; + uStack_a0 = 0x55b10b; + puStack_94 = puVar11; + FUN_00455e68(local_48,**(undefined1 **)(PTR_PTR_005e5f40 + local_2c * 4 + 4),&DAT_0055f3e4 + ); + uStack_a0 = 0x55b11c; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_354,local_358); + uStack_a0 = 0x55b135; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_354); + } + else if (puVar1 == (undefined1 *)0x7) { + puStack_90 = &DAT_0055f3d8; + puStack_9c = &local_36c; + uStack_a0 = 0x55b163; + puStack_98 = puVar1; + puStack_94 = puVar11; + FUN_00455e68(local_48,**(undefined1 **)(PTR_PTR_005e5f40 + local_2c * 4 + 4),&DAT_0055f3e4 + ); + uStack_a0 = 0x55b174; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_368,local_36c); + uStack_a0 = 0x55b18d; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_368); + uStack_a0 = 0x55b1a9; + _System__LStrCat3_qqrv + (&local_380,"TCOST",*(undefined4 *)(PTR_PTR_005e5f40 + local_2c * 4 + 4)); + uVar6 = *(undefined4 *)(local_8 + 0x2f4); + uStack_a0 = 0x55b1c5; + _Db_TDataSet_GetFieldValue_qqrx17System_AnsiString(uVar6,local_380,local_37c); + uStack_a0 = 0x55b1d7; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (uVar6,"TCOST1",local_37c); + uStack_a0 = 0x55b1e6; + _System__VarFromInt_qqrr14System_Variantxixi(local_390,0,1); + uStack_a0 = 0x55b1ff; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"TCOST2",local_390); + uStack_a0 = 0x55b20e; + _System__VarFromInt_qqrr14System_Variantxixi(local_3a0,0,1); + uStack_a0 = 0x55b227; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"TCOST3",local_3a0); + uStack_a0 = 0x55b236; + _System__VarFromInt_qqrr14System_Variantxixi(local_3b0,0,1); + uStack_a0 = 0x55b24f; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"TCOST4",local_3b0); + *(undefined4 *)(local_8 + 0x580) = 0; + uStack_a0 = 0x55b269; + _System__VarFromInt_qqrr14System_Variantxixi(local_3c0,0,1); + uStack_a0 = 0x55b282; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"K_ORD",local_3c0); + } + } + else if (puVar11 == (undefined *)0x6) { + puStack_90 = (undefined1 *)0x55b2a2; + _System__VarFromInt_qqrr14System_Variantxixi(local_3d0,1,1); + puStack_90 = (undefined1 *)0x55b2bb; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"k_ord",local_3d0); + iVar9 = *(int *)(local_8 + 0x578); + if (iVar9 == 4) { + puStack_90 = &DAT_0055f3d8; + puStack_94 = (undefined *)0x0; + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_3e4; + uStack_a0 = 0x55b2f9; + FUN_00455e68(local_48,0x31,&DAT_0055f3e4); + uStack_a0 = 0x55b30a; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_3e0,local_3e4); + uStack_a0 = 0x55b323; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_3e0); + } + else if (iVar9 == 6) { + puStack_90 = &DAT_0055f450; + puStack_94 = (undefined *)0x0; + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_3f8; + uStack_a0 = 0x55b347; + FUN_00455e68(local_48,0x32,&DAT_0055f45c); + uStack_a0 = 0x55b358; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_3f4,local_3f8); + uStack_a0 = 0x55b371; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_3f4); + uStack_a0 = 0x55b38a; + _Db_TDataSet_GetFieldValue_qqrx17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"TCOST2",local_408); + uStack_a0 = 0x55b3a3; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"TCOST3",local_408); + uStack_a0 = 0x55b3b2; + _System__VarFromInt_qqrr14System_Variantxixi(local_418,0,1); + uStack_a0 = 0x55b3cb; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"TCOST4",local_418); + } + else if (iVar9 == 7) { + if ((uStack_4c._3_1_ == '\0') || (2 < local_2c)) { + puStack_90 = &DAT_0055f3d8; + puStack_94 = *(undefined **)(local_8 + 0x57c); + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_464; + uStack_a0 = 0x55b4f4; + FUN_00455e68(local_48,**(undefined1 **)(PTR_PTR_005e5f40 + local_2c * 4 + 4), + &DAT_0055f3e4); + uStack_a0 = 0x55b505; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_460,local_464); + uStack_a0 = 0x55b51e; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_460); + } + else { + puStack_90 = &DAT_0055f450; + puStack_94 = *(undefined **)(local_8 + 0x57c); + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_42c; + uStack_a0 = 0; + uStack_a4 = 0; + puStack_a8 = (undefined *)0x0; + puStack_ac = &local_430; + uStack_b0 = 0x55b426; + FUN_00455e68(local_48,**(undefined1 **)(PTR_PTR_005e5f40 + local_2c * 4 + 4), + &DAT_0055f3e4); + uStack_b0 = 0x55b438; + FUN_00455e68(local_430,0x34,&DAT_0055f45c); + uStack_b0 = 0x55b449; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_428,local_42c); + uStack_b0 = 0x55b462; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_428); + uStack_b0 = 0x55b47b; + _Db_TDataSet_GetFieldValue_qqrx17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"TCOST2",local_440); + uStack_b0 = 0x55b494; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"TCOST3",local_440); + uStack_b0 = 0x55b4a3; + _System__VarFromInt_qqrr14System_Variantxixi(local_450,0,1); + uStack_b0 = 0x55b4bc; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"TCOST4",local_450); + } + } + } + else if (puVar11 == (undefined *)0x7) { + iVar9 = *(int *)(local_8 + 0x578); + if (iVar9 == 4) { + puStack_90 = (undefined1 *)0x55b561; + _System__VarFromInt_qqrr14System_Variantxixi(local_474,1,1); + puStack_90 = (undefined1 *)0x55b57a; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"K_ORD",local_474); + puStack_90 = &DAT_0055f468; + puStack_94 = *(undefined **)(local_8 + 0x57c); + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_488; + uStack_a0 = 0x55b5a1; + FUN_00455e68(local_48,0x31,&DAT_0055f474); + uStack_a0 = 0x55b5b2; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_484,local_488); + uStack_a0 = 0x55b5cb; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_484); + } + else if (iVar9 == 6) { + puStack_90 = (undefined1 *)0x55b750; + _System__VarFromInt_qqrr14System_Variantxixi(local_500,1,1); + puStack_90 = (undefined1 *)0x55b769; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"K_ORD",local_500); + puStack_90 = &DAT_0055f45c; + puStack_94 = *(undefined **)(local_8 + 0x57c); + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_514; + uStack_a0 = 0; + uStack_a4 = 0; + puStack_a8 = (undefined *)0x0; + puStack_ac = &local_518; + uStack_b0 = 0x55b79d; + FUN_00455e68(local_48,0x32,&DAT_0055f450); + uStack_b0 = 0x55b7af; + FUN_00455e68(local_518,0x31,&DAT_0055f474); + uStack_b0 = 0x55b7c0; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_510,local_514); + uStack_b0 = 0x55b7d9; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_510); + } + else if (iVar9 == 7) { + if (param_4 == '\0') { + puStack_90 = (undefined1 *)0x0; + puStack_94 = (undefined *)0x0; + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_4e8; + uStack_a0 = 0x55b6e0; + _Sysutils_IntToStr_qqri(local_2c + 2,&local_4f0); + uStack_a0 = 0x55b6f3; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_4ec,*local_4f0); + uStack_a0 = 0x55b70f; + FUN_00455e68(local_48,**(undefined1 **)(PTR_PTR_005e5f40 + local_2c * 4 + 4),local_4ec); + uStack_a0 = 0x55b720; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_4e4,local_4e8); + uStack_a0 = 0x55b739; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_4e4); + } + else { + puStack_90 = &DAT_0055f468; + puStack_94 = (undefined *)0x4; + puStack_98 = *(undefined1 **)(local_8 + 0x578); + puStack_9c = &local_49c; + local_4c3 = 0x31; + local_4c4 = 1; + uStack_a0 = 0x55b612; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (&local_4c0,&local_4c4); + uStack_a0 = local_4b4; + uStack_a4 = local_4b8; + puStack_a8 = local_4bc; + puStack_ac = local_4c0; + uStack_b0 = 0x55b63a; + uVar6 = _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString + (&local_4d4,&DAT_0055f480); + uStack_b0 = local_4c8; + puStack_b4 = local_4cc; + uStack_b8 = local_4d0; + puStack_bc = (undefined *)local_4d4; + puStack_c0 = (undefined1 *)CONCAT31((int3)((uint)uVar6 >> 8),1 < (int)local_2c); + puStack_c4 = local_4b0; + uStack_c8 = 0x55b666; + IIF(); + uStack_c8 = 0x55b677; + _System__VarToLStr_qqrr17System_AnsiStringrx14System_Variant(&local_4a0,local_4b0); + uStack_c8 = 0x55b693; + FUN_00455e68(local_48,**(undefined1 **)(PTR_PTR_005e5f40 + local_2c * 4 + 4),local_4a0); + uStack_c8 = 0x55b6a4; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_498,local_49c); + uStack_c8 = 0x55b6bd; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_498); + } + } + } + puStack_90 = (undefined1 *)0x55b856; + _System__VarFromInt_qqrr14System_Variantxixi(local_548,iVar12,0xfc); + puStack_90 = (undefined1 *)0x55b86f; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PClass",local_548); + if (iVar12 == 4) { + puStack_90 = (undefined1 *)0x55b894; + _System__VarFromInt_qqrr14System_Variantxixi(local_558,iVar8,0xfc); + puStack_90 = (undefined1 *)0x55b8ad; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"SClass",local_558); + if (iVar8 == 1) { + puStack_90 = (undefined1 *)0x55b8c3; + _System__VarFromInt_qqrr14System_Variantxixi(local_568,local_2c,0xfc); + puStack_90 = (undefined1 *)0x55b8dc; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"K_ORD",local_568); + } + } + else if (iVar12 - 6U < 2) { + puStack_90 = (undefined1 *)0x55b8ee; + _System__VarFromInt_qqrr14System_Variantxixi(local_578,local_2c,0xfc); + puStack_90 = (undefined1 *)0x55b907; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"K_ORD",local_578); + } + if (*(int *)(local_8 + 0x57c) - 7U < 2) { + puStack_90 = (undefined1 *)0x55b925; + _System__VarFromBool_qqrr14System_Variantxo(local_588,1); + puStack_90 = (undefined1 *)0x55b940; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(DAT_005fa128 + 0x2f4),"Chamt",local_588); + } + if (((*(int *)(local_8 + 0x57c) == 4) && (iVar8 == 0)) && (*(int *)(local_8 + 0x580) == 1)) { + puStack_90 = &DAT_0055f450; + puStack_94 = (undefined *)0x0; + puStack_98 = (undefined1 *)0x0; + puStack_9c = &local_59c; + uStack_a0 = 0x55b989; + FUN_00455e68(local_48,0x31,&DAT_0055f49c); + uStack_a0 = 0x55b99a; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_598,local_59c); + uStack_a0 = 0x55b9b3; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRJ_MEMO",local_598); + uVar6 = *(undefined4 *)(local_8 + 0x2f4); + uStack_a0 = 0x55b9c8; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar6,"TCOST1"); + uStack_a0 = 0x55b9d3; + _System__VarFromReal_qqrv(local_5ac); + uStack_a0 = 0x55b9e5; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (uVar6,"TCOST2",local_5ac); + uVar6 = *(undefined4 *)(local_8 + 0x2f4); + uStack_a0 = 0x55b9fa; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar6,"MCOST1"); + uStack_a0 = 0x55ba05; + _System__VarFromReal_qqrv(local_5bc); + uStack_a0 = 0x55ba17; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (uVar6,"MCOST2",local_5bc); + uVar6 = *(undefined4 *)(local_8 + 0x2f4); + uStack_a0 = 0x55ba2c; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar6,"LCOST1"); + uStack_a0 = 0x55ba37; + _System__VarFromReal_qqrv(local_5cc); + uStack_a0 = 0x55ba49; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (uVar6,"LCOST2",local_5cc); + uVar6 = *(undefined4 *)(local_8 + 0x2f4); + uStack_a0 = 0x55ba5e; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(uVar6,"SCOST1"); + uStack_a0 = 0x55ba69; + _System__VarFromReal_qqrv(local_5dc); + uStack_a0 = 0x55ba7b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (uVar6,"SCOST2",local_5dc); + uStack_a0 = 0x55ba8a; + _System__VarFromInt_qqrr14System_Variantxixi(local_5ec,0,1); + uStack_a0 = 0x55baa3; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"K_ORD",local_5ec); + } + if ((*(int *)(local_8 + 0x57c) == 10) && (*(int *)(local_8 + 0x578) == 0)) { + puStack_90 = (undefined1 *)0x55bad0; + _System__VarFromBool_qqrr14System_Variantxo(local_5fc,1); + puStack_90 = (undefined1 *)0x55bae9; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"PRIV_PR",local_5fc); + puStack_90 = (undefined1 *)0x55bafd; + _Controls_TControl_SetText_qqrx17System_AnsiString + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x40),&LAB_0055f508); + puStack_90 = (undefined1 *)0x55bb0e; + _Comctrls_TProgressBar_SetPosition_qqri(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),0); + local_28 = (undefined1 *)0x0; + puStack_90 = (undefined1 *)0x55bb1e; + FUN_0042c83c(0,0,0); + puStack_90 = (undefined1 *)0x55bb2d; + _Forms_TCustomForm_Show_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x40)); + puStack_90 = (undefined1 *)0x55bb3b; + local_30 = (int *)_Apodset_TApolloTable__bctr_qqrp18Classes_TComponent + (_Apodset_TApolloTable__exref,1,0); + puStack_90 = (undefined1 *)0x55bb49; + _Apodset_TApolloTable_SetExclusive_qqrus(local_30,0xffffffff); + puStack_90 = *(undefined1 **)(*(int *)PTR_DAT_005e5f8c + 0x38); + puStack_94 = &DAT_0055f524; + puStack_98 = (undefined1 *)0x55bb6d; + _Sysutils_IntToStr_qqri(**(undefined1 **)PTR_DAT_005e6148,&local_604); + puStack_98 = local_604; + puStack_9c = (undefined4 *)&DAT_0055f530; + uStack_a0 = 0x55bb88; + _System__LStrCatN_qqrv(&local_600,4); + uStack_a0 = 0x55bb96; + _Apodset_TApolloTable_SetTableName_qqr17System_AnsiString(local_30,local_600); + uStack_a0 = 0x55bba0; + _Apodset_TApolloTable_SetTableType_qqr25Apcommon_TApolloTableType(local_30,2); + uStack_a0 = 0x55bbad; + (**(code **)(*local_30 + 0x178))(local_30,1); + uStack_a0 = 0x55bbb5; + _Apodset_TApolloTable_Pack_qqrv(local_30); + uStack_a0 = 0x55bbbd; + FUN_0045e0d4(local_30); + uStack_a0 = 0x55bbca; + _Apodset_TApolloTable_SetOrder_qqri(local_30,1); + uStack_a0 = 0x55bbd2; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + uStack_a0 = 0x55bbda; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + uStack_a0 = 0x55bef5; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + uStack_a0 = 0x55bbf4; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_610); + uStack_a0 = 0x55bc05; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_610,&local_60c); + uStack_a0 = local_60c; + uStack_a4 = 0x55bc1e; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_618); + uStack_a4 = 0x55bc2f; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_618,&local_614); + uStack_a4 = local_614; + puStack_a8 = &DAT_0055f560; + puStack_ac = (undefined4 *)0x55bc4d; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_620); + puStack_ac = (undefined4 *)0x55bc5e; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_620,&local_61c); + puStack_ac = local_61c; + uStack_b0 = 0x55bc74; + _System__LStrCatN_qqrv(&local_608,4); + uStack_b0 = local_608; + puStack_b4 = &DAT_0055f57c; + uStack_b8 = 0x55bc8e; + _Sysutils_IntToStr_qqri(local_28,&local_628); + uStack_b8 = local_628; + puStack_bc = &DAT_0055f594; + puStack_c0 = (undefined1 *)0x55bca9; + _System__LStrCatN_qqrv(&local_624,3); + puVar2 = puStack_bc; + puStack_bc = (undefined *)0x55bcba; + FUN_0042c83c(&LAB_0055f5a0,local_624,puVar2); + puStack_bc = (undefined *)0x55bcc2; + _Db_TDataSet_Edit_qqrv(local_30); + puStack_bc = (undefined *)0x55bccf; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,"QTY1_B"); + if (fVar16 == (float10)0.0) { + puStack_bc = (undefined *)0x55bce7; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f5c8); + puStack_bc = (undefined *)0x55bcf2; + _System__VarFromReal_qqrv(local_638); + puStack_bc = (undefined *)0x55bd05; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"QTY1_N",local_638); + puStack_bc = (undefined *)0x55bd14; + _System__VarFromInt_qqrr14System_Variantxixi(local_648,0,1); + puStack_bc = (undefined *)0x55bd27; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"QTY1_H",local_648); + fVar15 = in_ST4; + } + else { + puStack_bc = (undefined *)0x1; + puStack_c0 = (undefined1 *)0x4; + puStack_c4 = (undefined1 *)0x55bd3d; + fVar15 = in_ST7; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,"QTY1_H"); + puStack_c4 = (undefined1 *)0x55bd48; + _System__VarFromReal_qqrv(&local_668); + puStack_c4 = local_65c; + uStack_c8 = local_660; + uStack_cc = local_664; + uStack_d0 = local_668; + uStack_d4 = 0x55bd72; + _System__VarFromInt_qqrr14System_Variantxixi(&local_678,1,1); + uStack_d4 = local_66c; + uStack_d8 = local_670; + uStack_dc = local_674; + uStack_e0 = local_678; + uStack_e4 = 0x55bd97; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,"QTY1_H"); + fVar16 = (float10)0.0; + uStack_e4 = CONCAT31((int3)(CONCAT22(extraout_var, + (ushort)(in_ST1 < fVar16) << 8 | + (ushort)(NAN(in_ST1) || NAN(fVar16)) << 10 | + (ushort)(in_ST1 == fVar16) << 0xe) >> 8), + (in_ST1 == fVar16) != 0); + puStack_e8 = local_658; + uStack_ec._0_2_ = 0xbdb0; + uStack_ec._2_2_ = 0x55; + fVar16 = fVar15; + IIF(); + uStack_ec = local_658; + uStack_f0 = 0x55bdc4; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,"QTY1_B"); + uStack_f0 = 0x55bdcf; + _System__VarFromReal_qqrv(local_688); + puVar1 = uStack_ec; + uStack_ec._0_2_ = 0xbddb; + uStack_ec._2_2_ = 0x55; + _System__VarMul_qqrr14System_Variantrx14System_Variant(puVar1,local_688); + uStack_ec = local_658; + uStack_f0 = 0x55bdef; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,"QTY1_N"); + uStack_f0 = 0x55bdfa; + _System__VarFromReal_qqrv(local_698); + puVar1 = uStack_ec; + uStack_ec._0_2_ = 0xbe06; + uStack_ec._2_2_ = 0x55; + _System__VarMul_qqrr14System_Variantrx14System_Variant(puVar1,local_698); + uStack_ec._0_2_ = 0xbe11; + uStack_ec._2_2_ = 0x55; + in_ST1 = in_ST5; + in_ST5 = fVar16; + _System__VarToReal_qqrrx14System_Variant(local_658); + uStack_f4 = SUB104(in_ST2,0); + uStack_f0 = (undefined4)((unkuint10)in_ST2 >> 0x20); + uStack_ec._0_2_ = (undefined2)((unkuint10)in_ST2 >> 0x40); + uStack_f8 = 0x55be1d; + in_ST2 = in_ST6; + in_ST6 = in_ST5; + MROUNDUD(); + uStack_f8 = 0x55be31; + local_6a4 = in_ST3; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f5c8); + in_ST3 = in_ST7; + if (local_6a4 != in_ST4) { + puStack_bc = (undefined *)0x55be4b; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f5c8); + puStack_bc = (undefined *)0x55be56; + _System__VarFromReal_qqrv(local_6b4); + puStack_bc = (undefined *)0x55be69; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"QTY1_N",local_6b4); + puStack_bc = (undefined *)0x55be78; + _System__VarFromInt_qqrr14System_Variantxixi(local_6c4,0,1); + puStack_bc = (undefined *)0x55be8b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"QTY1_B",local_6c4); + puStack_bc = (undefined *)0x55be9a; + _System__VarFromInt_qqrr14System_Variantxixi(local_6d4,0,1); + puStack_bc = (undefined *)0x55bead; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"QTY1_H",local_6d4); + } + } + puStack_bc = (undefined *)0x55beba; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + fVar16 = ((float10)(int)local_28 / (float10)(int)puVar11) * (float10)100.0; + puStack_bc = (undefined *)0x55bed6; + in_ST7 = in_ST6; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + uStack_a0 = 0x55bee7; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + in_ST4 = fVar15; + } + uStack_a0 = 0x55bf05; + _Apodset_TApolloTable_Commit_qqrv(local_30); + uStack_a0 = 0x55bf12; + (**(code **)(*local_30 + 0x178))(local_30,0); + uStack_a0 = 0x55bf1a; + _System_TObject_Free_qqrv(local_30); + uStack_a0 = 0x55bf29; + _Forms_TCustomForm_Close_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x40)); + } + puStack_90 = (undefined1 *)0x55bf37; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + if (*(int *)(local_8 + 0x588) == 3) { + local_40 = 0x55bf5b; + _Controls_TControl_SetText_qqrx17System_AnsiString + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x40),&LAB_0055f508); + local_40 = 0x55bf6c; + _Comctrls_TProgressBar_SetPosition_qqri(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),0); + local_28 = (undefined1 *)0x0; + local_40 = 0x55bf7c; + FUN_0042c83c(0,0,0); + local_40 = 0x55bf8b; + _Forms_TCustomForm_Show_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x40)); + local_40 = 0x55bf99; + local_30 = (int *)_Apodset_TApolloTable__bctr_qqrp18Classes_TComponent + (_Apodset_TApolloTable__exref,1,0); + local_40 = 0x55bfa7; + _Apodset_TApolloTable_SetExclusive_qqrus(local_30,0xffffffff); + local_40 = *(uint *)(*(int *)PTR_DAT_005e5f8c + 0x38); + local_44 = &DAT_0055f524; + local_48 = (undefined *)0x55bfcb; + _Sysutils_IntToStr_qqri(**(undefined1 **)PTR_DAT_005e6148,&local_6dc); + local_48 = local_6dc; + uStack_4c = &DAT_0055f530; + local_50 = (undefined1 *)0x55bfe6; + _System__LStrCatN_qqrv(&local_6d8,4); + local_50 = (undefined1 *)0x55bff4; + _Apodset_TApolloTable_SetTableName_qqr17System_AnsiString(local_30,local_6d8); + local_50 = (undefined1 *)0x55bffe; + _Apodset_TApolloTable_SetTableType_qqr25Apcommon_TApolloTableType(local_30,2); + local_50 = (undefined1 *)0x55c00b; + (**(code **)(*local_30 + 0x178))(local_30,1); + local_50 = (undefined1 *)0x55c013; + _Apodset_TApolloTable_Pack_qqrv(local_30); + local_50 = (undefined1 *)0x55c01b; + FUN_0045e0d4(local_30); + local_50 = (undefined1 *)0x55c028; + _Apodset_TApolloTable_SetOrder_qqri(local_30,1); + switch(*(undefined4 *)(local_8 + 0x578)) { + case 2: + if (*(int *)(local_8 + 0x57c) == 8) { + local_50 = (undefined1 *)0x55e53b; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55e543; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55e6c9; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55e55d; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_f44); + local_50 = (undefined1 *)0x55e56e; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_f44,&local_f40); + local_50 = (undefined1 *)local_f40; + local_54 = (undefined **)0x55e587; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_f4c); + local_54 = (undefined **)0x55e598; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_f4c,&local_f48); + local_54 = local_f48; + puStack_58 = &DAT_0055f560; + local_5c = 0x55e5b6; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_f54); + local_5c = 0x55e5c7; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_f54,&local_f50); + local_5c = local_f50; + local_60 = 0x55e5dd; + _System__LStrCatN_qqrv(&local_f3c,4); + local_60 = local_f3c; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55e5f7; + _Sysutils_IntToStr_qqri(local_28,&local_f5c); + uStack_68 = local_f5c; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55e612; + _System__LStrCatN_qqrv(&local_f58,3); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55e623; + FUN_0042c83c(&LAB_0055fce8,local_f58,ppuVar3); + ppuStack_6c = (undefined1 **)0x55e62b; + _Db_TDataSet_Edit_qqrv(local_30); + ppuStack_6c = (undefined1 **)0x55e638; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f5c8); + ppuStack_6c = (undefined1 **)0x55e643; + _System__VarFromReal_qqrv(local_f6c); + ppuStack_6c = (undefined1 **)0x55e656; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8c0,local_f6c); + ppuStack_6c = (undefined1 **)0x55e663; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f8b0); + ppuStack_6c = (undefined1 **)0x55e66e; + _System__VarFromReal_qqrv(local_f7c); + ppuStack_6c = (undefined1 **)0x55e681; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_f7c); + ppuStack_6c = (undefined1 **)0x55e68e; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + ppuStack_6c = (undefined1 **)0x55e6aa; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55e6bb; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55e6d9; + _Apodset_TApolloTable_Commit_qqrv(local_30); + } + break; + case 4: + if (((*(int *)(local_8 + 0x57c) == 4) && (iVar8 == 0)) && (*(int *)(local_8 + 0x580) == 1) + ) { + uStack_4c._0_3_ = (uint3)(ushort)uStack_4c; + local_54 = (undefined **)&LAB_0055c16f; + puStack_58 = (undefined *)*in_FS_OFFSET; + *in_FS_OFFSET = (uint)&puStack_58; + local_5c = 0x55c0ae; + local_50 = &stack0xfffffffc; + _Apodset_TApolloTable_Query_qqrx17System_AnsiString + (local_30,"BDCODE1=\"T1\" .or. BDCODE1=\"E1\" .or. BDCODE1=\"C1\""); + local_5c = 0x55c0b6; + iVar12 = _Apodset_TApolloTable_Count_qqrv(local_30); + if (iVar12 < 1) { +LAB_0055c157: + puVar1 = local_50; + *in_FS_OFFSET = (uint)puStack_58; + local_50 = &DAT_0055c176; + local_54 = (undefined **)0x55c16e; + _Apodset_TApolloTable_Query_qqrx17System_AnsiString(local_30,0,puVar1); + return; + } + local_5c = 0x55c0cb; + _Apodset_TApolloTable_Query_qqrx17System_AnsiString + (local_30,"BDCODE1=\"T9\" .or. BDCODE1=\"E9\" .or. BDCODE1=\"C9\""); + local_5c = 0x55c0d3; + iVar12 = _Apodset_TApolloTable_Count_qqrv(local_30); + if (iVar12 < 1) { + local_48 = &DAT_0055f11c; + uStack_4c = (undefined *)0x7f04; + local_50 = (undefined1 *)0x1; + local_158[0] = &DAT_0055f12c; + local_54 = local_158; + puStack_58 = (undefined *)0x0; + local_5c = 0x55c153; + FUN_0044b680(*(undefined4 *)(*(int *)_Forms_Application_exref + 0x30),&LAB_0055f788, + &DAT_0055f76c); + uStack_4c._0_3_ = CONCAT12(1,(ushort)uStack_4c); + goto LAB_0055c157; + } + local_48 = &DAT_0055f11c; + uStack_4c = (undefined *)0x7f04; + local_50 = (undefined1 *)0x1; + local_158[0] = &DAT_0055f12c; + local_54 = local_158; + puStack_58 = (undefined *)0x0; + local_5c = 0x55c110; + FUN_0044b680(*(undefined4 *)(*(int *)_Forms_Application_exref + 0x30),&LAB_0055f694, + &DAT_0055f674); + local_5c = 0x55c115; + _System__TryFinallyExit_qqrv(); + goto LAB_0055e966; + } + if (*(int *)(local_8 + 0x57c) == 6) { + local_50 = (undefined1 *)0x55caf5; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55cafd; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55cdc2; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55cb17; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_958); + local_50 = (undefined1 *)0x55cb28; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_958,&local_954); + local_50 = (undefined1 *)local_954; + local_54 = (undefined **)0x55cb41; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_960); + local_54 = (undefined **)0x55cb52; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_960,&local_95c); + local_54 = local_95c; + puStack_58 = &DAT_0055f560; + local_5c = 0x55cb70; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_968); + local_5c = 0x55cb81; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_968,&local_964); + local_5c = local_964; + local_60 = 0x55cb97; + _System__LStrCatN_qqrv(&local_950,4); + local_60 = local_950; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55cbb1; + _Sysutils_IntToStr_qqri(local_28,&local_970); + uStack_68 = local_970; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55cbcc; + _System__LStrCatN_qqrv(&local_96c,3); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55cbdd; + FUN_0042c83c(&DAT_0055fa50,local_96c,ppuVar3); + ppuStack_6c = (undefined1 **)0x55cbe5; + _Db_TDataSet_Edit_qqrv(local_30); + ppuStack_6c = (undefined1 **)0x55cbf4; + _System__VarFromInt_qqrr14System_Variantxixi(local_980,0,1); + ppuStack_6c = (undefined1 **)0x55cc07; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_980); + ppuStack_6c = (undefined1 **)0x55cc16; + _System__VarFromInt_qqrr14System_Variantxixi(local_990,0,1); + ppuStack_6c = (undefined1 **)0x55cc29; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8c0,local_990); + ppuStack_6c = (undefined1 **)0x55cc38; + _System__VarFromInt_qqrr14System_Variantxixi(local_9a0,0,1); + ppuStack_6c = (undefined1 **)0x55cc4b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_9a0); + ppuStack_6c = (undefined1 **)0x55cc5a; + _System__VarFromInt_qqrr14System_Variantxixi(local_9b0,0,1); + ppuStack_6c = (undefined1 **)0x55cc6d; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT2",local_9b0); + ppuStack_6c = (undefined1 **)0x55cc7c; + _System__VarFromInt_qqrr14System_Variantxixi(local_9c0,0,1); + ppuStack_6c = (undefined1 **)0x55cc8f; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT3",local_9c0); + ppuStack_6c = (undefined1 **)0x55cc9e; + _System__VarFromInt_qqrr14System_Variantxixi(local_9d0,0,1); + ppuStack_6c = (undefined1 **)0x55ccb1; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT4",local_9d0); + ppuStack_6c = (undefined1 **)&DAT_0055f31c; + pcStack_70 = (char *)0x55ccc9; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"BDCODE1",&local_9d8); + pcStack_70 = (char *)0x55ccdc; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_9d4,*local_9d8); + pcStack_70 = (char *)local_9d4; + puStack_74 = (undefined1 *)0x55cce8; + cVar4 = MPOS(); + if (cVar4 == '\0') { + puStack_74 = &DAT_0055fa8c; + puStack_78 = (undefined *)0x55cd04; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString + (local_30,"BDCODE1",&local_9e0); + puStack_78 = (undefined *)0x55cd17; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_9dc,*local_9e0); + puStack_78 = local_9dc; + uStack_7c = 0x55cd23; + cVar4 = MPOS(); + if (cVar4 != '\0') { + puStack_74 = (undefined1 *)0x55cd3a; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString + (local_30,"UNIT1",&local_9e4); + puStack_74 = (undefined1 *)local_9e4; + puStack_78 = &DAT_0055f860; + uStack_7c = 0x55cd4b; + cVar4 = MPOS(); + if (cVar4 != '\0') goto LAB_0055cd4f; + } + } + else { +LAB_0055cd4f: + puStack_74 = (undefined1 *)0x55cd5c; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f5c8); + puStack_74 = (undefined1 *)0x55cd67; + _System__VarFromReal_qqrv(local_9f4); + puStack_74 = (undefined1 *)0x55cd7a; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_9f4); + } + puStack_74 = (undefined1 *)0x55cd87; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + puStack_74 = (undefined1 *)0x55cda3; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55cdb4; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55cdd2; + _Apodset_TApolloTable_Commit_qqrv(local_30); + } + else if (*(int *)(local_8 + 0x57c) == 7) { + local_50 = (undefined1 *)0x55cdef; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55cdf7; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55cf96; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55ce11; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_a00); + local_50 = (undefined1 *)0x55ce22; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_a00,&local_9fc); + local_50 = (undefined1 *)local_9fc; + local_54 = (undefined **)0x55ce3b; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_a08); + local_54 = (undefined **)0x55ce4c; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_a08,&local_a04); + local_54 = local_a04; + puStack_58 = &DAT_0055f560; + local_5c = 0x55ce6a; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_a10); + local_5c = 0x55ce7b; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_a10,&local_a0c); + local_5c = local_a0c; + local_60 = 0x55ce91; + _System__LStrCatN_qqrv(&local_9f8,4); + local_60 = local_9f8; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55ceab; + _Sysutils_IntToStr_qqri(local_28,&local_a18); + uStack_68 = local_a18; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55cec6; + _System__LStrCatN_qqrv(&local_a14,3); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55ced7; + FUN_0042c83c(&DAT_0055fa9c,local_a14,ppuVar3); + ppuStack_6c = (undefined1 **)0x55cedf; + _Db_TDataSet_Edit_qqrv(local_30); + ppuStack_6c = (undefined1 **)0x55ceec; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055fab8); + ppuStack_6c = (undefined1 **)0x55cef7; + _System__VarFromReal_qqrv(local_a28); + ppuStack_6c = (undefined1 **)0x55cf0a; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_a28); + ppuStack_6c = (undefined1 **)0x55cf19; + _System__VarFromInt_qqrr14System_Variantxixi(local_a38,0,1); + ppuStack_6c = (undefined1 **)0x55cf2c; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8c0,local_a38); + ppuStack_6c = (undefined1 **)0x55cf3b; + _System__VarFromInt_qqrr14System_Variantxixi(local_a48,0,1); + ppuStack_6c = (undefined1 **)0x55cf4e; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_a48); + ppuStack_6c = (undefined1 **)0x55cf5b; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + ppuStack_6c = (undefined1 **)0x55cf77; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55cf88; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55cfa6; + _Apodset_TApolloTable_Commit_qqrv(local_30); + } + break; + case 6: + if (*(int *)(local_8 + 0x57c) == 6) { + local_50 = (undefined1 *)0x55cfc3; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55cfcb; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55d195; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55cfe5; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_a54); + local_50 = (undefined1 *)0x55cff6; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_a54,&local_a50); + local_50 = (undefined1 *)local_a50; + local_54 = (undefined **)0x55d00f; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_a5c); + local_54 = (undefined **)0x55d020; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_a5c,&local_a58); + local_54 = local_a58; + puStack_58 = &DAT_0055f560; + local_5c = 0x55d03e; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_a64); + local_5c = 0x55d04f; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_a64,&local_a60); + local_5c = local_a60; + local_60 = 0x55d065; + _System__LStrCatN_qqrv(&local_a4c,4); + local_60 = local_a4c; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55d07f; + _Sysutils_IntToStr_qqri(local_28,&local_a6c); + uStack_68 = local_a6c; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55d09a; + _System__LStrCatN_qqrv(&local_a68,3); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55d0ab; + FUN_0042c83c(&DAT_0055fac8,local_a68,ppuVar3); + ppuStack_6c = (undefined1 **)0x55d0b3; + _Db_TDataSet_Edit_qqrv(local_30); + ppuStack_6c = (undefined1 **)0x55d0c0; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f8b0); + ppuStack_6c = (undefined1 **)0x55d0cb; + _System__VarFromReal_qqrv(local_a7c); + ppuStack_6c = (undefined1 **)0x55d0de; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8c0,local_a7c); + ppuStack_6c = (undefined1 **)0x55d0ed; + _System__VarFromInt_qqrr14System_Variantxixi(local_a8c,0,1); + ppuStack_6c = (undefined1 **)0x55d100; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_a8c); + ppuStack_6c = (undefined1 **)0x55d10d; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,"T_AMT2"); + ppuStack_6c = (undefined1 **)0x55d118; + _System__VarFromReal_qqrv(local_a9c); + ppuStack_6c = (undefined1 **)0x55d12b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT3",local_a9c); + ppuStack_6c = (undefined1 **)0x55d13a; + _System__VarFromInt_qqrr14System_Variantxixi(local_aac,0,1); + ppuStack_6c = (undefined1 **)0x55d14d; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT4",local_aac); + ppuStack_6c = (undefined1 **)0x55d15a; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + ppuStack_6c = (undefined1 **)0x55d176; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55d187; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55d1a5; + _Apodset_TApolloTable_Commit_qqrv(local_30); + local_50 = (undefined1 *)0x55d1b3; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + local_50 = (undefined1 *)0x55d1c4; + _System__VarFromInt_qqrr14System_Variantxixi(local_abc,local_2c + 1,0xfc); + local_50 = (undefined1 *)0x55d1dd; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"k_ord",local_abc); + local_50 = (undefined1 *)0x55d1eb; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + } + if (*(int *)(local_8 + 0x57c) == 7) { + local_50 = (undefined1 *)0x55d203; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55d20b; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55d3bc; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55d225; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_ac8); + local_50 = (undefined1 *)0x55d236; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_ac8,&local_ac4); + local_50 = (undefined1 *)local_ac4; + local_54 = (undefined **)0x55d24f; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_ad0); + local_54 = (undefined **)0x55d260; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_ad0,&local_acc); + local_54 = local_acc; + puStack_58 = &DAT_0055f560; + local_5c = 0x55d27e; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_ad8); + local_5c = 0x55d28f; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_ad8,&local_ad4); + local_5c = local_ad4; + local_60 = 0x55d2a5; + _System__LStrCatN_qqrv(&local_ac0,4); + local_60 = local_ac0; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55d2bf; + _Sysutils_IntToStr_qqri(local_28,&local_ae0); + uStack_68 = local_ae0; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55d2da; + _System__LStrCatN_qqrv(&local_adc,3); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55d2eb; + FUN_0042c83c(&LAB_0055fae4,local_adc,ppuVar3); + ppuStack_6c = (undefined1 **)0x55d2f3; + _Db_TDataSet_Edit_qqrv(local_30); + ppuStack_6c = (undefined1 **)0x55d300; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f8b0); + ppuStack_6c = (undefined1 **)0x55d30b; + _System__VarFromReal_qqrv(local_af0); + ppuStack_6c = (undefined1 **)0x55d31e; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_af0); + ppuStack_6c = (undefined1 **)0x55d32b; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f5c8); + ppuStack_6c = (undefined1 **)0x55d336; + _System__VarFromReal_qqrv(local_b00); + ppuStack_6c = (undefined1 **)0x55d349; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_b00); + ppuStack_6c = (undefined1 **)0x55d356; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,"T_AMT2"); + ppuStack_6c = (undefined1 **)0x55d361; + _System__VarFromReal_qqrv(local_b10); + ppuStack_6c = (undefined1 **)0x55d374; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT4",local_b10); + ppuStack_6c = (undefined1 **)0x55d381; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + ppuStack_6c = (undefined1 **)0x55d39d; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55d3ae; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55d3cc; + _Apodset_TApolloTable_Commit_qqrv(local_30); + local_50 = (undefined1 *)0x55d3da; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + local_50 = (undefined1 *)0x55d3ec; + _System__VarFromInt_qqrr14System_Variantxixi(local_b20,1,1); + local_50 = (undefined1 *)0x55d405; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"k_ord",local_b20); + local_50 = (undefined1 *)0x55d413; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + } + break; + case 7: + if (*(int *)(local_8 + 0x57c) == 4) { + local_50 = (undefined1 *)0x55d430; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55d438; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55d5da; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55d452; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_b2c); + local_50 = (undefined1 *)0x55d463; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_b2c,&local_b28); + local_50 = (undefined1 *)local_b28; + local_54 = (undefined **)0x55d47c; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_b34); + local_54 = (undefined **)0x55d48d; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_b34,&local_b30); + local_54 = local_b30; + puStack_58 = &DAT_0055f560; + local_5c = 0x55d4ab; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_b3c); + local_5c = 0x55d4bc; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_b3c,&local_b38); + local_5c = local_b38; + local_60 = 0x55d4d2; + _System__LStrCatN_qqrv(&local_b24,4); + local_60 = local_b24; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55d4ec; + _Sysutils_IntToStr_qqri(local_28,&local_b44); + uStack_68 = local_b44; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55d507; + _System__LStrCatN_qqrv(&local_b40,3); + pcStack_70 = (char *)local_b40; + puStack_74 = (undefined1 *)0x55d51c; + _Sysutils_IntToStr_qqri(local_2c,&local_b48); + puStack_74 = (undefined1 *)0x55d52c; + _System__LStrCat_qqrv(&local_b48,&DAT_0055fb00); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55d539; + FUN_0042c83c(local_b48,pcStack_70,ppuVar3); + ppuStack_6c = (undefined1 **)0x55d541; + _Db_TDataSet_Edit_qqrv(local_30); + ppuStack_6c = (undefined1 **)0x55d550; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_b60); + ppuStack_6c = (undefined1 **)0x55d566; + _System__LStrCat3_qqrv(&local_b5c,&DAT_0055fb20,local_b60); + ppuStack_6c = (undefined1 **)0x55d574; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,local_b5c); + ppuStack_6c = (undefined1 **)0x55d57f; + _System__VarFromReal_qqrv(local_b58); + ppuStack_6c = (undefined1 **)0x55d592; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f5c8,local_b58); + ppuStack_6c = (undefined1 **)0x55d59f; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + ppuStack_6c = (undefined1 **)0x55d5bb; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55d5cc; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55d5ea; + _Apodset_TApolloTable_Commit_qqrv(local_30); + local_50 = (undefined1 *)0x55d5f8; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + iVar12 = local_2c + 1; + local_50 = (undefined1 *)0x55d609; + _Sysutils_IntToStr_qqri(iVar12,&local_b78); + local_50 = (undefined1 *)0x55d61f; + _System__LStrCat3_qqrv(&local_b74,"Mcost",local_b78); + local_50 = (undefined1 *)0x55d633; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_b74); + local_50 = (undefined1 *)0x55d63e; + _System__VarFromReal_qqrv(local_b70); + local_50 = (undefined1 *)0x55d657; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Mcost1",local_b70); + local_50 = (undefined1 *)0x55d664; + _Sysutils_IntToStr_qqri(iVar12,&local_b90); + local_50 = (undefined1 *)0x55d67a; + _System__LStrCat3_qqrv(&local_b8c,"Lcost",local_b90); + local_50 = (undefined1 *)0x55d68e; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_b8c); + local_50 = (undefined1 *)0x55d699; + _System__VarFromReal_qqrv(local_b88); + local_50 = (undefined1 *)0x55d6b2; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Lcost1",local_b88); + local_50 = (undefined1 *)0x55d6bf; + _Sysutils_IntToStr_qqri(iVar12,&local_ba8); + local_50 = (undefined1 *)0x55d6d5; + _System__LStrCat3_qqrv(&local_ba4,"Scost",local_ba8); + local_50 = (undefined1 *)0x55d6e9; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_ba4); + local_50 = (undefined1 *)0x55d6f4; + _System__VarFromReal_qqrv(local_ba0); + local_50 = (undefined1 *)0x55d70d; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Scost1",local_ba0); + local_50 = (undefined1 *)0x55d71a; + _Sysutils_IntToStr_qqri(iVar12,&local_bc0); + local_50 = (undefined1 *)0x55d730; + _System__LStrCat3_qqrv(&local_bbc,"Tcost",local_bc0); + local_50 = (undefined1 *)0x55d744; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_bbc); + local_50 = (undefined1 *)0x55d74f; + _System__VarFromReal_qqrv(local_bb8); + local_50 = (undefined1 *)0x55d768; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Tcost1",local_bb8); + local_50 = (undefined1 *)0x55d777; + _System__VarFromInt_qqrr14System_Variantxixi(local_bd0,0,1); + local_50 = (undefined1 *)0x55d790; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"k_ord",local_bd0); + local_50 = (undefined1 *)0x55d79e; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + } + else if (*(int *)(local_8 + 0x57c) == 6) { + local_50 = (undefined1 *)0x55d7c3; + _Apoenv_TApolloEnv_SetDeleted_qqrxus(**(undefined4 **)PTR_DAT_005e6090,0); + local_50 = (undefined1 *)0x55d7cb; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55d7d3; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55dd2a; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55d7ed; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_bdc); + local_50 = (undefined1 *)0x55d7fe; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_bdc,&local_bd8); + local_50 = (undefined1 *)local_bd8; + local_54 = (undefined **)0x55d817; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_be4); + local_54 = (undefined **)0x55d828; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_be4,&local_be0); + local_54 = local_be0; + puStack_58 = &DAT_0055f560; + local_5c = 0x55d846; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_bec); + local_5c = 0x55d857; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_bec,&local_be8); + local_5c = local_be8; + local_60 = 0x55d86d; + _System__LStrCatN_qqrv(&local_bd4,4); + local_60 = local_bd4; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55d887; + _Sysutils_IntToStr_qqri(local_28,&local_bf4); + uStack_68 = local_bf4; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55d8a2; + _System__LStrCatN_qqrv(&local_bf0,3); + pcStack_70 = (char *)local_bf0; + puStack_74 = (undefined1 *)0x55d8b7; + _Sysutils_IntToStr_qqri(local_2c,&local_bf8); + puStack_74 = (undefined1 *)0x55d8c7; + _System__LStrCat_qqrv(&local_bf8,&DAT_0055fb00); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55d8d4; + FUN_0042c83c(local_bf8,pcStack_70,ppuVar3); + ppuStack_6c = &local_34; + pcStack_70 = (char *)0x55d8eb; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"bdcode1",&local_bfc); + pcStack_70 = (char *)0x55d900; + _System__LStrCopy_qqrv(local_bfc,1,1); + pcStack_70 = (char *)0x55d90f; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_c04); + pcStack_70 = (char *)0x55d925; + _System__LStrCat3_qqrv(&local_c00,&DAT_0055fbbc,local_c04); + pcStack_70 = (char *)0x55d933; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,local_c00); + if (fVar16 == (float10)0.0) { + pcStack_70 = "LMSBDW"; + puStack_74 = local_34; + puStack_78 = (undefined *)0x55d94c; + cVar4 = MPOS(); + if (cVar4 == '\0') goto LAB_0055d95d; + pcStack_70 = (char *)0x55d958; + _Apodset_TApolloTable_Delete_qqrv(local_30); + } + else { +LAB_0055d95d: + pcStack_70 = (char *)0x55d965; + _Db_TDataSet_Edit_qqrv(local_30); + pcStack_70 = (char *)0x55d974; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_c1c); + pcStack_70 = (char *)0x55d98a; + _System__LStrCat3_qqrv(&local_c18,&DAT_0055fb20,local_c1c); + pcStack_70 = (char *)0x55d998; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,local_c18); + pcStack_70 = (char *)0x55d9a3; + _System__VarFromReal_qqrv(local_c14); + pcStack_70 = (char *)0x55d9b6; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f5c8,local_c14); + if ((uStack_4c._3_1_ == '\0') || (2 < (int)local_2c)) { + pcStack_70 = (char *)0x55db0b; + _System__VarFromInt_qqrr14System_Variantxixi(local_ca4,0,1); + pcStack_70 = (char *)0x55db1e; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_ca4); + pcStack_70 = (char *)0x55db2d; + _System__VarFromInt_qqrr14System_Variantxixi(local_cb4,0,1); + pcStack_70 = (char *)0x55db40; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8c0,local_cb4); + pcStack_70 = (char *)0x55db4f; + _System__VarFromInt_qqrr14System_Variantxixi(local_cc4,0,1); + pcStack_70 = (char *)0x55db62; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_cc4); + pcStack_70 = (char *)0x55db71; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_cdc); + pcStack_70 = (char *)0x55db87; + _System__LStrCat3_qqrv(&local_cd8,"T_AMT",local_cdc); + pcStack_70 = (char *)0x55db95; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,local_cd8); + pcStack_70 = (char *)0x55dba0; + _System__VarFromReal_qqrv(local_cd4); + pcStack_70 = (char *)0x55dbb3; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT1",local_cd4); + pcStack_70 = (char *)0x55dbc2; + _System__VarFromInt_qqrr14System_Variantxixi(local_cec,0,1); + pcStack_70 = (char *)0x55dbd5; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT2",local_cec); + pcStack_70 = (char *)0x55dbe4; + _System__VarFromInt_qqrr14System_Variantxixi(local_cfc,0,1); + pcStack_70 = (char *)0x55dbf7; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT3",local_cfc); + pcStack_70 = (char *)0x55dc06; + _System__VarFromInt_qqrr14System_Variantxixi(local_d0c,0,1); + pcStack_70 = (char *)0x55dc19; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT4",local_d0c); + pcStack_70 = "PR"; + puStack_74 = (undefined1 *)0x55dc31; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString + (local_30,"BDCODE1",&local_d14); + puStack_74 = (undefined1 *)0x55dc44; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_d10,*local_d14); + puStack_74 = local_d10; + puStack_78 = (undefined *)0x55dc50; + cVar4 = MPOS(); + if (cVar4 == '\0') { + pcStack_70 = "MLSW"; + puStack_74 = (undefined1 *)0x55dc6c; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString + (local_30,"BDCODE1",&local_d1c); + puStack_74 = (undefined1 *)0x55dc7f; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_d18,*local_d1c); + puStack_74 = local_d18; + puStack_78 = (undefined *)0x55dc8b; + cVar4 = MPOS(); + if (cVar4 != '\0') { + pcStack_70 = (char *)0x55dca2; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString + (local_30,"UNIT1",&local_d20); + pcStack_70 = (char *)local_d20; + puStack_74 = &DAT_0055f860; + puStack_78 = (undefined *)0x55dcb3; + cVar4 = MPOS(); + if (cVar4 != '\0') goto LAB_0055dcb7; + } + } + else { +LAB_0055dcb7: + pcStack_70 = (char *)0x55dcc4; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f5c8); + pcStack_70 = (char *)0x55dccf; + _System__VarFromReal_qqrv(local_d30); + pcStack_70 = (char *)0x55dce2; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_d30); + } + } + else { + pcStack_70 = (char *)0x55d9dd; + _Db_TDataSet_GetFieldValue_qqrx17System_AnsiString + (local_30,&DAT_0055fa6c,local_c2c); + pcStack_70 = (char *)0x55d9f0; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_c2c); + pcStack_70 = (char *)0x55da03; + _Db_TDataSet_GetFieldValue_qqrx17System_AnsiString + (local_30,&DAT_0055fa6c,local_c3c); + pcStack_70 = (char *)0x55da16; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8c0,local_c3c); + pcStack_70 = (char *)0x55da25; + _System__VarFromInt_qqrr14System_Variantxixi(local_c4c,0,1); + pcStack_70 = (char *)0x55da38; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055fa6c,local_c4c); + pcStack_70 = (char *)0x55da47; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_c64); + pcStack_70 = (char *)0x55da5d; + _System__LStrCat3_qqrv(&local_c60,"T_AMT",local_c64); + pcStack_70 = (char *)0x55da6b; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,local_c60); + pcStack_70 = (char *)0x55da76; + _System__VarFromReal_qqrv(local_c5c); + pcStack_70 = (char *)0x55da89; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT1",local_c5c); + pcStack_70 = (char *)0x55da9c; + _Db_TDataSet_GetFieldValue_qqrx17System_AnsiString(local_30,"T_AMT4",local_c74); + pcStack_70 = (char *)0x55daaf; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT2",local_c74); + pcStack_70 = (char *)0x55dac2; + _Db_TDataSet_GetFieldValue_qqrx17System_AnsiString(local_30,"T_AMT4",local_c84); + pcStack_70 = (char *)0x55dad5; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT3",local_c84); + pcStack_70 = (char *)0x55dae4; + _System__VarFromInt_qqrr14System_Variantxixi(local_c94,0,1); + pcStack_70 = (char *)0x55daf7; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,"T_AMT4",local_c94); + } + } + pcStack_70 = (char *)0x55dcef; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + fVar16 = ((float10)(int)local_28 / (float10)(int)puVar11) * (float10)100.0; + pcStack_70 = (char *)0x55dd0b; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55dd1c; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55dd3a; + _Apodset_TApolloTable_Commit_qqrv(local_30); + local_50 = (undefined1 *)0x55dd42; + _Apodset_TApolloTable_Pack_qqrv(local_30); + local_50 = (undefined1 *)0x55dd53; + _Apoenv_TApolloEnv_SetDeleted_qqrxus(**(undefined4 **)PTR_DAT_005e6090,0xffffffff); + local_50 = (undefined1 *)0x55dd61; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + local_50 = (undefined1 *)0x55dd70; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_d48); + local_50 = (undefined1 *)0x55dd86; + _System__LStrCat3_qqrv(&local_d44,"Mcost",local_d48); + local_50 = (undefined1 *)0x55dd9a; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_d44); + local_50 = (undefined1 *)0x55dda5; + _System__VarFromReal_qqrv(local_d40); + local_50 = (undefined1 *)0x55ddbe; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Mcost1",local_d40); + local_50 = (undefined1 *)0x55ddcd; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_d60); + local_50 = (undefined1 *)0x55dde3; + _System__LStrCat3_qqrv(&local_d5c,"Lcost",local_d60); + local_50 = (undefined1 *)0x55ddf7; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_d5c); + local_50 = (undefined1 *)0x55de02; + _System__VarFromReal_qqrv(local_d58); + local_50 = (undefined1 *)0x55de1b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Lcost1",local_d58); + local_50 = (undefined1 *)0x55de2a; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_d78); + local_50 = (undefined1 *)0x55de40; + _System__LStrCat3_qqrv(&local_d74,"Scost",local_d78); + local_50 = (undefined1 *)0x55de54; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_d74); + local_50 = (undefined1 *)0x55de5f; + _System__VarFromReal_qqrv(local_d70); + local_50 = (undefined1 *)0x55de78; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Scost1",local_d70); + local_50 = (undefined1 *)0x55de87; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_d90); + local_50 = (undefined1 *)0x55de9d; + _System__LStrCat3_qqrv(&local_d8c,"Tcost",local_d90); + local_50 = (undefined1 *)0x55deb1; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),local_d8c); + local_50 = (undefined1 *)0x55debc; + _System__VarFromReal_qqrv(local_d88); + local_50 = (undefined1 *)0x55ded5; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Tcost1",local_d88); + if ((uStack_4c._3_1_ != '\0') && ((int)local_2c < 3)) { + local_50 = (undefined1 *)0x55defc; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Mcost4"); + local_50 = (undefined1 *)0x55df07; + _System__VarFromReal_qqrv(local_da0); + local_50 = (undefined1 *)0x55df20; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Mcost2",local_da0); + local_50 = (undefined1 *)0x55df33; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Lcost4"); + local_50 = (undefined1 *)0x55df3e; + _System__VarFromReal_qqrv(local_db0); + local_50 = (undefined1 *)0x55df57; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Lcost2",local_db0); + local_50 = (undefined1 *)0x55df6a; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Scost4"); + local_50 = (undefined1 *)0x55df75; + _System__VarFromReal_qqrv(local_dc0); + local_50 = (undefined1 *)0x55df8e; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Scost2",local_dc0); + local_50 = (undefined1 *)0x55dfa1; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Tcost4"); + local_50 = (undefined1 *)0x55dfac; + _System__VarFromReal_qqrv(local_dd0); + local_50 = (undefined1 *)0x55dfc5; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Tcost2",local_dd0); + local_50 = (undefined1 *)0x55dfd8; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Mcost4"); + local_50 = (undefined1 *)0x55dfe3; + _System__VarFromReal_qqrv(local_de0); + local_50 = (undefined1 *)0x55dffc; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Mcost3",local_de0); + local_50 = (undefined1 *)0x55e00f; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Lcost4"); + local_50 = (undefined1 *)0x55e01a; + _System__VarFromReal_qqrv(local_df0); + local_50 = (undefined1 *)0x55e033; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Lcost3",local_df0); + local_50 = (undefined1 *)0x55e046; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Scost4"); + local_50 = (undefined1 *)0x55e051; + _System__VarFromReal_qqrv(local_e00); + local_50 = (undefined1 *)0x55e06a; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Scost3",local_e00); + local_50 = (undefined1 *)0x55e07d; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(local_8 + 0x2f4),"Tcost4"); + local_50 = (undefined1 *)0x55e088; + _System__VarFromReal_qqrv(local_e10); + local_50 = (undefined1 *)0x55e0a1; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"Tcost3",local_e10); + } + local_50 = (undefined1 *)0x55e0b3; + _System__VarFromInt_qqrr14System_Variantxixi(local_e20,1,1); + local_50 = (undefined1 *)0x55e0cc; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"k_ord",local_e20); + local_50 = (undefined1 *)0x55e0da; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + } + else if (*(int *)(local_8 + 0x57c) == 7) { + local_50 = (undefined1 *)0x55e0f7; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55e0ff; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + if ((int)local_2c < 4) { + while( true ) { + local_50 = (undefined1 *)0x55e476; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55e123; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_e2c); + local_50 = (undefined1 *)0x55e134; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_e2c,&local_e28); + local_50 = (undefined1 *)local_e28; + local_54 = (undefined **)0x55e14d; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_e34); + local_54 = (undefined **)0x55e15e; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_e34,&local_e30); + local_54 = local_e30; + puStack_58 = &DAT_0055f560; + local_5c = 0x55e17c; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_e3c); + local_5c = 0x55e18d; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_e3c,&local_e38); + local_5c = local_e38; + local_60 = 0x55e1a3; + _System__LStrCatN_qqrv(&local_e24,4); + local_60 = local_e24; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55e1bd; + _Sysutils_IntToStr_qqri(local_28,&local_e44); + uStack_68 = local_e44; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55e1d8; + _System__LStrCatN_qqrv(&local_e40,3); + pcStack_70 = (char *)local_e40; + puStack_74 = (undefined1 *)0x55e1ed; + _Sysutils_IntToStr_qqri(local_2c,&local_e5c); + puStack_74 = (undefined1 *)0x55e1fd; + _System__LStrCat_qqrv(&local_e5c,&DAT_0055fca8); + puStack_74 = (undefined1 *)0x55e20e; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_e58,local_e5c); + puStack_74 = local_e58; + puStack_78 = (undefined *)0x55e224; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_e80); + puStack_78 = (undefined *)0x55e234; + _System__LStrCat_qqrv(&local_e80,&DAT_0055fcc0); + puStack_78 = (undefined *)0x55e245; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(&local_e7c,local_e80); + puStack_78 = local_e70; + uStack_7c = local_e74; + uStack_80 = local_e78; + uStack_84 = local_e7c; + uStack_88 = 0x55e26d; + uVar6 = _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString + (&local_e90,&DAT_0055fcd4); + uStack_88 = local_e84; + puStack_8c = local_e88; + puStack_90 = (undefined1 *)local_e8c; + puStack_94 = (undefined *)local_e90; + puStack_98 = (undefined1 *)CONCAT31((int3)((uint)uVar6 >> 8),param_4); + puStack_9c = (undefined4 *)local_e6c; + uStack_a0 = 0x55e295; + IIF(); + puVar14 = puStack_9c; + puStack_9c = (undefined4 *)0x55e2a1; + _System__VarAdd_qqrr14System_Variantrx14System_Variant(puVar14,local_e6c); + puStack_9c = (undefined4 *)0x55e2b2; + _System__VarToLStr_qqrr17System_AnsiStringrx14System_Variant(&local_e48,local_e58); + puVar2 = puStack_94; + puStack_94 = (undefined *)0x55e2bf; + FUN_0042c83c(local_e48,puStack_98,puVar2); + puStack_94 = (undefined *)0x55e2c7; + _Db_TDataSet_Edit_qqrv(local_30); + puStack_94 = (undefined *)0x55e2d6; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_ea8); + puStack_94 = (undefined *)0x55e2ec; + _System__LStrCat3_qqrv(&local_ea4,&DAT_0055fb20,local_ea8); + puStack_94 = (undefined *)0x55e2fa; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,local_ea4); + puStack_94 = (undefined *)0x55e305; + _System__VarFromReal_qqrv(local_ea0); + puStack_94 = local_ea0; + puStack_98 = (undefined1 *)0x55e31c; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString + (local_ebc,&DAT_0055fb20); + puStack_98 = local_ebc; + puStack_9c = (undefined4 *)0x55e334; + _Sysutils_IntToStr_qqri(local_2c + 2,&local_ee0); + puStack_9c = (undefined4 *)0x55e345; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(&local_edc,local_ee0); + puStack_9c = local_ed0; + uStack_a0 = local_ed4; + uStack_a4 = local_ed8; + puStack_a8 = local_edc; + local_4c3 = 0x31; + local_4c4 = 1; + puStack_ac = (undefined4 *)0x55e37d; + uVar6 = _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (&local_ef0,&local_4c4); + puStack_ac = local_ee4; + uStack_b0 = local_ee8; + puStack_b4 = local_eec; + uStack_b8 = local_ef0; + puStack_bc = (undefined *)CONCAT31((int3)((uint)uVar6 >> 8),param_4); + puStack_c0 = local_ecc; + puStack_c4 = (undefined1 *)0x55e3a5; + IIF(); + puVar1 = puStack_c0; + puStack_c0 = (undefined1 *)0x55e3b1; + _System__VarAdd_qqrr14System_Variantrx14System_Variant(puVar1,local_ecc); + puStack_c0 = (undefined1 *)0x55e3c2; + _System__VarToLStr_qqrr17System_AnsiStringrx14System_Variant(&local_eac,local_ebc); + puVar2 = puStack_bc; + puStack_bc = (undefined *)0x55e3d1; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,local_eac,puVar2); + if ((param_4 != '\0') && (1 < (int)local_2c)) { + puStack_bc = (undefined *)0x55e3ec; + _Sysutils_IntToStr_qqri(local_2c + 1,&local_f08); + puStack_bc = (undefined *)0x55e402; + _System__LStrCat3_qqrv(&local_f04,&DAT_0055fb20,local_f08); + puStack_bc = (undefined *)0x55e410; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,local_f04); + puStack_bc = (undefined *)0x55e41b; + _System__VarFromReal_qqrv(local_f00); + puStack_bc = (undefined *)0x55e42e; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_f00); + } + puStack_bc = (undefined *)0x55e43b; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + puStack_bc = (undefined *)0x55e457; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + puStack_bc = (undefined *)0x55e468; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + } + local_50 = (undefined1 *)0x55e486; + _Apodset_TApolloTable_Commit_qqrv(local_30); + local_50 = (undefined1 *)0x55e494; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + local_50 = (undefined1 *)0x55e4a5; + _System__VarFromInt_qqrr14System_Variantxixi(&local_f28,local_2c + 1,0xfc); + local_50 = (undefined1 *)local_f1c; + local_54 = local_f20; + puStack_58 = local_f24; + local_5c = local_f28; + local_60 = 0x55e4cf; + uVar6 = _System__VarFromInt_qqrr14System_Variantxixi(&local_f38,1,1); + local_60 = local_f2c; + puStack_64 = local_f30; + uStack_68 = local_f34; + ppuStack_6c = local_f38; + pcStack_70 = (char *)CONCAT31((int3)((uint)uVar6 >> 8),param_4); + puStack_74 = local_f18; + puStack_78 = (undefined *)0x55e4f7; + IIF(); + puStack_78 = (undefined *)0x55e510; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(local_8 + 0x2f4),"k_ord",local_f18); + puStack_78 = (undefined *)0x55e51e; + _Apodset_TApolloTable_Commit_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + } + break; + case 8: + if (*(int *)(local_8 + 0x57c) == 8) { + local_50 = (undefined1 *)0x55e6f6; + _Apodset_TApolloTable_GoTop_qqrv(local_30); + local_50 = (undefined1 *)0x55e6fe; + puVar11 = (undefined *)_Apodset_TApolloTable_GetSXRecCount_qqrv(local_30); + while( true ) { + local_50 = (undefined1 *)0x55e884; + cVar4 = (**(code **)(*local_30 + 0x270))(); + if (cVar4 != '\0') break; + local_50 = (undefined1 *)0x55e718; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"name1",&local_f88); + local_50 = (undefined1 *)0x55e729; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_f88,&local_f84); + local_50 = (undefined1 *)local_f84; + local_54 = (undefined **)0x55e742; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"size1",&local_f90); + local_54 = (undefined **)0x55e753; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_f90,&local_f8c); + local_54 = local_f8c; + puStack_58 = &DAT_0055f560; + local_5c = 0x55e771; + _Apodset_TApolloTable_GetString_qqr17System_AnsiString(local_30,"unit1",&local_f98); + local_5c = 0x55e782; + _Sysutils_TrimRight_qqrx17System_AnsiString(local_f98,&local_f94); + local_5c = local_f94; + local_60 = 0x55e798; + _System__LStrCatN_qqrv(&local_f80,4); + local_60 = local_f80; + puStack_64 = &DAT_0055f57c; + uStack_68 = 0x55e7b2; + _Sysutils_IntToStr_qqri(local_28,&local_fa0); + uStack_68 = local_fa0; + ppuStack_6c = (undefined1 **)&DAT_0055f594; + pcStack_70 = (char *)0x55e7cd; + _System__LStrCatN_qqrv(&local_f9c,3); + ppuVar3 = ppuStack_6c; + ppuStack_6c = (undefined1 **)0x55e7de; + FUN_0042c83c(&DAT_0055fd10,local_f9c,ppuVar3); + ppuStack_6c = (undefined1 **)0x55e7e6; + _Db_TDataSet_Edit_qqrv(local_30); + ppuStack_6c = (undefined1 **)0x55e7f3; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055f8c0); + ppuStack_6c = (undefined1 **)0x55e7fe; + _System__VarFromReal_qqrv(local_fb0); + ppuStack_6c = (undefined1 **)0x55e811; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f5c8,local_fb0); + ppuStack_6c = (undefined1 **)0x55e81e; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString(local_30,&DAT_0055fa6c); + ppuStack_6c = (undefined1 **)0x55e829; + _System__VarFromReal_qqrv(local_fc0); + ppuStack_6c = (undefined1 **)0x55e83c; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (local_30,&DAT_0055f8b0,local_fc0); + ppuStack_6c = (undefined1 **)0x55e849; + _Apodset_TApolloTable_Skip_qqri(local_30,1); + ppuStack_6c = (undefined1 **)0x55e865; + local_158[0] = puVar11; + uVar6 = _System__ROUND_qqrv(); + local_50 = (undefined1 *)0x55e876; + _Comctrls_TProgressBar_SetPosition_qqri + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x5c),uVar6); + local_28 = local_28 + 1; + } + local_50 = (undefined1 *)0x55e894; + _Apodset_TApolloTable_Commit_qqrv(local_30); + } + } + local_50 = (undefined1 *)0x55e8a1; + (**(code **)(*local_30 + 0x178))(local_30,0); + local_50 = (undefined1 *)0x55e8a9; + _System_TObject_Free_qqrv(local_30); + local_50 = (undefined1 *)0x55e8b8; + _Forms_TCustomForm_Close_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 0x40)); + } + } + else { + uStack_68 = 0x10; + ppuStack_6c = (undefined1 **)&LAB_0055fd38; + pcStack_70 = (char *)local_3c._4_4_; + puStack_74 = &LAB_0055f2d4; + puStack_78 = (undefined *)0x55e8dd; + _System__LStrCatN_qqrv(&local_fc4,3); + puStack_78 = (undefined *)0x55e8e8; + uVar6 = _System__LStrToPChar_qqrx17System_AnsiString(local_fc4); + puStack_78 = (undefined *)0x55e8fb; + _Forms_TApplication_MessageBox_qqrpxct1i + (*(undefined4 *)_Forms_Application_exref,uVar6,&DAT_0055f2e0); + **(char **)PTR_DAT_005e6148 = **(char **)PTR_DAT_005e6148 + -1; + puStack_78 = (undefined *)(uint)**(byte **)PTR_DAT_005e6148; + uStack_7c = 0x55e928; + (**(code **)(**(int **)(*(int *)PTR_DAT_005e5f8c + 0x5c) + 0xc)) + (*(int **)(*(int *)PTR_DAT_005e5f8c + 0x5c),"START","PCDNM"); + } + } + if (*(char *)(*(int *)(*(int *)PTR_DAT_005e6090 + 0x40) + 0x57) != '\0') { + local_40 = 0x55e943; + _Forms_TCustomForm_Close_qqrv(*(int *)(*(int *)PTR_DAT_005e6090 + 0x40),PTR_DAT_005e6090); + } + local_40 = 0x55e951; + iVar12 = _Apodset_TApolloTable_GetSXRecno_qqrv(*(undefined4 *)(local_8 + 0x2f4)); + if (0 < iVar12) { + local_44 = (undefined1 *)0x55e966; + (**(code **)(**(int **)(local_8 + 0x2fc) + 0x154))(); + } +LAB_0055e966: + uVar6 = local_3c._4_4_; + *in_FS_OFFSET = local_40; + local_3c._4_4_ = &LAB_0055f107; + local_3c._0_4_ = 0x55e97e; + _System__LStrClr_qqrpv(&local_fc4,local_40,uVar6); + local_3c._0_4_ = 0x55e994; + _System__FinalizeArray_qqrpvt1ui(local_fc0,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55e9a4; + _System__LStrArrayClr_qqrpvi(&local_fa0,9); + local_3c._0_4_ = 0x55e9ba; + _System__FinalizeArray_qqrpvt1ui(local_f7c,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55e9ca; + _System__LStrArrayClr_qqrpvi(&local_f5c,9); + local_3c._0_4_ = 0x55e9e0; + _System__FinalizeArray_qqrpvt1ui(&local_f38,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55e9f0; + _System__LStrArrayClr_qqrpvi(&local_f08,2); + local_3c._0_4_ = 0x55ea06; + _System__FinalizeArray_qqrpvt1ui(local_f00,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55ea11; + _System__LStrClr_qqrpv(&local_ee0); + local_3c._0_4_ = 0x55ea27; + _System__FinalizeArray_qqrpvt1ui(&local_edc,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55ea37; + _System__LStrArrayClr_qqrpvi(&local_eac,3); + local_3c._0_4_ = 0x55ea4d; + _System__FinalizeArray_qqrpvt1ui(local_ea0,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55ea58; + _System__LStrClr_qqrpv(&local_e80); + local_3c._0_4_ = 0x55ea6e; + _System__FinalizeArray_qqrpvt1ui(&local_e7c,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55ea79; + _System__LStrClr_qqrpv(&local_e5c); + local_3c._0_4_ = 0x55ea84; + _System__VarClr_qqrr14System_Variant(local_e58); + local_3c._0_4_ = 0x55ea94; + _System__LStrArrayClr_qqrpvi(&local_e48,10); + local_3c._0_4_ = 0x55eaaa; + _System__FinalizeArray_qqrpvt1ui(local_e20,__xp_14System_Variant_exref,9); + local_3c._0_4_ = 0x55eaba; + _System__LStrArrayClr_qqrpvi(&local_d90,2); + local_3c._0_4_ = 0x55eac5; + _System__VarClr_qqrr14System_Variant(local_d88); + local_3c._0_4_ = 0x55ead5; + _System__LStrArrayClr_qqrpvi(&local_d78,2); + local_3c._0_4_ = 0x55eae0; + _System__VarClr_qqrr14System_Variant(local_d70); + local_3c._0_4_ = 0x55eaf0; + _System__LStrArrayClr_qqrpvi(&local_d60,2); + local_3c._0_4_ = 0x55eafb; + _System__VarClr_qqrr14System_Variant(local_d58); + local_3c._0_4_ = 0x55eb0b; + _System__LStrArrayClr_qqrpvi(&local_d48,2); + local_3c._0_4_ = 0x55eb21; + _System__FinalizeArray_qqrpvt1ui(local_d40,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55eb31; + _System__LStrArrayClr_qqrpvi(&local_d20,5); + local_3c._0_4_ = 0x55eb47; + _System__FinalizeArray_qqrpvt1ui(local_d0c,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55eb57; + _System__LStrArrayClr_qqrpvi(&local_cdc,2); + local_3c._0_4_ = 0x55eb6d; + _System__FinalizeArray_qqrpvt1ui(local_cd4,__xp_14System_Variant_exref,7); + local_3c._0_4_ = 0x55eb7d; + _System__LStrArrayClr_qqrpvi(&local_c64,2); + local_3c._0_4_ = 0x55eb93; + _System__FinalizeArray_qqrpvt1ui(local_c5c,__xp_14System_Variant_exref,4); + local_3c._0_4_ = 0x55eb9e; + _System__VarClr_qqrr14System_Variant(local_c14); + local_3c._0_4_ = 0x55ebae; + _System__LStrArrayClr_qqrpvi(&local_c1c,2); + local_3c._0_4_ = 0x55ebbe; + _System__LStrArrayClr_qqrpvi(&local_c04,0xd); + local_3c._0_4_ = 0x55ebc9; + _System__VarClr_qqrr14System_Variant(local_bd0); + local_3c._0_4_ = 0x55ebd9; + _System__LStrArrayClr_qqrpvi(&local_bc0,2); + local_3c._0_4_ = 0x55ebe4; + _System__VarClr_qqrr14System_Variant(local_bb8); + local_3c._0_4_ = 0x55ebf4; + _System__LStrArrayClr_qqrpvi(&local_ba8,2); + local_3c._0_4_ = 0x55ebff; + _System__VarClr_qqrr14System_Variant(local_ba0); + local_3c._0_4_ = 0x55ec0f; + _System__LStrArrayClr_qqrpvi(&local_b90,2); + local_3c._0_4_ = 0x55ec1a; + _System__VarClr_qqrr14System_Variant(local_b88); + local_3c._0_4_ = 0x55ec2a; + _System__LStrArrayClr_qqrpvi(&local_b78,2); + local_3c._0_4_ = 0x55ec35; + _System__VarClr_qqrr14System_Variant(local_b70); + local_3c._0_4_ = 0x55ec45; + _System__LStrArrayClr_qqrpvi(&local_b60,2); + local_3c._0_4_ = 0x55ec50; + _System__VarClr_qqrr14System_Variant(local_b58); + local_3c._0_4_ = 0x55ec60; + _System__LStrArrayClr_qqrpvi(&local_b48,10); + local_3c._0_4_ = 0x55ec76; + _System__FinalizeArray_qqrpvt1ui(local_b20,__xp_14System_Variant_exref,4); + local_3c._0_4_ = 0x55ec86; + _System__LStrArrayClr_qqrpvi(&local_ae0,9); + local_3c._0_4_ = 0x55ec9c; + _System__FinalizeArray_qqrpvt1ui(local_abc,__xp_14System_Variant_exref,5); + local_3c._0_4_ = 0x55ecac; + _System__LStrArrayClr_qqrpvi(&local_a6c,9); + local_3c._0_4_ = 0x55ecc2; + _System__FinalizeArray_qqrpvt1ui(local_a48,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55ecd2; + _System__LStrArrayClr_qqrpvi(&local_a18,9); + local_3c._0_4_ = 0x55ecdd; + _System__VarClr_qqrr14System_Variant(local_9f4); + local_3c._0_4_ = 0x55eced; + _System__LStrArrayClr_qqrpvi(&local_9e4,5); + local_3c._0_4_ = 0x55ed03; + _System__FinalizeArray_qqrpvt1ui(local_9d0,__xp_14System_Variant_exref,6); + local_3c._0_4_ = 0x55ed13; + _System__LStrArrayClr_qqrpvi(&local_970,6); + local_3c._0_4_ = 0x55ed23; + _System__LStrArrayClr_qqrpvi(&local_954,2); + local_3c._0_4_ = 0x55ed2e; + _System__LStrClr_qqrpv(&local_958); + local_3c._0_4_ = 0x55ed44; + _System__FinalizeArray_qqrpvt1ui(local_94c,__xp_14System_Variant_exref,0x13); + local_3c._0_4_ = 0x55ed54; + _System__LStrArrayClr_qqrpvi(local_81c,3); + local_3c._0_4_ = 0x55ed5f; + _System__VarClr_qqrr14System_Variant(local_810); + local_3c._0_4_ = 0x55ed6a; + _System__LStrClr_qqrpv(local_800); + local_3c._0_4_ = 0x55ed75; + _System__LStrClr_qqrpv(local_7f4); + local_3c._0_4_ = 0x55ed8b; + _System__FinalizeArray_qqrpvt1ui(local_7f0,__xp_14System_Variant_exref,4); + local_3c._0_4_ = 0x55ed9b; + _System__LStrArrayClr_qqrpvi(local_7b0,5); + local_3c._0_4_ = 0x55eda6; + _System__VarClr_qqrr14System_Variant(local_79c); + local_3c._0_4_ = 0x55edb1; + _System__LStrClr_qqrpv(local_78c); + local_3c._0_4_ = 0x55edbc; + _System__VarClr_qqrr14System_Variant(local_788); + local_3c._0_4_ = 0x55edcc; + _System__LStrArrayClr_qqrpvi(local_778,2); + local_3c._0_4_ = 0x55edd7; + _System__VarClr_qqrr14System_Variant(local_770); + local_3c._0_4_ = 0x55ede7; + _System__LStrArrayClr_qqrpvi(local_760,4); + local_3c._0_4_ = 0x55edf2; + _System__VarClr_qqrr14System_Variant(local_750); + local_3c._0_4_ = 0x55edfd; + _System__LStrClr_qqrpv(local_740); + local_3c._0_4_ = 0x55ee08; + _System__VarClr_qqrr14System_Variant(local_73c); + local_3c._0_4_ = 0x55ee13; + _System__LStrClr_qqrpv(local_72c); + local_3c._0_4_ = 0x55ee29; + _System__FinalizeArray_qqrpvt1ui(local_728,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55ee39; + _System__LStrArrayClr_qqrpvi(local_708,0xd); + local_3c._0_4_ = 0x55ee4f; + _System__FinalizeArray_qqrpvt1ui(local_6d4,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55ee65; + _System__FinalizeArray_qqrpvt1ui(local_698,__xp_14System_Variant_exref,7); + local_3c._0_4_ = 0x55ee75; + _System__LStrArrayClr_qqrpvi(&local_628,0xb); + local_3c._0_4_ = 0x55ee8b; + _System__FinalizeArray_qqrpvt1ui(local_5fc,__xp_14System_Variant_exref,6); + local_3c._0_4_ = 0x55ee96; + _System__LStrClr_qqrpv(&local_59c); + local_3c._0_4_ = 0x55eeac; + _System__FinalizeArray_qqrpvt1ui(local_598,__xp_14System_Variant_exref,8); + local_3c._0_4_ = 0x55eebc; + _System__LStrArrayClr_qqrpvi(&local_518,2); + local_3c._0_4_ = 0x55eed2; + _System__FinalizeArray_qqrpvt1ui(local_510,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55eee2; + _System__LStrArrayClr_qqrpvi(&local_4f0,3); + local_3c._0_4_ = 0x55eef8; + _System__FinalizeArray_qqrpvt1ui(local_4e4,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55ef0e; + _System__FinalizeArray_qqrpvt1ui(&local_4c0,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55ef1e; + _System__LStrArrayClr_qqrpvi(&local_4a0,2); + local_3c._0_4_ = 0x55ef29; + _System__VarClr_qqrr14System_Variant(local_498); + local_3c._0_4_ = 0x55ef34; + _System__LStrClr_qqrpv(&local_488); + local_3c._0_4_ = 0x55ef4a; + _System__FinalizeArray_qqrpvt1ui(local_484,__xp_14System_Variant_exref,2); + local_3c._0_4_ = 0x55ef55; + _System__LStrClr_qqrpv(&local_464); + local_3c._0_4_ = 0x55ef6b; + _System__FinalizeArray_qqrpvt1ui(local_460,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55ef7b; + _System__LStrArrayClr_qqrpvi(&local_430,2); + local_3c._0_4_ = 0x55ef91; + _System__FinalizeArray_qqrpvt1ui(local_428,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55ef9c; + _System__LStrClr_qqrpv(&local_3f8); + local_3c._0_4_ = 0x55efa7; + _System__VarClr_qqrr14System_Variant(local_3f4); + local_3c._0_4_ = 0x55efb2; + _System__LStrClr_qqrpv(&local_3e4); + local_3c._0_4_ = 0x55efc8; + _System__FinalizeArray_qqrpvt1ui(local_3e0,__xp_14System_Variant_exref,6); + local_3c._0_4_ = 0x55efd3; + _System__LStrClr_qqrpv(&local_380); + local_3c._0_4_ = 0x55efde; + _System__VarClr_qqrr14System_Variant(local_37c); + local_3c._0_4_ = 0x55efe9; + _System__LStrClr_qqrpv(&local_36c); + local_3c._0_4_ = 0x55eff4; + _System__VarClr_qqrr14System_Variant(local_368); + local_3c._0_4_ = 0x55efff; + _System__LStrClr_qqrpv(&local_358); + local_3c._0_4_ = 0x55f00a; + _System__VarClr_qqrr14System_Variant(local_354); + local_3c._0_4_ = 0x55f015; + _System__LStrClr_qqrpv(&local_344); + local_3c._0_4_ = 0x55f020; + _System__VarClr_qqrr14System_Variant(local_340); + local_3c._0_4_ = 0x55f02b; + _System__LStrClr_qqrpv(&local_330); + local_3c._0_4_ = 0x55f036; + _System__VarClr_qqrr14System_Variant(local_32c); + local_3c._0_4_ = 0x55f041; + _System__LStrClr_qqrpv(&local_31c); + local_3c._0_4_ = 0x55f04c; + _System__VarClr_qqrr14System_Variant(local_318); + local_3c._0_4_ = 0x55f057; + _System__LStrClr_qqrpv(&local_308); + local_3c._0_4_ = 0x55f06d; + _System__FinalizeArray_qqrpvt1ui(local_304,__xp_14System_Variant_exref,0xe); + local_3c._0_4_ = 0x55f07d; + _System__LStrArrayClr_qqrpvi(&local_224,4); + local_3c._0_4_ = 0x55f093; + _System__FinalizeArray_qqrpvt1ui(&local_214,__xp_14System_Variant_exref,3); + local_3c._0_4_ = 0x55f0a3; + _System__LStrArrayClr_qqrpvi(&local_1e4,2); + local_3c._0_4_ = 0x55f0b9; + _System__FinalizeArray_qqrpvt1ui(local_1dc,__xp_14System_Variant_exref,4); + local_3c._0_4_ = 0x55f0c4; + _System__LStrClr_qqrpv(&local_19c); + local_3c._0_4_ = 0x55f0da; + _System__FinalizeArray_qqrpvt1ui(local_198,__xp_14System_Variant_exref,4); + local_3c._0_4_ = 0x55f0e7; + _System__LStrArrayClr_qqrpvi(&local_5c,2); + local_3c._0_4_ = 0x55f0f4; + _System__LStrArrayClr_qqrpvi(&local_48,6); + local_3c._0_4_ = 0x55f0fc; + _System__LStrClr_qqrpv(&local_c); + return; +} + + diff --git a/resources/tester/helper_stmate_progress_rea.cjs b/resources/tester/helper_stmate_progress_rea.cjs index 832d83c43..a51bd52ec 100644 --- a/resources/tester/helper_stmate_progress_rea.cjs +++ b/resources/tester/helper_stmate_progress_rea.cjs @@ -70,7 +70,16 @@ const MODES = { ); const fs2 = Progress.fromStorage(base, seedRows, { K_ORD: 2 }, smt3); const next = Progress.run(base, [rounds[1]], fs2.seed); - return { all, st, fs, fs2, next }; + // 원본 회차 등록 규칙(nextRound)으로 만든 저장본에서 다시 읽은 제 2 회 + const nr = Progress.nextRound(st); + const fs3 = Progress.fromStorage( + base, + nr.boq, + nr.prjlst, + Object.assign({}, ...Object.values(nr.smt)), + ); + const next2 = Progress.run(base, [rounds[1]], fs3.seed); + return { all, st, fs, fs2, next, nr, next2 }; }, // 실제 STC(설계 판) → 계약 기준 → 회차 → 저장 형식 real({ load, opts, rounds }) { diff --git a/resources/tester/test_stmate_stage_progress_rea.py b/resources/tester/test_stmate_stage_progress_rea.py index 5defddfa7..cf80d830f 100644 --- a/resources/tester/test_stmate_stage_progress_rea.py +++ b/resources/tester/test_stmate_stage_progress_rea.py @@ -227,3 +227,22 @@ def test_real_stc_storage_totals(): assert (r1["cur"]["supply"], r1["cur"]["vat"], r1["cur"]["total"]) == (sup, vat, tot) assert r2["cur"]["final"] and st["prjlst"]["TCOST2"] == got["direct"] assert st["smt"]["2_KANJUB"]["2_C_KANNO"] == r2["acc"]["items"][0]["amount"] + + +def test_next_round_registration(): + """회차 등록 — QTY3←QTY2 · QTY4=0 · T_AMT3←T_AMT2 · TCOST3←TCOST2 · TCOST4=0 + · [3_KANJUB]←[2_KANJUB] · [4_KANJUB] 0 · K_ORD+1 (STmate 0x55b328~0x55b3cb · 0x455e68).""" + rounds = [{"qtyById": {"a": 4, "b": 1}}, {"qtyById": {"a": 3, "b": 1}, "vatMode": 2}] + got = _run("store", {"spec": SPEC, "rounds": rounds}) + st, nr = got["st"], got["nr"] + assert nr["prjlst"]["K_ORD"] == 2 and nr["prjlst"]["TCOST4"] == 0 + assert nr["prjlst"]["TCOST3"] == st["prjlst"]["TCOST2"] + for u, v in zip(st["boq"], nr["boq"]): + assert (v["QTY3"], v["QTY4"], v["T_AMT3"], v["T_AMT4"]) == (u["QTY2"], 0, u["T_AMT2"], 0) + assert nr["smt"]["3_KANJUB"]["3_C_KANNO"] == st["smt"]["2_KANJUB"]["2_C_KANNO"] + assert all(v == 0 for v in nr["smt"]["4_KANJUB"].values()) + nxt, ref = got["next2"][0], got["all"][1] + assert nxt["round"] == 2 + for x, y in zip(nxt["rows"], ref["rows"]): + assert x["prev"] == y["prev"] and x["cur"] == y["cur"] and x["acc"] == y["acc"] + assert nxt["jab"]["cur"]["items"] == ref["jab"]["cur"]["items"] diff --git a/tools/stmate-test/progress_calc.js b/tools/stmate-test/progress_calc.js index ce263a3c3..716f36c82 100644 --- a/tools/stmate-test/progress_calc.js +++ b/tools/stmate-test/progress_calc.js @@ -7,7 +7,10 @@ * (ST_KanJub 0x4cae9b 열→칸 표 '1342' · 0x4cb03c 값 배열 순서 · ST_P_ConEst 0x47fadf~0x47fd4c) * 금액: 금회 = 금회수량으로 · 누계 = 누계수량으로 각각 다시 셈(ST_Boq 0x4fc674 · 0x4fce6e→T_AMT2 0x4fcf24) * · 전회 = 앞 회차 누계 이관(STmate 0x55d0b3~0x55d148 「전회<-누계, 금회=0」) — 전회+금회 ≠ 누계(끝전) 있음 - * 미확인: 금회 칸 단가 원천(MAMT4 등 — 회차 생성 시 1→2·3 칸만 복사 0x55c826~0x55ca73) — 여기서는 계약 단가 + * 단가: 기성(PCLASS 6) 편집 때 수량 칸 = 4 · 단가 칸 = 1(계약) — ST_Boq 0x4e49b5([0x541894]=4 · [0x541898]=1) + * → 금회·누계 모두 계약 단가 × 그 칸 수량 (단가 칸 인자 뜻은 호출 대응으로 읽음 — 신뢰도 중) + * 회차 등록(nextRound): QTY3←QTY2 · QTY4=0 · T_AMT3←T_AMT2 · TCOST3←TCOST2 · TCOST4=0 + * · [3_KANJUB]←[2_KANJUB](키 앞 글자 바꿈) · [4_KANJUB] 지움 · K_ORD+1 (STmate 0x55b328~0x55b3cb · 0x455e68) * 시험: resources/tester/test_stmate_stage_progress.py · test_stmate_stage_progress_rea.py */ const StmateProgress = (() => { @@ -98,7 +101,8 @@ const StmateProgress = (() => { const pct = (a, b) => (b ? Math.round((a / b) * 1e4) / 1e2 : 0); // 금회수량 상한(ST_Boq 0x4f4bbd~0x4f4c9f) — 계약×금회 > 0 이고 |전회+금회| > |계약| 이면 금회 = 계약 − 전회 - // 설정 바이트(+0x1068→+0x69) 켜짐이면 상한 없음 — 그 설정 이름 미확인 → opt.allowOver + // 켜짐이면 상한 없음 = 보기/설정 「누계수량 제한해제 (계약수량 〈 누계수량)」 Act_Enabl_OVR6(TwBoq +0x1068) + // → opt.allowOver · 처음 값 꺼짐(DFM Checked 없음) function capCur(ctrQ, prevQ, q, allowOver) { if (allowOver || !(ctrQ * q > 0)) return q; return Math.abs(r4(prevQ + q)) > Math.abs(ctrQ) ? r4(ctrQ - prevQ) : q; @@ -308,6 +312,7 @@ const StmateProgress = (() => { } // 준공조서(0646·0647) — 서식 칸은 계약금액 | 준공금액 둘(SET_REP) · 준공금액 산식 원본 미확인 + // (관찰: 내역서 머리 「◎ 준공 정산액」/「◎ 기성부분금액」 = PRJLST TCOST + 인쇄 열 칸 — ST_P_ConEst 0x4790d5) // 여기서는 마지막 회차 누계 이관(앱 가정) function completion(base, runs) { const last = runs[runs.length - 1]; @@ -367,6 +372,28 @@ const StmateProgress = (() => { }; } + // 다음 회차 등록 — 저장 형식(toStorage 꼴)을 STmate 회차 등록 규칙으로 바꿈 + // [4_KANJUB] 는 원본에서 섹션째 지움(EraseSection 0x4567b9) — 앱 저장은 키 값 0 으로 씀 + function nextRound(st) { + const boq = st.boq.map((u) => { + const o = Object.assign({}, u, { QTY3: u.QTY2, QTY4: 0 }); + ["M_AMT", "L_AMT", "S_AMT", "T_AMT"].forEach((f) => { + o[`${f}3`] = u[`${f}2`]; + o[`${f}4`] = 0; + }); + return o; + }); + const prjlst = Object.assign({}, st.prjlst, { + K_ORD: n0(st.prjlst.K_ORD) + 1, + TCOST3: st.prjlst.TCOST2, + TCOST4: 0, + }); + const s2 = st.smt["2_KANJUB"] || {}; + const sec3 = Object.fromEntries(Object.entries(s2).map(([k, v]) => [`3${k.slice(1)}`, v])); + const sec4 = Object.fromEntries(Object.keys(st.smt["4_KANJUB"] || {}).map((k) => [k, 0])); + return { boq, prjlst, smt: { "2_KANJUB": s2, "3_KANJUB": sec3, "4_KANJUB": sec4 } }; + } + // 기성 프로젝트 불러오기 — BOQ QTY3(전회)·QTY4(금회)·M_/L_/S_/T_AMT3 · [3_KANJUB] 또는 [2_KANJUB]−[4_KANJUB] 로 seed function fromStorage(base, boqRows, prjlst, smt) { const byRec = new Map((boqRows || []).map((r) => [r._recno, r])); @@ -411,6 +438,7 @@ const StmateProgress = (() => { capCur, toStorage, fromStorage, + nextRound, }; })(); diff --git a/tools/stmate-test/save_payload.js b/tools/stmate-test/save_payload.js index d60cea167..57a77de35 100644 --- a/tools/stmate-test/save_payload.js +++ b/tools/stmate-test/save_payload.js @@ -89,6 +89,8 @@ if (prj[k] !== undefined) prjUpd[k] = prj[k]; else delete prjUpd[k]; }); + // 기성 회차(K_ORD) — [다음 회차 등록]이 올린 값(STmate 0x55d1d3 k_ord = K+1) + if (isProgress && prj.K_ORD !== undefined) prjUpd.K_ORD = prj.K_ORD; const smt = d.prjlst_smt || {}; const rts = (ctx.state.kanjubConfig && ctx.state.kanjubConfig.rates) || {}; diff --git a/tools/stmate-test/scr_stage_progress.js b/tools/stmate-test/scr_stage_progress.js index ac7d5ccaa..822fa8e90 100644 --- a/tools/stmate-test/scr_stage_progress.js +++ b/tools/stmate-test/scr_stage_progress.js @@ -49,9 +49,11 @@ } // [기성 칸 반영] — 고른 회차를 작업본(dbfData)의 BOQ 칸 2·3·4 와 내역 항목 수량에 씀 · 파일 쓰기는 [저장] - function applyStorage(ctx) { + // next = 참이면 STmate 회차 등록(전회<-누계, 금회=0, K_ORD+1)까지 적용 — [다음 회차 등록] + function applyStorage(ctx, next) { + const G = global.STMATE_PROGRESS; const { base, run } = compute(ctx); - const st = global.STMATE_PROGRESS.toStorage(base, run); + const st = next ? G.nextRound(G.toStorage(base, run)) : G.toStorage(base, run); const d = ctx.dbfData; const byRec = new Map((d.boq_rows || []).map((r) => [r._recno, r])); const items = new Map((ctx.state.boqItems || []).map((b) => [b.id, b])); @@ -65,7 +67,8 @@ [2, 3, 4].forEach((n) => (b.qtys[n - 1] = u[`QTY${n}`])); }); const pr = st.prjlst; - d.prjlst = Object.assign(d.prjlst || {}, { + const keep = next ? { TCOST3: pr.TCOST3, TCOST4: 0 } : {}; + d.prjlst = Object.assign(d.prjlst || {}, keep, { COSTW3: pr.COSTW3, COSTW4: pr.COSTW4, K_ORD: pr.K_ORD, @@ -256,7 +259,7 @@ 공급가액 절사${sel("pg-sj", JEOL_S, Math.abs(rd.supplyJeol || 0))}총공사비 절사${sel("pg-tj", JEOL_T, Math.abs(rd.totalJeol || 0))} 이윤 직접입력${inp("pg-iyun", rd.iyunManual, 90)} 집계수준${sel("pg-level", G.LEVELS, p.level)} - ${isProgPrj(ctx) ? `` : ""}`; + ${isProgPrj(ctx) ? `` : ""}`; const nodes = G.aggregate(base, run, n0(p.level)); const pc = (x, c) => (c ? Math.round((x / c) * 1e4) / 1e2 : 0); const rows = nodes.map((nd) => { @@ -389,6 +392,11 @@ re(); }); api.onClick("pg-store", () => (applyStorage(ctx), re())); + api.onClick("pg-next", () => { + applyStorage(ctx, true); + p.seeded = false; // 새 전회(칸 3)로 다시 읽음 + re(); + }); api.onChange("pg-iyun", (e) => ((rd().iyunManual = val(e.target.value)), re())); api.onChange("pg-level", (e) => ((p.level = Number(e.target.value)), re())); api.bindEach(".pg-q", "onchange", (el) => {