From e655e29cdc1561be887036b17cbfa7f3295b5a24 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 14 Nov 2026 13:16:31 +0900 Subject: [PATCH] =?UTF-8?q?feat(stmate-test):=20REA=20MCP(Ghidra)=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89=C2=B7=EA=B3=84=EC=95=BD=20=EC=9E=AC=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=20=E2=80=94=20MROUNDUP=20=C2=B7=20ITM=5FTYP=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=C2=B7=20=EC=8B=A4=ED=96=89=EC=98=88?= =?UTF-8?q?=EC=82=B0=EC=84=9C=20=E2=85=A0=C2=B7=E2=85=A1=20=C2=B7=20?= =?UTF-8?q?=EA=B3=84=EC=95=BD=C2=B7=EC=8B=A4=ED=96=89=EB=82=B4=EC=97=AD?= =?UTF-8?q?=EC=84=9C=20=EC=97=B4=20=C2=B7=20=EC=9E=A5=EB=B6=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../32_실행계약단계_정적분석.md | 47 +- .../DP_Common_MROUNDUP_0x4547ac.asm.txt | 419 ++++++ .../ST_Boq_ITM_TYP_lookup_0x4fe15b.asm.txt | 33 + .../evidence/ST_Boq_row_calc_0x456504.asm.txt | 487 +++++++ .../ST_P_Nae_Prn_Nae_Cont1_2_0x4c27f8.asm.txt | 16 + .../evidence/ST_P_Nae_TPM_NAE_CONT.dfm.txt | 1128 +++++++++++++++++ ..._Cont_HRGroup1BeforePrint_0x4c3cd0.asm.txt | 746 +++++++++++ ..._P_Nae_report_filter_mode_0x4c245d.asm.txt | 37 + .../ST_Prt_case_0623_0624_0x4513e7.asm.txt | 60 + .../ST_Prt_case_0673_0674_0x4519a8.asm.txt | 18 + .../ST_Prt_report_dispatch_0x44fdf5.asm.txt | 104 ++ .../evidence/ST_Prt_tag_table_20623_20695.txt | 73 ++ ..._U_Convert_ITM_TYP_name_table_0x587d9c.txt | 18 + ..._Cont_Act_Find_NagExecute_0x556d68.asm.txt | 774 +++++++++++ ...P_Common_MROUNDUP_0x4547ac_ghidra_pseudo.c | 344 +++++ .../rea_mcp/STmate_0x554be0_ghidra_pseudo.c | 674 ++++++++++ .../evidence/rea_mcp/boq_dec1.json | 1 + .../evidence/rea_mcp/dpc_mroundup.json | 1 + .../evidence/rea_mcp/m_0x42a828.json | 1 + .../evidence/rea_mcp/m_0x554be0.json | 1 + .../evidence/rea_mcp/m_0x555ce8.json | 1 + .../evidence/rea_mcp/m_0x5569d8.json | 1 + .../evidence/rea_mcp/m_0x55a640.json | 1 + .../evidence/rea_mcp/main_conv.json | 1 + .../evidence/rea_mcp/main_findnag.json | 1 + .../evidence/rea_mcp/main_rc1.json | 1 + .../evidence/rules.json | 231 +++- .../tester/test_stmate_stage_contract_rea.py | 55 + .../tester/test_stmate_stage_exec_rea.py | 46 + tools/stmate-test/PLAN.md | 36 +- tools/stmate-test/contract_calc.js | 48 +- tools/stmate-test/exec_calc.js | 137 +- tools/stmate-test/scr_stage_contract.js | 41 +- tools/stmate-test/scr_stage_exec.js | 128 +- 34 files changed, 5522 insertions(+), 188 deletions(-) create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/DP_Common_MROUNDUP_0x4547ac.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_ITM_TYP_lookup_0x4fe15b.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_row_calc_0x456504.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_Prn_Nae_Cont1_2_0x4c27f8.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_NAE_CONT.dfm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_Nae_Cont_HRGroup1BeforePrint_0x4c3cd0.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_report_filter_mode_0x4c245d.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0623_0624_0x4513e7.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0673_0674_0x4519a8.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_report_dispatch_0x44fdf5.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_tag_table_20623_20695.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_U_Convert_ITM_TYP_name_table_0x587d9c.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/STmate_TwM_Mk_Cont_Act_Find_NagExecute_0x556d68.asm.txt create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/DP_Common_MROUNDUP_0x4547ac_ghidra_pseudo.c create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/STmate_0x554be0_ghidra_pseudo.c create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/boq_dec1.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/dpc_mroundup.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x42a828.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x554be0.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x555ce8.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x5569d8.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x55a640.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_conv.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_findnag.json create mode 100644 resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_rc1.json diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/32_실행계약단계_정적분석.md b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/32_실행계약단계_정적분석.md index 6d15adf67..6ed3a023f 100644 --- a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/32_실행계약단계_정적분석.md +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/32_실행계약단계_정적분석.md @@ -169,12 +169,12 @@ OPTIMIZ(묶음 T=X, 우선 0, 자릿수 = wCm_Jeol 값(0~−5), 출력칸 1, 모 설정 키(0x42aeba~0x42af11): +0x7c4 = START/CHGNM(단가산출근거 계산방식 · 기본 참) · +0x7c6 = START/CHBNM(일위대가표 · 기본 = CHGNM 값) · +0x7c5 = START/CHNNM(내역서 · 기본 참). ST_Sys cmBx_CHG·CHB·CHN 항목 「비목별금액 먼저계산」「총액 먼저 계산」. -### 5.5 적용제외 공정 · 높음(ITM_TYP 뜻 미확인) +### 5.5 적용제외 공정 · 높음(ITM_TYP 이름은 8.2 절) - 목록 0x55409c: `BDCODE1="T" .and. BDCODE1>="T"`(n = cBx_Lev 값 T1~T9) → 계표시 머리만 · 열 ITNUM·NAME1·SIZE1·T_AMT1·BDCODE1 · 5열 적용제외 기본 체크 = ITM_TYP ∈ {11, 21, 31, 41, 51, 71, 72}(비트표 0x55448c) · 6열 RecNo. - 확인 0x553c08: 체크된 행 RecNo 를 전역 동적 배열 0x5fa124 에 모음 → 확인 창 → 플래그 [0x5fa11c] = 1. - 변환 고리 0x555f68~0x5560d6: SORTCODE 차례 · 고른 RecNo 를 만나면 그 ENDCODE 까지 건너뜀 · 닫는 행에서 해제. -- 표본 7건 모든 머리 ITM_TYP = 0(관찰). +- 표본 7건 모든 머리 ITM_TYP = 0(관찰) · 이름표는 8.2 절. ### 5.6 비과세자재대 옵션 · 높음(키) / 중간(마지막 기록 뜻) @@ -189,7 +189,7 @@ OPTIMIZ(묶음 T=X, 우선 0, 자릿수 = wCm_Jeol 값(0~−5), 출력칸 1, 모 | 0673 | 실행예산서Ⅰ | 실 행 예 산 서 | 공종 25 · 설계(계획) 20 · 실행예산 25 · 작업명 15 · 구분 25 | | 0674 | 실행예산서Ⅱ | 실 행 예 산 서 | 같은 다섯 열 | -ST_Prt.CPM 의 「실행예산서Ⅰ」「실행예산서Ⅱ」는 메뉴 목록 문자열 묶음 안에만 있고 직접 참조 코드 없음 — Ⅰ·Ⅱ 의 행 고르기 차이는 미확인. +Ⅰ·Ⅱ 의 인쇄 모듈·줄 고르기는 8.2 절(REA MCP 보강). ## 7. 실물 대조 @@ -201,14 +201,39 @@ ST_Prt.CPM 의 「실행예산서Ⅰ」「실행예산서Ⅱ」는 메뉴 목록 | 비과세자재대 키 | 7건 모두 C_NBUGAM 0 · 영덕만 C_BUGA_M 비0(설계 공사) — 계약 표본 대조 없음 | | 실행예산·중기 실행단가 | 표본 0건 — 손계산 대조만 | -## 8. 미확인 +## 8. REA MCP 보강 (rea-agents 6.7.0 · Ghidra 12.1.4 · 같은 날) + +- 방법: REA MCP 세션(`open_binary` provider ghidra · `procedure_pseudo_code` · `resolve_containing_procedure`) + 앞 절 capstone 대조. 근거 원문 `evidence/rea_mcp/*.json`(evidence_id 포함) · 새 역어셈블 창 `evidence/*.asm.txt`. +- Ghidra 함수 관리자 한계: Delphi 게시 메서드(TwM_Mk_Cont.Act_Find_NagExecute 0x556d68 · MK_CONT_BOQ_ 0x555ce8 · Act_Calc_EstExecute 0x5569d8 · ST_Boq 0x456504)는 「not_in_procedure」 — 그 부분은 capstone 결과 유지. + +### 8.1 교차 확인 + +| 대상 | REA 근거 | 결과 | +|---|---|---| +| 계약 코드 갈래 0x554be0 | `main_conv.json` · `STmate_0x554be0_ghidra_pseudo.c` | 5.3·5.4 와 같음 — 생성 켬·대표율 0 관문, B·D·X/L·M·S·W/Q 갈래, `WBXDMLS` 자리, 대표율 100·0 건너뜀, 세 율 같음 → OPTIMIZ(B·D·그 밖 세 갈래), 다름 → MROUNDUD 셋, 새 코드 `'00000'`, 번호 되씀(+0x7bc·+0x7a0…), NAGCD·UC·BCONT 는 새 코드 첫 글자 B·D·X 일 때만 · **고칠 것 없음** | +| MROUNDUP 0x4547ac | `dpc_mroundup.json` | 아래 8.2 | + +### 8.2 풀린 미확인 + +| 항목 | 관찰 | 근거 | 확신 | +|---|---|---|---| +| MROUNDUP(값, 자릿수) | FormatFloat('0.##########') 로 미소값 자리 정함(MROUNDUD 와 같은 표) → FormatFloat('0.0#########', \|값\|+미소값) → 자릿수에서 자름 → 버린 다음 숫자(최대 10자리)를 '0.' 뒤에 붙여 0x4297f4(= Trunc + (Frac > 0), Math.Ceil) → 하나라도 0 아니면 10^−d 더함 · 부호 복원 | Ghidra 의사코드 · 0x4297f4 capstone | 높음 | +| ITM_TYP 뜻 | ST_U_Convert 상수 배열 0x587d9c(문자열 121칸, 0~120) = 0 일반공종 · 10·11 안전관리비 · 20·21 품질관리비 · 30·31 미확정설계공종(PS) · 40 제요율적용제외공종 · 41 제비율적용제외공종 · 50·51 작업설 등 · 60·61 매입세 · 70 관급자재공종 · 71 관급자재대(도급자) · 72 관급자재대(관급자) · 111 비과세자재대 · 120 조달수수료. ST_Boq 0x4fe15b 는 T·E·C 줄의 ITM_TYP 1~119 를 이 목록 이름으로 바꿔 표시 | `ST_U_Convert_ITM_TYP_name_table_0x587d9c.txt` · `ST_Boq_ITM_TYP_lookup_0x4fe15b.asm.txt` | 높음(이름) · 중간(x0·x1 차이) | +| 적용제외 기본 체크 | ITM_TYP 11·21·31·41·51·71·72 = 안전관리비·품질관리비·PS·제비율적용제외·작업설 등·관급자재대(도급자·관급자) | 위 + 0x55448c | 높음 | +| 울진 관급 줄 미변환 | BOQ11 T3「관급자재대」(닫음 C3「합계(제외금액)」) 블록과 T3「페기물처리」 블록 = 계약에서 코드가 그대로인 공종 전부 · 두 머리 ITM_TYP 0 → 사용자 선택(기본 체크 아님) · 변환 고리에 구역 조건 없음과 맞음 | 울진 STC 대조(시험) | 높음 | +| 실행예산서 Ⅰ·Ⅱ(0673·0674) | ST_Prt 보고서 분기 0x44fdf5 · 꼬리표 20000+INDX 표 0x44ffc0 → 20673 = `Prn_Nae_Cont1` · 20674 = `Prn_Nae_Cont2`(ST_P_Nae.CPM) · 둘 다 모드값([0x57a4e0] 1·2)만 다르고 0x4c1904 공용 · 양식 PM_Nae_Cont(제목 「실행예산서」) | `ST_Prt_report_dispatch_0x44fdf5.asm.txt` · `ST_Prt_tag_table_20623_20695.txt` · `ST_P_Nae_Prn_Nae_Cont1_2_0x4c27f8.asm.txt` | 높음 | +| Ⅰ·Ⅱ 줄 고르기 | 모드 1: 출력 설정 +0x1768 켬이면 조회식 `!(SUBSTR(BDCODE1,1,1)$"MLSWBDXAP" .and. QTY1=0)` · 모드 2: `SUBSTR(BDCODE1,1,1)$"TEC" .or. RS=1` · 모드 2 는 HRGroup1BeforePrint(0x4c3d38)에서 C1·E1(소계 닫음) 줄 안 찍음 · T1 머리 별도 처리(0x4c440e) | `ST_P_Nae_report_filter_mode_0x4c245d.asm.txt` · `…HRGroup1BeforePrint_0x4c3cd0.asm.txt` | 높음(조회식) · 중간(RS 칸 뜻) | +| 실행예산서 열 | PM_Nae_Cont 머리 띠: 공종 · 설계(계획)[수량·단위·금액] · 실행예산[작업명·구분·수량·단위·재료비·노무비·경비·총액(각 단가·금액)·비고] · 자료 칸 DES1·ITNUM·QTY2·UNIT2·T_AMT2·DES2·NAME1·SIZE1·UNIT1·BDCODE1 → 설계(계획) = 2칸 · 실행 = 1칸. SET_REP 다섯 열(6절)은 묶음 머리 | `ST_P_Nae_TPM_NAE_CONT.dfm.txt` | 높음(열) · 중간(작업명 = NAME1·구분 = SIZE1 대응) | +| 계약,실행내역서(0623·0624) | 20623 → `Prn_Nae` 또는 `Prn_NaeW`(설정 플래그로 고름) · 20624 → `Prn_Nae_P` 또는 `Prn_NaeW_P` — 설계 내역서와 같은 인쇄 모듈을 지금 공사(계약·실행)에 씀 · SET_REP FLDCNT 0 = 내역서 기본 열 | `ST_Prt_case_0623_0624_0x4513e7.asm.txt` | 높음(모듈) · 중간(플래그 뜻) | +| 실행예산 행 금액 0x456504 | 행 칸(QTY·PRPT·BDCODE·CODE·BIMOK·SBMOK·GUN·EQCODE·X_CODE·S_RATE·ITM_TYP·PRIN·PROUT·RATE…)을 계산 묶음에 싣고 수량칸 6개마다 0x433490(Q·A 줄) · 0x44019c → 0x43dee8(공용 행 계산) 부름 · CHNNM 바이트 전달 · OPTIMIZ 는 공용 계산 쪽(0x440aa1 등) — 설계 내역과 같은 행 엔진 | `ST_Boq_row_calc_0x456504.asm.txt` | 중간~높음 | +| 예상적용율 찾기 0x556d68 | 직접공사비 TCOST 0 이면 거절 · 0x45f974(원가계산 전체)로 총공사비 · 기본 목표 = 0.5~1.5 배 범위 안내 + 입력창 · 첫 율 = MROUNDUP(직접비 ÷ (총공사비 − 고정분), 5) · 되풀이: 비목 합(MCOST·LCOST·SCOST) × 율 → MROUNDUD(·,0,0) → 다시 원가계산 · 오차 비 ≥ 1/N 이면 율 ± 1/(2N)(N = min(5000, round(목표 ÷ 5000)))·MROUNDUD(·,5,0) · 마지막 율 × 100(소수 셋째 = 0.001%) · 행 단위 변환이 아니라 **비목 합 근사**(「대략」) | `STmate_TwM_Mk_Cont_Act_Find_NagExecute_0x556d68.asm.txt` | 중간 | + +## 9. 미확인 | 항목 | 막힌 까닭 | |---|---| -| MROUNDUP 본문 | 이름·호출 자리만 · 올림(0 반대쪽)으로 읽음 | -| ITM_TYP 코드 뜻 | 표본 머리 전부 0 | -| 실행예산서 Ⅰ·Ⅱ 행 차이 | ST_Prt 직접 참조 없음 | -| 행 금액 계산 0x456504(ST_Boq) | 미해독 | -| 울진 관급 구역 줄 미변환 까닭 | 변환 고리에 구역 조건 없음 · 머리 선택 또는 ITM_TYP 기본 체크 추정 불가 | -| 예상적용율 찾기 0x556d68 | 5000 나눔 반복·MROUNDUP 다수 — 세부 미해독 | -| MkBoq 1칸 → 3칸 복사 갈래 조건 | PCLASS 분기표 미해독 | +| RS 칸 뜻(실행예산서 Ⅱ 줄 고르기) | 실행예산 내역 만들기(MkBoq) 갈래 미해독 · 표본 0건 | +| 출력 설정 +0x1768 · 0623 의 Prn_Nae/Prn_NaeW 고름 플래그 이름 | 설정 화면 대응 미추적 | +| 예상적용율 찾기의 「고정분」(0x45f974 두 번째 결과) 정체 | 원가계산 내부 인자 미해독 | +| ITM_TYP x0·x1 차이(머리·공종?) | 표본 7건 ITM_TYP 전부 0 | +| MkBoq 1칸 → 2칸·3칸 복사 갈래 조건 | PCLASS 분기표 미해독 | diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/DP_Common_MROUNDUP_0x4547ac.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/DP_Common_MROUNDUP_0x4547ac.asm.txt new file mode 100644 index 000000000..fc56aa11c --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/DP_Common_MROUNDUP_0x4547ac.asm.txt @@ -0,0 +1,419 @@ +0x4547ac: push ebp +0x4547ad: mov ebp, esp +0x4547af: mov ecx, 0x14 +0x4547b4: push 0 +0x4547b6: push 0 +0x4547b8: dec ecx +0x4547b9: jne 0x4547b4 +0x4547bb: push ecx +0x4547bc: push ebx +0x4547bd: push esi +0x4547be: push edi +0x4547bf: xor eax, eax +0x4547c1: push ebp +0x4547c2: push 0x454cff +0x4547c7: push dword ptr fs:[eax] +0x4547ca: mov dword ptr fs:[eax], esp +0x4547cd: fld xword ptr [ebp + 8] +0x4547d0: fabs +0x4547d2: add esp, -0xc +0x4547d5: fstp xword ptr [esp] +0x4547d8: wait +0x4547d9: lea edx, [ebp - 0x14] +0x4547dc: mov eax, 0x454d1c ; str='0.##########' +0x4547e1: call 0x40a19c +0x4547e6: mov eax, dword ptr [ebp - 0x14] +0x4547e9: push eax +0x4547ea: lea eax, [ebp - 0x2c] +0x4547ed: push eax +0x4547ee: call 0x453e4c +0x4547f3: mov edx, dword ptr [ebp - 0x2c] +0x4547f6: lea eax, [ebp - 0x14] +0x4547f9: call 0x4045bc +0x4547fe: fld xword ptr [ebp + 8] +0x454801: fld xword ptr [0x454d2c] +0x454807: fcompp +0x454809: fnstsw ax +0x45480b: sahf +0x45480c: jae 0x454832 +0x45480e: lea eax, [ebp - 0x30] +0x454811: mov ecx, 0x454d40 ; str=' 값은 계산의 한계범위를 벗어난 값입니다.' +0x454816: mov edx, dword ptr [ebp - 0x14] +0x454819: call 0x404828 +0x45481e: mov ecx, dword ptr [ebp - 0x30] +0x454821: mov dl, 1 +0x454823: mov eax, dword ptr [0x407ab4] +0x454828: call 0x40b1d0 +0x45482d: call 0x403efc +0x454832: mov edx, dword ptr [ebp - 0x14] +0x454835: mov eax, 0x454d74 ; str='.' +0x45483a: call 0x404b18 +0x45483f: mov ebx, eax +0x454841: test ebx, ebx +0x454843: jle 0x45488b +0x454845: mov eax, dword ptr [ebp - 0x14] +0x454848: call 0x4047dc +0x45484d: sub eax, ebx +0x45484f: cmp eax, 0xb +0x454852: jge 0x45488b +0x454854: mov eax, dword ptr [ebp - 0x14] +0x454857: call 0x4047dc +0x45485c: mov esi, eax +0x45485e: test esi, esi +0x454860: jle 0x45488b +0x454862: mov edi, 1 +0x454867: mov eax, dword ptr [ebp - 0x14] +0x45486a: mov al, byte ptr [eax + edi - 1] +0x45486e: add al, 0xcf +0x454870: sub al, 9 +0x454872: jae 0x454887 +0x454874: mov eax, dword ptr [ebp - 0x14] +0x454877: call 0x4047dc +0x45487c: sub eax, edi +0x45487e: cmp eax, 0xb +0x454881: jge 0x45488b +0x454883: xor ebx, ebx +0x454885: jmp 0x45488b +0x454887: inc edi +0x454888: dec esi +0x454889: jne 0x454867 +0x45488b: mov eax, ebx +0x45488d: sub eax, 1 +0x454890: jb 0x4548a2 +0x454892: dec eax +0x454893: sub eax, 8 +0x454896: jb 0x4548e7 +0x454898: sub eax, 4 +0x45489b: jb 0x45490e +0x45489d: jmp 0x454931 +0x4548a2: xor eax, eax +0x4548a4: mov dword ptr [ebp - 0x28], eax +0x4548a7: mov dword ptr [ebp - 0x24], eax +0x4548aa: mov word ptr [ebp - 0x20], ax +0x4548ae: cmp dword ptr [ebp + 0x14], 0 +0x4548b2: jl 0x454952 +0x4548b8: mov eax, dword ptr [ebp - 0x14] +0x4548bb: push eax +0x4548bc: push 0x454d74 +0x4548c1: call 0x453640 +0x4548c6: test al, al +0x4548c8: jne 0x454952 +0x4548ce: mov eax, dword ptr [ebp + 8] +0x4548d1: mov dword ptr [ebp - 0x10], eax +0x4548d4: mov eax, dword ptr [ebp + 0xc] +0x4548d7: mov dword ptr [ebp - 0xc], eax +0x4548da: mov ax, word ptr [ebp + 0x10] +0x4548de: mov word ptr [ebp - 8], ax +0x4548e2: jmp 0x454cb4 +0x4548e7: push 0x4002 +0x4548ec: push 0xa0000000 +0x4548f1: push 0 +0x4548f3: sub ebx, 0xd +0x4548f6: mov dword ptr [ebp - 0x34], ebx +0x4548f9: fild dword ptr [ebp - 0x34] +0x4548fc: add esp, -0xc +0x4548ff: fstp xword ptr [esp] +0x454902: wait +0x454903: call 0x42983c +0x454908: fstp xword ptr [ebp - 0x28] +0x45490b: wait +0x45490c: jmp 0x454952 +0x45490e: push 0x4002 +0x454913: push 0xa0000000 +0x454918: push 0 +0x45491a: push 0xc001 +0x45491f: push 0x80000000 +0x454924: push 0 +0x454926: call 0x42983c +0x45492b: fstp xword ptr [ebp - 0x28] +0x45492e: wait +0x45492f: jmp 0x454952 +0x454931: push 0x4002 +0x454936: push 0xa0000000 +0x45493b: push 0 +0x45493d: push 0xc002 +0x454942: push 0x90000000 +0x454947: push 0 +0x454949: call 0x42983c +0x45494e: fstp xword ptr [ebp - 0x28] +0x454951: wait +0x454952: fld xword ptr [ebp + 8] +0x454955: fcomp dword ptr [0x454d78] ; f32=0.0 +0x45495b: fnstsw ax +0x45495d: sahf +0x45495e: je 0x4549b7 +0x454960: fld xword ptr [ebp + 8] +0x454963: fabs +0x454965: fld xword ptr [ebp - 0x28] +0x454968: faddp st(1) +0x45496a: add esp, -0xc +0x45496d: fstp xword ptr [esp] +0x454970: wait +0x454971: lea edx, [ebp - 0x14] +0x454974: mov eax, 0x454d84 ; str='0.0#########' +0x454979: call 0x40a19c +0x45497e: mov eax, dword ptr [ebp - 0x14] +0x454981: push eax +0x454982: lea eax, [ebp - 0x38] +0x454985: push eax +0x454986: call 0x453e4c +0x45498b: mov edx, dword ptr [ebp - 0x38] +0x45498e: lea eax, [ebp - 0x14] +0x454991: call 0x4045bc +0x454996: mov eax, dword ptr [ebp - 0x14] +0x454999: push eax +0x45499a: push 0x454d74 +0x45499f: call 0x453640 +0x4549a4: test al, al +0x4549a6: jne 0x4549e4 +0x4549a8: lea eax, [ebp - 0x14] +0x4549ab: mov edx, 0x454d9c ; str='.0' +0x4549b0: call 0x4047e4 +0x4549b5: jmp 0x4549e4 +0x4549b7: xor eax, eax +0x4549b9: mov dword ptr [ebp - 0x10], eax +0x4549bc: mov dword ptr [ebp - 0xc], eax +0x4549bf: mov word ptr [ebp - 8], ax +0x4549c3: jmp 0x454cb4 +0x4549c8: mov edx, dword ptr [ebp - 0x14] +0x4549cb: mov eax, 0x454da8 ; str=',' +0x4549d0: call 0x404b18 +0x4549d5: mov edx, eax +0x4549d7: lea eax, [ebp - 0x14] +0x4549da: mov ecx, 1 +0x4549df: call 0x404a74 +0x4549e4: mov edx, dword ptr [ebp - 0x14] +0x4549e7: mov eax, 0x454da8 ; str=',' +0x4549ec: call 0x404b18 +0x4549f1: test eax, eax +0x4549f3: jg 0x4549c8 +0x4549f5: mov edx, dword ptr [ebp - 0x14] +0x4549f8: mov eax, 0x454d74 ; str='.' +0x4549fd: call 0x404b18 +0x454a02: mov ebx, eax +0x454a04: cmp dword ptr [ebp + 0x14], 0 +0x454a08: jne 0x454a49 +0x454a0a: lea eax, [ebp - 0x3c] +0x454a0d: push eax +0x454a0e: lea edx, [ebx + 1] +0x454a11: mov ecx, 0xa +0x454a16: mov eax, dword ptr [ebp - 0x14] +0x454a19: call 0x404a34 +0x454a1e: mov ecx, dword ptr [ebp - 0x3c] +0x454a21: lea eax, [ebp - 0x1c] +0x454a24: mov edx, 0x454db4 ; str='0.' +0x454a29: call 0x404828 +0x454a2e: lea eax, [ebp - 0x14] +0x454a31: push eax +0x454a32: mov ecx, ebx +0x454a34: dec ecx +0x454a35: mov edx, 1 +0x454a3a: mov eax, dword ptr [ebp - 0x14] +0x454a3d: call 0x404a34 +0x454a42: xor ebx, ebx +0x454a44: jmp 0x454bde +0x454a49: cmp dword ptr [ebp + 0x14], 0 +0x454a4d: jle 0x454abe +0x454a4f: lea eax, [ebp - 0x40] +0x454a52: push eax +0x454a53: mov edx, dword ptr [ebp + 0x14] +0x454a56: add edx, ebx +0x454a58: inc edx +0x454a59: mov ecx, 0xa +0x454a5e: mov eax, dword ptr [ebp - 0x14] +0x454a61: call 0x404a34 +0x454a66: mov ecx, dword ptr [ebp - 0x40] +0x454a69: lea eax, [ebp - 0x1c] +0x454a6c: mov edx, 0x454db4 ; str='0.' +0x454a71: call 0x404828 +0x454a76: lea eax, [ebp - 0x44] +0x454a79: push eax +0x454a7a: mov ecx, ebx +0x454a7c: dec ecx +0x454a7d: mov edx, 1 +0x454a82: mov eax, dword ptr [ebp - 0x14] +0x454a85: call 0x404a34 +0x454a8a: push dword ptr [ebp - 0x44] +0x454a8d: push 0x454d74 +0x454a92: lea eax, [ebp - 0x48] +0x454a95: push eax +0x454a96: lea edx, [ebx + 1] +0x454a99: mov ecx, dword ptr [ebp + 0x14] +0x454a9c: mov eax, dword ptr [ebp - 0x14] +0x454a9f: call 0x404a34 +0x454aa4: push dword ptr [ebp - 0x48] +0x454aa7: lea eax, [ebp - 0x14] +0x454aaa: mov edx, 3 +0x454aaf: call 0x40489c +0x454ab4: mov ebx, dword ptr [ebp + 0x14] +0x454ab7: neg ebx +0x454ab9: jmp 0x454bde +0x454abe: mov eax, dword ptr [ebp + 0x14] +0x454ac1: cdq +0x454ac2: xor eax, edx +0x454ac4: sub eax, edx +0x454ac6: mov dword ptr [ebp + 0x14], eax +0x454ac9: mov eax, ebx +0x454acb: dec eax +0x454acc: cmp eax, dword ptr [ebp + 0x14] +0x454acf: jle 0x454b76 +0x454ad5: lea eax, [ebp - 0x18] +0x454ad8: call 0x404524 +0x454add: mov esi, dword ptr [ebp + 0x14] +0x454ae0: test esi, esi +0x454ae2: jle 0x454af9 +0x454ae4: lea edx, [ebp - 0x18] +0x454ae7: mov ecx, 1 +0x454aec: mov eax, 0x454dc0 ; str='0' +0x454af1: call 0x404abc +0x454af6: dec esi +0x454af7: jne 0x454ae4 +0x454af9: lea eax, [ebp - 0x4c] +0x454afc: push eax +0x454afd: mov eax, dword ptr [ebp - 0x14] +0x454b00: push eax +0x454b01: push 0x454d74 +0x454b06: lea eax, [ebp - 0x50] +0x454b09: push eax +0x454b0a: call 0x453a20 +0x454b0f: lea eax, [ebp - 0x50] +0x454b12: push eax +0x454b13: mov eax, dword ptr [ebp - 0x14] +0x454b16: push eax +0x454b17: push 0x454d74 +0x454b1c: lea eax, [ebp - 0x54] +0x454b1f: push eax +0x454b20: call 0x453ab4 +0x454b25: mov edx, dword ptr [ebp - 0x54] +0x454b28: pop eax +0x454b29: call 0x4047e4 +0x454b2e: mov eax, dword ptr [ebp - 0x50] +0x454b31: mov esi, ebx +0x454b33: sub esi, dword ptr [ebp + 0x14] +0x454b36: mov edx, esi +0x454b38: mov ecx, 0xa +0x454b3d: call 0x404a34 +0x454b42: mov ecx, dword ptr [ebp - 0x4c] +0x454b45: lea eax, [ebp - 0x1c] +0x454b48: mov edx, 0x454db4 ; str='0.' +0x454b4d: call 0x404828 +0x454b52: lea eax, [ebp - 0x58] +0x454b55: push eax +0x454b56: mov ecx, esi +0x454b58: dec ecx +0x454b59: mov edx, 1 +0x454b5e: mov eax, dword ptr [ebp - 0x14] +0x454b61: call 0x404a34 +0x454b66: mov edx, dword ptr [ebp - 0x58] +0x454b69: lea eax, [ebp - 0x14] +0x454b6c: mov ecx, dword ptr [ebp - 0x18] +0x454b6f: call 0x404828 +0x454b74: jmp 0x454bdb +0x454b76: push 0x454db4 +0x454b7b: lea eax, [ebp - 0x5c] +0x454b7e: push eax +0x454b7f: mov ecx, dword ptr [ebp + 0x14] +0x454b82: sub ecx, ebx +0x454b84: dec ecx +0x454b85: mov edx, 1 +0x454b8a: mov eax, 0x454dcc ; str='0000000000' +0x454b8f: call 0x404a34 +0x454b94: push dword ptr [ebp - 0x5c] +0x454b97: mov eax, dword ptr [ebp - 0x14] +0x454b9a: push eax +0x454b9b: push 0x454d74 +0x454ba0: lea eax, [ebp - 0x60] +0x454ba3: push eax +0x454ba4: call 0x453a20 +0x454ba9: push dword ptr [ebp - 0x60] +0x454bac: mov eax, dword ptr [ebp - 0x14] +0x454baf: push eax +0x454bb0: push 0x454d74 +0x454bb5: lea eax, [ebp - 0x64] +0x454bb8: push eax +0x454bb9: call 0x453ab4 +0x454bbe: push dword ptr [ebp - 0x64] +0x454bc1: lea eax, [ebp - 0x1c] +0x454bc4: mov edx, 4 +0x454bc9: call 0x40489c +0x454bce: lea eax, [ebp - 0x14] +0x454bd1: mov edx, 0x454dc0 ; str='0' +0x454bd6: call 0x4045bc +0x454bdb: mov ebx, dword ptr [ebp + 0x14] +0x454bde: mov eax, dword ptr [ebp - 0x1c] +0x454be1: call 0x40a1f4 +0x454be6: add esp, -0xc +0x454be9: fstp xword ptr [esp] +0x454bec: wait +0x454bed: call 0x4297f4 +0x454bf2: mov dword ptr [ebp - 0x34], eax +0x454bf5: fild dword ptr [ebp - 0x34] +0x454bf8: fstp xword ptr [ebp - 0x70] +0x454bfb: wait +0x454bfc: push 0x4002 +0x454c01: push 0xa0000000 +0x454c06: push 0 +0x454c08: mov dword ptr [ebp - 0x74], ebx +0x454c0b: fild dword ptr [ebp - 0x74] +0x454c0e: add esp, -0xc +0x454c11: fstp xword ptr [esp] +0x454c14: wait +0x454c15: call 0x42983c +0x454c1a: fld xword ptr [ebp - 0x70] +0x454c1d: fmulp st(1) +0x454c1f: fstp xword ptr [ebp - 0x28] +0x454c22: wait +0x454c23: mov eax, dword ptr [ebp - 0x14] +0x454c26: call 0x40a1f4 +0x454c2b: fld xword ptr [ebp - 0x28] +0x454c2e: faddp st(1) +0x454c30: fsubr dword ptr [0x454d78] ; f32=0.0 +0x454c36: lea eax, [ebp - 0x94] +0x454c3c: call 0x405520 +0x454c41: push dword ptr [ebp - 0x88] +0x454c47: push dword ptr [ebp - 0x8c] +0x454c4d: push dword ptr [ebp - 0x90] +0x454c53: push dword ptr [ebp - 0x94] +0x454c59: mov eax, dword ptr [ebp - 0x14] +0x454c5c: call 0x40a1f4 +0x454c61: fld xword ptr [ebp - 0x28] +0x454c64: faddp st(1) +0x454c66: lea eax, [ebp - 0xa4] +0x454c6c: call 0x405520 +0x454c71: push dword ptr [ebp - 0x98] +0x454c77: push dword ptr [ebp - 0x9c] +0x454c7d: push dword ptr [ebp - 0xa0] +0x454c83: push dword ptr [ebp - 0xa4] +0x454c89: fld xword ptr [ebp + 8] +0x454c8c: fcomp dword ptr [0x454d78] ; f32=0.0 +0x454c92: fnstsw ax +0x454c94: sahf +0x454c95: seta al +0x454c98: push eax +0x454c99: lea eax, [ebp - 0x84] +0x454c9f: push eax +0x454ca0: call 0x4535a0 +0x454ca5: lea eax, [ebp - 0x84] +0x454cab: call 0x4054c4 +0x454cb0: fstp xword ptr [ebp - 0x10] +0x454cb3: wait +0x454cb4: xor eax, eax +0x454cb6: pop edx +0x454cb7: pop ecx +0x454cb8: pop ecx +0x454cb9: mov dword ptr fs:[eax], edx +0x454cbc: push 0x454d06 +0x454cc1: lea eax, [ebp - 0xa4] +0x454cc7: mov edx, dword ptr [0x40109c] +0x454ccd: mov ecx, 3 +0x454cd2: call 0x405018 +0x454cd7: lea eax, [ebp - 0x64] +0x454cda: mov edx, 0xc +0x454cdf: call 0x404548 +0x454ce4: lea eax, [ebp - 0x30] +0x454ce7: mov edx, 2 +0x454cec: call 0x404548 +0x454cf1: lea eax, [ebp - 0x1c] +0x454cf4: mov edx, 3 +0x454cf9: call 0x404548 +0x454cfe: ret diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_ITM_TYP_lookup_0x4fe15b.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_ITM_TYP_lookup_0x4fe15b.asm.txt new file mode 100644 index 000000000..4f95aa700 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_ITM_TYP_lookup_0x4fe15b.asm.txt @@ -0,0 +1,33 @@ +0x4fe15b: mov eax, dword ptr [ebp - 8] +0x4fe15e: mov al, byte ptr [eax] +0x4fe160: sub al, 0x43 +0x4fe162: je 0x4fe16c +0x4fe164: sub al, 2 +0x4fe166: je 0x4fe16c +0x4fe168: sub al, 0xf +0x4fe16a: jne 0x4fe1cc +0x4fe16c: mov eax, dword ptr [ebx + 0x2f4] +0x4fe172: mov edx, 0x4fe53c ; str='ITM_TYP' +0x4fe177: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x4fe17c: dec eax +0x4fe17d: sub eax, 0x77 +0x4fe180: jae 0x4fe1cc +0x4fe182: lea ecx, [ebp - 0x110] +0x4fe188: mov eax, dword ptr [ebx + 0x2f4] +0x4fe18e: mov edx, 0x4fe53c ; str='ITM_TYP' +0x4fe193: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4fe198: mov edx, dword ptr [ebp - 0x110] +0x4fe19e: mov eax, dword ptr [esi + 0xd8] +0x4fe1a4: mov ecx, dword ptr [eax] +0x4fe1a6: call dword ptr [ecx + 0x54] +0x4fe1a9: mov edx, eax +0x4fe1ab: lea ecx, [ebp - 0x10c] +0x4fe1b1: mov eax, dword ptr [esi + 0x90] +0x4fe1b7: mov edi, dword ptr [eax] +0x4fe1b9: call dword ptr [edi + 0xc] +0x4fe1bc: mov edx, dword ptr [ebp - 0x10c] +0x4fe1c2: mov eax, dword ptr [ebp + 0x14] +0x4fe1c5: call 0x401220 ; rtl60!@System@@LStrAsg$qqrpvpxv +0x4fe1ca: jmp 0x4fe1d4 +0x4fe1cc: mov eax, dword ptr [ebp + 0x14] +0x4fe1cf: call 0x401210 ; rtl60!@System@@LStrClr$qqrpv diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_row_calc_0x456504.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_row_calc_0x456504.asm.txt new file mode 100644 index 000000000..c29c69fbc --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Boq_row_calc_0x456504.asm.txt @@ -0,0 +1,487 @@ +0x456504: push ebp +0x456505: mov ebp, esp +0x456507: push ecx +0x456508: mov ecx, 0x46 +0x45650d: push 0 +0x45650f: push 0 +0x456511: dec ecx +0x456512: jne 0x45650d +0x456514: push ecx +0x456515: xchg dword ptr [ebp - 4], ecx +0x456518: push ebx +0x456519: push esi +0x45651a: push edi +0x45651b: mov byte ptr [ebp - 2], cl +0x45651e: mov edi, edx +0x456520: mov byte ptr [ebp - 1], al +0x456523: mov ebx, dword ptr [ebp + 8] +0x456526: xor eax, eax +0x456528: push ebp +0x456529: push 0x456efa +0x45652e: push dword ptr fs:[eax] +0x456531: mov dword ptr fs:[eax], esp +0x456534: cmp byte ptr [ebp - 1], 0 +0x456538: je 0x456638 +0x45653e: mov esi, 1 +0x456543: lea eax, [ebx + 0x130] +0x456549: mov dword ptr [ebp - 8], eax +0x45654c: push esi +0x45654d: push edi +0x45654e: mov esi, 0x456f0c +0x456553: lea edi, [ebp - 0x30] +0x456556: mov ecx, 8 +0x45655b: rep movsd dword ptr es:[edi], dword ptr [esi] +0x45655d: pop edi +0x45655e: pop esi +0x45655f: mov eax, esi +0x456561: cmp eax, 0xff +0x456566: ja 0x45656c +0x456568: bts dword ptr [ebp - 0x30], eax +0x45656c: mov eax, dword ptr [ebp + 0xc] +0x45656f: cmp eax, 0xff +0x456574: ja 0x45657a +0x456576: bt dword ptr [ebp - 0x30], eax +0x45657a: jae 0x4565f1 +0x45657c: lea eax, [ebp - 0x54] +0x45657f: mov edx, dword ptr [ebp + 0x10] +0x456582: mov cl, 0xfc +0x456584: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +0x456589: push dword ptr [ebp - 0x48] +0x45658c: push dword ptr [ebp - 0x4c] +0x45658f: push dword ptr [ebp - 0x50] +0x456592: push dword ptr [ebp - 0x54] +0x456595: lea eax, [ebp - 0x64] +0x456598: mov edx, esi +0x45659a: mov cl, 0xfc +0x45659c: call 0x401368 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +0x4565a1: push dword ptr [ebp - 0x58] +0x4565a4: push dword ptr [ebp - 0x5c] +0x4565a7: push dword ptr [ebp - 0x60] +0x4565aa: push dword ptr [ebp - 0x64] +0x4565ad: cmp dword ptr [ebp + 0xc], 0 +0x4565b1: sete al +0x4565b4: push eax +0x4565b5: lea eax, [ebp - 0x44] +0x4565b8: push eax +0x4565b9: call 0x42b2f8 ; DP_COMMON!IIF +0x4565be: lea eax, [ebp - 0x44] +0x4565c1: call 0x401350 ; rtl60!@System@@VarToReal$qqrrx14System@Variant +0x4565c6: call 0x401068 ; rtl60!@System@@ROUND$qqrv +0x4565cb: mov edx, dword ptr [0x52e784] +0x4565d1: mov ecx, dword ptr [edx + eax*4] +0x4565d4: lea eax, [ebp - 0x34] +0x4565d7: mov edx, 0x456f34 ; str='QTY' +0x4565dc: call 0x401270 ; rtl60!@System@@LStrCat3$qqrv +0x4565e1: mov edx, dword ptr [ebp - 0x34] +0x4565e4: mov eax, edi +0x4565e6: call 0x403ab0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x4565eb: mov eax, dword ptr [ebp - 8] +0x4565ee: fstp qword ptr [eax] +0x4565f0: wait +0x4565f1: inc esi +0x4565f2: add dword ptr [ebp - 8], 8 +0x4565f6: cmp esi, 6 +0x4565f9: jne 0x45654c +0x4565ff: push 0x456f40 +0x456604: lea eax, [ebp - 0x68] +0x456607: mov dl, byte ptr [ebx + 0x14] +0x45660a: call 0x401238 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +0x45660f: mov eax, dword ptr [ebp - 0x68] +0x456612: push eax +0x456613: call 0x42b308 ; DP_COMMON!MPOS +0x456618: test al, al +0x45661a: je 0x45699f +0x456620: mov edx, 0x456f54 ; str='PRPT' +0x456625: mov eax, edi +0x456627: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x45662c: mov word ptr [ebx + 0x41c], ax +0x456633: jmp 0x45699f +0x456638: lea ecx, [ebp - 0x16c] +0x45663e: mov edx, 0x456f64 ; str='BDCODE' +0x456643: mov eax, edi +0x456645: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x45664a: mov edx, dword ptr [ebp - 0x16c] +0x456650: lea eax, [ebp - 0x168] +0x456656: mov ecx, 0xff +0x45665b: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x456660: lea edx, [ebp - 0x168] +0x456666: lea eax, [ebx + 0x13] +0x456669: mov cl, 6 +0x45666b: call 0x4010b0 +0x456670: lea ecx, [ebp - 0x170] +0x456676: mov edx, 0x456f74 ; str='CODE' +0x45667b: mov eax, edi +0x45667d: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x456682: mov edx, dword ptr [ebp - 0x170] +0x456688: lea eax, [ebp - 0x168] +0x45668e: mov ecx, 0xff +0x456693: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x456698: lea edx, [ebp - 0x168] +0x45669e: lea eax, [ebx + 0x1a] +0x4566a1: mov cl, 6 +0x4566a3: call 0x4010b0 +0x4566a8: lea ecx, [ebp - 0x174] +0x4566ae: mov edx, 0x456f84 ; str='BIMOK' +0x4566b3: mov eax, edi +0x4566b5: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4566ba: mov edx, dword ptr [ebp - 0x174] +0x4566c0: lea eax, [ebp - 0x168] +0x4566c6: mov ecx, 0xff +0x4566cb: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x4566d0: lea edx, [ebp - 0x168] +0x4566d6: lea eax, [ebx + 0x1d1] +0x4566dc: mov cl, 1 +0x4566de: call 0x4010b0 +0x4566e3: lea eax, [ebp - 0x17c] +0x4566e9: lea edx, [ebx + 0x1a] +0x4566ec: call 0x401248 +0x4566f1: mov eax, dword ptr [ebp - 0x17c] +0x4566f7: lea edx, [ebp - 0x178] +0x4566fd: call 0x40177c ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +0x456702: mov eax, dword ptr [ebp - 0x178] +0x456708: mov edx, 0x456f94 ; str='PR' +0x45670d: call 0x401280 ; rtl60!@System@@LStrCmp$qqrv +0x456712: jne 0x45671d +0x456714: mov word ptr [ebx + 0x1d1], 0x2001 +0x45671d: cmp byte ptr [ebx + 0x14], 0x44 +0x456721: jne 0x456806 +0x456727: lea ecx, [ebp - 0x180] +0x45672d: mov edx, 0x456fa0 ; str='SBMOK' +0x456732: mov eax, edi +0x456734: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x456739: mov edx, dword ptr [ebp - 0x180] +0x45673f: lea eax, [ebp - 0x168] +0x456745: mov ecx, 0xff +0x45674a: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x45674f: lea edx, [ebp - 0x168] +0x456755: lea eax, [ebx + 0x1d3] +0x45675b: mov cl, 1 +0x45675d: call 0x4010b0 +0x456762: push 0x456fb0 +0x456767: lea eax, [ebp - 0x184] +0x45676d: lea edx, [ebx + 0x1d3] +0x456773: call 0x401248 +0x456778: mov eax, dword ptr [ebp - 0x184] +0x45677e: push eax +0x45677f: call 0x42b308 ; DP_COMMON!MPOS +0x456784: test al, al +0x456786: je 0x456806 +0x456788: push 0x456fbc +0x45678d: lea ecx, [ebp - 0x188] +0x456793: mov edx, 0x456fd0 ; str='GUN' +0x456798: mov eax, edi +0x45679a: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x45679f: mov eax, dword ptr [ebp - 0x188] +0x4567a5: push eax +0x4567a6: call 0x42b308 ; DP_COMMON!MPOS +0x4567ab: test al, al +0x4567ad: je 0x456806 +0x4567af: lea ecx, [ebp - 0x18c] +0x4567b5: mov edx, 0x456fd0 ; str='GUN' +0x4567ba: mov eax, edi +0x4567bc: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4567c1: mov edx, dword ptr [ebp - 0x18c] +0x4567c7: lea eax, [ebp - 0x168] +0x4567cd: mov ecx, 0xff +0x4567d2: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x4567d7: lea edx, [ebp - 0x168] +0x4567dd: lea eax, [ebx + 0x1d5] +0x4567e3: mov cl, 1 +0x4567e5: call 0x4010b0 +0x4567ea: mov word ptr [ebx + 0x1d9], 0x2001 +0x4567f3: lea eax, [ebx + 0x1d7] +0x4567f9: lea edx, [ebx + 0x1d5] +0x4567ff: mov cl, 1 +0x456801: call 0x4010b0 +0x456806: mov edx, 0x456fdc ; str='DEVD1' +0x45680b: mov eax, edi +0x45680d: call 0x403ac0 ; Apollo5D6!@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString +0x456812: cmp ax, 1 +0x456816: sbb eax, eax +0x456818: inc eax +0x456819: mov edx, dword ptr [ebp + 0xc] +0x45681c: mov byte ptr [ebx + edx + 0x1da], al +0x456823: lea ecx, [ebp - 0x190] +0x456829: mov edx, 0x456fec ; str='EQCODE' +0x45682e: mov eax, edi +0x456830: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x456835: mov edx, dword ptr [ebp - 0x190] +0x45683b: lea eax, [ebp - 0x168] +0x456841: mov ecx, 0xff +0x456846: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x45684b: lea edx, [ebp - 0x168] +0x456851: lea eax, [ebx + 0x2d] +0x456854: mov cl, 0xb +0x456856: call 0x4010b0 +0x45685b: mov edx, 0x456ffc ; str='QTY1' +0x456860: mov eax, edi +0x456862: call 0x403ab0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x456867: mov eax, dword ptr [ebp + 0xc] +0x45686a: fstp qword ptr [ebx + eax*8 + 0x128] +0x456871: wait +0x456872: lea ecx, [ebp - 0x194] +0x456878: mov edx, 0x45700c ; str='X_CODE' +0x45687d: mov eax, edi +0x45687f: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x456884: mov edx, dword ptr [ebp - 0x194] +0x45688a: lea eax, [ebp - 0x168] +0x456890: mov ecx, 0xff +0x456895: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x45689a: lea edx, [ebp - 0x168] +0x4568a0: lea eax, [ebx + 0x408] +0x4568a6: mov cl, 6 +0x4568a8: call 0x4010b0 +0x4568ad: push 0x456f40 +0x4568b2: lea eax, [ebp - 0x198] +0x4568b8: mov dl, byte ptr [ebx + 0x1b] +0x4568bb: call 0x401238 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +0x4568c0: mov eax, dword ptr [ebp - 0x198] +0x4568c6: push eax +0x4568c7: call 0x42b308 ; DP_COMMON!MPOS +0x4568cc: test al, al +0x4568ce: je 0x4568e3 +0x4568d0: mov edx, 0x456f54 ; str='PRPT' +0x4568d5: mov eax, edi +0x4568d7: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x4568dc: mov word ptr [ebx + 0x41c], ax +0x4568e3: mov al, byte ptr [ebx + 0x14] +0x4568e6: sub al, 0x44 +0x4568e8: jne 0x456977 +0x4568ee: lea ecx, [ebp - 0x1a0] +0x4568f4: mov edx, 0x45701c ; str='SPRPT' +0x4568f9: mov eax, edi +0x4568fb: call 0x403ad0 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x456900: mov edx, dword ptr [ebp - 0x1a0] +0x456906: lea ecx, [ebp - 0x19c] +0x45690c: mov ax, word ptr [ebx + 0x41c] +0x456913: call 0x4614b8 +0x456918: mov edx, dword ptr [ebp - 0x19c] +0x45691e: lea eax, [ebp - 0x168] +0x456924: mov ecx, 0xff +0x456929: call 0x401258 ; rtl60!@System@@LStrToString$qqrv +0x45692e: lea edx, [ebp - 0x168] +0x456934: lea eax, [ebx + 0x40f] +0x45693a: mov cl, 0xb +0x45693c: call 0x4010b0 +0x456941: push 0x45702c +0x456946: lea eax, [ebp - 0x1a4] +0x45694c: mov dl, byte ptr [ebx + 0x1b] +0x45694f: call 0x401238 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +0x456954: mov eax, dword ptr [ebp - 0x1a4] +0x45695a: push eax +0x45695b: call 0x42b308 ; DP_COMMON!MPOS +0x456960: test al, al +0x456962: je 0x456977 +0x456964: mov edx, 0x457038 ; str='TPRPT' +0x456969: mov eax, edi +0x45696b: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x456970: mov word ptr [ebx + 0x41e], ax +0x456977: cmp byte ptr [ebx + 0x1b], 0x54 +0x45697b: jne 0x456998 +0x45697d: mov edx, 0x457048 ; str='S_RATE' +0x456982: mov eax, edi +0x456984: call 0x403ac0 ; Apollo5D6!@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString +0x456989: cmp ax, 1 +0x45698d: sbb eax, eax +0x45698f: inc eax +0x456990: mov byte ptr [ebx + 0x180], al +0x456996: jmp 0x45699f +0x456998: mov byte ptr [ebx + 0x180], 0 +0x45699f: mov edx, 0x457058 ; str='EXIST1' +0x4569a4: mov eax, edi +0x4569a6: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x4569ab: mov dword ptr [ebx + 0x1e0], eax +0x4569b1: mov edx, 0x457068 ; str='SORTCODE' +0x4569b6: mov eax, edi +0x4569b8: call 0x403ab0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x4569bd: fstp qword ptr [ebx + 0x1e8] +0x4569c3: wait +0x4569c4: mov eax, edi +0x4569c6: call 0x403b70 ; Apollo5D6!@Apodset@TApolloTable@GetSXRecno$qqrv +0x4569cb: mov dword ptr [ebx + 0x1f4], eax +0x4569d1: mov word ptr [ebx + 0x432], 0 +0x4569da: cmp byte ptr [ebp - 1], 0 +0x4569de: je 0x4569f3 +0x4569e0: mov edx, 0x45707c ; str='ITM_TYP' +0x4569e5: mov eax, edi +0x4569e7: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x4569ec: mov word ptr [ebx + 0x452], ax +0x4569f3: lea eax, [ebp - 0x1ac] +0x4569f9: lea edx, [ebx + 0x1a] +0x4569fc: call 0x401248 +0x456a01: mov eax, dword ptr [ebp - 0x1ac] +0x456a07: lea edx, [ebp - 0x1a8] +0x456a0d: call 0x40177c ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +0x456a12: mov eax, dword ptr [ebp - 0x1a8] +0x456a18: mov edx, 0x456f94 ; str='PR' +0x456a1d: call 0x401280 ; rtl60!@System@@LStrCmp$qqrv +0x456a22: je 0x456a55 +0x456a24: lea eax, [ebp - 0x1b4] +0x456a2a: lea edx, [ebx + 0x1a] +0x456a2d: call 0x401248 +0x456a32: mov eax, dword ptr [ebp - 0x1b4] +0x456a38: lea edx, [ebp - 0x1b0] +0x456a3e: call 0x40177c ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +0x456a43: mov eax, dword ptr [ebp - 0x1b0] +0x456a49: mov edx, 0x45708c ; str='RR' +0x456a4e: call 0x401280 ; rtl60!@System@@LStrCmp$qqrv +0x456a53: jne 0x456ad3 +0x456a55: mov edx, 0x457098 ; str='PRIN' +0x456a5a: mov eax, edi +0x456a5c: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x456a61: mov word ptr [ebx + 0x420], ax +0x456a68: mov edx, 0x4570a8 ; str='PROUT' +0x456a6d: mov eax, edi +0x456a6f: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x456a74: mov word ptr [ebx + 0x422], ax +0x456a7b: cmp byte ptr [ebp - 1], 0 +0x456a7f: je 0x456aad +0x456a81: mov edx, 0x4570b8 ; str='FRM_NH' +0x456a86: mov eax, edi +0x456a88: call 0x403ac0 ; Apollo5D6!@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString +0x456a8d: cmp ax, 1 +0x456a91: sbb eax, eax +0x456a93: inc eax +0x456a94: mov byte ptr [ebx + 0x430], al +0x456a9a: mov edx, 0x4570c8 ; str='RCU' +0x456a9f: mov eax, edi +0x456aa1: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x456aa6: mov word ptr [ebx + 0x432], ax +0x456aad: cmp word ptr [ebx + 0x420], 0 +0x456ab5: jne 0x456ac0 +0x456ab7: mov word ptr [ebx + 0x420], 4 +0x456ac0: cmp word ptr [ebx + 0x422], 0 +0x456ac8: jne 0x456ad3 +0x456aca: mov word ptr [ebx + 0x422], 4 +0x456ad3: mov edx, 0x4570d4 ; str='RATE' +0x456ad8: mov eax, edi +0x456ada: call 0x403ab0 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x456adf: fstp qword ptr [ebx + 0x428] +0x456ae5: wait +0x456ae6: mov edx, 0x4570e4 ; str='KWNGP' +0x456aeb: mov eax, edi +0x456aed: call 0x403ab8 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x456af2: mov word ptr [ebx + 0x434], ax +0x456af9: mov edx, 0x4570f4 ; str='BL_AMT' +0x456afe: mov eax, edi +0x456b00: call 0x403ac0 ; Apollo5D6!@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString +0x456b05: cmp ax, 1 +0x456b09: sbb eax, eax +0x456b0b: inc eax +0x456b0c: mov byte ptr [ebx + 0x447], al +0x456b12: mov eax, dword ptr [ebx + 0x1e0] +0x456b18: sub eax, 1 +0x456b1b: je 0x456b26 +0x456b1d: sub eax, 2 +0x456b20: jne 0x456bf8 +0x456b26: lea ecx, [ebp - 0x1c4] +0x456b2c: mov edx, 0x457104 ; str='NAME1' +0x456b31: mov eax, edi +0x456b33: call 0x403578 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +0x456b38: lea edx, [ebp - 0x1c4] +0x456b3e: lea eax, [ebp - 0x168] +0x456b44: call 0x401358 ; rtl60!@System@@VarToPStr$qqrpvrx14System@Variant +0x456b49: lea edx, [ebp - 0x168] +0x456b4f: lea eax, [ebx + 0x4b] +0x456b52: mov cl, 0x32 +0x456b54: call 0x4010b0 +0x456b59: lea ecx, [ebp - 0x1d4] +0x456b5f: mov edx, 0x457114 ; str='NAME2' +0x456b64: mov eax, edi +0x456b66: call 0x403578 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +0x456b6b: lea edx, [ebp - 0x1d4] +0x456b71: lea eax, [ebp - 0x168] +0x456b77: call 0x401358 ; rtl60!@System@@VarToPStr$qqrpvrx14System@Variant +0x456b7c: lea edx, [ebp - 0x168] +0x456b82: lea eax, [ebx + 0x7e] +0x456b85: mov cl, 0x32 +0x456b87: call 0x4010b0 +0x456b8c: lea ecx, [ebp - 0x1e4] +0x456b92: mov edx, 0x457124 ; str='SIZE1' +0x456b97: mov eax, edi +0x456b99: call 0x403578 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +0x456b9e: lea edx, [ebp - 0x1e4] +0x456ba4: lea eax, [ebp - 0x168] +0x456baa: call 0x401358 ; rtl60!@System@@VarToPStr$qqrpvrx14System@Variant +0x456baf: lea edx, [ebp - 0x168] +0x456bb5: lea eax, [ebx + 0xb1] +0x456bbb: mov cl, 0x3c +0x456bbd: call 0x4010b0 +0x456bc2: lea ecx, [ebp - 0x1f4] +0x456bc8: mov edx, 0x457134 ; str='SIZE2' +0x456bcd: mov eax, edi +0x456bcf: call 0x403578 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +0x456bd4: lea edx, [ebp - 0x1f4] +0x456bda: lea eax, [ebp - 0x168] +0x456be0: call 0x401358 ; rtl60!@System@@VarToPStr$qqrpvrx14System@Variant +0x456be5: lea edx, [ebp - 0x168] +0x456beb: lea eax, [ebx + 0xee] +0x456bf1: mov cl, 0x3c +0x456bf3: call 0x4010b0 +0x456bf8: mov eax, dword ptr [ebx + 0x1e0] +0x456bfe: add eax, -2 +0x456c01: sub eax, 2 +0x456c04: jae 0x456c3c +0x456c06: lea ecx, [ebp - 0x204] +0x456c0c: mov edx, 0x457144 ; str='UNIT1' +0x456c11: mov eax, edi +0x456c13: call 0x403578 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +0x456c18: lea edx, [ebp - 0x204] +0x456c1e: lea eax, [ebp - 0x168] +0x456c24: call 0x401358 ; rtl60!@System@@VarToPStr$qqrpvrx14System@Variant +0x456c29: lea edx, [ebp - 0x168] +0x456c2f: lea eax, [ebx + 0x1c6] +0x456c35: mov cl, 0xa +0x456c37: call 0x4010b0 +0x456c3c: mov esi, 1 +0x456c41: push esi +0x456c42: push edi +0x456c43: mov esi, 0x456f0c +0x456c48: lea edi, [ebp - 0x30] +0x456c4b: mov ecx, 8 +0x456c50: rep movsd dword ptr es:[edi], dword ptr [esi] +0x456c52: pop edi +0x456c53: pop esi +0x456c54: mov eax, esi +0x456c56: cmp eax, 0xff +0x456c5b: ja 0x456c61 +0x456c5d: bts dword ptr [ebp - 0x30], eax +0x456c61: mov eax, dword ptr [ebp + 0xc] +0x456c64: cmp eax, 0xff +0x456c69: ja 0x456c6f +0x456c6b: bt dword ptr [ebp - 0x30], eax +0x456c6f: jae 0x456cc0 +0x456c71: cmp byte ptr [ebp - 1], 0 +0x456c75: je 0x456c81 +0x456c77: cmp byte ptr [ebx + 0x1b], 0x51 +0x456c7b: jne 0x456c81 +0x456c7d: mov byte ptr [ebp + 0x1c], 1 +0x456c81: cmp byte ptr [ebp + 0x1c], 0 +0x456c85: je 0x456c9c +0x456c87: push esi +0x456c88: cmp byte ptr [ebx + 0x1b], 0x41 +0x456c8c: sete al +0x456c8f: push eax +0x456c90: mov eax, ebx +0x456c92: mov ecx, dword ptr [ebp + 0x14] +0x456c95: mov edx, edi +0x456c97: call 0x433490 +0x456c9c: push esi +0x456c9d: mov al, byte ptr [ebp - 2] +0x456ca0: push eax +0x456ca1: mov al, byte ptr [ebp + 0x1c] +0x456ca4: xor al, 1 +0x456ca6: push eax +0x456ca7: mov al, byte ptr [ebp - 1] +0x456caa: push eax +0x456cab: movzx eax, word ptr [ebx + 0x432] +0x456cb2: push eax +0x456cb3: mov eax, ebx +0x456cb5: mov ecx, dword ptr [ebp + 0x14] +0x456cb8: mov edx, dword ptr [ebp + 0x18] +0x456cbb: call 0x44019c +0x456cc0: inc esi +0x456cc1: cmp esi, 6 +0x456cc4: jne 0x456c41 +0x456cca: cmp byte ptr [ebp - 1], 0 +0x456cce: jne 0x456e93 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_Prn_Nae_Cont1_2_0x4c27f8.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_Prn_Nae_Cont1_2_0x4c27f8.asm.txt new file mode 100644 index 000000000..d79e8a68c --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_Prn_Nae_Cont1_2_0x4c27f8.asm.txt @@ -0,0 +1,16 @@ +0x4c27f8: push ebp +0x4c27f9: mov ebp, esp +0x4c27fb: mov dword ptr [0x57a4e0], 1 +0x4c2805: mov eax, dword ptr [ebp + 8] +0x4c2808: call 0x4c1904 +0x4c280d: pop ebp +0x4c280e: ret 4 +0x4c2811: lea eax, [eax] +0x4c2814: push ebp +0x4c2815: mov ebp, esp +0x4c2817: mov dword ptr [0x57a4e0], 2 +0x4c2821: mov eax, dword ptr [ebp + 8] +0x4c2824: call 0x4c1904 +0x4c2829: pop ebp +0x4c282a: ret 4 +0x4c282d: lea eax, [eax] diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_NAE_CONT.dfm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_NAE_CONT.dfm.txt new file mode 100644 index 000000000..54644f31d --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_NAE_CONT.dfm.txt @@ -0,0 +1,1128 @@ +object PM_Nae_Cont: TPM_Nae_Cont + Left = 211 + Top = 105 + Width = 815 + Height = 640 + Caption = 'PM_Nae_Cont' + Color = 'clBtnFace' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clWindowText' + Font.Height = -12 + Font.Name = '굴림체' + Font.Style = set() + OldCreateOrder = False + Scaled = False + WindowState = 'wsMaximized' + PixelsPerInch = 96 + TextHeight = 12 + object HRPage1: THRPage + Left = 0 + Top = 0 + Width = 1123 + Height = 794 + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clSilver' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clWindowText' + Font.Height = -16 + Font.Name = '굴림체' + Font.Style = set() + ParentFont = False + PageInfo.Width = 210 + PageInfo.Height = 297 + PageInfo.MargineLeft = 20 + PageInfo.MargineTop = 15 + PageInfo.MargineRight = 15 + PageInfo.MargineBottom = 15 + PageInfo.Orientation = 'hpoLandscape' + PrintZoom = 100 + Ruler = True + Units = 'hpuMM' + object HRPageBand3: THRPageBand + Left = 76 + Top = 107 + Width = 990 + Height = 595 + LocateAtPage = 'alNone' + BandType = 'hpbPageHeader' + Alignment = 'taLeftJustify' + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnRight', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clGreen' + BorderStyle.Transparent = True + object lb_Smpl: THRLabel + 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 = set() + FontWidth = 30 + ParentFont = False + Transparent = True + Visible = False + BorderStyle.ShadowBrush.Color = 'clGray' + BorderStyle.ShadowWidth = 3 + BorderStyle.Slash = {'slNormal'} + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Color = 13290239 + BorderStyle.Pen.Width = 3 + BorderStyle.Transparent = True + Caption = 'S A M P L E' + LocateAtText = 'hllNone' + object HRGroup1: THRGroup + Left = 76 + Top = 173 + Width = 990 + Height = 25 + BeforePrint = 'HRGroup1BeforePrint' + Alignment = 'taLeftJustify' + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clAqua' + BorderStyle.Transparent = True + GroupStyle.RepeatToEOP = True + GroupStyle.RepeatControls = True + GroupStyle.SuppressText = True + GroupStyle.PrintOnRepeat = True + LocateAtPage = 'hgaNone' + object txDES1: THRDBText + Tag = 200012 + Left = 41 + Top = 0 + Width = 126 + Height = 26 + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'DES1' + DataSource = 'ds_BoqXX' + TextFunction = 'htfNone' + object txITNUM: THRDBText + Tag = 200011 + Left = 0 + Top = 0 + Width = 42 + Height = 26 + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'ITNUM' + TextFunction = 'htfNone' + object txQTY2: THRDBText + Tag = 200020 + Left = 166 + Top = 0 + Width = 42 + Height = 26 + Alignment = 'taRightJustify' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'QTY2' + DataSource = 'ds_BoqXX' + TextFunction = 'htfNone' + DisplayFormat = '#,0.####;;#' + object txUNIT2: THRDBText + Tag = 200030 + Left = 207 + Top = 0 + Width = 26 + Height = 26 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'UNIT2' + DataSource = 'ds_BoqXX' + TextFunction = 'htfNone' + object txT_AMT2: THRDBText + Tag = 200040 + Left = 232 + Top = 0 + Width = 54 + Height = 26 + Alignment = 'taRightJustify' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'T_AMT2' + TextFunction = 'htfNone' + DisplayFormat = '#,#' + object txDES2: THRDBText + Tag = 200050 + Left = 285 + Top = 0 + Width = 66 + Height = 26 + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'DES2' + DataSource = 'ds_BoqXX' + TextFunction = 'htfNone' + object txNAME1: THRDBText + Tag = 200061 + Left = 350 + Top = 0 + Width = 66 + Height = 26 + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'NAME1' + TextFunction = 'htfNone' + object txSIZE1: THRDBText + Tag = 200062 + Left = 415 + Top = 0 + Width = 66 + Height = 26 + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'SIZE1' + TextFunction = 'htfNone' + object txUNIT1: THRDBText + Tag = 200080 + Left = 521 + Top = 0 + Width = 26 + Height = 26 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'UNIT1' + TextFunction = 'htfNone' + object txBDCODE1: THRDBText + Tag = 200130 + Left = 922 + Top = 0 + Width = 68 + Height = 26 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 3 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 8 + BorderMargine.Bottom = 0 + DataField = 'BDCODE1' + TextFunction = 'htfNone' + object HRGroupBand0: THRGroupBand + Left = 76 + Top = 107 + Width = 990 + Height = 66 + AlignWithGroup = 'hbaGroupBoth' + LocateAtGroup = 'hblTopAttach' + BodyGroup = 'HRGroup1' + BandType = 'hgbGroupHeader' + Alignment = 'taLeftJustify' + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Transparent = True + object lbFld01: THRLabel + Tag = 100010 + Left = 0 + Top = 0 + Width = 167 + Height = 67 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 28 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '공 종' + LocateAtText = 'hllNone' + object lbFld020: THRLabel + Tag = 100020 + Left = 166 + Top = 0 + Width = 120 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '설 계 ( 계 획 )' + LocateAtText = 'hllNone' + object lbFld02: THRLabel + Tag = 100020 + Left = 166 + Top = 22 + Width = 42 + Height = 45 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 17 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '수 량' + LocateAtText = 'hllNone' + object lbFld050: THRLabel + Tag = 100050 + Left = 285 + Top = 0 + Width = 638 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '실 행 예 산' + LocateAtText = 'hllNone' + object lbFld03: THRLabel + Tag = 100030 + Left = 207 + Top = 22 + Width = 26 + Height = 45 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 17 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '단위' + LocateAtText = 'hllNone' + object lbFld04: THRLabel + Tag = 100040 + Left = 232 + Top = 22 + Width = 54 + Height = 45 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 17 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '금 액' + LocateAtText = 'hllNone' + object lbFld05: THRLabel + Tag = 100050 + Left = 285 + Top = 22 + Width = 66 + Height = 45 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 17 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '작업명' + LocateAtText = 'hllNone' + object lbFld06: THRLabel + Tag = 100060 + Left = 350 + Top = 22 + Width = 131 + Height = 45 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 17 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '구 분' + LocateAtText = 'hllNone' + object lbFld07: THRLabel + Tag = 100070 + Left = 480 + Top = 22 + Width = 42 + Height = 45 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 17 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '수 량' + LocateAtText = 'hllNone' + object lbFld08: THRLabel + Tag = 100080 + Left = 521 + Top = 22 + Width = 26 + Height = 45 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 17 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '단위' + LocateAtText = 'hllNone' + object lbFld09: THRLabel + Tag = 110090 + Left = 546 + Top = 22 + Width = 95 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '재 료 비' + LocateAtText = 'hllNone' + object lbFld091: THRLabel + Tag = 120091 + Left = 546 + Top = 44 + Width = 42 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '단가' + LocateAtText = 'hllNone' + object lbFld092: THRLabel + Tag = 120092 + Left = 587 + Top = 44 + Width = 54 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '금 액' + LocateAtText = 'hllNone' + object lbFld10: THRLabel + Tag = 110100 + Left = 640 + Top = 22 + Width = 95 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '노 무 비' + LocateAtText = 'hllNone' + object lbFld101: THRLabel + Tag = 120101 + Left = 640 + Top = 44 + Width = 42 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '단가' + LocateAtText = 'hllNone' + object lbFld102: THRLabel + Tag = 120102 + Left = 681 + Top = 44 + Width = 54 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '금 액' + LocateAtText = 'hllNone' + object lbFld11: THRLabel + Tag = 110110 + Left = 734 + Top = 22 + Width = 95 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '경 비' + LocateAtText = 'hllNone' + object lbFld111: THRLabel + Tag = 120111 + Left = 734 + Top = 44 + Width = 42 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '단가' + LocateAtText = 'hllNone' + object lbFld112: THRLabel + Tag = 120112 + Left = 775 + Top = 44 + Width = 54 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '금 액' + LocateAtText = 'hllNone' + object lbFld12: THRLabel + Tag = 110120 + Left = 828 + Top = 22 + Width = 95 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '총 액' + LocateAtText = 'hllNone' + object lbFld131: THRLabel + Tag = 120121 + Left = 828 + Top = 44 + Width = 42 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '단가' + LocateAtText = 'hllNone' + object lbFld132: THRLabel + Tag = 120122 + Left = 869 + Top = 44 + Width = 54 + Height = 23 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 5 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '금 액' + LocateAtText = 'hllNone' + object lbFld13: THRLabel + Tag = 100130 + Left = 922 + Top = 0 + Width = 68 + Height = 67 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -15 + Font.Name = '굴림체' + Font.Style = set() + FontWidth = 5 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = {'lnBottom', 'lnRight', 'lnLeft', 'lnTop'} + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Pen.Width = 0 + BorderStyle.Transparent = True + BorderMargine.Top = 28 + BorderMargine.Bottom = 0 + AlignWithText.Left = True + AlignWithText.Top = True + AlignWithText.Width = True + AlignWithText.Height = True + Caption = '비 고' + LocateAtText = 'hllNone' + object HRPageBand2: THRPageBand + Left = 76 + Top = 701 + Width = 990 + Height = 36 + LocateAtPage = 'alBottom' + BandType = 'hpbPageFooter' + Alignment = 'taLeftJustify' + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clGreen' + BorderStyle.Transparent = True + object CopName: THRLabel + Tag = 900000 + Left = 0 + Top = 4 + Width = 990 + Height = 22 + Alignment = 'taRightJustify' + FontWidth = 5 + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Transparent = True + BorderMargine.Top = 4 + Caption = '경영정보(주)' + LocateAtText = 'hllNone' + object HrPage: THRCalc + Tag = 900000 + Left = 0 + Top = 4 + Width = 990 + Height = 22 + Alignment = 'taCenter' + FontWidth = 5 + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Transparent = True + BorderMargine.Top = 4 + ResetType = 'hrtResetValue' + ResetValue = 1 + CalcFunction = 'hcfPageNo' + DisplayFormat = '- #,# -' + LocateAtText = 'hllNone' + object HRPageBand1: THRPageBand + Left = 76 + Top = 57 + Width = 990 + Height = 50 + LocateAtPage = 'alTop' + BandType = 'hpbPageHeader' + Alignment = 'taLeftJustify' + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clGreen' + BorderStyle.Transparent = True + object HlCap: THRLabel + Left = 0 + Top = 0 + Width = 990 + Height = 27 + Alignment = 'taCenter' + Font.Charset = 'HANGEUL_CHARSET' + Font.Color = 'clBlack' + Font.Height = -21 + Font.Name = '굴림체' + Font.Style = {'fsUnderline', 'fsBold'} + FontWidth = 6 + ParentFont = False + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Transparent = True + Caption = '실 행 예 산 서' + LocateAtText = 'hllNone' + object txPName: THRLabel + Tag = 900000 + Left = 0 + Top = 26 + Width = 600 + Height = 23 + FontWidth = 5 + Transparent = True + BorderStyle.Slash = set() + BorderStyle.Lines = set() + BorderStyle.DesignPen.Color = 'clSilver' + BorderStyle.Transparent = True + BorderMargine.Bottom = 0 + Caption = '공사명 : 경영정보(주) 앞 도로개설공사' + LocateAtText = 'hllNone' + object ds_BoqXX: TDataSource + DataSet = 'tb_BoqXX' + Left = 240 + Top = 32 + object tb_BoqXX: TApolloTable + DatabaseName = 'ST_Work' + CachedUpdates = False + FieldDefs = [] + IndexDefs = [] + IndexName = 'SORTCODE' + Sequenced = False + TableName = 'PRT.DBF' + TableType = 'ttSXNSX' + Left = 176 + Top = 32 + object HRLink1: THRLink + LinkInfo.SourceTrees.Strings = [' 0 0pM_Nae_Cont.ds_BoqXX'] + LinkInfo.MasterFields.Strings = ['Master;'] + LinkInfo.DetailFields.Strings = ['Detail;'] + LinkInfo.SelfKyFields.Strings = ['SelfKy;'] + LinkInfo.GroupOrders.Strings = ['Groups;HRGroup1;0::1:1:1:0:'] + Left = 88 + Top = 32 + object Hrp: THyperReport + PreviewOptions.Caption = '실행예산서' + PreviewOptions.ShowModal = True + PreviewOptions.WindowState = 'wsMaximized' + PreviewOptions.ZoomMin = 59 + PreviewOptions.ZoomMax = 151 + PreviewOptions.ZoomStep = 10 + PreviewOptions.MargineColor = 'clWhite' + PreviewOptions.VisibleButtons = {'btLast', 'btPrev', 'btStop', 'btZoomOut', 'btFirst', 'btPrint', 'btZoomIn', 'btStart', 'btNext', 'btSave'} + PrintFirstHeader = True + EnableSaveReport = True + SaveAllProperties = True + SaveFileName = '실행예산서' + SpoolTitle = '실행예산서' + OnSaveDialog = 'HrpSaveDialog' + OnShowPrintDialog = 'HrpShowPrintDialog' + Left = 32 + Top = 32 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_Nae_Cont_HRGroup1BeforePrint_0x4c3cd0.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_Nae_Cont_HRGroup1BeforePrint_0x4c3cd0.asm.txt new file mode 100644 index 000000000..60f175b98 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_TPM_Nae_Cont_HRGroup1BeforePrint_0x4c3cd0.asm.txt @@ -0,0 +1,746 @@ +0x4c3cd0: push ebp +0x4c3cd1: mov ebp, esp +0x4c3cd3: push ecx +0x4c3cd4: mov ecx, 0x53 +0x4c3cd9: push 0 +0x4c3cdb: push 0 +0x4c3cdd: dec ecx +0x4c3cde: jne 0x4c3cd9 +0x4c3ce0: xchg dword ptr [ebp - 4], ecx +0x4c3ce3: push ebx +0x4c3ce4: push esi +0x4c3ce5: push edi +0x4c3ce6: mov ebx, ecx +0x4c3ce8: mov dword ptr [ebp - 0xc], eax +0x4c3ceb: xor eax, eax +0x4c3ced: push ebp +0x4c3cee: push 0x4c4912 +0x4c3cf3: push dword ptr fs:[eax] +0x4c3cf6: mov dword ptr fs:[eax], esp +0x4c3cf9: lea ecx, [ebp - 0x12c] +0x4c3cff: mov eax, dword ptr [ebp - 0xc] +0x4c3d02: mov eax, dword ptr [eax + 0x2f4] +0x4c3d08: mov edx, 0x4c492c ; str='BDCODE1' +0x4c3d0d: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c3d12: mov edx, dword ptr [ebp - 0x12c] +0x4c3d18: lea eax, [ebp - 0x128] +0x4c3d1e: mov ecx, 0xff +0x4c3d23: call 0x401228 ; rtl60!@System@@LStrToString$qqrv +0x4c3d28: lea edx, [ebp - 0x128] +0x4c3d2e: lea eax, [ebp - 7] +0x4c3d31: mov cl, 6 +0x4c3d33: call 0x4010b0 +0x4c3d38: cmp dword ptr [0x57a4e0], 2 +0x4c3d3f: jne 0x4c3d5a +0x4c3d41: mov al, byte ptr [ebp - 6] +0x4c3d44: sub al, 0x43 +0x4c3d46: je 0x4c3d4c +0x4c3d48: sub al, 2 +0x4c3d4a: jne 0x4c3d5a +0x4c3d4c: cmp byte ptr [ebp - 5], 0x31 +0x4c3d50: jne 0x4c3d5a +0x4c3d52: mov byte ptr [ebx], 0 +0x4c3d55: jmp 0x4c47f0 +0x4c3d5a: mov al, byte ptr [ebp - 6] +0x4c3d5d: sub al, 0x43 +0x4c3d5f: je 0x4c3d65 +0x4c3d61: sub al, 2 +0x4c3d63: jne 0x4c3d8f +0x4c3d65: mov eax, dword ptr [0x4ebf3c] +0x4c3d6a: mov eax, dword ptr [eax] +0x4c3d6c: cmp byte ptr [eax + 0x1759], 0 +0x4c3d73: je 0x4c3d8f +0x4c3d75: mov eax, dword ptr [ebp - 0xc] +0x4c3d78: mov eax, dword ptr [eax + 0x2fc] +0x4c3d7e: call 0x402c18 ; dclhrp60!@Hreport@THRPrs@GetisRepeatToEOP$qqrv +0x4c3d83: test al, al +0x4c3d85: jne 0x4c3d8f +0x4c3d87: mov byte ptr [ebx], 0 +0x4c3d8a: jmp 0x4c47f0 +0x4c3d8f: cmp byte ptr [ebp - 6], 0x3a +0x4c3d93: jne 0x4c3e21 +0x4c3d99: jmp 0x4c3dae +0x4c3d9b: mov eax, dword ptr [ebp - 0xc] +0x4c3d9e: mov eax, dword ptr [eax + 0x2f4] +0x4c3da4: mov edx, 1 +0x4c3da9: call 0x402da8 ; Apollo5D6!@Apodset@TApolloTable@Skip$qqri +0x4c3dae: mov eax, dword ptr [ebp - 0xc] +0x4c3db1: mov eax, dword ptr [eax + 0x2f4] +0x4c3db7: mov edx, dword ptr [eax] +0x4c3db9: call dword ptr [edx + 0x270] +0x4c3dbf: test al, al +0x4c3dc1: jne 0x4c3de7 +0x4c3dc3: lea ecx, [ebp - 0x130] +0x4c3dc9: mov eax, dword ptr [ebp - 0xc] +0x4c3dcc: mov eax, dword ptr [eax + 0x2f4] +0x4c3dd2: mov edx, 0x4c492c ; str='BDCODE1' +0x4c3dd7: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c3ddc: mov eax, dword ptr [ebp - 0x130] +0x4c3de2: cmp byte ptr [eax], 0x3a +0x4c3de5: je 0x4c3d9b +0x4c3de7: mov eax, dword ptr [ebp - 0xc] +0x4c3dea: mov eax, dword ptr [eax + 0x2f4] +0x4c3df0: mov edx, dword ptr [eax] +0x4c3df2: call dword ptr [edx + 0x270] +0x4c3df8: test al, al +0x4c3dfa: je 0x4c3e11 +0x4c3dfc: mov eax, dword ptr [ebp - 0xc] +0x4c3dff: mov eax, dword ptr [eax + 0x2fc] +0x4c3e05: call 0x402c18 ; dclhrp60!@Hreport@THRPrs@GetisRepeatToEOP$qqrv +0x4c3e0a: mov byte ptr [ebx], al +0x4c3e0c: jmp 0x4c47f0 +0x4c3e11: mov eax, dword ptr [ebp - 0xc] +0x4c3e14: mov eax, dword ptr [eax + 0x2fc] +0x4c3e1a: call 0x402c00 ; dclhrp60!@Hreport@THRPrs@PageSkip$qqrv +0x4c3e1f: jmp 0x4c3e24 +0x4c3e21: mov byte ptr [ebx], 1 +0x4c3e24: mov al, byte ptr [ebp - 6] +0x4c3e27: sub al, 0x43 +0x4c3e29: je 0x4c3e37 +0x4c3e2b: sub al, 2 +0x4c3e2d: je 0x4c3e37 +0x4c3e2f: sub al, 0xf +0x4c3e31: jne 0x4c3f3c +0x4c3e37: lea eax, [ebp - 0x134] +0x4c3e3d: mov dl, byte ptr [ebp - 5] +0x4c3e40: call 0x401208 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +0x4c3e45: mov eax, dword ptr [ebp - 0x134] +0x4c3e4b: push eax +0x4c3e4c: lea ecx, [ebp - 0x138] +0x4c3e52: mov eax, dword ptr [0x4ebf3c] +0x4c3e57: mov eax, dword ptr [eax] +0x4c3e59: movsx eax, byte ptr [eax + 0x1741] +0x4c3e60: inc eax +0x4c3e61: mov edx, 1 +0x4c3e66: call 0x40172c ; rtl60!@Sysutils@IntToHex$qqrii +0x4c3e6b: mov edx, dword ptr [ebp - 0x138] +0x4c3e71: pop eax +0x4c3e72: call 0x401250 ; rtl60!@System@@LStrCmp$qqrv +0x4c3e77: jb 0x4c3f3c +0x4c3e7d: mov eax, dword ptr [ebp - 0xc] +0x4c3e80: mov eax, dword ptr [eax + 0x310] +0x4c3e86: mov ebx, dword ptr [eax + 0x68] +0x4c3e89: mov eax, ebx +0x4c3e8b: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3e90: mov edx, eax +0x4c3e92: or dl, byte ptr [0x4c4934] +0x4c3e98: mov eax, ebx +0x4c3e9a: call 0x401f98 +0x4c3e9f: mov eax, dword ptr [ebp - 0xc] +0x4c3ea2: mov eax, dword ptr [eax + 0x310] +0x4c3ea8: mov eax, dword ptr [eax + 0x68] +0x4c3eab: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3eb0: mov edx, eax +0x4c3eb2: or dl, byte ptr [0x4c4934] +0x4c3eb8: mov eax, dword ptr [ebp - 0xc] +0x4c3ebb: mov eax, dword ptr [eax + 0x30c] +0x4c3ec1: mov eax, dword ptr [eax + 0x68] +0x4c3ec4: call 0x401f98 +0x4c3ec9: mov eax, dword ptr [ebp - 0xc] +0x4c3ecc: mov eax, dword ptr [eax + 0x310] +0x4c3ed2: mov eax, dword ptr [eax + 0x68] +0x4c3ed5: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3eda: mov edx, eax +0x4c3edc: or dl, byte ptr [0x4c4934] +0x4c3ee2: mov eax, dword ptr [ebp - 0xc] +0x4c3ee5: mov eax, dword ptr [eax + 0x320] +0x4c3eeb: mov eax, dword ptr [eax + 0x68] +0x4c3eee: call 0x401f98 +0x4c3ef3: mov eax, dword ptr [ebp - 0xc] +0x4c3ef6: mov eax, dword ptr [eax + 0x324] +0x4c3efc: mov ebx, dword ptr [eax + 0x68] +0x4c3eff: mov eax, ebx +0x4c3f01: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3f06: mov edx, eax +0x4c3f08: or dl, byte ptr [0x4c4934] +0x4c3f0e: mov eax, ebx +0x4c3f10: call 0x401f98 +0x4c3f15: mov eax, dword ptr [ebp - 0xc] +0x4c3f18: mov eax, dword ptr [eax + 0x328] +0x4c3f1e: mov ebx, dword ptr [eax + 0x68] +0x4c3f21: mov eax, ebx +0x4c3f23: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3f28: mov edx, eax +0x4c3f2a: or dl, byte ptr [0x4c4934] +0x4c3f30: mov eax, ebx +0x4c3f32: call 0x401f98 +0x4c3f37: jmp 0x4c4000 +0x4c3f3c: mov eax, dword ptr [ebp - 0xc] +0x4c3f3f: mov eax, dword ptr [eax + 0x310] +0x4c3f45: mov ebx, dword ptr [eax + 0x68] +0x4c3f48: mov eax, ebx +0x4c3f4a: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3f4f: mov dl, byte ptr [0x4c4934] +0x4c3f55: not edx +0x4c3f57: and dl, al +0x4c3f59: mov eax, ebx +0x4c3f5b: call 0x401f98 +0x4c3f60: mov eax, dword ptr [ebp - 0xc] +0x4c3f63: mov eax, dword ptr [eax + 0x310] +0x4c3f69: mov eax, dword ptr [eax + 0x68] +0x4c3f6c: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3f71: mov dl, byte ptr [0x4c4934] +0x4c3f77: not edx +0x4c3f79: and dl, al +0x4c3f7b: mov eax, dword ptr [ebp - 0xc] +0x4c3f7e: mov eax, dword ptr [eax + 0x30c] +0x4c3f84: mov eax, dword ptr [eax + 0x68] +0x4c3f87: call 0x401f98 +0x4c3f8c: mov eax, dword ptr [ebp - 0xc] +0x4c3f8f: mov eax, dword ptr [eax + 0x310] +0x4c3f95: mov eax, dword ptr [eax + 0x68] +0x4c3f98: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3f9d: mov dl, byte ptr [0x4c4934] +0x4c3fa3: not edx +0x4c3fa5: and dl, al +0x4c3fa7: mov eax, dword ptr [ebp - 0xc] +0x4c3faa: mov eax, dword ptr [eax + 0x320] +0x4c3fb0: mov eax, dword ptr [eax + 0x68] +0x4c3fb3: call 0x401f98 +0x4c3fb8: mov eax, dword ptr [ebp - 0xc] +0x4c3fbb: mov eax, dword ptr [eax + 0x324] +0x4c3fc1: mov ebx, dword ptr [eax + 0x68] +0x4c3fc4: mov eax, ebx +0x4c3fc6: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3fcb: mov dl, byte ptr [0x4c4934] +0x4c3fd1: not edx +0x4c3fd3: and dl, al +0x4c3fd5: mov eax, ebx +0x4c3fd7: call 0x401f98 +0x4c3fdc: mov eax, dword ptr [ebp - 0xc] +0x4c3fdf: mov eax, dword ptr [eax + 0x328] +0x4c3fe5: mov ebx, dword ptr [eax + 0x68] +0x4c3fe8: mov eax, ebx +0x4c3fea: call 0x401f90 ; vcl60!@Graphics@TFont@GetStyle$qqrv +0x4c3fef: mov dl, byte ptr [0x4c4934] +0x4c3ff5: not edx +0x4c3ff7: and dl, al +0x4c3ff9: mov eax, ebx +0x4c3ffb: call 0x401f98 +0x4c4000: push ebp +0x4c4001: lea ecx, [ebp - 0x140] +0x4c4007: mov eax, dword ptr [ebp - 0xc] +0x4c400a: mov eax, dword ptr [eax + 0x2f4] +0x4c4010: mov edx, 0x4c4940 ; str='SIZE1' +0x4c4015: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c401a: mov eax, dword ptr [ebp - 0x140] +0x4c4020: lea edx, [ebp - 0x13c] +0x4c4026: call 0x401714 ; rtl60!@Sysutils@TrimRight$qqrx17System@AnsiString +0x4c402b: mov eax, dword ptr [ebp - 0x13c] +0x4c4031: push eax +0x4c4032: lea ecx, [ebp - 0x148] +0x4c4038: mov eax, dword ptr [ebp - 0xc] +0x4c403b: mov eax, dword ptr [eax + 0x2f4] +0x4c4041: mov edx, 0x4c4950 ; str='SIZE2' +0x4c4046: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c404b: mov eax, dword ptr [ebp - 0x148] +0x4c4051: lea edx, [ebp - 0x144] +0x4c4057: call 0x401714 ; rtl60!@Sysutils@TrimRight$qqrx17System@AnsiString +0x4c405c: mov eax, dword ptr [ebp - 0x144] +0x4c4062: push eax +0x4c4063: mov eax, dword ptr [ebp - 0xc] +0x4c4066: mov eax, dword ptr [eax + 0x2f4] +0x4c406c: mov edx, 0x4c4960 ; str='EXIST1' +0x4c4071: call 0x402d78 ; Apollo5D6!@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString +0x4c4076: push eax +0x4c4077: lea ecx, [ebp - 0x150] +0x4c407d: mov eax, dword ptr [ebp - 0xc] +0x4c4080: mov eax, dword ptr [eax + 0x2f4] +0x4c4086: mov edx, 0x4c4970 ; str='NAME2' +0x4c408b: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c4090: mov eax, dword ptr [ebp - 0x150] +0x4c4096: lea edx, [ebp - 0x14c] +0x4c409c: call 0x401714 ; rtl60!@Sysutils@TrimRight$qqrx17System@AnsiString +0x4c40a1: mov eax, dword ptr [ebp - 0x14c] +0x4c40a7: push eax +0x4c40a8: lea ecx, [ebp - 0x158] +0x4c40ae: mov eax, dword ptr [ebp - 0xc] +0x4c40b1: mov eax, dword ptr [eax + 0x2f4] +0x4c40b7: mov edx, 0x4c4980 ; str='NAME1' +0x4c40bc: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c40c1: mov eax, dword ptr [ebp - 0x158] +0x4c40c7: lea edx, [ebp - 0x154] +0x4c40cd: call 0x401714 ; rtl60!@Sysutils@TrimRight$qqrx17System@AnsiString +0x4c40d2: mov eax, dword ptr [ebp - 0x154] +0x4c40d8: push eax +0x4c40d9: lea ecx, [ebp - 0x160] +0x4c40df: mov eax, dword ptr [ebp - 0xc] +0x4c40e2: mov eax, dword ptr [eax + 0x2f4] +0x4c40e8: mov edx, 0x4c4990 ; str='ITNUM' +0x4c40ed: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c40f2: mov eax, dword ptr [ebp - 0x160] +0x4c40f8: lea edx, [ebp - 0x15c] +0x4c40fe: call 0x401714 ; rtl60!@Sysutils@TrimRight$qqrx17System@AnsiString +0x4c4103: mov eax, dword ptr [ebp - 0x15c] +0x4c4109: pop edx +0x4c410a: pop ecx +0x4c410b: call 0x4c39b4 +0x4c4110: pop ecx +0x4c4111: mov eax, dword ptr [0x4ebf3c] +0x4c4116: mov eax, dword ptr [eax] +0x4c4118: cmp byte ptr [eax + 0x1763], 0 +0x4c411f: jne 0x4c4137 +0x4c4121: cmp byte ptr [ebp - 6], 0x54 +0x4c4125: jne 0x4c4137 +0x4c4127: mov eax, dword ptr [0x4ebf3c] +0x4c412c: mov eax, dword ptr [eax] +0x4c412e: cmp byte ptr [eax + 0x1759], 0 +0x4c4135: jne 0x4c4142 +0x4c4137: mov al, byte ptr [ebp - 6] +0x4c413a: sub al, 0x43 +0x4c413c: je 0x4c4142 +0x4c413e: sub al, 2 +0x4c4140: jne 0x4c41a4 +0x4c4142: mov eax, dword ptr [0x4eb8dc] +0x4c4147: push eax +0x4c4148: mov eax, dword ptr [0x4eb8d0] +0x4c414d: push eax +0x4c414e: mov eax, dword ptr [0x4eb91c] +0x4c4153: push eax +0x4c4154: mov eax, dword ptr [ebp - 0xc] +0x4c4157: mov eax, dword ptr [eax + 0x2f4] +0x4c415d: mov edx, 0x4c49a0 ; str='T_AMT2' +0x4c4162: call 0x402d70 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x4c4167: add esp, -0xc +0x4c416a: fstp xword ptr [esp] +0x4c416d: wait +0x4c416e: lea eax, [ebp - 0x174] +0x4c4174: push eax +0x4c4175: call 0x437854 ; DP_COMMON!DIS_FMT1 +0x4c417a: mov edx, dword ptr [ebp - 0x174] +0x4c4180: lea eax, [ebp - 0x170] +0x4c4186: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c418b: lea edx, [ebp - 0x170] +0x4c4191: mov eax, dword ptr [ebp - 0xc] +0x4c4194: mov eax, dword ptr [eax + 0x31c] +0x4c419a: mov ecx, dword ptr [eax] +0x4c419c: call dword ptr [ecx + 0xc4] +0x4c41a2: jmp 0x4c41c8 +0x4c41a4: lea eax, [ebp - 0x184] +0x4c41aa: xor edx, edx +0x4c41ac: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c41b1: lea edx, [ebp - 0x184] +0x4c41b7: mov eax, dword ptr [ebp - 0xc] +0x4c41ba: mov eax, dword ptr [eax + 0x31c] +0x4c41c0: mov ecx, dword ptr [eax] +0x4c41c2: call dword ptr [ecx + 0xc4] +0x4c41c8: mov eax, dword ptr [0x4ebf3c] +0x4c41cd: mov eax, dword ptr [eax] +0x4c41cf: movsx eax, byte ptr [eax + 0x1788] +0x4c41d6: test eax, eax +0x4c41d8: jle 0x4c4513 +0x4c41de: mov dword ptr [ebp - 0x1c], eax +0x4c41e1: mov dword ptr [ebp - 0x20], 0x579ed4 +0x4c41e8: mov dword ptr [ebp - 0x24], 0x576e50 +0x4c41ef: push 0x4c49b0 +0x4c41f4: lea eax, [ebp - 0x188] +0x4c41fa: mov dl, byte ptr [ebp - 6] +0x4c41fd: call 0x401208 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +0x4c4202: mov eax, dword ptr [ebp - 0x188] +0x4c4208: push eax +0x4c4209: call 0x4377ec ; DP_COMMON!MPOS +0x4c420e: test al, al +0x4c4210: jne 0x4c421c +0x4c4212: xor eax, eax +0x4c4214: mov dword ptr [ebp - 0x18], eax +0x4c4217: mov dword ptr [ebp - 0x14], eax +0x4c421a: jmp 0x4c4242 +0x4c421c: lea eax, [ebp - 0x18c] +0x4c4222: mov edx, dword ptr [ebp - 0x20] +0x4c4225: call 0x401218 +0x4c422a: mov edx, dword ptr [ebp - 0x18c] +0x4c4230: mov eax, dword ptr [ebp - 0xc] +0x4c4233: mov eax, dword ptr [eax + 0x2f4] +0x4c4239: call 0x402d70 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x4c423e: fstp qword ptr [ebp - 0x18] +0x4c4241: wait +0x4c4242: lea eax, [ebp - 0x1a4] +0x4c4248: mov edx, dword ptr [ebp - 0x20] +0x4c424b: add edx, 0x200 +0x4c4251: call 0x401218 +0x4c4256: mov eax, dword ptr [ebp - 0x1a4] +0x4c425c: push eax +0x4c425d: lea eax, [ebp - 0x1a8] +0x4c4263: mov edx, dword ptr [ebp - 0x20] +0x4c4266: add edx, 0x100 +0x4c426c: call 0x401218 +0x4c4271: mov eax, dword ptr [ebp - 0x1a8] +0x4c4277: push eax +0x4c4278: mov eax, dword ptr [ebp - 0x20] +0x4c427b: movsx eax, byte ptr [eax + 0x301] +0x4c4282: push eax +0x4c4283: fld qword ptr [ebp - 0x18] +0x4c4286: add esp, -0xc +0x4c4289: fstp xword ptr [esp] +0x4c428c: wait +0x4c428d: lea eax, [ebp - 0x1a0] +0x4c4293: push eax +0x4c4294: call 0x437854 ; DP_COMMON!DIS_FMT1 +0x4c4299: mov edx, dword ptr [ebp - 0x1a0] +0x4c429f: lea eax, [ebp - 0x19c] +0x4c42a5: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c42aa: lea edx, [ebp - 0x19c] +0x4c42b0: mov eax, dword ptr [ebp - 0x20] +0x4c42b3: mov eax, dword ptr [eax - 4] +0x4c42b6: mov ecx, dword ptr [eax] +0x4c42b8: call dword ptr [ecx + 0xc4] +0x4c42be: mov dword ptr [ebp - 0x10], 4 +0x4c42c5: mov eax, dword ptr [ebp - 0x24] +0x4c42c8: mov dword ptr [ebp - 0x28], eax +0x4c42cb: mov edi, 1 +0x4c42d0: mov eax, dword ptr [ebp - 0x28] +0x4c42d3: mov ebx, eax +0x4c42d5: mov esi, ebx +0x4c42d7: mov eax, dword ptr [0x4ebf3c] +0x4c42dc: mov eax, dword ptr [eax] +0x4c42de: cmp byte ptr [eax + 0x1763], 0 +0x4c42e5: je 0x4c4309 +0x4c42e7: lea eax, [ebp - 0x1b8] +0x4c42ed: xor edx, edx +0x4c42ef: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c42f4: lea edx, [ebp - 0x1b8] +0x4c42fa: mov eax, dword ptr [esi] +0x4c42fc: mov ecx, dword ptr [eax] +0x4c42fe: call dword ptr [ecx + 0xc4] +0x4c4304: jmp 0x4c44dc +0x4c4309: mov al, byte ptr [ebp - 6] +0x4c430c: add al, 0xc0 +0x4c430e: cmp al, 0x1f +0x4c4310: ja 0x4c431c +0x4c4312: and eax, 0x7f +0x4c4315: bt dword ptr [0x4c49bc], eax +0x4c431c: jae 0x4c43e5 +0x4c4322: fld qword ptr [ebp - 0x18] +0x4c4325: fcomp dword ptr [0x4c49c0] ; f32=0.0 +0x4c432b: fnstsw ax +0x4c432d: sahf +0x4c432e: jne 0x4c4352 +0x4c4330: lea eax, [ebp - 0x1c8] +0x4c4336: xor edx, edx +0x4c4338: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c433d: lea edx, [ebp - 0x1c8] +0x4c4343: mov eax, dword ptr [esi] +0x4c4345: mov ecx, dword ptr [eax] +0x4c4347: call dword ptr [ecx + 0xc4] +0x4c434d: jmp 0x4c44dc +0x4c4352: lea eax, [ebp - 0x1e0] +0x4c4358: lea edx, [esi + 0x204] +0x4c435e: call 0x401218 +0x4c4363: mov eax, dword ptr [ebp - 0x1e0] +0x4c4369: push eax +0x4c436a: lea eax, [ebp - 0x1e4] +0x4c4370: lea edx, [esi + 0x104] +0x4c4376: call 0x401218 +0x4c437b: mov eax, dword ptr [ebp - 0x1e4] +0x4c4381: push eax +0x4c4382: movsx eax, byte ptr [esi + 0x305] +0x4c4389: push eax +0x4c438a: lea eax, [ebp - 0x1e8] +0x4c4390: lea edx, [esi + 4] +0x4c4393: call 0x401218 +0x4c4398: mov edx, dword ptr [ebp - 0x1e8] +0x4c439e: mov eax, dword ptr [ebp - 0xc] +0x4c43a1: mov eax, dword ptr [eax + 0x2f4] +0x4c43a7: call 0x402d70 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x4c43ac: add esp, -0xc +0x4c43af: fstp xword ptr [esp] +0x4c43b2: wait +0x4c43b3: lea eax, [ebp - 0x1dc] +0x4c43b9: push eax +0x4c43ba: call 0x437854 ; DP_COMMON!DIS_FMT1 +0x4c43bf: mov edx, dword ptr [ebp - 0x1dc] +0x4c43c5: lea eax, [ebp - 0x1d8] +0x4c43cb: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c43d0: lea edx, [ebp - 0x1d8] +0x4c43d6: mov eax, dword ptr [esi] +0x4c43d8: mov ecx, dword ptr [eax] +0x4c43da: call dword ptr [ecx + 0xc4] +0x4c43e0: jmp 0x4c44dc +0x4c43e5: cmp edi, 2 +0x4c43e8: jne 0x4c44bf +0x4c43ee: mov al, byte ptr [ebp - 6] +0x4c43f1: cmp al, 0x54 +0x4c43f3: jne 0x4c4406 +0x4c43f5: mov edx, dword ptr [0x4ebf3c] +0x4c43fb: mov edx, dword ptr [edx] +0x4c43fd: cmp byte ptr [edx + 0x1759], 0 +0x4c4404: jne 0x4c442f +0x4c4406: sub al, 0x43 +0x4c4408: je 0x4c442f +0x4c440a: sub al, 2 +0x4c440c: je 0x4c442f +0x4c440e: cmp dword ptr [0x57a4e0], 2 +0x4c4415: jne 0x4c44bf +0x4c441b: cmp byte ptr [ebp - 6], 0x54 +0x4c441f: jne 0x4c44bf +0x4c4425: cmp byte ptr [ebp - 5], 0x31 +0x4c4429: jne 0x4c44bf +0x4c442f: lea eax, [ebp - 0x200] +0x4c4435: lea edx, [esi + 0x204] +0x4c443b: call 0x401218 +0x4c4440: mov eax, dword ptr [ebp - 0x200] +0x4c4446: push eax +0x4c4447: lea eax, [ebp - 0x204] +0x4c444d: lea edx, [esi + 0x104] +0x4c4453: call 0x401218 +0x4c4458: mov eax, dword ptr [ebp - 0x204] +0x4c445e: push eax +0x4c445f: movsx eax, byte ptr [esi + 0x305] +0x4c4466: push eax +0x4c4467: lea eax, [ebp - 0x208] +0x4c446d: lea edx, [esi + 4] +0x4c4470: call 0x401218 +0x4c4475: mov edx, dword ptr [ebp - 0x208] +0x4c447b: mov eax, dword ptr [ebp - 0xc] +0x4c447e: mov eax, dword ptr [eax + 0x2f4] +0x4c4484: call 0x402d70 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x4c4489: add esp, -0xc +0x4c448c: fstp xword ptr [esp] +0x4c448f: wait +0x4c4490: lea eax, [ebp - 0x1fc] +0x4c4496: push eax +0x4c4497: call 0x437854 ; DP_COMMON!DIS_FMT1 +0x4c449c: mov edx, dword ptr [ebp - 0x1fc] +0x4c44a2: lea eax, [ebp - 0x1f8] +0x4c44a8: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c44ad: lea edx, [ebp - 0x1f8] +0x4c44b3: mov eax, dword ptr [esi] +0x4c44b5: mov ecx, dword ptr [eax] +0x4c44b7: call dword ptr [ecx + 0xc4] +0x4c44bd: jmp 0x4c44dc +0x4c44bf: lea eax, [ebp - 0x218] +0x4c44c5: xor edx, edx +0x4c44c7: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c44cc: lea edx, [ebp - 0x218] +0x4c44d2: mov eax, dword ptr [esi] +0x4c44d4: mov ecx, dword ptr [eax] +0x4c44d6: call dword ptr [ecx + 0xc4] +0x4c44dc: inc edi +0x4c44dd: add ebx, 0x308 +0x4c44e3: cmp edi, 3 +0x4c44e6: jne 0x4c42d5 +0x4c44ec: add dword ptr [ebp - 0x28], 0x610 +0x4c44f3: dec dword ptr [ebp - 0x10] +0x4c44f6: jne 0x4c42cb +0x4c44fc: add dword ptr [ebp - 0x24], 0x1840 +0x4c4503: add dword ptr [ebp - 0x20], 0x308 +0x4c450a: dec dword ptr [ebp - 0x1c] +0x4c450d: jne 0x4c41ef +0x4c4513: mov al, byte ptr [ebp - 6] +0x4c4516: add al, 0xc0 +0x4c4518: cmp al, 0x1f +0x4c451a: ja 0x4c4526 +0x4c451c: and eax, 0x7f +0x4c451f: bt dword ptr [0x4c49c4], eax +0x4c4526: jae 0x4c45b7 +0x4c452c: push 0x4c49d0 +0x4c4531: push 0 +0x4c4533: lea eax, [ebp - 0x230] +0x4c4539: push eax +0x4c453a: lea ecx, [ebp - 0x234] +0x4c4540: mov eax, dword ptr [ebp - 0xc] +0x4c4543: mov eax, dword ptr [eax + 0x2f4] +0x4c4549: mov edx, 0x4c49dc ; str='UNIT1' +0x4c454e: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c4553: mov eax, dword ptr [ebp - 0x234] +0x4c4559: push eax +0x4c455a: lea eax, [ebp - 0x238] +0x4c4560: lea edx, [ebp - 7] +0x4c4563: call 0x401218 +0x4c4568: mov eax, dword ptr [ebp - 0x238] +0x4c456e: mov ecx, 0x4c49ec ; str='%' +0x4c4573: pop edx +0x4c4574: call 0x44adf0 +0x4c4579: mov eax, dword ptr [ebp - 0x230] +0x4c457f: lea edx, [ebp - 0x22c] +0x4c4585: call 0x401704 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +0x4c458a: mov edx, dword ptr [ebp - 0x22c] +0x4c4590: lea eax, [ebp - 0x228] +0x4c4596: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c459b: lea edx, [ebp - 0x228] +0x4c45a1: mov eax, dword ptr [ebp - 0xc] +0x4c45a4: mov eax, dword ptr [eax + 0x32c] +0x4c45aa: mov ecx, dword ptr [eax] +0x4c45ac: call dword ptr [ecx + 0xc4] +0x4c45b2: jmp 0x4c4660 +0x4c45b7: lea eax, [ebp - 0x240] +0x4c45bd: lea edx, [ebp - 7] +0x4c45c0: call 0x401218 +0x4c45c5: mov eax, dword ptr [ebp - 0x240] +0x4c45cb: lea edx, [ebp - 0x23c] +0x4c45d1: call 0x401704 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +0x4c45d6: mov eax, dword ptr [ebp - 0x23c] +0x4c45dc: mov edx, 0x4c49f8 ; str='QTY' +0x4c45e1: call 0x401250 ; rtl60!@System@@LStrCmp$qqrv +0x4c45e6: jne 0x4c463c +0x4c45e8: lea ecx, [ebp - 0x258] +0x4c45ee: mov eax, dword ptr [ebp - 0xc] +0x4c45f1: mov eax, dword ptr [eax + 0x2f4] +0x4c45f7: mov edx, 0x4c49dc ; str='UNIT1' +0x4c45fc: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c4601: mov eax, dword ptr [ebp - 0x258] +0x4c4607: lea edx, [ebp - 0x254] +0x4c460d: call 0x401704 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +0x4c4612: mov edx, dword ptr [ebp - 0x254] +0x4c4618: lea eax, [ebp - 0x250] +0x4c461e: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c4623: lea edx, [ebp - 0x250] +0x4c4629: mov eax, dword ptr [ebp - 0xc] +0x4c462c: mov eax, dword ptr [eax + 0x32c] +0x4c4632: mov ecx, dword ptr [eax] +0x4c4634: call dword ptr [ecx + 0xc4] +0x4c463a: jmp 0x4c4660 +0x4c463c: lea eax, [ebp - 0x268] +0x4c4642: xor edx, edx +0x4c4644: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c4649: lea edx, [ebp - 0x268] +0x4c464f: mov eax, dword ptr [ebp - 0xc] +0x4c4652: mov eax, dword ptr [eax + 0x32c] +0x4c4658: mov ecx, dword ptr [eax] +0x4c465a: call dword ptr [ecx + 0xc4] +0x4c4660: lea eax, [ebp - 0x26c] +0x4c4666: mov edx, dword ptr [ebp - 0xc] +0x4c4669: mov ebx, dword ptr [edx + 0x310] +0x4c466f: lea edx, [ebx + 0x1e0] +0x4c4675: call 0x401320 ; rtl60!@System@@VarToLStr$qqrr17System@AnsiStringrx14System@Variant +0x4c467a: mov eax, dword ptr [ebp - 0x26c] +0x4c4680: mov ecx, dword ptr [ebx + 0x48] +0x4c4683: mov edx, dword ptr [0x4eb8e4] +0x4c4689: call 0x4796ec +0x4c468e: mov edx, eax +0x4c4690: mov eax, ebx +0x4c4692: call 0x402bb8 ; dclhrp60!@Hrctrlsc@THRCustomLabel@SetFontWidth$qqri +0x4c4697: lea eax, [ebp - 0x270] +0x4c469d: mov edx, dword ptr [ebp - 0xc] +0x4c46a0: mov ebx, dword ptr [edx + 0x32c] +0x4c46a6: lea edx, [ebx + 0x1e0] +0x4c46ac: call 0x401320 ; rtl60!@System@@VarToLStr$qqrr17System@AnsiStringrx14System@Variant +0x4c46b1: mov eax, dword ptr [ebp - 0x270] +0x4c46b7: mov ecx, dword ptr [ebx + 0x48] +0x4c46ba: mov edx, dword ptr [0x4eb8e4] +0x4c46c0: call 0x4796ec +0x4c46c5: mov edx, eax +0x4c46c7: mov eax, ebx +0x4c46c9: call 0x402bb8 ; dclhrp60!@Hrctrlsc@THRCustomLabel@SetFontWidth$qqri +0x4c46ce: lea ecx, [ebp - 0x278] +0x4c46d4: mov eax, dword ptr [ebp - 0xc] +0x4c46d7: mov eax, dword ptr [eax + 0x2f4] +0x4c46dd: mov edx, 0x4c4a04 ; str='UNIT2' +0x4c46e2: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c46e7: mov eax, dword ptr [ebp - 0x278] +0x4c46ed: lea edx, [ebp - 0x274] +0x4c46f3: call 0x401704 ; rtl60!@Sysutils@Trim$qqrx17System@AnsiString +0x4c46f8: mov eax, dword ptr [ebp - 0x274] +0x4c46fe: mov edx, dword ptr [ebp - 0xc] +0x4c4701: mov edx, dword ptr [edx + 0x318] +0x4c4707: mov ecx, dword ptr [edx + 0x48] +0x4c470a: mov edx, dword ptr [0x4eb8e4] +0x4c4710: call 0x4796ec +0x4c4715: mov edx, eax +0x4c4717: mov eax, dword ptr [ebp - 0xc] +0x4c471a: mov eax, dword ptr [eax + 0x318] +0x4c4720: call 0x402bb8 ; dclhrp60!@Hrctrlsc@THRCustomLabel@SetFontWidth$qqri +0x4c4725: mov eax, dword ptr [ebp - 0xc] +0x4c4728: mov eax, dword ptr [eax + 0x2f4] +0x4c472e: push eax +0x4c472f: lea eax, [ebp - 0x28c] +0x4c4735: push eax +0x4c4736: lea ecx, [ebp - 0x290] +0x4c473c: mov eax, dword ptr [ebp - 0xc] +0x4c473f: mov eax, dword ptr [eax + 0x2f4] +0x4c4745: mov edx, 0x4c4a14 ; str='SORTCODE' +0x4c474a: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c474f: mov eax, dword ptr [ebp - 0x290] +0x4c4755: push eax +0x4c4756: lea ecx, [ebp - 0x294] +0x4c475c: mov eax, dword ptr [ebp - 0xc] +0x4c475f: mov eax, dword ptr [eax + 0x2f4] +0x4c4765: mov edx, 0x4c4a28 ; str='CODEA' +0x4c476a: call 0x402d90 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x4c476f: mov eax, dword ptr [ebp - 0x294] +0x4c4775: push eax +0x4c4776: lea eax, [ebp - 0x298] +0x4c477c: lea edx, [ebp - 7] +0x4c477f: call 0x401218 +0x4c4784: mov eax, dword ptr [ebp - 0x298] +0x4c478a: pop edx +0x4c478b: pop ecx +0x4c478c: call 0x4764c8 +0x4c4791: mov edx, dword ptr [ebp - 0x28c] +0x4c4797: lea eax, [ebp - 0x288] +0x4c479d: call 0x401360 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4c47a2: lea edx, [ebp - 0x288] +0x4c47a8: mov eax, dword ptr [ebp - 0xc] +0x4c47ab: mov eax, dword ptr [eax + 0x330] +0x4c47b1: mov ecx, dword ptr [eax] +0x4c47b3: call dword ptr [ecx + 0xc4] +0x4c47b9: lea eax, [ebp - 0x29c] +0x4c47bf: mov edx, dword ptr [ebp - 0xc] +0x4c47c2: mov ebx, dword ptr [edx + 0x330] +0x4c47c8: lea edx, [ebx + 0x1e0] +0x4c47ce: call 0x401320 ; rtl60!@System@@VarToLStr$qqrr17System@AnsiStringrx14System@Variant +0x4c47d3: mov eax, dword ptr [ebp - 0x29c] +0x4c47d9: mov ecx, dword ptr [ebx + 0x48] +0x4c47dc: mov edx, dword ptr [0x4eb8e4] +0x4c47e2: call 0x4796ec +0x4c47e7: mov edx, eax +0x4c47e9: mov eax, ebx +0x4c47eb: call 0x402bb8 ; dclhrp60!@Hrctrlsc@THRCustomLabel@SetFontWidth$qqri +0x4c47f0: xor eax, eax +0x4c47f2: pop edx +0x4c47f3: pop ecx +0x4c47f4: pop ecx +0x4c47f5: mov dword ptr fs:[eax], edx +0x4c47f8: push 0x4c491c +0x4c47fd: lea eax, [ebp - 0x29c] +0x4c4803: mov edx, 5 +0x4c4808: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c480d: lea eax, [ebp - 0x288] +0x4c4813: call 0x4013c8 ; rtl60!@System@@VarClr$qqrr14System@Variant +0x4c4818: lea eax, [ebp - 0x278] +0x4c481e: mov edx, 4 +0x4c4823: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c4828: lea eax, [ebp - 0x268] +0x4c482e: call 0x4013c8 ; rtl60!@System@@VarClr$qqrr14System@Variant +0x4c4833: lea eax, [ebp - 0x258] +0x4c4839: mov edx, 2 +0x4c483e: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c4843: lea eax, [ebp - 0x250] +0x4c4849: call 0x4013c8 ; rtl60!@System@@VarClr$qqrr14System@Variant +0x4c484e: lea eax, [ebp - 0x240] +0x4c4854: mov edx, 6 +0x4c4859: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c485e: lea eax, [ebp - 0x228] +0x4c4864: mov edx, dword ptr [0x5edc00] +0x4c486a: mov ecx, 2 +0x4c486f: call 0x4012b8 ; rtl60!@System@@FinalizeArray$qqrpvt1ui +0x4c4874: lea eax, [ebp - 0x208] +0x4c487a: mov edx, 4 +0x4c487f: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c4884: lea eax, [ebp - 0x1f8] +0x4c488a: call 0x4013c8 ; rtl60!@System@@VarClr$qqrr14System@Variant +0x4c488f: lea eax, [ebp - 0x1e8] +0x4c4895: mov edx, 4 +0x4c489a: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c489f: lea eax, [ebp - 0x1d8] +0x4c48a5: mov edx, dword ptr [0x5edc00] +0x4c48ab: mov ecx, 3 +0x4c48b0: call 0x4012b8 ; rtl60!@System@@FinalizeArray$qqrpvt1ui +0x4c48b5: lea eax, [ebp - 0x1a8] +0x4c48bb: mov edx, 3 +0x4c48c0: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c48c5: lea eax, [ebp - 0x19c] +0x4c48cb: call 0x4013c8 ; rtl60!@System@@VarClr$qqrr14System@Variant +0x4c48d0: lea eax, [ebp - 0x18c] +0x4c48d6: mov edx, 2 +0x4c48db: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c48e0: lea eax, [ebp - 0x184] +0x4c48e6: call 0x4013c8 ; rtl60!@System@@VarClr$qqrr14System@Variant +0x4c48eb: lea eax, [ebp - 0x174] +0x4c48f1: call 0x4011e0 ; rtl60!@System@@LStrClr$qqrpv +0x4c48f6: lea eax, [ebp - 0x170] +0x4c48fc: call 0x4013c8 ; rtl60!@System@@VarClr$qqrr14System@Variant +0x4c4901: lea eax, [ebp - 0x160] +0x4c4907: mov edx, 0xe +0x4c490c: call 0x4011e8 ; rtl60!@System@@LStrArrayClr$qqrpvi +0x4c4911: ret diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_report_filter_mode_0x4c245d.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_report_filter_mode_0x4c245d.asm.txt new file mode 100644 index 000000000..aaba3d4e6 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_P_Nae_report_filter_mode_0x4c245d.asm.txt @@ -0,0 +1,37 @@ +0x4c245d: call 0x402df0 ; Apollo5D6!@Apodset@TApolloTable@SetTableName$qqr17System@AnsiString +0x4c2462: cmp dword ptr [0x57a4e0], 1 +0x4c2469: jne 0x4c24a1 +0x4c246b: mov eax, dword ptr [edi] +0x4c246d: cmp byte ptr [eax + 0x1768], 0 +0x4c2474: je 0x4c24a1 +0x4c2476: mov eax, dword ptr [ebp - 8] +0x4c2479: mov eax, dword ptr [eax + 0x2f4] +0x4c247f: mov edx, 0x4c2798 ; str='!(SUBSTR(BDCODE1,1,1)$"MLSWBDXAP" .and. QTY1=0)' +0x4c2484: mov ecx, dword ptr [eax] +0x4c2486: call dword ptr [ecx + 0x198] +0x4c248c: mov eax, dword ptr [ebp - 8] +0x4c248f: mov eax, dword ptr [eax + 0x2f4] +0x4c2495: mov dl, 1 +0x4c2497: mov ecx, dword ptr [eax] +0x4c2499: call dword ptr [ecx + 0x190] +0x4c249f: jmp 0x4c24d3 +0x4c24a1: cmp dword ptr [0x57a4e0], 2 +0x4c24a8: jne 0x4c24d3 +0x4c24aa: mov eax, dword ptr [ebp - 8] +0x4c24ad: mov eax, dword ptr [eax + 0x2f4] +0x4c24b3: mov edx, 0x4c27d0 ; str='SUBSTR(BDCODE1,1,1)$"TEC" .or. RS=1' +0x4c24b8: mov ecx, dword ptr [eax] +0x4c24ba: call dword ptr [ecx + 0x198] +0x4c24c0: mov eax, dword ptr [ebp - 8] +0x4c24c3: mov eax, dword ptr [eax + 0x2f4] +0x4c24c9: mov dl, 1 +0x4c24cb: mov ecx, dword ptr [eax] +0x4c24cd: call dword ptr [ecx + 0x190] +0x4c24d3: lea eax, [ebp - 0x3e4] +0x4c24d9: mov edx, dword ptr [edi] +0x4c24db: add edx, 0x628 +0x4c24e1: call 0x401218 +0x4c24e6: mov edx, dword ptr [ebp - 0x3e4] +0x4c24ec: mov eax, dword ptr [ebp - 8] +0x4c24ef: mov eax, dword ptr [eax + 0x398] +0x4c24f5: call 0x402bb0 ; dclhrp60!@Hrctrlsc@THRCustomLabel@SetCaption$qqr17System@AnsiString diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0623_0624_0x4513e7.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0623_0624_0x4513e7.asm.txt new file mode 100644 index 000000000..adf958ac3 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0623_0624_0x4513e7.asm.txt @@ -0,0 +1,60 @@ +0x4513e7: push ebp +0x4513e8: mov eax, dword ptr [0x4d38ec] +0x4513ed: push eax +0x4513ee: lea eax, [ebp - 0x674] +0x4513f4: mov edx, 0x452d20 ; str='Prn_Nae' +0x4513f9: call 0x401378 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4513fe: push dword ptr [ebp - 0x668] +0x451404: push dword ptr [ebp - 0x66c] +0x45140a: push dword ptr [ebp - 0x670] +0x451410: push dword ptr [ebp - 0x674] +0x451416: lea eax, [ebp - 0x684] +0x45141c: mov edx, 0x452d30 ; str='Prn_NaeW' +0x451421: call 0x401378 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x451426: push dword ptr [ebp - 0x678] +0x45142c: push dword ptr [ebp - 0x67c] +0x451432: push dword ptr [ebp - 0x680] +0x451438: push dword ptr [ebp - 0x684] +0x45143e: push ebx +0x45143f: lea eax, [ebp - 0x664] +0x451445: push eax +0x451446: call 0x4047a4 ; DP_COMMON!IIF +0x45144b: lea edx, [ebp - 0x664] +0x451451: lea eax, [ebp - 0x654] +0x451457: call 0x401340 ; rtl60!@System@@VarToLStr$qqrr17System@AnsiStringrx14System@Variant +0x45145c: mov edx, dword ptr [ebp - 0x654] +0x451462: mov ecx, 0x452d44 ; str='Prn_Nae_EXL' +0x451467: mov eax, 0x452c78 ; str='ST_P_Nae.CPM' +0x45146c: call 0x44fb68 +0x451471: pop ecx +0x451472: jmp 0x451e27 +0x451477: push ebp +0x451478: mov eax, dword ptr [0x4d38ec] +0x45147d: push eax +0x45147e: lea eax, [ebp - 0x6a8] +0x451484: mov edx, 0x452d58 ; str='Prn_Nae_P' +0x451489: call 0x401378 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x45148e: push dword ptr [ebp - 0x69c] +0x451494: push dword ptr [ebp - 0x6a0] +0x45149a: push dword ptr [ebp - 0x6a4] +0x4514a0: push dword ptr [ebp - 0x6a8] +0x4514a6: lea eax, [ebp - 0x6b8] +0x4514ac: mov edx, 0x452d6c ; str='Prn_NaeW_P' +0x4514b1: call 0x401378 ; rtl60!@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString +0x4514b6: push dword ptr [ebp - 0x6ac] +0x4514bc: push dword ptr [ebp - 0x6b0] +0x4514c2: push dword ptr [ebp - 0x6b4] +0x4514c8: push dword ptr [ebp - 0x6b8] +0x4514ce: push ebx +0x4514cf: lea eax, [ebp - 0x698] +0x4514d5: push eax +0x4514d6: call 0x4047a4 ; DP_COMMON!IIF +0x4514db: lea edx, [ebp - 0x698] +0x4514e1: lea eax, [ebp - 0x688] +0x4514e7: call 0x401340 ; rtl60!@System@@VarToLStr$qqrr17System@AnsiStringrx14System@Variant +0x4514ec: mov edx, dword ptr [ebp - 0x688] +0x4514f2: mov ecx, 0x452d80 ; str='Prn_Nae_P_EXL' +0x4514f7: mov eax, 0x452c78 ; str='ST_P_Nae.CPM' +0x4514fc: call 0x44fb68 +0x451501: pop ecx +0x451502: jmp 0x451e27 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0673_0674_0x4519a8.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0673_0674_0x4519a8.asm.txt new file mode 100644 index 000000000..dcf59ceec --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_case_0673_0674_0x4519a8.asm.txt @@ -0,0 +1,18 @@ +0x4519a8: push ebp +0x4519a9: mov eax, dword ptr [0x4d38ec] +0x4519ae: push eax +0x4519af: mov ecx, 0x45327c ; str='Prn_Nae_Cont1' +0x4519b4: mov edx, 0x45327c ; str='Prn_Nae_Cont1' +0x4519b9: mov eax, 0x452c78 ; str='ST_P_Nae.CPM' +0x4519be: call 0x44fb68 +0x4519c3: pop ecx +0x4519c4: jmp 0x451e27 +0x4519c9: push ebp +0x4519ca: mov eax, dword ptr [0x4d38ec] +0x4519cf: push eax +0x4519d0: mov ecx, 0x453294 ; str='Prn_Nae_Cont2' +0x4519d5: mov edx, 0x453294 ; str='Prn_Nae_Cont2' +0x4519da: mov eax, 0x452c78 ; str='ST_P_Nae.CPM' +0x4519df: call 0x44fb68 +0x4519e4: pop ecx +0x4519e5: jmp 0x451e27 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_report_dispatch_0x44fdf5.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_report_dispatch_0x44fdf5.asm.txt new file mode 100644 index 000000000..1f00f73ed --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_report_dispatch_0x44fdf5.asm.txt @@ -0,0 +1,104 @@ +0x44fdf5: mov eax, edi +0x44fdf7: cmp eax, 0x5087 +0x44fdfc: jg 0x44ffab +0x44fe02: je 0x4513c6 +0x44fe08: cmp eax, 0x4eee +0x44fe0d: jg 0x44fefa +0x44fe13: je 0x450876 +0x44fe19: cmp eax, 0x283f +0x44fe1e: jg 0x44fe9b +0x44fe20: je 0x4508d9 +0x44fe26: cmp eax, 0x27da +0x44fe2b: jg 0x44fe72 +0x44fe2d: je 0x4505be +0x44fe33: cmp eax, 0x2779 +0x44fe38: jg 0x44fe59 +0x44fe3a: je 0x450429 +0x44fe40: add eax, 0xffffd88b +0x44fe45: sub eax, 3 +0x44fe48: jb 0x4500e4 +0x44fe4e: je 0x450172 +0x44fe54: jmp 0x451db6 +0x44fe59: sub eax, 0x277a +0x44fe5e: je 0x4502c0 +0x44fe64: sub eax, 0x5f +0x44fe67: je 0x4504fd +0x44fe6d: jmp 0x451db6 +0x44fe72: sub eax, 0x27db +0x44fe77: je 0x450727 +0x44fe7d: sub eax, 3 +0x44fe80: je 0x450876 +0x44fe86: sub eax, 0x5f +0x44fe89: je 0x450897 +0x44fe8f: dec eax +0x44fe90: je 0x4508b8 +0x44fe96: jmp 0x451db6 +0x44fe9b: cmp eax, 0x4e89 +0x44fea0: jg 0x44fed3 +0x44fea2: je 0x450429 +0x44fea8: sub eax, 0x28a1 +0x44fead: je 0x4508fa +0x44feb3: dec eax +0x44feb4: je 0x450b50 +0x44feba: add eax, 0xffffda1d +0x44febf: sub eax, 3 +0x44fec2: jb 0x4500e4 +0x44fec8: je 0x450172 +0x44fece: jmp 0x451db6 +0x44fed3: sub eax, 0x4e8a +0x44fed8: je 0x4502c0 +0x44fede: sub eax, 0x5f +0x44fee1: je 0x4504fd +0x44fee7: dec eax +0x44fee8: je 0x4505be +0x44feee: dec eax +0x44feef: je 0x450727 +0x44fef5: jmp 0x451db6 +0x44fefa: cmp eax, 0x507a +0x44feff: jg 0x44ff66 +0x44ff01: je 0x451102 +0x44ff07: cmp eax, 0x4fb2 +0x44ff0c: jg 0x44ff3b +0x44ff0e: je 0x450b50 +0x44ff14: sub eax, 0x4f4d +0x44ff19: je 0x450897 +0x44ff1f: dec eax +0x44ff20: je 0x4508b8 +0x44ff26: dec eax +0x44ff27: je 0x4508d9 +0x44ff2d: sub eax, 0x62 +0x44ff30: je 0x4508fa +0x44ff36: jmp 0x451db6 +0x44ff3b: add eax, 0xffffafeb +0x44ff40: sub eax, 4 +0x44ff43: jb 0x450c22 +0x44ff49: sub eax, 3 +0x44ff4c: jb 0x450da4 +0x44ff52: je 0x450ce3 +0x44ff58: sub eax, 0x5d +0x44ff5b: je 0x450e65 +0x44ff61: jmp 0x451db6 +0x44ff66: add eax, 0xffffaf85 +0x44ff6b: cmp eax, 0xb +0x44ff6e: ja 0x451db6 +0x44ff74: jmp dword ptr [eax*4 + 0x44ff7b] +0x44ff7b: and edx, dword ptr [ecx] +0x44ff7d: inc ebp +0x44ff7e: add byte ptr [ebx + 0x43004511], dh +0x44ff84: adc al, byte ptr [ebp] +0x44ff87: adc al, byte ptr fs:[ebp] +0x44ff8b: test dword ptr [edx], edx +0x44ff8d: inc ebp +0x44ff8e: add byte ptr [esi - 0x3bffbaf2], al +0x44ff94: cmovne eax, dword ptr [eax] +0x44ff97: mov dh, 0x1d +0x44ff99: inc ebp +0x44ff9a: add byte ptr [esi - 0x49ffbae3], dh +0x44ffa0: sbb eax, 0x12a60045 +0x44ffa5: inc ebp +0x44ffa6: add byte ptr [esi], dh +0x44ffa8: adc eax, dword ptr [ebp] +0x44ffab: add eax, 0xffffaf71 +0x44ffb0: cmp eax, 0x48 +0x44ffb3: ja 0x451db6 +0x44ffb9: jmp dword ptr [eax*4 + 0x44ffc0] diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_tag_table_20623_20695.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_tag_table_20623_20695.txt new file mode 100644 index 000000000..afca54148 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_Prt_tag_table_20623_20695.txt @@ -0,0 +1,73 @@ +20623 0x4513e7 +20624 0x451477 +20625 0x451db6 +20626 0x451db6 +20627 0x451db6 +20628 0x451db6 +20629 0x451db6 +20630 0x451db6 +20631 0x451db6 +20632 0x451507 +20633 0x451528 +20634 0x451549 +20635 0x45156a +20636 0x45158b +20637 0x45158b +20638 0x4515ac +20639 0x451db6 +20640 0x451db6 +20641 0x451db6 +20642 0x451db6 +20643 0x4515cd +20644 0x45165d +20645 0x4516ed +20646 0x45170e +20647 0x45170e +20648 0x45172f +20649 0x451798 +20650 0x451db6 +20651 0x4517b9 +20652 0x4517da +20653 0x4517fb +20654 0x45181c +20655 0x45183d +20656 0x45185e +20657 0x45187f +20658 0x451db6 +20659 0x451db6 +20660 0x451db6 +20661 0x4518a0 +20662 0x4518c1 +20663 0x4518e2 +20664 0x451903 +20665 0x451924 +20666 0x451945 +20667 0x451966 +20668 0x451db6 +20669 0x451db6 +20670 0x451db6 +20671 0x451c53 +20672 0x451987 +20673 0x4519a8 +20674 0x4519c9 +20675 0x4519ea +20676 0x451a0b +20677 0x451a2c +20678 0x451a4d +20679 0x451b50 +20680 0x451db6 +20681 0x451db6 +20682 0x451db6 +20683 0x451db6 +20684 0x451db6 +20685 0x451db6 +20686 0x451db6 +20687 0x451db6 +20688 0x451db6 +20689 0x451db6 +20690 0x451db6 +20691 0x451db6 +20692 0x451db6 +20693 0x451d56 +20694 0x451d77 +20695 0x451d98 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_U_Convert_ITM_TYP_name_table_0x587d9c.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_U_Convert_ITM_TYP_name_table_0x587d9c.txt new file mode 100644 index 000000000..d101b6602 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/ST_U_Convert_ITM_TYP_name_table_0x587d9c.txt @@ -0,0 +1,18 @@ +0 0x421d04 일반공종 +10 0x421d18 안전관리비 +11 0x421d18 안전관리비 +20 0x421d2c 품질관리비 +21 0x421d2c 품질관리비 +30 0x421d40 미확정설계공종(PS) +31 0x421d40 미확정설계공종(PS) +40 0x421d5c 제요율적용제외공종 +41 0x421d78 제비율적용제외공종 +50 0x421d94 작업설 등 +51 0x421d94 작업설 등 +60 0x421da8 매입세 +61 0x421da8 매입세 +70 0x421db8 관급자재공종 +71 0x421dd0 관급자재대(도급자) +72 0x421dec 관급자재대(관급자) +111 0x421e08 비과세자재대 +120 0x421e20 조달수수료 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/STmate_TwM_Mk_Cont_Act_Find_NagExecute_0x556d68.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/STmate_TwM_Mk_Cont_Act_Find_NagExecute_0x556d68.asm.txt new file mode 100644 index 000000000..d68a369a1 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/STmate_TwM_Mk_Cont_Act_Find_NagExecute_0x556d68.asm.txt @@ -0,0 +1,774 @@ +0x556d68: push ebp +0x556d69: mov ebp, esp +0x556d6b: mov ecx, 0x2f +0x556d70: push 0 +0x556d72: push 0 +0x556d74: dec ecx +0x556d75: jne 0x556d70 +0x556d77: push ecx +0x556d78: push ebx +0x556d79: push esi +0x556d7a: push edi +0x556d7b: mov dword ptr [ebp - 4], eax +0x556d7e: xor eax, eax +0x556d80: push ebp +0x556d81: push 0x5578e3 +0x556d86: push dword ptr fs:[eax] +0x556d89: mov dword ptr fs:[eax], esp +0x556d8c: xor eax, eax +0x556d8e: push ebp +0x556d8f: push 0x557872 +0x556d94: push dword ptr fs:[eax] +0x556d97: mov dword ptr fs:[eax], esp +0x556d9a: mov eax, dword ptr [0x5e5fb0] +0x556d9f: mov eax, dword ptr [eax] +0x556da1: mov eax, dword ptr [eax + 0x2f4] +0x556da7: mov edx, dword ptr [0x5e6090] +0x556dad: mov edx, dword ptr [edx] +0x556daf: mov dword ptr [edx + 0x20], eax +0x556db2: mov eax, dword ptr [0x5e5d7c] +0x556db7: mov edx, dword ptr [0x5e5f8c] +0x556dbd: mov edx, dword ptr [edx] +0x556dbf: mov edx, dword ptr [edx + 0x38] +0x556dc2: call 0x401260 ; rtl60!@System@@LStrAsg$qqrpvpxv +0x556dc7: mov eax, dword ptr [0x5e5f0c] +0x556dcc: mov edx, dword ptr [0x5fa120] +0x556dd2: call 0x401260 ; rtl60!@System@@LStrAsg$qqrpvpxv +0x556dd7: mov dword ptr [ebp - 8], 1 +0x556dde: mov eax, dword ptr [0x5e5f40] +0x556de3: mov edx, dword ptr [ebp - 8] +0x556de6: mov ecx, dword ptr [eax + edx*4] +0x556de9: lea eax, [ebp - 0xbc] +0x556def: mov edx, 0x5578fc ; str='TCOST' +0x556df4: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +0x556df9: mov edx, dword ptr [ebp - 0xbc] +0x556dff: mov eax, dword ptr [0x5e6090] +0x556e04: mov eax, dword ptr [eax] +0x556e06: mov eax, dword ptr [eax + 0x20] +0x556e09: call 0x404770 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x556e0e: fcomp dword ptr [0x557904] ; f32=0.0 +0x556e14: fnstsw ax +0x556e16: sahf +0x556e17: ja 0x556e5c +0x556e19: push 0x557910 +0x556e1e: push 0x7f01 +0x556e23: push 1 +0x556e25: mov eax, 0x557920 ; str='확 인(&O)' +0x556e2a: mov dword ptr [ebp - 0xc0], eax +0x556e30: lea eax, [ebp - 0xc0] +0x556e36: push eax +0x556e37: push 0 +0x556e39: mov eax, dword ptr [0x5fd480] +0x556e3e: mov eax, dword ptr [eax] +0x556e40: mov eax, dword ptr [eax + 0x30] +0x556e43: mov ecx, 0x557934 ; str='예상적용율 산출' +0x556e48: mov edx, 0x55794c ; str='직접공사비(내역서) 금액이 0 인 내역은 예상적용율을 산출할 수 없습니다.' +0x556e4d: call 0x44b680 +0x556e52: call 0x401220 ; rtl60!@System@@TryFinallyExit$qqrv +0x556e57: jmp 0x557879 +0x556e5c: mov eax, dword ptr [ebp - 4] +0x556e5f: mov eax, dword ptr [eax + 0x2fc] +0x556e65: mov dword ptr [ebp - 0x34], eax +0x556e68: xor eax, eax +0x556e6a: push ebp +0x556e6b: push 0x556fb9 +0x556e70: push dword ptr fs:[eax] +0x556e73: mov dword ptr fs:[eax], esp +0x556e76: xor eax, eax +0x556e78: mov dword ptr [ebp - 0x30], eax +0x556e7b: mov dword ptr [ebp - 0x2c], eax +0x556e7e: mov edx, 0x55799c ; str='SORTCODE' +0x556e83: mov eax, dword ptr [ebp - 0x34] +0x556e86: call 0x404870 ; Apollo5D6!@Apodset@TApolloTable@SetIndexName$qqr17System@AnsiString +0x556e8b: mov eax, dword ptr [ebp - 0x34] +0x556e8e: call 0x403ce0 ; dbrtl60!@Db@TDataSet@Open$qqrv +0x556e93: xor edx, edx +0x556e95: mov eax, dword ptr [ebp - 0x34] +0x556e98: call 0x404818 ; Apollo5D6!@Apodset@TApolloTable@Query$qqrx17System@AnsiString +0x556e9d: mov eax, dword ptr [ebp - 0x34] +0x556ea0: call 0x4047b0 ; Apollo5D6!@Apodset@TApolloTable@GoBottom$qqrv +0x556ea5: jmp 0x556f86 +0x556eaa: lea ecx, [ebp - 0xc4] +0x556eb0: mov edx, 0x5579b0 ; str='BDCODE1' +0x556eb5: mov eax, dword ptr [ebp - 0x34] +0x556eb8: call 0x404790 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x556ebd: mov eax, dword ptr [ebp - 0xc4] +0x556ec3: cmp byte ptr [eax], 0x43 +0x556ec6: jne 0x556f02 +0x556ec8: lea ecx, [ebp - 0xd8] +0x556ece: mov eax, dword ptr [ebp - 4] +0x556ed1: mov eax, dword ptr [eax + 0x2fc] +0x556ed7: mov edx, 0x5579c0 ; str='ENDCODE' +0x556edc: call 0x403d00 ; dbrtl60!@Db@TDataSet@GetFieldValue$qqrx17System@AnsiString +0x556ee1: lea edx, [ebp - 0xd8] +0x556ee7: lea eax, [ebp - 0xc8] +0x556eed: call 0x4013b0 ; rtl60!@System@@VarToLStr$qqrr17System@AnsiStringrx14System@Variant +0x556ef2: mov edx, dword ptr [ebp - 0xc8] +0x556ef8: mov eax, dword ptr [ebp - 0x34] +0x556efb: call 0x4047c0 ; Apollo5D6!@Apodset@TApolloTable@Seek$qqr17System@AnsiString +0x556f00: jmp 0x556f7b +0x556f02: push 0x5579d0 +0x556f07: lea ecx, [ebp - 0xe0] +0x556f0d: mov edx, 0x5579b0 ; str='BDCODE1' +0x556f12: mov eax, dword ptr [ebp - 0x34] +0x556f15: call 0x404790 ; Apollo5D6!@Apodset@TApolloTable@GetString$qqr17System@AnsiString +0x556f1a: mov eax, dword ptr [ebp - 0xe0] +0x556f20: mov dl, byte ptr [eax] +0x556f22: lea eax, [ebp - 0xdc] +0x556f28: call 0x401278 ; rtl60!@System@@LStrFromChar$qqrr17System@AnsiStringc +0x556f2d: mov eax, dword ptr [ebp - 0xdc] +0x556f33: push eax +0x556f34: call 0x4228cc ; DP_COMMON!MPOS +0x556f39: test al, al +0x556f3b: je 0x556f7b +0x556f3d: push 0 +0x556f3f: mov eax, dword ptr [0x5e5f40] +0x556f44: mov edx, dword ptr [ebp - 8] +0x556f47: mov ecx, dword ptr [eax + edx*4] +0x556f4a: lea eax, [ebp - 0xe4] +0x556f50: mov edx, 0x5579e4 ; str='QTY' +0x556f55: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +0x556f5a: mov edx, dword ptr [ebp - 0xe4] +0x556f60: mov eax, dword ptr [ebp - 0x34] +0x556f63: call 0x404770 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x556f68: add esp, -0xc +0x556f6b: fstp xword ptr [esp] +0x556f6e: wait +0x556f6f: call 0x42290c ; DP_COMMON!MROUNDUP +0x556f74: fadd qword ptr [ebp - 0x30] +0x556f77: fstp qword ptr [ebp - 0x30] +0x556f7a: wait +0x556f7b: or edx, 0xffffffff +0x556f7e: mov eax, dword ptr [ebp - 0x34] +0x556f81: call 0x4047b8 ; Apollo5D6!@Apodset@TApolloTable@Skip$qqri +0x556f86: mov eax, dword ptr [ebp - 0x34] +0x556f89: mov edx, dword ptr [eax] +0x556f8b: call dword ptr [edx + 0x26c] +0x556f91: test al, al +0x556f93: je 0x556eaa +0x556f99: xor eax, eax +0x556f9b: pop edx +0x556f9c: pop ecx +0x556f9d: pop ecx +0x556f9e: mov dword ptr fs:[eax], edx +0x556fa1: push 0x556fc0 +0x556fa6: mov eax, dword ptr [ebp - 0x34] +0x556fa9: call 0x403ce8 ; dbrtl60!@Db@TDataSet@Close$qqrv +0x556fae: xor edx, edx +0x556fb0: mov eax, dword ptr [ebp - 0x34] +0x556fb3: call 0x404870 ; Apollo5D6!@Apodset@TApolloTable@SetIndexName$qqr17System@AnsiString +0x556fb8: ret +0x556fb9: jmp 0x401200 +0x556fbe: jmp 0x556fa6 +0x556fc0: mov ebx, dword ptr [ebp - 8] +0x556fc3: add ebx, ebx +0x556fc5: lea ebx, [ebx + ebx*2] +0x556fc8: mov eax, dword ptr [0x5e5d84] +0x556fcd: mov eax, dword ptr [eax] +0x556fcf: xor edx, edx +0x556fd1: mov dword ptr [eax + ebx*8 - 0x20], edx +0x556fd5: mov dword ptr [eax + ebx*8 - 0x1c], edx +0x556fd9: mov eax, dword ptr [0x5e5d84] +0x556fde: mov eax, dword ptr [eax] +0x556fe0: xor edx, edx +0x556fe2: mov dword ptr [eax + ebx*8 - 0x28], edx +0x556fe6: mov dword ptr [eax + ebx*8 - 0x24], edx +0x556fea: mov eax, dword ptr [0x5e5d84] +0x556fef: mov eax, dword ptr [eax] +0x556ff1: xor edx, edx +0x556ff3: mov dword ptr [eax + ebx*8 - 0x18], edx +0x556ff7: mov dword ptr [eax + ebx*8 - 0x14], edx +0x556ffb: mov eax, dword ptr [0x5e5d84] +0x557000: mov eax, dword ptr [eax] +0x557002: fld qword ptr [eax + ebx*8 - 0x20] +0x557006: mov eax, dword ptr [0x5e5d84] +0x55700b: mov eax, dword ptr [eax] +0x55700d: fadd qword ptr [eax + ebx*8 - 0x28] +0x557011: mov eax, dword ptr [ebp - 8] +0x557014: add eax, eax +0x557016: lea eax, [eax + eax*2] +0x557019: mov edx, dword ptr [0x5e5d84] +0x55701f: mov edx, dword ptr [edx] +0x557021: fadd qword ptr [edx + eax*8 - 0x18] +0x557025: mov eax, dword ptr [0x5e5d84] +0x55702a: mov eax, dword ptr [eax] +0x55702c: fstp qword ptr [eax + ebx*8 - 0x30] +0x557030: wait +0x557031: push 0 +0x557033: push 0 +0x557035: push 0xbff00000 +0x55703a: push 0 +0x55703c: push 0 +0x55703e: mov ecx, 1 +0x557043: xor edx, edx +0x557045: mov eax, dword ptr [ebp - 8] +0x557048: call 0x45f974 +0x55704d: fstp qword ptr [ebp - 0x60] +0x557050: wait +0x557051: push 0 +0x557053: push 0 +0x557055: push 0 +0x557057: push 0 +0x557059: push 0 +0x55705b: mov ecx, 2 +0x557060: xor edx, edx +0x557062: mov eax, dword ptr [ebp - 8] +0x557065: call 0x45f974 +0x55706a: fstp qword ptr [ebp - 0x10] +0x55706d: wait +0x55706e: mov eax, dword ptr [0x5e5f40] +0x557073: mov edx, dword ptr [ebp - 8] +0x557076: mov ecx, dword ptr [eax + edx*4] +0x557079: lea eax, [ebp - 0xe8] +0x55707f: mov edx, 0x5579f0 ; str='COSTW' +0x557084: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +0x557089: mov edx, dword ptr [ebp - 0xe8] +0x55708f: mov eax, dword ptr [0x5e6090] +0x557094: mov eax, dword ptr [eax] +0x557096: mov eax, dword ptr [eax + 0x20] +0x557099: call 0x404770 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x55709e: fsub qword ptr [ebp - 0x10] +0x5570a1: fstp qword ptr [ebp - 0x50] +0x5570a4: wait +0x5570a5: push 0 +0x5570a7: push -3 +0x5570a9: fld xword ptr [0x5579f8] +0x5570af: fmul qword ptr [ebp - 0x50] +0x5570b2: add esp, -0xc +0x5570b5: fstp xword ptr [esp] +0x5570b8: wait +0x5570b9: call 0x422904 ; DP_COMMON!MROUNDUD +0x5570be: fstp qword ptr [ebp - 0x18] +0x5570c1: wait +0x5570c2: push dword ptr [ebp - 0x4c] +0x5570c5: push dword ptr [ebp - 0x50] +0x5570c8: push 0 +0x5570ca: push -3 +0x5570cc: fld qword ptr [ebp - 0x50] +0x5570cf: fmul dword ptr [0x557a04] ; f32=1.5 +0x5570d5: add esp, -0xc +0x5570d8: fstp xword ptr [esp] +0x5570db: wait +0x5570dc: call 0x422904 ; DP_COMMON!MROUNDUD +0x5570e1: add esp, -8 +0x5570e4: fstp qword ptr [esp] +0x5570e7: wait +0x5570e8: push -3 +0x5570ea: fld qword ptr [ebp - 0x50] +0x5570ed: fmul dword ptr [0x557a08] ; f32=0.5 +0x5570f3: add esp, -0xc +0x5570f6: fstp xword ptr [esp] +0x5570f9: wait +0x5570fa: call 0x42290c ; DP_COMMON!MROUNDUP +0x5570ff: add esp, -8 +0x557102: fstp qword ptr [esp] +0x557105: wait +0x557106: fld qword ptr [ebp - 0x50] +0x557109: add esp, -0xc +0x55710c: fstp xword ptr [esp] +0x55710f: wait +0x557110: lea edx, [ebp - 0xf0] +0x557116: mov eax, 0x557a14 ; str='#,0' +0x55711b: call 0x401fd8 ; rtl60!@Sysutils@FormatFloat$qqrx17System@AnsiStringg +0x557120: mov ecx, dword ptr [ebp - 0xf0] +0x557126: lea eax, [ebp - 0xec] +0x55712c: mov edx, 0x557a20 ; str='도급공사비 : ' +0x557131: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +0x557136: mov edx, dword ptr [ebp - 0xec] +0x55713c: lea ecx, [ebp - 0x18] +0x55713f: mov eax, 0x557a38 ; str='목표 금액을 입력하세요.' +0x557144: call 0x5523c0 +0x557149: test al, al +0x55714b: jne 0x557157 +0x55714d: call 0x401220 ; rtl60!@System@@TryFinallyExit$qqrv +0x557152: jmp 0x557879 +0x557157: push 1 +0x557159: push 5 +0x55715b: fld qword ptr [ebp - 0x18] +0x55715e: fdiv qword ptr [ebp - 0x50] +0x557161: add esp, -0xc +0x557164: fstp xword ptr [esp] +0x557167: wait +0x557168: call 0x422904 ; DP_COMMON!MROUNDUD +0x55716d: fstp qword ptr [ebp - 0x68] +0x557170: wait +0x557171: mov eax, dword ptr [0x5e5f40] +0x557176: mov edx, dword ptr [ebp - 8] +0x557179: mov ecx, dword ptr [eax + edx*4] +0x55717c: lea eax, [ebp - 0xf4] +0x557182: mov edx, 0x557a58 ; str='MCOST' +0x557187: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +0x55718c: mov edx, dword ptr [ebp - 0xf4] +0x557192: mov eax, dword ptr [0x5e6090] +0x557197: mov eax, dword ptr [eax] +0x557199: mov eax, dword ptr [eax + 0x20] +0x55719c: call 0x404770 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x5571a1: fstp qword ptr [ebp - 0xa8] +0x5571a7: wait +0x5571a8: mov eax, dword ptr [0x5e5f40] +0x5571ad: mov edx, dword ptr [ebp - 8] +0x5571b0: mov ecx, dword ptr [eax + edx*4] +0x5571b3: lea eax, [ebp - 0xf8] +0x5571b9: mov edx, 0x557a68 ; str='LCOST' +0x5571be: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +0x5571c3: mov edx, dword ptr [ebp - 0xf8] +0x5571c9: mov eax, dword ptr [0x5e6090] +0x5571ce: mov eax, dword ptr [eax] +0x5571d0: mov eax, dword ptr [eax + 0x20] +0x5571d3: call 0x404770 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x5571d8: fstp qword ptr [ebp - 0xb0] +0x5571de: wait +0x5571df: mov eax, dword ptr [0x5e5f40] +0x5571e4: mov edx, dword ptr [ebp - 8] +0x5571e7: mov ecx, dword ptr [eax + edx*4] +0x5571ea: lea eax, [ebp - 0xfc] +0x5571f0: mov edx, 0x557a78 ; str='SCOST' +0x5571f5: call 0x4012b0 ; rtl60!@System@@LStrCat3$qqrv +0x5571fa: mov edx, dword ptr [ebp - 0xfc] +0x557200: mov eax, dword ptr [0x5e6090] +0x557205: mov eax, dword ptr [eax] +0x557207: mov eax, dword ptr [eax + 0x20] +0x55720a: call 0x404770 ; Apollo5D6!@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString +0x55720f: fstp qword ptr [ebp - 0xa0] +0x557215: wait +0x557216: mov eax, dword ptr [0x5e5d84] +0x55721b: mov eax, dword ptr [eax] +0x55721d: fld qword ptr [eax + ebx*8 - 0x20] +0x557221: mov eax, dword ptr [0x5e5d84] +0x557226: mov eax, dword ptr [eax] +0x557228: fadd qword ptr [eax + ebx*8 - 0x28] +0x55722c: mov eax, dword ptr [0x5e5d84] +0x557231: mov eax, dword ptr [eax] +0x557233: fadd qword ptr [eax + ebx*8 - 0x18] +0x557237: fstp qword ptr [ebp - 0xb8] +0x55723d: wait +0x55723e: mov eax, dword ptr [0x5e5d84] +0x557243: mov eax, dword ptr [eax] +0x557245: mov edx, dword ptr [ebp - 0xa8] +0x55724b: mov dword ptr [eax + ebx*8 - 0x20], edx +0x55724f: mov edx, dword ptr [ebp - 0xa4] +0x557255: mov dword ptr [eax + ebx*8 - 0x1c], edx +0x557259: mov eax, dword ptr [0x5e5d84] +0x55725e: mov eax, dword ptr [eax] +0x557260: mov edx, dword ptr [ebp - 0xb0] +0x557266: mov dword ptr [eax + ebx*8 - 0x28], edx +0x55726a: mov edx, dword ptr [ebp - 0xac] +0x557270: mov dword ptr [eax + ebx*8 - 0x24], edx +0x557274: mov eax, dword ptr [0x5e5d84] +0x557279: mov eax, dword ptr [eax] +0x55727b: mov edx, dword ptr [ebp - 0xa0] +0x557281: mov dword ptr [eax + ebx*8 - 0x18], edx +0x557285: mov edx, dword ptr [ebp - 0x9c] +0x55728b: mov dword ptr [eax + ebx*8 - 0x14], edx +0x55728f: mov eax, dword ptr [0x5e5d84] +0x557294: mov eax, dword ptr [eax] +0x557296: fld qword ptr [eax + ebx*8 - 0x20] +0x55729a: mov eax, dword ptr [0x5e5d84] +0x55729f: mov eax, dword ptr [eax] +0x5572a1: fadd qword ptr [eax + ebx*8 - 0x28] +0x5572a5: mov eax, dword ptr [ebp - 8] +0x5572a8: add eax, eax +0x5572aa: lea eax, [eax + eax*2] +0x5572ad: mov edx, dword ptr [0x5e5d84] +0x5572b3: mov edx, dword ptr [edx] +0x5572b5: fadd qword ptr [edx + eax*8 - 0x18] +0x5572b9: mov eax, dword ptr [0x5e5d84] +0x5572be: mov eax, dword ptr [eax] +0x5572c0: fstp qword ptr [eax + ebx*8 - 0x30] +0x5572c4: wait +0x5572c5: push 0 +0x5572c7: push 0 +0x5572c9: push 0 +0x5572cb: push 0 +0x5572cd: push 0 +0x5572cf: mov ecx, 1 +0x5572d4: xor edx, edx +0x5572d6: mov eax, dword ptr [ebp - 8] +0x5572d9: call 0x45f974 +0x5572de: fsub qword ptr [ebp - 0x60] +0x5572e1: fstp qword ptr [ebp - 0x58] +0x5572e4: wait +0x5572e5: push 5 +0x5572e7: mov eax, dword ptr [0x5e5d84] +0x5572ec: mov eax, dword ptr [eax] +0x5572ee: fld qword ptr [eax + ebx*8 - 0x30] +0x5572f2: fdiv qword ptr [ebp - 0x58] +0x5572f5: add esp, -0xc +0x5572f8: fstp xword ptr [esp] +0x5572fb: wait +0x5572fc: call 0x42290c ; DP_COMMON!MROUNDUP +0x557301: fstp qword ptr [ebp - 0x78] +0x557304: wait +0x557305: mov esi, 0x1388 +0x55730a: mov dword ptr [ebp - 0xc0], esi +0x557310: fild dword ptr [ebp - 0xc0] +0x557316: fdivr qword ptr [ebp - 0x18] +0x557319: fcomp dword ptr [0x557a80] ; f32=5000.0 +0x55731f: fnstsw ax +0x557321: sahf +0x557322: jae 0x557334 +0x557324: fld qword ptr [ebp - 0x18] +0x557327: fdiv dword ptr [0x557a80] ; f32=5000.0 +0x55732d: call 0x401078 ; rtl60!@System@@ROUND$qqrv +0x557332: mov esi, eax +0x557334: push 0 +0x557336: fld qword ptr [ebp - 0x18] +0x557339: fsub qword ptr [ebp - 0x60] +0x55733c: mov dword ptr [ebp - 0xc0], esi +0x557342: fild dword ptr [ebp - 0xc0] +0x557348: fdivr qword ptr [ebp - 0x18] +0x55734b: faddp st(1) +0x55734d: fmul qword ptr [ebp - 0x78] +0x557350: add esp, -0xc +0x557353: fstp xword ptr [esp] +0x557356: wait +0x557357: call 0x42290c ; DP_COMMON!MROUNDUP +0x55735c: fstp qword ptr [ebp - 0x48] +0x55735f: wait +0x557360: push 5 +0x557362: fld qword ptr [ebp - 0x48] +0x557365: mov eax, dword ptr [0x5e5d84] +0x55736a: mov eax, dword ptr [eax] +0x55736c: fdiv qword ptr [eax + ebx*8 - 0x30] +0x557370: add esp, -0xc +0x557373: fstp xword ptr [esp] +0x557376: wait +0x557377: call 0x42290c ; DP_COMMON!MROUNDUP +0x55737c: fstp qword ptr [ebp - 0x70] +0x55737f: wait +0x557380: lea eax, [ebp - 0x11c] +0x557386: xor edx, edx +0x557388: mov cl, 1 +0x55738a: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +0x55738f: push dword ptr [ebp - 0x110] +0x557395: push dword ptr [ebp - 0x114] +0x55739b: push dword ptr [ebp - 0x118] +0x5573a1: push dword ptr [ebp - 0x11c] +0x5573a7: fld qword ptr [ebp - 0x70] +0x5573aa: fmul dword ptr [0x557a84] ; f32=100.0 +0x5573b0: lea eax, [ebp - 0x12c] +0x5573b6: call 0x4013d8 ; rtl60!@System@@VarFromReal$qqrv +0x5573bb: push dword ptr [ebp - 0x120] +0x5573c1: push dword ptr [ebp - 0x124] +0x5573c7: push dword ptr [ebp - 0x128] +0x5573cd: push dword ptr [ebp - 0x12c] +0x5573d3: mov eax, dword ptr [ebp - 4] +0x5573d6: mov eax, dword ptr [eax + 0x374] +0x5573dc: mov edx, dword ptr [eax] +0x5573de: call dword ptr [edx + 0xc4] +0x5573e4: push eax +0x5573e5: lea eax, [ebp - 0x10c] +0x5573eb: push eax +0x5573ec: call 0x4228b4 ; DP_COMMON!IIF +0x5573f1: lea eax, [ebp - 0x10c] +0x5573f7: call 0x4013a0 ; rtl60!@System@@VarToReal$qqrrx14System@Variant +0x5573fc: fstp qword ptr [ebp - 0x20] +0x5573ff: wait +0x557400: fld qword ptr [ebp - 0x18] +0x557403: fadd qword ptr [ebp - 0x30] +0x557406: fstp qword ptr [ebp - 0x28] +0x557409: wait +0x55740a: mov ebx, 1 +0x55740f: cmp ebx, 1 +0x557412: je 0x55744d +0x557414: fld qword ptr [ebp - 0x88] +0x55741a: fcomp qword ptr [ebp - 0x28] +0x55741d: fnstsw ax +0x55741f: sahf +0x557420: jb 0x55744d +0x557422: fld qword ptr [ebp - 0x88] +0x557428: fsub qword ptr [ebp - 0x18] +0x55742b: fdiv qword ptr [ebp - 0x18] +0x55742e: fabs +0x557430: mov dword ptr [ebp - 0xc0], esi +0x557436: fild dword ptr [ebp - 0xc0] +0x55743c: fdivr dword ptr [0x557a88] ; f32=1.0 +0x557442: fcompp +0x557444: fnstsw ax +0x557446: sahf +0x557447: jae 0x55760d +0x55744d: cmp ebx, 1 +0x557450: jle 0x5574b4 +0x557452: fld qword ptr [ebp - 0x88] +0x557458: fcomp qword ptr [ebp - 0x28] +0x55745b: fnstsw ax +0x55745d: sahf +0x55745e: jae 0x55748f +0x557460: push 0 +0x557462: push 5 +0x557464: mov eax, esi +0x557466: add eax, eax +0x557468: mov dword ptr [ebp - 0xc0], eax +0x55746e: fild dword ptr [ebp - 0xc0] +0x557474: fdivr dword ptr [0x557a88] ; f32=1.0 +0x55747a: fadd qword ptr [ebp - 0x70] +0x55747d: add esp, -0xc +0x557480: fstp xword ptr [esp] +0x557483: wait +0x557484: call 0x422904 ; DP_COMMON!MROUNDUD +0x557489: fstp qword ptr [ebp - 0x70] +0x55748c: wait +0x55748d: jmp 0x5574b4 +0x55748f: push 0 +0x557491: push 5 +0x557493: fld qword ptr [ebp - 0x88] +0x557499: fsub qword ptr [ebp - 0x18] +0x55749c: fabs +0x55749e: fdiv qword ptr [ebp - 0x18] +0x5574a1: fsubr qword ptr [ebp - 0x70] +0x5574a4: add esp, -0xc +0x5574a7: fstp xword ptr [esp] +0x5574aa: wait +0x5574ab: call 0x422904 ; DP_COMMON!MROUNDUD +0x5574b0: fstp qword ptr [ebp - 0x70] +0x5574b3: wait +0x5574b4: push 0 +0x5574b6: push 0 +0x5574b8: fld qword ptr [ebp - 0xa8] +0x5574be: fmul qword ptr [ebp - 0x70] +0x5574c1: add esp, -0xc +0x5574c4: fstp xword ptr [esp] +0x5574c7: wait +0x5574c8: call 0x422904 ; DP_COMMON!MROUNDUD +0x5574cd: mov edi, dword ptr [ebp - 8] +0x5574d0: add edi, edi +0x5574d2: lea edi, [edi + edi*2] +0x5574d5: mov eax, dword ptr [0x5e5d84] +0x5574da: mov eax, dword ptr [eax] +0x5574dc: fstp qword ptr [eax + edi*8 - 0x20] +0x5574e0: wait +0x5574e1: push 0 +0x5574e3: push 0 +0x5574e5: fld qword ptr [ebp - 0xb0] +0x5574eb: fmul qword ptr [ebp - 0x70] +0x5574ee: add esp, -0xc +0x5574f1: fstp xword ptr [esp] +0x5574f4: wait +0x5574f5: call 0x422904 ; DP_COMMON!MROUNDUD +0x5574fa: mov eax, dword ptr [0x5e5d84] +0x5574ff: mov eax, dword ptr [eax] +0x557501: fstp qword ptr [eax + edi*8 - 0x28] +0x557505: wait +0x557506: push 0 +0x557508: push 0 +0x55750a: fld qword ptr [ebp - 0xa0] +0x557510: fmul qword ptr [ebp - 0x70] +0x557513: add esp, -0xc +0x557516: fstp xword ptr [esp] +0x557519: wait +0x55751a: call 0x422904 ; DP_COMMON!MROUNDUD +0x55751f: mov eax, dword ptr [0x5e5d84] +0x557524: mov eax, dword ptr [eax] +0x557526: fstp qword ptr [eax + edi*8 - 0x18] +0x55752a: wait +0x55752b: mov eax, dword ptr [0x5e5d84] +0x557530: mov eax, dword ptr [eax] +0x557532: fld qword ptr [eax + edi*8 - 0x20] +0x557536: mov eax, dword ptr [0x5e5d84] +0x55753b: mov eax, dword ptr [eax] +0x55753d: fadd qword ptr [eax + edi*8 - 0x28] +0x557541: mov eax, dword ptr [ebp - 8] +0x557544: add eax, eax +0x557546: lea eax, [eax + eax*2] +0x557549: mov edx, dword ptr [0x5e5d84] +0x55754f: mov edx, dword ptr [edx] +0x557551: fadd qword ptr [edx + eax*8 - 0x18] +0x557555: mov eax, dword ptr [0x5e5d84] +0x55755a: mov eax, dword ptr [eax] +0x55755c: fstp qword ptr [eax + edi*8 - 0x30] +0x557560: wait +0x557561: lea eax, [ebp - 0x14c] +0x557567: xor edx, edx +0x557569: mov cl, 1 +0x55756b: call 0x4013c0 ; rtl60!@System@@VarFromInt$qqrr14System@Variantxixi +0x557570: push dword ptr [ebp - 0x140] +0x557576: push dword ptr [ebp - 0x144] +0x55757c: push dword ptr [ebp - 0x148] +0x557582: push dword ptr [ebp - 0x14c] +0x557588: fld qword ptr [ebp - 0x70] +0x55758b: fmul dword ptr [0x557a84] ; f32=100.0 +0x557591: lea eax, [ebp - 0x15c] +0x557597: call 0x4013d8 ; rtl60!@System@@VarFromReal$qqrv +0x55759c: push dword ptr [ebp - 0x150] +0x5575a2: push dword ptr [ebp - 0x154] +0x5575a8: push dword ptr [ebp - 0x158] +0x5575ae: push dword ptr [ebp - 0x15c] +0x5575b4: mov eax, dword ptr [ebp - 4] +0x5575b7: mov eax, dword ptr [eax + 0x374] +0x5575bd: mov edx, dword ptr [eax] +0x5575bf: call dword ptr [edx + 0xc4] +0x5575c5: push eax +0x5575c6: lea eax, [ebp - 0x13c] +0x5575cc: push eax +0x5575cd: call 0x4228b4 ; DP_COMMON!IIF +0x5575d2: lea eax, [ebp - 0x13c] +0x5575d8: call 0x4013a0 ; rtl60!@System@@VarToReal$qqrrx14System@Variant +0x5575dd: fstp qword ptr [ebp - 0x20] +0x5575e0: wait +0x5575e1: push 0 +0x5575e3: push 0 +0x5575e5: push dword ptr [ebp - 0x1c] +0x5575e8: push dword ptr [ebp - 0x20] +0x5575eb: push 0 +0x5575ed: mov ecx, 1 +0x5575f2: xor edx, edx +0x5575f4: mov eax, dword ptr [ebp - 8] +0x5575f7: call 0x45f974 +0x5575fc: fstp qword ptr [ebp - 0x88] +0x557602: wait +0x557603: inc ebx +0x557604: cmp ebx, 0xb +0x557607: jne 0x55740f +0x55760d: push 0 +0x55760f: push 0 +0x557611: push dword ptr [ebp - 0x1c] +0x557614: push dword ptr [ebp - 0x20] +0x557617: push 0 +0x557619: mov ecx, 3 +0x55761e: xor edx, edx +0x557620: mov eax, dword ptr [ebp - 8] +0x557623: call 0x45f974 +0x557628: fstp qword ptr [ebp - 0x80] +0x55762b: wait +0x55762c: fld qword ptr [ebp - 0x80] +0x55762f: fcomp qword ptr [ebp - 0x50] +0x557632: fnstsw ax +0x557634: sahf +0x557635: jb 0x55764f +0x557637: xor eax, eax +0x557639: mov dword ptr [ebp - 0x70], eax +0x55763c: mov dword ptr [ebp - 0x6c], 0x3ff00000 +0x557643: mov eax, dword ptr [ebp - 0x50] +0x557646: mov dword ptr [ebp - 0x80], eax +0x557649: mov eax, dword ptr [ebp - 0x4c] +0x55764c: mov dword ptr [ebp - 0x7c], eax +0x55764f: push 0x557910 +0x557654: push 0x7f02 +0x557659: push 1 +0x55765b: mov eax, 0x557a94 ; str='적용율적용(&Y)' +0x557660: mov dword ptr [ebp - 0x164], eax +0x557666: mov eax, 0x557aac ; str='아니오(&N)' +0x55766b: mov dword ptr [ebp - 0x160], eax +0x557671: lea eax, [ebp - 0x164] +0x557677: push eax +0x557678: push 1 +0x55767a: push 0x557ac0 +0x55767f: fld qword ptr [ebp - 0x18] +0x557682: add esp, -0xc +0x557685: fstp xword ptr [esp] +0x557688: wait +0x557689: lea edx, [ebp - 0x16c] +0x55768f: mov eax, 0x557a14 ; str='#,0' +0x557694: call 0x401fd8 ; rtl60!@Sysutils@FormatFloat$qqrx17System@AnsiStringg +0x557699: push dword ptr [ebp - 0x16c] +0x55769f: push 0x557ad8 +0x5576a4: push 0x557ad8 +0x5576a9: push 0x557ae4 +0x5576ae: fld qword ptr [ebp - 0x70] +0x5576b1: fmul dword ptr [0x557a84] ; f32=100.0 +0x5576b7: add esp, -0xc +0x5576ba: fstp xword ptr [esp] +0x5576bd: wait +0x5576be: lea edx, [ebp - 0x170] +0x5576c4: mov eax, 0x557afc ; str='0.######%' +0x5576c9: call 0x401fd8 ; rtl60!@Sysutils@FormatFloat$qqrx17System@AnsiStringg +0x5576ce: push dword ptr [ebp - 0x170] +0x5576d4: push 0x557b10 +0x5576d9: push 0x557ad8 +0x5576de: push 0x557ad8 +0x5576e3: push 0x557b24 +0x5576e8: fld qword ptr [ebp - 0x88] +0x5576ee: add esp, -0xc +0x5576f1: fstp xword ptr [esp] +0x5576f4: wait +0x5576f5: lea edx, [ebp - 0x174] +0x5576fb: mov eax, 0x557a14 ; str='#,0' +0x557700: call 0x401fd8 ; rtl60!@Sysutils@FormatFloat$qqrx17System@AnsiStringg +0x557705: push dword ptr [ebp - 0x174] +0x55770b: push 0x557b3c +0x557710: push 0x557ad8 +0x557715: push 0x557b54 +0x55771a: fld qword ptr [ebp - 0x80] +0x55771d: add esp, -0xc +0x557720: fstp xword ptr [esp] +0x557723: wait +0x557724: lea edx, [ebp - 0x178] +0x55772a: mov eax, 0x557a14 ; str='#,0' +0x55772f: call 0x401fd8 ; rtl60!@Sysutils@FormatFloat$qqrx17System@AnsiStringg +0x557734: push dword ptr [ebp - 0x178] +0x55773a: push 0x557ad8 +0x55773f: push 0x557b6c +0x557744: fld qword ptr [ebp - 0x80] +0x557747: fadd qword ptr [ebp - 0x10] +0x55774a: add esp, -0xc +0x55774d: fstp xword ptr [esp] +0x557750: wait +0x557751: lea edx, [ebp - 0x17c] +0x557757: mov eax, 0x557a14 ; str='#,0' +0x55775c: call 0x401fd8 ; rtl60!@Sysutils@FormatFloat$qqrx17System@AnsiStringg +0x557761: push dword ptr [ebp - 0x17c] +0x557767: push 0x557ad8 +0x55776c: push 0x557ad8 +0x557771: push 0x557b84 +0x557776: push 0x557ad8 +0x55777b: push 0x557ad8 +0x557780: push 0x557bb8 +0x557785: push 0x557ad8 +0x55778a: push 0x557c08 +0x55778f: push 0x557ad8 +0x557794: push 0x557c50 +0x557799: push 0x557ad8 +0x55779e: push 0x557ad8 +0x5577a3: push 0x557c78 +0x5577a8: lea eax, [ebp - 0x168] +0x5577ae: mov edx, 0x1f +0x5577b3: call 0x4012b8 ; rtl60!@System@@LStrCatN$qqrv +0x5577b8: mov edx, dword ptr [ebp - 0x168] +0x5577be: mov eax, dword ptr [0x5fd480] +0x5577c3: mov eax, dword ptr [eax] +0x5577c5: mov eax, dword ptr [eax + 0x30] +0x5577c8: mov ecx, 0x557cc4 ; str='계약내역 목표값 약식산출' +0x5577cd: call 0x44b680 +0x5577d2: cmp ax, 1 +0x5577d6: jne 0x55784e +0x5577d8: fld qword ptr [ebp - 0x70] +0x5577db: fmul dword ptr [0x557a84] ; f32=100.0 +0x5577e1: add esp, -0xc +0x5577e4: fstp xword ptr [esp] +0x5577e7: wait +0x5577e8: mov eax, dword ptr [ebp - 4] +0x5577eb: mov eax, dword ptr [eax + 0x320] +0x5577f1: call 0x404b98 ; RealGrid6!@Urnedit@TwCustomNumEdit@SetValue$qqrg +0x5577f6: mov eax, dword ptr [ebp - 4] +0x5577f9: mov eax, dword ptr [eax + 0x320] +0x5577ff: call 0x404b90 ; RealGrid6!@Urnedit@TwCustomNumEdit@GetValue$qqrv +0x557804: add esp, -0xc +0x557807: fstp xword ptr [esp] +0x55780a: wait +0x55780b: mov eax, dword ptr [ebp - 4] +0x55780e: mov eax, dword ptr [eax + 0x324] +0x557814: call 0x404b98 ; RealGrid6!@Urnedit@TwCustomNumEdit@SetValue$qqrg +0x557819: mov eax, dword ptr [ebp - 4] +0x55781c: mov eax, dword ptr [eax + 0x320] +0x557822: call 0x404b90 ; RealGrid6!@Urnedit@TwCustomNumEdit@GetValue$qqrv +0x557827: add esp, -0xc +0x55782a: fstp xword ptr [esp] +0x55782d: wait +0x55782e: mov eax, dword ptr [ebp - 4] +0x557831: mov eax, dword ptr [eax + 0x328] +0x557837: call 0x404b98 ; RealGrid6!@Urnedit@TwCustomNumEdit@SetValue$qqrg +0x55783c: mov eax, dword ptr [ebp - 4] +0x55783f: mov eax, dword ptr [eax + 0x368] +0x557845: mov si, 0xffef +0x557849: call 0x401198 ; rtl60!@System@@CallDynaInst$qqrv +0x55784e: xor eax, eax +0x557850: pop edx +0x557851: pop ecx +0x557852: pop ecx +0x557853: mov dword ptr fs:[eax], edx +0x557856: push 0x557879 +0x55785b: mov eax, dword ptr [0x5e5d7c] +0x557860: call 0x401250 ; rtl60!@System@@LStrClr$qqrpv +0x557865: mov eax, dword ptr [0x5e6090] +0x55786a: mov eax, dword ptr [eax] +0x55786c: xor edx, edx diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/DP_Common_MROUNDUP_0x4547ac_ghidra_pseudo.c b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/DP_Common_MROUNDUP_0x4547ac_ghidra_pseudo.c new file mode 100644 index 000000000..c2c5cdfad --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/DP_Common_MROUNDUP_0x4547ac_ghidra_pseudo.c @@ -0,0 +1,344 @@ +===== dpc_mroundup.json ev_20fc29eeef8cdcd87391df8cec4423521e6a8a6f322cb2275fe6521d022ea9ce + +/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +void MROUNDUP(void) + +{ + float10 fVar1; + undefined4 **ppuVar2; + undefined2 uVar3; + undefined2 uVar4; + char cVar5; + int *piVar6; + int iVar7; + undefined2 extraout_var; + int iVar8; + char *unaff_ESI; + undefined4 *unaff_EDI; + int iVar9; + int *in_FS_OFFSET; + unkbyte10 in_ST0; + float10 fVar10; + float10 in_ST1; + float10 in_ST2; + undefined4 in_stack_00000004; + undefined4 in_stack_00000008; + undefined2 in_stack_0000000c; + uint in_stack_00000010; + undefined4 **local_a8 [2]; + int local_a0; + undefined4 local_9c; + undefined4 local_98; + undefined *local_90; + undefined local_88 [16]; + int local_78; + undefined4 local_74; + undefined4 uStackY_70; + undefined4 uStackY_6c; + undefined4 **local_68; + int local_60; + undefined4 *local_5c; + undefined4 *local_58; + undefined *puVar11; + char *pcVar12; + int local_48; + char *local_44; + undefined4 local_40; + undefined2 local_3c; + undefined2 uStack_3a; + undefined *puStack_38; + char *pcStack_34; + undefined4 ***local_30; + undefined2 local_2c; + undefined2 uStack_2a; + int iStack_28; + undefined2 uStack_24; + undefined2 uStack_22; + undefined4 local_20; + + /* 0x547ac 56 MROUNDUP */ + local_20 = &stack0xfffffffc; + iVar8 = 0x14; + do { + iVar8 = iVar8 + -1; + } while (iVar8 != 0); + uStack_24 = 0x4cff; + uStack_22 = 0x45; + iStack_28 = *in_FS_OFFSET; + *in_FS_OFFSET = (int)&iStack_28; + fVar10 = ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004))); + pcStack_34 = SUB104(fVar10,0); + local_30 = (undefined4 ***)((unkuint10)fVar10 >> 0x20); + local_2c = (undefined2)((unkuint10)fVar10 >> 0x40); + puStack_38 = (undefined *)0x4547e6; + FUN_0040a19c("0.##########",(int *)&stack0xffffffe8); + local_2c = SUB42(unaff_ESI,0); + uVar3 = local_2c; + uStack_2a = (undefined2)((uint)unaff_ESI >> 0x10); + uVar4 = uStack_2a; + local_30 = &local_30; + pcStack_34 = (char *)0x4547f3; + EXTTOSTR(); + pcStack_34 = (char *)0x4547fe; + FUN_004045bc((int *)&stack0xffffffe8,(int)local_30); + if (_DAT_00454d2c < + (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004))) { + pcStack_34 = (char *)0x45481e; + FUN_00404828((int *)&pcStack_34,(undefined4 *)unaff_ESI,(undefined4 *)&DAT_00454d40); + pcVar12 = pcStack_34; + pcStack_34 = (char *)0x45482d; + piVar6 = FUN_0040b1d0((int *)&DAT_00407b00,'\x01',(undefined4 *)pcVar12); + pcStack_34 = (char *)0x454832; + FUN_00403efc((int)piVar6); + } + pcStack_34 = (char *)0x45483f; + iVar8 = FUN_00404b18(".",unaff_ESI); + if (0 < iVar8) { + pcStack_34 = (char *)0x45484d; + iVar7 = FUN_004047dc((int)unaff_ESI); + if (iVar7 - iVar8 < 0xb) { + pcStack_34 = (char *)0x45485c; + iVar7 = FUN_004047dc((int)unaff_ESI); + if (0 < iVar7) { + iVar9 = 1; + do { + if ((byte)(unaff_ESI[iVar9 + -1] - 0x31U) < 9) { + pcStack_34 = (char *)0x45487c; + iVar7 = FUN_004047dc((int)unaff_ESI); + if (iVar7 - iVar9 < 0xb) { + iVar8 = 0; + } + break; + } + iVar9 = iVar9 + 1; + iVar7 = iVar7 + -1; + } while (iVar7 != 0); + } + } + } + if (iVar8 == 0) { + local_2c = 0; + uStack_2a = 0; + iStack_28 = 0; + uStack_24 = 0; + if (-1 < (int)in_stack_00000010) { + puStack_38 = &DAT_00454d74; + local_3c = 0x48c6; + uStack_3a = 0x45; + pcStack_34 = unaff_ESI; + cVar5 = MPOS(); + if (cVar5 == '\0') goto LAB_00454cb4; + } + } + else { + in_ST1 = in_ST2; + if (iVar8 - 2U < 8) { + pcStack_34 = (char *)0x4002; + local_3c = 0; + uStack_3a = 0; + puStack_38 = (undefined *)(iVar8 + -0xd); + fVar10 = (float10)(int)puStack_38; + local_48 = SUB104(fVar10,0); + local_44 = (char *)((unkuint10)fVar10 >> 0x20); + local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40); + FUN_0042983c(); + local_2c = (undefined2)in_ST0; + uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10); + iStack_28 = (int)((unkuint10)in_ST0 >> 0x20); + uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40); + } + else if (iVar8 - 10U < 4) { + pcStack_34 = (char *)0x4002; + puStack_38 = (undefined *)0xa0000000; + local_3c = 0; + uStack_3a = 0; + local_40._0_2_ = 0xc001; + local_40._2_2_ = 0; + local_44 = (char *)0x80000000; + local_48 = 0; + FUN_0042983c(); + local_2c = (undefined2)in_ST0; + uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10); + iStack_28 = (int)((unkuint10)in_ST0 >> 0x20); + uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40); + } + else { + pcStack_34 = (char *)0x4002; + puStack_38 = (undefined *)0xa0000000; + local_3c = 0; + uStack_3a = 0; + local_40._0_2_ = 0xc002; + local_40._2_2_ = 0; + local_44 = (char *)0x90000000; + local_48 = 0; + FUN_0042983c(); + local_2c = (undefined2)in_ST0; + uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10); + iStack_28 = (int)((unkuint10)in_ST0 >> 0x20); + uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40); + } + } + if ((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)) != + (float10)0.0) { + fVar10 = (float10)CONCAT28(uStack_24,CONCAT44(iStack_28,CONCAT22(uStack_2a,local_2c))) + + ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004))) + ; + local_44 = SUB104(fVar10,0); + local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x20); + local_40._2_2_ = (undefined2)((unkuint10)fVar10 >> 0x30); + local_3c = (undefined2)((unkuint10)fVar10 >> 0x40); + local_48 = 0x45497e; + FUN_0040a19c("0.0#########",(int *)&stack0xffffffe8); + local_40 = (undefined4 *)&local_3c; + local_44 = (char *)0x45498b; + local_3c = uVar3; + uStack_3a = uVar4; + EXTTOSTR(); + local_44 = (char *)0x454996; + FUN_004045bc((int *)&stack0xffffffe8,CONCAT22(uStack_3a,local_3c)); + local_44 = unaff_ESI; + cVar5 = MPOS(); + if (cVar5 == '\0') { + FUN_004047e4((int *)&stack0xffffffe8,(undefined4 *)&DAT_00454d9c); + } + while( true ) { + iVar8 = FUN_00404b18(",",unaff_ESI); + if (iVar8 < 1) break; + iVar8 = FUN_00404b18(",",unaff_ESI); + FUN_00404a74((int *)&stack0xffffffe8,iVar8,1); + } + iVar8 = FUN_00404b18(".",unaff_ESI); + if (in_stack_00000010 == 0) { + FUN_00404a34((int)unaff_ESI,iVar8 + 1,10,&local_40); + FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,local_40); + FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,(int *)&stack0xffffffe8); + iVar7 = 0; + } + else if ((int)in_stack_00000010 < 1) { + iVar7 = (in_stack_00000010 ^ (int)in_stack_00000010 >> 0x1f) - + ((int)in_stack_00000010 >> 0x1f); + if (iVar7 < iVar8 + -1) { + FUN_00404524((int *)&stack0xffffffe4); + iVar9 = iVar7; + if (0 < iVar7) { + do { + FUN_00404abc((undefined4 *)&DAT_00454dc0,(int *)&stack0xffffffe4,1); + iVar9 = iVar9 + -1; + } while (iVar9 != 0); + } + puVar11 = &DAT_00454d74; + local_58 = (undefined4 *)&stack0xffffffac; + local_5c = (undefined4 *)0x454b0f; + pcVar12 = unaff_ESI; + LEFT_STR(); + local_5c = (undefined4 *)&stack0xffffffac; + piVar6 = (int *)&DAT_00454d74; + local_68 = &local_58; + uStackY_6c._0_2_ = 0x4b25; + uStackY_6c._2_2_ = 0x45; + RIGHT_STR(); + ppuVar2 = local_68; + local_68 = (undefined4 **)0x454b2e; + FUN_004047e4((int *)ppuVar2,local_58); + local_68 = (undefined4 **)0x454b42; + FUN_00404a34((int)puVar11,iVar8 - iVar7,10,piVar6); + FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)pcVar12); + local_68 = (undefined4 **)0x454b66; + FUN_00404a34((int)unaff_ESI,1,(iVar8 - iVar7) - 1,(int *)&local_5c); + FUN_00404828((int *)&stack0xffffffe8,local_5c,unaff_EDI); + } + else { + FUN_00404a34(0x454dcc,1,(iVar7 - iVar8) - 1,&local_60); + local_58 = (undefined4 *)&DAT_00454d74; + local_5c = (undefined4 *)&stack0xffffff9c; + local_60 = 0x454ba9; + LEFT_STR(); + local_68 = (undefined4 **)&DAT_00454d74; + uStackY_6c = &local_68; + uStackY_70 = 0x454bbe; + RIGHT_STR(); + local_74 = 0x454bce; + FUN_0040489c(&local_20,4); + local_74 = 0x454bdb; + FUN_004045bc((int *)&stack0xffffffe8,0x454dc0); + } + } + else { + FUN_00404a34((int)unaff_ESI,in_stack_00000010 + iVar8 + 1,10,(int *)&local_44); + FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)local_44); + FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,&local_48); + local_58 = (undefined4 *)0x454aa4; + FUN_00404a34((int)unaff_ESI,iVar8 + 1,in_stack_00000010,(int *)&stack0xffffffb4); + local_58 = (undefined4 *)0x454ab4; + FUN_0040489c((int *)&stack0xffffffe8,3); + iVar7 = -in_stack_00000010; + } + FUN_0040a1f4(local_20); + local_20._0_2_ = 0x4bf2; + local_20._2_2_ = 0x45; + puStack_38 = (undefined *)FUN_004297f4(); + fVar10 = (float10)(int)puStack_38; + local_74 = SUB104(fVar10,0); + uStackY_70 = (undefined4)((unkuint10)fVar10 >> 0x20); + uStackY_6c._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40); + fVar10 = (float10)iVar7; + iStack_28 = SUB104(fVar10,0); + uStack_24 = (undefined2)((unkuint10)fVar10 >> 0x20); + uStack_22 = (undefined2)((unkuint10)fVar10 >> 0x30); + local_20._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40); + local_2c = 0x4c1a; + uStack_2a = 0x45; + local_78 = iVar7; + FUN_0042983c(); + in_ST1 = (float10)CONCAT28((undefined2)uStackY_6c,CONCAT44(uStackY_70,local_74)) * in_ST1; + local_2c = SUB102(in_ST1,0); + uStack_2a = (undefined2)((unkuint10)in_ST1 >> 0x10); + iStack_28 = (int)((unkuint10)in_ST1 >> 0x20); + uStack_24 = (undefined2)((unkuint10)in_ST1 >> 0x40); + FUN_0040a1f4((undefined *)0xa0000000); + FUN_00405520(); + local_20._0_2_ = (undefined2)local_98; + local_20._2_2_ = (undefined2)((uint)local_98 >> 0x10); + uStack_24 = 0x4c61; + uStack_22 = 0x45; + FUN_0040a1f4(local_90); + uStack_24 = 0x4c71; + uStack_22 = 0x45; + FUN_00405520(); + uStack_24 = (undefined2)local_9c; + uStack_22 = (undefined2)((uint)local_9c >> 0x10); + iStack_28 = local_a0; + local_2c = SUB42(local_a8[1],0); + uStack_2a = (undefined2)((uint)local_a8[1] >> 0x10); + local_30 = (undefined4 ***)local_a8[0]; + fVar1 = (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)); + fVar10 = (float10)0.0; + pcStack_34 = (char *)CONCAT31((int3)(CONCAT22(extraout_var, + (ushort)(fVar1 < fVar10) << 8 | + (ushort)(NAN(fVar1) || NAN(fVar10)) << 10 | + (ushort)(fVar1 == fVar10) << 0xe) >> 8), + fVar1 < fVar10 == 0 && (fVar1 == fVar10) == 0); + puStack_38 = local_88; + local_3c = 0x4ca5; + uStack_3a = 0x45; + IIF(); + local_3c = 0x4cb0; + uStack_3a = 0x45; + FUN_004054c4(); + } +LAB_00454cb4: + *in_FS_OFFSET = (int)puStack_38; + local_30 = (undefined4 ***)&LAB_00454d06; + pcStack_34 = (char *)0x454cd7; + FUN_00405018((int *)local_a8,&DAT_004010a0,3); + pcStack_34 = (char *)0x454ce4; + FUN_00404548((int *)&local_68,0xc); + pcStack_34 = (char *)0x454cf1; + FUN_00404548((int *)&pcStack_34,2); + pcStack_34 = (char *)0x454cfe; + FUN_00404548(&local_20,3); + return; +} + + diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/STmate_0x554be0_ghidra_pseudo.c b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/STmate_0x554be0_ghidra_pseudo.c new file mode 100644 index 000000000..5caf71485 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/STmate_0x554be0_ghidra_pseudo.c @@ -0,0 +1,674 @@ +===== main_conv.json ev_cfae2c4ebf15d07c7e603c57ba08d1b6e50c6e356e171b72aa1f520ffc8be5b0 + +void FUN_00554be0(char *param_1,undefined4 param_2,undefined4 param_3,char *param_4) + +{ + char cVar1; + undefined4 uVar2; + int iVar3; + char *pcVar4; + undefined4 *puVar5; + char *pcVar6; + undefined4 *in_FS_OFFSET; + byte bVar7; + float10 in_ST0; + float10 fVar8; + float10 in_ST1; + float10 in_ST2; + float10 in_ST3; + float10 in_ST4; + float10 in_ST5; + float10 in_ST6; + undefined4 local_318; + undefined1 local_314 [16]; + undefined1 local_304 [16]; + undefined1 local_2f4 [16]; + undefined1 local_2e4 [16]; + undefined4 local_2d4; + char local_2d0 [16]; + undefined4 local_2c0; + char local_2bc [16]; + undefined4 local_2ac; + char local_2a8 [16]; + undefined4 local_298; + char 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]; + char *local_224; + undefined1 local_220 [16]; + undefined1 local_210 [16]; + undefined1 local_200 [16]; + undefined1 local_1f0 [16]; + undefined1 local_1e0 [16]; + undefined1 local_1d0 [16]; + undefined1 local_1c0 [16]; + undefined1 local_1b0 [256]; + undefined1 local_b0 [16]; + undefined4 local_a0; + char *local_9c; + undefined4 local_98; + undefined1 local_94 [16]; + undefined1 local_84 [8]; + undefined4 uStack_7c; + undefined1 auStack_78 [12]; + undefined4 uStack_6c; + undefined4 uStack_68; + undefined8 local_64; + undefined2 uStack_5c; + undefined2 uStack_5a; + undefined4 uStack_58; + undefined4 local_54; + undefined1 *puStack_50; + int iStack_4c; + undefined2 uStack_48; + undefined2 uStack_46; + char *local_44; + char *local_40; + char *local_3c; + char *local_38; + undefined4 local_34; + char *local_30; + char *local_2c; + undefined4 local_28; + char *local_24; + char *local_20; + char *local_c; + char *local_8; + + bVar7 = 0; + iVar3 = 0x62; + do { + iVar3 = iVar3 + -1; + } while (iVar3 != 0); + local_20 = (char *)0x554bfe; + local_8 = param_1; + _System__LStrAddRef_qqrpv(param_1); + pcVar4 = param_4 + -0x270; + local_24 = &LAB_00555ae8; + local_28 = *in_FS_OFFSET; + *in_FS_OFFSET = &local_28; + iVar3 = 0; + if ((param_4[-0x275] == '\0') || (local_20 = &stack0xfffffffc, *(double *)PTR_DAT_005e6020 != 0.0) + ) { + cVar1 = *local_8; + local_20 = &stack0xfffffffc; + switch(cVar1) { + case 'B': + case 'D': + case 'X': + if (param_4[-0x275] == '\0') { + iVar3 = 1; + local_20 = &stack0xfffffffc; + } + else { + local_20 = &stack0xfffffffc; + if (*(double *)PTR_DAT_005e6020 != 0.0) { + local_2c = (char *)0x554d44; + local_20 = &stack0xfffffffc; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_44,cVar1); + local_2c = (char *)0x554d51; + iVar3 = _System__LStrPos_qqrv(local_44,"WBXDMLS"); + } + } + break; + case 'L': + case 'M': + case 'S': + case 'W': + local_20 = &stack0xfffffffc; + if (param_4[-0x276] != '\0') { + local_2c = (char *)0x554cbb; + local_20 = &stack0xfffffffc; + _System__VarFromInt_qqrr14System_Variantxixi(&local_2c,1,1); + local_2c = local_20; + local_30 = local_24; + local_34._0_2_ = (undefined2)local_28; + local_34._2_2_ = (undefined2)((uint)local_28 >> 0x10); + local_38 = local_20; + local_3c = (char *)0x554cd1; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_40,cVar1); + local_3c = (char *)0x554cde; + uVar2 = _System__LStrPos_qqrv(local_40,"WBXDMLS"); + local_3c = (char *)0x554cea; + _System__VarFromInt_qqrr14System_Variantxixi(&local_3c,uVar2,0xfc); + local_3c = local_30; + local_40 = (char *)CONCAT22(local_34._2_2_,(undefined2)local_34); + local_44 = local_38; + uStack_48 = SUB42(local_30,0); + uStack_46 = (undefined2)((uint)local_30 >> 0x10); + iStack_4c = CONCAT31((int3)((uint)param_4 >> 8),param_4[-0x275]); + puStack_50 = &stack0xffffffe4; + local_54 = 0x554d09; + IIF(); + local_54 = 0x554d11; + iVar3 = _System__VarToInt_qqrrx14System_Variant(&stack0xffffffe4); + } + break; + case 'Q': + local_20 = &stack0xfffffffc; + if (param_4[-0x276] != '\0') { + iVar3 = 1; + local_20 = &stack0xfffffffc; + } + } + } + if (iVar3 - 1U < 7) { + if (*local_8 == 'Q') { + local_2c = (char *)0x554d79; + _System__FillChar_qqrpvic(pcVar4,0x270,0); + local_2c = (char *)0x554d8c; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(param_4 + -0x27c),"LAMT1"); + *(double *)(param_4 + -0x110) = (double)in_ST0; + local_2c = (char *)0x554da6; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(param_4 + -0x27c),"MAMT1"); + *(double *)(param_4 + -0x108) = (double)in_ST1; + local_2c = (char *)0x554dc0; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(param_4 + -0x27c),"SAMT1"); + *(double *)(param_4 + -0x100) = (double)in_ST2; + local_2c = (char *)0x554dda; + _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString + (*(undefined4 *)(param_4 + -0x27c),"TAMT1"); + *(double *)(param_4 + -0x118) = (double)in_ST3; + if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) { + if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) && + ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) && + (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) { + *(double *)(param_4 + -0x110) = + (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0; + *(double *)(param_4 + -0x108) = + (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0; + *(double *)(param_4 + -0x100) = + (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0; + *(double *)(param_4 + -0x118) = + (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0; + local_2c = (char *)0x0; + local_30 = (char *)0x1; + local_34._0_2_ = 0; + local_34._2_2_ = 0; + iVar3 = 0xb; + do { + local_38 = *(char **)(param_4 + iVar3 * 4 + -0x118); + iVar3 = iVar3 + -1; + } while (-1 < iVar3); + local_40 = (char *)0x554f81; + OPTIMIZ(); + puVar5 = *(undefined4 **)PTR_DAT_005e5d84; + pcVar6 = param_4 + -0x118; + for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { + *(undefined4 *)pcVar6 = *puVar5; + puVar5 = puVar5 + (uint)bVar7 * -2 + 1; + pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4; + } + } + else { + local_2c = (char *)0x0; + local_30 = (char *)0x0; + fVar8 = ((float10)*(double *)(param_4 + -0x110) * + (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0; + local_3c = SUB104(fVar8,0); + local_38 = (char *)((unkuint10)fVar8 >> 0x20); + local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40); + local_40 = (char *)0x554e71; + MROUNDUD(); + *(double *)(param_4 + -0x110) = (double)in_ST4; + local_40 = (char *)0x0; + local_44 = (char *)0x0; + fVar8 = ((float10)*(double *)(param_4 + -0x108) * + (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0; + puStack_50 = SUB104(fVar8,0); + iStack_4c = (int)((unkuint10)fVar8 >> 0x20); + uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40); + local_54 = 0x554e9c; + MROUNDUD(); + *(double *)(param_4 + -0x108) = (double)in_ST5; + local_54 = 0; + uStack_58 = 0; + fVar8 = ((float10)*(double *)(param_4 + -0x100) * + (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0; + local_64 = SUB108(fVar8,0); + uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40); + uStack_68 = 0x554ec7; + MROUNDUD(); + *(double *)(param_4 + -0x100) = (double)in_ST6; + *(double *)(param_4 + -0x118) = + *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) + + *(double *)(param_4 + -0x100); + } + } + local_2c = (char *)0x554fa7; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c)); + local_2c = (char *)0x554fb5; + _System__VarFromReal_qqrv(&local_54); + local_2c = (char *)0x554fcb; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(param_4 + -0x27c),"LAMT1",&local_54); + local_2c = (char *)0x554fd9; + _System__VarFromReal_qqrv(&local_64); + local_2c = (char *)0x554fef; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(param_4 + -0x27c),"MAMT1",&local_64); + local_2c = (char *)0x554ffd; + _System__VarFromReal_qqrv(auStack_78 + 4); + local_2c = (char *)0x555013; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(param_4 + -0x27c),"SAMT1",auStack_78 + 4); + local_2c = (char *)0x555021; + _System__VarFromReal_qqrv(local_84); + local_2c = (char *)0x555037; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(param_4 + -0x27c),"TAMT1",local_84); + local_2c = (char *)0x555045; + _System__FillChar_qqrpvic(pcVar4,0x270,0); + } + else { + local_2c = *(char **)(param_4 + -0x280); + local_30 = local_8; + local_34._0_2_ = 0x505d; + local_34._2_2_ = 0x55; + cVar1 = MPOS(); + if ((cVar1 == '\0') || (param_4[-0x281] != '\0')) { + *(int *)(param_4 + iVar3 * 4 + -0x2a8) = *(int *)(param_4 + iVar3 * 4 + -0x2a8) + 1; + fVar8 = (float10)*(int *)(param_4 + iVar3 * 4 + -0x2a8); + local_3c = SUB104(fVar8,0); + local_38 = (char *)((unkuint10)fVar8 >> 0x20); + local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40); + local_40 = (char *)0x555102; + _Sysutils_FormatFloat_qqrx17System_AnsiStringg("00000",&local_9c); + local_40 = local_9c; + local_44 = (char *)0x55511d; + _System__LStrFromChar_qqrr17System_AnsiStringc + (&local_a0,CONCAT31(0x555b,(&UNK_00555b07)[iVar3])); + pcVar6 = local_40; + local_40 = (char *)0x55512c; + _System__LStrCat3_qqrv(&local_c,local_a0,pcVar6); + local_40 = (char *)0x55513a; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c)); + local_40 = (char *)0x555148; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_b0,local_c); + local_40 = (char *)0x555161; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(param_4 + -0x27c),"BDCODE1",local_b0); + local_40 = (char *)0x55516f; + _System__FillChar_qqrpvic(pcVar4,0x270,0); + local_40 = (char *)0x55517b; + FUN_00447cd8(pcVar4,local_8,1); + local_40 = (char *)0x55518e; + _System__LStrToString_qqrv(local_1b0,local_c,0xff); + local_40 = (char *)0x55519e; + _System__PStrNCpy_qqrp28System__SmallString_iuc_255_t1uc(param_4 + -0x268,local_1b0,6); + local_40 = (char *)0x5551a8; + FUN_0042ec30(local_c,1); + switch(iVar3) { + case 1: + *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7bc) = *(undefined4 *)(param_4 + -0x2a4); + break; + case 2: + *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a0) = *(undefined4 *)(param_4 + -0x2a0); + break; + case 3: + *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b8) = *(undefined4 *)(param_4 + -0x29c); + break; + case 4: + *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a4) = *(undefined4 *)(param_4 + -0x298); + break; + case 5: + *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b0) = *(undefined4 *)(param_4 + -0x294); + break; + case 6: + *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7ac) = *(undefined4 *)(param_4 + -0x290); + break; + case 7: + *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b4) = *(undefined4 *)(param_4 + -0x28c); + } + local_40 = (char *)0x555297; + _Apodset_TApolloTable_AppendBlank_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8)); + local_40 = (char *)0x5552a5; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_1c0,param_4 + -0x268); + local_40 = (char *)0x5552bf; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b7c,local_1c0); + local_40 = (char *)0x5552cd; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_1d0,param_4 + -0x237); + local_40 = (char *)0x5552e7; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b8c,local_1d0); + local_40 = (char *)0x5552f8; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_1e0,param_4 + -0x1d1); + local_40 = (char *)0x555312; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b9c,local_1e0); + local_40 = (char *)0x555323; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_1f0,param_4 + -0x157); + local_40 = (char *)0x55533d; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555bac,local_1f0); + local_40 = (char *)0x55534e; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_200,param_4 + -0x148); + local_40 = (char *)0x555368; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"BQCODE",local_200); + local_40 = (char *)0x555376; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_210,param_4 + -0x255); + local_40 = (char *)0x555390; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"EQCODE",local_210); + local_40 = (char *)0x5553a1; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_220,param_4 + -0x133); + local_40 = (char *)0x5553bb; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"WQCODE",local_220); + if (param_4[-0x70] != '\0') { + local_40 = "BD"; + local_44 = (char *)0x5553dd; + _System__LStrFromChar_qqrr17System_AnsiStringc(&local_224,*local_c); + local_44 = local_224; + uStack_48 = 0x53e9; + uStack_46 = 0x55; + cVar1 = MPOS(); + if (cVar1 != '\0') { + in_ST2 = (float10)*(double *)(param_4 + -0x60); + local_40 = (char *)0x555402; + _System__VarFromReal_qqrv(local_234); + local_40 = (char *)0x55541c; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"ADJ_L",local_234); + in_ST1 = (float10)*(double *)(param_4 + -0x58); + local_40 = (char *)0x55542d; + _System__VarFromReal_qqrv(local_244); + local_40 = (char *)0x555447; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"ADJ_M",local_244); + in_ST0 = (float10)*(double *)(param_4 + -0x50); + local_40 = (char *)0x555458; + _System__VarFromReal_qqrv(local_254); + local_40 = (char *)0x555472; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"ADJ_S",local_254); + local_40 = (char *)0x555483; + _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_ + (local_264,param_4 + -0x38); + local_40 = (char *)0x55549d; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"SBMOK",local_264); + local_40 = (char *)0x5554aa; + _System__VarFromBool_qqrr14System_Variantxo(local_274,1); + local_40 = (char *)0x5554c4; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"S_ADJ",local_274); + } + } + local_40 = (char *)0x5554d8; + _System__VarFromInt_qqrr14System_Variantxixi(local_284,*(undefined2 *)(param_4 + -6),2); + local_40 = (char *)0x5554f2; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555c48,local_284); + if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) { + if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) && + ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) && + (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) { + *(double *)(param_4 + -0x110) = + (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0; + *(double *)(param_4 + -0x108) = + (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0; + *(double *)(param_4 + -0x100) = + (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0; + *(double *)(param_4 + -0x118) = + (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0; + if (*local_8 == 'B') { + local_40 = (char *)0x0; + local_44 = (char *)0x1; + uStack_48 = 0; + uStack_46 = 0; + iVar3 = 0xb; + do { + iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118); + iVar3 = iVar3 + -1; + } while (-1 < iVar3); + local_54 = 0x5556a1; + OPTIMIZ(); + } + else if (*local_8 == 'D') { + local_40 = (char *)0x0; + local_44 = (char *)0x1; + uStack_48 = 0; + uStack_46 = 0; + iVar3 = 0xb; + do { + iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118); + iVar3 = iVar3 + -1; + } while (-1 < iVar3); + local_54 = 0x5556cd; + OPTIMIZ(); + } + else { + local_40 = (char *)0x0; + local_44 = (char *)0x1; + uStack_48 = 0; + uStack_46 = 0; + iVar3 = 0xb; + do { + iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118); + iVar3 = iVar3 + -1; + } while (-1 < iVar3); + local_54 = 0x5556ed; + OPTIMIZ(); + } + puVar5 = *(undefined4 **)PTR_DAT_005e5d84; + pcVar6 = param_4 + -0x118; + for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) { + *(undefined4 *)pcVar6 = *puVar5; + puVar5 = puVar5 + (uint)bVar7 * -2 + 1; + pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4; + } + } + else { + local_40 = (char *)0x0; + local_44 = (char *)0x0; + fVar8 = ((float10)*(double *)(param_4 + -0x110) * + (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0; + puStack_50 = SUB104(fVar8,0); + iStack_4c = (int)((unkuint10)fVar8 >> 0x20); + uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40); + local_54 = 0x555582; + MROUNDUD(); + *(double *)(param_4 + -0x110) = (double)in_ST0; + local_54 = 0; + uStack_58 = 0; + fVar8 = ((float10)*(double *)(param_4 + -0x108) * + (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0; + local_64 = SUB108(fVar8,0); + uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40); + uStack_68 = 0x5555ad; + MROUNDUD(); + *(double *)(param_4 + -0x108) = (double)in_ST1; + uStack_68 = 0; + uStack_6c = 0; + auStack_78._0_10_ = + ((float10)*(double *)(param_4 + -0x100) * + (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0; + uStack_7c = 0x5555d8; + MROUNDUD(); + *(double *)(param_4 + -0x100) = (double)in_ST2; + *(double *)(param_4 + -0x118) = + *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) + + *(double *)(param_4 + -0x100); + } + } + if (*(double *)PTR_DAT_005e6020 != 0.0) { + iVar3 = 2; + puVar5 = (undefined4 *)PTR_PTR_005e5f40; + do { + puVar5 = puVar5 + 1; + local_40 = (char *)0x55573a; + _System__VarFromReal_qqrv(local_294); + local_40 = local_294; + local_44 = (char *)0x555753; + _System__LStrCat3_qqrv(&local_298,&DAT_00555c54,*puVar5); + pcVar6 = local_40; + local_40 = (char *)0x555769; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_298,pcVar6); + local_40 = (char *)0x55577a; + _System__VarFromReal_qqrv(local_2a8); + local_40 = local_2a8; + local_44 = (char *)0x555793; + _System__LStrCat3_qqrv(&local_2ac,&DAT_00555c64,*puVar5); + pcVar6 = local_40; + local_40 = (char *)0x5557a9; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2ac,pcVar6); + local_40 = (char *)0x5557ba; + _System__VarFromReal_qqrv(local_2bc); + local_40 = local_2bc; + local_44 = (char *)0x5557d3; + _System__LStrCat3_qqrv(&local_2c0,&DAT_00555c74,*puVar5); + pcVar6 = local_40; + local_40 = (char *)0x5557e9; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2c0,pcVar6); + local_40 = (char *)0x5557fa; + _System__VarFromReal_qqrv(local_2d0); + local_40 = local_2d0; + local_44 = (char *)0x555813; + _System__LStrCat3_qqrv(&local_2d4,&DAT_00555c84,*puVar5); + pcVar6 = local_40; + local_40 = (char *)0x555829; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2d4,pcVar6); + iVar3 = iVar3 + -1; + } while (iVar3 != 0); + } + cVar1 = *local_c; + if (((cVar1 == 'B') || (cVar1 == 'D')) || (cVar1 == 'X')) { + local_40 = (char *)0x55585a; + _System__VarFromReal_qqrv(local_2e4); + local_40 = (char *)0x555874; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"NAGCD",local_2e4); + local_40 = (char *)0x555881; + _System__VarFromBool_qqrr14System_Variantxo(local_2f4,1); + local_40 = (char *)0x55589b; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555ca4,local_2f4); + local_40 = (char *)0x5558a8; + _System__VarFromBool_qqrr14System_Variantxo(local_304,1); + local_40 = (char *)0x5558c2; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"BCONT",local_304); + local_40 = (char *)0x5558d3; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString + (local_314,*(undefined4 *)(param_4 + -0x11c)); + local_40 = (char *)0x5558ed; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),"IFORM",local_314); + local_40 = "BDCODE=\""; + local_44 = local_8; + uStack_48 = 0x5ce4; + uStack_46 = 0x55; + iStack_4c = 0x55590a; + _System__LStrCatN_qqrv(&local_318,3); + iStack_4c = 0x55591e; + _Apodset_TApolloTable_Query_qqrx17System_AnsiString + (*(undefined4 *)(param_4 + -0x274),local_318); + iStack_4c = 0x555934; + _System__FillChar_qqrpvic(*(int *)PTR_DAT_005e5e84 + 0x2c,4,0); + iStack_4c = 0x555942; + iStack_4c = _Apodset_TApolloTable_Count_qqrv(*(undefined4 *)(param_4 + -0x274)); + *(int *)(param_4 + -0x80) = iStack_4c; + iStack_4c = iStack_4c + 1; + puStack_50 = (undefined1 *)0x555966; + _System__DynArraySetLength_qqrv(*(int *)PTR_DAT_005e5e84 + 0x2c,&DAT_004226a4,1); + iStack_4c = 1; + puStack_50 = (undefined1 *)0xffffffff; + local_54 = 0xffffffff; + uStack_58 = *(undefined4 *)(*(int *)PTR_DAT_005e5e84 + 0x2c); + uStack_5c = 0x5986; + uStack_5a = 0x55; + local_3c = (char *)_System__DynArrayHigh_qqrv(uStack_58); + local_40 = (char *)0x555999; + FUN_0043d104(*(undefined4 *)(param_4 + -0x274),1,0); + local_40 = param_4; + local_44 = (char *)0x5559a2; + FUN_005544b0(); + } + local_40 = (char *)0x5559b1; + _System__FillChar_qqrpvic(pcVar4,0x270,0); + local_40 = (char *)0x5559c1; + _System__LStrCat_qqrv(param_4 + -0x280,local_8); + local_40 = (char *)0x5559d4; + _System__LStrCat_qqrv(param_4 + -0x288,local_c); + } + else { + local_34._0_2_ = 0x507b; + local_34._2_2_ = 0x55; + _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c)); + local_34 = &local_98; + local_38 = (char *)0x555093; + uVar2 = _System__LStrPos_qqrv(local_8,*(undefined4 *)(param_4 + -0x280)); + local_38 = (char *)0x5550a8; + _System__LStrCopy_qqrv(*(undefined4 *)(param_4 + -0x288),uVar2,6); + local_38 = (char *)0x5550b9; + _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_94,local_98); + local_38 = (char *)0x5550d2; + _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant + (*(undefined4 *)(param_4 + -0x27c),"BDCODE1",local_94); + } + } + } + pcVar4 = local_20; + *in_FS_OFFSET = local_28; + local_20 = &LAB_00555af2; + local_24 = (char *)0x5559ef; + _System__LStrClr_qqrpv(&local_318,local_28,pcVar4); + local_24 = (char *)0x555a05; + _System__FinalizeArray_qqrpvt1ui(local_314,__xp_14System_Variant_exref,4); + local_24 = (char *)0x555a10; + _System__LStrClr_qqrpv(&local_2d4); + local_24 = (char *)0x555a1b; + _System__VarClr_qqrr14System_Variant(local_2d0); + local_24 = (char *)0x555a26; + _System__LStrClr_qqrpv(&local_2c0); + local_24 = (char *)0x555a31; + _System__VarClr_qqrr14System_Variant(local_2bc); + local_24 = (char *)0x555a3c; + _System__LStrClr_qqrpv(&local_2ac); + local_24 = (char *)0x555a47; + _System__VarClr_qqrr14System_Variant(local_2a8); + local_24 = (char *)0x555a52; + _System__LStrClr_qqrpv(&local_298); + local_24 = (char *)0x555a68; + _System__FinalizeArray_qqrpvt1ui(local_294,__xp_14System_Variant_exref,7); + local_24 = (char *)0x555a73; + _System__LStrClr_qqrpv(&local_224); + local_24 = (char *)0x555a89; + _System__FinalizeArray_qqrpvt1ui(local_220,__xp_14System_Variant_exref,7); + local_24 = (char *)0x555a94; + _System__VarClr_qqrr14System_Variant(local_b0); + local_24 = (char *)0x555aa4; + _System__LStrArrayClr_qqrpvi(&local_a0,3); + local_24 = (char *)0x555aba; + _System__FinalizeArray_qqrpvt1ui(local_94,__xp_14System_Variant_exref,5); + local_24 = (char *)0x555ac7; + _System__LStrArrayClr_qqrpvi(&local_44,2); + local_24 = (char *)0x555ada; + _System__FinalizeArray_qqrpvt1ui(&local_3c,__xp_14System_Variant_exref,3); + local_24 = (char *)0x555ae7; + _System__LStrArrayClr_qqrpvi(&local_c,2); + return; +} + + diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/boq_dec1.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/boq_dec1.json new file mode 100644 index 000000000..ca7c7bbb7 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/boq_dec1.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_b9e9817efa78ef47a944908abf53f42d3f0a4bcbe03a8c4f3a2dcd88995592e4\",\"subject\":{\"name\":\"ST_Boq.CPM\",\"digest\":{\"sha256\":\"180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.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\":[\"0x456504\",\"0x4da7a8\"]},\"raw_result\":null,\"normalized_result\":{\"items\":[{\"address\":\"0x456504\",\"procedure\":{\"status\":\"unknown\",\"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_address\",\"issues\":[{\"path\":[],\"reason\":\"invalid_value\",\"message\":\"No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\"}],\"diagnostics\":{\"target_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"target_sha256\":\"180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3\",\"target_admission\":{\"source\":{\"requestedPath\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"7b6e1100000015000000000000000000\",\"size\":2119168,\"directory\":false},\"snapshot\":{\"requestedPath\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"859b000000006c000000000000000000\",\"size\":2119168,\"directory\":false}},\"transport\":\"authenticated-loopback-tcp\",\"provider_version\":\"12.1.4\",\"profile_digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\",\"run_id\":\"3e45f797-d318-4ff4-91f1-cbc264c57e88\",\"runtime_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\",\"endpoint_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\bridge-endpoint.json\",\"project_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\",\"ghidra_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log\",\"script_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\script.log\",\"process_id\":18804,\"launch_support\":[{\"mode\":\"-envvars\",\"stderr\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log (LoggingInitialization) \\r\\nINFO Loading user preferences: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\preferences (Preferences) \\r\\nINFO Searching for classes... (ClassSearcher) \\r\\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\fscache2 (FileCacheMaintenanceDaemon) \\r\\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \\r\\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO Creating project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (DefaultProject) \\r\\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \\r\\nINFO project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\hhctrl.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library IMM32.DLL...\\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winmm.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 IMM32.DLL\\nApplying cached symbols from SHELL32.DLL\\nApplying cached symbols from WINMM.DLL\\nApplying cached symbols from HHCTRL.OCX\\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\\n [SHELL32.DLL] -> not found in project\\n [REALGRID6.BPL] -> not found in project\\n [REALGRIDDB6.BPL] -> not found in project\\n [DBRTL60.BPL] -> not found in project\\n [DCLHRP60.BPL] -> not found in project\\n [VCLJPG60.BPL] -> not found in project\\n [VCLDB60.BPL] -> not found in project\\n [APOLLO5D6.BPL] -> not found in project\\n [VCLX60.BPL] -> not found in project\\n [VCLSMP60.BPL] -> not found in project\\n [REALGRIDEX6.BPL] -> not found in project\\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \\r\\nINFO Packed database cache: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\packed-db-cache (PackedDatabaseCache) \\r\\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \\r\\nINFO -----------------------------------------------------\\n ASCII Strings 0.631 secs\\n Apply Data Archives 1.080 secs\\n Call Convention ID 0.001 secs\\n Call-Fixup Installer 0.048 secs\\n Create Address Tables 0.362 secs\\n Create Address Tables - One Time 1.130 secs\\n Create Function 0.621 secs\\n Data Reference 1.577 secs\\n Decompiler Switch Analysis 137.943 secs\\n Demangler GNU 0.264 secs\\n Demangler Microsoft 0.054 secs\\n Disassemble 1.541 secs\\n Disassemble Entry Points 0.778 secs\\n Embedded Media 0.042 secs\\n External Entry References 0.000 secs\\n Function ID 1.360 secs\\n Function Start Search 0.063 secs\\n Function Start Search After Code 0.060 secs\\n Non-Returning Functions - Discovered 0.560 secs\\n Non-Returning Functions - Known 0.010 secs\\n PDB Universal 0.001 secs\\n Reference 1.965 secs\\n Scalar Operand References 1.896 secs\\n Shared Return Calls 0.299 secs\\n Stack 7.577 secs\\n Subroutine References 1.488 secs\\n Subroutine References - One Time 0.001 secs\\n WindowsResourceReference 6.138 secs\\n X86 Function Callee Purge 0.340 secs\\n x86 Constant Reference Analyzer 8.333 secs\\n-----------------------------------------------------\\n Total Time 176 secs\\n-----------------------------------------------------\\n (AutoAnalysisManager) \\r\\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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\":17815,\"retained_bytes\":17815},\"stderr\":{\"text\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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\":\"No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\",\"code\":\"not_found\"},\"failure_kind\":\"remote\",\"failure_message\":\"No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\",\"remote_code\":\"not_found\",\"remote_message\":\"No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\"}}}},\"status\":\"error\",\"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 0x456504 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_Boq.CPM\",\"target_sha256\":\"180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3\",\"target_admission\":{\"source\":{\"requestedPath\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"7b6e1100000015000000000000000000\",\"size\":2119168,\"directory\":false},\"snapshot\":{\"requestedPath\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"859b000000006c000000000000000000\",\"size\":2119168,\"directory\":false}},\"transport\":\"authenticated-loopback-tcp\",\"provider_version\":\"12.1.4\",\"profile_digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\",\"run_id\":\"3e45f797-d318-4ff4-91f1-cbc264c57e88\",\"runtime_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\",\"endpoint_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\bridge-endpoint.json\",\"project_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\",\"ghidra_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log\",\"script_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\script.log\",\"process_id\":18804,\"launch_support\":[{\"mode\":\"-envvars\",\"stderr\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log (LoggingInitialization) \\r\\nINFO Loading user preferences: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\preferences (Preferences) \\r\\nINFO Searching for classes... (ClassSearcher) \\r\\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\fscache2 (FileCacheMaintenanceDaemon) \\r\\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \\r\\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO Creating project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (DefaultProject) \\r\\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \\r\\nINFO project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\hhctrl.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library IMM32.DLL...\\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winmm.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 IMM32.DLL\\nApplying cached symbols from SHELL32.DLL\\nApplying cached symbols from WINMM.DLL\\nApplying cached symbols from HHCTRL.OCX\\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\\n [SHELL32.DLL] -> not found in project\\n [REALGRID6.BPL] -> not found in project\\n [REALGRIDDB6.BPL] -> not found in project\\n [DBRTL60.BPL] -> not found in project\\n [DCLHRP60.BPL] -> not found in project\\n [VCLJPG60.BPL] -> not found in project\\n [VCLDB60.BPL] -> not found in project\\n [APOLLO5D6.BPL] -> not found in project\\n [VCLX60.BPL] -> not found in project\\n [VCLSMP60.BPL] -> not found in project\\n [REALGRIDEX6.BPL] -> not found in project\\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \\r\\nINFO Packed database cache: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\packed-db-cache (PackedDatabaseCache) \\r\\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \\r\\nINFO -----------------------------------------------------\\n ASCII Strings 0.631 secs\\n Apply Data Archives 1.080 secs\\n Call Convention ID 0.001 secs\\n Call-Fixup Installer 0.048 secs\\n Create Address Tables 0.362 secs\\n Create Address Tables - One Time 1.130 secs\\n Create Function 0.621 secs\\n Data Reference 1.577 secs\\n Decompiler Switch Analysis 137.943 secs\\n Demangler GNU 0.264 secs\\n Demangler Microsoft 0.054 secs\\n Disassemble 1.541 secs\\n Disassemble Entry Points 0.778 secs\\n Embedded Media 0.042 secs\\n External Entry References 0.000 secs\\n Function ID 1.360 secs\\n Function Start Search 0.063 secs\\n Function Start Search After Code 0.060 secs\\n Non-Returning Functions - Discovered 0.560 secs\\n Non-Returning Functions - Known 0.010 secs\\n PDB Universal 0.001 secs\\n Reference 1.965 secs\\n Scalar Operand References 1.896 secs\\n Shared Return Calls 0.299 secs\\n Stack 7.577 secs\\n Subroutine References 1.488 secs\\n Subroutine References - One Time 0.001 secs\\n WindowsResourceReference 6.138 secs\\n X86 Function Callee Purge 0.340 secs\\n x86 Constant Reference Analyzer 8.333 secs\\n-----------------------------------------------------\\n Total Time 176 secs\\n-----------------------------------------------------\\n (AutoAnalysisManager) \\r\\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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\":17815,\"retained_bytes\":17815},\"stderr\":{\"text\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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 0x456504 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 0x456504 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 0x456504 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.\"}}}},{\"address\":\"0x4da7a8\",\"procedure\":{\"status\":\"unknown\",\"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_address\",\"issues\":[{\"path\":[],\"reason\":\"invalid_value\",\"message\":\"No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\"}],\"diagnostics\":{\"target_path\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"target_sha256\":\"180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3\",\"target_admission\":{\"source\":{\"requestedPath\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"7b6e1100000015000000000000000000\",\"size\":2119168,\"directory\":false},\"snapshot\":{\"requestedPath\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"859b000000006c000000000000000000\",\"size\":2119168,\"directory\":false}},\"transport\":\"authenticated-loopback-tcp\",\"provider_version\":\"12.1.4\",\"profile_digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\",\"run_id\":\"3e45f797-d318-4ff4-91f1-cbc264c57e88\",\"runtime_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\",\"endpoint_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\bridge-endpoint.json\",\"project_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\",\"ghidra_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log\",\"script_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\script.log\",\"process_id\":18804,\"launch_support\":[{\"mode\":\"-envvars\",\"stderr\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log (LoggingInitialization) \\r\\nINFO Loading user preferences: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\preferences (Preferences) \\r\\nINFO Searching for classes... (ClassSearcher) \\r\\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\fscache2 (FileCacheMaintenanceDaemon) \\r\\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \\r\\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO Creating project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (DefaultProject) \\r\\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \\r\\nINFO project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\hhctrl.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library IMM32.DLL...\\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winmm.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 IMM32.DLL\\nApplying cached symbols from SHELL32.DLL\\nApplying cached symbols from WINMM.DLL\\nApplying cached symbols from HHCTRL.OCX\\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\\n [SHELL32.DLL] -> not found in project\\n [REALGRID6.BPL] -> not found in project\\n [REALGRIDDB6.BPL] -> not found in project\\n [DBRTL60.BPL] -> not found in project\\n [DCLHRP60.BPL] -> not found in project\\n [VCLJPG60.BPL] -> not found in project\\n [VCLDB60.BPL] -> not found in project\\n [APOLLO5D6.BPL] -> not found in project\\n [VCLX60.BPL] -> not found in project\\n [VCLSMP60.BPL] -> not found in project\\n [REALGRIDEX6.BPL] -> not found in project\\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \\r\\nINFO Packed database cache: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\packed-db-cache (PackedDatabaseCache) \\r\\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \\r\\nINFO -----------------------------------------------------\\n ASCII Strings 0.631 secs\\n Apply Data Archives 1.080 secs\\n Call Convention ID 0.001 secs\\n Call-Fixup Installer 0.048 secs\\n Create Address Tables 0.362 secs\\n Create Address Tables - One Time 1.130 secs\\n Create Function 0.621 secs\\n Data Reference 1.577 secs\\n Decompiler Switch Analysis 137.943 secs\\n Demangler GNU 0.264 secs\\n Demangler Microsoft 0.054 secs\\n Disassemble 1.541 secs\\n Disassemble Entry Points 0.778 secs\\n Embedded Media 0.042 secs\\n External Entry References 0.000 secs\\n Function ID 1.360 secs\\n Function Start Search 0.063 secs\\n Function Start Search After Code 0.060 secs\\n Non-Returning Functions - Discovered 0.560 secs\\n Non-Returning Functions - Known 0.010 secs\\n PDB Universal 0.001 secs\\n Reference 1.965 secs\\n Scalar Operand References 1.896 secs\\n Shared Return Calls 0.299 secs\\n Stack 7.577 secs\\n Subroutine References 1.488 secs\\n Subroutine References - One Time 0.001 secs\\n WindowsResourceReference 6.138 secs\\n X86 Function Callee Purge 0.340 secs\\n x86 Constant Reference Analyzer 8.333 secs\\n-----------------------------------------------------\\n Total Time 176 secs\\n-----------------------------------------------------\\n (AutoAnalysisManager) \\r\\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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\":17815,\"retained_bytes\":17815},\"stderr\":{\"text\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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\":\"No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\",\"code\":\"not_found\"},\"failure_kind\":\"remote\",\"failure_message\":\"No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\",\"remote_code\":\"not_found\",\"remote_message\":\"No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....\"}}}},\"status\":\"error\",\"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 0x4da7a8 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_Boq.CPM\",\"target_sha256\":\"180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3\",\"target_admission\":{\"source\":{\"requestedPath\":\"C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\경영정보(주)\\\\System\\\\ST_CPM\\\\ST_Boq.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"7b6e1100000015000000000000000000\",\"size\":2119168,\"directory\":false},\"snapshot\":{\"requestedPath\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\target-180707d0423d.CPM\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"859b000000006c000000000000000000\",\"size\":2119168,\"directory\":false}},\"transport\":\"authenticated-loopback-tcp\",\"provider_version\":\"12.1.4\",\"profile_digest\":\"e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b\",\"run_id\":\"3e45f797-d318-4ff4-91f1-cbc264c57e88\",\"runtime_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\",\"endpoint_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\bridge-endpoint.json\",\"project_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\",\"ghidra_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log\",\"script_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\script.log\",\"process_id\":18804,\"launch_support\":[{\"mode\":\"-envvars\",\"stderr\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\ghidra.log (LoggingInitialization) \\r\\nINFO Loading user preferences: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\preferences (Preferences) \\r\\nINFO Searching for classes... (ClassSearcher) \\r\\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\fscache2 (FileCacheMaintenanceDaemon) \\r\\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \\r\\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO Creating project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (DefaultProject) \\r\\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \\r\\nINFO project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\hhctrl.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library IMM32.DLL...\\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winmm.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 IMM32.DLL\\nApplying cached symbols from SHELL32.DLL\\nApplying cached symbols from WINMM.DLL\\nApplying cached symbols from HHCTRL.OCX\\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\\n [SHELL32.DLL] -> not found in project\\n [REALGRID6.BPL] -> not found in project\\n [REALGRIDDB6.BPL] -> not found in project\\n [DBRTL60.BPL] -> not found in project\\n [DCLHRP60.BPL] -> not found in project\\n [VCLJPG60.BPL] -> not found in project\\n [VCLDB60.BPL] -> not found in project\\n [APOLLO5D6.BPL] -> not found in project\\n [VCLX60.BPL] -> not found in project\\n [VCLSMP60.BPL] -> not found in project\\n [REALGRIDEX6.BPL] -> not found in project\\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \\r\\nINFO Packed database cache: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\cache\\\\umsan-ghidra\\\\packed-db-cache (PackedDatabaseCache) \\r\\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \\r\\nINFO -----------------------------------------------------\\n ASCII Strings 0.631 secs\\n Apply Data Archives 1.080 secs\\n Call Convention ID 0.001 secs\\n Call-Fixup Installer 0.048 secs\\n Create Address Tables 0.362 secs\\n Create Address Tables - One Time 1.130 secs\\n Create Function 0.621 secs\\n Data Reference 1.577 secs\\n Decompiler Switch Analysis 137.943 secs\\n Demangler GNU 0.264 secs\\n Demangler Microsoft 0.054 secs\\n Disassemble 1.541 secs\\n Disassemble Entry Points 0.778 secs\\n Embedded Media 0.042 secs\\n External Entry References 0.000 secs\\n Function ID 1.360 secs\\n Function Start Search 0.063 secs\\n Function Start Search After Code 0.060 secs\\n Non-Returning Functions - Discovered 0.560 secs\\n Non-Returning Functions - Known 0.010 secs\\n PDB Universal 0.001 secs\\n Reference 1.965 secs\\n Scalar Operand References 1.896 secs\\n Shared Return Calls 0.299 secs\\n Stack 7.577 secs\\n Subroutine References 1.488 secs\\n Subroutine References - One Time 0.001 secs\\n WindowsResourceReference 6.138 secs\\n X86 Function Callee Purge 0.340 secs\\n x86 Constant Reference Analyzer 8.333 secs\\n-----------------------------------------------------\\n Total Time 176 secs\\n-----------------------------------------------------\\n (AutoAnalysisManager) \\r\\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\\\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\":17815,\"retained_bytes\":17815},\"stderr\":{\"text\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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-6189a561a03d5942b6ba0f9e57fd39b0\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\\\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 0x4da7a8 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 0x4da7a8 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 0x4da7a8 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.\"}}}}],\"total\":2,\"succeeded\":0,\"failed\":2},\"confidence\":\"derived\",\"authority\":\"shipped-artifact\",\"environment\":null,\"limitations\":[\"Derived by an REA composed workflow.\"],\"relationship_coverage\":null,\"locations\":[],\"evidence_links\":[]}"}], "structuredContent": {"evidence_id": "ev_b9e9817efa78ef47a944908abf53f42d3f0a4bcbe03a8c4f3a2dcd88995592e4", "subject": {"name": "ST_Boq.CPM", "digest": {"sha256": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3"}, "local_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.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": ["0x456504", "0x4da7a8"]}, "raw_result": null, "normalized_result": {"items": [{"address": "0x456504", "procedure": {"status": "unknown", "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_address", "issues": [{"path": [], "reason": "invalid_value", "message": "No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x...."}], "diagnostics": {"target_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "target_sha256": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3", "target_admission": {"source": {"requestedPath": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "finalPath": "\\\\?\\C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "7b6e1100000015000000000000000000", "size": 2119168, "directory": false}, "snapshot": {"requestedPath": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "finalPath": "\\\\?\\C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "859b000000006c000000000000000000", "size": 2119168, "directory": false}}, "transport": "authenticated-loopback-tcp", "provider_version": "12.1.4", "profile_digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b", "run_id": "3e45f797-d318-4ff4-91f1-cbc264c57e88", "runtime_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0", "endpoint_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\bridge-endpoint.json", "project_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project", "ghidra_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log", "script_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\script.log", "process_id": 18804, "launch_support": [{"mode": "-envvars", "stderr": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log (LoggingInitialization) \r\nINFO Loading user preferences: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\preferences (Preferences) \r\nINFO Searching for classes... (ClassSearcher) \r\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\fscache2 (FileCacheMaintenanceDaemon) \r\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \r\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO Creating project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (DefaultProject) \r\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \r\nINFO project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\hhctrl.exports\nLibrary not saved to project.\n------------------------------------------------\n\nSearching 38 paths for library IMM32.DLL...\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\nCreated exports file: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\winmm.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 IMM32.DLL\nApplying cached symbols from SHELL32.DLL\nApplying cached symbols from WINMM.DLL\nApplying cached symbols from HHCTRL.OCX\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\n [SHELL32.DLL] -> not found in project\n [REALGRID6.BPL] -> not found in project\n [REALGRIDDB6.BPL] -> not found in project\n [DBRTL60.BPL] -> not found in project\n [DCLHRP60.BPL] -> not found in project\n [VCLJPG60.BPL] -> not found in project\n [VCLDB60.BPL] -> not found in project\n [APOLLO5D6.BPL] -> not found in project\n [VCLX60.BPL] -> not found in project\n [VCLSMP60.BPL] -> not found in project\n [REALGRIDEX6.BPL] -> not found in project\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \r\nINFO Packed database cache: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\packed-db-cache (PackedDatabaseCache) \r\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \r\nINFO -----------------------------------------------------\n ASCII Strings 0.631 secs\n Apply Data Archives 1.080 secs\n Call Convention ID 0.001 secs\n Call-Fixup Installer 0.048 secs\n Create Address Tables 0.362 secs\n Create Address Tables - One Time 1.130 secs\n Create Function 0.621 secs\n Data Reference 1.577 secs\n Decompiler Switch Analysis 137.943 secs\n Demangler GNU 0.264 secs\n Demangler Microsoft 0.054 secs\n Disassemble 1.541 secs\n Disassemble Entry Points 0.778 secs\n Embedded Media 0.042 secs\n External Entry References 0.000 secs\n Function ID 1.360 secs\n Function Start Search 0.063 secs\n Function Start Search After Code 0.060 secs\n Non-Returning Functions - Discovered 0.560 secs\n Non-Returning Functions - Known 0.010 secs\n PDB Universal 0.001 secs\n Reference 1.965 secs\n Scalar Operand References 1.896 secs\n Shared Return Calls 0.299 secs\n Stack 7.577 secs\n Subroutine References 1.488 secs\n Subroutine References - One Time 0.001 secs\n WindowsResourceReference 6.138 secs\n X86 Function Callee Purge 0.340 secs\n x86 Constant Reference Analyzer 8.333 secs\n-----------------------------------------------------\n Total Time 176 secs\n-----------------------------------------------------\n (AutoAnalysisManager) \r\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\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": 17815, "retained_bytes": 17815}, "stderr": {"text": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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": "No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....", "code": "not_found"}, "failure_kind": "remote", "failure_message": "No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....", "remote_code": "not_found", "remote_message": "No procedure exists at the requested address: 0x456504; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x...."}}}}, "status": "error", "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 0x456504 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_Boq.CPM", "target_sha256": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3", "target_admission": {"source": {"requestedPath": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "finalPath": "\\\\?\\C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "7b6e1100000015000000000000000000", "size": 2119168, "directory": false}, "snapshot": {"requestedPath": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "finalPath": "\\\\?\\C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "859b000000006c000000000000000000", "size": 2119168, "directory": false}}, "transport": "authenticated-loopback-tcp", "provider_version": "12.1.4", "profile_digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b", "run_id": "3e45f797-d318-4ff4-91f1-cbc264c57e88", "runtime_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0", "endpoint_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\bridge-endpoint.json", "project_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project", "ghidra_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log", "script_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\script.log", "process_id": 18804, "launch_support": [{"mode": "-envvars", "stderr": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log (LoggingInitialization) \r\nINFO Loading user preferences: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\preferences (Preferences) \r\nINFO Searching for classes... (ClassSearcher) \r\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\fscache2 (FileCacheMaintenanceDaemon) \r\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \r\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO Creating project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (DefaultProject) \r\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \r\nINFO project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\hhctrl.exports\nLibrary not saved to project.\n------------------------------------------------\n\nSearching 38 paths for library IMM32.DLL...\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\nCreated exports file: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\winmm.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 IMM32.DLL\nApplying cached symbols from SHELL32.DLL\nApplying cached symbols from WINMM.DLL\nApplying cached symbols from HHCTRL.OCX\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\n [SHELL32.DLL] -> not found in project\n [REALGRID6.BPL] -> not found in project\n [REALGRIDDB6.BPL] -> not found in project\n [DBRTL60.BPL] -> not found in project\n [DCLHRP60.BPL] -> not found in project\n [VCLJPG60.BPL] -> not found in project\n [VCLDB60.BPL] -> not found in project\n [APOLLO5D6.BPL] -> not found in project\n [VCLX60.BPL] -> not found in project\n [VCLSMP60.BPL] -> not found in project\n [REALGRIDEX6.BPL] -> not found in project\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \r\nINFO Packed database cache: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\packed-db-cache (PackedDatabaseCache) \r\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \r\nINFO -----------------------------------------------------\n ASCII Strings 0.631 secs\n Apply Data Archives 1.080 secs\n Call Convention ID 0.001 secs\n Call-Fixup Installer 0.048 secs\n Create Address Tables 0.362 secs\n Create Address Tables - One Time 1.130 secs\n Create Function 0.621 secs\n Data Reference 1.577 secs\n Decompiler Switch Analysis 137.943 secs\n Demangler GNU 0.264 secs\n Demangler Microsoft 0.054 secs\n Disassemble 1.541 secs\n Disassemble Entry Points 0.778 secs\n Embedded Media 0.042 secs\n External Entry References 0.000 secs\n Function ID 1.360 secs\n Function Start Search 0.063 secs\n Function Start Search After Code 0.060 secs\n Non-Returning Functions - Discovered 0.560 secs\n Non-Returning Functions - Known 0.010 secs\n PDB Universal 0.001 secs\n Reference 1.965 secs\n Scalar Operand References 1.896 secs\n Shared Return Calls 0.299 secs\n Stack 7.577 secs\n Subroutine References 1.488 secs\n Subroutine References - One Time 0.001 secs\n WindowsResourceReference 6.138 secs\n X86 Function Callee Purge 0.340 secs\n x86 Constant Reference Analyzer 8.333 secs\n-----------------------------------------------------\n Total Time 176 secs\n-----------------------------------------------------\n (AutoAnalysisManager) \r\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\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": 17815, "retained_bytes": 17815}, "stderr": {"text": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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 0x456504 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 0x456504 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 0x456504 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."}}}}, {"address": "0x4da7a8", "procedure": {"status": "unknown", "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_address", "issues": [{"path": [], "reason": "invalid_value", "message": "No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x...."}], "diagnostics": {"target_path": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "target_sha256": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3", "target_admission": {"source": {"requestedPath": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "finalPath": "\\\\?\\C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "7b6e1100000015000000000000000000", "size": 2119168, "directory": false}, "snapshot": {"requestedPath": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "finalPath": "\\\\?\\C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "859b000000006c000000000000000000", "size": 2119168, "directory": false}}, "transport": "authenticated-loopback-tcp", "provider_version": "12.1.4", "profile_digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b", "run_id": "3e45f797-d318-4ff4-91f1-cbc264c57e88", "runtime_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0", "endpoint_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\bridge-endpoint.json", "project_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project", "ghidra_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log", "script_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\script.log", "process_id": 18804, "launch_support": [{"mode": "-envvars", "stderr": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log (LoggingInitialization) \r\nINFO Loading user preferences: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\preferences (Preferences) \r\nINFO Searching for classes... (ClassSearcher) \r\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\fscache2 (FileCacheMaintenanceDaemon) \r\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \r\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO Creating project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (DefaultProject) \r\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \r\nINFO project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\hhctrl.exports\nLibrary not saved to project.\n------------------------------------------------\n\nSearching 38 paths for library IMM32.DLL...\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\nCreated exports file: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\winmm.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 IMM32.DLL\nApplying cached symbols from SHELL32.DLL\nApplying cached symbols from WINMM.DLL\nApplying cached symbols from HHCTRL.OCX\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\n [SHELL32.DLL] -> not found in project\n [REALGRID6.BPL] -> not found in project\n [REALGRIDDB6.BPL] -> not found in project\n [DBRTL60.BPL] -> not found in project\n [DCLHRP60.BPL] -> not found in project\n [VCLJPG60.BPL] -> not found in project\n [VCLDB60.BPL] -> not found in project\n [APOLLO5D6.BPL] -> not found in project\n [VCLX60.BPL] -> not found in project\n [VCLSMP60.BPL] -> not found in project\n [REALGRIDEX6.BPL] -> not found in project\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \r\nINFO Packed database cache: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\packed-db-cache (PackedDatabaseCache) \r\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \r\nINFO -----------------------------------------------------\n ASCII Strings 0.631 secs\n Apply Data Archives 1.080 secs\n Call Convention ID 0.001 secs\n Call-Fixup Installer 0.048 secs\n Create Address Tables 0.362 secs\n Create Address Tables - One Time 1.130 secs\n Create Function 0.621 secs\n Data Reference 1.577 secs\n Decompiler Switch Analysis 137.943 secs\n Demangler GNU 0.264 secs\n Demangler Microsoft 0.054 secs\n Disassemble 1.541 secs\n Disassemble Entry Points 0.778 secs\n Embedded Media 0.042 secs\n External Entry References 0.000 secs\n Function ID 1.360 secs\n Function Start Search 0.063 secs\n Function Start Search After Code 0.060 secs\n Non-Returning Functions - Discovered 0.560 secs\n Non-Returning Functions - Known 0.010 secs\n PDB Universal 0.001 secs\n Reference 1.965 secs\n Scalar Operand References 1.896 secs\n Shared Return Calls 0.299 secs\n Stack 7.577 secs\n Subroutine References 1.488 secs\n Subroutine References - One Time 0.001 secs\n WindowsResourceReference 6.138 secs\n X86 Function Callee Purge 0.340 secs\n x86 Constant Reference Analyzer 8.333 secs\n-----------------------------------------------------\n Total Time 176 secs\n-----------------------------------------------------\n (AutoAnalysisManager) \r\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\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": 17815, "retained_bytes": 17815}, "stderr": {"text": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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": "No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....", "code": "not_found"}, "failure_kind": "remote", "failure_message": "No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x....", "remote_code": "not_found", "remote_message": "No procedure exists at the requested address: 0x4da7a8; Ghidra image base: 0x400000. Choose an observed analysis address. CLI: rea search . --kind procedures --mode regex --provider ghidra --json; MCP: list_procedures. Inspect the loaded base and source mappings with CLI rea analyze --provider ghidra --json and rea inspect-native-load-image --provider ghidra --json, or MCP binary_overview and inspect_native_load_image. Repeat the original target options. For decompile, select source coordinates explicitly with --file-offset=0x... or MCP procedure file-offset:0x...."}}}}, "status": "error", "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 0x4da7a8 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_Boq.CPM", "target_sha256": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3", "target_admission": {"source": {"requestedPath": "C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "finalPath": "\\\\?\\C:\\경영정보(주)\\System\\ST_CPM\\ST_Boq.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "7b6e1100000015000000000000000000", "size": 2119168, "directory": false}, "snapshot": {"requestedPath": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "finalPath": "\\\\?\\C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\target-180707d0423d.CPM", "filesystem": "NTFS", "volumeSerial": "38ba30d4ba30907c", "fileId": "859b000000006c000000000000000000", "size": 2119168, "directory": false}}, "transport": "authenticated-loopback-tcp", "provider_version": "12.1.4", "profile_digest": "e4be421d1cb130970e81b108d97068b73c12565909b409a13178a5c07539573b", "run_id": "3e45f797-d318-4ff4-91f1-cbc264c57e88", "runtime_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0", "endpoint_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\bridge-endpoint.json", "project_root": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project", "ghidra_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log", "script_log_path": "C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\script.log", "process_id": 18804, "launch_support": [{"mode": "-envvars", "stderr": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\ghidra.log (LoggingInitialization) \r\nINFO Loading user preferences: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\preferences (Preferences) \r\nINFO Searching for classes... (ClassSearcher) \r\nINFO Class search complete (1374 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-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\fscache2 (FileCacheMaintenanceDaemon) \r\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \r\nINFO Headless startup complete (4143 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-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO Creating project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (DefaultProject) \r\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \r\nINFO project: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\project\\rea-project (HeadlessAnalyzer) \r\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 Additional info:\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.CPM?MD5=520e88eda75ce991fb68cddfee8e4283...\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\hhctrl.exports\nLibrary not saved to project.\n------------------------------------------------\n\nSearching 38 paths for library IMM32.DLL...\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\nCreated exports file: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\imm32.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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\config\\umsan-ghidra\\ghidra_12.1.4_PUBLIC\\symbols\\win32\\winmm.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 IMM32.DLL\nApplying cached symbols from SHELL32.DLL\nApplying cached symbols from WINMM.DLL\nApplying cached symbols from HHCTRL.OCX\nLinking the External Programs of 'target-180707d0423d.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 [IMM32.DLL] -> not found in project\n [SHELL32.DLL] -> not found in project\n [REALGRID6.BPL] -> not found in project\n [REALGRIDDB6.BPL] -> not found in project\n [DBRTL60.BPL] -> not found in project\n [DCLHRP60.BPL] -> not found in project\n [VCLJPG60.BPL] -> not found in project\n [VCLDB60.BPL] -> not found in project\n [APOLLO5D6.BPL] -> not found in project\n [VCLX60.BPL] -> not found in project\n [VCLSMP60.BPL] -> not found in project\n [REALGRIDEX6.BPL] -> not found in project\n [WINMM.DLL] -> 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-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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 0052d9c8 (PngDataType) \r\nINFO Packed database cache: C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\cache\\umsan-ghidra\\packed-db-cache (PackedDatabaseCache) \r\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \r\nINFO -----------------------------------------------------\n ASCII Strings 0.631 secs\n Apply Data Archives 1.080 secs\n Call Convention ID 0.001 secs\n Call-Fixup Installer 0.048 secs\n Create Address Tables 0.362 secs\n Create Address Tables - One Time 1.130 secs\n Create Function 0.621 secs\n Data Reference 1.577 secs\n Decompiler Switch Analysis 137.943 secs\n Demangler GNU 0.264 secs\n Demangler Microsoft 0.054 secs\n Disassemble 1.541 secs\n Disassemble Entry Points 0.778 secs\n Embedded Media 0.042 secs\n External Entry References 0.000 secs\n Function ID 1.360 secs\n Function Start Search 0.063 secs\n Function Start Search After Code 0.060 secs\n Non-Returning Functions - Discovered 0.560 secs\n Non-Returning Functions - Known 0.010 secs\n PDB Universal 0.001 secs\n Reference 1.965 secs\n Scalar Operand References 1.896 secs\n Shared Return Calls 0.299 secs\n Stack 7.577 secs\n Subroutine References 1.488 secs\n Subroutine References - One Time 0.001 secs\n WindowsResourceReference 6.138 secs\n X86 Function Callee Purge 0.340 secs\n x86 Constant Reference Analyzer 8.333 secs\n-----------------------------------------------------\n Total Time 176 secs\n-----------------------------------------------------\n (AutoAnalysisManager) \r\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0/target-180707d0423d.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-6189a561a03d5942b6ba0f9e57fd39b0\\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": 17815, "retained_bytes": 17815}, "stderr": {"text": "NOTE: Picked up JDK_JAVA_OPTIONS: \"-Duser.home=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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-6189a561a03d5942b6ba0f9e57fd39b0\\home\" \"-Djava.io.tmpdir=C:\\Users\\umsan\\AppData\\Local\\Temp\\rea-ghidra-6189a561a03d5942b6ba0f9e57fd39b0\\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 0x4da7a8 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 0x4da7a8 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 0x4da7a8 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."}}}}], "total": 2, "succeeded": 0, "failed": 2}, "confidence": "derived", "authority": "shipped-artifact", "environment": null, "limitations": ["Derived by an REA composed workflow."], "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 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/dpc_mroundup.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/dpc_mroundup.json new file mode 100644 index 000000000..3e3189137 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/dpc_mroundup.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_20fc29eeef8cdcd87391df8cec4423521e6a8a6f322cb2275fe6521d022ea9ce\",\"subject\":{\"name\":\"DP_Common.CPM\",\"digest\":{\"sha256\":\"5f55d301c6b2139816ff8832e46becb852c4f0a0c9b5da199371156b6aaf30e0\"},\"local_path\":\"C:\\\\경영정보(주)\\\\System\\\\DP_Common.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\":\"0x4547ac\"},\"raw_result\":{\"value\":\"\\r\\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\\r\\n\\r\\nvoid MROUNDUP(void)\\r\\n\\r\\n{\\r\\n float10 fVar1;\\r\\n undefined4 **ppuVar2;\\r\\n undefined2 uVar3;\\r\\n undefined2 uVar4;\\r\\n char cVar5;\\r\\n int *piVar6;\\r\\n int iVar7;\\r\\n undefined2 extraout_var;\\r\\n int iVar8;\\r\\n char *unaff_ESI;\\r\\n undefined4 *unaff_EDI;\\r\\n int iVar9;\\r\\n int *in_FS_OFFSET;\\r\\n unkbyte10 in_ST0;\\r\\n float10 fVar10;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n undefined4 in_stack_00000004;\\r\\n undefined4 in_stack_00000008;\\r\\n undefined2 in_stack_0000000c;\\r\\n uint in_stack_00000010;\\r\\n undefined4 **local_a8 [2];\\r\\n int local_a0;\\r\\n undefined4 local_9c;\\r\\n undefined4 local_98;\\r\\n undefined *local_90;\\r\\n undefined local_88 [16];\\r\\n int local_78;\\r\\n undefined4 local_74;\\r\\n undefined4 uStackY_70;\\r\\n undefined4 uStackY_6c;\\r\\n undefined4 **local_68;\\r\\n int local_60;\\r\\n undefined4 *local_5c;\\r\\n undefined4 *local_58;\\r\\n undefined *puVar11;\\r\\n char *pcVar12;\\r\\n int local_48;\\r\\n char *local_44;\\r\\n undefined4 local_40;\\r\\n undefined2 local_3c;\\r\\n undefined2 uStack_3a;\\r\\n undefined *puStack_38;\\r\\n char *pcStack_34;\\r\\n undefined4 ***local_30;\\r\\n undefined2 local_2c;\\r\\n undefined2 uStack_2a;\\r\\n int iStack_28;\\r\\n undefined2 uStack_24;\\r\\n undefined2 uStack_22;\\r\\n undefined4 local_20;\\r\\n \\r\\n /* 0x547ac 56 MROUNDUP */\\r\\n local_20 = &stack0xfffffffc;\\r\\n iVar8 = 0x14;\\r\\n do {\\r\\n iVar8 = iVar8 + -1;\\r\\n } while (iVar8 != 0);\\r\\n uStack_24 = 0x4cff;\\r\\n uStack_22 = 0x45;\\r\\n iStack_28 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = (int)&iStack_28;\\r\\n fVar10 = ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)));\\r\\n pcStack_34 = SUB104(fVar10,0);\\r\\n local_30 = (undefined4 ***)((unkuint10)fVar10 >> 0x20);\\r\\n local_2c = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n puStack_38 = (undefined *)0x4547e6;\\r\\n FUN_0040a19c(\\\"0.##########\\\",(int *)&stack0xffffffe8);\\r\\n local_2c = SUB42(unaff_ESI,0);\\r\\n uVar3 = local_2c;\\r\\n uStack_2a = (undefined2)((uint)unaff_ESI >> 0x10);\\r\\n uVar4 = uStack_2a;\\r\\n local_30 = &local_30;\\r\\n pcStack_34 = (char *)0x4547f3;\\r\\n EXTTOSTR();\\r\\n pcStack_34 = (char *)0x4547fe;\\r\\n FUN_004045bc((int *)&stack0xffffffe8,(int)local_30);\\r\\n if (_DAT_00454d2c <\\r\\n (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004))) {\\r\\n pcStack_34 = (char *)0x45481e;\\r\\n FUN_00404828((int *)&pcStack_34,(undefined4 *)unaff_ESI,(undefined4 *)&DAT_00454d40);\\r\\n pcVar12 = pcStack_34;\\r\\n pcStack_34 = (char *)0x45482d;\\r\\n piVar6 = FUN_0040b1d0((int *)&DAT_00407b00,'\\\\x01',(undefined4 *)pcVar12);\\r\\n pcStack_34 = (char *)0x454832;\\r\\n FUN_00403efc((int)piVar6);\\r\\n }\\r\\n pcStack_34 = (char *)0x45483f;\\r\\n iVar8 = FUN_00404b18(\\\".\\\",unaff_ESI);\\r\\n if (0 < iVar8) {\\r\\n pcStack_34 = (char *)0x45484d;\\r\\n iVar7 = FUN_004047dc((int)unaff_ESI);\\r\\n if (iVar7 - iVar8 < 0xb) {\\r\\n pcStack_34 = (char *)0x45485c;\\r\\n iVar7 = FUN_004047dc((int)unaff_ESI);\\r\\n if (0 < iVar7) {\\r\\n iVar9 = 1;\\r\\n do {\\r\\n if ((byte)(unaff_ESI[iVar9 + -1] - 0x31U) < 9) {\\r\\n pcStack_34 = (char *)0x45487c;\\r\\n iVar7 = FUN_004047dc((int)unaff_ESI);\\r\\n if (iVar7 - iVar9 < 0xb) {\\r\\n iVar8 = 0;\\r\\n }\\r\\n break;\\r\\n }\\r\\n iVar9 = iVar9 + 1;\\r\\n iVar7 = iVar7 + -1;\\r\\n } while (iVar7 != 0);\\r\\n }\\r\\n }\\r\\n }\\r\\n if (iVar8 == 0) {\\r\\n local_2c = 0;\\r\\n uStack_2a = 0;\\r\\n iStack_28 = 0;\\r\\n uStack_24 = 0;\\r\\n if (-1 < (int)in_stack_00000010) {\\r\\n puStack_38 = &DAT_00454d74;\\r\\n local_3c = 0x48c6;\\r\\n uStack_3a = 0x45;\\r\\n pcStack_34 = unaff_ESI;\\r\\n cVar5 = MPOS();\\r\\n if (cVar5 == '\\\\0') goto LAB_00454cb4;\\r\\n }\\r\\n }\\r\\n else {\\r\\n in_ST1 = in_ST2;\\r\\n if (iVar8 - 2U < 8) {\\r\\n pcStack_34 = (char *)0x4002;\\r\\n local_3c = 0;\\r\\n uStack_3a = 0;\\r\\n puStack_38 = (undefined *)(iVar8 + -0xd);\\r\\n fVar10 = (float10)(int)puStack_38;\\r\\n local_48 = SUB104(fVar10,0);\\r\\n local_44 = (char *)((unkuint10)fVar10 >> 0x20);\\r\\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n FUN_0042983c();\\r\\n local_2c = (undefined2)in_ST0;\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\\r\\n }\\r\\n else if (iVar8 - 10U < 4) {\\r\\n pcStack_34 = (char *)0x4002;\\r\\n puStack_38 = (undefined *)0xa0000000;\\r\\n local_3c = 0;\\r\\n uStack_3a = 0;\\r\\n local_40._0_2_ = 0xc001;\\r\\n local_40._2_2_ = 0;\\r\\n local_44 = (char *)0x80000000;\\r\\n local_48 = 0;\\r\\n FUN_0042983c();\\r\\n local_2c = (undefined2)in_ST0;\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\\r\\n }\\r\\n else {\\r\\n pcStack_34 = (char *)0x4002;\\r\\n puStack_38 = (undefined *)0xa0000000;\\r\\n local_3c = 0;\\r\\n uStack_3a = 0;\\r\\n local_40._0_2_ = 0xc002;\\r\\n local_40._2_2_ = 0;\\r\\n local_44 = (char *)0x90000000;\\r\\n local_48 = 0;\\r\\n FUN_0042983c();\\r\\n local_2c = (undefined2)in_ST0;\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\\r\\n }\\r\\n }\\r\\n if ((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)) !=\\r\\n (float10)0.0) {\\r\\n fVar10 = (float10)CONCAT28(uStack_24,CONCAT44(iStack_28,CONCAT22(uStack_2a,local_2c))) +\\r\\n ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)))\\r\\n ;\\r\\n local_44 = SUB104(fVar10,0);\\r\\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x20);\\r\\n local_40._2_2_ = (undefined2)((unkuint10)fVar10 >> 0x30);\\r\\n local_3c = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n local_48 = 0x45497e;\\r\\n FUN_0040a19c(\\\"0.0#########\\\",(int *)&stack0xffffffe8);\\r\\n local_40 = (undefined4 *)&local_3c;\\r\\n local_44 = (char *)0x45498b;\\r\\n local_3c = uVar3;\\r\\n uStack_3a = uVar4;\\r\\n EXTTOSTR();\\r\\n local_44 = (char *)0x454996;\\r\\n FUN_004045bc((int *)&stack0xffffffe8,CONCAT22(uStack_3a,local_3c));\\r\\n local_44 = unaff_ESI;\\r\\n cVar5 = MPOS();\\r\\n if (cVar5 == '\\\\0') {\\r\\n FUN_004047e4((int *)&stack0xffffffe8,(undefined4 *)&DAT_00454d9c);\\r\\n }\\r\\n while( true ) {\\r\\n iVar8 = FUN_00404b18(\\\",\\\",unaff_ESI);\\r\\n if (iVar8 < 1) break;\\r\\n iVar8 = FUN_00404b18(\\\",\\\",unaff_ESI);\\r\\n FUN_00404a74((int *)&stack0xffffffe8,iVar8,1);\\r\\n }\\r\\n iVar8 = FUN_00404b18(\\\".\\\",unaff_ESI);\\r\\n if (in_stack_00000010 == 0) {\\r\\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,10,&local_40);\\r\\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,local_40);\\r\\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,(int *)&stack0xffffffe8);\\r\\n iVar7 = 0;\\r\\n }\\r\\n else if ((int)in_stack_00000010 < 1) {\\r\\n iVar7 = (in_stack_00000010 ^ (int)in_stack_00000010 >> 0x1f) -\\r\\n ((int)in_stack_00000010 >> 0x1f);\\r\\n if (iVar7 < iVar8 + -1) {\\r\\n FUN_00404524((int *)&stack0xffffffe4);\\r\\n iVar9 = iVar7;\\r\\n if (0 < iVar7) {\\r\\n do {\\r\\n FUN_00404abc((undefined4 *)&DAT_00454dc0,(int *)&stack0xffffffe4,1);\\r\\n iVar9 = iVar9 + -1;\\r\\n } while (iVar9 != 0);\\r\\n }\\r\\n puVar11 = &DAT_00454d74;\\r\\n local_58 = (undefined4 *)&stack0xffffffac;\\r\\n local_5c = (undefined4 *)0x454b0f;\\r\\n pcVar12 = unaff_ESI;\\r\\n LEFT_STR();\\r\\n local_5c = (undefined4 *)&stack0xffffffac;\\r\\n piVar6 = (int *)&DAT_00454d74;\\r\\n local_68 = &local_58;\\r\\n uStackY_6c._0_2_ = 0x4b25;\\r\\n uStackY_6c._2_2_ = 0x45;\\r\\n RIGHT_STR();\\r\\n ppuVar2 = local_68;\\r\\n local_68 = (undefined4 **)0x454b2e;\\r\\n FUN_004047e4((int *)ppuVar2,local_58);\\r\\n local_68 = (undefined4 **)0x454b42;\\r\\n FUN_00404a34((int)puVar11,iVar8 - iVar7,10,piVar6);\\r\\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)pcVar12);\\r\\n local_68 = (undefined4 **)0x454b66;\\r\\n FUN_00404a34((int)unaff_ESI,1,(iVar8 - iVar7) - 1,(int *)&local_5c);\\r\\n FUN_00404828((int *)&stack0xffffffe8,local_5c,unaff_EDI);\\r\\n }\\r\\n else {\\r\\n FUN_00404a34(0x454dcc,1,(iVar7 - iVar8) - 1,&local_60);\\r\\n local_58 = (undefined4 *)&DAT_00454d74;\\r\\n local_5c = (undefined4 *)&stack0xffffff9c;\\r\\n local_60 = 0x454ba9;\\r\\n LEFT_STR();\\r\\n local_68 = (undefined4 **)&DAT_00454d74;\\r\\n uStackY_6c = &local_68;\\r\\n uStackY_70 = 0x454bbe;\\r\\n RIGHT_STR();\\r\\n local_74 = 0x454bce;\\r\\n FUN_0040489c(&local_20,4);\\r\\n local_74 = 0x454bdb;\\r\\n FUN_004045bc((int *)&stack0xffffffe8,0x454dc0);\\r\\n }\\r\\n }\\r\\n else {\\r\\n FUN_00404a34((int)unaff_ESI,in_stack_00000010 + iVar8 + 1,10,(int *)&local_44);\\r\\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)local_44);\\r\\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,&local_48);\\r\\n local_58 = (undefined4 *)0x454aa4;\\r\\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,in_stack_00000010,(int *)&stack0xffffffb4);\\r\\n local_58 = (undefined4 *)0x454ab4;\\r\\n FUN_0040489c((int *)&stack0xffffffe8,3);\\r\\n iVar7 = -in_stack_00000010;\\r\\n }\\r\\n FUN_0040a1f4(local_20);\\r\\n local_20._0_2_ = 0x4bf2;\\r\\n local_20._2_2_ = 0x45;\\r\\n puStack_38 = (undefined *)FUN_004297f4();\\r\\n fVar10 = (float10)(int)puStack_38;\\r\\n local_74 = SUB104(fVar10,0);\\r\\n uStackY_70 = (undefined4)((unkuint10)fVar10 >> 0x20);\\r\\n uStackY_6c._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n fVar10 = (float10)iVar7;\\r\\n iStack_28 = SUB104(fVar10,0);\\r\\n uStack_24 = (undefined2)((unkuint10)fVar10 >> 0x20);\\r\\n uStack_22 = (undefined2)((unkuint10)fVar10 >> 0x30);\\r\\n local_20._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n local_2c = 0x4c1a;\\r\\n uStack_2a = 0x45;\\r\\n local_78 = iVar7;\\r\\n FUN_0042983c();\\r\\n in_ST1 = (float10)CONCAT28((undefined2)uStackY_6c,CONCAT44(uStackY_70,local_74)) * in_ST1;\\r\\n local_2c = SUB102(in_ST1,0);\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST1 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST1 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST1 >> 0x40);\\r\\n FUN_0040a1f4((undefined *)0xa0000000);\\r\\n FUN_00405520();\\r\\n local_20._0_2_ = (undefined2)local_98;\\r\\n local_20._2_2_ = (undefined2)((uint)local_98 >> 0x10);\\r\\n uStack_24 = 0x4c61;\\r\\n uStack_22 = 0x45;\\r\\n FUN_0040a1f4(local_90);\\r\\n uStack_24 = 0x4c71;\\r\\n uStack_22 = 0x45;\\r\\n FUN_00405520();\\r\\n uStack_24 = (undefined2)local_9c;\\r\\n uStack_22 = (undefined2)((uint)local_9c >> 0x10);\\r\\n iStack_28 = local_a0;\\r\\n local_2c = SUB42(local_a8[1],0);\\r\\n uStack_2a = (undefined2)((uint)local_a8[1] >> 0x10);\\r\\n local_30 = (undefined4 ***)local_a8[0];\\r\\n fVar1 = (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004));\\r\\n fVar10 = (float10)0.0;\\r\\n pcStack_34 = (char *)CONCAT31((int3)(CONCAT22(extraout_var,\\r\\n (ushort)(fVar1 < fVar10) << 8 |\\r\\n (ushort)(NAN(fVar1) || NAN(fVar10)) << 10 |\\r\\n (ushort)(fVar1 == fVar10) << 0xe) >> 8),\\r\\n fVar1 < fVar10 == 0 && (fVar1 == fVar10) == 0);\\r\\n puStack_38 = local_88;\\r\\n local_3c = 0x4ca5;\\r\\n uStack_3a = 0x45;\\r\\n IIF();\\r\\n local_3c = 0x4cb0;\\r\\n uStack_3a = 0x45;\\r\\n FUN_004054c4();\\r\\n }\\r\\nLAB_00454cb4:\\r\\n *in_FS_OFFSET = (int)puStack_38;\\r\\n local_30 = (undefined4 ***)&LAB_00454d06;\\r\\n pcStack_34 = (char *)0x454cd7;\\r\\n FUN_00405018((int *)local_a8,&DAT_004010a0,3);\\r\\n pcStack_34 = (char *)0x454ce4;\\r\\n FUN_00404548((int *)&local_68,0xc);\\r\\n pcStack_34 = (char *)0x454cf1;\\r\\n FUN_00404548((int *)&pcStack_34,2);\\r\\n pcStack_34 = (char *)0x454cfe;\\r\\n FUN_00404548(&local_20,3);\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"limitations\":[\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4547ca (push 0x454cff followed by fs-segment stack chaining); handler 0x454cff 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 MROUNDUP(void)\\r\\n\\r\\n{\\r\\n float10 fVar1;\\r\\n undefined4 **ppuVar2;\\r\\n undefined2 uVar3;\\r\\n undefined2 uVar4;\\r\\n char cVar5;\\r\\n int *piVar6;\\r\\n int iVar7;\\r\\n undefined2 extraout_var;\\r\\n int iVar8;\\r\\n char *unaff_ESI;\\r\\n undefined4 *unaff_EDI;\\r\\n int iVar9;\\r\\n int *in_FS_OFFSET;\\r\\n unkbyte10 in_ST0;\\r\\n float10 fVar10;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n undefined4 in_stack_00000004;\\r\\n undefined4 in_stack_00000008;\\r\\n undefined2 in_stack_0000000c;\\r\\n uint in_stack_00000010;\\r\\n undefined4 **local_a8 [2];\\r\\n int local_a0;\\r\\n undefined4 local_9c;\\r\\n undefined4 local_98;\\r\\n undefined *local_90;\\r\\n undefined local_88 [16];\\r\\n int local_78;\\r\\n undefined4 local_74;\\r\\n undefined4 uStackY_70;\\r\\n undefined4 uStackY_6c;\\r\\n undefined4 **local_68;\\r\\n int local_60;\\r\\n undefined4 *local_5c;\\r\\n undefined4 *local_58;\\r\\n undefined *puVar11;\\r\\n char *pcVar12;\\r\\n int local_48;\\r\\n char *local_44;\\r\\n undefined4 local_40;\\r\\n undefined2 local_3c;\\r\\n undefined2 uStack_3a;\\r\\n undefined *puStack_38;\\r\\n char *pcStack_34;\\r\\n undefined4 ***local_30;\\r\\n undefined2 local_2c;\\r\\n undefined2 uStack_2a;\\r\\n int iStack_28;\\r\\n undefined2 uStack_24;\\r\\n undefined2 uStack_22;\\r\\n undefined4 local_20;\\r\\n \\r\\n /* 0x547ac 56 MROUNDUP */\\r\\n local_20 = &stack0xfffffffc;\\r\\n iVar8 = 0x14;\\r\\n do {\\r\\n iVar8 = iVar8 + -1;\\r\\n } while (iVar8 != 0);\\r\\n uStack_24 = 0x4cff;\\r\\n uStack_22 = 0x45;\\r\\n iStack_28 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = (int)&iStack_28;\\r\\n fVar10 = ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)));\\r\\n pcStack_34 = SUB104(fVar10,0);\\r\\n local_30 = (undefined4 ***)((unkuint10)fVar10 >> 0x20);\\r\\n local_2c = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n puStack_38 = (undefined *)0x4547e6;\\r\\n FUN_0040a19c(\\\"0.##########\\\",(int *)&stack0xffffffe8);\\r\\n local_2c = SUB42(unaff_ESI,0);\\r\\n uVar3 = local_2c;\\r\\n uStack_2a = (undefined2)((uint)unaff_ESI >> 0x10);\\r\\n uVar4 = uStack_2a;\\r\\n local_30 = &local_30;\\r\\n pcStack_34 = (char *)0x4547f3;\\r\\n EXTTOSTR();\\r\\n pcStack_34 = (char *)0x4547fe;\\r\\n FUN_004045bc((int *)&stack0xffffffe8,(int)local_30);\\r\\n if (_DAT_00454d2c <\\r\\n (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004))) {\\r\\n pcStack_34 = (char *)0x45481e;\\r\\n FUN_00404828((int *)&pcStack_34,(undefined4 *)unaff_ESI,(undefined4 *)&DAT_00454d40);\\r\\n pcVar12 = pcStack_34;\\r\\n pcStack_34 = (char *)0x45482d;\\r\\n piVar6 = FUN_0040b1d0((int *)&DAT_00407b00,'\\\\x01',(undefined4 *)pcVar12);\\r\\n pcStack_34 = (char *)0x454832;\\r\\n FUN_00403efc((int)piVar6);\\r\\n }\\r\\n pcStack_34 = (char *)0x45483f;\\r\\n iVar8 = FUN_00404b18(\\\".\\\",unaff_ESI);\\r\\n if (0 < iVar8) {\\r\\n pcStack_34 = (char *)0x45484d;\\r\\n iVar7 = FUN_004047dc((int)unaff_ESI);\\r\\n if (iVar7 - iVar8 < 0xb) {\\r\\n pcStack_34 = (char *)0x45485c;\\r\\n iVar7 = FUN_004047dc((int)unaff_ESI);\\r\\n if (0 < iVar7) {\\r\\n iVar9 = 1;\\r\\n do {\\r\\n if ((byte)(unaff_ESI[iVar9 + -1] - 0x31U) < 9) {\\r\\n pcStack_34 = (char *)0x45487c;\\r\\n iVar7 = FUN_004047dc((int)unaff_ESI);\\r\\n if (iVar7 - iVar9 < 0xb) {\\r\\n iVar8 = 0;\\r\\n }\\r\\n break;\\r\\n }\\r\\n iVar9 = iVar9 + 1;\\r\\n iVar7 = iVar7 + -1;\\r\\n } while (iVar7 != 0);\\r\\n }\\r\\n }\\r\\n }\\r\\n if (iVar8 == 0) {\\r\\n local_2c = 0;\\r\\n uStack_2a = 0;\\r\\n iStack_28 = 0;\\r\\n uStack_24 = 0;\\r\\n if (-1 < (int)in_stack_00000010) {\\r\\n puStack_38 = &DAT_00454d74;\\r\\n local_3c = 0x48c6;\\r\\n uStack_3a = 0x45;\\r\\n pcStack_34 = unaff_ESI;\\r\\n cVar5 = MPOS();\\r\\n if (cVar5 == '\\\\0') goto LAB_00454cb4;\\r\\n }\\r\\n }\\r\\n else {\\r\\n in_ST1 = in_ST2;\\r\\n if (iVar8 - 2U < 8) {\\r\\n pcStack_34 = (char *)0x4002;\\r\\n local_3c = 0;\\r\\n uStack_3a = 0;\\r\\n puStack_38 = (undefined *)(iVar8 + -0xd);\\r\\n fVar10 = (float10)(int)puStack_38;\\r\\n local_48 = SUB104(fVar10,0);\\r\\n local_44 = (char *)((unkuint10)fVar10 >> 0x20);\\r\\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n FUN_0042983c();\\r\\n local_2c = (undefined2)in_ST0;\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\\r\\n }\\r\\n else if (iVar8 - 10U < 4) {\\r\\n pcStack_34 = (char *)0x4002;\\r\\n puStack_38 = (undefined *)0xa0000000;\\r\\n local_3c = 0;\\r\\n uStack_3a = 0;\\r\\n local_40._0_2_ = 0xc001;\\r\\n local_40._2_2_ = 0;\\r\\n local_44 = (char *)0x80000000;\\r\\n local_48 = 0;\\r\\n FUN_0042983c();\\r\\n local_2c = (undefined2)in_ST0;\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\\r\\n }\\r\\n else {\\r\\n pcStack_34 = (char *)0x4002;\\r\\n puStack_38 = (undefined *)0xa0000000;\\r\\n local_3c = 0;\\r\\n uStack_3a = 0;\\r\\n local_40._0_2_ = 0xc002;\\r\\n local_40._2_2_ = 0;\\r\\n local_44 = (char *)0x90000000;\\r\\n local_48 = 0;\\r\\n FUN_0042983c();\\r\\n local_2c = (undefined2)in_ST0;\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\\r\\n }\\r\\n }\\r\\n if ((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)) !=\\r\\n (float10)0.0) {\\r\\n fVar10 = (float10)CONCAT28(uStack_24,CONCAT44(iStack_28,CONCAT22(uStack_2a,local_2c))) +\\r\\n ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)))\\r\\n ;\\r\\n local_44 = SUB104(fVar10,0);\\r\\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x20);\\r\\n local_40._2_2_ = (undefined2)((unkuint10)fVar10 >> 0x30);\\r\\n local_3c = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n local_48 = 0x45497e;\\r\\n FUN_0040a19c(\\\"0.0#########\\\",(int *)&stack0xffffffe8);\\r\\n local_40 = (undefined4 *)&local_3c;\\r\\n local_44 = (char *)0x45498b;\\r\\n local_3c = uVar3;\\r\\n uStack_3a = uVar4;\\r\\n EXTTOSTR();\\r\\n local_44 = (char *)0x454996;\\r\\n FUN_004045bc((int *)&stack0xffffffe8,CONCAT22(uStack_3a,local_3c));\\r\\n local_44 = unaff_ESI;\\r\\n cVar5 = MPOS();\\r\\n if (cVar5 == '\\\\0') {\\r\\n FUN_004047e4((int *)&stack0xffffffe8,(undefined4 *)&DAT_00454d9c);\\r\\n }\\r\\n while( true ) {\\r\\n iVar8 = FUN_00404b18(\\\",\\\",unaff_ESI);\\r\\n if (iVar8 < 1) break;\\r\\n iVar8 = FUN_00404b18(\\\",\\\",unaff_ESI);\\r\\n FUN_00404a74((int *)&stack0xffffffe8,iVar8,1);\\r\\n }\\r\\n iVar8 = FUN_00404b18(\\\".\\\",unaff_ESI);\\r\\n if (in_stack_00000010 == 0) {\\r\\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,10,&local_40);\\r\\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,local_40);\\r\\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,(int *)&stack0xffffffe8);\\r\\n iVar7 = 0;\\r\\n }\\r\\n else if ((int)in_stack_00000010 < 1) {\\r\\n iVar7 = (in_stack_00000010 ^ (int)in_stack_00000010 >> 0x1f) -\\r\\n ((int)in_stack_00000010 >> 0x1f);\\r\\n if (iVar7 < iVar8 + -1) {\\r\\n FUN_00404524((int *)&stack0xffffffe4);\\r\\n iVar9 = iVar7;\\r\\n if (0 < iVar7) {\\r\\n do {\\r\\n FUN_00404abc((undefined4 *)&DAT_00454dc0,(int *)&stack0xffffffe4,1);\\r\\n iVar9 = iVar9 + -1;\\r\\n } while (iVar9 != 0);\\r\\n }\\r\\n puVar11 = &DAT_00454d74;\\r\\n local_58 = (undefined4 *)&stack0xffffffac;\\r\\n local_5c = (undefined4 *)0x454b0f;\\r\\n pcVar12 = unaff_ESI;\\r\\n LEFT_STR();\\r\\n local_5c = (undefined4 *)&stack0xffffffac;\\r\\n piVar6 = (int *)&DAT_00454d74;\\r\\n local_68 = &local_58;\\r\\n uStackY_6c._0_2_ = 0x4b25;\\r\\n uStackY_6c._2_2_ = 0x45;\\r\\n RIGHT_STR();\\r\\n ppuVar2 = local_68;\\r\\n local_68 = (undefined4 **)0x454b2e;\\r\\n FUN_004047e4((int *)ppuVar2,local_58);\\r\\n local_68 = (undefined4 **)0x454b42;\\r\\n FUN_00404a34((int)puVar11,iVar8 - iVar7,10,piVar6);\\r\\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)pcVar12);\\r\\n local_68 = (undefined4 **)0x454b66;\\r\\n FUN_00404a34((int)unaff_ESI,1,(iVar8 - iVar7) - 1,(int *)&local_5c);\\r\\n FUN_00404828((int *)&stack0xffffffe8,local_5c,unaff_EDI);\\r\\n }\\r\\n else {\\r\\n FUN_00404a34(0x454dcc,1,(iVar7 - iVar8) - 1,&local_60);\\r\\n local_58 = (undefined4 *)&DAT_00454d74;\\r\\n local_5c = (undefined4 *)&stack0xffffff9c;\\r\\n local_60 = 0x454ba9;\\r\\n LEFT_STR();\\r\\n local_68 = (undefined4 **)&DAT_00454d74;\\r\\n uStackY_6c = &local_68;\\r\\n uStackY_70 = 0x454bbe;\\r\\n RIGHT_STR();\\r\\n local_74 = 0x454bce;\\r\\n FUN_0040489c(&local_20,4);\\r\\n local_74 = 0x454bdb;\\r\\n FUN_004045bc((int *)&stack0xffffffe8,0x454dc0);\\r\\n }\\r\\n }\\r\\n else {\\r\\n FUN_00404a34((int)unaff_ESI,in_stack_00000010 + iVar8 + 1,10,(int *)&local_44);\\r\\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)local_44);\\r\\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,&local_48);\\r\\n local_58 = (undefined4 *)0x454aa4;\\r\\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,in_stack_00000010,(int *)&stack0xffffffb4);\\r\\n local_58 = (undefined4 *)0x454ab4;\\r\\n FUN_0040489c((int *)&stack0xffffffe8,3);\\r\\n iVar7 = -in_stack_00000010;\\r\\n }\\r\\n FUN_0040a1f4(local_20);\\r\\n local_20._0_2_ = 0x4bf2;\\r\\n local_20._2_2_ = 0x45;\\r\\n puStack_38 = (undefined *)FUN_004297f4();\\r\\n fVar10 = (float10)(int)puStack_38;\\r\\n local_74 = SUB104(fVar10,0);\\r\\n uStackY_70 = (undefined4)((unkuint10)fVar10 >> 0x20);\\r\\n uStackY_6c._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n fVar10 = (float10)iVar7;\\r\\n iStack_28 = SUB104(fVar10,0);\\r\\n uStack_24 = (undefined2)((unkuint10)fVar10 >> 0x20);\\r\\n uStack_22 = (undefined2)((unkuint10)fVar10 >> 0x30);\\r\\n local_20._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\\r\\n local_2c = 0x4c1a;\\r\\n uStack_2a = 0x45;\\r\\n local_78 = iVar7;\\r\\n FUN_0042983c();\\r\\n in_ST1 = (float10)CONCAT28((undefined2)uStackY_6c,CONCAT44(uStackY_70,local_74)) * in_ST1;\\r\\n local_2c = SUB102(in_ST1,0);\\r\\n uStack_2a = (undefined2)((unkuint10)in_ST1 >> 0x10);\\r\\n iStack_28 = (int)((unkuint10)in_ST1 >> 0x20);\\r\\n uStack_24 = (undefined2)((unkuint10)in_ST1 >> 0x40);\\r\\n FUN_0040a1f4((undefined *)0xa0000000);\\r\\n FUN_00405520();\\r\\n local_20._0_2_ = (undefined2)local_98;\\r\\n local_20._2_2_ = (undefined2)((uint)local_98 >> 0x10);\\r\\n uStack_24 = 0x4c61;\\r\\n uStack_22 = 0x45;\\r\\n FUN_0040a1f4(local_90);\\r\\n uStack_24 = 0x4c71;\\r\\n uStack_22 = 0x45;\\r\\n FUN_00405520();\\r\\n uStack_24 = (undefined2)local_9c;\\r\\n uStack_22 = (undefined2)((uint)local_9c >> 0x10);\\r\\n iStack_28 = local_a0;\\r\\n local_2c = SUB42(local_a8[1],0);\\r\\n uStack_2a = (undefined2)((uint)local_a8[1] >> 0x10);\\r\\n local_30 = (undefined4 ***)local_a8[0];\\r\\n fVar1 = (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004));\\r\\n fVar10 = (float10)0.0;\\r\\n pcStack_34 = (char *)CONCAT31((int3)(CONCAT22(extraout_var,\\r\\n (ushort)(fVar1 < fVar10) << 8 |\\r\\n (ushort)(NAN(fVar1) || NAN(fVar10)) << 10 |\\r\\n (ushort)(fVar1 == fVar10) << 0xe) >> 8),\\r\\n fVar1 < fVar10 == 0 && (fVar1 == fVar10) == 0);\\r\\n puStack_38 = local_88;\\r\\n local_3c = 0x4ca5;\\r\\n uStack_3a = 0x45;\\r\\n IIF();\\r\\n local_3c = 0x4cb0;\\r\\n uStack_3a = 0x45;\\r\\n FUN_004054c4();\\r\\n }\\r\\nLAB_00454cb4:\\r\\n *in_FS_OFFSET = (int)puStack_38;\\r\\n local_30 = (undefined4 ***)&LAB_00454d06;\\r\\n pcStack_34 = (char *)0x454cd7;\\r\\n FUN_00405018((int *)local_a8,&DAT_004010a0,3);\\r\\n pcStack_34 = (char *)0x454ce4;\\r\\n FUN_00404548((int *)&local_68,0xc);\\r\\n pcStack_34 = (char *)0x454cf1;\\r\\n FUN_00404548((int *)&pcStack_34,2);\\r\\n pcStack_34 = (char *)0x454cfe;\\r\\n FUN_00404548(&local_20,3);\\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 0x4547ca (push 0x454cff followed by fs-segment stack chaining); handler 0x454cff 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_20fc29eeef8cdcd87391df8cec4423521e6a8a6f322cb2275fe6521d022ea9ce", "subject": {"name": "DP_Common.CPM", "digest": {"sha256": "5f55d301c6b2139816ff8832e46becb852c4f0a0c9b5da199371156b6aaf30e0"}, "local_path": "C:\\경영정보(주)\\System\\DP_Common.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": "0x4547ac"}, "raw_result": {"value": "\r\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\r\n\r\nvoid MROUNDUP(void)\r\n\r\n{\r\n float10 fVar1;\r\n undefined4 **ppuVar2;\r\n undefined2 uVar3;\r\n undefined2 uVar4;\r\n char cVar5;\r\n int *piVar6;\r\n int iVar7;\r\n undefined2 extraout_var;\r\n int iVar8;\r\n char *unaff_ESI;\r\n undefined4 *unaff_EDI;\r\n int iVar9;\r\n int *in_FS_OFFSET;\r\n unkbyte10 in_ST0;\r\n float10 fVar10;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n undefined4 in_stack_00000004;\r\n undefined4 in_stack_00000008;\r\n undefined2 in_stack_0000000c;\r\n uint in_stack_00000010;\r\n undefined4 **local_a8 [2];\r\n int local_a0;\r\n undefined4 local_9c;\r\n undefined4 local_98;\r\n undefined *local_90;\r\n undefined local_88 [16];\r\n int local_78;\r\n undefined4 local_74;\r\n undefined4 uStackY_70;\r\n undefined4 uStackY_6c;\r\n undefined4 **local_68;\r\n int local_60;\r\n undefined4 *local_5c;\r\n undefined4 *local_58;\r\n undefined *puVar11;\r\n char *pcVar12;\r\n int local_48;\r\n char *local_44;\r\n undefined4 local_40;\r\n undefined2 local_3c;\r\n undefined2 uStack_3a;\r\n undefined *puStack_38;\r\n char *pcStack_34;\r\n undefined4 ***local_30;\r\n undefined2 local_2c;\r\n undefined2 uStack_2a;\r\n int iStack_28;\r\n undefined2 uStack_24;\r\n undefined2 uStack_22;\r\n undefined4 local_20;\r\n \r\n /* 0x547ac 56 MROUNDUP */\r\n local_20 = &stack0xfffffffc;\r\n iVar8 = 0x14;\r\n do {\r\n iVar8 = iVar8 + -1;\r\n } while (iVar8 != 0);\r\n uStack_24 = 0x4cff;\r\n uStack_22 = 0x45;\r\n iStack_28 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = (int)&iStack_28;\r\n fVar10 = ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)));\r\n pcStack_34 = SUB104(fVar10,0);\r\n local_30 = (undefined4 ***)((unkuint10)fVar10 >> 0x20);\r\n local_2c = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n puStack_38 = (undefined *)0x4547e6;\r\n FUN_0040a19c(\"0.##########\",(int *)&stack0xffffffe8);\r\n local_2c = SUB42(unaff_ESI,0);\r\n uVar3 = local_2c;\r\n uStack_2a = (undefined2)((uint)unaff_ESI >> 0x10);\r\n uVar4 = uStack_2a;\r\n local_30 = &local_30;\r\n pcStack_34 = (char *)0x4547f3;\r\n EXTTOSTR();\r\n pcStack_34 = (char *)0x4547fe;\r\n FUN_004045bc((int *)&stack0xffffffe8,(int)local_30);\r\n if (_DAT_00454d2c <\r\n (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004))) {\r\n pcStack_34 = (char *)0x45481e;\r\n FUN_00404828((int *)&pcStack_34,(undefined4 *)unaff_ESI,(undefined4 *)&DAT_00454d40);\r\n pcVar12 = pcStack_34;\r\n pcStack_34 = (char *)0x45482d;\r\n piVar6 = FUN_0040b1d0((int *)&DAT_00407b00,'\\x01',(undefined4 *)pcVar12);\r\n pcStack_34 = (char *)0x454832;\r\n FUN_00403efc((int)piVar6);\r\n }\r\n pcStack_34 = (char *)0x45483f;\r\n iVar8 = FUN_00404b18(\".\",unaff_ESI);\r\n if (0 < iVar8) {\r\n pcStack_34 = (char *)0x45484d;\r\n iVar7 = FUN_004047dc((int)unaff_ESI);\r\n if (iVar7 - iVar8 < 0xb) {\r\n pcStack_34 = (char *)0x45485c;\r\n iVar7 = FUN_004047dc((int)unaff_ESI);\r\n if (0 < iVar7) {\r\n iVar9 = 1;\r\n do {\r\n if ((byte)(unaff_ESI[iVar9 + -1] - 0x31U) < 9) {\r\n pcStack_34 = (char *)0x45487c;\r\n iVar7 = FUN_004047dc((int)unaff_ESI);\r\n if (iVar7 - iVar9 < 0xb) {\r\n iVar8 = 0;\r\n }\r\n break;\r\n }\r\n iVar9 = iVar9 + 1;\r\n iVar7 = iVar7 + -1;\r\n } while (iVar7 != 0);\r\n }\r\n }\r\n }\r\n if (iVar8 == 0) {\r\n local_2c = 0;\r\n uStack_2a = 0;\r\n iStack_28 = 0;\r\n uStack_24 = 0;\r\n if (-1 < (int)in_stack_00000010) {\r\n puStack_38 = &DAT_00454d74;\r\n local_3c = 0x48c6;\r\n uStack_3a = 0x45;\r\n pcStack_34 = unaff_ESI;\r\n cVar5 = MPOS();\r\n if (cVar5 == '\\0') goto LAB_00454cb4;\r\n }\r\n }\r\n else {\r\n in_ST1 = in_ST2;\r\n if (iVar8 - 2U < 8) {\r\n pcStack_34 = (char *)0x4002;\r\n local_3c = 0;\r\n uStack_3a = 0;\r\n puStack_38 = (undefined *)(iVar8 + -0xd);\r\n fVar10 = (float10)(int)puStack_38;\r\n local_48 = SUB104(fVar10,0);\r\n local_44 = (char *)((unkuint10)fVar10 >> 0x20);\r\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n FUN_0042983c();\r\n local_2c = (undefined2)in_ST0;\r\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\r\n }\r\n else if (iVar8 - 10U < 4) {\r\n pcStack_34 = (char *)0x4002;\r\n puStack_38 = (undefined *)0xa0000000;\r\n local_3c = 0;\r\n uStack_3a = 0;\r\n local_40._0_2_ = 0xc001;\r\n local_40._2_2_ = 0;\r\n local_44 = (char *)0x80000000;\r\n local_48 = 0;\r\n FUN_0042983c();\r\n local_2c = (undefined2)in_ST0;\r\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\r\n }\r\n else {\r\n pcStack_34 = (char *)0x4002;\r\n puStack_38 = (undefined *)0xa0000000;\r\n local_3c = 0;\r\n uStack_3a = 0;\r\n local_40._0_2_ = 0xc002;\r\n local_40._2_2_ = 0;\r\n local_44 = (char *)0x90000000;\r\n local_48 = 0;\r\n FUN_0042983c();\r\n local_2c = (undefined2)in_ST0;\r\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\r\n }\r\n }\r\n if ((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)) !=\r\n (float10)0.0) {\r\n fVar10 = (float10)CONCAT28(uStack_24,CONCAT44(iStack_28,CONCAT22(uStack_2a,local_2c))) +\r\n ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)))\r\n ;\r\n local_44 = SUB104(fVar10,0);\r\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x20);\r\n local_40._2_2_ = (undefined2)((unkuint10)fVar10 >> 0x30);\r\n local_3c = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n local_48 = 0x45497e;\r\n FUN_0040a19c(\"0.0#########\",(int *)&stack0xffffffe8);\r\n local_40 = (undefined4 *)&local_3c;\r\n local_44 = (char *)0x45498b;\r\n local_3c = uVar3;\r\n uStack_3a = uVar4;\r\n EXTTOSTR();\r\n local_44 = (char *)0x454996;\r\n FUN_004045bc((int *)&stack0xffffffe8,CONCAT22(uStack_3a,local_3c));\r\n local_44 = unaff_ESI;\r\n cVar5 = MPOS();\r\n if (cVar5 == '\\0') {\r\n FUN_004047e4((int *)&stack0xffffffe8,(undefined4 *)&DAT_00454d9c);\r\n }\r\n while( true ) {\r\n iVar8 = FUN_00404b18(\",\",unaff_ESI);\r\n if (iVar8 < 1) break;\r\n iVar8 = FUN_00404b18(\",\",unaff_ESI);\r\n FUN_00404a74((int *)&stack0xffffffe8,iVar8,1);\r\n }\r\n iVar8 = FUN_00404b18(\".\",unaff_ESI);\r\n if (in_stack_00000010 == 0) {\r\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,10,&local_40);\r\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,local_40);\r\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,(int *)&stack0xffffffe8);\r\n iVar7 = 0;\r\n }\r\n else if ((int)in_stack_00000010 < 1) {\r\n iVar7 = (in_stack_00000010 ^ (int)in_stack_00000010 >> 0x1f) -\r\n ((int)in_stack_00000010 >> 0x1f);\r\n if (iVar7 < iVar8 + -1) {\r\n FUN_00404524((int *)&stack0xffffffe4);\r\n iVar9 = iVar7;\r\n if (0 < iVar7) {\r\n do {\r\n FUN_00404abc((undefined4 *)&DAT_00454dc0,(int *)&stack0xffffffe4,1);\r\n iVar9 = iVar9 + -1;\r\n } while (iVar9 != 0);\r\n }\r\n puVar11 = &DAT_00454d74;\r\n local_58 = (undefined4 *)&stack0xffffffac;\r\n local_5c = (undefined4 *)0x454b0f;\r\n pcVar12 = unaff_ESI;\r\n LEFT_STR();\r\n local_5c = (undefined4 *)&stack0xffffffac;\r\n piVar6 = (int *)&DAT_00454d74;\r\n local_68 = &local_58;\r\n uStackY_6c._0_2_ = 0x4b25;\r\n uStackY_6c._2_2_ = 0x45;\r\n RIGHT_STR();\r\n ppuVar2 = local_68;\r\n local_68 = (undefined4 **)0x454b2e;\r\n FUN_004047e4((int *)ppuVar2,local_58);\r\n local_68 = (undefined4 **)0x454b42;\r\n FUN_00404a34((int)puVar11,iVar8 - iVar7,10,piVar6);\r\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)pcVar12);\r\n local_68 = (undefined4 **)0x454b66;\r\n FUN_00404a34((int)unaff_ESI,1,(iVar8 - iVar7) - 1,(int *)&local_5c);\r\n FUN_00404828((int *)&stack0xffffffe8,local_5c,unaff_EDI);\r\n }\r\n else {\r\n FUN_00404a34(0x454dcc,1,(iVar7 - iVar8) - 1,&local_60);\r\n local_58 = (undefined4 *)&DAT_00454d74;\r\n local_5c = (undefined4 *)&stack0xffffff9c;\r\n local_60 = 0x454ba9;\r\n LEFT_STR();\r\n local_68 = (undefined4 **)&DAT_00454d74;\r\n uStackY_6c = &local_68;\r\n uStackY_70 = 0x454bbe;\r\n RIGHT_STR();\r\n local_74 = 0x454bce;\r\n FUN_0040489c(&local_20,4);\r\n local_74 = 0x454bdb;\r\n FUN_004045bc((int *)&stack0xffffffe8,0x454dc0);\r\n }\r\n }\r\n else {\r\n FUN_00404a34((int)unaff_ESI,in_stack_00000010 + iVar8 + 1,10,(int *)&local_44);\r\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)local_44);\r\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,&local_48);\r\n local_58 = (undefined4 *)0x454aa4;\r\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,in_stack_00000010,(int *)&stack0xffffffb4);\r\n local_58 = (undefined4 *)0x454ab4;\r\n FUN_0040489c((int *)&stack0xffffffe8,3);\r\n iVar7 = -in_stack_00000010;\r\n }\r\n FUN_0040a1f4(local_20);\r\n local_20._0_2_ = 0x4bf2;\r\n local_20._2_2_ = 0x45;\r\n puStack_38 = (undefined *)FUN_004297f4();\r\n fVar10 = (float10)(int)puStack_38;\r\n local_74 = SUB104(fVar10,0);\r\n uStackY_70 = (undefined4)((unkuint10)fVar10 >> 0x20);\r\n uStackY_6c._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n fVar10 = (float10)iVar7;\r\n iStack_28 = SUB104(fVar10,0);\r\n uStack_24 = (undefined2)((unkuint10)fVar10 >> 0x20);\r\n uStack_22 = (undefined2)((unkuint10)fVar10 >> 0x30);\r\n local_20._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n local_2c = 0x4c1a;\r\n uStack_2a = 0x45;\r\n local_78 = iVar7;\r\n FUN_0042983c();\r\n in_ST1 = (float10)CONCAT28((undefined2)uStackY_6c,CONCAT44(uStackY_70,local_74)) * in_ST1;\r\n local_2c = SUB102(in_ST1,0);\r\n uStack_2a = (undefined2)((unkuint10)in_ST1 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST1 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST1 >> 0x40);\r\n FUN_0040a1f4((undefined *)0xa0000000);\r\n FUN_00405520();\r\n local_20._0_2_ = (undefined2)local_98;\r\n local_20._2_2_ = (undefined2)((uint)local_98 >> 0x10);\r\n uStack_24 = 0x4c61;\r\n uStack_22 = 0x45;\r\n FUN_0040a1f4(local_90);\r\n uStack_24 = 0x4c71;\r\n uStack_22 = 0x45;\r\n FUN_00405520();\r\n uStack_24 = (undefined2)local_9c;\r\n uStack_22 = (undefined2)((uint)local_9c >> 0x10);\r\n iStack_28 = local_a0;\r\n local_2c = SUB42(local_a8[1],0);\r\n uStack_2a = (undefined2)((uint)local_a8[1] >> 0x10);\r\n local_30 = (undefined4 ***)local_a8[0];\r\n fVar1 = (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004));\r\n fVar10 = (float10)0.0;\r\n pcStack_34 = (char *)CONCAT31((int3)(CONCAT22(extraout_var,\r\n (ushort)(fVar1 < fVar10) << 8 |\r\n (ushort)(NAN(fVar1) || NAN(fVar10)) << 10 |\r\n (ushort)(fVar1 == fVar10) << 0xe) >> 8),\r\n fVar1 < fVar10 == 0 && (fVar1 == fVar10) == 0);\r\n puStack_38 = local_88;\r\n local_3c = 0x4ca5;\r\n uStack_3a = 0x45;\r\n IIF();\r\n local_3c = 0x4cb0;\r\n uStack_3a = 0x45;\r\n FUN_004054c4();\r\n }\r\nLAB_00454cb4:\r\n *in_FS_OFFSET = (int)puStack_38;\r\n local_30 = (undefined4 ***)&LAB_00454d06;\r\n pcStack_34 = (char *)0x454cd7;\r\n FUN_00405018((int *)local_a8,&DAT_004010a0,3);\r\n pcStack_34 = (char *)0x454ce4;\r\n FUN_00404548((int *)&local_68,0xc);\r\n pcStack_34 = (char *)0x454cf1;\r\n FUN_00404548((int *)&pcStack_34,2);\r\n pcStack_34 = (char *)0x454cfe;\r\n FUN_00404548(&local_20,3);\r\n return;\r\n}\r\n\r\n", "limitations": ["Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x4547ca (push 0x454cff followed by fs-segment stack chaining); handler 0x454cff 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 MROUNDUP(void)\r\n\r\n{\r\n float10 fVar1;\r\n undefined4 **ppuVar2;\r\n undefined2 uVar3;\r\n undefined2 uVar4;\r\n char cVar5;\r\n int *piVar6;\r\n int iVar7;\r\n undefined2 extraout_var;\r\n int iVar8;\r\n char *unaff_ESI;\r\n undefined4 *unaff_EDI;\r\n int iVar9;\r\n int *in_FS_OFFSET;\r\n unkbyte10 in_ST0;\r\n float10 fVar10;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n undefined4 in_stack_00000004;\r\n undefined4 in_stack_00000008;\r\n undefined2 in_stack_0000000c;\r\n uint in_stack_00000010;\r\n undefined4 **local_a8 [2];\r\n int local_a0;\r\n undefined4 local_9c;\r\n undefined4 local_98;\r\n undefined *local_90;\r\n undefined local_88 [16];\r\n int local_78;\r\n undefined4 local_74;\r\n undefined4 uStackY_70;\r\n undefined4 uStackY_6c;\r\n undefined4 **local_68;\r\n int local_60;\r\n undefined4 *local_5c;\r\n undefined4 *local_58;\r\n undefined *puVar11;\r\n char *pcVar12;\r\n int local_48;\r\n char *local_44;\r\n undefined4 local_40;\r\n undefined2 local_3c;\r\n undefined2 uStack_3a;\r\n undefined *puStack_38;\r\n char *pcStack_34;\r\n undefined4 ***local_30;\r\n undefined2 local_2c;\r\n undefined2 uStack_2a;\r\n int iStack_28;\r\n undefined2 uStack_24;\r\n undefined2 uStack_22;\r\n undefined4 local_20;\r\n \r\n /* 0x547ac 56 MROUNDUP */\r\n local_20 = &stack0xfffffffc;\r\n iVar8 = 0x14;\r\n do {\r\n iVar8 = iVar8 + -1;\r\n } while (iVar8 != 0);\r\n uStack_24 = 0x4cff;\r\n uStack_22 = 0x45;\r\n iStack_28 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = (int)&iStack_28;\r\n fVar10 = ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)));\r\n pcStack_34 = SUB104(fVar10,0);\r\n local_30 = (undefined4 ***)((unkuint10)fVar10 >> 0x20);\r\n local_2c = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n puStack_38 = (undefined *)0x4547e6;\r\n FUN_0040a19c(\"0.##########\",(int *)&stack0xffffffe8);\r\n local_2c = SUB42(unaff_ESI,0);\r\n uVar3 = local_2c;\r\n uStack_2a = (undefined2)((uint)unaff_ESI >> 0x10);\r\n uVar4 = uStack_2a;\r\n local_30 = &local_30;\r\n pcStack_34 = (char *)0x4547f3;\r\n EXTTOSTR();\r\n pcStack_34 = (char *)0x4547fe;\r\n FUN_004045bc((int *)&stack0xffffffe8,(int)local_30);\r\n if (_DAT_00454d2c <\r\n (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004))) {\r\n pcStack_34 = (char *)0x45481e;\r\n FUN_00404828((int *)&pcStack_34,(undefined4 *)unaff_ESI,(undefined4 *)&DAT_00454d40);\r\n pcVar12 = pcStack_34;\r\n pcStack_34 = (char *)0x45482d;\r\n piVar6 = FUN_0040b1d0((int *)&DAT_00407b00,'\\x01',(undefined4 *)pcVar12);\r\n pcStack_34 = (char *)0x454832;\r\n FUN_00403efc((int)piVar6);\r\n }\r\n pcStack_34 = (char *)0x45483f;\r\n iVar8 = FUN_00404b18(\".\",unaff_ESI);\r\n if (0 < iVar8) {\r\n pcStack_34 = (char *)0x45484d;\r\n iVar7 = FUN_004047dc((int)unaff_ESI);\r\n if (iVar7 - iVar8 < 0xb) {\r\n pcStack_34 = (char *)0x45485c;\r\n iVar7 = FUN_004047dc((int)unaff_ESI);\r\n if (0 < iVar7) {\r\n iVar9 = 1;\r\n do {\r\n if ((byte)(unaff_ESI[iVar9 + -1] - 0x31U) < 9) {\r\n pcStack_34 = (char *)0x45487c;\r\n iVar7 = FUN_004047dc((int)unaff_ESI);\r\n if (iVar7 - iVar9 < 0xb) {\r\n iVar8 = 0;\r\n }\r\n break;\r\n }\r\n iVar9 = iVar9 + 1;\r\n iVar7 = iVar7 + -1;\r\n } while (iVar7 != 0);\r\n }\r\n }\r\n }\r\n if (iVar8 == 0) {\r\n local_2c = 0;\r\n uStack_2a = 0;\r\n iStack_28 = 0;\r\n uStack_24 = 0;\r\n if (-1 < (int)in_stack_00000010) {\r\n puStack_38 = &DAT_00454d74;\r\n local_3c = 0x48c6;\r\n uStack_3a = 0x45;\r\n pcStack_34 = unaff_ESI;\r\n cVar5 = MPOS();\r\n if (cVar5 == '\\0') goto LAB_00454cb4;\r\n }\r\n }\r\n else {\r\n in_ST1 = in_ST2;\r\n if (iVar8 - 2U < 8) {\r\n pcStack_34 = (char *)0x4002;\r\n local_3c = 0;\r\n uStack_3a = 0;\r\n puStack_38 = (undefined *)(iVar8 + -0xd);\r\n fVar10 = (float10)(int)puStack_38;\r\n local_48 = SUB104(fVar10,0);\r\n local_44 = (char *)((unkuint10)fVar10 >> 0x20);\r\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n FUN_0042983c();\r\n local_2c = (undefined2)in_ST0;\r\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\r\n }\r\n else if (iVar8 - 10U < 4) {\r\n pcStack_34 = (char *)0x4002;\r\n puStack_38 = (undefined *)0xa0000000;\r\n local_3c = 0;\r\n uStack_3a = 0;\r\n local_40._0_2_ = 0xc001;\r\n local_40._2_2_ = 0;\r\n local_44 = (char *)0x80000000;\r\n local_48 = 0;\r\n FUN_0042983c();\r\n local_2c = (undefined2)in_ST0;\r\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\r\n }\r\n else {\r\n pcStack_34 = (char *)0x4002;\r\n puStack_38 = (undefined *)0xa0000000;\r\n local_3c = 0;\r\n uStack_3a = 0;\r\n local_40._0_2_ = 0xc002;\r\n local_40._2_2_ = 0;\r\n local_44 = (char *)0x90000000;\r\n local_48 = 0;\r\n FUN_0042983c();\r\n local_2c = (undefined2)in_ST0;\r\n uStack_2a = (undefined2)((unkuint10)in_ST0 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST0 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST0 >> 0x40);\r\n }\r\n }\r\n if ((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)) !=\r\n (float10)0.0) {\r\n fVar10 = (float10)CONCAT28(uStack_24,CONCAT44(iStack_28,CONCAT22(uStack_2a,local_2c))) +\r\n ABS((float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004)))\r\n ;\r\n local_44 = SUB104(fVar10,0);\r\n local_40._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x20);\r\n local_40._2_2_ = (undefined2)((unkuint10)fVar10 >> 0x30);\r\n local_3c = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n local_48 = 0x45497e;\r\n FUN_0040a19c(\"0.0#########\",(int *)&stack0xffffffe8);\r\n local_40 = (undefined4 *)&local_3c;\r\n local_44 = (char *)0x45498b;\r\n local_3c = uVar3;\r\n uStack_3a = uVar4;\r\n EXTTOSTR();\r\n local_44 = (char *)0x454996;\r\n FUN_004045bc((int *)&stack0xffffffe8,CONCAT22(uStack_3a,local_3c));\r\n local_44 = unaff_ESI;\r\n cVar5 = MPOS();\r\n if (cVar5 == '\\0') {\r\n FUN_004047e4((int *)&stack0xffffffe8,(undefined4 *)&DAT_00454d9c);\r\n }\r\n while( true ) {\r\n iVar8 = FUN_00404b18(\",\",unaff_ESI);\r\n if (iVar8 < 1) break;\r\n iVar8 = FUN_00404b18(\",\",unaff_ESI);\r\n FUN_00404a74((int *)&stack0xffffffe8,iVar8,1);\r\n }\r\n iVar8 = FUN_00404b18(\".\",unaff_ESI);\r\n if (in_stack_00000010 == 0) {\r\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,10,&local_40);\r\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,local_40);\r\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,(int *)&stack0xffffffe8);\r\n iVar7 = 0;\r\n }\r\n else if ((int)in_stack_00000010 < 1) {\r\n iVar7 = (in_stack_00000010 ^ (int)in_stack_00000010 >> 0x1f) -\r\n ((int)in_stack_00000010 >> 0x1f);\r\n if (iVar7 < iVar8 + -1) {\r\n FUN_00404524((int *)&stack0xffffffe4);\r\n iVar9 = iVar7;\r\n if (0 < iVar7) {\r\n do {\r\n FUN_00404abc((undefined4 *)&DAT_00454dc0,(int *)&stack0xffffffe4,1);\r\n iVar9 = iVar9 + -1;\r\n } while (iVar9 != 0);\r\n }\r\n puVar11 = &DAT_00454d74;\r\n local_58 = (undefined4 *)&stack0xffffffac;\r\n local_5c = (undefined4 *)0x454b0f;\r\n pcVar12 = unaff_ESI;\r\n LEFT_STR();\r\n local_5c = (undefined4 *)&stack0xffffffac;\r\n piVar6 = (int *)&DAT_00454d74;\r\n local_68 = &local_58;\r\n uStackY_6c._0_2_ = 0x4b25;\r\n uStackY_6c._2_2_ = 0x45;\r\n RIGHT_STR();\r\n ppuVar2 = local_68;\r\n local_68 = (undefined4 **)0x454b2e;\r\n FUN_004047e4((int *)ppuVar2,local_58);\r\n local_68 = (undefined4 **)0x454b42;\r\n FUN_00404a34((int)puVar11,iVar8 - iVar7,10,piVar6);\r\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)pcVar12);\r\n local_68 = (undefined4 **)0x454b66;\r\n FUN_00404a34((int)unaff_ESI,1,(iVar8 - iVar7) - 1,(int *)&local_5c);\r\n FUN_00404828((int *)&stack0xffffffe8,local_5c,unaff_EDI);\r\n }\r\n else {\r\n FUN_00404a34(0x454dcc,1,(iVar7 - iVar8) - 1,&local_60);\r\n local_58 = (undefined4 *)&DAT_00454d74;\r\n local_5c = (undefined4 *)&stack0xffffff9c;\r\n local_60 = 0x454ba9;\r\n LEFT_STR();\r\n local_68 = (undefined4 **)&DAT_00454d74;\r\n uStackY_6c = &local_68;\r\n uStackY_70 = 0x454bbe;\r\n RIGHT_STR();\r\n local_74 = 0x454bce;\r\n FUN_0040489c(&local_20,4);\r\n local_74 = 0x454bdb;\r\n FUN_004045bc((int *)&stack0xffffffe8,0x454dc0);\r\n }\r\n }\r\n else {\r\n FUN_00404a34((int)unaff_ESI,in_stack_00000010 + iVar8 + 1,10,(int *)&local_44);\r\n FUN_00404828(&local_20,(undefined4 *)&DAT_00454db4,(undefined4 *)local_44);\r\n FUN_00404a34((int)unaff_ESI,1,iVar8 - 1,&local_48);\r\n local_58 = (undefined4 *)0x454aa4;\r\n FUN_00404a34((int)unaff_ESI,iVar8 + 1,in_stack_00000010,(int *)&stack0xffffffb4);\r\n local_58 = (undefined4 *)0x454ab4;\r\n FUN_0040489c((int *)&stack0xffffffe8,3);\r\n iVar7 = -in_stack_00000010;\r\n }\r\n FUN_0040a1f4(local_20);\r\n local_20._0_2_ = 0x4bf2;\r\n local_20._2_2_ = 0x45;\r\n puStack_38 = (undefined *)FUN_004297f4();\r\n fVar10 = (float10)(int)puStack_38;\r\n local_74 = SUB104(fVar10,0);\r\n uStackY_70 = (undefined4)((unkuint10)fVar10 >> 0x20);\r\n uStackY_6c._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n fVar10 = (float10)iVar7;\r\n iStack_28 = SUB104(fVar10,0);\r\n uStack_24 = (undefined2)((unkuint10)fVar10 >> 0x20);\r\n uStack_22 = (undefined2)((unkuint10)fVar10 >> 0x30);\r\n local_20._0_2_ = (undefined2)((unkuint10)fVar10 >> 0x40);\r\n local_2c = 0x4c1a;\r\n uStack_2a = 0x45;\r\n local_78 = iVar7;\r\n FUN_0042983c();\r\n in_ST1 = (float10)CONCAT28((undefined2)uStackY_6c,CONCAT44(uStackY_70,local_74)) * in_ST1;\r\n local_2c = SUB102(in_ST1,0);\r\n uStack_2a = (undefined2)((unkuint10)in_ST1 >> 0x10);\r\n iStack_28 = (int)((unkuint10)in_ST1 >> 0x20);\r\n uStack_24 = (undefined2)((unkuint10)in_ST1 >> 0x40);\r\n FUN_0040a1f4((undefined *)0xa0000000);\r\n FUN_00405520();\r\n local_20._0_2_ = (undefined2)local_98;\r\n local_20._2_2_ = (undefined2)((uint)local_98 >> 0x10);\r\n uStack_24 = 0x4c61;\r\n uStack_22 = 0x45;\r\n FUN_0040a1f4(local_90);\r\n uStack_24 = 0x4c71;\r\n uStack_22 = 0x45;\r\n FUN_00405520();\r\n uStack_24 = (undefined2)local_9c;\r\n uStack_22 = (undefined2)((uint)local_9c >> 0x10);\r\n iStack_28 = local_a0;\r\n local_2c = SUB42(local_a8[1],0);\r\n uStack_2a = (undefined2)((uint)local_a8[1] >> 0x10);\r\n local_30 = (undefined4 ***)local_a8[0];\r\n fVar1 = (float10)CONCAT28(in_stack_0000000c,CONCAT44(in_stack_00000008,in_stack_00000004));\r\n fVar10 = (float10)0.0;\r\n pcStack_34 = (char *)CONCAT31((int3)(CONCAT22(extraout_var,\r\n (ushort)(fVar1 < fVar10) << 8 |\r\n (ushort)(NAN(fVar1) || NAN(fVar10)) << 10 |\r\n (ushort)(fVar1 == fVar10) << 0xe) >> 8),\r\n fVar1 < fVar10 == 0 && (fVar1 == fVar10) == 0);\r\n puStack_38 = local_88;\r\n local_3c = 0x4ca5;\r\n uStack_3a = 0x45;\r\n IIF();\r\n local_3c = 0x4cb0;\r\n uStack_3a = 0x45;\r\n FUN_004054c4();\r\n }\r\nLAB_00454cb4:\r\n *in_FS_OFFSET = (int)puStack_38;\r\n local_30 = (undefined4 ***)&LAB_00454d06;\r\n pcStack_34 = (char *)0x454cd7;\r\n FUN_00405018((int *)local_a8,&DAT_004010a0,3);\r\n pcStack_34 = (char *)0x454ce4;\r\n FUN_00404548((int *)&local_68,0xc);\r\n pcStack_34 = (char *)0x454cf1;\r\n FUN_00404548((int *)&pcStack_34,2);\r\n pcStack_34 = (char *)0x454cfe;\r\n FUN_00404548(&local_20,3);\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 0x4547ca (push 0x454cff followed by fs-segment stack chaining); handler 0x454cff 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": 4} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x42a828.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x42a828.json new file mode 100644 index 000000000..f4babfc85 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x42a828.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_0abb468b3327084a540671227493ebadbd67139880f7b5ef9dc171b05115d2f1\",\"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\":\"resolve_containing_procedure\",\"parameters\":{\"address\":\"0x42a828\"},\"raw_result\":{\"query_address\":\"0x42a828\",\"found\":true,\"procedure\":{\"address\":\"0x42a828\",\"name\":\"FUN_0042a828\",\"classification\":{\"external\":false,\"thunk\":false,\"thunk_target\":null,\"provenance\":\"ghidra-function-manager\"},\"body\":{\"available\":true,\"provenance\":\"ghidra-function-body-address-set\",\"ranges\":[{\"start\":\"0x42a828\",\"end\":\"0x42b62c\"},{\"start\":\"0x42b634\",\"end\":\"0x42b6f2\"}],\"total_bytes\":3780,\"span_bytes\":3787,\"non_contiguous\":true,\"contains_entry\":true}}},\"normalized_result\":{\"query_address\":\"0x42a828\",\"found\":true,\"procedure\":{\"address\":\"0x42a828\",\"name\":\"FUN_0042a828\",\"classification\":{\"external\":false,\"thunk\":false,\"thunk_target\":null,\"provenance\":\"ghidra-function-manager\"},\"body\":{\"available\":true,\"provenance\":\"ghidra-function-body-address-set\",\"ranges\":[{\"start\":\"0x42a828\",\"end\":\"0x42b62c\"},{\"start\":\"0x42b634\",\"end\":\"0x42b6f2\"}],\"total_bytes\":3780,\"span_bytes\":3787,\"non_contiguous\":true,\"contains_entry\":true}}},\"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_0abb468b3327084a540671227493ebadbd67139880f7b5ef9dc171b05115d2f1", "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": "resolve_containing_procedure", "parameters": {"address": "0x42a828"}, "raw_result": {"query_address": "0x42a828", "found": true, "procedure": {"address": "0x42a828", "name": "FUN_0042a828", "classification": {"external": false, "thunk": false, "thunk_target": null, "provenance": "ghidra-function-manager"}, "body": {"available": true, "provenance": "ghidra-function-body-address-set", "ranges": [{"start": "0x42a828", "end": "0x42b62c"}, {"start": "0x42b634", "end": "0x42b6f2"}], "total_bytes": 3780, "span_bytes": 3787, "non_contiguous": true, "contains_entry": true}}}, "normalized_result": {"query_address": "0x42a828", "found": true, "procedure": {"address": "0x42a828", "name": "FUN_0042a828", "classification": {"external": false, "thunk": false, "thunk_target": null, "provenance": "ghidra-function-manager"}, "body": {"available": true, "provenance": "ghidra-function-body-address-set", "ranges": [{"start": "0x42a828", "end": "0x42b62c"}, {"start": "0x42b634", "end": "0x42b6f2"}], "total_bytes": 3780, "span_bytes": 3787, "non_contiguous": true, "contains_entry": true}}}, "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": 16} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x554be0.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x554be0.json new file mode 100644 index 000000000..1c6db0433 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x554be0.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_cb52eefb87a67d823cc549581ddd28699b9f61dea3cd7d62741a50c85d8f85b4\",\"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\":\"resolve_containing_procedure\",\"parameters\":{\"address\":\"0x554be0\"},\"raw_result\":{\"query_address\":\"0x554be0\",\"found\":true,\"procedure\":{\"address\":\"0x554be0\",\"name\":\"FUN_00554be0\",\"classification\":{\"external\":false,\"thunk\":false,\"thunk_target\":null,\"provenance\":\"ghidra-function-manager\"},\"body\":{\"available\":true,\"provenance\":\"ghidra-function-body-address-set\",\"ranges\":[{\"start\":\"0x554be0\",\"end\":\"0x554c5a\"},{\"start\":\"0x554c82\",\"end\":\"0x5551b0\"},{\"start\":\"0x555288\",\"end\":\"0x555ae7\"}],\"total_bytes\":3594,\"span_bytes\":3848,\"non_contiguous\":true,\"contains_entry\":true}}},\"normalized_result\":{\"query_address\":\"0x554be0\",\"found\":true,\"procedure\":{\"address\":\"0x554be0\",\"name\":\"FUN_00554be0\",\"classification\":{\"external\":false,\"thunk\":false,\"thunk_target\":null,\"provenance\":\"ghidra-function-manager\"},\"body\":{\"available\":true,\"provenance\":\"ghidra-function-body-address-set\",\"ranges\":[{\"start\":\"0x554be0\",\"end\":\"0x554c5a\"},{\"start\":\"0x554c82\",\"end\":\"0x5551b0\"},{\"start\":\"0x555288\",\"end\":\"0x555ae7\"}],\"total_bytes\":3594,\"span_bytes\":3848,\"non_contiguous\":true,\"contains_entry\":true}}},\"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_cb52eefb87a67d823cc549581ddd28699b9f61dea3cd7d62741a50c85d8f85b4", "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": "resolve_containing_procedure", "parameters": {"address": "0x554be0"}, "raw_result": {"query_address": "0x554be0", "found": true, "procedure": {"address": "0x554be0", "name": "FUN_00554be0", "classification": {"external": false, "thunk": false, "thunk_target": null, "provenance": "ghidra-function-manager"}, "body": {"available": true, "provenance": "ghidra-function-body-address-set", "ranges": [{"start": "0x554be0", "end": "0x554c5a"}, {"start": "0x554c82", "end": "0x5551b0"}, {"start": "0x555288", "end": "0x555ae7"}], "total_bytes": 3594, "span_bytes": 3848, "non_contiguous": true, "contains_entry": true}}}, "normalized_result": {"query_address": "0x554be0", "found": true, "procedure": {"address": "0x554be0", "name": "FUN_00554be0", "classification": {"external": false, "thunk": false, "thunk_target": null, "provenance": "ghidra-function-manager"}, "body": {"available": true, "provenance": "ghidra-function-body-address-set", "ranges": [{"start": "0x554be0", "end": "0x554c5a"}, {"start": "0x554c82", "end": "0x5551b0"}, {"start": "0x555288", "end": "0x555ae7"}], "total_bytes": 3594, "span_bytes": 3848, "non_contiguous": true, "contains_entry": true}}}, "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 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x555ce8.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x555ce8.json new file mode 100644 index 000000000..5c92f876f --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x555ce8.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_9e158a002e9d6b8bf48f3cc3ef7bbd8163b5bcd08cf5c8dae7fe113741896dc2\",\"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\":\"resolve_containing_procedure\",\"parameters\":{\"address\":\"0x555ce8\"},\"raw_result\":{\"query_address\":\"0x555ce8\",\"found\":false,\"procedure\":null,\"reason\":\"not_in_procedure\"},\"normalized_result\":{\"query_address\":\"0x555ce8\",\"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_9e158a002e9d6b8bf48f3cc3ef7bbd8163b5bcd08cf5c8dae7fe113741896dc2", "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": "resolve_containing_procedure", "parameters": {"address": "0x555ce8"}, "raw_result": {"query_address": "0x555ce8", "found": false, "procedure": null, "reason": "not_in_procedure"}, "normalized_result": {"query_address": "0x555ce8", "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": 12} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x5569d8.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x5569d8.json new file mode 100644 index 000000000..589323419 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x5569d8.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_80176798977a510d95cfc0238945acfb72306f178558c6259ca77f86eef1558f\",\"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\":\"resolve_containing_procedure\",\"parameters\":{\"address\":\"0x5569d8\"},\"raw_result\":{\"query_address\":\"0x5569d8\",\"found\":false,\"procedure\":null,\"reason\":\"not_in_procedure\"},\"normalized_result\":{\"query_address\":\"0x5569d8\",\"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_80176798977a510d95cfc0238945acfb72306f178558c6259ca77f86eef1558f", "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": "resolve_containing_procedure", "parameters": {"address": "0x5569d8"}, "raw_result": {"query_address": "0x5569d8", "found": false, "procedure": null, "reason": "not_in_procedure"}, "normalized_result": {"query_address": "0x5569d8", "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": 14} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x55a640.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x55a640.json new file mode 100644 index 000000000..87e07ed76 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/m_0x55a640.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_ba381702ea969731731b8738e99f795a7739637b74e9d20ad09d9c937a57ba2d\",\"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\":\"resolve_containing_procedure\",\"parameters\":{\"address\":\"0x55a640\"},\"raw_result\":{\"query_address\":\"0x55a640\",\"found\":true,\"procedure\":{\"address\":\"0x55a640\",\"name\":\"FUN_0055a640\",\"classification\":{\"external\":false,\"thunk\":false,\"thunk_target\":null,\"provenance\":\"ghidra-function-manager\"},\"body\":{\"available\":true,\"provenance\":\"ghidra-function-body-address-set\",\"ranges\":[{\"start\":\"0x55a640\",\"end\":\"0x55c040\"},{\"start\":\"0x55c065\",\"end\":\"0x55c16e\"},{\"start\":\"0x55cadd\",\"end\":\"0x55f0fc\"}],\"total_bytes\":16683,\"span_bytes\":19133,\"non_contiguous\":true,\"contains_entry\":true}}},\"normalized_result\":{\"query_address\":\"0x55a640\",\"found\":true,\"procedure\":{\"address\":\"0x55a640\",\"name\":\"FUN_0055a640\",\"classification\":{\"external\":false,\"thunk\":false,\"thunk_target\":null,\"provenance\":\"ghidra-function-manager\"},\"body\":{\"available\":true,\"provenance\":\"ghidra-function-body-address-set\",\"ranges\":[{\"start\":\"0x55a640\",\"end\":\"0x55c040\"},{\"start\":\"0x55c065\",\"end\":\"0x55c16e\"},{\"start\":\"0x55cadd\",\"end\":\"0x55f0fc\"}],\"total_bytes\":16683,\"span_bytes\":19133,\"non_contiguous\":true,\"contains_entry\":true}}},\"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_ba381702ea969731731b8738e99f795a7739637b74e9d20ad09d9c937a57ba2d", "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": "resolve_containing_procedure", "parameters": {"address": "0x55a640"}, "raw_result": {"query_address": "0x55a640", "found": true, "procedure": {"address": "0x55a640", "name": "FUN_0055a640", "classification": {"external": false, "thunk": false, "thunk_target": null, "provenance": "ghidra-function-manager"}, "body": {"available": true, "provenance": "ghidra-function-body-address-set", "ranges": [{"start": "0x55a640", "end": "0x55c040"}, {"start": "0x55c065", "end": "0x55c16e"}, {"start": "0x55cadd", "end": "0x55f0fc"}], "total_bytes": 16683, "span_bytes": 19133, "non_contiguous": true, "contains_entry": true}}}, "normalized_result": {"query_address": "0x55a640", "found": true, "procedure": {"address": "0x55a640", "name": "FUN_0055a640", "classification": {"external": false, "thunk": false, "thunk_target": null, "provenance": "ghidra-function-manager"}, "body": {"available": true, "provenance": "ghidra-function-body-address-set", "ranges": [{"start": "0x55a640", "end": "0x55c040"}, {"start": "0x55c065", "end": "0x55c16e"}, {"start": "0x55cadd", "end": "0x55f0fc"}], "total_bytes": 16683, "span_bytes": 19133, "non_contiguous": true, "contains_entry": true}}}, "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": 15} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_conv.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_conv.json new file mode 100644 index 000000000..0bf3e6c32 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_conv.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_cfae2c4ebf15d07c7e603c57ba08d1b6e50c6e356e171b72aa1f520ffc8be5b0\",\"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\":\"0x554be0\"},\"raw_result\":{\"value\":\"\\r\\nvoid FUN_00554be0(char *param_1,undefined4 param_2,undefined4 param_3,char *param_4)\\r\\n\\r\\n{\\r\\n char cVar1;\\r\\n undefined4 uVar2;\\r\\n int iVar3;\\r\\n char *pcVar4;\\r\\n undefined4 *puVar5;\\r\\n char *pcVar6;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n byte bVar7;\\r\\n float10 in_ST0;\\r\\n float10 fVar8;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 in_ST3;\\r\\n float10 in_ST4;\\r\\n float10 in_ST5;\\r\\n float10 in_ST6;\\r\\n undefined4 local_318;\\r\\n undefined1 local_314 [16];\\r\\n undefined1 local_304 [16];\\r\\n undefined1 local_2f4 [16];\\r\\n undefined1 local_2e4 [16];\\r\\n undefined4 local_2d4;\\r\\n char local_2d0 [16];\\r\\n undefined4 local_2c0;\\r\\n char local_2bc [16];\\r\\n undefined4 local_2ac;\\r\\n char local_2a8 [16];\\r\\n undefined4 local_298;\\r\\n char local_294 [16];\\r\\n undefined1 local_284 [16];\\r\\n undefined1 local_274 [16];\\r\\n undefined1 local_264 [16];\\r\\n undefined1 local_254 [16];\\r\\n undefined1 local_244 [16];\\r\\n undefined1 local_234 [16];\\r\\n char *local_224;\\r\\n undefined1 local_220 [16];\\r\\n undefined1 local_210 [16];\\r\\n undefined1 local_200 [16];\\r\\n undefined1 local_1f0 [16];\\r\\n undefined1 local_1e0 [16];\\r\\n undefined1 local_1d0 [16];\\r\\n undefined1 local_1c0 [16];\\r\\n undefined1 local_1b0 [256];\\r\\n undefined1 local_b0 [16];\\r\\n undefined4 local_a0;\\r\\n char *local_9c;\\r\\n undefined4 local_98;\\r\\n undefined1 local_94 [16];\\r\\n undefined1 local_84 [8];\\r\\n undefined4 uStack_7c;\\r\\n undefined1 auStack_78 [12];\\r\\n undefined4 uStack_6c;\\r\\n undefined4 uStack_68;\\r\\n undefined8 local_64;\\r\\n undefined2 uStack_5c;\\r\\n undefined2 uStack_5a;\\r\\n undefined4 uStack_58;\\r\\n undefined4 local_54;\\r\\n undefined1 *puStack_50;\\r\\n int iStack_4c;\\r\\n undefined2 uStack_48;\\r\\n undefined2 uStack_46;\\r\\n char *local_44;\\r\\n char *local_40;\\r\\n char *local_3c;\\r\\n char *local_38;\\r\\n undefined4 local_34;\\r\\n char *local_30;\\r\\n char *local_2c;\\r\\n undefined4 local_28;\\r\\n char *local_24;\\r\\n char *local_20;\\r\\n char *local_c;\\r\\n char *local_8;\\r\\n \\r\\n bVar7 = 0;\\r\\n iVar3 = 0x62;\\r\\n do {\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (iVar3 != 0);\\r\\n local_20 = (char *)0x554bfe;\\r\\n local_8 = param_1;\\r\\n _System__LStrAddRef_qqrpv(param_1);\\r\\n pcVar4 = param_4 + -0x270;\\r\\n local_24 = &LAB_00555ae8;\\r\\n local_28 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &local_28;\\r\\n iVar3 = 0;\\r\\n if ((param_4[-0x275] == '\\\\0') || (local_20 = &stack0xfffffffc, *(double *)PTR_DAT_005e6020 != 0.0)\\r\\n ) {\\r\\n cVar1 = *local_8;\\r\\n local_20 = &stack0xfffffffc;\\r\\n switch(cVar1) {\\r\\n case 'B':\\r\\n case 'D':\\r\\n case 'X':\\r\\n if (param_4[-0x275] == '\\\\0') {\\r\\n iVar3 = 1;\\r\\n local_20 = &stack0xfffffffc;\\r\\n }\\r\\n else {\\r\\n local_20 = &stack0xfffffffc;\\r\\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\\r\\n local_2c = (char *)0x554d44;\\r\\n local_20 = &stack0xfffffffc;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_44,cVar1);\\r\\n local_2c = (char *)0x554d51;\\r\\n iVar3 = _System__LStrPos_qqrv(local_44,\\\"WBXDMLS\\\");\\r\\n }\\r\\n }\\r\\n break;\\r\\n case 'L':\\r\\n case 'M':\\r\\n case 'S':\\r\\n case 'W':\\r\\n local_20 = &stack0xfffffffc;\\r\\n if (param_4[-0x276] != '\\\\0') {\\r\\n local_2c = (char *)0x554cbb;\\r\\n local_20 = &stack0xfffffffc;\\r\\n _System__VarFromInt_qqrr14System_Variantxixi(&local_2c,1,1);\\r\\n local_2c = local_20;\\r\\n local_30 = local_24;\\r\\n local_34._0_2_ = (undefined2)local_28;\\r\\n local_34._2_2_ = (undefined2)((uint)local_28 >> 0x10);\\r\\n local_38 = local_20;\\r\\n local_3c = (char *)0x554cd1;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_40,cVar1);\\r\\n local_3c = (char *)0x554cde;\\r\\n uVar2 = _System__LStrPos_qqrv(local_40,\\\"WBXDMLS\\\");\\r\\n local_3c = (char *)0x554cea;\\r\\n _System__VarFromInt_qqrr14System_Variantxixi(&local_3c,uVar2,0xfc);\\r\\n local_3c = local_30;\\r\\n local_40 = (char *)CONCAT22(local_34._2_2_,(undefined2)local_34);\\r\\n local_44 = local_38;\\r\\n uStack_48 = SUB42(local_30,0);\\r\\n uStack_46 = (undefined2)((uint)local_30 >> 0x10);\\r\\n iStack_4c = CONCAT31((int3)((uint)param_4 >> 8),param_4[-0x275]);\\r\\n puStack_50 = &stack0xffffffe4;\\r\\n local_54 = 0x554d09;\\r\\n IIF();\\r\\n local_54 = 0x554d11;\\r\\n iVar3 = _System__VarToInt_qqrrx14System_Variant(&stack0xffffffe4);\\r\\n }\\r\\n break;\\r\\n case 'Q':\\r\\n local_20 = &stack0xfffffffc;\\r\\n if (param_4[-0x276] != '\\\\0') {\\r\\n iVar3 = 1;\\r\\n local_20 = &stack0xfffffffc;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (iVar3 - 1U < 7) {\\r\\n if (*local_8 == 'Q') {\\r\\n local_2c = (char *)0x554d79;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n local_2c = (char *)0x554d8c;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"LAMT1\\\");\\r\\n *(double *)(param_4 + -0x110) = (double)in_ST0;\\r\\n local_2c = (char *)0x554da6;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"MAMT1\\\");\\r\\n *(double *)(param_4 + -0x108) = (double)in_ST1;\\r\\n local_2c = (char *)0x554dc0;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"SAMT1\\\");\\r\\n *(double *)(param_4 + -0x100) = (double)in_ST2;\\r\\n local_2c = (char *)0x554dda;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"TAMT1\\\");\\r\\n *(double *)(param_4 + -0x118) = (double)in_ST3;\\r\\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\\r\\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\\r\\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\\r\\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\\r\\n *(double *)(param_4 + -0x110) =\\r\\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\\r\\n *(double *)(param_4 + -0x108) =\\r\\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\\r\\n *(double *)(param_4 + -0x100) =\\r\\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\\r\\n local_2c = (char *)0x0;\\r\\n local_30 = (char *)0x1;\\r\\n local_34._0_2_ = 0;\\r\\n local_34._2_2_ = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n local_38 = *(char **)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_40 = (char *)0x554f81;\\r\\n OPTIMIZ();\\r\\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\\r\\n pcVar6 = param_4 + -0x118;\\r\\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\\r\\n *(undefined4 *)pcVar6 = *puVar5;\\r\\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\\r\\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\\r\\n }\\r\\n }\\r\\n else {\\r\\n local_2c = (char *)0x0;\\r\\n local_30 = (char *)0x0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\\r\\n local_3c = SUB104(fVar8,0);\\r\\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\\r\\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_40 = (char *)0x554e71;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x110) = (double)in_ST4;\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\\r\\n puStack_50 = SUB104(fVar8,0);\\r\\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\\r\\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_54 = 0x554e9c;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x108) = (double)in_ST5;\\r\\n local_54 = 0;\\r\\n uStack_58 = 0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x100) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\\r\\n local_64 = SUB108(fVar8,0);\\r\\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n uStack_68 = 0x554ec7;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x100) = (double)in_ST6;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\\r\\n *(double *)(param_4 + -0x100);\\r\\n }\\r\\n }\\r\\n local_2c = (char *)0x554fa7;\\r\\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\\r\\n local_2c = (char *)0x554fb5;\\r\\n _System__VarFromReal_qqrv(&local_54);\\r\\n local_2c = (char *)0x554fcb;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"LAMT1\\\",&local_54);\\r\\n local_2c = (char *)0x554fd9;\\r\\n _System__VarFromReal_qqrv(&local_64);\\r\\n local_2c = (char *)0x554fef;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"MAMT1\\\",&local_64);\\r\\n local_2c = (char *)0x554ffd;\\r\\n _System__VarFromReal_qqrv(auStack_78 + 4);\\r\\n local_2c = (char *)0x555013;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"SAMT1\\\",auStack_78 + 4);\\r\\n local_2c = (char *)0x555021;\\r\\n _System__VarFromReal_qqrv(local_84);\\r\\n local_2c = (char *)0x555037;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"TAMT1\\\",local_84);\\r\\n local_2c = (char *)0x555045;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n }\\r\\n else {\\r\\n local_2c = *(char **)(param_4 + -0x280);\\r\\n local_30 = local_8;\\r\\n local_34._0_2_ = 0x505d;\\r\\n local_34._2_2_ = 0x55;\\r\\n cVar1 = MPOS();\\r\\n if ((cVar1 == '\\\\0') || (param_4[-0x281] != '\\\\0')) {\\r\\n *(int *)(param_4 + iVar3 * 4 + -0x2a8) = *(int *)(param_4 + iVar3 * 4 + -0x2a8) + 1;\\r\\n fVar8 = (float10)*(int *)(param_4 + iVar3 * 4 + -0x2a8);\\r\\n local_3c = SUB104(fVar8,0);\\r\\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\\r\\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_40 = (char *)0x555102;\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"00000\\\",&local_9c);\\r\\n local_40 = local_9c;\\r\\n local_44 = (char *)0x55511d;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc\\r\\n (&local_a0,CONCAT31(0x555b,(&UNK_00555b07)[iVar3]));\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x55512c;\\r\\n _System__LStrCat3_qqrv(&local_c,local_a0,pcVar6);\\r\\n local_40 = (char *)0x55513a;\\r\\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\\r\\n local_40 = (char *)0x555148;\\r\\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_b0,local_c);\\r\\n local_40 = (char *)0x555161;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"BDCODE1\\\",local_b0);\\r\\n local_40 = (char *)0x55516f;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n local_40 = (char *)0x55517b;\\r\\n FUN_00447cd8(pcVar4,local_8,1);\\r\\n local_40 = (char *)0x55518e;\\r\\n _System__LStrToString_qqrv(local_1b0,local_c,0xff);\\r\\n local_40 = (char *)0x55519e;\\r\\n _System__PStrNCpy_qqrp28System__SmallString_iuc_255_t1uc(param_4 + -0x268,local_1b0,6);\\r\\n local_40 = (char *)0x5551a8;\\r\\n FUN_0042ec30(local_c,1);\\r\\n switch(iVar3) {\\r\\n case 1:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7bc) = *(undefined4 *)(param_4 + -0x2a4);\\r\\n break;\\r\\n case 2:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a0) = *(undefined4 *)(param_4 + -0x2a0);\\r\\n break;\\r\\n case 3:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b8) = *(undefined4 *)(param_4 + -0x29c);\\r\\n break;\\r\\n case 4:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a4) = *(undefined4 *)(param_4 + -0x298);\\r\\n break;\\r\\n case 5:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b0) = *(undefined4 *)(param_4 + -0x294);\\r\\n break;\\r\\n case 6:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7ac) = *(undefined4 *)(param_4 + -0x290);\\r\\n break;\\r\\n case 7:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b4) = *(undefined4 *)(param_4 + -0x28c);\\r\\n }\\r\\n local_40 = (char *)0x555297;\\r\\n _Apodset_TApolloTable_AppendBlank_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8));\\r\\n local_40 = (char *)0x5552a5;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1c0,param_4 + -0x268);\\r\\n local_40 = (char *)0x5552bf;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b7c,local_1c0);\\r\\n local_40 = (char *)0x5552cd;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1d0,param_4 + -0x237);\\r\\n local_40 = (char *)0x5552e7;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b8c,local_1d0);\\r\\n local_40 = (char *)0x5552f8;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1e0,param_4 + -0x1d1);\\r\\n local_40 = (char *)0x555312;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b9c,local_1e0);\\r\\n local_40 = (char *)0x555323;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1f0,param_4 + -0x157);\\r\\n local_40 = (char *)0x55533d;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555bac,local_1f0);\\r\\n local_40 = (char *)0x55534e;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_200,param_4 + -0x148);\\r\\n local_40 = (char *)0x555368;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"BQCODE\\\",local_200);\\r\\n local_40 = (char *)0x555376;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_210,param_4 + -0x255);\\r\\n local_40 = (char *)0x555390;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"EQCODE\\\",local_210);\\r\\n local_40 = (char *)0x5553a1;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_220,param_4 + -0x133);\\r\\n local_40 = (char *)0x5553bb;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"WQCODE\\\",local_220);\\r\\n if (param_4[-0x70] != '\\\\0') {\\r\\n local_40 = \\\"BD\\\";\\r\\n local_44 = (char *)0x5553dd;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_224,*local_c);\\r\\n local_44 = local_224;\\r\\n uStack_48 = 0x53e9;\\r\\n uStack_46 = 0x55;\\r\\n cVar1 = MPOS();\\r\\n if (cVar1 != '\\\\0') {\\r\\n in_ST2 = (float10)*(double *)(param_4 + -0x60);\\r\\n local_40 = (char *)0x555402;\\r\\n _System__VarFromReal_qqrv(local_234);\\r\\n local_40 = (char *)0x55541c;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"ADJ_L\\\",local_234);\\r\\n in_ST1 = (float10)*(double *)(param_4 + -0x58);\\r\\n local_40 = (char *)0x55542d;\\r\\n _System__VarFromReal_qqrv(local_244);\\r\\n local_40 = (char *)0x555447;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"ADJ_M\\\",local_244);\\r\\n in_ST0 = (float10)*(double *)(param_4 + -0x50);\\r\\n local_40 = (char *)0x555458;\\r\\n _System__VarFromReal_qqrv(local_254);\\r\\n local_40 = (char *)0x555472;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"ADJ_S\\\",local_254);\\r\\n local_40 = (char *)0x555483;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_264,param_4 + -0x38);\\r\\n local_40 = (char *)0x55549d;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"SBMOK\\\",local_264);\\r\\n local_40 = (char *)0x5554aa;\\r\\n _System__VarFromBool_qqrr14System_Variantxo(local_274,1);\\r\\n local_40 = (char *)0x5554c4;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"S_ADJ\\\",local_274);\\r\\n }\\r\\n }\\r\\n local_40 = (char *)0x5554d8;\\r\\n _System__VarFromInt_qqrr14System_Variantxixi(local_284,*(undefined2 *)(param_4 + -6),2);\\r\\n local_40 = (char *)0x5554f2;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555c48,local_284);\\r\\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\\r\\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\\r\\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\\r\\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\\r\\n *(double *)(param_4 + -0x110) =\\r\\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\\r\\n *(double *)(param_4 + -0x108) =\\r\\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\\r\\n *(double *)(param_4 + -0x100) =\\r\\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\\r\\n if (*local_8 == 'B') {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x1;\\r\\n uStack_48 = 0;\\r\\n uStack_46 = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_54 = 0x5556a1;\\r\\n OPTIMIZ();\\r\\n }\\r\\n else if (*local_8 == 'D') {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x1;\\r\\n uStack_48 = 0;\\r\\n uStack_46 = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_54 = 0x5556cd;\\r\\n OPTIMIZ();\\r\\n }\\r\\n else {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x1;\\r\\n uStack_48 = 0;\\r\\n uStack_46 = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_54 = 0x5556ed;\\r\\n OPTIMIZ();\\r\\n }\\r\\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\\r\\n pcVar6 = param_4 + -0x118;\\r\\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\\r\\n *(undefined4 *)pcVar6 = *puVar5;\\r\\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\\r\\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\\r\\n }\\r\\n }\\r\\n else {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\\r\\n puStack_50 = SUB104(fVar8,0);\\r\\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\\r\\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_54 = 0x555582;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x110) = (double)in_ST0;\\r\\n local_54 = 0;\\r\\n uStack_58 = 0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\\r\\n local_64 = SUB108(fVar8,0);\\r\\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n uStack_68 = 0x5555ad;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x108) = (double)in_ST1;\\r\\n uStack_68 = 0;\\r\\n uStack_6c = 0;\\r\\n auStack_78._0_10_ =\\r\\n ((float10)*(double *)(param_4 + -0x100) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\\r\\n uStack_7c = 0x5555d8;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x100) = (double)in_ST2;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\\r\\n *(double *)(param_4 + -0x100);\\r\\n }\\r\\n }\\r\\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\\r\\n iVar3 = 2;\\r\\n puVar5 = (undefined4 *)PTR_PTR_005e5f40;\\r\\n do {\\r\\n puVar5 = puVar5 + 1;\\r\\n local_40 = (char *)0x55573a;\\r\\n _System__VarFromReal_qqrv(local_294);\\r\\n local_40 = local_294;\\r\\n local_44 = (char *)0x555753;\\r\\n _System__LStrCat3_qqrv(&local_298,&DAT_00555c54,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x555769;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_298,pcVar6);\\r\\n local_40 = (char *)0x55577a;\\r\\n _System__VarFromReal_qqrv(local_2a8);\\r\\n local_40 = local_2a8;\\r\\n local_44 = (char *)0x555793;\\r\\n _System__LStrCat3_qqrv(&local_2ac,&DAT_00555c64,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x5557a9;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2ac,pcVar6);\\r\\n local_40 = (char *)0x5557ba;\\r\\n _System__VarFromReal_qqrv(local_2bc);\\r\\n local_40 = local_2bc;\\r\\n local_44 = (char *)0x5557d3;\\r\\n _System__LStrCat3_qqrv(&local_2c0,&DAT_00555c74,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x5557e9;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2c0,pcVar6);\\r\\n local_40 = (char *)0x5557fa;\\r\\n _System__VarFromReal_qqrv(local_2d0);\\r\\n local_40 = local_2d0;\\r\\n local_44 = (char *)0x555813;\\r\\n _System__LStrCat3_qqrv(&local_2d4,&DAT_00555c84,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x555829;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2d4,pcVar6);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (iVar3 != 0);\\r\\n }\\r\\n cVar1 = *local_c;\\r\\n if (((cVar1 == 'B') || (cVar1 == 'D')) || (cVar1 == 'X')) {\\r\\n local_40 = (char *)0x55585a;\\r\\n _System__VarFromReal_qqrv(local_2e4);\\r\\n local_40 = (char *)0x555874;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"NAGCD\\\",local_2e4);\\r\\n local_40 = (char *)0x555881;\\r\\n _System__VarFromBool_qqrr14System_Variantxo(local_2f4,1);\\r\\n local_40 = (char *)0x55589b;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555ca4,local_2f4);\\r\\n local_40 = (char *)0x5558a8;\\r\\n _System__VarFromBool_qqrr14System_Variantxo(local_304,1);\\r\\n local_40 = (char *)0x5558c2;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"BCONT\\\",local_304);\\r\\n local_40 = (char *)0x5558d3;\\r\\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString\\r\\n (local_314,*(undefined4 *)(param_4 + -0x11c));\\r\\n local_40 = (char *)0x5558ed;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"IFORM\\\",local_314);\\r\\n local_40 = \\\"BDCODE=\\\\\\\"\\\";\\r\\n local_44 = local_8;\\r\\n uStack_48 = 0x5ce4;\\r\\n uStack_46 = 0x55;\\r\\n iStack_4c = 0x55590a;\\r\\n _System__LStrCatN_qqrv(&local_318,3);\\r\\n iStack_4c = 0x55591e;\\r\\n _Apodset_TApolloTable_Query_qqrx17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x274),local_318);\\r\\n iStack_4c = 0x555934;\\r\\n _System__FillChar_qqrpvic(*(int *)PTR_DAT_005e5e84 + 0x2c,4,0);\\r\\n iStack_4c = 0x555942;\\r\\n iStack_4c = _Apodset_TApolloTable_Count_qqrv(*(undefined4 *)(param_4 + -0x274));\\r\\n *(int *)(param_4 + -0x80) = iStack_4c;\\r\\n iStack_4c = iStack_4c + 1;\\r\\n puStack_50 = (undefined1 *)0x555966;\\r\\n _System__DynArraySetLength_qqrv(*(int *)PTR_DAT_005e5e84 + 0x2c,&DAT_004226a4,1);\\r\\n iStack_4c = 1;\\r\\n puStack_50 = (undefined1 *)0xffffffff;\\r\\n local_54 = 0xffffffff;\\r\\n uStack_58 = *(undefined4 *)(*(int *)PTR_DAT_005e5e84 + 0x2c);\\r\\n uStack_5c = 0x5986;\\r\\n uStack_5a = 0x55;\\r\\n local_3c = (char *)_System__DynArrayHigh_qqrv(uStack_58);\\r\\n local_40 = (char *)0x555999;\\r\\n FUN_0043d104(*(undefined4 *)(param_4 + -0x274),1,0);\\r\\n local_40 = param_4;\\r\\n local_44 = (char *)0x5559a2;\\r\\n FUN_005544b0();\\r\\n }\\r\\n local_40 = (char *)0x5559b1;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n local_40 = (char *)0x5559c1;\\r\\n _System__LStrCat_qqrv(param_4 + -0x280,local_8);\\r\\n local_40 = (char *)0x5559d4;\\r\\n _System__LStrCat_qqrv(param_4 + -0x288,local_c);\\r\\n }\\r\\n else {\\r\\n local_34._0_2_ = 0x507b;\\r\\n local_34._2_2_ = 0x55;\\r\\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\\r\\n local_34 = &local_98;\\r\\n local_38 = (char *)0x555093;\\r\\n uVar2 = _System__LStrPos_qqrv(local_8,*(undefined4 *)(param_4 + -0x280));\\r\\n local_38 = (char *)0x5550a8;\\r\\n _System__LStrCopy_qqrv(*(undefined4 *)(param_4 + -0x288),uVar2,6);\\r\\n local_38 = (char *)0x5550b9;\\r\\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_94,local_98);\\r\\n local_38 = (char *)0x5550d2;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"BDCODE1\\\",local_94);\\r\\n }\\r\\n }\\r\\n }\\r\\n pcVar4 = local_20;\\r\\n *in_FS_OFFSET = local_28;\\r\\n local_20 = &LAB_00555af2;\\r\\n local_24 = (char *)0x5559ef;\\r\\n _System__LStrClr_qqrpv(&local_318,local_28,pcVar4);\\r\\n local_24 = (char *)0x555a05;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_314,__xp_14System_Variant_exref,4);\\r\\n local_24 = (char *)0x555a10;\\r\\n _System__LStrClr_qqrpv(&local_2d4);\\r\\n local_24 = (char *)0x555a1b;\\r\\n _System__VarClr_qqrr14System_Variant(local_2d0);\\r\\n local_24 = (char *)0x555a26;\\r\\n _System__LStrClr_qqrpv(&local_2c0);\\r\\n local_24 = (char *)0x555a31;\\r\\n _System__VarClr_qqrr14System_Variant(local_2bc);\\r\\n local_24 = (char *)0x555a3c;\\r\\n _System__LStrClr_qqrpv(&local_2ac);\\r\\n local_24 = (char *)0x555a47;\\r\\n _System__VarClr_qqrr14System_Variant(local_2a8);\\r\\n local_24 = (char *)0x555a52;\\r\\n _System__LStrClr_qqrpv(&local_298);\\r\\n local_24 = (char *)0x555a68;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_294,__xp_14System_Variant_exref,7);\\r\\n local_24 = (char *)0x555a73;\\r\\n _System__LStrClr_qqrpv(&local_224);\\r\\n local_24 = (char *)0x555a89;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_220,__xp_14System_Variant_exref,7);\\r\\n local_24 = (char *)0x555a94;\\r\\n _System__VarClr_qqrr14System_Variant(local_b0);\\r\\n local_24 = (char *)0x555aa4;\\r\\n _System__LStrArrayClr_qqrpvi(&local_a0,3);\\r\\n local_24 = (char *)0x555aba;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_94,__xp_14System_Variant_exref,5);\\r\\n local_24 = (char *)0x555ac7;\\r\\n _System__LStrArrayClr_qqrpvi(&local_44,2);\\r\\n local_24 = (char *)0x555ada;\\r\\n _System__FinalizeArray_qqrpvt1ui(&local_3c,__xp_14System_Variant_exref,3);\\r\\n local_24 = (char *)0x555ae7;\\r\\n _System__LStrArrayClr_qqrpvi(&local_c,2);\\r\\n return;\\r\\n}\\r\\n\\r\\n\",\"limitations\":[\"Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x554c12 (push 0x555ae8 followed by fs-segment stack chaining); handler 0x555ae8 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region.\"]},\"normalized_result\":\"\\r\\nvoid FUN_00554be0(char *param_1,undefined4 param_2,undefined4 param_3,char *param_4)\\r\\n\\r\\n{\\r\\n char cVar1;\\r\\n undefined4 uVar2;\\r\\n int iVar3;\\r\\n char *pcVar4;\\r\\n undefined4 *puVar5;\\r\\n char *pcVar6;\\r\\n undefined4 *in_FS_OFFSET;\\r\\n byte bVar7;\\r\\n float10 in_ST0;\\r\\n float10 fVar8;\\r\\n float10 in_ST1;\\r\\n float10 in_ST2;\\r\\n float10 in_ST3;\\r\\n float10 in_ST4;\\r\\n float10 in_ST5;\\r\\n float10 in_ST6;\\r\\n undefined4 local_318;\\r\\n undefined1 local_314 [16];\\r\\n undefined1 local_304 [16];\\r\\n undefined1 local_2f4 [16];\\r\\n undefined1 local_2e4 [16];\\r\\n undefined4 local_2d4;\\r\\n char local_2d0 [16];\\r\\n undefined4 local_2c0;\\r\\n char local_2bc [16];\\r\\n undefined4 local_2ac;\\r\\n char local_2a8 [16];\\r\\n undefined4 local_298;\\r\\n char local_294 [16];\\r\\n undefined1 local_284 [16];\\r\\n undefined1 local_274 [16];\\r\\n undefined1 local_264 [16];\\r\\n undefined1 local_254 [16];\\r\\n undefined1 local_244 [16];\\r\\n undefined1 local_234 [16];\\r\\n char *local_224;\\r\\n undefined1 local_220 [16];\\r\\n undefined1 local_210 [16];\\r\\n undefined1 local_200 [16];\\r\\n undefined1 local_1f0 [16];\\r\\n undefined1 local_1e0 [16];\\r\\n undefined1 local_1d0 [16];\\r\\n undefined1 local_1c0 [16];\\r\\n undefined1 local_1b0 [256];\\r\\n undefined1 local_b0 [16];\\r\\n undefined4 local_a0;\\r\\n char *local_9c;\\r\\n undefined4 local_98;\\r\\n undefined1 local_94 [16];\\r\\n undefined1 local_84 [8];\\r\\n undefined4 uStack_7c;\\r\\n undefined1 auStack_78 [12];\\r\\n undefined4 uStack_6c;\\r\\n undefined4 uStack_68;\\r\\n undefined8 local_64;\\r\\n undefined2 uStack_5c;\\r\\n undefined2 uStack_5a;\\r\\n undefined4 uStack_58;\\r\\n undefined4 local_54;\\r\\n undefined1 *puStack_50;\\r\\n int iStack_4c;\\r\\n undefined2 uStack_48;\\r\\n undefined2 uStack_46;\\r\\n char *local_44;\\r\\n char *local_40;\\r\\n char *local_3c;\\r\\n char *local_38;\\r\\n undefined4 local_34;\\r\\n char *local_30;\\r\\n char *local_2c;\\r\\n undefined4 local_28;\\r\\n char *local_24;\\r\\n char *local_20;\\r\\n char *local_c;\\r\\n char *local_8;\\r\\n \\r\\n bVar7 = 0;\\r\\n iVar3 = 0x62;\\r\\n do {\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (iVar3 != 0);\\r\\n local_20 = (char *)0x554bfe;\\r\\n local_8 = param_1;\\r\\n _System__LStrAddRef_qqrpv(param_1);\\r\\n pcVar4 = param_4 + -0x270;\\r\\n local_24 = &LAB_00555ae8;\\r\\n local_28 = *in_FS_OFFSET;\\r\\n *in_FS_OFFSET = &local_28;\\r\\n iVar3 = 0;\\r\\n if ((param_4[-0x275] == '\\\\0') || (local_20 = &stack0xfffffffc, *(double *)PTR_DAT_005e6020 != 0.0)\\r\\n ) {\\r\\n cVar1 = *local_8;\\r\\n local_20 = &stack0xfffffffc;\\r\\n switch(cVar1) {\\r\\n case 'B':\\r\\n case 'D':\\r\\n case 'X':\\r\\n if (param_4[-0x275] == '\\\\0') {\\r\\n iVar3 = 1;\\r\\n local_20 = &stack0xfffffffc;\\r\\n }\\r\\n else {\\r\\n local_20 = &stack0xfffffffc;\\r\\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\\r\\n local_2c = (char *)0x554d44;\\r\\n local_20 = &stack0xfffffffc;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_44,cVar1);\\r\\n local_2c = (char *)0x554d51;\\r\\n iVar3 = _System__LStrPos_qqrv(local_44,\\\"WBXDMLS\\\");\\r\\n }\\r\\n }\\r\\n break;\\r\\n case 'L':\\r\\n case 'M':\\r\\n case 'S':\\r\\n case 'W':\\r\\n local_20 = &stack0xfffffffc;\\r\\n if (param_4[-0x276] != '\\\\0') {\\r\\n local_2c = (char *)0x554cbb;\\r\\n local_20 = &stack0xfffffffc;\\r\\n _System__VarFromInt_qqrr14System_Variantxixi(&local_2c,1,1);\\r\\n local_2c = local_20;\\r\\n local_30 = local_24;\\r\\n local_34._0_2_ = (undefined2)local_28;\\r\\n local_34._2_2_ = (undefined2)((uint)local_28 >> 0x10);\\r\\n local_38 = local_20;\\r\\n local_3c = (char *)0x554cd1;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_40,cVar1);\\r\\n local_3c = (char *)0x554cde;\\r\\n uVar2 = _System__LStrPos_qqrv(local_40,\\\"WBXDMLS\\\");\\r\\n local_3c = (char *)0x554cea;\\r\\n _System__VarFromInt_qqrr14System_Variantxixi(&local_3c,uVar2,0xfc);\\r\\n local_3c = local_30;\\r\\n local_40 = (char *)CONCAT22(local_34._2_2_,(undefined2)local_34);\\r\\n local_44 = local_38;\\r\\n uStack_48 = SUB42(local_30,0);\\r\\n uStack_46 = (undefined2)((uint)local_30 >> 0x10);\\r\\n iStack_4c = CONCAT31((int3)((uint)param_4 >> 8),param_4[-0x275]);\\r\\n puStack_50 = &stack0xffffffe4;\\r\\n local_54 = 0x554d09;\\r\\n IIF();\\r\\n local_54 = 0x554d11;\\r\\n iVar3 = _System__VarToInt_qqrrx14System_Variant(&stack0xffffffe4);\\r\\n }\\r\\n break;\\r\\n case 'Q':\\r\\n local_20 = &stack0xfffffffc;\\r\\n if (param_4[-0x276] != '\\\\0') {\\r\\n iVar3 = 1;\\r\\n local_20 = &stack0xfffffffc;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (iVar3 - 1U < 7) {\\r\\n if (*local_8 == 'Q') {\\r\\n local_2c = (char *)0x554d79;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n local_2c = (char *)0x554d8c;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"LAMT1\\\");\\r\\n *(double *)(param_4 + -0x110) = (double)in_ST0;\\r\\n local_2c = (char *)0x554da6;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"MAMT1\\\");\\r\\n *(double *)(param_4 + -0x108) = (double)in_ST1;\\r\\n local_2c = (char *)0x554dc0;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"SAMT1\\\");\\r\\n *(double *)(param_4 + -0x100) = (double)in_ST2;\\r\\n local_2c = (char *)0x554dda;\\r\\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"TAMT1\\\");\\r\\n *(double *)(param_4 + -0x118) = (double)in_ST3;\\r\\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\\r\\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\\r\\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\\r\\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\\r\\n *(double *)(param_4 + -0x110) =\\r\\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\\r\\n *(double *)(param_4 + -0x108) =\\r\\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\\r\\n *(double *)(param_4 + -0x100) =\\r\\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\\r\\n local_2c = (char *)0x0;\\r\\n local_30 = (char *)0x1;\\r\\n local_34._0_2_ = 0;\\r\\n local_34._2_2_ = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n local_38 = *(char **)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_40 = (char *)0x554f81;\\r\\n OPTIMIZ();\\r\\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\\r\\n pcVar6 = param_4 + -0x118;\\r\\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\\r\\n *(undefined4 *)pcVar6 = *puVar5;\\r\\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\\r\\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\\r\\n }\\r\\n }\\r\\n else {\\r\\n local_2c = (char *)0x0;\\r\\n local_30 = (char *)0x0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\\r\\n local_3c = SUB104(fVar8,0);\\r\\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\\r\\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_40 = (char *)0x554e71;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x110) = (double)in_ST4;\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\\r\\n puStack_50 = SUB104(fVar8,0);\\r\\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\\r\\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_54 = 0x554e9c;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x108) = (double)in_ST5;\\r\\n local_54 = 0;\\r\\n uStack_58 = 0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x100) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\\r\\n local_64 = SUB108(fVar8,0);\\r\\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n uStack_68 = 0x554ec7;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x100) = (double)in_ST6;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\\r\\n *(double *)(param_4 + -0x100);\\r\\n }\\r\\n }\\r\\n local_2c = (char *)0x554fa7;\\r\\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\\r\\n local_2c = (char *)0x554fb5;\\r\\n _System__VarFromReal_qqrv(&local_54);\\r\\n local_2c = (char *)0x554fcb;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"LAMT1\\\",&local_54);\\r\\n local_2c = (char *)0x554fd9;\\r\\n _System__VarFromReal_qqrv(&local_64);\\r\\n local_2c = (char *)0x554fef;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"MAMT1\\\",&local_64);\\r\\n local_2c = (char *)0x554ffd;\\r\\n _System__VarFromReal_qqrv(auStack_78 + 4);\\r\\n local_2c = (char *)0x555013;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"SAMT1\\\",auStack_78 + 4);\\r\\n local_2c = (char *)0x555021;\\r\\n _System__VarFromReal_qqrv(local_84);\\r\\n local_2c = (char *)0x555037;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"TAMT1\\\",local_84);\\r\\n local_2c = (char *)0x555045;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n }\\r\\n else {\\r\\n local_2c = *(char **)(param_4 + -0x280);\\r\\n local_30 = local_8;\\r\\n local_34._0_2_ = 0x505d;\\r\\n local_34._2_2_ = 0x55;\\r\\n cVar1 = MPOS();\\r\\n if ((cVar1 == '\\\\0') || (param_4[-0x281] != '\\\\0')) {\\r\\n *(int *)(param_4 + iVar3 * 4 + -0x2a8) = *(int *)(param_4 + iVar3 * 4 + -0x2a8) + 1;\\r\\n fVar8 = (float10)*(int *)(param_4 + iVar3 * 4 + -0x2a8);\\r\\n local_3c = SUB104(fVar8,0);\\r\\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\\r\\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_40 = (char *)0x555102;\\r\\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\\\"00000\\\",&local_9c);\\r\\n local_40 = local_9c;\\r\\n local_44 = (char *)0x55511d;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc\\r\\n (&local_a0,CONCAT31(0x555b,(&UNK_00555b07)[iVar3]));\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x55512c;\\r\\n _System__LStrCat3_qqrv(&local_c,local_a0,pcVar6);\\r\\n local_40 = (char *)0x55513a;\\r\\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\\r\\n local_40 = (char *)0x555148;\\r\\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_b0,local_c);\\r\\n local_40 = (char *)0x555161;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"BDCODE1\\\",local_b0);\\r\\n local_40 = (char *)0x55516f;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n local_40 = (char *)0x55517b;\\r\\n FUN_00447cd8(pcVar4,local_8,1);\\r\\n local_40 = (char *)0x55518e;\\r\\n _System__LStrToString_qqrv(local_1b0,local_c,0xff);\\r\\n local_40 = (char *)0x55519e;\\r\\n _System__PStrNCpy_qqrp28System__SmallString_iuc_255_t1uc(param_4 + -0x268,local_1b0,6);\\r\\n local_40 = (char *)0x5551a8;\\r\\n FUN_0042ec30(local_c,1);\\r\\n switch(iVar3) {\\r\\n case 1:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7bc) = *(undefined4 *)(param_4 + -0x2a4);\\r\\n break;\\r\\n case 2:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a0) = *(undefined4 *)(param_4 + -0x2a0);\\r\\n break;\\r\\n case 3:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b8) = *(undefined4 *)(param_4 + -0x29c);\\r\\n break;\\r\\n case 4:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a4) = *(undefined4 *)(param_4 + -0x298);\\r\\n break;\\r\\n case 5:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b0) = *(undefined4 *)(param_4 + -0x294);\\r\\n break;\\r\\n case 6:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7ac) = *(undefined4 *)(param_4 + -0x290);\\r\\n break;\\r\\n case 7:\\r\\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b4) = *(undefined4 *)(param_4 + -0x28c);\\r\\n }\\r\\n local_40 = (char *)0x555297;\\r\\n _Apodset_TApolloTable_AppendBlank_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8));\\r\\n local_40 = (char *)0x5552a5;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1c0,param_4 + -0x268);\\r\\n local_40 = (char *)0x5552bf;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b7c,local_1c0);\\r\\n local_40 = (char *)0x5552cd;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1d0,param_4 + -0x237);\\r\\n local_40 = (char *)0x5552e7;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b8c,local_1d0);\\r\\n local_40 = (char *)0x5552f8;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1e0,param_4 + -0x1d1);\\r\\n local_40 = (char *)0x555312;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b9c,local_1e0);\\r\\n local_40 = (char *)0x555323;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_1f0,param_4 + -0x157);\\r\\n local_40 = (char *)0x55533d;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555bac,local_1f0);\\r\\n local_40 = (char *)0x55534e;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_200,param_4 + -0x148);\\r\\n local_40 = (char *)0x555368;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"BQCODE\\\",local_200);\\r\\n local_40 = (char *)0x555376;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_210,param_4 + -0x255);\\r\\n local_40 = (char *)0x555390;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"EQCODE\\\",local_210);\\r\\n local_40 = (char *)0x5553a1;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_220,param_4 + -0x133);\\r\\n local_40 = (char *)0x5553bb;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"WQCODE\\\",local_220);\\r\\n if (param_4[-0x70] != '\\\\0') {\\r\\n local_40 = \\\"BD\\\";\\r\\n local_44 = (char *)0x5553dd;\\r\\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_224,*local_c);\\r\\n local_44 = local_224;\\r\\n uStack_48 = 0x53e9;\\r\\n uStack_46 = 0x55;\\r\\n cVar1 = MPOS();\\r\\n if (cVar1 != '\\\\0') {\\r\\n in_ST2 = (float10)*(double *)(param_4 + -0x60);\\r\\n local_40 = (char *)0x555402;\\r\\n _System__VarFromReal_qqrv(local_234);\\r\\n local_40 = (char *)0x55541c;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"ADJ_L\\\",local_234);\\r\\n in_ST1 = (float10)*(double *)(param_4 + -0x58);\\r\\n local_40 = (char *)0x55542d;\\r\\n _System__VarFromReal_qqrv(local_244);\\r\\n local_40 = (char *)0x555447;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"ADJ_M\\\",local_244);\\r\\n in_ST0 = (float10)*(double *)(param_4 + -0x50);\\r\\n local_40 = (char *)0x555458;\\r\\n _System__VarFromReal_qqrv(local_254);\\r\\n local_40 = (char *)0x555472;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"ADJ_S\\\",local_254);\\r\\n local_40 = (char *)0x555483;\\r\\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\\r\\n (local_264,param_4 + -0x38);\\r\\n local_40 = (char *)0x55549d;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"SBMOK\\\",local_264);\\r\\n local_40 = (char *)0x5554aa;\\r\\n _System__VarFromBool_qqrr14System_Variantxo(local_274,1);\\r\\n local_40 = (char *)0x5554c4;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"S_ADJ\\\",local_274);\\r\\n }\\r\\n }\\r\\n local_40 = (char *)0x5554d8;\\r\\n _System__VarFromInt_qqrr14System_Variantxixi(local_284,*(undefined2 *)(param_4 + -6),2);\\r\\n local_40 = (char *)0x5554f2;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555c48,local_284);\\r\\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\\r\\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\\r\\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\\r\\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\\r\\n *(double *)(param_4 + -0x110) =\\r\\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\\r\\n *(double *)(param_4 + -0x108) =\\r\\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\\r\\n *(double *)(param_4 + -0x100) =\\r\\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\\r\\n if (*local_8 == 'B') {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x1;\\r\\n uStack_48 = 0;\\r\\n uStack_46 = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_54 = 0x5556a1;\\r\\n OPTIMIZ();\\r\\n }\\r\\n else if (*local_8 == 'D') {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x1;\\r\\n uStack_48 = 0;\\r\\n uStack_46 = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_54 = 0x5556cd;\\r\\n OPTIMIZ();\\r\\n }\\r\\n else {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x1;\\r\\n uStack_48 = 0;\\r\\n uStack_46 = 0;\\r\\n iVar3 = 0xb;\\r\\n do {\\r\\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (-1 < iVar3);\\r\\n local_54 = 0x5556ed;\\r\\n OPTIMIZ();\\r\\n }\\r\\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\\r\\n pcVar6 = param_4 + -0x118;\\r\\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\\r\\n *(undefined4 *)pcVar6 = *puVar5;\\r\\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\\r\\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\\r\\n }\\r\\n }\\r\\n else {\\r\\n local_40 = (char *)0x0;\\r\\n local_44 = (char *)0x0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\\r\\n puStack_50 = SUB104(fVar8,0);\\r\\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\\r\\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n local_54 = 0x555582;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x110) = (double)in_ST0;\\r\\n local_54 = 0;\\r\\n uStack_58 = 0;\\r\\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\\r\\n local_64 = SUB108(fVar8,0);\\r\\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\\r\\n uStack_68 = 0x5555ad;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x108) = (double)in_ST1;\\r\\n uStack_68 = 0;\\r\\n uStack_6c = 0;\\r\\n auStack_78._0_10_ =\\r\\n ((float10)*(double *)(param_4 + -0x100) *\\r\\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\\r\\n uStack_7c = 0x5555d8;\\r\\n MROUNDUD();\\r\\n *(double *)(param_4 + -0x100) = (double)in_ST2;\\r\\n *(double *)(param_4 + -0x118) =\\r\\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\\r\\n *(double *)(param_4 + -0x100);\\r\\n }\\r\\n }\\r\\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\\r\\n iVar3 = 2;\\r\\n puVar5 = (undefined4 *)PTR_PTR_005e5f40;\\r\\n do {\\r\\n puVar5 = puVar5 + 1;\\r\\n local_40 = (char *)0x55573a;\\r\\n _System__VarFromReal_qqrv(local_294);\\r\\n local_40 = local_294;\\r\\n local_44 = (char *)0x555753;\\r\\n _System__LStrCat3_qqrv(&local_298,&DAT_00555c54,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x555769;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_298,pcVar6);\\r\\n local_40 = (char *)0x55577a;\\r\\n _System__VarFromReal_qqrv(local_2a8);\\r\\n local_40 = local_2a8;\\r\\n local_44 = (char *)0x555793;\\r\\n _System__LStrCat3_qqrv(&local_2ac,&DAT_00555c64,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x5557a9;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2ac,pcVar6);\\r\\n local_40 = (char *)0x5557ba;\\r\\n _System__VarFromReal_qqrv(local_2bc);\\r\\n local_40 = local_2bc;\\r\\n local_44 = (char *)0x5557d3;\\r\\n _System__LStrCat3_qqrv(&local_2c0,&DAT_00555c74,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x5557e9;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2c0,pcVar6);\\r\\n local_40 = (char *)0x5557fa;\\r\\n _System__VarFromReal_qqrv(local_2d0);\\r\\n local_40 = local_2d0;\\r\\n local_44 = (char *)0x555813;\\r\\n _System__LStrCat3_qqrv(&local_2d4,&DAT_00555c84,*puVar5);\\r\\n pcVar6 = local_40;\\r\\n local_40 = (char *)0x555829;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2d4,pcVar6);\\r\\n iVar3 = iVar3 + -1;\\r\\n } while (iVar3 != 0);\\r\\n }\\r\\n cVar1 = *local_c;\\r\\n if (((cVar1 == 'B') || (cVar1 == 'D')) || (cVar1 == 'X')) {\\r\\n local_40 = (char *)0x55585a;\\r\\n _System__VarFromReal_qqrv(local_2e4);\\r\\n local_40 = (char *)0x555874;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"NAGCD\\\",local_2e4);\\r\\n local_40 = (char *)0x555881;\\r\\n _System__VarFromBool_qqrr14System_Variantxo(local_2f4,1);\\r\\n local_40 = (char *)0x55589b;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555ca4,local_2f4);\\r\\n local_40 = (char *)0x5558a8;\\r\\n _System__VarFromBool_qqrr14System_Variantxo(local_304,1);\\r\\n local_40 = (char *)0x5558c2;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"BCONT\\\",local_304);\\r\\n local_40 = (char *)0x5558d3;\\r\\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString\\r\\n (local_314,*(undefined4 *)(param_4 + -0x11c));\\r\\n local_40 = (char *)0x5558ed;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\\\"IFORM\\\",local_314);\\r\\n local_40 = \\\"BDCODE=\\\\\\\"\\\";\\r\\n local_44 = local_8;\\r\\n uStack_48 = 0x5ce4;\\r\\n uStack_46 = 0x55;\\r\\n iStack_4c = 0x55590a;\\r\\n _System__LStrCatN_qqrv(&local_318,3);\\r\\n iStack_4c = 0x55591e;\\r\\n _Apodset_TApolloTable_Query_qqrx17System_AnsiString\\r\\n (*(undefined4 *)(param_4 + -0x274),local_318);\\r\\n iStack_4c = 0x555934;\\r\\n _System__FillChar_qqrpvic(*(int *)PTR_DAT_005e5e84 + 0x2c,4,0);\\r\\n iStack_4c = 0x555942;\\r\\n iStack_4c = _Apodset_TApolloTable_Count_qqrv(*(undefined4 *)(param_4 + -0x274));\\r\\n *(int *)(param_4 + -0x80) = iStack_4c;\\r\\n iStack_4c = iStack_4c + 1;\\r\\n puStack_50 = (undefined1 *)0x555966;\\r\\n _System__DynArraySetLength_qqrv(*(int *)PTR_DAT_005e5e84 + 0x2c,&DAT_004226a4,1);\\r\\n iStack_4c = 1;\\r\\n puStack_50 = (undefined1 *)0xffffffff;\\r\\n local_54 = 0xffffffff;\\r\\n uStack_58 = *(undefined4 *)(*(int *)PTR_DAT_005e5e84 + 0x2c);\\r\\n uStack_5c = 0x5986;\\r\\n uStack_5a = 0x55;\\r\\n local_3c = (char *)_System__DynArrayHigh_qqrv(uStack_58);\\r\\n local_40 = (char *)0x555999;\\r\\n FUN_0043d104(*(undefined4 *)(param_4 + -0x274),1,0);\\r\\n local_40 = param_4;\\r\\n local_44 = (char *)0x5559a2;\\r\\n FUN_005544b0();\\r\\n }\\r\\n local_40 = (char *)0x5559b1;\\r\\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\\r\\n local_40 = (char *)0x5559c1;\\r\\n _System__LStrCat_qqrv(param_4 + -0x280,local_8);\\r\\n local_40 = (char *)0x5559d4;\\r\\n _System__LStrCat_qqrv(param_4 + -0x288,local_c);\\r\\n }\\r\\n else {\\r\\n local_34._0_2_ = 0x507b;\\r\\n local_34._2_2_ = 0x55;\\r\\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\\r\\n local_34 = &local_98;\\r\\n local_38 = (char *)0x555093;\\r\\n uVar2 = _System__LStrPos_qqrv(local_8,*(undefined4 *)(param_4 + -0x280));\\r\\n local_38 = (char *)0x5550a8;\\r\\n _System__LStrCopy_qqrv(*(undefined4 *)(param_4 + -0x288),uVar2,6);\\r\\n local_38 = (char *)0x5550b9;\\r\\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_94,local_98);\\r\\n local_38 = (char *)0x5550d2;\\r\\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\\r\\n (*(undefined4 *)(param_4 + -0x27c),\\\"BDCODE1\\\",local_94);\\r\\n }\\r\\n }\\r\\n }\\r\\n pcVar4 = local_20;\\r\\n *in_FS_OFFSET = local_28;\\r\\n local_20 = &LAB_00555af2;\\r\\n local_24 = (char *)0x5559ef;\\r\\n _System__LStrClr_qqrpv(&local_318,local_28,pcVar4);\\r\\n local_24 = (char *)0x555a05;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_314,__xp_14System_Variant_exref,4);\\r\\n local_24 = (char *)0x555a10;\\r\\n _System__LStrClr_qqrpv(&local_2d4);\\r\\n local_24 = (char *)0x555a1b;\\r\\n _System__VarClr_qqrr14System_Variant(local_2d0);\\r\\n local_24 = (char *)0x555a26;\\r\\n _System__LStrClr_qqrpv(&local_2c0);\\r\\n local_24 = (char *)0x555a31;\\r\\n _System__VarClr_qqrr14System_Variant(local_2bc);\\r\\n local_24 = (char *)0x555a3c;\\r\\n _System__LStrClr_qqrpv(&local_2ac);\\r\\n local_24 = (char *)0x555a47;\\r\\n _System__VarClr_qqrr14System_Variant(local_2a8);\\r\\n local_24 = (char *)0x555a52;\\r\\n _System__LStrClr_qqrpv(&local_298);\\r\\n local_24 = (char *)0x555a68;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_294,__xp_14System_Variant_exref,7);\\r\\n local_24 = (char *)0x555a73;\\r\\n _System__LStrClr_qqrpv(&local_224);\\r\\n local_24 = (char *)0x555a89;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_220,__xp_14System_Variant_exref,7);\\r\\n local_24 = (char *)0x555a94;\\r\\n _System__VarClr_qqrr14System_Variant(local_b0);\\r\\n local_24 = (char *)0x555aa4;\\r\\n _System__LStrArrayClr_qqrpvi(&local_a0,3);\\r\\n local_24 = (char *)0x555aba;\\r\\n _System__FinalizeArray_qqrpvt1ui(local_94,__xp_14System_Variant_exref,5);\\r\\n local_24 = (char *)0x555ac7;\\r\\n _System__LStrArrayClr_qqrpvi(&local_44,2);\\r\\n local_24 = (char *)0x555ada;\\r\\n _System__FinalizeArray_qqrpvt1ui(&local_3c,__xp_14System_Variant_exref,3);\\r\\n local_24 = (char *)0x555ae7;\\r\\n _System__LStrArrayClr_qqrpvi(&local_c,2);\\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 0x554c12 (push 0x555ae8 followed by fs-segment stack chaining); handler 0x555ae8 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_cfae2c4ebf15d07c7e603c57ba08d1b6e50c6e356e171b72aa1f520ffc8be5b0", "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": "0x554be0"}, "raw_result": {"value": "\r\nvoid FUN_00554be0(char *param_1,undefined4 param_2,undefined4 param_3,char *param_4)\r\n\r\n{\r\n char cVar1;\r\n undefined4 uVar2;\r\n int iVar3;\r\n char *pcVar4;\r\n undefined4 *puVar5;\r\n char *pcVar6;\r\n undefined4 *in_FS_OFFSET;\r\n byte bVar7;\r\n float10 in_ST0;\r\n float10 fVar8;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 in_ST3;\r\n float10 in_ST4;\r\n float10 in_ST5;\r\n float10 in_ST6;\r\n undefined4 local_318;\r\n undefined1 local_314 [16];\r\n undefined1 local_304 [16];\r\n undefined1 local_2f4 [16];\r\n undefined1 local_2e4 [16];\r\n undefined4 local_2d4;\r\n char local_2d0 [16];\r\n undefined4 local_2c0;\r\n char local_2bc [16];\r\n undefined4 local_2ac;\r\n char local_2a8 [16];\r\n undefined4 local_298;\r\n char local_294 [16];\r\n undefined1 local_284 [16];\r\n undefined1 local_274 [16];\r\n undefined1 local_264 [16];\r\n undefined1 local_254 [16];\r\n undefined1 local_244 [16];\r\n undefined1 local_234 [16];\r\n char *local_224;\r\n undefined1 local_220 [16];\r\n undefined1 local_210 [16];\r\n undefined1 local_200 [16];\r\n undefined1 local_1f0 [16];\r\n undefined1 local_1e0 [16];\r\n undefined1 local_1d0 [16];\r\n undefined1 local_1c0 [16];\r\n undefined1 local_1b0 [256];\r\n undefined1 local_b0 [16];\r\n undefined4 local_a0;\r\n char *local_9c;\r\n undefined4 local_98;\r\n undefined1 local_94 [16];\r\n undefined1 local_84 [8];\r\n undefined4 uStack_7c;\r\n undefined1 auStack_78 [12];\r\n undefined4 uStack_6c;\r\n undefined4 uStack_68;\r\n undefined8 local_64;\r\n undefined2 uStack_5c;\r\n undefined2 uStack_5a;\r\n undefined4 uStack_58;\r\n undefined4 local_54;\r\n undefined1 *puStack_50;\r\n int iStack_4c;\r\n undefined2 uStack_48;\r\n undefined2 uStack_46;\r\n char *local_44;\r\n char *local_40;\r\n char *local_3c;\r\n char *local_38;\r\n undefined4 local_34;\r\n char *local_30;\r\n char *local_2c;\r\n undefined4 local_28;\r\n char *local_24;\r\n char *local_20;\r\n char *local_c;\r\n char *local_8;\r\n \r\n bVar7 = 0;\r\n iVar3 = 0x62;\r\n do {\r\n iVar3 = iVar3 + -1;\r\n } while (iVar3 != 0);\r\n local_20 = (char *)0x554bfe;\r\n local_8 = param_1;\r\n _System__LStrAddRef_qqrpv(param_1);\r\n pcVar4 = param_4 + -0x270;\r\n local_24 = &LAB_00555ae8;\r\n local_28 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &local_28;\r\n iVar3 = 0;\r\n if ((param_4[-0x275] == '\\0') || (local_20 = &stack0xfffffffc, *(double *)PTR_DAT_005e6020 != 0.0)\r\n ) {\r\n cVar1 = *local_8;\r\n local_20 = &stack0xfffffffc;\r\n switch(cVar1) {\r\n case 'B':\r\n case 'D':\r\n case 'X':\r\n if (param_4[-0x275] == '\\0') {\r\n iVar3 = 1;\r\n local_20 = &stack0xfffffffc;\r\n }\r\n else {\r\n local_20 = &stack0xfffffffc;\r\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\r\n local_2c = (char *)0x554d44;\r\n local_20 = &stack0xfffffffc;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_44,cVar1);\r\n local_2c = (char *)0x554d51;\r\n iVar3 = _System__LStrPos_qqrv(local_44,\"WBXDMLS\");\r\n }\r\n }\r\n break;\r\n case 'L':\r\n case 'M':\r\n case 'S':\r\n case 'W':\r\n local_20 = &stack0xfffffffc;\r\n if (param_4[-0x276] != '\\0') {\r\n local_2c = (char *)0x554cbb;\r\n local_20 = &stack0xfffffffc;\r\n _System__VarFromInt_qqrr14System_Variantxixi(&local_2c,1,1);\r\n local_2c = local_20;\r\n local_30 = local_24;\r\n local_34._0_2_ = (undefined2)local_28;\r\n local_34._2_2_ = (undefined2)((uint)local_28 >> 0x10);\r\n local_38 = local_20;\r\n local_3c = (char *)0x554cd1;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_40,cVar1);\r\n local_3c = (char *)0x554cde;\r\n uVar2 = _System__LStrPos_qqrv(local_40,\"WBXDMLS\");\r\n local_3c = (char *)0x554cea;\r\n _System__VarFromInt_qqrr14System_Variantxixi(&local_3c,uVar2,0xfc);\r\n local_3c = local_30;\r\n local_40 = (char *)CONCAT22(local_34._2_2_,(undefined2)local_34);\r\n local_44 = local_38;\r\n uStack_48 = SUB42(local_30,0);\r\n uStack_46 = (undefined2)((uint)local_30 >> 0x10);\r\n iStack_4c = CONCAT31((int3)((uint)param_4 >> 8),param_4[-0x275]);\r\n puStack_50 = &stack0xffffffe4;\r\n local_54 = 0x554d09;\r\n IIF();\r\n local_54 = 0x554d11;\r\n iVar3 = _System__VarToInt_qqrrx14System_Variant(&stack0xffffffe4);\r\n }\r\n break;\r\n case 'Q':\r\n local_20 = &stack0xfffffffc;\r\n if (param_4[-0x276] != '\\0') {\r\n iVar3 = 1;\r\n local_20 = &stack0xfffffffc;\r\n }\r\n }\r\n }\r\n if (iVar3 - 1U < 7) {\r\n if (*local_8 == 'Q') {\r\n local_2c = (char *)0x554d79;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n local_2c = (char *)0x554d8c;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"LAMT1\");\r\n *(double *)(param_4 + -0x110) = (double)in_ST0;\r\n local_2c = (char *)0x554da6;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"MAMT1\");\r\n *(double *)(param_4 + -0x108) = (double)in_ST1;\r\n local_2c = (char *)0x554dc0;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"SAMT1\");\r\n *(double *)(param_4 + -0x100) = (double)in_ST2;\r\n local_2c = (char *)0x554dda;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"TAMT1\");\r\n *(double *)(param_4 + -0x118) = (double)in_ST3;\r\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\r\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\r\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\r\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\r\n *(double *)(param_4 + -0x110) =\r\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\r\n *(double *)(param_4 + -0x108) =\r\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\r\n *(double *)(param_4 + -0x100) =\r\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\r\n *(double *)(param_4 + -0x118) =\r\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\r\n local_2c = (char *)0x0;\r\n local_30 = (char *)0x1;\r\n local_34._0_2_ = 0;\r\n local_34._2_2_ = 0;\r\n iVar3 = 0xb;\r\n do {\r\n local_38 = *(char **)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_40 = (char *)0x554f81;\r\n OPTIMIZ();\r\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\r\n pcVar6 = param_4 + -0x118;\r\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\r\n *(undefined4 *)pcVar6 = *puVar5;\r\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\r\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\r\n }\r\n }\r\n else {\r\n local_2c = (char *)0x0;\r\n local_30 = (char *)0x0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\r\n local_3c = SUB104(fVar8,0);\r\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\r\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_40 = (char *)0x554e71;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x110) = (double)in_ST4;\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\r\n puStack_50 = SUB104(fVar8,0);\r\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\r\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_54 = 0x554e9c;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x108) = (double)in_ST5;\r\n local_54 = 0;\r\n uStack_58 = 0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x100) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\r\n local_64 = SUB108(fVar8,0);\r\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n uStack_68 = 0x554ec7;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x100) = (double)in_ST6;\r\n *(double *)(param_4 + -0x118) =\r\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\r\n *(double *)(param_4 + -0x100);\r\n }\r\n }\r\n local_2c = (char *)0x554fa7;\r\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\r\n local_2c = (char *)0x554fb5;\r\n _System__VarFromReal_qqrv(&local_54);\r\n local_2c = (char *)0x554fcb;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"LAMT1\",&local_54);\r\n local_2c = (char *)0x554fd9;\r\n _System__VarFromReal_qqrv(&local_64);\r\n local_2c = (char *)0x554fef;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"MAMT1\",&local_64);\r\n local_2c = (char *)0x554ffd;\r\n _System__VarFromReal_qqrv(auStack_78 + 4);\r\n local_2c = (char *)0x555013;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"SAMT1\",auStack_78 + 4);\r\n local_2c = (char *)0x555021;\r\n _System__VarFromReal_qqrv(local_84);\r\n local_2c = (char *)0x555037;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"TAMT1\",local_84);\r\n local_2c = (char *)0x555045;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n }\r\n else {\r\n local_2c = *(char **)(param_4 + -0x280);\r\n local_30 = local_8;\r\n local_34._0_2_ = 0x505d;\r\n local_34._2_2_ = 0x55;\r\n cVar1 = MPOS();\r\n if ((cVar1 == '\\0') || (param_4[-0x281] != '\\0')) {\r\n *(int *)(param_4 + iVar3 * 4 + -0x2a8) = *(int *)(param_4 + iVar3 * 4 + -0x2a8) + 1;\r\n fVar8 = (float10)*(int *)(param_4 + iVar3 * 4 + -0x2a8);\r\n local_3c = SUB104(fVar8,0);\r\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\r\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_40 = (char *)0x555102;\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"00000\",&local_9c);\r\n local_40 = local_9c;\r\n local_44 = (char *)0x55511d;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc\r\n (&local_a0,CONCAT31(0x555b,(&UNK_00555b07)[iVar3]));\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x55512c;\r\n _System__LStrCat3_qqrv(&local_c,local_a0,pcVar6);\r\n local_40 = (char *)0x55513a;\r\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\r\n local_40 = (char *)0x555148;\r\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_b0,local_c);\r\n local_40 = (char *)0x555161;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"BDCODE1\",local_b0);\r\n local_40 = (char *)0x55516f;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n local_40 = (char *)0x55517b;\r\n FUN_00447cd8(pcVar4,local_8,1);\r\n local_40 = (char *)0x55518e;\r\n _System__LStrToString_qqrv(local_1b0,local_c,0xff);\r\n local_40 = (char *)0x55519e;\r\n _System__PStrNCpy_qqrp28System__SmallString_iuc_255_t1uc(param_4 + -0x268,local_1b0,6);\r\n local_40 = (char *)0x5551a8;\r\n FUN_0042ec30(local_c,1);\r\n switch(iVar3) {\r\n case 1:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7bc) = *(undefined4 *)(param_4 + -0x2a4);\r\n break;\r\n case 2:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a0) = *(undefined4 *)(param_4 + -0x2a0);\r\n break;\r\n case 3:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b8) = *(undefined4 *)(param_4 + -0x29c);\r\n break;\r\n case 4:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a4) = *(undefined4 *)(param_4 + -0x298);\r\n break;\r\n case 5:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b0) = *(undefined4 *)(param_4 + -0x294);\r\n break;\r\n case 6:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7ac) = *(undefined4 *)(param_4 + -0x290);\r\n break;\r\n case 7:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b4) = *(undefined4 *)(param_4 + -0x28c);\r\n }\r\n local_40 = (char *)0x555297;\r\n _Apodset_TApolloTable_AppendBlank_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8));\r\n local_40 = (char *)0x5552a5;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1c0,param_4 + -0x268);\r\n local_40 = (char *)0x5552bf;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b7c,local_1c0);\r\n local_40 = (char *)0x5552cd;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1d0,param_4 + -0x237);\r\n local_40 = (char *)0x5552e7;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b8c,local_1d0);\r\n local_40 = (char *)0x5552f8;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1e0,param_4 + -0x1d1);\r\n local_40 = (char *)0x555312;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b9c,local_1e0);\r\n local_40 = (char *)0x555323;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1f0,param_4 + -0x157);\r\n local_40 = (char *)0x55533d;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555bac,local_1f0);\r\n local_40 = (char *)0x55534e;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_200,param_4 + -0x148);\r\n local_40 = (char *)0x555368;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"BQCODE\",local_200);\r\n local_40 = (char *)0x555376;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_210,param_4 + -0x255);\r\n local_40 = (char *)0x555390;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"EQCODE\",local_210);\r\n local_40 = (char *)0x5553a1;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_220,param_4 + -0x133);\r\n local_40 = (char *)0x5553bb;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"WQCODE\",local_220);\r\n if (param_4[-0x70] != '\\0') {\r\n local_40 = \"BD\";\r\n local_44 = (char *)0x5553dd;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_224,*local_c);\r\n local_44 = local_224;\r\n uStack_48 = 0x53e9;\r\n uStack_46 = 0x55;\r\n cVar1 = MPOS();\r\n if (cVar1 != '\\0') {\r\n in_ST2 = (float10)*(double *)(param_4 + -0x60);\r\n local_40 = (char *)0x555402;\r\n _System__VarFromReal_qqrv(local_234);\r\n local_40 = (char *)0x55541c;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"ADJ_L\",local_234);\r\n in_ST1 = (float10)*(double *)(param_4 + -0x58);\r\n local_40 = (char *)0x55542d;\r\n _System__VarFromReal_qqrv(local_244);\r\n local_40 = (char *)0x555447;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"ADJ_M\",local_244);\r\n in_ST0 = (float10)*(double *)(param_4 + -0x50);\r\n local_40 = (char *)0x555458;\r\n _System__VarFromReal_qqrv(local_254);\r\n local_40 = (char *)0x555472;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"ADJ_S\",local_254);\r\n local_40 = (char *)0x555483;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_264,param_4 + -0x38);\r\n local_40 = (char *)0x55549d;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"SBMOK\",local_264);\r\n local_40 = (char *)0x5554aa;\r\n _System__VarFromBool_qqrr14System_Variantxo(local_274,1);\r\n local_40 = (char *)0x5554c4;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"S_ADJ\",local_274);\r\n }\r\n }\r\n local_40 = (char *)0x5554d8;\r\n _System__VarFromInt_qqrr14System_Variantxixi(local_284,*(undefined2 *)(param_4 + -6),2);\r\n local_40 = (char *)0x5554f2;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555c48,local_284);\r\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\r\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\r\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\r\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\r\n *(double *)(param_4 + -0x110) =\r\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\r\n *(double *)(param_4 + -0x108) =\r\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\r\n *(double *)(param_4 + -0x100) =\r\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\r\n *(double *)(param_4 + -0x118) =\r\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\r\n if (*local_8 == 'B') {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x1;\r\n uStack_48 = 0;\r\n uStack_46 = 0;\r\n iVar3 = 0xb;\r\n do {\r\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_54 = 0x5556a1;\r\n OPTIMIZ();\r\n }\r\n else if (*local_8 == 'D') {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x1;\r\n uStack_48 = 0;\r\n uStack_46 = 0;\r\n iVar3 = 0xb;\r\n do {\r\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_54 = 0x5556cd;\r\n OPTIMIZ();\r\n }\r\n else {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x1;\r\n uStack_48 = 0;\r\n uStack_46 = 0;\r\n iVar3 = 0xb;\r\n do {\r\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_54 = 0x5556ed;\r\n OPTIMIZ();\r\n }\r\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\r\n pcVar6 = param_4 + -0x118;\r\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\r\n *(undefined4 *)pcVar6 = *puVar5;\r\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\r\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\r\n }\r\n }\r\n else {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\r\n puStack_50 = SUB104(fVar8,0);\r\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\r\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_54 = 0x555582;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x110) = (double)in_ST0;\r\n local_54 = 0;\r\n uStack_58 = 0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\r\n local_64 = SUB108(fVar8,0);\r\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n uStack_68 = 0x5555ad;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x108) = (double)in_ST1;\r\n uStack_68 = 0;\r\n uStack_6c = 0;\r\n auStack_78._0_10_ =\r\n ((float10)*(double *)(param_4 + -0x100) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\r\n uStack_7c = 0x5555d8;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x100) = (double)in_ST2;\r\n *(double *)(param_4 + -0x118) =\r\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\r\n *(double *)(param_4 + -0x100);\r\n }\r\n }\r\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\r\n iVar3 = 2;\r\n puVar5 = (undefined4 *)PTR_PTR_005e5f40;\r\n do {\r\n puVar5 = puVar5 + 1;\r\n local_40 = (char *)0x55573a;\r\n _System__VarFromReal_qqrv(local_294);\r\n local_40 = local_294;\r\n local_44 = (char *)0x555753;\r\n _System__LStrCat3_qqrv(&local_298,&DAT_00555c54,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x555769;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_298,pcVar6);\r\n local_40 = (char *)0x55577a;\r\n _System__VarFromReal_qqrv(local_2a8);\r\n local_40 = local_2a8;\r\n local_44 = (char *)0x555793;\r\n _System__LStrCat3_qqrv(&local_2ac,&DAT_00555c64,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x5557a9;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2ac,pcVar6);\r\n local_40 = (char *)0x5557ba;\r\n _System__VarFromReal_qqrv(local_2bc);\r\n local_40 = local_2bc;\r\n local_44 = (char *)0x5557d3;\r\n _System__LStrCat3_qqrv(&local_2c0,&DAT_00555c74,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x5557e9;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2c0,pcVar6);\r\n local_40 = (char *)0x5557fa;\r\n _System__VarFromReal_qqrv(local_2d0);\r\n local_40 = local_2d0;\r\n local_44 = (char *)0x555813;\r\n _System__LStrCat3_qqrv(&local_2d4,&DAT_00555c84,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x555829;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2d4,pcVar6);\r\n iVar3 = iVar3 + -1;\r\n } while (iVar3 != 0);\r\n }\r\n cVar1 = *local_c;\r\n if (((cVar1 == 'B') || (cVar1 == 'D')) || (cVar1 == 'X')) {\r\n local_40 = (char *)0x55585a;\r\n _System__VarFromReal_qqrv(local_2e4);\r\n local_40 = (char *)0x555874;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"NAGCD\",local_2e4);\r\n local_40 = (char *)0x555881;\r\n _System__VarFromBool_qqrr14System_Variantxo(local_2f4,1);\r\n local_40 = (char *)0x55589b;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555ca4,local_2f4);\r\n local_40 = (char *)0x5558a8;\r\n _System__VarFromBool_qqrr14System_Variantxo(local_304,1);\r\n local_40 = (char *)0x5558c2;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"BCONT\",local_304);\r\n local_40 = (char *)0x5558d3;\r\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString\r\n (local_314,*(undefined4 *)(param_4 + -0x11c));\r\n local_40 = (char *)0x5558ed;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"IFORM\",local_314);\r\n local_40 = \"BDCODE=\\\"\";\r\n local_44 = local_8;\r\n uStack_48 = 0x5ce4;\r\n uStack_46 = 0x55;\r\n iStack_4c = 0x55590a;\r\n _System__LStrCatN_qqrv(&local_318,3);\r\n iStack_4c = 0x55591e;\r\n _Apodset_TApolloTable_Query_qqrx17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x274),local_318);\r\n iStack_4c = 0x555934;\r\n _System__FillChar_qqrpvic(*(int *)PTR_DAT_005e5e84 + 0x2c,4,0);\r\n iStack_4c = 0x555942;\r\n iStack_4c = _Apodset_TApolloTable_Count_qqrv(*(undefined4 *)(param_4 + -0x274));\r\n *(int *)(param_4 + -0x80) = iStack_4c;\r\n iStack_4c = iStack_4c + 1;\r\n puStack_50 = (undefined1 *)0x555966;\r\n _System__DynArraySetLength_qqrv(*(int *)PTR_DAT_005e5e84 + 0x2c,&DAT_004226a4,1);\r\n iStack_4c = 1;\r\n puStack_50 = (undefined1 *)0xffffffff;\r\n local_54 = 0xffffffff;\r\n uStack_58 = *(undefined4 *)(*(int *)PTR_DAT_005e5e84 + 0x2c);\r\n uStack_5c = 0x5986;\r\n uStack_5a = 0x55;\r\n local_3c = (char *)_System__DynArrayHigh_qqrv(uStack_58);\r\n local_40 = (char *)0x555999;\r\n FUN_0043d104(*(undefined4 *)(param_4 + -0x274),1,0);\r\n local_40 = param_4;\r\n local_44 = (char *)0x5559a2;\r\n FUN_005544b0();\r\n }\r\n local_40 = (char *)0x5559b1;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n local_40 = (char *)0x5559c1;\r\n _System__LStrCat_qqrv(param_4 + -0x280,local_8);\r\n local_40 = (char *)0x5559d4;\r\n _System__LStrCat_qqrv(param_4 + -0x288,local_c);\r\n }\r\n else {\r\n local_34._0_2_ = 0x507b;\r\n local_34._2_2_ = 0x55;\r\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\r\n local_34 = &local_98;\r\n local_38 = (char *)0x555093;\r\n uVar2 = _System__LStrPos_qqrv(local_8,*(undefined4 *)(param_4 + -0x280));\r\n local_38 = (char *)0x5550a8;\r\n _System__LStrCopy_qqrv(*(undefined4 *)(param_4 + -0x288),uVar2,6);\r\n local_38 = (char *)0x5550b9;\r\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_94,local_98);\r\n local_38 = (char *)0x5550d2;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"BDCODE1\",local_94);\r\n }\r\n }\r\n }\r\n pcVar4 = local_20;\r\n *in_FS_OFFSET = local_28;\r\n local_20 = &LAB_00555af2;\r\n local_24 = (char *)0x5559ef;\r\n _System__LStrClr_qqrpv(&local_318,local_28,pcVar4);\r\n local_24 = (char *)0x555a05;\r\n _System__FinalizeArray_qqrpvt1ui(local_314,__xp_14System_Variant_exref,4);\r\n local_24 = (char *)0x555a10;\r\n _System__LStrClr_qqrpv(&local_2d4);\r\n local_24 = (char *)0x555a1b;\r\n _System__VarClr_qqrr14System_Variant(local_2d0);\r\n local_24 = (char *)0x555a26;\r\n _System__LStrClr_qqrpv(&local_2c0);\r\n local_24 = (char *)0x555a31;\r\n _System__VarClr_qqrr14System_Variant(local_2bc);\r\n local_24 = (char *)0x555a3c;\r\n _System__LStrClr_qqrpv(&local_2ac);\r\n local_24 = (char *)0x555a47;\r\n _System__VarClr_qqrr14System_Variant(local_2a8);\r\n local_24 = (char *)0x555a52;\r\n _System__LStrClr_qqrpv(&local_298);\r\n local_24 = (char *)0x555a68;\r\n _System__FinalizeArray_qqrpvt1ui(local_294,__xp_14System_Variant_exref,7);\r\n local_24 = (char *)0x555a73;\r\n _System__LStrClr_qqrpv(&local_224);\r\n local_24 = (char *)0x555a89;\r\n _System__FinalizeArray_qqrpvt1ui(local_220,__xp_14System_Variant_exref,7);\r\n local_24 = (char *)0x555a94;\r\n _System__VarClr_qqrr14System_Variant(local_b0);\r\n local_24 = (char *)0x555aa4;\r\n _System__LStrArrayClr_qqrpvi(&local_a0,3);\r\n local_24 = (char *)0x555aba;\r\n _System__FinalizeArray_qqrpvt1ui(local_94,__xp_14System_Variant_exref,5);\r\n local_24 = (char *)0x555ac7;\r\n _System__LStrArrayClr_qqrpvi(&local_44,2);\r\n local_24 = (char *)0x555ada;\r\n _System__FinalizeArray_qqrpvt1ui(&local_3c,__xp_14System_Variant_exref,3);\r\n local_24 = (char *)0x555ae7;\r\n _System__LStrArrayClr_qqrpvi(&local_c,2);\r\n return;\r\n}\r\n\r\n", "limitations": ["Ghidra Listing shows a Borland/Delphi-style SEH frame registration at 0x554c12 (push 0x555ae8 followed by fs-segment stack chaining); handler 0x555ae8 lies outside this procedure's body, so callees, strings, and cross-references may omit the handler region."]}, "normalized_result": "\r\nvoid FUN_00554be0(char *param_1,undefined4 param_2,undefined4 param_3,char *param_4)\r\n\r\n{\r\n char cVar1;\r\n undefined4 uVar2;\r\n int iVar3;\r\n char *pcVar4;\r\n undefined4 *puVar5;\r\n char *pcVar6;\r\n undefined4 *in_FS_OFFSET;\r\n byte bVar7;\r\n float10 in_ST0;\r\n float10 fVar8;\r\n float10 in_ST1;\r\n float10 in_ST2;\r\n float10 in_ST3;\r\n float10 in_ST4;\r\n float10 in_ST5;\r\n float10 in_ST6;\r\n undefined4 local_318;\r\n undefined1 local_314 [16];\r\n undefined1 local_304 [16];\r\n undefined1 local_2f4 [16];\r\n undefined1 local_2e4 [16];\r\n undefined4 local_2d4;\r\n char local_2d0 [16];\r\n undefined4 local_2c0;\r\n char local_2bc [16];\r\n undefined4 local_2ac;\r\n char local_2a8 [16];\r\n undefined4 local_298;\r\n char local_294 [16];\r\n undefined1 local_284 [16];\r\n undefined1 local_274 [16];\r\n undefined1 local_264 [16];\r\n undefined1 local_254 [16];\r\n undefined1 local_244 [16];\r\n undefined1 local_234 [16];\r\n char *local_224;\r\n undefined1 local_220 [16];\r\n undefined1 local_210 [16];\r\n undefined1 local_200 [16];\r\n undefined1 local_1f0 [16];\r\n undefined1 local_1e0 [16];\r\n undefined1 local_1d0 [16];\r\n undefined1 local_1c0 [16];\r\n undefined1 local_1b0 [256];\r\n undefined1 local_b0 [16];\r\n undefined4 local_a0;\r\n char *local_9c;\r\n undefined4 local_98;\r\n undefined1 local_94 [16];\r\n undefined1 local_84 [8];\r\n undefined4 uStack_7c;\r\n undefined1 auStack_78 [12];\r\n undefined4 uStack_6c;\r\n undefined4 uStack_68;\r\n undefined8 local_64;\r\n undefined2 uStack_5c;\r\n undefined2 uStack_5a;\r\n undefined4 uStack_58;\r\n undefined4 local_54;\r\n undefined1 *puStack_50;\r\n int iStack_4c;\r\n undefined2 uStack_48;\r\n undefined2 uStack_46;\r\n char *local_44;\r\n char *local_40;\r\n char *local_3c;\r\n char *local_38;\r\n undefined4 local_34;\r\n char *local_30;\r\n char *local_2c;\r\n undefined4 local_28;\r\n char *local_24;\r\n char *local_20;\r\n char *local_c;\r\n char *local_8;\r\n \r\n bVar7 = 0;\r\n iVar3 = 0x62;\r\n do {\r\n iVar3 = iVar3 + -1;\r\n } while (iVar3 != 0);\r\n local_20 = (char *)0x554bfe;\r\n local_8 = param_1;\r\n _System__LStrAddRef_qqrpv(param_1);\r\n pcVar4 = param_4 + -0x270;\r\n local_24 = &LAB_00555ae8;\r\n local_28 = *in_FS_OFFSET;\r\n *in_FS_OFFSET = &local_28;\r\n iVar3 = 0;\r\n if ((param_4[-0x275] == '\\0') || (local_20 = &stack0xfffffffc, *(double *)PTR_DAT_005e6020 != 0.0)\r\n ) {\r\n cVar1 = *local_8;\r\n local_20 = &stack0xfffffffc;\r\n switch(cVar1) {\r\n case 'B':\r\n case 'D':\r\n case 'X':\r\n if (param_4[-0x275] == '\\0') {\r\n iVar3 = 1;\r\n local_20 = &stack0xfffffffc;\r\n }\r\n else {\r\n local_20 = &stack0xfffffffc;\r\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\r\n local_2c = (char *)0x554d44;\r\n local_20 = &stack0xfffffffc;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_44,cVar1);\r\n local_2c = (char *)0x554d51;\r\n iVar3 = _System__LStrPos_qqrv(local_44,\"WBXDMLS\");\r\n }\r\n }\r\n break;\r\n case 'L':\r\n case 'M':\r\n case 'S':\r\n case 'W':\r\n local_20 = &stack0xfffffffc;\r\n if (param_4[-0x276] != '\\0') {\r\n local_2c = (char *)0x554cbb;\r\n local_20 = &stack0xfffffffc;\r\n _System__VarFromInt_qqrr14System_Variantxixi(&local_2c,1,1);\r\n local_2c = local_20;\r\n local_30 = local_24;\r\n local_34._0_2_ = (undefined2)local_28;\r\n local_34._2_2_ = (undefined2)((uint)local_28 >> 0x10);\r\n local_38 = local_20;\r\n local_3c = (char *)0x554cd1;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_40,cVar1);\r\n local_3c = (char *)0x554cde;\r\n uVar2 = _System__LStrPos_qqrv(local_40,\"WBXDMLS\");\r\n local_3c = (char *)0x554cea;\r\n _System__VarFromInt_qqrr14System_Variantxixi(&local_3c,uVar2,0xfc);\r\n local_3c = local_30;\r\n local_40 = (char *)CONCAT22(local_34._2_2_,(undefined2)local_34);\r\n local_44 = local_38;\r\n uStack_48 = SUB42(local_30,0);\r\n uStack_46 = (undefined2)((uint)local_30 >> 0x10);\r\n iStack_4c = CONCAT31((int3)((uint)param_4 >> 8),param_4[-0x275]);\r\n puStack_50 = &stack0xffffffe4;\r\n local_54 = 0x554d09;\r\n IIF();\r\n local_54 = 0x554d11;\r\n iVar3 = _System__VarToInt_qqrrx14System_Variant(&stack0xffffffe4);\r\n }\r\n break;\r\n case 'Q':\r\n local_20 = &stack0xfffffffc;\r\n if (param_4[-0x276] != '\\0') {\r\n iVar3 = 1;\r\n local_20 = &stack0xfffffffc;\r\n }\r\n }\r\n }\r\n if (iVar3 - 1U < 7) {\r\n if (*local_8 == 'Q') {\r\n local_2c = (char *)0x554d79;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n local_2c = (char *)0x554d8c;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"LAMT1\");\r\n *(double *)(param_4 + -0x110) = (double)in_ST0;\r\n local_2c = (char *)0x554da6;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"MAMT1\");\r\n *(double *)(param_4 + -0x108) = (double)in_ST1;\r\n local_2c = (char *)0x554dc0;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"SAMT1\");\r\n *(double *)(param_4 + -0x100) = (double)in_ST2;\r\n local_2c = (char *)0x554dda;\r\n _Apodset_TApolloTable_GetDouble_qqr17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x27c),\"TAMT1\");\r\n *(double *)(param_4 + -0x118) = (double)in_ST3;\r\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\r\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\r\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\r\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\r\n *(double *)(param_4 + -0x110) =\r\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\r\n *(double *)(param_4 + -0x108) =\r\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\r\n *(double *)(param_4 + -0x100) =\r\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\r\n *(double *)(param_4 + -0x118) =\r\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\r\n local_2c = (char *)0x0;\r\n local_30 = (char *)0x1;\r\n local_34._0_2_ = 0;\r\n local_34._2_2_ = 0;\r\n iVar3 = 0xb;\r\n do {\r\n local_38 = *(char **)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_40 = (char *)0x554f81;\r\n OPTIMIZ();\r\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\r\n pcVar6 = param_4 + -0x118;\r\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\r\n *(undefined4 *)pcVar6 = *puVar5;\r\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\r\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\r\n }\r\n }\r\n else {\r\n local_2c = (char *)0x0;\r\n local_30 = (char *)0x0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\r\n local_3c = SUB104(fVar8,0);\r\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\r\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_40 = (char *)0x554e71;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x110) = (double)in_ST4;\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\r\n puStack_50 = SUB104(fVar8,0);\r\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\r\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_54 = 0x554e9c;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x108) = (double)in_ST5;\r\n local_54 = 0;\r\n uStack_58 = 0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x100) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\r\n local_64 = SUB108(fVar8,0);\r\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n uStack_68 = 0x554ec7;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x100) = (double)in_ST6;\r\n *(double *)(param_4 + -0x118) =\r\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\r\n *(double *)(param_4 + -0x100);\r\n }\r\n }\r\n local_2c = (char *)0x554fa7;\r\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\r\n local_2c = (char *)0x554fb5;\r\n _System__VarFromReal_qqrv(&local_54);\r\n local_2c = (char *)0x554fcb;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"LAMT1\",&local_54);\r\n local_2c = (char *)0x554fd9;\r\n _System__VarFromReal_qqrv(&local_64);\r\n local_2c = (char *)0x554fef;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"MAMT1\",&local_64);\r\n local_2c = (char *)0x554ffd;\r\n _System__VarFromReal_qqrv(auStack_78 + 4);\r\n local_2c = (char *)0x555013;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"SAMT1\",auStack_78 + 4);\r\n local_2c = (char *)0x555021;\r\n _System__VarFromReal_qqrv(local_84);\r\n local_2c = (char *)0x555037;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"TAMT1\",local_84);\r\n local_2c = (char *)0x555045;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n }\r\n else {\r\n local_2c = *(char **)(param_4 + -0x280);\r\n local_30 = local_8;\r\n local_34._0_2_ = 0x505d;\r\n local_34._2_2_ = 0x55;\r\n cVar1 = MPOS();\r\n if ((cVar1 == '\\0') || (param_4[-0x281] != '\\0')) {\r\n *(int *)(param_4 + iVar3 * 4 + -0x2a8) = *(int *)(param_4 + iVar3 * 4 + -0x2a8) + 1;\r\n fVar8 = (float10)*(int *)(param_4 + iVar3 * 4 + -0x2a8);\r\n local_3c = SUB104(fVar8,0);\r\n local_38 = (char *)((unkuint10)fVar8 >> 0x20);\r\n local_34._0_2_ = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_40 = (char *)0x555102;\r\n _Sysutils_FormatFloat_qqrx17System_AnsiStringg(\"00000\",&local_9c);\r\n local_40 = local_9c;\r\n local_44 = (char *)0x55511d;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc\r\n (&local_a0,CONCAT31(0x555b,(&UNK_00555b07)[iVar3]));\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x55512c;\r\n _System__LStrCat3_qqrv(&local_c,local_a0,pcVar6);\r\n local_40 = (char *)0x55513a;\r\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\r\n local_40 = (char *)0x555148;\r\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_b0,local_c);\r\n local_40 = (char *)0x555161;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"BDCODE1\",local_b0);\r\n local_40 = (char *)0x55516f;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n local_40 = (char *)0x55517b;\r\n FUN_00447cd8(pcVar4,local_8,1);\r\n local_40 = (char *)0x55518e;\r\n _System__LStrToString_qqrv(local_1b0,local_c,0xff);\r\n local_40 = (char *)0x55519e;\r\n _System__PStrNCpy_qqrp28System__SmallString_iuc_255_t1uc(param_4 + -0x268,local_1b0,6);\r\n local_40 = (char *)0x5551a8;\r\n FUN_0042ec30(local_c,1);\r\n switch(iVar3) {\r\n case 1:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7bc) = *(undefined4 *)(param_4 + -0x2a4);\r\n break;\r\n case 2:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a0) = *(undefined4 *)(param_4 + -0x2a0);\r\n break;\r\n case 3:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b8) = *(undefined4 *)(param_4 + -0x29c);\r\n break;\r\n case 4:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7a4) = *(undefined4 *)(param_4 + -0x298);\r\n break;\r\n case 5:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b0) = *(undefined4 *)(param_4 + -0x294);\r\n break;\r\n case 6:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7ac) = *(undefined4 *)(param_4 + -0x290);\r\n break;\r\n case 7:\r\n *(undefined4 *)(*(int *)PTR_DAT_005e6148 + 0x7b4) = *(undefined4 *)(param_4 + -0x28c);\r\n }\r\n local_40 = (char *)0x555297;\r\n _Apodset_TApolloTable_AppendBlank_qqrv(*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8));\r\n local_40 = (char *)0x5552a5;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1c0,param_4 + -0x268);\r\n local_40 = (char *)0x5552bf;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b7c,local_1c0);\r\n local_40 = (char *)0x5552cd;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1d0,param_4 + -0x237);\r\n local_40 = (char *)0x5552e7;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b8c,local_1d0);\r\n local_40 = (char *)0x5552f8;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1e0,param_4 + -0x1d1);\r\n local_40 = (char *)0x555312;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555b9c,local_1e0);\r\n local_40 = (char *)0x555323;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_1f0,param_4 + -0x157);\r\n local_40 = (char *)0x55533d;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555bac,local_1f0);\r\n local_40 = (char *)0x55534e;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_200,param_4 + -0x148);\r\n local_40 = (char *)0x555368;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"BQCODE\",local_200);\r\n local_40 = (char *)0x555376;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_210,param_4 + -0x255);\r\n local_40 = (char *)0x555390;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"EQCODE\",local_210);\r\n local_40 = (char *)0x5553a1;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_220,param_4 + -0x133);\r\n local_40 = (char *)0x5553bb;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"WQCODE\",local_220);\r\n if (param_4[-0x70] != '\\0') {\r\n local_40 = \"BD\";\r\n local_44 = (char *)0x5553dd;\r\n _System__LStrFromChar_qqrr17System_AnsiStringc(&local_224,*local_c);\r\n local_44 = local_224;\r\n uStack_48 = 0x53e9;\r\n uStack_46 = 0x55;\r\n cVar1 = MPOS();\r\n if (cVar1 != '\\0') {\r\n in_ST2 = (float10)*(double *)(param_4 + -0x60);\r\n local_40 = (char *)0x555402;\r\n _System__VarFromReal_qqrv(local_234);\r\n local_40 = (char *)0x55541c;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"ADJ_L\",local_234);\r\n in_ST1 = (float10)*(double *)(param_4 + -0x58);\r\n local_40 = (char *)0x55542d;\r\n _System__VarFromReal_qqrv(local_244);\r\n local_40 = (char *)0x555447;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"ADJ_M\",local_244);\r\n in_ST0 = (float10)*(double *)(param_4 + -0x50);\r\n local_40 = (char *)0x555458;\r\n _System__VarFromReal_qqrv(local_254);\r\n local_40 = (char *)0x555472;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"ADJ_S\",local_254);\r\n local_40 = (char *)0x555483;\r\n _System__VarFromPStr_qqrr14System_Variantrx28System__SmallString_iuc_255_\r\n (local_264,param_4 + -0x38);\r\n local_40 = (char *)0x55549d;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"SBMOK\",local_264);\r\n local_40 = (char *)0x5554aa;\r\n _System__VarFromBool_qqrr14System_Variantxo(local_274,1);\r\n local_40 = (char *)0x5554c4;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"S_ADJ\",local_274);\r\n }\r\n }\r\n local_40 = (char *)0x5554d8;\r\n _System__VarFromInt_qqrr14System_Variantxixi(local_284,*(undefined2 *)(param_4 + -6),2);\r\n local_40 = (char *)0x5554f2;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555c48,local_284);\r\n if ((*(double *)PTR_DAT_005e6020 != 100.0) && (*(double *)PTR_DAT_005e6020 != 0.0)) {\r\n if ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 8)) &&\r\n ((*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x10) &&\r\n (*(double *)PTR_DAT_005e6020 == *(double *)(PTR_DAT_005e6020 + 0x18))))) {\r\n *(double *)(param_4 + -0x110) =\r\n (*(double *)(param_4 + -0x110) * *(double *)(PTR_DAT_005e6020 + 8)) / 100.0;\r\n *(double *)(param_4 + -0x108) =\r\n (*(double *)(param_4 + -0x108) * *(double *)(PTR_DAT_005e6020 + 0x10)) / 100.0;\r\n *(double *)(param_4 + -0x100) =\r\n (*(double *)(param_4 + -0x100) * *(double *)(PTR_DAT_005e6020 + 0x18)) / 100.0;\r\n *(double *)(param_4 + -0x118) =\r\n (*(double *)(param_4 + -0x118) * *(double *)PTR_DAT_005e6020) / 100.0;\r\n if (*local_8 == 'B') {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x1;\r\n uStack_48 = 0;\r\n uStack_46 = 0;\r\n iVar3 = 0xb;\r\n do {\r\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_54 = 0x5556a1;\r\n OPTIMIZ();\r\n }\r\n else if (*local_8 == 'D') {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x1;\r\n uStack_48 = 0;\r\n uStack_46 = 0;\r\n iVar3 = 0xb;\r\n do {\r\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_54 = 0x5556cd;\r\n OPTIMIZ();\r\n }\r\n else {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x1;\r\n uStack_48 = 0;\r\n uStack_46 = 0;\r\n iVar3 = 0xb;\r\n do {\r\n iStack_4c = *(int *)(param_4 + iVar3 * 4 + -0x118);\r\n iVar3 = iVar3 + -1;\r\n } while (-1 < iVar3);\r\n local_54 = 0x5556ed;\r\n OPTIMIZ();\r\n }\r\n puVar5 = *(undefined4 **)PTR_DAT_005e5d84;\r\n pcVar6 = param_4 + -0x118;\r\n for (iVar3 = 0xc; iVar3 != 0; iVar3 = iVar3 + -1) {\r\n *(undefined4 *)pcVar6 = *puVar5;\r\n puVar5 = puVar5 + (uint)bVar7 * -2 + 1;\r\n pcVar6 = pcVar6 + ((uint)bVar7 * -2 + 1) * 4;\r\n }\r\n }\r\n else {\r\n local_40 = (char *)0x0;\r\n local_44 = (char *)0x0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x110) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 8)) / (float10)100.0;\r\n puStack_50 = SUB104(fVar8,0);\r\n iStack_4c = (int)((unkuint10)fVar8 >> 0x20);\r\n uStack_48 = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n local_54 = 0x555582;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x110) = (double)in_ST0;\r\n local_54 = 0;\r\n uStack_58 = 0;\r\n fVar8 = ((float10)*(double *)(param_4 + -0x108) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x10)) / (float10)100.0;\r\n local_64 = SUB108(fVar8,0);\r\n uStack_5c = (undefined2)((unkuint10)fVar8 >> 0x40);\r\n uStack_68 = 0x5555ad;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x108) = (double)in_ST1;\r\n uStack_68 = 0;\r\n uStack_6c = 0;\r\n auStack_78._0_10_ =\r\n ((float10)*(double *)(param_4 + -0x100) *\r\n (float10)*(double *)(PTR_DAT_005e6020 + 0x18)) / (float10)100.0;\r\n uStack_7c = 0x5555d8;\r\n MROUNDUD();\r\n *(double *)(param_4 + -0x100) = (double)in_ST2;\r\n *(double *)(param_4 + -0x118) =\r\n *(double *)(param_4 + -0x110) + *(double *)(param_4 + -0x108) +\r\n *(double *)(param_4 + -0x100);\r\n }\r\n }\r\n if (*(double *)PTR_DAT_005e6020 != 0.0) {\r\n iVar3 = 2;\r\n puVar5 = (undefined4 *)PTR_PTR_005e5f40;\r\n do {\r\n puVar5 = puVar5 + 1;\r\n local_40 = (char *)0x55573a;\r\n _System__VarFromReal_qqrv(local_294);\r\n local_40 = local_294;\r\n local_44 = (char *)0x555753;\r\n _System__LStrCat3_qqrv(&local_298,&DAT_00555c54,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x555769;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_298,pcVar6);\r\n local_40 = (char *)0x55577a;\r\n _System__VarFromReal_qqrv(local_2a8);\r\n local_40 = local_2a8;\r\n local_44 = (char *)0x555793;\r\n _System__LStrCat3_qqrv(&local_2ac,&DAT_00555c64,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x5557a9;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2ac,pcVar6);\r\n local_40 = (char *)0x5557ba;\r\n _System__VarFromReal_qqrv(local_2bc);\r\n local_40 = local_2bc;\r\n local_44 = (char *)0x5557d3;\r\n _System__LStrCat3_qqrv(&local_2c0,&DAT_00555c74,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x5557e9;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2c0,pcVar6);\r\n local_40 = (char *)0x5557fa;\r\n _System__VarFromReal_qqrv(local_2d0);\r\n local_40 = local_2d0;\r\n local_44 = (char *)0x555813;\r\n _System__LStrCat3_qqrv(&local_2d4,&DAT_00555c84,*puVar5);\r\n pcVar6 = local_40;\r\n local_40 = (char *)0x555829;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),local_2d4,pcVar6);\r\n iVar3 = iVar3 + -1;\r\n } while (iVar3 != 0);\r\n }\r\n cVar1 = *local_c;\r\n if (((cVar1 == 'B') || (cVar1 == 'D')) || (cVar1 == 'X')) {\r\n local_40 = (char *)0x55585a;\r\n _System__VarFromReal_qqrv(local_2e4);\r\n local_40 = (char *)0x555874;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"NAGCD\",local_2e4);\r\n local_40 = (char *)0x555881;\r\n _System__VarFromBool_qqrr14System_Variantxo(local_2f4,1);\r\n local_40 = (char *)0x55589b;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),&DAT_00555ca4,local_2f4);\r\n local_40 = (char *)0x5558a8;\r\n _System__VarFromBool_qqrr14System_Variantxo(local_304,1);\r\n local_40 = (char *)0x5558c2;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"BCONT\",local_304);\r\n local_40 = (char *)0x5558d3;\r\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString\r\n (local_314,*(undefined4 *)(param_4 + -0x11c));\r\n local_40 = (char *)0x5558ed;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(*(int *)PTR_DAT_005e6090 + 8),\"IFORM\",local_314);\r\n local_40 = \"BDCODE=\\\"\";\r\n local_44 = local_8;\r\n uStack_48 = 0x5ce4;\r\n uStack_46 = 0x55;\r\n iStack_4c = 0x55590a;\r\n _System__LStrCatN_qqrv(&local_318,3);\r\n iStack_4c = 0x55591e;\r\n _Apodset_TApolloTable_Query_qqrx17System_AnsiString\r\n (*(undefined4 *)(param_4 + -0x274),local_318);\r\n iStack_4c = 0x555934;\r\n _System__FillChar_qqrpvic(*(int *)PTR_DAT_005e5e84 + 0x2c,4,0);\r\n iStack_4c = 0x555942;\r\n iStack_4c = _Apodset_TApolloTable_Count_qqrv(*(undefined4 *)(param_4 + -0x274));\r\n *(int *)(param_4 + -0x80) = iStack_4c;\r\n iStack_4c = iStack_4c + 1;\r\n puStack_50 = (undefined1 *)0x555966;\r\n _System__DynArraySetLength_qqrv(*(int *)PTR_DAT_005e5e84 + 0x2c,&DAT_004226a4,1);\r\n iStack_4c = 1;\r\n puStack_50 = (undefined1 *)0xffffffff;\r\n local_54 = 0xffffffff;\r\n uStack_58 = *(undefined4 *)(*(int *)PTR_DAT_005e5e84 + 0x2c);\r\n uStack_5c = 0x5986;\r\n uStack_5a = 0x55;\r\n local_3c = (char *)_System__DynArrayHigh_qqrv(uStack_58);\r\n local_40 = (char *)0x555999;\r\n FUN_0043d104(*(undefined4 *)(param_4 + -0x274),1,0);\r\n local_40 = param_4;\r\n local_44 = (char *)0x5559a2;\r\n FUN_005544b0();\r\n }\r\n local_40 = (char *)0x5559b1;\r\n _System__FillChar_qqrpvic(pcVar4,0x270,0);\r\n local_40 = (char *)0x5559c1;\r\n _System__LStrCat_qqrv(param_4 + -0x280,local_8);\r\n local_40 = (char *)0x5559d4;\r\n _System__LStrCat_qqrv(param_4 + -0x288,local_c);\r\n }\r\n else {\r\n local_34._0_2_ = 0x507b;\r\n local_34._2_2_ = 0x55;\r\n _Db_TDataSet_Edit_qqrv(*(undefined4 *)(param_4 + -0x27c));\r\n local_34 = &local_98;\r\n local_38 = (char *)0x555093;\r\n uVar2 = _System__LStrPos_qqrv(local_8,*(undefined4 *)(param_4 + -0x280));\r\n local_38 = (char *)0x5550a8;\r\n _System__LStrCopy_qqrv(*(undefined4 *)(param_4 + -0x288),uVar2,6);\r\n local_38 = (char *)0x5550b9;\r\n _System__VarFromLStr_qqrr14System_Variantx17System_AnsiString(local_94,local_98);\r\n local_38 = (char *)0x5550d2;\r\n _Db_TDataSet_SetFieldValue_qqrx17System_AnsiStringrx14System_Variant\r\n (*(undefined4 *)(param_4 + -0x27c),\"BDCODE1\",local_94);\r\n }\r\n }\r\n }\r\n pcVar4 = local_20;\r\n *in_FS_OFFSET = local_28;\r\n local_20 = &LAB_00555af2;\r\n local_24 = (char *)0x5559ef;\r\n _System__LStrClr_qqrpv(&local_318,local_28,pcVar4);\r\n local_24 = (char *)0x555a05;\r\n _System__FinalizeArray_qqrpvt1ui(local_314,__xp_14System_Variant_exref,4);\r\n local_24 = (char *)0x555a10;\r\n _System__LStrClr_qqrpv(&local_2d4);\r\n local_24 = (char *)0x555a1b;\r\n _System__VarClr_qqrr14System_Variant(local_2d0);\r\n local_24 = (char *)0x555a26;\r\n _System__LStrClr_qqrpv(&local_2c0);\r\n local_24 = (char *)0x555a31;\r\n _System__VarClr_qqrr14System_Variant(local_2bc);\r\n local_24 = (char *)0x555a3c;\r\n _System__LStrClr_qqrpv(&local_2ac);\r\n local_24 = (char *)0x555a47;\r\n _System__VarClr_qqrr14System_Variant(local_2a8);\r\n local_24 = (char *)0x555a52;\r\n _System__LStrClr_qqrpv(&local_298);\r\n local_24 = (char *)0x555a68;\r\n _System__FinalizeArray_qqrpvt1ui(local_294,__xp_14System_Variant_exref,7);\r\n local_24 = (char *)0x555a73;\r\n _System__LStrClr_qqrpv(&local_224);\r\n local_24 = (char *)0x555a89;\r\n _System__FinalizeArray_qqrpvt1ui(local_220,__xp_14System_Variant_exref,7);\r\n local_24 = (char *)0x555a94;\r\n _System__VarClr_qqrr14System_Variant(local_b0);\r\n local_24 = (char *)0x555aa4;\r\n _System__LStrArrayClr_qqrpvi(&local_a0,3);\r\n local_24 = (char *)0x555aba;\r\n _System__FinalizeArray_qqrpvt1ui(local_94,__xp_14System_Variant_exref,5);\r\n local_24 = (char *)0x555ac7;\r\n _System__LStrArrayClr_qqrpvi(&local_44,2);\r\n local_24 = (char *)0x555ada;\r\n _System__FinalizeArray_qqrpvt1ui(&local_3c,__xp_14System_Variant_exref,3);\r\n local_24 = (char *)0x555ae7;\r\n _System__LStrArrayClr_qqrpvi(&local_c,2);\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 0x554c12 (push 0x555ae8 followed by fs-segment stack chaining); handler 0x555ae8 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": 19} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_findnag.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_findnag.json new file mode 100644 index 000000000..e01bf5837 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_findnag.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 0x556d68 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\\\\STmate.Cpm\",\"target_sha256\":\"99d5c05675ba1399c51a71db8e26ebd5ff39fd78d02360147c7705deb399b5f5\",\"target_admission\":{\"source\":{\"requestedPath\":\"C:\\\\경영정보(주)\\\\System\\\\STmate.Cpm\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\경영정보(주)\\\\System\\\\STmate.Cpm\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"986e1100000015000000000000000000\",\"size\":3525632,\"directory\":false},\"snapshot\":{\"requestedPath\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\target-99d5c05675ba.Cpm\",\"finalPath\":\"\\\\\\\\?\\\\C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\target-99d5c05675ba.Cpm\",\"filesystem\":\"NTFS\",\"volumeSerial\":\"38ba30d4ba30907c\",\"fileId\":\"6a8600000000ad000000000000000000\",\"size\":3525632,\"directory\":false}},\"transport\":\"authenticated-loopback-tcp\",\"provider_version\":\"12.1.4\",\"profile_digest\":\"3de5374fadd78e0d56219c4afc6b4f2efac7101ff92b72faf375fb0070bbc896\",\"run_id\":\"d3dbf327-5a7d-44a3-a1a9-15480b9c2cf3\",\"runtime_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\",\"endpoint_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\bridge-endpoint.json\",\"project_root\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\project\",\"ghidra_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\ghidra.log\",\"script_log_path\":\"C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\script.log\",\"process_id\":18036,\"launch_support\":[{\"mode\":\"-envvars\",\"stderr\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\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-1801d9496e245211b825a8f8f691285a\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\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-1801d9496e245211b825a8f8f691285a\\\\ghidra.log (LoggingInitialization) \\r\\nINFO Loading user preferences: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\preferences (Preferences) \\r\\nINFO Searching for classes... (ClassSearcher) \\r\\nINFO Class search complete (1190 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-1801d9496e245211b825a8f8f691285a\\\\cache\\\\umsan-ghidra\\\\fscache2 (FileCacheMaintenanceDaemon) \\r\\nINFO Finished cache cleanup, estimated storage used: 0 (FileCacheMaintenanceDaemon) \\r\\nINFO Headless startup complete (3730 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-1801d9496e245211b825a8f8f691285a\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO Creating project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\project\\\\rea-project (DefaultProject) \\r\\nINFO REPORT: Processing input files: (HeadlessAnalyzer) \\r\\nINFO project: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\project\\\\rea-project (HeadlessAnalyzer) \\r\\nINFO IMPORTING: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-1801d9496e245211b825a8f8f691285a/target-99d5c05675ba.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\\nWARN Invalid or missing function at 100754dc (ExportDataDirectory) \\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 100237d0 (TLSDirectory) \\r\\nINFO TLS callbacks at 10002504 (TLSDirectory) \\r\\nWARN Invalid or missing function at 10066194 (ExportDataDirectory) \\r\\nWARN Invalid or missing function at 52e820e8 (ExportDataDirectory) \\r\\nINFO Additional info:\\nLoading file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-1801d9496e245211b825a8f8f691285a/target-99d5c05675ba.Cpm?MD5=7c70b7953052a8c057b8a57bb5ecdfce...\\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 COMCTL32.DLL...\\nLoading file:///C:/Windows/SysWOW64/comctl32.dll?MD5=a19d57953ec5f48772f24bad3b51dcac...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\comctl32.exports\\nLibrary not saved to project.\\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-1801d9496e245211b825a8f8f691285a\\\\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-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\hhctrl.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library IMM32.DLL...\\nLoading file:///C:/Windows/SysWOW64/imm32.dll?MD5=38c7ff7d32d051c391ef9560bd582ee5...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\imm32.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library IPHLPAPI.DLL...\\nLoading file:///C:/Windows/SysWOW64/IPHLPAPI.DLL?MD5=92b5c801cd67e6f294c0dcb15f91bf66...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\iphlpapi.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-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\kernel32.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library NETAPI32.DLL...\\nLoading file:///C:/Windows/SysWOW64/netapi32.dll?MD5=2741997fabdb9f46d921600497a24a8a...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\netapi32.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-1801d9496e245211b825a8f8f691285a\\\\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 SX32W.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-1801d9496e245211b825a8f8f691285a\\\\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 VERSION.DLL...\\nLoading file:///C:/Windows/SysWOW64/version.dll?MD5=e540ee5a5c515d5c3005f0cd6d133124...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\version.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library WININET.DLL...\\nLoading file:///C:/Windows/SysWOW64/wininet.dll?MD5=2901c5dbe30cc27b19d8c057211474eb...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\wininet.exports\\nLibrary not saved to project.\\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-1801d9496e245211b825a8f8f691285a\\\\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-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winspool.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nSearching 38 paths for library WSOCK32.DLL...\\nLoading file:///C:/Windows/SysWOW64/wsock32.dll?MD5=37f04524570f79e3a206d307af4a0e92...\\nCreated exports file: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\wsock32.exports\\nLibrary not saved to project.\\n------------------------------------------------\\n\\nApplying cached symbols from KERNEL32.DLL\\nApplying cached symbols from USER32.DLL\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\gdi32.exports\\nApplying cached symbols from VERSION.DLL\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\comctl32.exports\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\imm32.exports\\nApplying cached symbols from WININET.DLL\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\shell32.exports\\nApplying cached symbols from WINSPOOL.DRV\\nApplying cached symbols from WSOCK32.DLL\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\hhctrl.exports\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\winmm.exports\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\netapi32.exports\\nApplying C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\config\\\\umsan-ghidra\\\\ghidra_12.1.4_PUBLIC\\\\symbols\\\\win32\\\\iphlpapi.exports\\nLinking the External Programs of 'target-99d5c05675ba.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 [VERSION.DLL] -> not found in project\\n [VCL60.BPL] -> not found in project\\n [COMCTL32.DLL] -> not found in project\\n [IMM32.DLL] -> not found in project\\n [WININET.DLL] -> not found in project\\n [SHELL32.DLL] -> not found in project\\n [WINSPOOL.DRV] -> not found in project\\n [DCLHRP60.BPL] -> not found in project\\n [VCLJPG60.BPL] -> not found in project\\n [DBRTL60.BPL] -> not found in project\\n [VCLDB60.BPL] -> not found in project\\n [APOLLO5D6.BPL] -> not found in project\\n [VCLX60.BPL] -> not found in project\\n [WSOCK32.DLL] -> not found in project\\n [VCLSMP60.BPL] -> not found in project\\n [REALGRIDDB6.BPL] -> not found in project\\n [REALGRID6.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 [WINMM.DLL] -> not found in project\\n [REALGRIDEX6.BPL] -> not found in project\\n [NETAPI32.DLL] -> not found in project\\n [IPHLPAPI.DLL] -> not found in project\\n [SX32W.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-1801d9496e245211b825a8f8f691285a/target-99d5c05675ba.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 005e4bfc (PngDataType) \\r\\nINFO Packed database cache: C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\cache\\\\umsan-ghidra\\\\packed-db-cache (PackedDatabaseCache) \\r\\nINFO Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer) \\r\\nINFO -----------------------------------------------------\\n ASCII Strings 0.900 secs\\n Apply Data Archives 1.549 secs\\n Call Convention ID 0.002 secs\\n Call-Fixup Installer 0.084 secs\\n Create Address Tables 0.688 secs\\n Create Address Tables - One Time 2.266 secs\\n Create Function 1.037 secs\\n Data Reference 2.648 secs\\n Decompiler Switch Analysis 166.143 secs\\n Demangler GNU 0.388 secs\\n Demangler Microsoft 0.086 secs\\n Disassemble 2.251 secs\\n Disassemble Entry Points 0.557 secs\\n Embedded Media 0.072 secs\\n External Entry References 0.000 secs\\n Function ID 1.380 secs\\n Function Start Search 0.060 secs\\n Function Start Search After Code 0.120 secs\\n Non-Returning Functions - Discovered 0.832 secs\\n Non-Returning Functions - Known 0.013 secs\\n PDB Universal 0.003 secs\\n Reference 3.229 secs\\n Scalar Operand References 2.853 secs\\n Shared Return Calls 0.459 secs\\n Stack 10.765 secs\\n Subroutine References 2.784 secs\\n Subroutine References - One Time 0.002 secs\\n WindowsResourceReference 8.595 secs\\n X86 Function Callee Purge 0.580 secs\\n x86 Constant Reference Analyzer 11.799 secs\\n-----------------------------------------------------\\n Total Time 222 secs\\n-----------------------------------------------------\\n (AutoAnalysisManager) \\r\\nINFO REPORT: Analysis succeeded for file: file:///C:/Users/umsan/AppData/Local/Temp/rea-ghidra-1801d9496e245211b825a8f8f691285a/target-99d5c05675ba.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-1801d9496e245211b825a8f8f691285a\\\\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\":22603,\"retained_bytes\":22603},\"stderr\":{\"text\":\"NOTE: Picked up JDK_JAVA_OPTIONS: \\\"-Duser.home=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\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-1801d9496e245211b825a8f8f691285a\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\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-1801d9496e245211b825a8f8f691285a\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\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-1801d9496e245211b825a8f8f691285a\\\\home\\\" \\\"-Djava.io.tmpdir=C:\\\\Users\\\\umsan\\\\AppData\\\\Local\\\\Temp\\\\rea-ghidra-1801d9496e245211b825a8f8f691285a\\\\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 0x556d68 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 0x556d68 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 0x556d68 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": 8} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_rc1.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_rc1.json new file mode 100644 index 000000000..8d7cdf7d0 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rea_mcp/main_rc1.json @@ -0,0 +1 @@ +{"result": {"_meta": {"provenance": {"untrusted_content": true, "source": "analysis_target"}}, "content": [{"type": "text", "text": "{\"evidence_id\":\"ev_d81bcf49e5981cca4a10f33f5da185557a0d9d2b8cabdf71a97ce6f0306f3080\",\"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\":\"resolve_containing_procedure\",\"parameters\":{\"address\":\"0x556d70\"},\"raw_result\":{\"query_address\":\"0x556d70\",\"found\":false,\"procedure\":null,\"reason\":\"not_in_procedure\"},\"normalized_result\":{\"query_address\":\"0x556d70\",\"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_d81bcf49e5981cca4a10f33f5da185557a0d9d2b8cabdf71a97ce6f0306f3080", "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": "resolve_containing_procedure", "parameters": {"address": "0x556d70"}, "raw_result": {"query_address": "0x556d70", "found": false, "procedure": null, "reason": "not_in_procedure"}, "normalized_result": {"query_address": "0x556d70", "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": 9} \ No newline at end of file diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rules.json b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rules.json index 754a34628..81089fca3 100644 --- a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rules.json +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/32_실행계약단계_작업자료_20261114/evidence/rules.json @@ -1,49 +1,188 @@ { - "stage": "32_실행계약단계", - "date": "2026-11-14", - "method": "static bytes only (capstone 32bit · pefile RCDATA DFM) · no execution · no patch", - "binaries_sha256": { - "STmate.Cpm": "99d5c05675ba1399c51a71db8e26ebd5ff39fd78d02360147c7705deb399b5f5", - "ST_CPM/ST_Boq.CPM": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3", - "ST_Func_C.CPM": "f2d4b2f6ebda2d57e47d343907071400cdb4b9f01fa5cc7756f34eb5f94e2ca6", - "DP_Common.CPM": "5f55d301c6b2139816ff8832e46becb852c4f0a0c9b5da199371156b6aaf30e0" + "stage": "32_실행계약단계", + "date": "2026-11-14", + "method": "static bytes only (capstone 32bit · pefile RCDATA DFM) · no execution · no patch", + "binaries_sha256": { + "STmate.Cpm": "99d5c05675ba1399c51a71db8e26ebd5ff39fd78d02360147c7705deb399b5f5", + "ST_CPM/ST_Boq.CPM": "180707d0423dd2dcb8403d89ba1dbaf2731c0db5c6bb332029479fd9d9923ab3", + "ST_Func_C.CPM": "f2d4b2f6ebda2d57e47d343907071400cdb4b9f01fa5cc7756f34eb5f94e2ca6", + "DP_Common.CPM": "5f55d301c6b2139816ff8832e46becb852c4f0a0c9b5da199371156b6aaf30e0" + }, + "rules": [ + { + "id": "R1", + "name": "MROUNDUD(value, digits, sel)", + "module": "DP_Common", + "addr": "0x454044-0x4546de", + "confidence": "high", + "rule": "stdcall: value Extended at +8, digits int at +0x14, sel byte at +0x18. |v| formatted with FormatFloat('0.0'+'#'*13) after adding noise eps (10^(dotpos-13) for dotpos 2..9, 1e-4 for 10..13, 1e-9 above; eps=0 when fewer than 11 significant digits). digits>=0 cuts decimals, digits<0 cuts integer digits (10^|d| unit). sel=0 -> truncation toward zero; sel=1 -> adds one unit when first dropped digit >=5 (Round(StrToFloat('0.'+digit+'1'))). Sign restored by IIF(v>0)." }, - "rules": [ - {"id": "R1", "name": "MROUNDUD(value, digits, sel)", "module": "DP_Common", "addr": "0x454044-0x4546de", "confidence": "high", - "rule": "stdcall: value Extended at +8, digits int at +0x14, sel byte at +0x18. |v| formatted with FormatFloat('0.0'+'#'*13) after adding noise eps (10^(dotpos-13) for dotpos 2..9, 1e-4 for 10..13, 1e-9 above; eps=0 when fewer than 11 significant digits). digits>=0 cuts decimals, digits<0 cuts integer digits (10^|d| unit). sel=0 -> truncation toward zero; sel=1 -> adds one unit when first dropped digit >=5 (Round(StrToFloat('0.'+digit+'1'))). Sign restored by IIF(v>0)."}, - {"id": "R2", "name": "ADDBJVAL(value)", "module": "DP_Common", "addr": "0x4565f8", "confidence": "medium-high", - "rule": "adds eps (same dotpos table, '0.##############') in sign direction unless eps > |v|; no '.' -> unchanged."}, - {"id": "R3", "name": "OPTIMIZ(rec{T,L,M,S,A,N}, priority, digits, outIndex, mode)", "module": "ST_Func_C", "addr": "0x48094c-0x480f05 (helpers 0x480864, 0x4808d4)", "confidence": "high", - "rule": "component order from OPTNM chars (+0x7dd..) then A. mode 1 -> MROUNDUD sel1, mode 3 -> MROUNDUP, else MROUNDUD sel0. If priority or mode in {1,3} or sum(rounded)==raw T -> T=sum. Else Tr=MROUNDUD(T,d,0); f_i=|MROUNDUD(MFRAC(c_i*10^d),2,0)|; k=Round((Tr-sum)*10^d); loop while 0, ties keep earlier), f+=1, k=(sign(res)==sign(c_i))?k-1:k+1; finally r_i += MTRUNC(±f_i)/10^d. Output to global array slot outIndex (T,L,M,S,A,N at +0..+0x28)."}, - {"id": "R4", "name": "중기 실행단가 wNe_AutoCost", "module": "ST_Boq TwM_Boq_ExecX", "addr": "0x4da7a8-0x4daafc", "confidence": "high", - "rule": "only if cBx_Auto checked. X = Hour==0 ? 0 : MROUNDUD(DayCost/Hour,0,0). ratio = TAMT3==0 ? 0 : X/TAMT3. comps = L3/M3/S3*ratio -> OPTIMIZ(priority 0, digits=wCm_Jeol value 0..-5, idx1, mode0). If L+M+S != X: wCm_OPT 1 -> L=X-(M+S); 2 -> M=X-(L+S); 3 -> S=X-(L+M); 0 -> first char of OPTNM (+0x7dd): 'L'->L, 'M'->M, else S. 실행금액: ADDBJVAL(QTY1*X / *L / *M / *S) -> OPTIMIZ(priority=CHNNM +0x7c5, digits0, idx1, mode0)."}, - {"id": "R5", "name": "ExecX 열기·보조", "module": "ST_Boq", "addr": "0x4d9ae0 open, 0x4dab5c DayQtyExit, 0x4dab08 AMTExit, 0x4dac28 apply, 0x4dadd0 SameFirst, 0x4da7e6 target", "confidence": "high", - "rule": "time-based if code[0]=='X' or (code[0] in B,W and UNIT1 upper in {'X','HR'}); Hour default 8 (time) / 1 (else) when kind changes. DayCost=TAMT1*Hour; DayQty=QTY1/Hour; QTY1=Hour*DayQty. TAMT1=L1+M1+S1. Apply writes QTY1 (if cBx_AddQty) and LAMT1,MAMT1,SAMT1,TAMT1 then Commit. SameFirst: Hour==0 -> auto off; Jeol=0; DayCost=TAMT3*Hour; L1..S1=L3..S3. Target find: DayCost=MROUNDUP(T_AMT1/DayQty,0)."}, - {"id": "R6", "name": "실행수량·실행단가 할증", "module": "ST_Boq TwBoq.Act_Rate_Execute -> 0x511fa8, dialog TwM_Rate 0x4d4270", "addr": "0x512a80, 0x511fa8-0x5128f5", "confidence": "high (단가 비-Q 갈래 세부 medium)", - "rule": "Tag/10: 1 수량, 2 단가; Tag%10: 1 L, 2 M, 3 X, 4 other(SWBDAPQ). 수량: QTY1=MROUNDUD(QTY3*rate/100, Pnt2 digits 0..4, Pnt1==1). 단가 Q rows: LAMT1/NAMT1/MAMT1/SAMT1 = MROUNDUD(*3*rate/100,...), TAMT1=L+M+S. 단가 other rows: COSTN 1칸 단가 * rate. %-unit rows excluded for L/M and for SWP-letter W rows. Row amounts recomputed via 0x456504 (CHNNM)."}, - {"id": "R7", "name": "계약 변환 적용율", "module": "STmate TwM_Mk_Cont", "addr": "0x5534f0, 0x5569d8 (prior REA 27), 0x55610e", "confidence": "high", - "rule": "CBoxCreateILwi checked: edPer_L only (M,S hidden), label '단가 적용율', lbMsg '0% -> 기존 조사가자료 코드 변경없이'. Unchecked: L,M,S separate, overall=MROUNDUD((L+M+S)/3,3,1), lbMsg '0% -> W코드 0化'. PNUM = (ILwi && overall==0) ? '조사가적용' : FormatFloat('0.00##', ILwi?overall:(L+M+S)/3)+'% 적용'."}, - {"id": "R8", "name": "계약 변환 코드 갈래", "module": "STmate", "addr": "0x554be0-0x555ae8 (jump table 0x554c5b/0x554c72, 0x5551b8)", "confidence": "high", - "rule": "processed letters MLSWBDXQ (0x556790). gate ILwi && overall==0 -> skip all. Q: HalMLSW -> in-place unit scaling (no new code). L/M/S/W: HalMLSW off -> keep; on -> ILwi ? own letter : W. B/D/X: ILwi ? own letter : W. new code = letter + FormatFloat('00000', ++counter[letter]) with counters from settings +0x7a0..+0x7bc; Same2DIF off -> reuse by original code (substring search in concatenated seen list)."}, - {"id": "R9", "name": "계약 단가 계산", "module": "STmate", "addr": "0x5554f2-0x5556ed, Q 0x554de1-0x554f98, write 0x555705-0x55582d", "confidence": "high", - "rule": "overall==100 -> unchanged; overall==0 -> no price write (AppendBlank zeros). all rates equal -> comps*r/100 and T*r/100 unrounded -> OPTIMIZ(priority B:CHBNM +0x7c6, D:CHGNM +0x7c4, Q:CHGNM, else 1; digits0; idx1; mode0). rates differ -> each MROUNDUD(c*r/100,0,0), T=sum. B/D/X new code: NAGCD=overall, UC=T, BCONT=T, IFORM copied, BDQTY copy (0x5544b0)."}, - {"id": "R10", "name": "적용제외 공정", "module": "STmate", "addr": "0x55409c, 0x553c08, 0x555f68-0x5560d6", "confidence": "high (ITM_TYP 의미 미확인)", - "rule": "list query BDCODE1=\"T\" .and. BDCODE1>=\"T\" (cBx_Lev T1..T9). columns ITNUM,NAME1,SIZE1,T_AMT1,BDCODE1, col5 exclude default true when ITM_TYP in {11,21,31,41,51,71,72}, col6 RecNo. OK collects RecNo of checked rows. conversion skips rows from a checked head until SORTCODE==its ENDCODE."}, - {"id": "R11", "name": "비과세자재대 옵션", "module": "STmate", "addr": "0x556274-0x55653f", "confidence": "high (키 이름) / medium (마지막 PRJ_MEMO 기록 뜻)", - "rule": "if CBoxSetHal_NBUGAM checked and M rate >= 0: PRJ_MEMO.INI [1_KANJUB] 1_C_NBUGAM and 1_C_BUGA_M := MROUNDUD(v*M/100,0,0). BOQ rows unaffected."}, - {"id": "R12", "name": "설정 키", "module": "STmate", "addr": "0x42aeba-0x42af11", "confidence": "high", - "rule": "+0x7c4 = START/CHGNM (ReadBool default true, 단가산출근거 계산방식), +0x7c6 = START/CHBNM (default = CHGNM, 일위대가표 계산방식), +0x7c5 = START/CHNNM (default true, 내역서 계산방식). UI ST_Sys cmBx_CHG/CHB/CHN items '비목별금액 먼저계산','총액 먼저 계산'."}, - {"id": "R13", "name": "실행예산 내역 생성 복사", "module": "STmate TwPrjList.MkBoq", "addr": "0x55c956-0x55ca4d", "confidence": "medium (갈래 조건 미확인)", - "rule": "GetFieldValue MAMT1 -> SetFieldValue MAMT3 (likewise LAMT,SAMT,TAMT,M_AMT,L_AMT,S_AMT): 1칸 값을 3칸(최초)로 복사. '실행예산 레벨조정' 최소레벨 사용 중이면 레벨 한 단계 상향 · DES1 = '공종,작업명,구분' 머리 문자열."}, - {"id": "R14", "name": "SET_REP 0623/0624/0673/0674", "source": "C:/경영정보(주)/STmate 자료/설계자료/실습(맛보기)/SET_REP.DBF (data file)", "confidence": "high (데이터)", - "rule": "0623 계약,실행내역서 / 0624 (종양식): HEADTITLE '계 약 내 역 서', FLDCNT 0. 0673 실행예산서Ⅰ / 0674 실행예산서Ⅱ: HEADTITLE '실 행 예 산 서', FLDCNT 5: 공종 25, 설계(계획) 20, 실행예산 25, 작업명 15, 구분 25."} - ], - "open": [ - "MROUNDUP body (name-based ceil away from zero)", - "ITM_TYP code meaning (all 7 STC head rows = 0)", - "0673 vs 0674 row selection difference (ST_Prt string list only, no direct code xref)", - "row amount routine 0x456504 in ST_Boq", - "관급 구역 줄이 울진에서 미변환된 원인(변환 고리에 구역 조건 없음)", - "예상적용율 찾기 0x556d68 내부(5000 나눔 반복) 세부" + { + "id": "R2", + "name": "ADDBJVAL(value)", + "module": "DP_Common", + "addr": "0x4565f8", + "confidence": "medium-high", + "rule": "adds eps (same dotpos table, '0.##############') in sign direction unless eps > |v|; no '.' -> unchanged." + }, + { + "id": "R3", + "name": "OPTIMIZ(rec{T,L,M,S,A,N}, priority, digits, outIndex, mode)", + "module": "ST_Func_C", + "addr": "0x48094c-0x480f05 (helpers 0x480864, 0x4808d4)", + "confidence": "high", + "rule": "component order from OPTNM chars (+0x7dd..) then A. mode 1 -> MROUNDUD sel1, mode 3 -> MROUNDUP, else MROUNDUD sel0. If priority or mode in {1,3} or sum(rounded)==raw T -> T=sum. Else Tr=MROUNDUD(T,d,0); f_i=|MROUNDUD(MFRAC(c_i*10^d),2,0)|; k=Round((Tr-sum)*10^d); loop while 0, ties keep earlier), f+=1, k=(sign(res)==sign(c_i))?k-1:k+1; finally r_i += MTRUNC(±f_i)/10^d. Output to global array slot outIndex (T,L,M,S,A,N at +0..+0x28)." + }, + { + "id": "R4", + "name": "중기 실행단가 wNe_AutoCost", + "module": "ST_Boq TwM_Boq_ExecX", + "addr": "0x4da7a8-0x4daafc", + "confidence": "high", + "rule": "only if cBx_Auto checked. X = Hour==0 ? 0 : MROUNDUD(DayCost/Hour,0,0). ratio = TAMT3==0 ? 0 : X/TAMT3. comps = L3/M3/S3*ratio -> OPTIMIZ(priority 0, digits=wCm_Jeol value 0..-5, idx1, mode0). If L+M+S != X: wCm_OPT 1 -> L=X-(M+S); 2 -> M=X-(L+S); 3 -> S=X-(L+M); 0 -> first char of OPTNM (+0x7dd): 'L'->L, 'M'->M, else S. 실행금액: ADDBJVAL(QTY1*X / *L / *M / *S) -> OPTIMIZ(priority=CHNNM +0x7c5, digits0, idx1, mode0)." + }, + { + "id": "R5", + "name": "ExecX 열기·보조", + "module": "ST_Boq", + "addr": "0x4d9ae0 open, 0x4dab5c DayQtyExit, 0x4dab08 AMTExit, 0x4dac28 apply, 0x4dadd0 SameFirst, 0x4da7e6 target", + "confidence": "high", + "rule": "time-based if code[0]=='X' or (code[0] in B,W and UNIT1 upper in {'X','HR'}); Hour default 8 (time) / 1 (else) when kind changes. DayCost=TAMT1*Hour; DayQty=QTY1/Hour; QTY1=Hour*DayQty. TAMT1=L1+M1+S1. Apply writes QTY1 (if cBx_AddQty) and LAMT1,MAMT1,SAMT1,TAMT1 then Commit. SameFirst: Hour==0 -> auto off; Jeol=0; DayCost=TAMT3*Hour; L1..S1=L3..S3. Target find: DayCost=MROUNDUP(T_AMT1/DayQty,0)." + }, + { + "id": "R6", + "name": "실행수량·실행단가 할증", + "module": "ST_Boq TwBoq.Act_Rate_Execute -> 0x511fa8, dialog TwM_Rate 0x4d4270", + "addr": "0x512a80, 0x511fa8-0x5128f5", + "confidence": "high (단가 비-Q 갈래 세부 medium)", + "rule": "Tag/10: 1 수량, 2 단가; Tag%10: 1 L, 2 M, 3 X, 4 other(SWBDAPQ). 수량: QTY1=MROUNDUD(QTY3*rate/100, Pnt2 digits 0..4, Pnt1==1). 단가 Q rows: LAMT1/NAMT1/MAMT1/SAMT1 = MROUNDUD(*3*rate/100,...), TAMT1=L+M+S. 단가 other rows: COSTN 1칸 단가 * rate. %-unit rows excluded for L/M and for SWP-letter W rows. Row amounts recomputed via 0x456504 (CHNNM)." + }, + { + "id": "R7", + "name": "계약 변환 적용율", + "module": "STmate TwM_Mk_Cont", + "addr": "0x5534f0, 0x5569d8 (prior REA 27), 0x55610e", + "confidence": "high", + "rule": "CBoxCreateILwi checked: edPer_L only (M,S hidden), label '단가 적용율', lbMsg '0% -> 기존 조사가자료 코드 변경없이'. Unchecked: L,M,S separate, overall=MROUNDUD((L+M+S)/3,3,1), lbMsg '0% -> W코드 0化'. PNUM = (ILwi && overall==0) ? '조사가적용' : FormatFloat('0.00##', ILwi?overall:(L+M+S)/3)+'% 적용'." + }, + { + "id": "R8", + "name": "계약 변환 코드 갈래", + "module": "STmate", + "addr": "0x554be0-0x555ae8 (jump table 0x554c5b/0x554c72, 0x5551b8)", + "confidence": "high", + "rule": "processed letters MLSWBDXQ (0x556790). gate ILwi && overall==0 -> skip all. Q: HalMLSW -> in-place unit scaling (no new code). L/M/S/W: HalMLSW off -> keep; on -> ILwi ? own letter : W. B/D/X: ILwi ? own letter : W. new code = letter + FormatFloat('00000', ++counter[letter]) with counters from settings +0x7a0..+0x7bc; Same2DIF off -> reuse by original code (substring search in concatenated seen list)." + }, + { + "id": "R9", + "name": "계약 단가 계산", + "module": "STmate", + "addr": "0x5554f2-0x5556ed, Q 0x554de1-0x554f98, write 0x555705-0x55582d", + "confidence": "high", + "rule": "overall==100 -> unchanged; overall==0 -> no price write (AppendBlank zeros). all rates equal -> comps*r/100 and T*r/100 unrounded -> OPTIMIZ(priority B:CHBNM +0x7c6, D:CHGNM +0x7c4, Q:CHGNM, else 1; digits0; idx1; mode0). rates differ -> each MROUNDUD(c*r/100,0,0), T=sum. B/D/X new code: NAGCD=overall, UC=T, BCONT=T, IFORM copied, BDQTY copy (0x5544b0)." + }, + { + "id": "R10", + "name": "적용제외 공정", + "module": "STmate", + "addr": "0x55409c, 0x553c08, 0x555f68-0x5560d6", + "confidence": "high (ITM_TYP 의미 미확인)", + "rule": "list query BDCODE1=\"T\" .and. BDCODE1>=\"T\" (cBx_Lev T1..T9). columns ITNUM,NAME1,SIZE1,T_AMT1,BDCODE1, col5 exclude default true when ITM_TYP in {11,21,31,41,51,71,72}, col6 RecNo. OK collects RecNo of checked rows. conversion skips rows from a checked head until SORTCODE==its ENDCODE." + }, + { + "id": "R11", + "name": "비과세자재대 옵션", + "module": "STmate", + "addr": "0x556274-0x55653f", + "confidence": "high (키 이름) / medium (마지막 PRJ_MEMO 기록 뜻)", + "rule": "if CBoxSetHal_NBUGAM checked and M rate >= 0: PRJ_MEMO.INI [1_KANJUB] 1_C_NBUGAM and 1_C_BUGA_M := MROUNDUD(v*M/100,0,0). BOQ rows unaffected." + }, + { + "id": "R12", + "name": "설정 키", + "module": "STmate", + "addr": "0x42aeba-0x42af11", + "confidence": "high", + "rule": "+0x7c4 = START/CHGNM (ReadBool default true, 단가산출근거 계산방식), +0x7c6 = START/CHBNM (default = CHGNM, 일위대가표 계산방식), +0x7c5 = START/CHNNM (default true, 내역서 계산방식). UI ST_Sys cmBx_CHG/CHB/CHN items '비목별금액 먼저계산','총액 먼저 계산'." + }, + { + "id": "R13", + "name": "실행예산 내역 생성 복사", + "module": "STmate TwPrjList.MkBoq", + "addr": "0x55c956-0x55ca4d", + "confidence": "medium (갈래 조건 미확인)", + "rule": "GetFieldValue MAMT1 -> SetFieldValue MAMT3 (likewise LAMT,SAMT,TAMT,M_AMT,L_AMT,S_AMT): 1칸 값을 3칸(최초)로 복사. '실행예산 레벨조정' 최소레벨 사용 중이면 레벨 한 단계 상향 · DES1 = '공종,작업명,구분' 머리 문자열." + }, + { + "id": "R14", + "name": "SET_REP 0623/0624/0673/0674", + "source": "C:/경영정보(주)/STmate 자료/설계자료/실습(맛보기)/SET_REP.DBF (data file)", + "confidence": "high (데이터)", + "rule": "0623 계약,실행내역서 / 0624 (종양식): HEADTITLE '계 약 내 역 서', FLDCNT 0. 0673 실행예산서Ⅰ / 0674 실행예산서Ⅱ: HEADTITLE '실 행 예 산 서', FLDCNT 5: 공종 25, 설계(계획) 20, 실행예산 25, 작업명 15, 구분 25." + } + ], + "open": [ + "RS field meaning", + "print flag +0x1768 name, Prn_Nae vs Prn_NaeW flag", + "예상적용율 고정분 (second 0x45f974 result)", + "ITM_TYP x0 vs x1", + "MkBoq copy branch conditions" + ], + "rea_mcp_phase": { + "tool": "rea-agents 6.7.0 + Ghidra 12.1.4 (procedure_pseudo_code, resolve_containing_procedure)", + "cross_check": { + "0x554be0": "Ghidra pseudo matches R8/R9 (no correction)" + }, + "resolved": [ + { + "id": "R15", + "name": "MROUNDUP", + "addr": "DP_Common 0x4547ac, Ceil 0x4297f4", + "confidence": "high", + "rule": "format |v|+eps with '0.0#########', cut at digits, Ceil(StrToFloat('0.'+next<=10 digits)) -> add 10^-d if any nonzero dropped digit; sign restored." + }, + { + "id": "R16", + "name": "ITM_TYP names", + "addr": "ST_U_Convert 0x587d9c (string[0..120]); ST_Boq 0x4fe15b lookup 1..119", + "confidence": "high", + "rule": "0 일반공종,10/11 안전관리비,20/21 품질관리비,30/31 미확정설계공종(PS),40 제요율적용제외공종,41 제비율적용제외공종,50/51 작업설 등,60/61 매입세,70 관급자재공종,71 관급자재대(도급자),72 관급자재대(관급자),111 비과세자재대,120 조달수수료" + }, + { + "id": "R17", + "name": "울진 미변환 줄", + "source": "울진 2025 STC BOQ11/BOQ12", + "confidence": "high", + "rule": "unchanged leaves = blocks of T3 '페기물처리' and T3 '관급자재대'(close C3 '합계(제외금액)'); both ITM_TYP 0 -> user-selected heads." + }, + { + "id": "R18", + "name": "실행예산서 Ⅰ·Ⅱ", + "addr": "ST_Prt 0x44fdf5 tag table 0x44ffc0 (20673/20674) -> ST_P_Nae Prn_Nae_Cont1/2 0x4c27f8 mode [0x57a4e0]; filter 0x4c245d; BeforePrint 0x4c3cd0", + "confidence": "high", + "rule": "mode1 all rows (+0x1768 on: !(MLSWBDXAP .and. QTY1=0)); mode2 SUBSTR(BDCODE1,1,1)$'TEC' .or. RS=1, C1/E1 closes suppressed. Form PM_Nae_Cont columns 공종 | 설계(계획) 수량·단위·금액(2칸) | 실행예산 작업명·구분·수량·단위·재/노/경/총액 단가·금액·비고(1칸)." + }, + { + "id": "R19", + "name": "계약,실행내역서 0623/0624", + "addr": "ST_Prt 0x4513e7 (20623 -> Prn_Nae|Prn_NaeW), 0x451477 (20624 -> Prn_Nae_P|Prn_NaeW_P)", + "confidence": "high (module) / medium (flag)", + "rule": "standard 내역서 printers applied to current (contract/exec) project." + }, + { + "id": "R20", + "name": "실행예산 행 금액", + "addr": "ST_Boq 0x456504 -> 0x433490 / 0x44019c -> 0x43dee8", + "confidence": "medium-high", + "rule": "row loaded into shared calc record; same row engine as design; CHNNM flag passed; per quantity slot loop (6)." + }, + { + "id": "R21", + "name": "예상적용율 찾기", + "addr": "STmate 0x556d68", + "confidence": "medium", + "rule": "aggregate (MCOST/LCOST/SCOST × rate, MROUNDUD 0) iteration against 총공사비 target via 0x45f974; start MROUNDUP(ratio,5); step ±1/(2N), N=min(5000,round(target/5000)); rate 5 decimals of fraction (0.001%)." + } ] -} + } +} \ No newline at end of file diff --git a/resources/tester/test_stmate_stage_contract_rea.py b/resources/tester/test_stmate_stage_contract_rea.py index 6283f9e15..dfbc43487 100644 --- a/resources/tester/test_stmate_stage_contract_rea.py +++ b/resources/tester/test_stmate_stage_contract_rea.py @@ -241,3 +241,58 @@ def test_progress_project_keeps_contract_amounts(): ] assert all(r["tUnit"] == r["dUnit"] for r in rows if r["kind"] == "leaf") assert _call(("contract", "pnumText", [{"rateL": 87.745, "pclass": 6}]))[0] == "100.00% 적용" + + +def test_itm_typ_names_and_default_exclusion(): + """ITM_TYP 이름표(ST_U_Convert 0x587d9c) — 기본 체크 11·21·31·41·51·71·72 = 안전·품질·PS·제비율적용제외·작업설·관급자재대.""" + names, dflt = _call( + ("contract", "levelHeads", [TREE, 1]), ("contract", "levelHeads", [TREE, 3]) + ) + assert names[1]["itm"] == 21 and names[1]["itmName"] == "품질관리비" + out = subprocess.check_output( + [ + "node", + "-e", + "const K=require(process.argv[1]);process.stdout.write(JSON.stringify(" + "K.DEFAULT_EXCLUDE_ITM.map(c=>K.ITM_TYP_NAMES[c])))", + str(ROOT / "tools/stmate-test/contract_calc.js"), + ], + text=True, + encoding="utf-8", + ) + assert json.loads(out) == [ + "안전관리비", + "품질관리비", + "미확정설계공종(PS)", + "제비율적용제외공종", + "작업설 등", + "관급자재대(도급자)", + "관급자재대(관급자)", + ] + + +def test_uljin_unconverted_rows_are_excluded_head_blocks(uljin): + """울진 미변환 공종 = 계표시 머리 블록 둘(T3「페기물처리」 · T3「관급자재대」 닫음 C3 제외금액) · ITM_TYP 0 = 사용자 선택.""" + b11, b12 = uljin["boq_tables"]["BOQ11.DBF"], uljin["boq_tables"]["BOQ12.DBF"] + struct = re.compile(r"^(T\d|E\d|C\d|:)$") + block = set() + for name in ("페기물처리", "관급자재대"): + head = next(i for i, r in enumerate(b11) if (r.get("NAME1") or "").strip() == name) + end = next( + i + for i in range(head + 1, len(b11)) + if re.match(r"^[EC]\d$", (b11[i].get("BDCODE1") or "").strip()) + ) + assert b11[head]["BDCODE1"] == "T3" and float(b11[head]["ITM_TYP"] or 0) == 0 + block |= set(range(head + 1, end)) + assert (b11[end]["BDCODE1"] or "").strip() == "C3" + leaf = lambda r: r.get("BDCODE1") and not struct.match(r["BDCODE1"].strip()) # noqa: E731 + l11 = [(i, r) for i, r in enumerate(b11) if leaf(r)] + l12 = [r for r in b12 if leaf(r)] + assert len(l11) == len(l12) + kept = { + i + for (i, r), q in zip(l11, l12) + if r["BDCODE1"].strip() == q["BDCODE1"].strip() and float(r.get("TAMT1") or 0) + } + assert kept == block diff --git a/resources/tester/test_stmate_stage_exec_rea.py b/resources/tester/test_stmate_stage_exec_rea.py index 2af674dcc..19f061fe3 100644 --- a/resources/tester/test_stmate_stage_exec_rea.py +++ b/resources/tester/test_stmate_stage_exec_rea.py @@ -199,3 +199,49 @@ def test_report_columns_from_set_rep(): ["작업명", 15], ["구분", 25], ] + + +@pytest.mark.parametrize( + "v,d,exp", + [ + (10.01, 0, 11), + (-10.01, 0, -11), + (10, 0, 10), + (123401, -2, 123500), + (123400, -2, 123400), + (2.341, 2, 2.35), + (0.4, 0, 1), + ], +) +def test_mroundup_ceil_of_dropped_digits(v, d, exp): + """MROUNDUP(0x4547ac, REA MCP 의사코드) — 버린 다음 숫자(10자리 안) 하나라도 0 아니면 한 단위 올림(0 반대쪽).""" + assert _call(("exec", "mroundup", [v, d]))[0] == pytest.approx(exp) + + +def _nd(kind, code, qty=0, level=None): + nd = {"kind": kind, "code": code, "st": {"d": {"qty": qty}, "x": {"qty": qty}}} + if level is not None: + nd["level"] = level + return nd + + +def test_report_rows_mode_1_and_2(): + """실행예산서 Ⅰ = 모든 줄(설정 켬 = 실행수량 0 공종 뺌) · Ⅱ = T·E·C 줄 + RS=1 · C1·E1 닫음 뺌(ST_P_Nae 0x4c245d · 0x4c3d38).""" + nodes = [ + _nd("head", "T2", level=2), + _nd("head", "T1", level=1), + _nd("leaf", "M0001", 3), + _nd("leaf", "L0002", 0), + {**_nd("leaf", "B0003", 1), "rs": 1}, + _nd("close", "E1"), + _nd("close", "C2"), + {"kind": "blank", "st": {}}, + ] + one, one_skip, two = _call( + ("exec", "reportRows", [nodes, 1, {}]), + ("exec", "reportRows", [nodes, 1, {"skipZeroQty": True}]), + ("exec", "reportRows", [nodes, 2, {}]), + ) + assert [n["code"] for n in one] == ["T2", "T1", "M0001", "L0002", "B0003", "E1", "C2"] + assert "L0002" not in [n["code"] for n in one_skip] and len(one_skip) == 6 + assert [n["code"] for n in two] == ["T2", "T1", "B0003", "C2"] diff --git a/tools/stmate-test/PLAN.md b/tools/stmate-test/PLAN.md index 76ff04a20..3436ab4c2 100644 --- a/tools/stmate-test/PLAN.md +++ b/tools/stmate-test/PLAN.md @@ -29,9 +29,9 @@ ## 진행률 -- 합계: 전체 246 · 구현 205 · 부분 38 · 없음 3 → 진행률 91.1%((205 + 38×0.5) / 246) · 구현만 세면 83.3% +- 합계: 전체 246 · 구현 211 · 부분 33 · 없음 2 → 진행률 92.5%((211 + 33×0.5) / 246) · 구현만 세면 85.8% -### G1 화면·메뉴 (구현 48 · 부분 5 · 없음 1) — 93.5% +### G1 화면·메뉴 (구현 49 · 부분 4 · 없음 1) — 94.4% - [x] F1-01 메인 메뉴·툴바·하단 금액 집계줄 — STmate.Cpm 메인 · 현재: 구현(원본 메뉴 구조·툴바 차례·단축키 12·체크 항목·최근 폴더(test_stmate_ui)) - [x] F1-02 공사목록표 목록·선택·불러오기 — wPrjList · 현재: 구현(공사목록표 · 다른 내역서 열기(저장 직접비 1원 일치)) @@ -50,7 +50,7 @@ - [x] F1-15 공종 목록(코드·명칭·분류 정렬, 대공종 필터) — wKongJong · 현재: 구현(공종목록 코드 넣기 · 대공종 옵션) - [x] F1-16 주공종 집계표(레벨별 계표시 확인) — wMBoq · 현재: 구현(레벨 거르기·계표시·레벨 올리기/내리기·주공종 집계) - [x] F1-17 공종번호 자동입력(머리·끝 글자·번호형식·자리수) — wITNum · 현재: 구현(하위 전체공종 반영 · 실무 7건 규칙 번호 255/304 일치 · 나머지는 손 입력(test_itnum_tree_reproduces_every_rule_number)) -- [ ] F1-18 내역 할증율 적용(전체/비목별) — wBoqRate · 현재: 부분(REA 34 TwBoqRate — 보호(UC) 행 비목 무관 건너뜀 · B·D·L·M·S·W·X 밖 율 0 반영(test_hal_rate_rows) · 율 single 실수 정밀도 1원 차이 조건부 · 실물 표본 0) +- [x] F1-18 내역 할증율 적용(전체/비목별) — wBoqRate · 현재: 구현(REA 34 §7·§17.4 — 보호 행 건너뜀 · B·D·L·M·S·W·X 밖 율 0 · 계수 4바이트 실수(ST_Boq 0x4e9b20 fstp dword) → 70%·115% 1원 적음(test_stmate_jdl_rea · test_hal_rate_rows) · 실물 표본 0) - [x] F1-19 비목별 일괄 보정(절사/반올림 × 소수 0~4 · 범위) — wM_Rate · 현재: 구현(비목별 단가 끝전 · 줄 고정 단가(server fixedUnit)로 다시 불러도 유지) - [x] F1-20 일위대가표 풀기 — wExpnd · 현재: 구현(일위대가 풀기 = 구성표 × 내역 수량) - [x] F1-21 풀어넣기 비목별 끝전·가산비목 지정 — wM_Expnd · wM_Expnd10 · 현재: 구현(풀어넣기 비목별 끝전·할증·손료 비율 줄 · 손료 줄 금액 7건 대조) @@ -88,7 +88,7 @@ - [x] F1-53 인쇄영역 선택(당초/변경/분할·레벨·변경 1~8차) — wM_Sel_Prn · 현재: 구현(인쇄영역 당초/변경/분할·레벨·차수 반영) - [ ] F1-54 특수문자·그림코드·메모 입력 — mMinMsg_ · wInDlgImg · wInDlgMemo · 현재: 부분(특수문자·메모·그림코드 넣기 · 그림 저장 자리 근거 없음) -### G2 계산 엔진 (구현 57 · 부분 4 · 없음 0) — 96.7% +### G2 계산 엔진 (구현 58 · 부분 3 · 없음 0) — 97.5% - [x] F2-01 노임 일→시간 환산식 좌→우 순차 — 18번 §2.1 · Start8x RXXNM · 현재: 구현(calc.js 84) - [x] F2-02 노임 환산 갈래 H0~H5(터널·준설선) — wM_Set_Sys cmBx_Sel_RX · 30번 §4 · 현재: 구현(REA 34 Main 0x43894c — COSTN.RXX 1·10~14 = 식 하나로 모든 L 행 · 0·2~9 = 목록 첫 일치 · 화면 순번↔값 0x4fcae8(test_labor_branch_by_rxx) · H 글자 짝 미확인) @@ -98,7 +98,7 @@ - [x] F2-06 자재 후보 최저가 자동채택 — 17번 §5.5 · 현재: 구현(최저가 채택 · 실무 7건 변동 0(test_material_candidate_minimum_matches_stored)) - [x] F2-07 수동 고정·보호표시 우선 — 22번 §3.1 · 13번 T10 · 현재: 구현(보호표시(UC=T) 우선) - [x] F2-08 중기 시간당 사용료 조립(손료·운전원·연료·잡품 성분 절사) — 17번 §3 · 현재: 구현(BDQTY 구성 · 성분 절사 · 7건 대조) -- [ ] F2-09 손료 주간·야간·2교대·3교대(E0~E3) — 30번 §4 · 현재: 부분(손료 E1~E3 입력 칸 · REA 34 계산 본체에 E0~E3 갈래·계수 없음 — XML 요소 이름뿐) +- [x] F2-09 손료 주간·야간·2교대·3교대(E0~E3) — 30번 §4 · 현재: 구현(REA 34 §17.7 — 원본 계산에 E1~E3 계수 곱 없음(조달청 XML 열거값뿐) · 계수 칸 걷음 · 구분값만 행에 남김) - [x] F2-10 단가산출 D코드 전개 계산 — 18번 §2.2 · 23번 · 현재: 구현(smt_eval.js · 원설계 5건 282개 1원 · 참조 단가는 저장값) - [x] F2-11 운반비 경비 귀속 — 23번 §4 · 26번 §1 · 현재: 구현(COSTN SBMOK=S · (-=)+「운반비 계」 T% · 저장 금액 판정 걷음) - [x] F2-12 일위대가 B코드 구성 조립·성분 절사 — 17번 §2·§5 · 현재: 구현(BDQTY 구성 · 행 소수1 버림 · CHBNM 총액우선 = 행 합계액 기준 · 7건 대조) @@ -113,7 +113,7 @@ - [x] F2-21 관급자재·조달수수료 분리, 관급 천원 올림 — 16번 §4.3·§4.7 · 현재: 구현(관급·조달수수료 · 코드 붙은 % 줄 = 같은 상위 공종 앞 줄 합 × 율 계산·저장 재계산(test_stmate_file_pct · kanjub_stc)) - [x] F2-22 요율표 규모·기간 구간 조회 — 12번 §8~10 · 06번 §2 · 현재: 구현(kanjub_calc·kanjub_parts 원본 계산 순서 · 실무 7건 저장 결과키 전수 1원(test_kanjub_every_stored_key) · 표본 밖 선택지 손셈 대조(test_stmate_kanjub_opts)) - [x] F2-23 요율 기본값 처리 — calc.js · 현재: 구현(num 기본값 · 4건 시험) -- [ ] F2-24 공사종류·적용기준(행자부 RateM 포함)·공사기간 축 — 12번 §10.1 · 현재: 부분(공사종류·기간 축 요율 조회 7건 재현 · REA 34 행자부(I_SET_BASE 1) = RATE_M 간접노무비·일반관리비 23행·이윤 24행 조회 판독 · 규모 문턱 조건부 · 조회 미연결) +- [ ] F2-24 공사종류·적용기준(행자부 RateM 포함)·공사기간 축 — 12번 §10.1 · 현재: 부분(공사종류·기간 축 요율 조회 7건 재현 · REA 34 §5.2·§17.5 행자부 = RATE_M 조회 · 문턱 직접공사비 50억·300억 확인 · 콤보 정수값 짝 미확인 · 조회 미연결) - [x] F2-25 간접노무비(직노×율) — 12번 §3 · 현재: 구현(calc.js 385, 요율은 저장값) - [x] F2-26 산재·건강·연금보험료 — 12번 §3 · 현재: 구현(calc.js 387~391) - [x] F2-27 고용보험료(등급 7) — 12번 §8 rGrd_Rate_Kobo · 현재: 구현(kanjub_calc·kanjub_parts 원본 계산 순서 · 실무 7건 저장 결과키 전수 1원(test_kanjub_every_stored_key) · 표본 밖 선택지 손셈 대조(test_stmate_kanjub_opts)) @@ -152,7 +152,7 @@ - [x] F2-60 연쇄 재계산(L/M/S→X→D→B→내역→원가) — 08번 §1 · 현재: 구현(기초단가부터 원설계 5건 전 단가·총공사비 1원 · 변경설계 일부 미대조) - [ ] F2-61 표준시장단가 적용(ACTTYP·ACTOPT 노무비 끝전 보정) — 22번 §3.3 · 현재: 부분(REA 34 Main 0x45a468 나눔·OPTIMIZ 끝전 = calc.splitStdMarket(test_std_market_split_modes) · 내역 계산 연결 없음) -### G3 수량산출·식언어 (구현 25 · 부분 4 · 없음 0) — 93.1% +### G3 수량산출·식언어 (구현 26 · 부분 3 · 없음 0) — 94.8% - [x] F3-01 COSTN.SMT 메모 블록 읽기(IFORM 위치) — 21번 §1 · 23번 · 현재: 구현(smt_parser 150) - [x] F3-02 헤더 변수 정의(;; 줄)·변수 대입 — 23번 · 현재: 구현(smt_engine 112) @@ -166,7 +166,7 @@ - [x] F3-10 조건 함수 IF·IIF·IFI·IFO — 24번 §2.3 · 25번 §2.2 · 현재: 구현(smt_eval 우선순위·함수·IIF/IF(test_functions_and_left_to_right)) - [x] F3-11 금액변수·소계변수(대상·저장·%) 선언 — 28번 §1 · 현재: 구현(금액·누계 변수 · 계산후 제외(test_sonryo_amount_and_total_variables)) - [x] F3-12 계산후 제외처리·항목집계 제외 코드 — 28번 §1·§4 · 현재: 구현(금액·누계 변수 · 계산후 제외(test_sonryo_amount_and_total_variables)) -- [ ] F3-13 강제금액(직접 지정 금액) — 28번 §4 · 현재: 부분(REA 34 강제금액 = 조달청 JDL→ST8 변환의 숫자 금액 참조 → W 견적코드(ST_U_Convert 0x455013) · 화면 입력 꼴 미확인) +- [x] F3-13 강제금액(직접 지정 금액) — 28번 §4 · 현재: 구현(REA 34 §17.8 — STmate 산출근거에 강제금액 문법 없음 · JDL 가져오기의 숫자 금액 참조 → W 견적코드 변환 전용 · 사용자 기능은 강제수량뿐) - [x] F3-14 수량기호 Q·A·T·N — wM_Edit_San · 현재: 구현(Q·A·T·N 줄 · 결과적용 비목 4택·0원 비목(test_code_insert_lines_zero_skip_and_result_strip)) - [x] F3-15 식 문법 검사(줄 단위 오류 메시지) — 28번 §4 · 현재: 구현(줄 단위 문법 오류 · 실무 산근 오류 0(test_section_markers_exclusion_and_grammar_errors)) - [x] F3-16 문법 강조·문법설명·함수/연산 입력 단추 — 26번 §3 · 현재: 구현(함수 단추·강조 낱말 = 원본 화면 정의(test_editor_function_list_and_highlight_follow_dfm)) @@ -184,7 +184,7 @@ - [x] F3-28 내역↔BDQTY 수량 연결(CON_QTY) — ST_U_ConBD · 현재: 구현(코드 종류별 수량 · 내역↔BDQTY 자원 집계(test_qty_by_code_and_rollup_on_real_boq)) - [x] F3-29 수량코드(QCODE) 등록·검사 — 28번 §4 · 현재: 구현(수량코드 검사(test_qcode_check_and_next_code_and_file_signature)) -### G4 파일 입출력 (구현 26 · 부분 2 · 없음 2) — 90.0% +### G4 파일 입출력 (구현 26 · 부분 3 · 없음 1) — 91.7% - [x] F4-01 STC(ZIP) 열기 — ST_U_Archive · 09번 §5 · 현재: 구현(server.py 92) - [x] F4-02 STC 저장(압축) — ST_U_Archive ComP_Data · 현재: 구현(stc_archive · 같은 파일은 원본 바이트 · 덮기 전 백업 · 7건 왕복 바이트 동일) @@ -208,13 +208,13 @@ - [x] F4-20 조달청 호환규정 XML 내보내기 — 30번 · uM_XML_Info · 현재: 구현(report_pps · 공식 XSD V1.0.5 검증 5건 · 총공사비·직접비 저장값 1원(test_stmate_report_pps)) - [x] F4-21 조달청 XML·조달 형식 가져오기(Conv_XML_ST8·Conv_Jodal_ST8) — 28번 §3 · 현재: 구현(conv_xml · 5건 내보내기 → 가져오기 왕복 말단 행·차수 직접비·총공사비 일치(test_stmate_conv_xml) · 옛 조달 형식 근거 없음) - [x] F4-22 XML 변환 설정(공사유형 8·지역·건축 사업내용) — uM_XML_Info · uM_ConstType · 현재: 구현(conv_xml_cfg 공사유형·지역·건축 사업내용 XSD 에서 읽음 · XSD 검증) -- [ ] F4-23 JDL 내보내기·검사 — frm_JDLAnno · JDLCHK.*.dll · 현재: 없음(REA 34 JDL = 조달청 호환 TEXT 묶음·탭 구분·JDLCheck 검사 항목 판독 · 내보내기 미구현 · app.js 569 '|' 형식 근거 없음) +- [ ] F4-23 JDL 내보내기·검사 — frm_JDLAnno · JDLCHK.*.dll · 현재: 부분(REA 34 §17.9 — jdl_format.py: 단가 목록 8종 고정폭 자리·열 이름·열 개수·코드 글자 검사(test_stmate_jdl_rea) · 세부 3종 열 이름 조건부 · 묶음 내보내기 없음) - [x] F4-24 엑셀 → 내역 불러오기 — wM_From_XLS · 현재: 구현(conv_xls_boq · 원본 엑셀 5권 → STC 내역 행 전 칸 일치(test_stmate_conv_xls)) - [ ] F4-25 엑셀 역등록(CONV_XLS_2_ST·INITIAL)·엑셀 → BDQTY — 24번 §3 · 현재: 부분(단가 목록·산출식·구성표 코드·수량 일치 · 3건 새 공사 일치 · 중기 구성 PRPT·PRIN 뜻·이름 칸 미확정) - [x] F4-30 BDQTY.DBF 구성표 복호 읽기 — STC_난독화_상태 · 현재: 구현(bdqty.py 자리별 회전·더하기 표 283자리 · 사용자 승인 · 글자 칸 제외) - [ ] F4-26 자재 기준자료 XLS 입출력 — wM_JajeXLS · 현재: 부분(자재 기준자료 엑셀 왕복 · 원본 화면·방향 미확인) - [x] F4-27 기준 BOQ·코드 변경 엑셀 왕복 — 24번 §3 · ST_U_ChgCode · 현재: 구현(stc_codechg 내역 8표 엑셀 왕복 · 코드 변경 되돌리면 7건 원래 바이트) -- [ ] F4-28 구버전 → Win8 자료 변환 — ST_U_Convert ST_ConvToWin8 · 현재: 없음(REA 34 ST_ConvToWin8 갈래(DOS 110~ · 7.x 120~)·차례·BOQ 필드 바꿈 판독 · 미구현) +- [ ] F4-28 구버전 → Win8 자료 변환 — ST_U_Convert ST_ConvToWin8 · 현재: 없음(REA 34 §13·§17.10 ST_ConvToWin8 갈래·차례·BOQ 필드 바꿈 판독 · 구버전 자료 표본 없음 · 미구현) - [x] F4-29 자동백업·자료 복원 — wM_D_Restore · wM_ST_Restore · 현재: 구현(api_file 자동 백업·복원) ### G5 보고서·내보내기 (구현 22 · 부분 14 · 없음 0) — 80.6% @@ -256,7 +256,7 @@ - [x] F5-35 금액 한글 표기(AMTTOHAN) — 24번 §2.4 · 현재: 구현(금액 한글 표기 · 원본 한글 금액 11건 전부 일치) - [x] F5-36 SET_REP 데이터 기반 열·폭·제목 — 20번 §3 · 현재: 구현(SET_REP 서식 제목·시트 이름 적용 · 보고서 시험 포함) -### G6 설계변경·계약·실행·기성 (구현 27 · 부분 9 · 없음 0) — 87.5% +### G6 설계변경·계약·실행·기성 (구현 30 · 부분 6 · 없음 0) — 91.7% - [x] F6-01 차수 4벌(원설계+3차변경) 칸 관리 — 08번 §2 · 24번 §7 · 현재: 구현(2·3·4차수 칸 고침이 저장 후 유지(test_slot_2_3_4_edits_persist)) - [ ] F6-02 통합형 BOQ11+BOQ12에서 BOQ12 현재안 — 16번 §4.5 · 현재: 부분(울진 BOQ12 = 계약내역(STMATE 착공내역서) 판명 · contract_calc 로 BOQ11 에서 1원 재현) @@ -268,12 +268,12 @@ - [x] F6-08 간접비 변경 모드: 당초액 유지(건강·장기요양·연금·퇴직공제) — 19번 §6 · 35번 §4 · 현재: 구현(D_ 표시 항목 = 저장 금액 고정 · 변경 2건 대조) - [x] F6-09 간접비 변경 방법 A(비율)·방법 B(증감×율) — 08번 §2 · 현재: 구현(scr_stage 재계산·당초 유지·방법A·방법B 선택 · 안전관리비 방법A 실물 대조) - [x] F6-10 보험료 변경 계산 3모드 — wM_KanJub cBx_CH_BO · 현재: 구현(REA 34 문 PCLASS 7·계열>1 · 1·2 식 · 장기요양·퇴직공제 갈래 · 기본값 0x47b633 · 차수 화면 선택(test_series_chain_uses_previous_series · test_gate_closed_outside_pclass7)) -- [x] F6-11 2차·3차 변경 계산 — wM_KanJub cBx_Chasu · 현재: 구현(REA 34 차수 콤보 PCLASS 갈래 · 직전 계열 되셈 사슬 · 당초액 유지 = 직전 계열(test_stmate_stage_change_rea) · 2차수 2건 실물 대조 · 3·4 실물 표본 없음) +- [x] F6-11 2차·3차 변경 계산 — wM_KanJub cBx_Chasu · 현재: 구현(REA 34 차수 콤보 PCLASS 갈래 · 직전 계열 되셈 사슬 · 당초액 유지 = 직전 계열 · 상한 4차 = 계열 5(MCOST5·QTY5 · K_ORD>4 거부 · Ghidra 확인)(test_stmate_stage_change_rea · test_stmate_kanjub_rea) · 3~5 실물 표본 없음) - [x] F6-12 원가계산서 당초/변경 대비·변경분만 인쇄 — PM_Won_A_C · Cmbx_PORD1_H · 현재: 구현(당초/변경 대비 · 변경분만 인쇄 · 영덕 엑셀 공사원가계산서 일치) - [x] F6-13 설계변경내역서(0643·0644) — CHANGE_STR · 현재: 구현(설계변경내역서 · 영덕 엑셀 당초·변경 줄 전부 일치) -- [ ] F6-14 변경내역서(변경율)(0645) — CHANGE_AMT · 현재: 부분(변경율 내역서 · REA 34 0645 = 「설계변경내역서(변경율)」 제목만 · 율 식 미확인) +- [ ] F6-14 변경내역서(변경율)(0645) — CHANGE_AMT · 현재: 부분(변경율 내역서 · REA 34 §17.6 0645 = 「설계변경내역서(변경율)」 머리 「증 감」 · 율 식 미확인) - [x] F6-15 설계변경증감대비표(0648)·금액대비표 — CHANGE_AMT · 현재: 구현(증감대비표·금액대비표 · 영덕 엑셀 행 차례·금액 일치 · 인쇄·엑셀) -- [ ] F6-16 변경총괄·굴착·시도 변경내역서(0661~0666) — CHANGE_* · 현재: 부분(변경총괄 = 영덕 엑셀 총괄내역서 일치 · REA 34 굴착 계열 짝(시비 1·구비 2 / 변경 3·4) = change_calc.excavTable · 양식 차례 조건부) +- [ ] F6-16 변경총괄·굴착·시도 변경내역서(0661~0666) — CHANGE_* · 현재: 부분(변경총괄 = 영덕 엑셀 총괄내역서 일치 · REA 34 §17.6 0651~0667 구.시도/시도/구도 = 시비·구비·합 · 굴착 계열 짝 = change_calc.excavTable · 칸 차례 조건부) - [x] F6-17 계약 변환 비목별 단가적용율(노·재·경) — wM_Mk_Cont · 현재: 구현(contract_calc 노·재·경 적용율 버림 · 울진 BOQ12 계약내역 1원) - [x] F6-18 계약 변환 옵션(기초단가·일위/산근 생성·동일코드·노무비율·비과세) — 27번 §2.2 · 현재: 구현(REA 32 TwM_Mk_Cont · 생성 켬=율 하나 노·재·경 · 끔=비목별·새 코드 W·대표율 0 공내역 · 비과세 = C_NBUGAM·C_BUGA_M × 재료비율(test_stmate_stage_contract_rea)) - [x] F6-19 적용율 0% → W코드 공내역 — 27번 §2.2 · 현재: 구현(0% 공내역 W코드 · 울진 대조) @@ -282,10 +282,10 @@ - [x] F6-22 설계 → 계약자료 변환등록(당초/변경·레벨) — wM_Conv_Mode · 현재: 구현(소광 원설계 → 변환등록·저장 = 실제 울진 계약 STC 일치(test_stmate_stage_register)) - [x] F6-23 낙찰율 열(NAGCD)·계약단가 저장 — 26번 §4 · 현재: 구현(새 코드 낙찰율·단가·산근 글·구성표 저장 = 울진 계약 STC 일치(test_stmate_stage_register)) - [x] F6-24 계약 원가계산(계약 제잡비) — 27번 · 현재: 구현(계약 원가계산 · 울진 총공사비 333,315,000원 일치) -- [ ] F6-25 계약·실행내역서(0623·0624) — PM_Nae_Cont · 현재: 부분(계약·실행내역서 화면 · 실물 표본 없음) -- [ ] F6-26 실행예산 작업(실행단가·실행수량) — wBoq 실행예산작업 · 현재: 부분(REA 32 0x511fa8 실행단가·수량 할증(소수 0~4 절사/반올림 · 머리글자 갈래 율) · 행 금액 0x456504 미해독) +- [x] F6-25 계약·실행내역서(0623·0624) — PM_Nae_Cont · 현재: 구현(REA MCP 32 §8 계약·실행내역서 0623·0624 = 설계 내역서 인쇄 모듈을 지금 공사에 그대로 · 기본 내역서 열(0623 두 모듈 고르는 기준 미확인)) +- [x] F6-26 실행예산 작업(실행단가·실행수량) — wBoq 실행예산작업 · 현재: 구현(REA 32 할증 0x511fa8 + 행 금액 0x456504 = 설계와 같은 공용 행 계산 엔진(test_stmate_stage_exec_rea)) - [x] F6-27 중기 실행단가 계산(절사 6택·차액 보정 순서) — wM_Boq_ExecX · 현재: 구현(REA 32 0x4da7a8 합계 = 사용료÷시간 1원 절사 · 최초단가 비례 · 끝전 OPTIMIZ · 차액 = OPTNM 첫 성분(test_stmate_stage_exec_rea)) -- [ ] F6-28 실행예산서 Ⅰ·Ⅱ(0673·0674) — SET_REP · 현재: 부분(실행예산서 화면 · 표본 없음) +- [x] F6-28 실행예산서 Ⅰ·Ⅱ(0673·0674) — SET_REP · 현재: 구현(REA MCP 32 §8 실행예산서 Ⅰ = 모든 줄(실행수량 0 제외 설정) · Ⅱ = 계표시·RS=1 줄 · 열 구성(test_stmate_stage_exec_rea)) - [x] F6-29 기성 회차 전회·금회·누계·비율 — wM_KanJub_K rGrd_Jab · 현재: 구현(REA 33 칸 1 계약·2 누계·3 전회·4 금회 · 회차 이월(전회←누계·금회 0) · 누계 금액 따로 셈(test_stmate_stage_progress_rea)) - [x] F6-30 공종별 기성수량·잔량 입력 — 27번 §3.2 · 현재: 구현(REA 33 0x4f4bbd 전회+금회 > 계약이면 금회 = 계약−전회 · 누계 = 전회+금회) - [x] F6-31 기성 제잡비(금회직접×계약제잡비율) — 27번 §3.1 · 현재: 구현(REA 33 0x4cdec0 금회 = 버림(계약잡비율 × 금회 직접비) · 마지막 회차 = 도급 − 전회) diff --git a/tools/stmate-test/contract_calc.js b/tools/stmate-test/contract_calc.js index 38c8113db..7a6816988 100644 --- a/tools/stmate-test/contract_calc.js +++ b/tools/stmate-test/contract_calc.js @@ -13,10 +13,12 @@ * · 세 율 같음 = 성분·총액 × 율/100 → OPTIMIZ(우선 플래그: B = CHBNM · D·Q = CHGNM · 그 밖 비목별, 0자리) * · 세 율 다름 = 비목별 MROUNDUD(단가 × 율/100, 0, 0) · 계 = 합 * · 적용제외 = 고른 계표시 머리(T 레벨 ≥ 선택)부터 그 ENDCODE 까지(0x555f68) · 목록 기본 체크 = ITM_TYP 11·21·31·41·51·71·72 + * (안전관리비·품질관리비·PS·제비율적용제외·작업설·관급자재대 도급자/관급자 — ITM_TYP 이름표 ST_U_Convert 0x587d9c) + * · 울진 관급 줄 = T3「관급자재대」(닫음 C3 제외금액) 머리를 고른 결과 — 그 머리 ITM_TYP 0(기본 체크 아님) * · 비과세자재대 옵션 = 원가계산 C_NBUGAM·C_BUGA_M × 재료비율/100 1원 절사(0x556274) — 내역 줄과 무관 * · PNUM = 켬·율 0 → '조사가적용' · 그 밖 FormatFloat('0.00##', 대표율) + '% 적용'(0x55610e) * 실물(울진 2025 STC): 계약 단가·금액 1원 · 직접비 · 원가계산 · PNUM '87.745% 적용' - * 앱 확장(원본 근거 없음 · 울진 관찰): 관급 구역 줄 제외(excludeGov) · 공종 단위 제외(excludeLeaves) · 단가 절사 자리(digits) + * 앱 확장(원본 근거 없음): 관급 구역 줄 제외(excludeGov — 원본은 머리 선택으로만) · 공종 단위 제외(excludeLeaves) · 단가 절사 자리(digits) * 정답 대조: resources/tester/test_stmate_stage_contract.py · test_stmate_stage_contract_rea.py */ const StmateContract = (() => { @@ -59,6 +61,27 @@ const StmateContract = (() => { }; // 적용제외 목록 기본 체크 ITM_TYP(0x55427b 비트표 0x55448c) const DEFAULT_EXCLUDE_ITM = [11, 21, 31, 41, 51, 71, 72]; + // ITM_TYP 공종구분 이름 — ST_U_Convert 상수 배열 0x587d9c(0~120) · 조달청 호환 공종구분과 같은 글 + const ITM_TYP_NAMES = { + 0: "일반공종", + 10: "안전관리비", + 11: "안전관리비", + 20: "품질관리비", + 21: "품질관리비", + 30: "미확정설계공종(PS)", + 31: "미확정설계공종(PS)", + 40: "제요율적용제외공종", + 41: "제비율적용제외공종", + 50: "작업설 등", + 51: "작업설 등", + 60: "매입세", + 61: "매입세", + 70: "관급자재공종", + 71: "관급자재대(도급자)", + 72: "관급자재대(관급자)", + 111: "비과세자재대", + 120: "조달수수료", + }; const TARGET = "MLSWBDXQ"; // 실제 쓰는 율 — 켬 = 노무비 칸 하나 · 끔 = 셋 따로(대표율 = 평균 소수 셋째 사사오입) @@ -102,13 +125,18 @@ const StmateContract = (() => { function levelHeads(tree, level = 1, itmOf = null) { return tree.nodes .filter((nd) => nd.kind === "head" && !nd.zone && nd.level >= Math.max(1, n0(level))) - .map((nd) => ({ - recno: nd.recno, - itnum: nd.itnum, - name: nd.name, - level: nd.level, - defaultExcluded: DEFAULT_EXCLUDE_ITM.includes(n0(itmOf ? itmOf(nd) : nd.itmTyp)), - })); + .map((nd) => { + const itm = n0(itmOf ? itmOf(nd) : nd.itmTyp); + return { + recno: nd.recno, + itnum: nd.itnum, + name: nd.name, + level: nd.level, + itm, + itmName: ITM_TYP_NAMES[itm] || "", + defaultExcluded: DEFAULT_EXCLUDE_ITM.includes(itm), + }; + }); } // 적용제외 판정 — 고른 머리 아래 전부(SORTCODE~ENDCODE) · (앱) 고른 공종 · (앱) 관급 구역 @@ -305,7 +333,8 @@ const StmateContract = (() => { return calcKanjub({ kanjubConfig: cfg }, conv.totals, null, cfg); } - // 예상적용율 찾기 — 노·재·경 같은 율 · 0.001% 단위 · 목표 이하 최대 + // 예상적용율 찾기 — 노·재·경 같은 율 · 0.001% 단위 · 목표 이하 최대(앱: 행 단위 변환 이분 탐색) + // 원본 Act_Find_NagExecute 0x556d68 = 비목 합(MCOST·LCOST·SCOST) × 율 근사 되풀이 · 총공사비 목표 · 율 소수 5자리(REA 32 §8.2) // what = "direct"(직접공사비) · "grand"(총공사비, cfg 필요) function findRate(tree, opts, target, stage = 1, what = "direct", cfg = null) { const value = (k) => { @@ -425,6 +454,7 @@ const StmateContract = (() => { return { CONTRACT_CARRY, DEFAULT_EXCLUDE_ITM, + ITM_TYP_NAMES, effRates, isProgressProject, pnumText, diff --git a/tools/stmate-test/exec_calc.js b/tools/stmate-test/exec_calc.js index c70ea86db..6961fe34e 100644 --- a/tools/stmate-test/exec_calc.js +++ b/tools/stmate-test/exec_calc.js @@ -15,6 +15,10 @@ * · 실행단가·실행수량 할증 = ST_Boq TwBoq.Act_Rate_Execute 0x512a80 → 0x511fa8 * 실행수량 = MROUNDUD(최초수량 × 율/100, 자릿수 0~4, 절사/반올림) · 실행단가 = MROUNDUD(최초단가 × 율/100, …) * · 율은 코드 머리글자 갈래(L 노무비 · M 재료비 · X 중장비 · 그 밖 W)마다 하나 · 단가 할증은 단위 % 줄 제외 + * · 행 금액 = ST_Boq 0x456504 가 행을 계산 묶음에 싣고 공용 행 계산(0x433490 Q·A 줄 · 0x44019c → 0x43dee8) + * 을 수량칸마다 부름 — 설계 내역과 같은 엔진(CHNNM 전달) · 앱은 OPTIMIZ(CHNNM, 0자리) 대입 + * · 실행예산서 Ⅰ·Ⅱ = ST_P_Nae Prn_Nae_Cont1·2(0x4c27f8 · 모드 1·2 · 같은 PM_Nae_Cont 양식) + * Ⅰ = 모든 줄(출력 설정 켬이면 실행수량 0 공종 뺌) · Ⅱ = 계표시 줄(T·E·C) + RS=1 줄 · 소계 닫음(C1·E1) 안 찍음 * 앱 확장(원본 없음): 비목별 율(rateM·rateL·rateS) · 원 단위 절사(jeol) — 옛 화면·시험 호환 * 시험: resources/tester/test_stmate_stage_exec_rea.py (원본 규칙 손계산 대조) */ @@ -88,10 +92,38 @@ const StmateExec = (() => { return v > 0 ? r : -r; } - // MROUNDUP(v, d) — 올림(0 반대쪽) · 이름·호출 자리만 확인(본문 미해독) → 중간 확신 + // MROUNDUP(v, d) — DP_Common 0x4547ac (REA MCP Ghidra 의사코드로 확인) + // FormatFloat('0.0#########', |v| + 미소값) → d 자리에서 자름 → 버린 다음 숫자들(최대 10자리)을 + // '0.' 뒤에 붙여 Ceil(0x4297f4 = Trunc + (Frac > 0)) → 하나라도 0 이 아니면 한 단위 올림(0 반대쪽) function mroundup(v, d = 0) { - const t = mroundud(v, d, 0); - return t === n0(v) ? t : t + Math.sign(n0(v)) * Math.pow(10, -Math.trunc(n0(d))); + v = n0(v); + d = Math.trunc(n0(d)); + if (v === 0) return 0; + const a = Math.abs(v); + const s0 = fmtHash(a, 10); + let pos = s0.indexOf(".") + 1; + if (pos > 0 && s0.length - pos < 11) { + const first = s0.search(/[1-9]/) + 1; + if (first > 0 && s0.length - first < 11) pos = 0; + } + if (pos === 0 && d >= 0 && !s0.includes(".")) return v; + const s = fmtHash(a + (pos === 0 ? 0 : noiseEps(pos)), 10); + const [ip, fp = ""] = s.split("."); + let body, rest, e; + if (d >= 0) { + body = ip + (d ? "." + fp.slice(0, d).padEnd(d, "0") : ""); + rest = fp.slice(d, d + 10); + e = -d; + } else { + const D = -d; + if (ip.length > D) + ((body = ip.slice(0, ip.length - D) + "0".repeat(D)), (rest = ip.slice(-D) + fp)); + else ((body = "0"), (rest = ip + fp)); + e = D; + } + const sum = Number(body) + (/[1-9]/.test(rest) ? Math.pow(10, e) : 0); + const r = d > 0 ? Number(sum.toFixed(Math.min(d, 20))) : sum; + return v > 0 ? r : -r; } // ADDBJVAL(v) — DP_Common 0x4565f8 · '.' 자리 기준 미소값을 부호 방향으로 더함 @@ -349,8 +381,107 @@ const StmateExec = (() => { ["구분", 25], ]; + // 실행예산서 Ⅰ·Ⅱ 줄 고르기 — ST_P_Nae 0x4c245d(조회식) · 0x4c3d38(소계 닫음 거름) + // Ⅰ = 모든 줄 · 설정 켬(+0x1768)이면 !(MLSWBDXAP 공종 .and. QTY1=0) · Ⅱ = T·E·C 줄 + RS=1 줄 · C1·E1 안 찍음 + function reportRows(nodes, mode = 1, o = {}) { + return nodes.filter((nd) => { + if (nd.kind === "blank") return false; + const c = String(nd.newCode || nd.code || "").trim(); + if (mode === 2) { + if (nd.kind === "close") return !/^[CE]1$/.test(c); + return nd.kind === "head" || !!nd.rs; + } + const q = nd.st && nd.st.x ? nd.st.x.qty : 0; + return !(o.skipZeroQty && nd.kind === "leaf" && /^[MLSWBDXAP]/.test(c) && !n0(q)); + }); + } + // PM_Nae_Cont 양식 열(DFM TPM_NAE_CONT 머리 띠) — 설계(계획) = 2칸(QTY2·UNIT2·T_AMT2) · 실행 = 1칸 + const NAE_CONT_COLS = [ + "공종", + "설계(계획) 수량", + "단위", + "금액", + "작업명", + "구분", + "수량", + "단위", + "재료비 단가", + "재료비 금액", + "노무비 단가", + "노무비 금액", + "경비 단가", + "경비 금액", + "총액 단가", + "총액 금액", + "비고", + ]; + + // 계약,실행내역서(0623·0624) — ST_Prt 꼬리표 20623 → Prn_Nae/Prn_NaeW · 20624 → Prn_Nae_P/Prn_NaeW_P(0x4513e7) + // 설계 내역서와 같은 인쇄 모듈을 지금 공사(계약·실행)에 씀 · SET_REP FLDCNT 0 → 내역서 기본 열 + const NAE_COLS = [ + "공종", + "명칭", + "규격", + "수량", + "단위", + "재료비 단가", + "재료비 금액", + "노무비 단가", + "노무비 금액", + "경비 단가", + "경비 금액", + "합계 단가", + "합계 금액", + "비고", + ]; + // nodes 의 st[key] 값으로 내역서 줄 — 머리·닫음 = 금액만 + function naeRows(nodes, key) { + return nodes + .filter((nd) => nd.kind !== "blank") + .map((nd) => { + const v = (nd.st && nd.st[key]) || {}; + if (nd.kind !== "leaf") + return [ + nd.itnum || "", + nd.name || "", + "", + "", + "", + "", + v.mAmt, + "", + v.lAmt, + "", + v.sAmt, + "", + v.tAmt, + "", + ]; + return [ + nd.itnum || "", + nd.name || "", + nd.spec || "", + v.qty, + nd.unit || "", + v.mUnit, + v.mAmt, + v.lUnit, + v.lAmt, + v.sUnit, + v.sAmt, + v.tUnit, + v.tAmt, + nd.newCode || nd.code || "", + ]; + }); + } + return { JEOL, + NAE_COLS, + naeRows, + NAE_CONT_COLS, + reportRows, ORDERS, REPORT_COLS, mroundud, diff --git a/tools/stmate-test/scr_stage_contract.js b/tools/stmate-test/scr_stage_contract.js index ee48848ae..8da28e5cf 100644 --- a/tools/stmate-test/scr_stage_contract.js +++ b/tools/stmate-test/scr_stage_contract.js @@ -109,46 +109,17 @@ function builders(ctx) { return { + // 계약,실행내역서(0623) — ST_Prt 20623 → ST_P_Nae Prn_Nae(내역서 기본 양식)를 계약 내역에 · 1칸 = 계약 단가·금액 boq: () => { const { conv, st } = compute(ctx); + const E = global.STMATE_EXEC; return [ { name: "계약내역서", title: "계 약 내 역 서", info: [`공사명 : ${S.pname(ctx)}`, `설계 ${st}차수 → 계약`], - head: [ - [ - { t: "공종", r: 2 }, - { t: "명칭", r: 2 }, - { t: "규격", r: 2 }, - { t: "수량", r: 2 }, - { t: "단위", r: 2 }, - { t: "설계", c: 2 }, - { t: "계약", c: 2 }, - { t: "코드", r: 2 }, - ], - ["단가", "금액", "단가", "금액"], - ], - rows: conv.rows - .map((r) => - r.kind === "leaf" - ? [ - r.itnum, - r.name, - r.spec, - r.qty, - r.unit, - r.dUnit, - r.dAmt, - r.tUnit, - r.tAmt, - r.newCode, - ] - : r.kind === "head" - ? [r.itnum, r.name, "", "", "", "", "", "", r.tAmt, ""] - : null, - ) - .filter(Boolean), + head: [E.NAE_COLS], + rows: E.naeRows(conv.nodes, st), }, ]; }, @@ -277,11 +248,11 @@ const heads = global.STMATE_CONTRACT.levelHeads(c.tree, o.level, itmOf(ctx)); const exSet = new Set(o.excludeHeads.map(String)); const exGrid = S.grid( - [["공종번호", "명칭", "규격", "금액", "레벨", "적용제외"]], + [["공종번호", "명칭", "공종구분(ITM_TYP)", "금액", "레벨", "적용제외"]], heads.map((h) => [ h.itnum, h.name, - "", + h.itmName, n0((c.tree.nodes.find((nd) => nd.recno === h.recno) || { st: {} }).st[c.st]?.tAmt), h.level, { diff --git a/tools/stmate-test/scr_stage_exec.js b/tools/stmate-test/scr_stage_exec.js index ba0b8e882..5f61fb880 100644 --- a/tools/stmate-test/scr_stage_exec.js +++ b/tools/stmate-test/scr_stage_exec.js @@ -23,6 +23,7 @@ rateQ: 100, digits: 0, round: 0, + skipZeroQty: false, // 실행예산서 Ⅰ 실행수량 0 공종 빼기(출력 설정 +0x1768) overrides: {}, mc: { code: "", @@ -66,85 +67,80 @@ return { x, label, opts, budget: E.budgetFromTree(tree, stage, opts) }; } - // SET_REP 0673·0674 열 이름(설계(계획) 칸 = 기준 이름) - const cols = (label) => - global.STMATE_EXEC.REPORT_COLS.map(([t], i) => - i === 1 ? `${label === "설계" ? "설계" : label}(계획)` : t, - ); - function builders(ctx) { const info = [`공사명 : ${S.pname(ctx)}`]; - return { - // 실행예산서 Ⅰ·Ⅱ — SET_REP.DBF 0673·0674 다섯 열(공종 · 설계(계획) · 실행예산 · 작업명 · 구분) - // Ⅰ·Ⅱ 차이는 바이너리 미해독 · 앱 = Ⅰ 계표시 머리 · Ⅱ 공종(말단) - b1: () => { - const { budget, label } = compute(ctx); - const rows = budget.nodes - .filter((nd) => nd.kind === "head" && !nd.zone) - .map((nd) => [ + const naeCont = (mode) => { + const { budget, x } = compute(ctx); + const E = global.STMATE_EXEC; + const rows = E.reportRows(budget.nodes, mode, { skipZeroQty: x.skipZeroQty }).map((nd) => { + const d = nd.st.d || {}, + e = nd.st.x || {}; + if (nd.kind !== "leaf") + return [ `${nd.itnum || ""} ${nd.name || ""}`.trim(), - nd.st.d.tAmt, - nd.st.x.tAmt, "", - "공종", - ]); + "", + d.tAmt, + "", + "", + "", + "", + "", + e.mAmt, + "", + e.lAmt, + "", + e.sAmt, + "", + e.tAmt, + "", + ]; return [ - { name: "실행예산서1", title: "실 행 예 산 서", info, head: [cols(label)], rows }, + nd.itnum || "", + d.qty, + nd.unit || "", + d.tAmt, + nd.name || "", + nd.spec || "", + e.qty, + nd.unit || "", + e.mUnit, + e.mAmt, + e.lUnit, + e.lAmt, + e.sUnit, + e.sAmt, + e.tUnit, + e.tAmt, + nd.newCode || nd.code || "", ]; - }, - b2: () => { - const { budget, label } = compute(ctx); - const rows = budget.nodes - .filter((nd) => nd.kind === "leaf") - .map((nd) => [ - `${nd.newCode || nd.code || ""} ${nd.name || ""}`.trim(), - nd.st.d.tAmt, - nd.st.x.tAmt, - nd.spec || "", - nd.unit || "", - ]); - return [ - { name: "실행예산서2", title: "실 행 예 산 서", info, head: [cols(label)], rows }, - ]; - }, + }); + return [ + { + name: `실행예산서${mode}`, + title: "실 행 예 산 서", + info, + head: [E.NAE_CONT_COLS], + rows, + }, + ]; + }; + return { + // 실행예산서 Ⅰ·Ⅱ(0673·0674) — ST_Prt 꼬리표 20673·20674 → ST_P_Nae Prn_Nae_Cont1·2(같은 PM_Nae_Cont 양식) + // Ⅰ = 모든 줄 · Ⅱ = 계표시 줄(소계 닫음 빼고) · 열 = PM_Nae_Cont 머리 띠(설계(계획) 2칸 · 실행 1칸) + b1: () => naeCont(1), + b2: () => naeCont(2), + // 계약,실행내역서(0623) — 내역서 기본 양식(Prn_Nae)을 실행 내역(1칸)에 ce: () => { - const c = S.contractCompute(ctx); + const { budget } = compute(ctx); const E = global.STMATE_EXEC; - const x = est(ctx); - const b = E.budgetFromTree({ nodes: c.conv.nodes }, c.st, x); return [ { name: "계약실행내역서", title: "계 약 내 역 서", info, - head: [ - [ - "공종", - "명칭", - "규격", - "단위", - "수량", - "계약단가", - "계약금액", - "실행수량", - "실행단가", - "실행금액", - ], - ], - rows: b.nodes - .filter((nd) => nd.kind === "leaf") - .map((nd) => [ - nd.newCode || nd.code, - nd.name, - nd.spec, - nd.unit, - nd.st.d.qty, - nd.st.d.tUnit, - nd.st.d.tAmt, - nd.st.x.qty, - nd.st.x.tUnit, - nd.st.x.tAmt, - ]), + head: [E.NAE_COLS], + rows: E.naeRows(budget.nodes, "x"), }, ]; },