diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/37_파일입출력_잔여_정적분석.md b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/37_파일입출력_잔여_정적분석.md new file mode 100644 index 000000000..855cf0260 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/37_파일입출력_잔여_정적분석.md @@ -0,0 +1,118 @@ +# 37 파일 입출력 잔여 — JDL · 구버전 변환 · 엑셀 역등록 · 자재 XLS · 그림 코드 정적 분석 + +## 0. 범위·방법·한계 + +- 대상 장부 항목: F4-23 · F4-28 · F4-25 · F4-26 · F1-54. +- 방법: 원본 바이트 읽기만. Ghidra 12.1.4(rea-agents 6.7.0) 디컴파일 · capstone 역어셈블 · import 표. +- 원본 실행·패치 없음. 구버전(DOS·7.x) 자료 표본 없음 → 규칙에서 만든 합성 자료로만 시험. +- 확신도: 확인 = 명령·상수·문자열로 바로 읽힘 · 조건부 = 추론 섞임 · 미확인 = 근거 못 찾음. +- 주소는 VA. 근거 창은 `evidence/`. + +| 대상 | 경로 | +|---|---| +| ST_U_Convert.CPM | System/ST_CPM (sha256 0166beb6…) | +| JDLCHK.Tab_33.dll | System (sha256 c5052736…) | +| STmate.Cpm · ST_P_XLS.CPM · ST_U_Archive.CPM · DP_Common.CPM | System · System/ST_CPM | + +## 1. 조달청 JDL TEXT (F4-23) — 줄 형식 바로잡음 · 단가 목록 확인 · 세부 미해독 + +### 1.1 34 §17.9 바로잡음 — 고정폭 아님 · 탭 구분 — 확인 + +- JDLCHK.Tab_33 0x5051e0 = 자리 표(0x405dd8 뒤 dword)에 탭 넣기. 고리 앞 0x505218 `jmp 0x505242` 가 고리를 건너뜀 → 죽은 표 · 줄은 그대로. +- 0x504d20 줄 나눔: + - 첫 `\x05` 자리에서 둘로. 없으면 줄 전체가 앞쪽. + - 앞쪽 + " " 를 탭(#9)으로 나눔 · 조각마다 Trim(#0~#32 걷음) → 열 배열(최대 50). + - 뒤쪽 + " " 를 `\x07`(0x504f30) 로 나눔 → STmate 덧붙임 칸(최대 100) · 조건부(둘째 고리 끝까지 안 읽음). +- 열 개수 검사 = 앞쪽 배열 길이(cmp 값 34 §17.9 표와 같음). L.Txt 오류 번호 203002. +- 만드는 쪽 값 글: FUN_004a7cf0 — 실수는 FloatToStr 뒤 EXTTOSTR(DP_Common 0x453e4c · 지수꼴 풀어 씀) · 그 밖 TrimRight · dl=1 이면 뒤에 탭. +- 참거짓 칸 글(UC) = Delphi 6 Variant 글 'True'/'False' — 조건부. + +### 1.2 만드는 쪽 — ST_U_Convert Conv_ST8_Jodal 0x4b9f2c — 확인 + +- 계열(0x4ba06e): PRJLST PCLASS 0→1 · 3→2 · 4·5·6·7·9→1 · 그 밖은 앞 계열 그대로(미확인). +- 코드 차례: COSTN `SUBSTR(CODE,1,1)$"LMSWI"`(0x4bb622) → `"BXD"`(0x4bb696). 해당분 모드는 CONBD 등 사용 목록(0x4bac11). 같은 표 안 차례 = 열린 색인(미확인). +- 줄 함수: 0x4b0904(쓰임 · [ebp-0x186d]=1 고정 0x4ba725) · 0x4a89dc(고정폭 옛 꼴 · 죽은 길). +- 코드 기록 FUN_00431758: CODE +8 · NAME +0x39 · SIZE +0x9f · UNIT +0x119(X 코드면 「시간」) · EQCODE +0x1b · BQCODE +0x128. + - 계열 s 묶음 +0x130+0x30s: 노무 = M·S 코드면 0 아니면 LAMTs · 재료 = L·S 면 0 아니면 MAMTs · 경비 = L·M 면 0 아니면 SAMTs · 합 = 셋 더함(0x432d7e~0x432f62). +- 단위 손질: Trim 「$」→「$」 · L·M·S·W 의 「T%」→「T%*100」 · B·X·D 의 대문자 「L.S.」「P.S.」→ 단위+「3」. +- 마지막 덧붙임 칸 = GUN(필드 GUN·BAMT~ZAMT 가 다 있고 M·S 코드) 아니면 " ". + +| 첫 글자 → 파일 | 열(탭) | 덧붙임(\x05 뒤 \x07 사이) | +|---|---|---| +| L → L.Txt | CODE · NAME · SIZE · UNIT · 노무 · EQCODE · 빈 | BQCODE · UC · AMT_1s~AMT_5s · 끝칸 | +| M → M.Txt | CODE · NAME · SIZE · UNIT · 재료 · EQCODE · (AMT_ns · PG_ns)×5 · 빈 · 빈 · 빈 | BQCODE · UC · AMT_1s~5s · PG_1s~5s · PG_J · PG_s · 끝칸 | +| S → E.Txt | CODE · NAME · SIZE · UNIT · 0 · 0 · 경비 · EQCODE · 빈 | BQCODE · UC · 끝칸 | +| W → W.Txt | CODE · NAME · SIZE · UNIT · 재료 · 노무 · 경비 · EQCODE · 빈 | BQCODE · UC (+ 기록 +0x254≠0 이면 2칸 · GUN 필드 있으면 BAMTs~ZAMTs — 미구현) | +| B → Unit.Txt · X → JUnit.Txt · D → Danga.Txt | CODE · NAME · SIZE · UNIT · 재료 · 노무 · 경비 · EQCODE · 빈 · 빈 | BQCODE · UC | +| I → IMG.DBF | `CODE="<코드>"` 로 COSTN.DBF 에서 AppendFrom(0x4b0b40) | — | + +- Main.TXT(0x4bc1a9): PNUM · PNAME(탭→빈칸 · TrimRight) · 「02」. +- GongJong.TXT 머리 줄(PRIV_PR 거짓일 때 · 0x4bc4f3): 「01」 · PNAME · 「1」 · 빈 / 덧붙임 빈 · False · 빈 · 빈 · 빈 · 「0」. 본문 = 0x4b6378(BOQ 줄마다) — 미해독. +- Global.Ini: [BASIC] MAKER=STM · CDATE=yyyyMMdd · VERSION=(프로그램 판 · 미확인) · JDL VERSION=3.3 / [COST] LCOST·MCOST·ECOST(=SCOSTs)·TCOST(PRJLST GetString 글 — 앞 빈칸 처리 조건부) / [CPART] PPBIT=2C · MQBIT=4C · MABIT=0C · MTBIT=0C · UQBIT=6C · JQBIT=6C · DRBIT=11R · DTBIT=0C(나머지 키는 설정값 · 미확인) / [PPART] · 환율 키 — 미확인. +- 참고 표: DANGA.DBF(CODE C11 · NAME C30 · SIZE C30 · UNIT C6 · MPRC·LPRC·EPRC N19.6 · LINK C11 · FORM·REMARKS·EXPN M · COMPEXC N2) · IMG.DBF(CODE C6 · NAME C50 · SIZE C60 · BQCODE C20 · IFORM M). +- 검사 0x4b9700 → JDLCHK.Tab_33 JDLCheck · 압축 .JDL = ST_U_Archive 압축 형식 미확인. + +### 1.3 세부 3종 열 이름 — 확인(일부 조건부) + +| 파일 | 열 차례 → 필드 | +|---|---| +| MainPart(31) 0x4f7890 | 0 CODE · 1 CODE1(앞 묶음+1열 · 조건부) · 2 DES · 3 SIZE · 4 UNIT · 5 QQTY · 6 MPRICE · 7 LPRICE · 8 EPRICE · 9 미확인 · 10 SPROPER(앞 2자) · 11 LOADBM · 12 SAVEBM · 13 SRATE · 14 KWAN · 15 SCOST · 16 SGUBUN · 17 SCODE · 18 SANQTY · 19~28 LCODE1/LQTY1~LCODE5/LQTY5 · 29 LRATE · 30 SAN | +| UnitPart(28) 0x4fa7fc | 0 CODE · 1 CODE1 · 2 DES · 3 SIZE · 4 UNIT · 5 QQTY · 6~8 M·L·EPRICE · 9 미확인 · 10 SPROPER · 11 LOADBM · 12 SAVEBM · 13 SRATE · 14 KWAN · 15 SANQTY · 16~25 LCODE·LQTY · 26 LRATE · 27 SAN · MCOST·LCOST·ECOST 는 셈 | +| JPart(19) 0x4fdd10 | 0 CODE · 1 CODE1 · 2 미확인 · 3 DES · 4 SIZE · 5 UNIT · 6 QQTY · 7~9 M·L·EPRICE · 10 미확인 · 11 SPROPER · 12 LOADBM · 13 SAVEBM · 14 SRATE · 15 KWAN · 16~18 미확인 | + +- 검사기가 따로 채움: F_SEQ(줄 번호 10자리) · F_ORICODE(0열) · F_CLASS. + +## 2. 구버전 → Win8 (F4-28) — 차례·필드 대응 확인 · 간접비·요율 미확인 + +- 판 가리기 Chk_Data 0x459280(파일 이름 묶음 · 처음 맞는 규칙): 140 STINI.MEM·RATE·QCODE / 130 START8X.INI·RATE·QCODE / 120 START.INI·FORM·KANJUB2·IMG.DB / 110 START.MEM·FORM·KANJUB2·COSTN1 / 150 START8X·COSTA·COSTN.SMT·PRJLST.SMT·SYSINFO / 200 조달청 TEXT 묶음. + - 안 맞으면 COSTN·BDQTY·PRJLST 중 하나라도 있으면 100 · 150·200 밖은 COSTN·BDQTY·PRJLST·GRASS 다 있어야(없으면 100). + - Chk_STDir 0x45a957: 120·130·140 + [PROJECT] PMODE(기본 1) · 110 → 111. +- ConvToWin8 0x459a11: 110~119 DOS 0x45a8d4 · 120~129 7.x 0x459e68 · 130~149 「이미 STmate 2Y.m 자료로 변환된 데이타입니다」 · 200 조달청 0x475ee4. +- 차례: Tmp-yyyy_mmdd_hhnn → 원본 COSTN BAMT~KAMT 여덟 열 검사(0x4865d8 · 34 §13 「금액열 정리」 바로잡음) → 빈 표(COSTN·BDQTY·BOQ·BQM·PRJLST·KONGJONG · SYSINFO 0x4362b4 · RATE 0x47a9f4 · RATE_RA·RATE_M 틀) → 7.x(Memo.Ini 복사 · COSTN · BDQTY · PRJLST · KONGJONG · BOQ · BQM · Start8x.Ini → STini.MEM 복사) / DOS(Start.MEM → Start8x.Ini 먼저 · COSTN · BDQTY · PRJLST(iTMP) · KONGJONG 7행 · BOQ) → OLD-yyyy_mmdd_hhnn 보관 또는 지움 → BDQTY 암호(0x434e2c) → 옮김. +- 복사 규칙: 원본·대상 둘 다 있는 필드만. +- COSTN 7.x 0x4882a4(63쌍 · 0x58af10→0x58ae14) · DOS 0x490cb8(35쌍) · 행 = 첫 글자 MLSWBD · 단위 첫 글자 LMST + 둘째 '%' → 앞 5칸만 · GUN 'H…' → 'Z' · HAMT → ZAMT · GAMT 는 대상 열 없음(버려짐). + - DOS M 코드: COSTN1.DBF AMT_A~F → AMT_12·22·32·11·21·31 · PG_A~F 같은 차례 · PG_J. +- 중기 B→X(7.x 0x48856e · DOS 0x490fc2): CODE 첫 글자 B 이고 Trim(UpperCase(UNIT)) = 'X' → 'X'+CODE[2..6]. 34 §13 「시간·HR 제외」는 안내 글 · 실제 조건은 단위 X. +- BDQTY 0x489448: BDCODE 첫 글자 BDX · BDCODE·CODE 가 COSTN 코드 목록(또는 CODE 가 T·E·C+정수) · T_NAME→NAME1 · T_SIZE→SIZE1 · QTY→QTY1 · BIMOK · DEVD→DEVD1 · B·S 줄 X_QTY1=QTY · X_HAL1~3=100 · T_EXIST → EXIST1=1 · IMGINFO DCODE·ICODE 행. +- PRJLST 7.x 0x48c890(29쌍 · 원가 칸 한 칸씩 밀림 · XXXNM~KXXNM → XX1NM~XX4NM · K_ORD 고침) · DOS 0x49379c(18쌍). +- KONGJONG 0x48cbf0: 7.x = DESCRIP→NAME · DESSIZE→SIZE · CODE=레코드 번호 / DOS = 고정 7행. +- BOQ 7.x 0x48d58c(34쌍) · DOS 0x493e78(30쌍 · DESCRIP·DESSIZE) · BQM 0x48dc38(12쌍). +- Start8x.Ini 7.x 0x48e07c 키 대응 · DOS Start.MEM(Clipper 변수 머리 32바이트) → 0x44d370 · [START] 34키 표(0x588294)는 실행 중 채워져 이름 미확인. +- 미확인: 간접비 이관(0x48abb0 · 0x4922e4) · RATE 행 대응 · SYSINFO(암호) · IFORM 산출식(FORM.DBF · Tran_SAN_Format · 0x4905d0) · IMG.DB 그림 · 원본 BDQTY 암호 열쇠. + +## 3. 엑셀 역등록 구성 줄 (F4-25) · 자재 XLS (F4-26) — 확인 + +### 3.1 ST_P_XLS 0x5f1078 (CONV_XLS_2_ST 안 · 중기비 0x5f9857 → 일위대가 0x5f9d90) + +- 목록표 줄 차례 · INFO `DET` = 구성표 머리 줄 번호 · 그 머리 줄 POSS~POSE · BDCODE = 목록 COD. +- INFO 첫 글자 0x07 인 줄만 AppendBlank. +- BDCODE · CODE · NAME1 · SIZE1 · EXIST1(EXI) → 코드가 PR·RR·QTY 이거나 둘째 글자 숫자일 때만 다음으로. +- 첫 글자 C·E·T → EXIST1=0 만 · A B D L M P Q R S W X → QTY1(MROUNDUD 7자리) · UNIT1 · DEVD1(DVD='T') · BIMOK · PRPT(IPR). +- D 줄만 SPRPT·SBMOK·TPRPT · PR/RR 줄만 UNIT1(UNI) · EQCODE · PRIN(PRI) · PROUT(PRO) · M 줄만 KWNGP · 모든 줄 BL_AMT(BLA='T'). +- 뜻(ST_Boq TWBOQ · TWM_EDIT_ILWI 머리): PRPT 「속성」 0~99 · PRIN 「대상」 0 빈칸·1 재료비·2 노무비·3 경비·4 합계 · PROUT 「저장」 · KWNGP 「관급」 0·1 관급·2 별산 · 비율 줄 UNIT1 「절사(미만)」. +- 중기 X 구성 줄: PRPT = IPR(없으면 0) · PRIN·PROUT 는 AppendBlank 그대로 0. + +### 3.2 wM_JajeXLS = 「재료비 수량집계표를 엑셀파일로 만들기」(TWM_JAJEXLS 0x698df0) — 내보내기만 + +- 공사목록 ActMkJaje 0x5658bc(「워크쉬트작업」): 제잡비 계산 확인(QXXNM=ADD_PER) → CON_QTY<공사> 의 B_CODE 첫 글자 M → PRT · 없으면 「…에 인쇄할 코드가 없습니다.」 → 대화창 → ST_P_XLS MAKE_XLS → Prn_Col_M_EXL 0x4eb4d0 → SHOW_XLS. +- 대화창 8칸: 공사명=PNAME · 관리번호=PNUM · 예산액=COSTW<차수>(「₩#,0원」) · 수요기관·시공회사·공사현장·공사기간·계약일자 빈칸. +- 시트 「주요건설자재현황」 · 2~5줄 공사 정보 · 7줄 머리글 [PRINT] CAP_NAME~CAP_BIGO(기본 「명 칭」…「비 고」) · 열 너비 31·31·12·6·12·14·12. +- 줄: 명칭(+NAME2) · 규격(+SIZE2) · 수량 = B_QTY<차수> 소수 2자리 사사오입 · 단위 · 단가 = 차수 합계(조건부) · 금액 = 사사오입 · 비고 빈칸 · 65,000 줄 넘으면 새 시트. +- 들여오기 길 없음 · 파일 이름 기본값 미확인. + +## 4. 그림 코드 (F1-54) — 확인 + +- 표 = COSTN(조달청 변환이 COSTN.DBF 의 I 코드 행을 IMG.DBF 로 옮김 · 35 §6 「표 이름 미확인」 풀림). +- 넣기 SpeedButton2Click 0x514df0: 파일 열기 · 비트맵이면 「비트맵 => JPEG 변환 저장」(변환저장 · 비트맵저장 · 저장취소) · 그 밖 「그림저장」. +- 저장 0x514bc0~0x514d30: NAME 이 비면 파일 이름(확장자 뺌) · SIZE = UpperCase(그림.ClassName) = TJPEGIMAGE · TBITMAP · TICON · TMETAFILE · IFORM = 그림 스트림(LoadFromStream) · Commit. +- 새 코드 0x4dac10: 사용자가 친 코드 · 이름 「새로운 그림코드」. +- 보기 0x5155a8: SIZE(대문자 · 길이 > 2) 꼴로 IFORM 을 읽음. +- 조건부: TBitmap·TMetafile SaveToStream 재기록 바이트 · 비트맵→JPEG 부호기(TJPEGImage 기본 품질 90). + +## 5. 재현 앱 반영 (tools/stmate-test) + +- jdl_format.py(탭 꼴 · 검사기 나눔) · jdl_export.py · api_jdl.py · scr_jdl.js +- conv_win8.py · conv_win8_ini.py · api_conv.py(/api/conv/win8 · win8-check) · scr_win8.js +- conv_xls_res.py(구성 줄 규칙) · conv_jaje.py · api_conv.py(/api/conv/jaje-sum-xlsx) · scr_jaje.js +- img_code.py · api_img.py · scr_img.js +- 시험: test_stmate_jdl_rea · test_stmate_conv_win8 · test_stmate_conv_jaje · test_stmate_conv_xls(구성 줄 원본 BDQTY 대조) · test_stmate_img_code diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/JDLCHK_Tab33_줄나눔_0x504d20.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/JDLCHK_Tab33_줄나눔_0x504d20.asm.txt new file mode 100644 index 000000000..b2a13772a --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/JDLCHK_Tab33_줄나눔_0x504d20.asm.txt @@ -0,0 +1,107 @@ +0x504d20: push ebp +0x504d21: mov ebp, esp +0x504d23: xor ecx, ecx +0x504d25: push ecx +0x504d26: push ecx +0x504d27: push ecx +0x504d28: push ecx +0x504d29: push ecx +0x504d2a: push ecx +0x504d2b: push ecx +0x504d2c: push ecx +0x504d2d: push ebx +0x504d2e: push esi +0x504d2f: push edi +0x504d30: mov esi, edx +0x504d32: mov dword ptr [ebp - 4], eax +0x504d35: mov eax, dword ptr [ebp - 4] +0x504d38: call 0x404c70 <> +0x504d3d: xor eax, eax +0x504d3f: push ebp +0x504d40: push 0x504ef6 +0x504d45: push dword ptr fs:[eax] +0x504d48: mov dword ptr fs:[eax], esp +0x504d4b: push 0x32 +0x504d4d: mov eax, esi +0x504d4f: mov ecx, 1 +0x504d54: mov edx, dword ptr [0x4e6134] +0x504d5a: call 0x405dd8 <> +0x504d5f: add esp, 4 +0x504d62: push 0x64 +0x504d64: lea eax, [esi + 4] +0x504d67: mov ecx, 1 +0x504d6c: mov edx, dword ptr [0x4e615c] +0x504d72: call 0x405dd8 <> +0x504d77: add esp, 4 +0x504d7a: mov edx, dword ptr [ebp - 4] +0x504d7d: mov eax, 0x504f0c +0x504d82: call 0x404dc4 <> +0x504d87: mov ebx, eax +0x504d89: test ebx, ebx +0x504d8b: jne 0x504d98 +0x504d8d: mov eax, dword ptr [ebp - 4] +0x504d90: call 0x404a80 <> +0x504d95: mov ebx, eax +0x504d97: inc ebx +0x504d98: lea eax, [ebp - 0x14] +0x504d9b: push eax +0x504d9c: mov ecx, ebx +0x504d9e: dec ecx +0x504d9f: mov edx, 1 +0x504da4: mov eax, dword ptr [ebp - 4] +0x504da7: call 0x404ce0 <> +0x504dac: mov edx, dword ptr [ebp - 0x14] +0x504daf: lea eax, [ebp - 8] +0x504db2: mov ecx, 0x504f18 ; " " +0x504db7: call 0x404acc <> +0x504dbc: lea eax, [ebp - 0x18] +0x504dbf: push eax +0x504dc0: mov eax, dword ptr [ebp - 4] +0x504dc3: call 0x404a80 <> +0x504dc8: mov ecx, eax +0x504dca: lea edx, [ebx + 1] +0x504dcd: mov eax, dword ptr [ebp - 4] +0x504dd0: call 0x404ce0 <> +0x504dd5: mov edx, dword ptr [ebp - 0x18] +0x504dd8: lea eax, [ebp - 0xc] +0x504ddb: mov ecx, 0x504f18 ; " " +0x504de0: call 0x404acc <> +0x504de5: xor edi, edi +0x504de7: xor eax, eax +0x504de9: mov dword ptr [ebp - 0x10], eax +0x504dec: jmp 0x504e47 +0x504dee: mov edx, dword ptr [ebp - 8] +0x504df1: mov eax, 0x504f24 ; " " +0x504df6: call 0x404dc4 <> +0x504dfb: mov ebx, eax +0x504dfd: test ebx, ebx +0x504dff: jne 0x504e0b +0x504e01: mov eax, dword ptr [ebp - 8] +0x504e04: call 0x404a80 <> +0x504e09: mov ebx, eax +0x504e0b: lea eax, [ebp - 0x20] +0x504e0e: push eax +0x504e0f: mov ecx, ebx +0x504e11: dec ecx +0x504e12: mov edx, 1 +0x504e17: mov eax, dword ptr [ebp - 8] +0x504e1a: call 0x404ce0 <> +0x504e1f: mov eax, dword ptr [ebp - 0x20] +0x504e22: lea edx, [ebp - 0x1c] +0x504e25: call 0x40910c <> +0x504e2a: mov edx, dword ptr [ebp - 0x1c] +0x504e2d: mov eax, dword ptr [esi] +0x504e2f: lea eax, [eax + edi*4] +0x504e32: call 0x404814 <> +0x504e37: lea eax, [ebp - 8] +0x504e3a: mov ecx, ebx +0x504e3c: mov edx, 1 +0x504e41: call 0x404d20 <> +0x504e46: inc edi +0x504e47: cmp dword ptr [ebp - 8], 0 +0x504e4b: jne 0x504dee +0x504e4d: push edi +0x504e4e: mov eax, esi +0x504e50: mov ecx, 1 +0x504e55: mov edx, dword ptr [0x4e6134] +0x504e5b: call 0x405dd8 <> diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/JDLCHK_Tab33_탭넣기_죽은고리_0x5051e0.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/JDLCHK_Tab33_탭넣기_죽은고리_0x5051e0.asm.txt new file mode 100644 index 000000000..30002bec6 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/JDLCHK_Tab33_탭넣기_죽은고리_0x5051e0.asm.txt @@ -0,0 +1,55 @@ +0x5051e0: push ebp +0x5051e1: mov ebp, esp +0x5051e3: add esp, -8 +0x5051e6: push ebx +0x5051e7: push esi +0x5051e8: mov esi, ecx +0x5051ea: mov dword ptr [ebp - 8], edx +0x5051ed: mov dword ptr [ebp - 4], eax +0x5051f0: mov eax, dword ptr [ebp - 4] +0x5051f3: call 0x404c70 <> +0x5051f8: mov eax, dword ptr [ebp - 8] +0x5051fb: call 0x405f68 <> +0x505200: xor eax, eax +0x505202: push ebp +0x505203: push 0x505266 +0x505208: push dword ptr fs:[eax] +0x50520b: mov dword ptr fs:[eax], esp +0x50520e: mov eax, esi +0x505210: mov edx, dword ptr [ebp - 4] +0x505213: call 0x404814 <> +0x505218: jmp 0x505242 +0x50521a: mov eax, dword ptr [ebp - 8] +0x50521d: call 0x405bfc <> +0x505222: mov ebx, eax +0x505224: dec ebx +0x505225: cmp ebx, 0 +0x505228: jl 0x505242 +0x50522a: mov eax, dword ptr [ebp - 8] +0x50522d: mov ecx, dword ptr [eax + ebx*4] +0x505230: mov edx, esi +0x505232: mov eax, 0x50527c ; " " +0x505237: call 0x404d68 <> +0x50523c: dec ebx +0x50523d: cmp ebx, -1 +0x505240: jne 0x50522a +0x505242: xor eax, eax +0x505244: pop edx +0x505245: pop ecx +0x505246: pop ecx +0x505247: mov dword ptr fs:[eax], edx +0x50524a: push 0x50526d +0x50524f: lea eax, [ebp - 8] +0x505252: mov edx, dword ptr [0x4e61ac] +0x505258: call 0x405f04 <> +0x50525d: lea eax, [ebp - 4] +0x505260: call 0x4047c0 <> +0x505265: ret +0x505266: jmp 0x404070 +0x50526b: jmp 0x50524f +0x50526d: pop esi +0x50526e: pop ebx +0x50526f: pop ecx +0x505270: pop ecx +0x505271: pop ebp +0x505272: ret diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_P_XLS_구성줄_0x5f1078.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_P_XLS_구성줄_0x5f1078.txt new file mode 100644 index 000000000..20e0ceff1 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_P_XLS_구성줄_0x5f1078.txt @@ -0,0 +1,857 @@ +0x5f1078: push ebp +0x5f1079: mov ebp, esp +0x5f107b: mov ecx, 0x30 +0x5f1080: push 0 +0x5f1082: push 0 +0x5f1084: dec ecx +0x5f1085: jne 0x5f1080 +0x5f1087: push ebx +0x5f1088: push esi +0x5f1089: push edi +0x5f108a: mov ebx, eax +0x5f108c: mov edi, dword ptr [ebp + 8] +0x5f108f: add edi, 0xfffff97c +0x5f1095: xor eax, eax +0x5f1097: push ebp +0x5f1098: push 0x5f161c +0x5f109d: push dword ptr fs:[eax] +0x5f10a0: mov dword ptr fs:[eax], esp +0x5f10a3: lea eax, [ebp - 0x14] +0x5f10a6: push eax +0x5f10a7: imul eax, ebx, 0x15 +0x5f10aa: mov edx, dword ptr [ebp + 8] +0x5f10ad: mov edx, dword ptr [edx + eax*4 - 0x5ec] +0x5f10b4: mov eax, dword ptr [ebp + 8] +0x5f10b7: mov eax, dword ptr [eax - 0x660] +0x5f10bd: xor ecx, ecx +0x5f10bf: call 0x5ecc38 +0x5f10c4: lea edx, [ebp - 0x14] +0x5f10c7: mov eax, dword ptr [ebp + 8] +0x5f10ca: add eax, 0xfffff9c0 +0x5f10cf: call 0x4013f8 +0x5f10d4: mov eax, dword ptr [ebp + 8] +0x5f10d7: cmp dword ptr [eax - 0x640], 0 +0x5f10de: je 0x5f15af +0x5f10e4: mov eax, dword ptr [ebp + 8] +0x5f10e7: mov eax, dword ptr [eax - 0x640] +0x5f10ed: cmp byte ptr [eax], 7 +0x5f10f0: jne 0x5f15af +0x5f10f6: mov eax, dword ptr [edi] +0x5f10f8: call 0x40247c +0x5f10fd: mov eax, dword ptr [ebp + 8] +0x5f1100: push eax +0x5f1101: lea eax, [ebp - 0x24] +0x5f1104: push eax +0x5f1105: mov ecx, 0x5f1634 +0x5f110a: xor edx, edx +0x5f110c: mov eax, 0x5f1640 ; "`COD|" +0x5f1111: call 0x5ee6d8 +0x5f1116: pop ecx +0x5f1117: lea edx, [ebp - 0x24] +0x5f111a: lea eax, [ebp - 4] +0x5f111d: call 0x4013f8 +0x5f1122: lea eax, [ebp - 0x34] +0x5f1125: mov edx, dword ptr [ebp + 8] +0x5f1128: mov edx, dword ptr [edx - 0x688] +0x5f112e: call 0x401440 +0x5f1133: lea ecx, [ebp - 0x34] +0x5f1136: mov eax, dword ptr [edi] +0x5f1138: mov edx, 0x5f1650 ; "BDCODE" +0x5f113d: call 0x4025ec +0x5f1142: lea eax, [ebp - 0x44] +0x5f1145: mov edx, dword ptr [ebp - 4] +0x5f1148: call 0x401440 +0x5f114d: lea ecx, [ebp - 0x44] +0x5f1150: mov eax, dword ptr [edi] +0x5f1152: mov edx, 0x5f1660 ; "CODE" +0x5f1157: call 0x4025ec +0x5f115c: lea eax, [ebp - 0x54] +0x5f115f: push eax +0x5f1160: imul esi, ebx, 0x15 +0x5f1163: mov eax, dword ptr [ebp + 8] +0x5f1166: mov edx, dword ptr [eax + esi*4 - 0x634] +0x5f116d: mov eax, dword ptr [ebp + 8] +0x5f1170: mov eax, dword ptr [eax - 0x660] +0x5f1176: xor ecx, ecx +0x5f1178: call 0x5ecc38 +0x5f117d: lea ecx, [ebp - 0x54] +0x5f1180: mov eax, dword ptr [edi] +0x5f1182: mov edx, 0x5f1670 ; "NAME1" +0x5f1187: call 0x4025ec +0x5f118c: lea eax, [ebp - 0x64] +0x5f118f: push eax +0x5f1190: mov eax, dword ptr [ebp + 8] +0x5f1193: mov edx, dword ptr [eax + esi*4 - 0x630] +0x5f119a: mov eax, dword ptr [ebp + 8] +0x5f119d: mov eax, dword ptr [eax - 0x660] +0x5f11a3: xor ecx, ecx +0x5f11a5: call 0x5ecc38 +0x5f11aa: lea ecx, [ebp - 0x64] +0x5f11ad: mov eax, dword ptr [edi] +0x5f11af: mov edx, 0x5f1680 ; "SIZE1" +0x5f11b4: call 0x4025ec +0x5f11b9: mov eax, dword ptr [ebp + 8] +0x5f11bc: push eax +0x5f11bd: lea eax, [ebp - 0x74] +0x5f11c0: push eax +0x5f11c1: mov ecx, 0x5f1634 +0x5f11c6: mov edx, 1 +0x5f11cb: mov eax, 0x5f1690 ; "`EXI|" +0x5f11d0: call 0x5ee6d8 +0x5f11d5: pop ecx +0x5f11d6: lea ecx, [ebp - 0x74] +0x5f11d9: mov eax, dword ptr [edi] +0x5f11db: mov edx, 0x5f16a0 ; "EXIST1" +0x5f11e0: call 0x4025ec +0x5f11e5: push 0x5f16b0 ; ";PR;RR;QTY;" +0x5f11ea: lea edx, [ebp - 0x78] +0x5f11ed: mov eax, dword ptr [ebp - 4] +0x5f11f0: call 0x40186c +0x5f11f5: mov eax, dword ptr [ebp - 0x78] +0x5f11f8: push eax +0x5f11f9: call 0x46c3a0 +0x5f11fe: test al, al +0x5f1200: jne 0x5f1230 +0x5f1202: mov eax, dword ptr [ebp - 4] +0x5f1205: call 0x401270 +0x5f120a: dec eax +0x5f120b: jle 0x5f15af +0x5f1211: lea eax, [ebp - 0x7c] +0x5f1214: mov edx, dword ptr [ebp - 4] +0x5f1217: mov dl, byte ptr [edx + 1] +0x5f121a: call 0x401238 +0x5f121f: mov eax, dword ptr [ebp - 0x7c] +0x5f1222: push eax +0x5f1223: call 0x46c3e8 +0x5f1228: test al, al +0x5f122a: je 0x5f15af +0x5f1230: mov eax, dword ptr [ebp - 4] +0x5f1233: movzx eax, byte ptr [eax] +0x5f1236: add eax, -0x41 +0x5f1239: cmp eax, 0x17 +0x5f123c: ja 0x5f15af +0x5f1242: mov al, byte ptr [eax + 0x5f124f] +0x5f1248: jmp dword ptr [eax*4 + 0x5f1267] +0x5f124f: add al, byte ptr [edx] +0x5f1251: add dword ptr [edx], eax +0x5f1253: add dword ptr [eax], eax +0x5f1255: add byte ptr [eax], al +0x5f1257: add byte ptr [eax], al +0x5f1259: add byte ptr [edx], al +0x5f125b: add al, byte ptr [eax] +0x5f125d: add byte ptr [edx], al +0x5f125f: add al, byte ptr [edx] +0x5f1261: add al, byte ptr [ecx] +0x5f1263: add byte ptr [eax], al +0x5f1265: add al, byte ptr [edx] +0x5f1267: scasd eax, dword ptr es:[edi] +0x5f1268: adc eax, 0x1273005f +0x5f126d: pop edi +0x5f126e: add byte ptr [edi - 0x72ffa0ee], dl +0x5f1274: test dword ptr [edi + edi*8 - 1], esi +0x5f1278: push dword ptr [ebx] +0x5f127a: shr al, cl +0x5f127c: cwde +0x5f127d: add ecx, esp +0x5f127f: dec dword ptr [ebp - 0x8b73] +0x5f1285: dec dword ptr [ebx + 0x16a0ba07] +0x5f128b: pop edi +0x5f128c: add al, ch +0x5f128e: pop edx +0x5f128f: adc esp, ecx +0x5f1291: .byte 0xff +0x5f1292: jmp 0x5f15af +0x5f1297: push 1 +0x5f1299: push 7 +0x5f129b: lea eax, [ebp - 0xac] +0x5f12a1: push eax +0x5f12a2: imul esi, ebx, 0x15 +0x5f12a5: mov eax, dword ptr [ebp + 8] +0x5f12a8: mov edx, dword ptr [eax + esi*4 - 0x62c] +0x5f12af: mov eax, dword ptr [ebp + 8] +0x5f12b2: mov eax, dword ptr [eax - 0x660] +0x5f12b8: mov ecx, 1 +0x5f12bd: call 0x5ecc38 +0x5f12c2: lea eax, [ebp - 0xac] +0x5f12c8: call 0x4013e8 +0x5f12cd: add esp, -0xc +0x5f12d0: fstp xword ptr [esp] +0x5f12d3: wait +0x5f12d4: call 0x46c3d8 +0x5f12d9: lea eax, [ebp - 0x9c] +0x5f12df: call 0x401420 +0x5f12e4: lea ecx, [ebp - 0x9c] +0x5f12ea: mov eax, dword ptr [edi] +0x5f12ec: mov edx, 0x5f16c4 ; "QTY1" +0x5f12f1: call 0x4025ec +0x5f12f6: lea eax, [ebp - 0xbc] +0x5f12fc: push eax +0x5f12fd: mov eax, dword ptr [ebp + 8] +0x5f1300: mov edx, dword ptr [eax + esi*4 - 0x628] +0x5f1307: mov eax, dword ptr [ebp + 8] +0x5f130a: mov eax, dword ptr [eax - 0x660] +0x5f1310: xor ecx, ecx +0x5f1312: call 0x5ecc38 +0x5f1317: lea ecx, [ebp - 0xbc] +0x5f131d: mov eax, dword ptr [edi] +0x5f131f: mov edx, 0x5f16d4 ; "UNIT1" +0x5f1324: call 0x4025ec +0x5f1329: mov eax, dword ptr [ebp + 8] +0x5f132c: push eax +0x5f132d: lea eax, [ebp - 0xcc] +0x5f1333: push eax +0x5f1334: mov ecx, 0x5f1634 +0x5f1339: mov edx, 4 +0x5f133e: mov eax, 0x5f16e4 ; "`DVD|" +0x5f1343: call 0x5ee6d8 +0x5f1348: pop ecx +0x5f1349: lea ecx, [ebp - 0xcc] +0x5f134f: mov eax, dword ptr [edi] +0x5f1351: mov edx, 0x5f16f4 ; "DEVD1" +0x5f1356: call 0x4025ec +0x5f135b: mov eax, dword ptr [ebp + 8] +0x5f135e: push eax +0x5f135f: lea eax, [ebp - 0xdc] +0x5f1365: push eax +0x5f1366: mov ecx, 0x5f1634 +0x5f136b: xor edx, edx +0x5f136d: mov eax, 0x5f1704 ; "`BMK|" +0x5f1372: call 0x5ee6d8 +0x5f1377: pop ecx +0x5f1378: lea ecx, [ebp - 0xdc] +0x5f137e: mov eax, dword ptr [edi] +0x5f1380: mov edx, 0x5f1714 ; "BIMOK" +0x5f1385: call 0x4025ec +0x5f138a: mov eax, dword ptr [ebp + 8] +0x5f138d: push eax +0x5f138e: lea eax, [ebp - 0xec] +0x5f1394: push eax +0x5f1395: mov ecx, 0x5f1634 +0x5f139a: mov edx, 1 +0x5f139f: mov eax, 0x5f1724 ; "`IPR|" +0x5f13a4: call 0x5ee6d8 +0x5f13a9: pop ecx +0x5f13aa: lea ecx, [ebp - 0xec] +0x5f13b0: mov eax, dword ptr [edi] +0x5f13b2: mov edx, 0x5f1734 ; "PRPT" +0x5f13b7: call 0x4025ec +0x5f13bc: mov eax, dword ptr [ebp - 4] +0x5f13bf: mov al, byte ptr [eax] +0x5f13c1: sub al, 0x44 +0x5f13c3: jne 0x5f1459 +0x5f13c9: mov eax, dword ptr [ebp + 8] +0x5f13cc: push eax +0x5f13cd: lea eax, [ebp - 0xfc] +0x5f13d3: push eax +0x5f13d4: mov ecx, 0x5f1634 +0x5f13d9: xor edx, edx +0x5f13db: mov eax, 0x5f1744 ; "`SPR|" +0x5f13e0: call 0x5ee6d8 +0x5f13e5: pop ecx +0x5f13e6: lea ecx, [ebp - 0xfc] +0x5f13ec: mov eax, dword ptr [edi] +0x5f13ee: mov edx, 0x5f1754 ; "SPRPT" +0x5f13f3: call 0x4025ec +0x5f13f8: mov eax, dword ptr [ebp + 8] +0x5f13fb: push eax +0x5f13fc: lea eax, [ebp - 0x10c] +0x5f1402: push eax +0x5f1403: mov ecx, 0x5f1634 +0x5f1408: xor edx, edx +0x5f140a: mov eax, 0x5f1764 ; "`SBM|" +0x5f140f: call 0x5ee6d8 +0x5f1414: pop ecx +0x5f1415: lea ecx, [ebp - 0x10c] +0x5f141b: mov eax, dword ptr [edi] +0x5f141d: mov edx, 0x5f1774 ; "SBMOK" +0x5f1422: call 0x4025ec +0x5f1427: mov eax, dword ptr [ebp + 8] +0x5f142a: push eax +0x5f142b: lea eax, [ebp - 0x11c] +0x5f1431: push eax +0x5f1432: mov ecx, 0x5f1634 +0x5f1437: mov edx, 1 +0x5f143c: mov eax, 0x5f1784 ; "`TPR|" +0x5f1441: call 0x5ee6d8 +0x5f1446: pop ecx +0x5f1447: lea ecx, [ebp - 0x11c] +0x5f144d: mov eax, dword ptr [edi] +0x5f144f: mov edx, 0x5f1794 ; "TPRPT" +0x5f1454: call 0x4025ec +0x5f1459: push 0x5f17a4 ; ";PR;RR;" +0x5f145e: lea edx, [ebp - 0x120] +0x5f1464: mov eax, dword ptr [ebp - 4] +0x5f1467: call 0x40186c +0x5f146c: mov eax, dword ptr [ebp - 0x120] +0x5f1472: push eax +0x5f1473: call 0x46c3a0 +0x5f1478: test al, al +0x5f147a: je 0x5f1542 +0x5f1480: mov eax, dword ptr [ebp + 8] +0x5f1483: push eax +0x5f1484: lea eax, [ebp - 0x130] +0x5f148a: push eax +0x5f148b: mov ecx, 0x5f1634 +0x5f1490: xor edx, edx +0x5f1492: mov eax, 0x5f17b4 ; "`UNI|" +0x5f1497: call 0x5ee6d8 +0x5f149c: pop ecx +0x5f149d: lea ecx, [ebp - 0x130] +0x5f14a3: mov eax, dword ptr [edi] +0x5f14a5: mov edx, 0x5f16d4 ; "UNIT1" +0x5f14aa: call 0x4025ec +0x5f14af: mov eax, dword ptr [ebp + 8] +0x5f14b2: push eax +0x5f14b3: lea eax, [ebp - 0x140] +0x5f14b9: push eax +0x5f14ba: mov ecx, 0x5f1634 +0x5f14bf: xor edx, edx +0x5f14c1: mov eax, 0x5f17c4 ; "`EQC|" +0x5f14c6: call 0x5ee6d8 +0x5f14cb: pop ecx +0x5f14cc: lea ecx, [ebp - 0x140] +0x5f14d2: mov eax, dword ptr [edi] +0x5f14d4: mov edx, 0x5f17d4 ; "EQCODE" +0x5f14d9: call 0x4025ec +0x5f14de: mov eax, dword ptr [ebp + 8] +0x5f14e1: push eax +0x5f14e2: lea eax, [ebp - 0x150] +0x5f14e8: push eax +0x5f14e9: mov ecx, 0x5f1634 +0x5f14ee: mov edx, 1 +0x5f14f3: mov eax, 0x5f17e4 ; "`PRI|" +0x5f14f8: call 0x5ee6d8 +0x5f14fd: pop ecx +0x5f14fe: lea ecx, [ebp - 0x150] +0x5f1504: mov eax, dword ptr [edi] +0x5f1506: mov edx, 0x5f17f4 ; "PRIN" +0x5f150b: call 0x4025ec +0x5f1510: mov eax, dword ptr [ebp + 8] +0x5f1513: push eax +0x5f1514: lea eax, [ebp - 0x160] +0x5f151a: push eax +0x5f151b: mov ecx, 0x5f1634 +0x5f1520: mov edx, 1 +0x5f1525: mov eax, 0x5f1804 ; "`PRO|" +0x5f152a: call 0x5ee6d8 +0x5f152f: pop ecx +0x5f1530: lea ecx, [ebp - 0x160] +0x5f1536: mov eax, dword ptr [edi] +0x5f1538: mov edx, 0x5f1814 ; "PROUT" +0x5f153d: call 0x4025ec +0x5f1542: mov eax, dword ptr [ebp - 4] +0x5f1545: mov al, byte ptr [eax] +0x5f1547: sub al, 0x4d +0x5f1549: jne 0x5f157d +0x5f154b: mov eax, dword ptr [ebp + 8] +0x5f154e: push eax +0x5f154f: lea eax, [ebp - 0x170] +0x5f1555: push eax +0x5f1556: mov ecx, 0x5f1634 +0x5f155b: mov edx, 1 +0x5f1560: mov eax, 0x5f1824 ; "`KWN|" +0x5f1565: call 0x5ee6d8 +0x5f156a: pop ecx +0x5f156b: lea ecx, [ebp - 0x170] +0x5f1571: mov eax, dword ptr [edi] +0x5f1573: mov edx, 0x5f1834 ; "KWNGP" +0x5f1578: call 0x4025ec +0x5f157d: mov eax, dword ptr [ebp + 8] +0x5f1580: push eax +0x5f1581: lea eax, [ebp - 0x180] +0x5f1587: push eax +0x5f1588: mov ecx, 0x5f1634 +0x5f158d: mov edx, 4 +0x5f1592: mov eax, 0x5f1844 ; "`BLA|" +0x5f1597: call 0x5ee6d8 +0x5f159c: pop ecx +0x5f159d: lea ecx, [ebp - 0x180] +0x5f15a3: mov eax, dword ptr [edi] +0x5f15a5: mov edx, 0x5f1854 ; "BL_AMT" +0x5f15aa: call 0x4025ec +0x5f15af: xor eax, eax +0x5f15b1: pop edx +0x5f15b2: pop ecx +0x5f15b3: pop ecx +0x5f15b4: mov dword ptr fs:[eax], edx +0x5f15b7: push 0x5f1623 +0x5f15bc: lea eax, [ebp - 0x180] +0x5f15c2: mov edx, dword ptr [0x68acec] +0x5f15c8: mov ecx, 6 +0x5f15cd: call 0x401398 +0x5f15d2: lea eax, [ebp - 0x120] +0x5f15d8: call 0x401210 +0x5f15dd: lea eax, [ebp - 0x11c] +0x5f15e3: mov edx, dword ptr [0x68acec] +0x5f15e9: mov ecx, 0xa +0x5f15ee: call 0x401398 +0x5f15f3: lea eax, [ebp - 0x7c] +0x5f15f6: mov edx, 2 +0x5f15fb: call 0x401218 +0x5f1600: lea eax, [ebp - 0x74] +0x5f1603: mov edx, dword ptr [0x68acec] +0x5f1609: mov ecx, 7 +0x5f160e: call 0x401398 +0x5f1613: lea eax, [ebp - 4] +0x5f1616: call 0x401210 +0x5f161b: ret +0x5f161c: jmp 0x4011c8 +0x5f1621: jmp 0x5f15bc +0x5f1623: pop edi +0x5f1624: pop esi +0x5f1625: pop ebx +0x5f1626: mov esp, ebp +0x5f1628: pop ebp +0x5f1629: ret +0x5f162a: add byte ptr [eax], al +0x5f162c: .byte 0xff +0x5f162d: .byte 0xff +0x5f162e: .byte 0xff +0x5f162f: inc dword ptr [ecx] +0x5f1631: add byte ptr [eax], al +0x5f1633: add byte ptr [0xff000000], al +0x5f1639: .byte 0xff +0x5f163a: .byte 0xff +0x5f163b: inc dword ptr [0x60000000] +0x5f1641: inc ebx +0x5f1642: dec edi +0x5f1643: inc esp +0x5f1644: jl 0x5f1646 +0x5f1646: add byte ptr [eax], al +0x5f1648: .byte 0xff +0x5f1649: .byte 0xff +0x5f164a: .byte 0xff +0x5f164b: inc dword ptr [esi] +0x5f164d: add byte ptr [eax], al +0x5f164f: add byte ptr [edx + 0x44], al +0x5f1652: inc ebx +0x5f1653: dec edi +0x5f1654: inc esp +0x5f1655: inc ebp +0x5f1656: add byte ptr [eax], al +0x5f1658: .byte 0xff +0x5f1659: .byte 0xff +0x5f165a: .byte 0xff +0x5f165b: inc dword ptr [eax + eax] +0x5f165e: add byte ptr [eax], al +0x5f1660: inc ebx +0x5f1661: dec edi +0x5f1662: inc esp +0x5f1663: inc ebp +0x5f1664: add byte ptr [eax], al +0x5f1666: add byte ptr [eax], al +0x5f1668: .byte 0xff +0x5f1669: .byte 0xff +0x5f166a: .byte 0xff +0x5f166b: inc dword ptr [0x4e000000] +0x5f1671: inc ecx +0x5f1672: dec ebp +0x5f1673: inc ebp +0x5f1674: xor dword ptr [eax], eax +0x5f1676: add byte ptr [eax], al +0x5f1678: .byte 0xff +0x5f1679: .byte 0xff +0x5f167a: .byte 0xff +0x5f167b: inc dword ptr [0x53000000] +0x5f1681: dec ecx +0x5f1682: pop edx +0x5f1683: inc ebp +0x5f1684: xor dword ptr [eax], eax +0x5f1686: add byte ptr [eax], al +0x5f1688: .byte 0xff +0x5f1689: .byte 0xff +0x5f168a: .byte 0xff +0x5f168b: inc dword ptr [0x60000000] +0x5f1691: inc ebp +0x5f1692: pop eax +0x5f1693: dec ecx +0x5f1694: jl 0x5f1696 +0x5f1696: add byte ptr [eax], al +0x5f1698: .byte 0xff +0x5f1699: .byte 0xff +0x5f169a: .byte 0xff +0x5f169b: inc dword ptr [esi] +0x5f169d: add byte ptr [eax], al +0x5f169f: add byte ptr [ebp + 0x58], al +0x5f16a2: dec ecx +0x5f16a3: push ebx +0x5f16a4: push esp +0x5f16a5: xor dword ptr [eax], eax +0x5f16a7: add bh, bh +0x5f16a9: .byte 0xff +0x5f16aa: .byte 0xff +0x5f16ab: dec dword ptr [ebx] +0x5f16ad: add byte ptr [eax], al +0x5f16af: add byte ptr [ebx], bh +0x5f16b1: push eax +0x5f16b2: push edx +0x5f16b3: cmp edx, dword ptr [edx + 0x52] +0x5f16b6: cmp edx, dword ptr [ecx + 0x54] +0x5f16b9: pop ecx +0x5f16ba: cmp eax, dword ptr [eax] +0x5f16bc: .byte 0xff +0x5f16bd: .byte 0xff +0x5f16be: .byte 0xff +0x5f16bf: inc dword ptr [eax + eax] +0x5f16c2: add byte ptr [eax], al +0x5f16c4: push ecx +0x5f16c5: push esp +0x5f16c6: pop ecx +0x5f16c7: xor dword ptr [eax], eax +0x5f16c9: add byte ptr [eax], al +0x5f16cb: add bh, bh +0x5f16cd: .byte 0xff +0x5f16ce: .byte 0xff +0x5f16cf: inc dword ptr [0x55000000] +0x5f16d5: dec esi +0x5f16d6: dec ecx +0x5f16d7: push esp +0x5f16d8: xor dword ptr [eax], eax +0x5f16da: add byte ptr [eax], al +0x5f16dc: .byte 0xff +0x5f16dd: .byte 0xff +0x5f16de: .byte 0xff +0x5f16df: inc dword ptr [0x60000000] +0x5f16e5: inc esp +0x5f16e6: push esi +0x5f16e7: inc esp +0x5f16e8: jl 0x5f16ea +0x5f16ea: add byte ptr [eax], al +0x5f16ec: .byte 0xff +0x5f16ed: .byte 0xff +0x5f16ee: .byte 0xff +0x5f16ef: inc dword ptr [0x44000000] +0x5f16f5: inc ebp +0x5f16f6: push esi +0x5f16f7: inc esp +0x5f16f8: xor dword ptr [eax], eax +0x5f16fa: add byte ptr [eax], al +0x5f16fc: .byte 0xff +0x5f16fd: .byte 0xff +0x5f16fe: .byte 0xff +0x5f16ff: inc dword ptr [0x60000000] +0x5f1705: inc edx +0x5f1706: dec ebp +0x5f1707: dec ebx +0x5f1708: jl 0x5f170a +0x5f170a: add byte ptr [eax], al +0x5f170c: .byte 0xff +0x5f170d: .byte 0xff +0x5f170e: .byte 0xff +0x5f170f: inc dword ptr [0x42000000] +0x5f1715: dec ecx +0x5f1716: dec ebp +0x5f1717: dec edi +0x5f1718: dec ebx +0x5f1719: add byte ptr [eax], al +0x5f171b: add bh, bh +0x5f171d: .byte 0xff +0x5f171e: .byte 0xff +0x5f171f: inc dword ptr [0x60000000] +0x5f1725: dec ecx +0x5f1726: push eax +0x5f1727: push edx +0x5f1728: jl 0x5f172a +0x5f172a: add byte ptr [eax], al +0x5f172c: .byte 0xff +0x5f172d: .byte 0xff +0x5f172e: .byte 0xff +0x5f172f: inc dword ptr [eax + eax] +0x5f1732: add byte ptr [eax], al +0x5f1734: push eax +0x5f1735: push edx +0x5f1736: push eax +0x5f1737: push esp +0x5f1738: add byte ptr [eax], al +0x5f173a: add byte ptr [eax], al +0x5f173c: .byte 0xff +0x5f173d: .byte 0xff +0x5f173e: .byte 0xff +0x5f173f: inc dword ptr [0x60000000] +0x5f1745: push ebx +0x5f1746: push eax +0x5f1747: push edx +0x5f1748: jl 0x5f174a +0x5f174a: add byte ptr [eax], al +0x5f174c: .byte 0xff +0x5f174d: .byte 0xff +0x5f174e: .byte 0xff +0x5f174f: inc dword ptr [0x53000000] +0x5f1755: push eax +0x5f1756: push edx +0x5f1757: push eax +0x5f1758: push esp +0x5f1759: add byte ptr [eax], al +0x5f175b: add bh, bh +0x5f175d: .byte 0xff +0x5f175e: .byte 0xff +0x5f175f: inc dword ptr [0x60000000] +0x5f1765: push ebx +0x5f1766: inc edx +0x5f1767: dec ebp +0x5f1768: jl 0x5f176a +0x5f176a: add byte ptr [eax], al +0x5f176c: .byte 0xff +0x5f176d: .byte 0xff +0x5f176e: .byte 0xff +0x5f176f: inc dword ptr [0x53000000] +0x5f1775: inc edx +0x5f1776: dec ebp +0x5f1777: dec edi +0x5f1778: dec ebx +0x5f1779: add byte ptr [eax], al +0x5f177b: add bh, bh +0x5f177d: .byte 0xff +0x5f177e: .byte 0xff +0x5f177f: inc dword ptr [0x60000000] +0x5f1785: push esp +0x5f1786: push eax +0x5f1787: push edx +0x5f1788: jl 0x5f178a +0x5f178a: add byte ptr [eax], al +0x5f178c: .byte 0xff +0x5f178d: .byte 0xff +0x5f178e: .byte 0xff +0x5f178f: inc dword ptr [0x54000000] +0x5f1795: push eax +0x5f1796: push edx +0x5f1797: push eax +0x5f1798: push esp +0x5f1799: add byte ptr [eax], al +0x5f179b: add bh, bh +0x5f179d: .byte 0xff +0x5f179e: .byte 0xff +0x5f179f: inc dword ptr [edi] +0x5f17a1: add byte ptr [eax], al +0x5f17a3: add byte ptr [ebx], bh +0x5f17a5: push eax +0x5f17a6: push edx +0x5f17a7: cmp edx, dword ptr [edx + 0x52] +0x5f17aa: cmp eax, dword ptr [eax] +0x5f17ac: .byte 0xff +0x5f17ad: .byte 0xff +0x5f17ae: .byte 0xff +0x5f17af: inc dword ptr [0x60000000] +0x5f17b5: push ebp +0x5f17b6: dec esi +0x5f17b7: dec ecx +0x5f17b8: jl 0x5f17ba +0x5f17ba: add byte ptr [eax], al +0x5f17bc: .byte 0xff +0x5f17bd: .byte 0xff +0x5f17be: .byte 0xff +0x5f17bf: inc dword ptr [0x60000000] +0x5f17c5: inc ebp +0x5f17c6: push ecx +0x5f17c7: inc ebx +0x5f17c8: jl 0x5f17ca +0x5f17ca: add byte ptr [eax], al +0x5f17cc: .byte 0xff +0x5f17cd: .byte 0xff +0x5f17ce: .byte 0xff +0x5f17cf: inc dword ptr [esi] +0x5f17d1: add byte ptr [eax], al +0x5f17d3: add byte ptr [ebp + 0x51], al +0x5f17d6: inc ebx +0x5f17d7: dec edi +0x5f17d8: inc esp +0x5f17d9: inc ebp +0x5f17da: add byte ptr [eax], al +0x5f17dc: .byte 0xff +0x5f17dd: .byte 0xff +0x5f17de: .byte 0xff +0x5f17df: inc dword ptr [0x60000000] +0x5f17e5: push eax +0x5f17e6: push edx +0x5f17e7: dec ecx +0x5f17e8: jl 0x5f17ea +0x5f17ea: add byte ptr [eax], al +0x5f17ec: .byte 0xff +0x5f17ed: .byte 0xff +0x5f17ee: .byte 0xff +0x5f17ef: inc dword ptr [eax + eax] +0x5f17f2: add byte ptr [eax], al +0x5f17f4: push eax +0x5f17f5: push edx +0x5f17f6: dec ecx +0x5f17f7: dec esi +0x5f17f8: add byte ptr [eax], al +0x5f17fa: add byte ptr [eax], al +0x5f17fc: .byte 0xff +0x5f17fd: .byte 0xff +0x5f17fe: .byte 0xff +0x5f17ff: inc dword ptr [0x60000000] +0x5f1805: push eax +0x5f1806: push edx +0x5f1807: dec edi +0x5f1808: jl 0x5f180a +0x5f180a: add byte ptr [eax], al +0x5f180c: .byte 0xff +0x5f180d: .byte 0xff +0x5f180e: .byte 0xff +0x5f180f: inc dword ptr [0x50000000] +0x5f1815: push edx +0x5f1816: dec edi +0x5f1817: push ebp +0x5f1818: push esp +0x5f1819: add byte ptr [eax], al +0x5f181b: add bh, bh +0x5f181d: .byte 0xff +0x5f181e: .byte 0xff +0x5f181f: inc dword ptr [0x60000000] +0x5f1825: dec ebx +0x5f1826: push edi +0x5f1827: dec esi +0x5f1828: jl 0x5f182a +0x5f182a: add byte ptr [eax], al +0x5f182c: .byte 0xff +0x5f182d: .byte 0xff +0x5f182e: .byte 0xff +0x5f182f: inc dword ptr [0x4b000000] +0x5f1835: push edi +0x5f1836: dec esi +0x5f1837: inc edi +0x5f1838: push eax +0x5f1839: add byte ptr [eax], al +0x5f183b: add bh, bh +0x5f183d: .byte 0xff +0x5f183e: .byte 0xff +0x5f183f: inc dword ptr [0x60000000] +0x5f1845: inc edx +0x5f1846: dec esp +0x5f1847: inc ecx +0x5f1848: jl 0x5f184a +0x5f184a: add byte ptr [eax], al +0x5f184c: .byte 0xff +0x5f184d: .byte 0xff +0x5f184e: .byte 0xff +0x5f184f: inc dword ptr [esi] +0x5f1851: add byte ptr [eax], al +0x5f1853: add byte ptr [edx + 0x4c], al +0x5f1856: pop edi +0x5f1857: inc ecx +0x5f1858: dec ebp +0x5f1859: push esp +0x5f185a: add byte ptr [eax], al +0x5f185c: push ebp +0x5f185d: mov ebp, esp +0x5f185f: mov ecx, 0xd +0x5f1864: push 0 +0x5f1866: push 0 +0x5f1868: dec ecx +0x5f1869: jne 0x5f1864 +0x5f186b: push ebx +0x5f186c: mov ebx, eax +0x5f186e: xor eax, eax +0x5f1870: push ebp +0x5f1871: push 0x5f19ae +0x5f1876: push dword ptr fs:[eax] +0x5f1879: mov dword ptr fs:[eax], esp +0x5f187c: lea eax, [ebp - 0x10] +0x5f187f: push eax +0x5f1880: imul eax, ebx, 0x15 +0x5f1883: mov edx, dword ptr [ebp + 8] +0x5f1886: mov edx, dword ptr [edx + eax*4 - 0x5ec] +0x5f188d: mov eax, dword ptr [ebp + 8] +0x5f1890: mov eax, dword ptr [eax - 0x660] +0x5f1896: xor ecx, ecx +0x5f1898: call 0x5ecc38 +0x5f189d: lea edx, [ebp - 0x10] +0x5f18a0: mov eax, dword ptr [ebp + 8] +0x5f18a3: add eax, 0xfffff9c0 +0x5f18a8: call 0x4013f8 +0x5f18ad: mov eax, dword ptr [ebp + 8] +0x5f18b0: cmp dword ptr [eax - 0x640], 0 +0x5f18b7: je 0x5f197d +0x5f18bd: mov eax, dword ptr [ebp + 8] +0x5f18c0: mov eax, dword ptr [eax - 0x640] +0x5f18c6: cmp byte ptr [eax], 7 +0x5f18c9: jne 0x5f197d +0x5f18cf: lea eax, [ebp - 0x20] +0x5f18d2: mov edx, dword ptr [ebp + 8] +0x5f18d5: mov edx, dword ptr [edx - 0x68c] +0x5f18db: call 0x401440 +0x5f18e0: lea eax, [ebp - 0x20] +0x5f18e3: push eax +0x5f18e4: lea eax, [ebp - 0x40] +0x5f18e7: mov edx, 0x5f19c4 ; " +" +0x5f18ec: call 0x401440 +0x5f18f1: push dword ptr [ebp - 0x34] +0x5f18f4: push dword ptr [ebp - 0x38] +0x5f18f7: push dword ptr [ebp - 0x3c] +0x5f18fa: push dword ptr [ebp - 0x40] +0x5f18fd: mov al, 7 +0x5f18ff: mov byte ptr [ebp - 0x53], al +0x5f1902: mov byte ptr [ebp - 0x54], 1 +0x5f1906: lea eax, [ebp - 0x50] +0x5f1909: lea edx, [ebp - 0x54] +0x5f190c: call 0x401438 +0x5f1911: push dword ptr [ebp - 0x44] +0x5f1914: push dword ptr [ebp - 0x48] +0x5f1917: push dword ptr [ebp - 0x4c] +0x5f191a: push dword ptr [ebp - 0x50] +0x5f191d: mov eax, dword ptr [ebp + 8] +0x5f1920: cmp dword ptr [eax - 0x68c], 0 +0x5f1927: sete al +0x5f192a: push eax +0x5f192b: lea eax, [ebp - 0x30] +0x5f192e: push eax +0x5f192f: call 0x46c390 +0x5f1934: lea edx, [ebp - 0x30] +0x5f1937: pop eax +0x5f1938: call 0x401470 +0x5f193d: lea eax, [ebp - 0x20] +0x5f1940: push eax +0x5f1941: mov eax, dword ptr [ebp + 8] +0x5f1944: mov eax, dword ptr [eax - 0x640] +0x5f194a: push eax +0x5f194b: push 0x5f19d0 +0x5f1950: lea eax, [ebp - 0x68] +0x5f1953: push eax +0x5f1954: call 0x46c3c0 +0x5f1959: mov edx, dword ptr [ebp - 0x68] +0x5f195c: lea eax, [ebp - 0x64] +0x5f195f: call 0x401440 +0x5f1964: lea edx, [ebp - 0x64] +0x5f1967: pop eax +0x5f1968: call 0x401470 +0x5f196d: lea edx, [ebp - 0x20] +0x5f1970: mov eax, dword ptr [ebp + 8] +0x5f1973: add eax, 0xfffff974 +0x5f1978: call 0x4013f8 +0x5f197d: xor eax, eax +0x5f197f: pop edx +0x5f1980: pop ecx +0x5f1981: pop ecx +0x5f1982: mov dword ptr fs:[eax], edx +0x5f1985: push 0x5f19b5 +0x5f198a: lea eax, [ebp - 0x68] +0x5f198d: call 0x401210 +0x5f1992: lea eax, [ebp - 0x64] +0x5f1995: call 0x4014e8 +0x5f199a: lea eax, [ebp - 0x50] +0x5f199d: mov edx, dword ptr [0x68acec] +0x5f19a3: mov ecx, 5 +0x5f19a8: call 0x401398 +0x5f19ad: ret +0x5f19ae: jmp 0x4011c8 +0x5f19b3: jmp 0x5f198a +0x5f19b5: pop ebx +0x5f19b6: mov esp, ebp +0x5f19b8: pop ebp +0x5f19b9: ret +0x5f19ba: add byte ptr [eax], al +0x5f19bc: .byte 0xff +0x5f19bd: .byte 0xff +0x5f19be: .byte 0xff +0x5f19bf: inc dword ptr [edx] +0x5f19c1: add byte ptr [eax], al +0x5f19c3: add byte ptr [0xff00000a], cl +0x5f19c9: .byte 0xff +0x5f19ca: .byte 0xff +0x5f19cb: inc dword ptr [ecx] +0x5f19cd: add byte ptr [eax], al +0x5f19cf: add byte ptr [edi], al +0x5f19d1: add byte ptr [eax], al +0x5f19d3: .byte 0x00 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Archive_Chk_Data_0x459280.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Archive_Chk_Data_0x459280.txt new file mode 100644 index 000000000..c67312396 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Archive_Chk_Data_0x459280.txt @@ -0,0 +1,1300 @@ +0x459280: push ebp +0x459281: mov ebp, esp +0x459283: push 0 +0x459285: push 0 +0x459287: push ebx +0x459288: push esi +0x459289: mov eax, dword ptr [ebp + 8] +0x45928c: call 0x401258 +0x459291: xor eax, eax +0x459293: push ebp +0x459294: push 0x45989d +0x459299: push dword ptr fs:[eax] +0x45929c: mov dword ptr fs:[eax], esp +0x45929f: xor esi, esi +0x4592a1: lea edx, [ebp - 4] +0x4592a4: mov eax, dword ptr [ebp + 8] +0x4592a7: call 0x4017a4 +0x4592ac: mov eax, dword ptr [ebp - 4] +0x4592af: call 0x401230 +0x4592b4: cmp eax, 5 +0x4592b7: jl 0x45987a +0x4592bd: lea edx, [ebp - 8] +0x4592c0: mov eax, dword ptr [ebp + 8] +0x4592c3: call 0x401774 +0x4592c8: mov edx, dword ptr [ebp - 8] +0x4592cb: lea eax, [ebp + 8] +0x4592ce: call 0x4011f8 +0x4592d3: mov eax, dword ptr [ebp + 8] +0x4592d6: push eax +0x4592d7: push 0x4598b8 ; ":STINI.MEM:" +0x4592dc: call 0x40eedc +0x4592e1: test al, al +0x4592e3: je 0x459313 +0x4592e5: mov eax, dword ptr [ebp + 8] +0x4592e8: push eax +0x4592e9: push 0x4598cc ; ":RATE.DBF:" +0x4592ee: call 0x40eedc +0x4592f3: test al, al +0x4592f5: je 0x459313 +0x4592f7: mov eax, dword ptr [ebp + 8] +0x4592fa: push eax +0x4592fb: push 0x4598e0 ; ":QCODE.DBF:" +0x459300: call 0x40eedc +0x459305: test al, al +0x459307: je 0x459313 +0x459309: mov ebx, 0x8c +0x45930e: jmp 0x4597a3 +0x459313: mov eax, dword ptr [ebp + 8] +0x459316: push eax +0x459317: push 0x4598f4 ; ":START8X.INI:" +0x45931c: call 0x40eedc +0x459321: test al, al +0x459323: je 0x459353 +0x459325: mov eax, dword ptr [ebp + 8] +0x459328: push eax +0x459329: push 0x4598cc ; ":RATE.DBF:" +0x45932e: call 0x40eedc +0x459333: test al, al +0x459335: je 0x459353 +0x459337: mov eax, dword ptr [ebp + 8] +0x45933a: push eax +0x45933b: push 0x4598e0 ; ":QCODE.DBF:" +0x459340: call 0x40eedc +0x459345: test al, al +0x459347: je 0x459353 +0x459349: mov ebx, 0x82 +0x45934e: jmp 0x4597a3 +0x459353: mov eax, dword ptr [ebp + 8] +0x459356: push eax +0x459357: push 0x45990c ; ":START.INI:" +0x45935c: call 0x40eedc +0x459361: test al, al +0x459363: je 0x4593a5 +0x459365: mov eax, dword ptr [ebp + 8] +0x459368: push eax +0x459369: push 0x459920 ; ":FORM.DBF:" +0x45936e: call 0x40eedc +0x459373: test al, al +0x459375: je 0x4593a5 +0x459377: mov eax, dword ptr [ebp + 8] +0x45937a: push eax +0x45937b: push 0x459934 ; ":KANJUB2.DBF:" +0x459380: call 0x40eedc +0x459385: test al, al +0x459387: je 0x4593a5 +0x459389: mov eax, dword ptr [ebp + 8] +0x45938c: push eax +0x45938d: push 0x45994c ; ":IMG.DB:" +0x459392: call 0x40eedc +0x459397: test al, al +0x459399: je 0x4593a5 +0x45939b: mov ebx, 0x78 +0x4593a0: jmp 0x4597a3 +0x4593a5: mov eax, dword ptr [ebp + 8] +0x4593a8: push eax +0x4593a9: push 0x459960 ; ":START.MEM:" +0x4593ae: call 0x40eedc +0x4593b3: test al, al +0x4593b5: je 0x4593f7 +0x4593b7: mov eax, dword ptr [ebp + 8] +0x4593ba: push eax +0x4593bb: push 0x459920 ; ":FORM.DBF:" +0x4593c0: call 0x40eedc +0x4593c5: test al, al +0x4593c7: je 0x4593f7 +0x4593c9: mov eax, dword ptr [ebp + 8] +0x4593cc: push eax +0x4593cd: push 0x459934 ; ":KANJUB2.DBF:" +0x4593d2: call 0x40eedc +0x4593d7: test al, al +0x4593d9: je 0x4593f7 +0x4593db: mov eax, dword ptr [ebp + 8] +0x4593de: push eax +0x4593df: push 0x459974 ; ":COSTN1.DBF:" +0x4593e4: call 0x40eedc +0x4593e9: test al, al +0x4593eb: je 0x4593f7 +0x4593ed: mov ebx, 0x6e +0x4593f2: jmp 0x4597a3 +0x4593f7: mov eax, dword ptr [ebp + 8] +0x4593fa: push eax +0x4593fb: push 0x45998c ; ":START8X:" +0x459400: call 0x40eedc +0x459405: test al, al +0x459407: je 0x45945b +0x459409: mov eax, dword ptr [ebp + 8] +0x45940c: push eax +0x45940d: push 0x4599a0 ; ":COSTA.DBF:" +0x459412: call 0x40eedc +0x459417: test al, al +0x459419: je 0x45945b +0x45941b: mov eax, dword ptr [ebp + 8] +0x45941e: push eax +0x45941f: push 0x4599b4 ; ":COSTN.SMT:" +0x459424: call 0x40eedc +0x459429: test al, al +0x45942b: je 0x45945b +0x45942d: mov eax, dword ptr [ebp + 8] +0x459430: push eax +0x459431: push 0x4599c8 ; ":PRJLST.SMT:" +0x459436: call 0x40eedc +0x45943b: test al, al +0x45943d: je 0x45945b +0x45943f: mov eax, dword ptr [ebp + 8] +0x459442: push eax +0x459443: push 0x4599e0 ; ":SYSINFO.DBF:" +0x459448: call 0x40eedc +0x45944d: test al, al +0x45944f: je 0x45945b +0x459451: mov ebx, 0x96 +0x459456: jmp 0x4597a3 +0x45945b: mov eax, dword ptr [ebp + 8] +0x45945e: push eax +0x45945f: push 0x4599f8 ; ":STARTG8X.INI:" +0x459464: call 0x40eedc +0x459469: test al, al +0x45946b: je 0x4594ad +0x45946d: mov eax, dword ptr [ebp + 8] +0x459470: push eax +0x459471: push 0x459a10 ; ":ESCOSG.VIF:" +0x459476: call 0x40eedc +0x45947b: test al, al +0x45947d: je 0x4594ad +0x45947f: mov eax, dword ptr [ebp + 8] +0x459482: push eax +0x459483: push 0x4598cc ; ":RATE.DBF:" +0x459488: call 0x40eedc +0x45948d: test al, al +0x45948f: je 0x4594ad +0x459491: mov eax, dword ptr [ebp + 8] +0x459494: push eax +0x459495: push 0x4598e0 ; ":QCODE.DBF:" +0x45949a: call 0x40eedc +0x45949f: test al, al +0x4594a1: je 0x4594ad +0x4594a3: mov ebx, 0x276 +0x4594a8: jmp 0x4597a3 +0x4594ad: mov eax, dword ptr [ebp + 8] +0x4594b0: push eax +0x4594b1: push 0x459a28 ; ":STARTJ8X.INI:" +0x4594b6: call 0x40eedc +0x4594bb: test al, al +0x4594bd: je 0x459511 +0x4594bf: mov eax, dword ptr [ebp + 8] +0x4594c2: push eax +0x4594c3: push 0x459a40 ; ":PRJINFOJ.VIF:" +0x4594c8: call 0x40eedc +0x4594cd: test al, al +0x4594cf: je 0x459511 +0x4594d1: mov eax, dword ptr [ebp + 8] +0x4594d4: push eax +0x4594d5: push 0x4598cc ; ":RATE.DBF:" +0x4594da: call 0x40eedc +0x4594df: test al, al +0x4594e1: je 0x459511 +0x4594e3: mov eax, dword ptr [ebp + 8] +0x4594e6: push eax +0x4594e7: push 0x4598e0 ; ":QCODE.DBF:" +0x4594ec: call 0x40eedc +0x4594f1: test al, al +0x4594f3: je 0x459511 +0x4594f5: mov eax, dword ptr [ebp + 8] +0x4594f8: push eax +0x4594f9: push 0x459a58 ; ":BOQJ.DBF:" +0x4594fe: call 0x40eedc +0x459503: test al, al +0x459505: je 0x459511 +0x459507: mov ebx, 0x280 +0x45950c: jmp 0x4597a3 +0x459511: mov eax, dword ptr [ebp + 8] +0x459514: push eax +0x459515: push 0x459a6c ; ":ESCOSG.INI:" +0x45951a: call 0x40eedc +0x45951f: test al, al +0x459521: je 0x459563 +0x459523: mov eax, dword ptr [ebp + 8] +0x459526: push eax +0x459527: push 0x459920 ; ":FORM.DBF:" +0x45952c: call 0x40eedc +0x459531: test al, al +0x459533: je 0x459563 +0x459535: mov eax, dword ptr [ebp + 8] +0x459538: push eax +0x459539: push 0x459934 ; ":KANJUB2.DBF:" +0x45953e: call 0x40eedc +0x459543: test al, al +0x459545: je 0x459563 +0x459547: mov eax, dword ptr [ebp + 8] +0x45954a: push eax +0x45954b: push 0x45994c ; ":IMG.DB:" +0x459550: call 0x40eedc +0x459555: test al, al +0x459557: je 0x459563 +0x459559: mov ebx, 0x26c +0x45955e: jmp 0x4597a3 +0x459563: mov eax, dword ptr [ebp + 8] +0x459566: push eax +0x459567: push 0x459a84 ; ":GLOBAL.INI:" +0x45956c: call 0x40eedc +0x459571: test al, al +0x459573: je 0x4596b1 +0x459579: mov eax, dword ptr [ebp + 8] +0x45957c: push eax +0x45957d: push 0x459a9c ; ":M.TXT:" +0x459582: call 0x40eedc +0x459587: test al, al +0x459589: je 0x4596b1 +0x45958f: mov eax, dword ptr [ebp + 8] +0x459592: push eax +0x459593: push 0x459aac ; ":L.TXT:" +0x459598: call 0x40eedc +0x45959d: test al, al +0x45959f: je 0x4596b1 +0x4595a5: mov eax, dword ptr [ebp + 8] +0x4595a8: push eax +0x4595a9: push 0x459abc ; ":E.TXT:" +0x4595ae: call 0x40eedc +0x4595b3: test al, al +0x4595b5: je 0x4596b1 +0x4595bb: mov eax, dword ptr [ebp + 8] +0x4595be: push eax +0x4595bf: push 0x459acc ; ":W.TXT:" +0x4595c4: call 0x40eedc +0x4595c9: test al, al +0x4595cb: je 0x4596b1 +0x4595d1: mov eax, dword ptr [ebp + 8] +0x4595d4: push eax +0x4595d5: push 0x459adc ; ":UNIT.TXT:" +0x4595da: call 0x40eedc +0x4595df: test al, al +0x4595e1: je 0x4596b1 +0x4595e7: mov eax, dword ptr [ebp + 8] +0x4595ea: push eax +0x4595eb: push 0x459af0 ; ":UNITPART.TXT:" +0x4595f0: call 0x40eedc +0x4595f5: test al, al +0x4595f7: je 0x4596b1 +0x4595fd: mov eax, dword ptr [ebp + 8] +0x459600: push eax +0x459601: push 0x459b08 ; ":J.TXT:" +0x459606: call 0x40eedc +0x45960b: test al, al +0x45960d: je 0x4596b1 +0x459613: mov eax, dword ptr [ebp + 8] +0x459616: push eax +0x459617: push 0x459b18 ; ":JPART.TXT:" +0x45961c: call 0x40eedc +0x459621: test al, al +0x459623: je 0x4596b1 +0x459629: mov eax, dword ptr [ebp + 8] +0x45962c: push eax +0x45962d: push 0x459b2c ; ":JUNIT.TXT:" +0x459632: call 0x40eedc +0x459637: test al, al +0x459639: je 0x4596b1 +0x45963b: mov eax, dword ptr [ebp + 8] +0x45963e: push eax +0x45963f: push 0x459b40 ; ":DANGA.TXT:" +0x459644: call 0x40eedc +0x459649: test al, al +0x45964b: je 0x4596b1 +0x45964d: mov eax, dword ptr [ebp + 8] +0x459650: push eax +0x459651: push 0x459b54 ; ":DANGA.DBF:" +0x459656: call 0x40eedc +0x45965b: test al, al +0x45965d: je 0x4596b1 +0x45965f: mov eax, dword ptr [ebp + 8] +0x459662: push eax +0x459663: push 0x459b68 ; ":DANGA.DBT:" +0x459668: call 0x40eedc +0x45966d: test al, al +0x45966f: je 0x4596b1 +0x459671: mov eax, dword ptr [ebp + 8] +0x459674: push eax +0x459675: push 0x459b7c ; ":GONGJONG.TXT:" +0x45967a: call 0x40eedc +0x45967f: test al, al +0x459681: je 0x4596b1 +0x459683: mov eax, dword ptr [ebp + 8] +0x459686: push eax +0x459687: push 0x459b94 ; ":MAIN.TXT:" +0x45968c: call 0x40eedc +0x459691: test al, al +0x459693: je 0x4596b1 +0x459695: mov eax, dword ptr [ebp + 8] +0x459698: push eax +0x459699: push 0x459ba8 ; ":MAINPART.TXT:" +0x45969e: call 0x40eedc +0x4596a3: test al, al +0x4596a5: je 0x4596b1 +0x4596a7: mov ebx, 0xc8 +0x4596ac: jmp 0x4597a3 +0x4596b1: mov eax, dword ptr [ebp + 8] +0x4596b4: push eax +0x4596b5: push 0x459bc0 ; ":STIMP.INI:" +0x4596ba: call 0x40eedc +0x4596bf: test al, al +0x4596c1: je 0x4596f1 +0x4596c3: mov eax, dword ptr [ebp + 8] +0x4596c6: push eax +0x4596c7: push 0x459bd4 ; ":DAT_QTY.DBF:" +0x4596cc: call 0x40eedc +0x4596d1: test al, al +0x4596d3: je 0x4596f1 +0x4596d5: mov eax, dword ptr [ebp + 8] +0x4596d8: push eax +0x4596d9: push 0x459bec ; ":EMP_LST.DBF:" +0x4596de: call 0x40eedc +0x4596e3: test al, al +0x4596e5: je 0x4596f1 +0x4596e7: mov ebx, 0x190 +0x4596ec: jmp 0x4597a3 +0x4596f1: mov eax, dword ptr [ebp + 8] +0x4596f4: push eax +0x4596f5: push 0x459c04 ; ":STARTB.INI:" +0x4596fa: call 0x40eedc +0x4596ff: test al, al +0x459701: je 0x459752 +0x459703: mov eax, dword ptr [ebp + 8] +0x459706: push eax +0x459707: push 0x459c1c ; ":BDQTY.DBF:" +0x45970c: call 0x40eedc +0x459711: test al, al +0x459713: je 0x459752 +0x459715: mov eax, dword ptr [ebp + 8] +0x459718: push eax +0x459719: push 0x459c30 ; ":COST.DBF:" +0x45971e: call 0x40eedc +0x459723: test al, al +0x459725: je 0x459752 +0x459727: mov eax, dword ptr [ebp + 8] +0x45972a: push eax +0x45972b: push 0x459c44 ; ":EWORKMST.DBF:" +0x459730: call 0x40eedc +0x459735: test al, al +0x459737: je 0x459752 +0x459739: mov eax, dword ptr [ebp + 8] +0x45973c: push eax +0x45973d: push 0x459c5c ; ":EWORKDTL.DBF:" +0x459742: call 0x40eedc +0x459747: test al, al +0x459749: je 0x459752 +0x45974b: mov ebx, 0x1f4 +0x459750: jmp 0x4597a3 +0x459752: mov eax, dword ptr [ebp + 8] +0x459755: push eax +0x459756: push 0x459c74 ; ":USER.INI:" +0x45975b: call 0x40eedc +0x459760: test al, al +0x459762: je 0x4597a1 +0x459764: mov eax, dword ptr [ebp + 8] +0x459767: push eax +0x459768: push 0x459c88 ; ":EDIST.DBF:" +0x45976d: call 0x40eedc +0x459772: test al, al +0x459774: je 0x4597a1 +0x459776: mov eax, dword ptr [ebp + 8] +0x459779: push eax +0x45977a: push 0x459c9c ; ":EDIST1.DBF:" +0x45977f: call 0x40eedc +0x459784: test al, al +0x459786: je 0x4597a1 +0x459788: mov eax, dword ptr [ebp + 8] +0x45978b: push eax +0x45978c: push 0x459cb4 ; ":EDIST2.DBF:" +0x459791: call 0x40eedc +0x459796: test al, al +0x459798: je 0x4597a1 +0x45979a: mov ebx, 0x1fe +0x45979f: jmp 0x4597a3 +0x4597a1: xor ebx, ebx +0x4597a3: xor esi, esi +0x4597a5: test ebx, ebx +0x4597a7: jne 0x4597e3 +0x4597a9: mov eax, dword ptr [ebp + 8] +0x4597ac: push eax +0x4597ad: push 0x459ccc ; ":COSTN.DBF:" +0x4597b2: call 0x40eedc +0x4597b7: test al, al +0x4597b9: jne 0x4597e3 +0x4597bb: mov eax, dword ptr [ebp + 8] +0x4597be: push eax +0x4597bf: push 0x459c1c ; ":BDQTY.DBF:" +0x4597c4: call 0x40eedc +0x4597c9: test al, al +0x4597cb: jne 0x4597e3 +0x4597cd: mov eax, dword ptr [ebp + 8] +0x4597d0: push eax +0x4597d1: push 0x459ce0 ; ":PRJLST.DBF:" +0x4597d6: call 0x40eedc +0x4597db: test al, al +0x4597dd: je 0x45987a +0x4597e3: mov eax, ebx +0x4597e5: sub eax, 0x96 +0x4597ea: je 0x45985c +0x4597ec: sub eax, 0x32 +0x4597ef: je 0x45985c +0x4597f1: cmp ebx, 0x190 +0x4597f7: je 0x45985c +0x4597f9: cmp ebx, 0x1f4 +0x4597ff: je 0x45985c +0x459801: cmp ebx, 0x1fe +0x459807: je 0x45985c +0x459809: test ebx, ebx +0x45980b: je 0x459855 +0x45980d: mov eax, dword ptr [ebp + 8] +0x459810: push eax +0x459811: push 0x459ccc ; ":COSTN.DBF:" +0x459816: call 0x40eedc +0x45981b: test al, al +0x45981d: je 0x459855 +0x45981f: mov eax, dword ptr [ebp + 8] +0x459822: push eax +0x459823: push 0x459c1c ; ":BDQTY.DBF:" +0x459828: call 0x40eedc +0x45982d: test al, al +0x45982f: je 0x459855 +0x459831: mov eax, dword ptr [ebp + 8] +0x459834: push eax +0x459835: push 0x459ce0 ; ":PRJLST.DBF:" +0x45983a: call 0x40eedc +0x45983f: test al, al +0x459841: je 0x459855 +0x459843: mov eax, dword ptr [ebp + 8] +0x459846: push eax +0x459847: push 0x459cf8 ; ":GRASS.DBF:" +0x45984c: call 0x40eedc +0x459851: test al, al +0x459853: jne 0x45985c +0x459855: mov esi, 0x64 +0x45985a: jmp 0x45987a +0x45985c: cmp ebx, 0x64 +0x45985f: jne 0x459878 +0x459861: mov eax, dword ptr [ebp + 8] +0x459864: push eax +0x459865: push 0x459d0c ; ":COST0.DBF:" +0x45986a: call 0x40eedc +0x45986f: test al, al +0x459871: je 0x459878 +0x459873: mov ebx, 0x262 +0x459878: mov esi, ebx +0x45987a: xor eax, eax +0x45987c: pop edx +0x45987d: pop ecx +0x45987e: pop ecx +0x45987f: mov dword ptr fs:[eax], edx +0x459882: push 0x4598a4 +0x459887: lea eax, [ebp - 8] +0x45988a: mov edx, 2 +0x45988f: call 0x4011e8 +0x459894: lea eax, [ebp + 8] +0x459897: call 0x4011e0 +0x45989c: ret +0x45989d: jmp 0x401180 +0x4598a2: jmp 0x459887 +0x4598a4: mov eax, esi +0x4598a6: pop esi +0x4598a7: pop ebx +0x4598a8: pop ecx +0x4598a9: pop ecx +0x4598aa: pop ebp +0x4598ab: ret 4 +0x4598ae: add byte ptr [eax], al +0x4598b0: .byte 0xff +0x4598b1: .byte 0xff +0x4598b2: .byte 0xff +0x4598b3: dec dword ptr [ebx] +0x4598b5: add byte ptr [eax], al +0x4598b7: add byte ptr [edx], bh +0x4598b9: push ebx +0x4598ba: push esp +0x4598bb: dec ecx +0x4598bc: dec esi +0x4598bd: dec ecx +0x4598be: dec ebp +0x4598c0: inc ebp +0x4598c1: dec ebp +0x4598c2: cmp al, byte ptr [eax] +0x4598c4: .byte 0xff +0x4598c5: .byte 0xff +0x4598c6: .byte 0xff +0x4598c7: dec dword ptr [edx] +0x4598c9: add byte ptr [eax], al +0x4598cb: add byte ptr [edx], bh +0x4598cd: push edx +0x4598ce: inc ecx +0x4598cf: push esp +0x4598d0: inc ebp +0x4598d1: inc esp +0x4598d3: inc edx +0x4598d4: inc esi +0x4598d5: cmp al, byte ptr [eax] +0x4598d7: add bh, bh +0x4598d9: .byte 0xff +0x4598da: .byte 0xff +0x4598db: dec dword ptr [ebx] +0x4598dd: add byte ptr [eax], al +0x4598df: add byte ptr [edx], bh +0x4598e1: push ecx +0x4598e2: inc ebx +0x4598e3: dec edi +0x4598e4: inc esp +0x4598e5: inc ebp +0x4598e6: inc esp +0x4598e8: inc edx +0x4598e9: inc esi +0x4598ea: cmp al, byte ptr [eax] +0x4598ec: .byte 0xff +0x4598ed: .byte 0xff +0x4598ee: .byte 0xff +0x4598ef: dec dword ptr [0x3a000000] +0x4598f5: push ebx +0x4598f6: push esp +0x4598f7: inc ecx +0x4598f8: push edx +0x4598f9: push esp +0x4598fa: cmp byte ptr [eax + 0x2e], bl +0x4598fd: dec ecx +0x4598fe: dec esi +0x4598ff: dec ecx +0x459900: cmp al, byte ptr [eax] +0x459902: add byte ptr [eax], al +0x459904: .byte 0xff +0x459905: .byte 0xff +0x459906: .byte 0xff +0x459907: dec dword ptr [ebx] +0x459909: add byte ptr [eax], al +0x45990b: add byte ptr [edx], bh +0x45990d: push ebx +0x45990e: push esp +0x45990f: inc ecx +0x459910: push edx +0x459911: push esp +0x459912: dec ecx +0x459914: dec esi +0x459915: dec ecx +0x459916: cmp al, byte ptr [eax] +0x459918: .byte 0xff +0x459919: .byte 0xff +0x45991a: .byte 0xff +0x45991b: dec dword ptr [edx] +0x45991d: add byte ptr [eax], al +0x45991f: add byte ptr [edx], bh +0x459921: inc esi +0x459922: dec edi +0x459923: push edx +0x459924: dec ebp +0x459925: inc esp +0x459927: inc edx +0x459928: inc esi +0x459929: cmp al, byte ptr [eax] +0x45992b: add bh, bh +0x45992d: .byte 0xff +0x45992e: .byte 0xff +0x45992f: dec dword ptr [0x3a000000] +0x459935: dec ebx +0x459936: inc ecx +0x459937: dec esi +0x459938: dec edx +0x459939: push ebp +0x45993a: inc edx +0x45993b: xor ch, byte ptr [esi] +0x45993d: inc esp +0x45993e: inc edx +0x45993f: inc esi +0x459940: cmp al, byte ptr [eax] +0x459942: add byte ptr [eax], al +0x459944: .byte 0xff +0x459945: .byte 0xff +0x459946: .byte 0xff +0x459947: dec dword ptr [eax] +0x459949: add byte ptr [eax], al +0x45994b: add byte ptr [edx], bh +0x45994d: dec ecx +0x45994e: dec ebp +0x45994f: inc edi +0x459950: inc esp +0x459952: inc edx +0x459953: cmp al, byte ptr [eax] +0x459955: add byte ptr [eax], al +0x459957: add bh, bh +0x459959: .byte 0xff +0x45995a: .byte 0xff +0x45995b: dec dword ptr [ebx] +0x45995d: add byte ptr [eax], al +0x45995f: add byte ptr [edx], bh +0x459961: push ebx +0x459962: push esp +0x459963: inc ecx +0x459964: push edx +0x459965: push esp +0x459966: dec ebp +0x459968: inc ebp +0x459969: dec ebp +0x45996a: cmp al, byte ptr [eax] +0x45996c: .byte 0xff +0x45996d: .byte 0xff +0x45996e: .byte 0xff +0x45996f: dec dword ptr [eax + eax] +0x459972: add byte ptr [eax], al +0x459974: cmp al, byte ptr [ebx + 0x4f] +0x459977: push ebx +0x459978: push esp +0x459979: dec esi +0x45997a: xor dword ptr [esi], ebp +0x45997c: inc esp +0x45997d: inc edx +0x45997e: inc esi +0x45997f: cmp al, byte ptr [eax] +0x459981: add byte ptr [eax], al +0x459983: add bh, bh +0x459985: .byte 0xff +0x459986: .byte 0xff +0x459987: dec dword ptr [ecx] +0x459989: add byte ptr [eax], al +0x45998b: add byte ptr [edx], bh +0x45998d: push ebx +0x45998e: push esp +0x45998f: inc ecx +0x459990: push edx +0x459991: push esp +0x459992: cmp byte ptr [eax + 0x3a], bl +0x459995: add byte ptr [eax], al +0x459997: add bh, bh +0x459999: .byte 0xff +0x45999a: .byte 0xff +0x45999b: dec dword ptr [ebx] +0x45999d: add byte ptr [eax], al +0x45999f: add byte ptr [edx], bh +0x4599a1: inc ebx +0x4599a2: dec edi +0x4599a3: push ebx +0x4599a4: push esp +0x4599a5: inc ecx +0x4599a6: inc esp +0x4599a8: inc edx +0x4599a9: inc esi +0x4599aa: cmp al, byte ptr [eax] +0x4599ac: .byte 0xff +0x4599ad: .byte 0xff +0x4599ae: .byte 0xff +0x4599af: dec dword ptr [ebx] +0x4599b1: add byte ptr [eax], al +0x4599b3: add byte ptr [edx], bh +0x4599b5: inc ebx +0x4599b6: dec edi +0x4599b7: push ebx +0x4599b8: push esp +0x4599b9: dec esi +0x4599ba: push ebx +0x4599bc: dec ebp +0x4599bd: push esp +0x4599be: cmp al, byte ptr [eax] +0x4599c0: .byte 0xff +0x4599c1: .byte 0xff +0x4599c2: .byte 0xff +0x4599c3: dec dword ptr [eax + eax] +0x4599c6: add byte ptr [eax], al +0x4599c8: cmp dl, byte ptr [eax + 0x52] +0x4599cb: dec edx +0x4599cc: dec esp +0x4599cd: push ebx +0x4599ce: push esp +0x4599cf: push ebx +0x4599d1: dec ebp +0x4599d2: push esp +0x4599d3: cmp al, byte ptr [eax] +0x4599d5: add byte ptr [eax], al +0x4599d7: add bh, bh +0x4599d9: .byte 0xff +0x4599da: .byte 0xff +0x4599db: dec dword ptr [0x3a000000] +0x4599e1: push ebx +0x4599e2: pop ecx +0x4599e3: push ebx +0x4599e4: dec ecx +0x4599e5: dec esi +0x4599e6: inc esi +0x4599e7: dec edi +0x4599e8: inc esp +0x4599ea: inc edx +0x4599eb: inc esi +0x4599ec: cmp al, byte ptr [eax] +0x4599ee: add byte ptr [eax], al +0x4599f0: .byte 0xff +0x4599f1: .byte 0xff +0x4599f2: .byte 0xff +0x4599f3: dec dword ptr [esi] +0x4599f5: add byte ptr [eax], al +0x4599f7: add byte ptr [edx], bh +0x4599f9: push ebx +0x4599fa: push esp +0x4599fb: inc ecx +0x4599fc: push edx +0x4599fd: push esp +0x4599fe: inc edi +0x4599ff: cmp byte ptr [eax + 0x2e], bl +0x459a02: dec ecx +0x459a03: dec esi +0x459a04: dec ecx +0x459a05: cmp al, byte ptr [eax] +0x459a07: add bh, bh +0x459a09: .byte 0xff +0x459a0a: .byte 0xff +0x459a0b: dec dword ptr [eax + eax] +0x459a0e: add byte ptr [eax], al +0x459a10: cmp al, byte ptr [ebp + 0x53] +0x459a13: inc ebx +0x459a14: dec edi +0x459a15: push ebx +0x459a16: inc edi +0x459a17: push esi +0x459a19: dec ecx +0x459a1a: inc esi +0x459a1b: cmp al, byte ptr [eax] +0x459a1d: add byte ptr [eax], al +0x459a1f: add bh, bh +0x459a21: .byte 0xff +0x459a22: .byte 0xff +0x459a23: dec dword ptr [esi] +0x459a25: add byte ptr [eax], al +0x459a27: add byte ptr [edx], bh +0x459a29: push ebx +0x459a2a: push esp +0x459a2b: inc ecx +0x459a2c: push edx +0x459a2d: push esp +0x459a2e: dec edx +0x459a2f: cmp byte ptr [eax + 0x2e], bl +0x459a32: dec ecx +0x459a33: dec esi +0x459a34: dec ecx +0x459a35: cmp al, byte ptr [eax] +0x459a37: add bh, bh +0x459a39: .byte 0xff +0x459a3a: .byte 0xff +0x459a3b: dec dword ptr [esi] +0x459a3d: add byte ptr [eax], al +0x459a3f: add byte ptr [edx], bh +0x459a41: push eax +0x459a42: push edx +0x459a43: dec edx +0x459a44: dec ecx +0x459a45: dec esi +0x459a46: inc esi +0x459a47: dec edi +0x459a48: dec edx +0x459a49: push esi +0x459a4b: dec ecx +0x459a4c: inc esi +0x459a4d: cmp al, byte ptr [eax] +0x459a4f: add bh, bh +0x459a51: .byte 0xff +0x459a52: .byte 0xff +0x459a53: dec dword ptr [edx] +0x459a55: add byte ptr [eax], al +0x459a57: add byte ptr [edx], bh +0x459a59: inc edx +0x459a5a: dec edi +0x459a5b: push ecx +0x459a5c: dec edx +0x459a5d: inc esp +0x459a5f: inc edx +0x459a60: inc esi +0x459a61: cmp al, byte ptr [eax] +0x459a63: add bh, bh +0x459a65: .byte 0xff +0x459a66: .byte 0xff +0x459a67: dec dword ptr [eax + eax] +0x459a6a: add byte ptr [eax], al +0x459a6c: cmp al, byte ptr [ebp + 0x53] +0x459a6f: inc ebx +0x459a70: dec edi +0x459a71: push ebx +0x459a72: inc edi +0x459a73: dec ecx +0x459a75: dec esi +0x459a76: dec ecx +0x459a77: cmp al, byte ptr [eax] +0x459a79: add byte ptr [eax], al +0x459a7b: add bh, bh +0x459a7d: .byte 0xff +0x459a7e: .byte 0xff +0x459a7f: dec dword ptr [eax + eax] +0x459a82: add byte ptr [eax], al +0x459a84: cmp al, byte ptr [edi + 0x4c] +0x459a87: dec edi +0x459a88: inc edx +0x459a89: inc ecx +0x459a8a: dec esp +0x459a8b: dec ecx +0x459a8d: dec esi +0x459a8e: dec ecx +0x459a8f: cmp al, byte ptr [eax] +0x459a91: add byte ptr [eax], al +0x459a93: add bh, bh +0x459a95: .byte 0xff +0x459a96: .byte 0xff +0x459a97: inc dword ptr [edi] +0x459a99: add byte ptr [eax], al +0x459a9b: add byte ptr [edx], bh +0x459a9d: dec ebp +0x459a9e: push esp +0x459aa0: pop eax +0x459aa1: push esp +0x459aa2: cmp al, byte ptr [eax] +0x459aa4: .byte 0xff +0x459aa5: .byte 0xff +0x459aa6: .byte 0xff +0x459aa7: inc dword ptr [edi] +0x459aa9: add byte ptr [eax], al +0x459aab: add byte ptr [edx], bh +0x459aad: dec esp +0x459aae: push esp +0x459ab0: pop eax +0x459ab1: push esp +0x459ab2: cmp al, byte ptr [eax] +0x459ab4: .byte 0xff +0x459ab5: .byte 0xff +0x459ab6: .byte 0xff +0x459ab7: inc dword ptr [edi] +0x459ab9: add byte ptr [eax], al +0x459abb: add byte ptr [edx], bh +0x459abd: inc ebp +0x459abe: push esp +0x459ac0: pop eax +0x459ac1: push esp +0x459ac2: cmp al, byte ptr [eax] +0x459ac4: .byte 0xff +0x459ac5: .byte 0xff +0x459ac6: .byte 0xff +0x459ac7: inc dword ptr [edi] +0x459ac9: add byte ptr [eax], al +0x459acb: add byte ptr [edx], bh +0x459acd: push edi +0x459ace: push esp +0x459ad0: pop eax +0x459ad1: push esp +0x459ad2: cmp al, byte ptr [eax] +0x459ad4: .byte 0xff +0x459ad5: .byte 0xff +0x459ad6: .byte 0xff +0x459ad7: dec dword ptr [edx] +0x459ad9: add byte ptr [eax], al +0x459adb: add byte ptr [edx], bh +0x459add: push ebp +0x459ade: dec esi +0x459adf: dec ecx +0x459ae0: push esp +0x459ae1: push esp +0x459ae3: pop eax +0x459ae4: push esp +0x459ae5: cmp al, byte ptr [eax] +0x459ae7: add bh, bh +0x459ae9: .byte 0xff +0x459aea: .byte 0xff +0x459aeb: dec dword ptr [esi] +0x459aed: add byte ptr [eax], al +0x459aef: add byte ptr [edx], bh +0x459af1: push ebp +0x459af2: dec esi +0x459af3: dec ecx +0x459af4: push esp +0x459af5: push eax +0x459af6: inc ecx +0x459af7: push edx +0x459af8: push esp +0x459af9: push esp +0x459afb: pop eax +0x459afc: push esp +0x459afd: cmp al, byte ptr [eax] +0x459aff: add bh, bh +0x459b01: .byte 0xff +0x459b02: .byte 0xff +0x459b03: inc dword ptr [edi] +0x459b05: add byte ptr [eax], al +0x459b07: add byte ptr [edx], bh +0x459b09: dec edx +0x459b0a: push esp +0x459b0c: pop eax +0x459b0d: push esp +0x459b0e: cmp al, byte ptr [eax] +0x459b10: .byte 0xff +0x459b11: .byte 0xff +0x459b12: .byte 0xff +0x459b13: dec dword ptr [ebx] +0x459b15: add byte ptr [eax], al +0x459b17: add byte ptr [edx], bh +0x459b19: dec edx +0x459b1a: push eax +0x459b1b: inc ecx +0x459b1c: push edx +0x459b1d: push esp +0x459b1e: push esp +0x459b20: pop eax +0x459b21: push esp +0x459b22: cmp al, byte ptr [eax] +0x459b24: .byte 0xff +0x459b25: .byte 0xff +0x459b26: .byte 0xff +0x459b27: dec dword ptr [ebx] +0x459b29: add byte ptr [eax], al +0x459b2b: add byte ptr [edx], bh +0x459b2d: dec edx +0x459b2e: push ebp +0x459b2f: dec esi +0x459b30: dec ecx +0x459b31: push esp +0x459b32: push esp +0x459b34: pop eax +0x459b35: push esp +0x459b36: cmp al, byte ptr [eax] +0x459b38: .byte 0xff +0x459b39: .byte 0xff +0x459b3a: .byte 0xff +0x459b3b: dec dword ptr [ebx] +0x459b3d: add byte ptr [eax], al +0x459b3f: add byte ptr [edx], bh +0x459b41: inc esp +0x459b42: inc ecx +0x459b43: dec esi +0x459b44: inc edi +0x459b45: inc ecx +0x459b46: push esp +0x459b48: pop eax +0x459b49: push esp +0x459b4a: cmp al, byte ptr [eax] +0x459b4c: .byte 0xff +0x459b4d: .byte 0xff +0x459b4e: .byte 0xff +0x459b4f: dec dword ptr [ebx] +0x459b51: add byte ptr [eax], al +0x459b53: add byte ptr [edx], bh +0x459b55: inc esp +0x459b56: inc ecx +0x459b57: dec esi +0x459b58: inc edi +0x459b59: inc ecx +0x459b5a: inc esp +0x459b5c: inc edx +0x459b5d: inc esi +0x459b5e: cmp al, byte ptr [eax] +0x459b60: .byte 0xff +0x459b61: .byte 0xff +0x459b62: .byte 0xff +0x459b63: dec dword ptr [ebx] +0x459b65: add byte ptr [eax], al +0x459b67: add byte ptr [edx], bh +0x459b69: inc esp +0x459b6a: inc ecx +0x459b6b: dec esi +0x459b6c: inc edi +0x459b6d: inc ecx +0x459b6e: inc esp +0x459b70: inc edx +0x459b71: push esp +0x459b72: cmp al, byte ptr [eax] +0x459b74: .byte 0xff +0x459b75: .byte 0xff +0x459b76: .byte 0xff +0x459b77: dec dword ptr [esi] +0x459b79: add byte ptr [eax], al +0x459b7b: add byte ptr [edx], bh +0x459b7d: inc edi +0x459b7e: dec edi +0x459b7f: dec esi +0x459b80: inc edi +0x459b81: dec edx +0x459b82: dec edi +0x459b83: dec esi +0x459b84: inc edi +0x459b85: push esp +0x459b87: pop eax +0x459b88: push esp +0x459b89: cmp al, byte ptr [eax] +0x459b8b: add bh, bh +0x459b8d: .byte 0xff +0x459b8e: .byte 0xff +0x459b8f: dec dword ptr [edx] +0x459b91: add byte ptr [eax], al +0x459b93: add byte ptr [edx], bh +0x459b95: dec ebp +0x459b96: inc ecx +0x459b97: dec ecx +0x459b98: dec esi +0x459b99: push esp +0x459b9b: pop eax +0x459b9c: push esp +0x459b9d: cmp al, byte ptr [eax] +0x459b9f: add bh, bh +0x459ba1: .byte 0xff +0x459ba2: .byte 0xff +0x459ba3: dec dword ptr [esi] +0x459ba5: add byte ptr [eax], al +0x459ba7: add byte ptr [edx], bh +0x459ba9: dec ebp +0x459baa: inc ecx +0x459bab: dec ecx +0x459bac: dec esi +0x459bad: push eax +0x459bae: inc ecx +0x459baf: push edx +0x459bb0: push esp +0x459bb1: push esp +0x459bb3: pop eax +0x459bb4: push esp +0x459bb5: cmp al, byte ptr [eax] +0x459bb7: add bh, bh +0x459bb9: .byte 0xff +0x459bba: .byte 0xff +0x459bbb: dec dword ptr [ebx] +0x459bbd: add byte ptr [eax], al +0x459bbf: add byte ptr [edx], bh +0x459bc1: push ebx +0x459bc2: push esp +0x459bc3: dec ecx +0x459bc4: dec ebp +0x459bc5: push eax +0x459bc6: dec ecx +0x459bc8: dec esi +0x459bc9: dec ecx +0x459bca: cmp al, byte ptr [eax] +0x459bcc: .byte 0xff +0x459bcd: .byte 0xff +0x459bce: .byte 0xff +0x459bcf: dec dword ptr [0x3a000000] +0x459bd5: inc esp +0x459bd6: inc ecx +0x459bd7: push esp +0x459bd8: pop edi +0x459bd9: push ecx +0x459bda: push esp +0x459bdb: pop ecx +0x459bdc: inc esp +0x459bde: inc edx +0x459bdf: inc esi +0x459be0: cmp al, byte ptr [eax] +0x459be2: add byte ptr [eax], al +0x459be4: .byte 0xff +0x459be5: .byte 0xff +0x459be6: .byte 0xff +0x459be7: dec dword ptr [0x3a000000] +0x459bed: inc ebp +0x459bee: dec ebp +0x459bef: push eax +0x459bf0: pop edi +0x459bf1: dec esp +0x459bf2: push ebx +0x459bf3: push esp +0x459bf4: inc esp +0x459bf6: inc edx +0x459bf7: inc esi +0x459bf8: cmp al, byte ptr [eax] +0x459bfa: add byte ptr [eax], al +0x459bfc: .byte 0xff +0x459bfd: .byte 0xff +0x459bfe: .byte 0xff +0x459bff: dec dword ptr [eax + eax] +0x459c02: add byte ptr [eax], al +0x459c04: cmp dl, byte ptr [ebx + 0x54] +0x459c07: inc ecx +0x459c08: push edx +0x459c09: push esp +0x459c0a: inc edx +0x459c0b: dec ecx +0x459c0d: dec esi +0x459c0e: dec ecx +0x459c0f: cmp al, byte ptr [eax] +0x459c11: add byte ptr [eax], al +0x459c13: add bh, bh +0x459c15: .byte 0xff +0x459c16: .byte 0xff +0x459c17: dec dword ptr [ebx] +0x459c19: add byte ptr [eax], al +0x459c1b: add byte ptr [edx], bh +0x459c1d: inc edx +0x459c1e: inc esp +0x459c1f: push ecx +0x459c20: push esp +0x459c21: pop ecx +0x459c22: inc esp +0x459c24: inc edx +0x459c25: inc esi +0x459c26: cmp al, byte ptr [eax] +0x459c28: .byte 0xff +0x459c29: .byte 0xff +0x459c2a: .byte 0xff +0x459c2b: dec dword ptr [edx] +0x459c2d: add byte ptr [eax], al +0x459c2f: add byte ptr [edx], bh +0x459c31: inc ebx +0x459c32: dec edi +0x459c33: push ebx +0x459c34: push esp +0x459c35: inc esp +0x459c37: inc edx +0x459c38: inc esi +0x459c39: cmp al, byte ptr [eax] +0x459c3b: add bh, bh +0x459c3d: .byte 0xff +0x459c3e: .byte 0xff +0x459c3f: dec dword ptr [esi] +0x459c41: add byte ptr [eax], al +0x459c43: add byte ptr [edx], bh +0x459c45: inc ebp +0x459c46: push edi +0x459c47: dec edi +0x459c48: push edx +0x459c49: dec ebx +0x459c4a: dec ebp +0x459c4b: push ebx +0x459c4c: push esp +0x459c4d: inc esp +0x459c4f: inc edx +0x459c50: inc esi +0x459c51: cmp al, byte ptr [eax] +0x459c53: add bh, bh +0x459c55: .byte 0xff +0x459c56: .byte 0xff +0x459c57: dec dword ptr [esi] +0x459c59: add byte ptr [eax], al +0x459c5b: add byte ptr [edx], bh +0x459c5d: inc ebp +0x459c5e: push edi +0x459c5f: dec edi +0x459c60: push edx +0x459c61: dec ebx +0x459c62: inc esp +0x459c63: push esp +0x459c64: dec esp +0x459c65: inc esp +0x459c67: inc edx +0x459c68: inc esi +0x459c69: cmp al, byte ptr [eax] +0x459c6b: add bh, bh +0x459c6d: .byte 0xff +0x459c6e: .byte 0xff +0x459c6f: dec dword ptr [edx] +0x459c71: add byte ptr [eax], al +0x459c73: add byte ptr [edx], bh +0x459c75: push ebp +0x459c76: push ebx +0x459c77: inc ebp +0x459c78: push edx +0x459c79: dec ecx +0x459c7b: dec esi +0x459c7c: dec ecx +0x459c7d: cmp al, byte ptr [eax] +0x459c7f: add bh, bh +0x459c81: .byte 0xff +0x459c82: .byte 0xff +0x459c83: dec dword ptr [ebx] +0x459c85: add byte ptr [eax], al +0x459c87: add byte ptr [edx], bh +0x459c89: inc ebp +0x459c8a: inc esp +0x459c8b: dec ecx +0x459c8c: push ebx +0x459c8d: push esp +0x459c8e: inc esp +0x459c90: inc edx +0x459c91: inc esi +0x459c92: cmp al, byte ptr [eax] +0x459c94: .byte 0xff +0x459c95: .byte 0xff +0x459c96: .byte 0xff +0x459c97: dec dword ptr [eax + eax] +0x459c9a: add byte ptr [eax], al +0x459c9c: cmp al, byte ptr [ebp + 0x44] +0x459c9f: dec ecx +0x459ca0: push ebx +0x459ca1: push esp +0x459ca2: xor dword ptr [esi], ebp +0x459ca4: inc esp +0x459ca5: inc edx +0x459ca6: inc esi +0x459ca7: cmp al, byte ptr [eax] +0x459ca9: add byte ptr [eax], al +0x459cab: add bh, bh +0x459cad: .byte 0xff +0x459cae: .byte 0xff +0x459caf: dec dword ptr [eax + eax] +0x459cb2: add byte ptr [eax], al +0x459cb4: cmp al, byte ptr [ebp + 0x44] +0x459cb7: dec ecx +0x459cb8: push ebx +0x459cb9: push esp +0x459cba: xor ch, byte ptr [esi] +0x459cbc: inc esp +0x459cbd: inc edx +0x459cbe: inc esi +0x459cbf: cmp al, byte ptr [eax] +0x459cc1: add byte ptr [eax], al +0x459cc3: add bh, bh +0x459cc5: .byte 0xff +0x459cc6: .byte 0xff +0x459cc7: dec dword ptr [ebx] +0x459cc9: add byte ptr [eax], al +0x459ccb: add byte ptr [edx], bh +0x459ccd: inc ebx +0x459cce: dec edi +0x459ccf: push ebx +0x459cd0: push esp +0x459cd1: dec esi +0x459cd2: inc esp +0x459cd4: inc edx +0x459cd5: inc esi +0x459cd6: cmp al, byte ptr [eax] +0x459cd8: .byte 0xff +0x459cd9: .byte 0xff +0x459cda: .byte 0xff +0x459cdb: dec dword ptr [eax + eax] +0x459cde: add byte ptr [eax], al +0x459ce0: cmp dl, byte ptr [eax + 0x52] +0x459ce3: dec edx +0x459ce4: dec esp +0x459ce5: push ebx +0x459ce6: push esp +0x459ce7: inc esp +0x459ce9: inc edx +0x459cea: inc esi +0x459ceb: cmp al, byte ptr [eax] +0x459ced: add byte ptr [eax], al +0x459cef: add bh, bh +0x459cf1: .byte 0xff +0x459cf2: .byte 0xff +0x459cf3: dec dword ptr [ebx] +0x459cf5: add byte ptr [eax], al +0x459cf7: add byte ptr [edx], bh +0x459cf9: inc edi +0x459cfa: push edx +0x459cfb: inc ecx +0x459cfc: push ebx +0x459cfd: push ebx +0x459cfe: inc esp +0x459d00: inc edx +0x459d01: inc esi +0x459d02: cmp al, byte ptr [eax] +0x459d04: .byte 0xff +0x459d05: .byte 0xff +0x459d06: .byte 0xff +0x459d07: dec dword ptr [ebx] +0x459d09: add byte ptr [eax], al +0x459d0b: add byte ptr [edx], bh +0x459d0d: inc ebx +0x459d0e: dec edi +0x459d0f: push ebx +0x459d10: push esp +0x459d11: xor byte ptr [esi], ch +0x459d13: inc esp +0x459d14: inc edx +0x459d15: inc esi +0x459d16: cmp al, byte ptr [eax] +0x459d18: mov ecx, eax +0x459d1a: neg eax +0x459d1c: add edx, eax +0x459d1e: mov eax, edx +0x459d20: ret +0x459d21: lea eax, [eax] diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_Main_GongJong_GlobalIni_요약.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_Main_GongJong_GlobalIni_요약.txt new file mode 100644 index 000000000..ad87cb619 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_Main_GongJong_GlobalIni_요약.txt @@ -0,0 +1,296 @@ +0x4bc161: mov edx, 0x4bf4f4 ; "TCOST" +0x4bc166: call 0x4012b0 <_System__LStrCat3> +0x4bc181: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4bc194: mov ecx, 0x4bf4f4 ; "TCOST" +0x4bc199: mov edx, 0x4bf4b4 ; "COST" +0x4bc1a9: mov ecx, 0x4bf504 ; "Main.TXT" +0x4bc1b1: call 0x4012b0 <_System__LStrCat3> +0x4bc1e7: mov edx, 0x4bf518 ; "PNUM" +0x4bc1ec: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4bc1fd: call 0x4018c4 <@Sysutils@TrimRight$qqrx17System@AnsiString> +0x4bc212: mov edx, 0x4bf528 ; "PNAME" +0x4bc217: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4bc228: call 0x4018c4 <@Sysutils@TrimRight$qqrx17System@AnsiString> +0x4bc22d: push 0x4bf480 ; " " +0x4bc232: push 0x4bf538 ; " " +0x4bc24a: push 0x4bf480 ; " " +0x4bc24f: push 0x4bf538 ; " " +0x4bc287: call 0x401478 <_System__VarFromLStr> +0x4bc296: call 0x4a7cf0 PAD dl, 1 +0x4bc29b: push dword ptr [ebp - 0x24c4] +0x4bc2b4: call 0x401478 <_System__VarFromLStr> +0x4bc2c3: call 0x4a7cf0 PAD dl, 1 +0x4bc2c8: push dword ptr [ebp - 0x24d8] +0x4bc2ce: push 0x4bf544 ; "02" +0x4bc2de: call 0x4012b8 <_System__LStrCatN> +0x4bc2ef: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4bc2f4: call 0x401100 <_System__WriteLn> +0x4bc2fe: jmp 0x4bc393 +0x4bc316: call 0x401478 <_System__VarFromLStr> +0x4bc328: call 0x4a7b1c <> +0x4bc32d: push dword ptr [ebp - 0x24f0] +0x4bc346: call 0x401478 <_System__VarFromLStr> +0x4bc358: call 0x4a7b1c <> +0x4bc35d: push dword ptr [ebp - 0x2504] +0x4bc363: push 0x4bf544 ; "02" +0x4bc373: call 0x4012b8 <_System__LStrCatN> +0x4bc384: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4bc389: call 0x401100 <_System__WriteLn> +0x4bc3a3: push 0x4bf550 ; "BOQ" +0x4bc3a8: push dword ptr [ebp - 0x1878] +0x4bc3ae: push 0x4bf278 ; ".DBF" +0x4bc3be: call 0x4012b8 <_System__LStrCatN> +0x4bc3d8: call 0x421e2c <> +0x4bc3e7: mov edx, 0x4bf55c ; "SORTCODE" +0x4bc415: mov ecx, 0x4bf570 ; "GongJong.TXT" +0x4bc41d: call 0x4012b0 <_System__LStrCat3> +0x4bc449: mov ecx, 0x4bf588 ; "MainPart.TXT" +0x4bc451: call 0x4012b0 <_System__LStrCat3> +0x4bc47a: push 0x4bc924 +0x4bc500: mov edx, 0x4bf5a0 ; "01" +0x4bc505: call 0x401478 <_System__VarFromLStr> +0x4bc514: call 0x4a7cf0 PAD dl, 1 +0x4bc519: push dword ptr [ebp - 0x2528] +0x4bc536: mov edx, 0x4bf528 ; "PNAME" +0x4bc53b: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4bc54c: call 0x401478 <_System__VarFromLStr> +0x4bc55b: call 0x4a7cf0 PAD dl, 1 +0x4bc560: push dword ptr [ebp - 0x253c] +0x4bc57a: call 0x401440 <_System__VarFromInt> +0x4bc589: call 0x4a7cf0 PAD dl, 0 +0x4bc58e: push dword ptr [ebp - 0x2554] +0x4bc5a3: call 0x401478 <_System__VarFromLStr> +0x4bc5b2: call 0x4a7cf0 PAD dl, 1 +0x4bc5b7: push dword ptr [ebp - 0x2568] +0x4bc5cc: call 0x401478 <_System__VarFromLStr> +0x4bc5db: call 0x4a7cf0 PAD dl, 0 +0x4bc5e0: push dword ptr [ebp - 0x257c] +0x4bc5e6: push 0x4bf450 +0x4bc5eb: push 0x4bf45c +0x4bc5ff: call 0x401450 <@System@@VarFromBool$qqrr14System@Variantxo> +0x4bc611: call 0x4a7cf0 PAD dl, 0 +0x4bc616: push dword ptr [ebp - 0x2590] +0x4bc61c: push 0x4bf45c +0x4bc621: push 0x4bf45c +0x4bc626: push 0x4bf45c +0x4bc62b: push 0x4bf45c +0x4bc63d: push dword ptr [ebp - 0x25a4] +0x4bc64e: call 0x4012b8 <_System__LStrCatN> +0x4bc65f: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4bc664: call 0x401100 <_System__WriteLn> +0x4bc66e: jmp 0x4bc7e4 +0x4bc680: mov edx, 0x4bf5a0 ; "01" +0x4bc685: call 0x401478 <_System__VarFromLStr> +0x4bc697: call 0x4a7b1c <> +0x4bc69c: push dword ptr [ebp - 0x25ac] +0x4bc6b9: mov edx, 0x4bf528 ; "PNAME" +0x4bc6be: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4bc6cf: call 0x401478 <_System__VarFromLStr> +0x4bc6e1: call 0x4a7b1c <> +0x4bc6e6: push dword ptr [ebp - 0x25c0] +0x4bc700: call 0x401440 <_System__VarFromInt> +0x4bc712: call 0x4a7b1c <> +0x4bc717: push dword ptr [ebp - 0x25d8] +0x4bc71d: push 0x4bf450 +0x4bc731: call 0x401478 <_System__VarFromLStr> +0x4bc743: call 0x4a7b1c <> +0x4bc748: push dword ptr [ebp - 0x25ec] +0x4bc74e: push 0x4bf45c +0x4bc75a: mov al, 0x46 +0x4bc775: call 0x401470 <> +0x4bc787: call 0x4a7b1c <> +0x4bc78c: push dword ptr [ebp - 0x2600] +0x4bc792: push 0x4bf45c +0x4bc797: push 0x4bf45c +0x4bc79c: push 0x4bf45c +0x4bc7a1: push 0x4bf45c +0x4bc7b3: push dword ptr [ebp - 0x2618] +0x4bc7c4: call 0x4012b8 <_System__LStrCatN> +0x4bc7d5: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4bc7da: call 0x401100 <_System__WriteLn> +0x4bc7ea: mov edx, 0x4bf5a0 ; "01" +0x4bc7f4: jmp 0x4bc8dc +0x4bc82f: mov edx, 0x4bf5b0 ; "BDCODE1" +0x4bc834: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4bc84e: push dword ptr [ebp - 0x2624] +0x4bc854: push 0x4bf5c0 ; " / " +0x4bc867: push dword ptr [ebp - 0x2628] +0x4bc878: call 0x4012b8 <_System__LStrCatN> +0x4bc886: call 0x422c14 +0x4bc895: call 0x4b6378 <> +0x4bc8a9: jmp 0x4be6a2 +0x4bc8af: call 0x4ad4b4 <> +0x4bc8c3: jmp 0x4be6a2 +0x4bc8fe: push 0x4bc92b +0x4bc924: jmp 0x4011e0 +0x4bc929: jmp 0x4bc903 +0x4bc95f: call 0x401280 <> +0x4bc964: push 0x4bf5cc ; "E" +0x4bc969: push 0x4bf5d8 ; "S" +0x4bc981: push 0x4bf5e4 ; "2C" +0x4bc98d: mov ecx, 0x4bf5f0 ; "PPBIT" +0x4bc992: mov edx, 0x4bf600 ; "CPART" +0x4bc99c: push 0x4bf610 ; "4C" +0x4bc9a8: mov ecx, 0x4bf61c ; "MQBIT" +0x4bc9ad: mov edx, 0x4bf600 ; "CPART" +0x4bc9b7: push 0x4bf62c ; "0C" +0x4bc9c3: mov ecx, 0x4bf638 ; "MABIT" +0x4bc9c8: mov edx, 0x4bf600 ; "CPART" +0x4bc9d2: push 0x4bf62c ; "0C" +0x4bc9de: mov ecx, 0x4bf648 ; "MTBIT" +0x4bc9e3: mov edx, 0x4bf600 ; "CPART" +0x4bc9ed: mov al, 0x31 +0x4bca08: call 0x401470 <> +0x4bca0d: push dword ptr [ebp - 0x2644] +0x4bca13: push dword ptr [ebp - 0x2648] +0x4bca19: push dword ptr [ebp - 0x264c] +0x4bca1f: push dword ptr [ebp - 0x2650] +0x4bca25: mov al, 0x30 +0x4bca40: call 0x401470 <> +0x4bca45: push dword ptr [ebp - 0x2654] +0x4bca4b: push dword ptr [ebp - 0x2658] +0x4bca51: push dword ptr [ebp - 0x265c] +0x4bca57: push dword ptr [ebp - 0x2660] +0x4bca72: call 0x41f828 +0x4bca8a: call 0x401478 <_System__VarFromLStr> +0x4bcaba: mov ecx, 0x4bf658 ; "MCMETHOD" +0x4bcabf: mov edx, 0x4bf600 ; "CPART" +0x4bcac9: push 0x4bf66c ; "6C" +0x4bcad5: mov ecx, 0x4bf678 ; "UQBIT" +0x4bcada: mov edx, 0x4bf600 ; "CPART" +0x4bcb08: call 0x4019cc <@Sysutils@FloatToStr$qqrg> +0x4bcb13: mov edx, 0x4bf688 ; "C" +0x4bcb18: call 0x4012a8 <_System__LStrCat> +0x4bcb2b: mov ecx, 0x4bf694 ; "UABIT" +0x4bcb30: mov edx, 0x4bf600 ; "CPART" +0x4bcb3a: mov al, 0x30 +0x4bcb55: call 0x401470 <> +0x4bcb5a: push dword ptr [ebp - 0x2690] +0x4bcb60: push dword ptr [ebp - 0x2694] +0x4bcb66: push dword ptr [ebp - 0x2698] +0x4bcb6c: push dword ptr [ebp - 0x269c] +0x4bcb72: mov al, 0x32 +0x4bcb8d: call 0x401470 <> +0x4bcb92: push dword ptr [ebp - 0x26a0] +0x4bcb98: push dword ptr [ebp - 0x26a4] +0x4bcb9e: push dword ptr [ebp - 0x26a8] +0x4bcba4: push dword ptr [ebp - 0x26ac] +0x4bcbd3: jmp 0x4bcbd7 +0x4bcbdf: call 0x41f828 +0x4bcbeb: mov al, 0x43 +0x4bcc06: call 0x401470 <> +0x4bcc36: mov ecx, 0x4bf6a4 ; "UTBIT" +0x4bcc3b: mov edx, 0x4bf600 ; "CPART" +0x4bcc45: mov al, 0x31 +0x4bcc60: call 0x401470 <> +0x4bcc65: push dword ptr [ebp - 0x26d4] +0x4bcc6b: push dword ptr [ebp - 0x26d8] +0x4bcc71: push dword ptr [ebp - 0x26dc] +0x4bcc77: push dword ptr [ebp - 0x26e0] +0x4bcc7d: mov al, 0x30 +0x4bcc98: call 0x401470 <> +0x4bcc9d: push dword ptr [ebp - 0x26e4] +0x4bcca3: push dword ptr [ebp - 0x26e8] +0x4bcca9: push dword ptr [ebp - 0x26ec] +0x4bccaf: push dword ptr [ebp - 0x26f0] +0x4bccca: call 0x41f828 +0x4bcce2: call 0x401478 <_System__VarFromLStr> +0x4bcd12: mov ecx, 0x4bf6b4 ; "UCMETHOD" +0x4bcd17: mov edx, 0x4bf600 ; "CPART" +0x4bcd21: push 0x4bf66c ; "6C" +0x4bcd2d: mov ecx, 0x4bf6c8 ; "JQBIT" +0x4bcd32: mov edx, 0x4bf600 ; "CPART" +0x4bcd60: call 0x4019cc <@Sysutils@FloatToStr$qqrg> +0x4bcd6b: mov edx, 0x4bf688 ; "C" +0x4bcd70: call 0x4012a8 <_System__LStrCat> +0x4bcd83: mov ecx, 0x4bf6d8 ; "JABIT" +0x4bcd88: mov edx, 0x4bf600 ; "CPART" +0x4bcd92: mov al, 0x30 +0x4bcdad: call 0x401470 <> +0x4bcdb2: push dword ptr [ebp - 0x271c] +0x4bcdb8: push dword ptr [ebp - 0x2720] +0x4bcdbe: push dword ptr [ebp - 0x2724] +0x4bcdc4: push dword ptr [ebp - 0x2728] +0x4bcdca: mov al, 0x32 +0x4bcde5: call 0x401470 <> +0x4bcdea: push dword ptr [ebp - 0x272c] +0x4bcdf0: push dword ptr [ebp - 0x2730] +0x4bcdf6: push dword ptr [ebp - 0x2734] +0x4bcdfc: push dword ptr [ebp - 0x2738] +0x4bce2b: jmp 0x4bce2f +0x4bce37: call 0x41f828 +0x4bce43: mov al, 0x43 +0x4bce5e: call 0x401470 <> +0x4bce8e: mov ecx, 0x4bf6e8 ; "JTBIT" +0x4bce93: mov edx, 0x4bf600 ; "CPART" +0x4bcea9: mov edx, 0x4bf6f8 ; "0" +0x4bceae: call 0x4012b0 <_System__LStrCat3> +0x4bcec1: mov ecx, 0x4bf704 ; "JCMETHOD" +0x4bcec6: mov edx, 0x4bf600 ; "CPART" +0x4bcef4: call 0x4019cc <@Sysutils@FloatToStr$qqrg> +0x4bceff: mov edx, 0x4bf718 ; "R" +0x4bcf04: call 0x4012a8 <_System__LStrCat> +0x4bcf17: mov ecx, 0x4bf724 ; "DQBIT" +0x4bcf1c: mov edx, 0x4bf600 ; "CPART" +0x4bcf26: push 0x4bf734 ; "11R" +0x4bcf32: mov ecx, 0x4bf740 ; "DRBIT" +0x4bcf37: mov edx, 0x4bf600 ; "CPART" +0x4bcf65: call 0x4019cc <@Sysutils@FloatToStr$qqrg> +0x4bcf70: mov edx, 0x4bf688 ; "C" +0x4bcf75: call 0x4012a8 <_System__LStrCat> +0x4bcf88: mov ecx, 0x4bf750 ; "DABIT" +0x4bcf8d: mov edx, 0x4bf600 ; "CPART" +0x4bcf97: push 0x4bf62c ; "0C" +0x4bcfa3: mov ecx, 0x4bf760 ; "DTBIT" +0x4bcfa8: mov edx, 0x4bf600 ; "CPART" +0x4bcfb2: mov al, 0x31 +0x4bcfcd: call 0x401470 <> +0x4bcfd2: push dword ptr [ebp - 0x276c] +0x4bcfd8: push dword ptr [ebp - 0x2770] +0x4bcfde: push dword ptr [ebp - 0x2774] +0x4bcfe4: push dword ptr [ebp - 0x2778] +0x4bcfea: mov al, 0x30 +0x4bd005: call 0x401470 <> +0x4bd00a: push dword ptr [ebp - 0x277c] +0x4bd010: push dword ptr [ebp - 0x2780] +0x4bd016: push dword ptr [ebp - 0x2784] +0x4bd01c: push dword ptr [ebp - 0x2788] +0x4bd037: call 0x41f828 +0x4bd04f: call 0x401478 <_System__VarFromLStr> +0x4bd07f: mov ecx, 0x4bf770 ; "DCMETHOD" +0x4bd084: mov edx, 0x4bf600 ; "CPART" +0x4bd0a2: call 0x401280 <> +0x4bd0b5: mov ecx, 0x4bf784 ; "BMKNM" +0x4bd0ba: mov edx, 0x4bf794 ; "PPART" +0x4bd0d8: call 0x401280 <> +0x4bd0eb: mov ecx, 0x4bf7a4 ; "SUBNM" +0x4bd0f0: mov edx, 0x4bf794 ; "PPART" +0x4bd103: mov ecx, 0x4bf7b4 ; "FormWidth" +0x4bd108: mov edx, 0x4bf794 ; "PPART" +0x4bd126: call 0x401280 <> +0x4bd139: mov ecx, 0x4bf7c8 ; "JMOK1" +0x4bd13e: mov edx, 0x4bf794 ; "PPART" +0x4bd15c: call 0x401280 <> +0x4bd16f: mov ecx, 0x4bf7d8 ; "JMOK2" +0x4bd174: mov edx, 0x4bf794 ; "PPART" +0x4bd192: call 0x401280 <> +0x4bd1a5: mov ecx, 0x4bf7e8 ; "JMOK3" +0x4bd1aa: mov edx, 0x4bf794 ; "PPART" +0x4bd1c8: call 0x401280 <> +0x4bd1db: mov ecx, 0x4bf7f8 ; "JMOK4" +0x4bd1e0: mov edx, 0x4bf794 ; "PPART" +0x4bd1fe: call 0x401280 <> +0x4bd211: mov ecx, 0x4bf808 ; "JMOK5" +0x4bd216: mov edx, 0x4bf794 ; "PPART" +0x4bd234: call 0x401280 <> +0x4bd247: mov ecx, 0x4bf818 ; "JMOK6" +0x4bd24c: mov edx, 0x4bf794 ; "PPART" +0x4bd26a: call 0x401280 <> +0x4bd27d: mov ecx, 0x4bf828 ; "JMOK10" +0x4bd282: mov edx, 0x4bf794 ; "PPART" +0x4bd2a0: call 0x401280 <> +0x4bd2b3: mov ecx, 0x4bf838 ; "JMOK20" +0x4bd2b8: mov edx, 0x4bf794 ; "PPART" +0x4bd2d6: call 0x401280 <> +0x4bd2e9: mov ecx, 0x4bf848 ; "JMOK30" +0x4bd2ee: mov edx, 0x4bf794 ; "PPART" diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_Start8xIni_7x_0x48e07c.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_Start8xIni_7x_0x48e07c.txt new file mode 100644 index 000000000..62516484b --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_Start8xIni_7x_0x48e07c.txt @@ -0,0 +1,62 @@ +0x48e7cf SRC ReadSection mov eax, dword ptr [0x6042a0] | call @System@TObject@ | mov dword ptr [ebp - 0x14], eax | mov ecx, dword ptr [ebp - 0x14] | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e84f SRC ReadStr push 0x48fce4="A->" | lea eax, [ebp - 0xb4] | push eax | mov ecx, 0x48f6dc="ARENM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e88c DST WriteInt lea eax, [ebp - 0x90] | call @System@@VarToInt | push eax | mov ecx, 0x48f6dc="ARENM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x18] +0x48e8aa SRC ReadStr push 0x48f6fc="MLST" | lea eax, [ebp - 0xb8] | push eax | mov ecx, 0x48f70c="BMKNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e8e0 SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xbc] | push eax | mov ecx, 0x48f71c="ACDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e916 SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xc0] | push eax | mov ecx, 0x48f71c="ACDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e94c SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xc4] | push eax | mov ecx, 0x48f73c="KCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e982 SRC ReadStr push 0x48fcfc="2" | lea eax, [ebp - 0xc8] | push eax | mov ecx, 0x48f76c="ZCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e9b8 SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xcc] | push eax | mov ecx, 0x48f77c="CHGNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48e9ee SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xd0] | push eax | mov ecx, 0x48f77c="CHGNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ea24 SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xd4] | push eax | mov ecx, 0x48f79c="CHNNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ea5a SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0xd8] | push eax | mov ecx, 0x48f7bc="BCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ea90 SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0xdc] | push eax | mov ecx, 0x48f7cc="DCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48eac6 SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0xe0] | push eax | mov ecx, 0x48f7dc="ICDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48eafc SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xe4] | push eax | mov ecx, 0x48f7ec="LCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48eb32 SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0xe8] | push eax | mov ecx, 0x48f7fc="MCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48eb68 SRC ReadStr push 0x48fd08="10" | lea eax, [ebp - 0xec] | push eax | mov ecx, 0x48f80c="PCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ebb5 SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0xf0] | push eax | mov ecx, 0x48f82c="SCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ebeb SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0xf4] | push eax | mov ecx, 0x48f83c="WCDNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ec35 SRC ReadStr push 0 | lea eax, [ebp - 0xf8] | push eax | mov ecx, 0x48f874="SUBNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ec6b SRC ReadStr push 0x48f8a0="4" | lea eax, [ebp - 0xfc] | push eax | mov ecx, 0x48f890="LMGNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48eca1 SRC ReadStr push 0x48f884="5" | lea eax, [ebp - 0x100] | push eax | mov ecx, 0x48f8ac="MKRNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ecd7 SRC ReadStr push 0x48f8bc="6" | lea eax, [ebp - 0x104] | push eax | mov ecx, 0x48f8c8="TMGNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ed0d SRC ReadStr push 0x48fa60="123456" | lea eax, [ebp - 0x108] | push eax | mov ecx, 0x48fa70="JEMNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ed43 SRC ReadStr push 0x48f8d8="가격 정보" | lea eax, [ebp - 0x10c] | push eax | mov ecx, 0x48f8ec="JMOK1" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ed79 SRC ReadStr push 0x48f8fc="물가 자료" | lea eax, [ebp - 0x110] | push eax | mov ecx, 0x48f910="JMOK2" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48edaf SRC ReadStr push 0x48f968="유통 물가" | lea eax, [ebp - 0x114] | push eax | mov ecx, 0x48f934="JMOK3" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ede5 SRC ReadStr push 0x48fd14="견적단가1" | lea eax, [ebp - 0x118] | push eax | mov ecx, 0x48f958="JMOK4" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ee1b SRC ReadStr push 0x48fd28="견적단가2" | lea eax, [ebp - 0x11c] | push eax | mov ecx, 0x48f97c="JMOK5" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ee51 SRC ReadStr push 0x48f98c="적용 단가" | lea eax, [ebp - 0x120] | push eax | mov ecx, 0x48f9a0="JMOK6" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ee87 SRC ReadStr push 0x48f9b0="가.정" | lea eax, [ebp - 0x124] | push eax | mov ecx, 0x48f9c0="JMK10" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48eebd SRC ReadStr push 0x48f9d0="물.자" | lea eax, [ebp - 0x128] | push eax | mov ecx, 0x48f9e0="JMK20" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48eef3 SRC ReadStr push 0x48fa30="유.물" | lea eax, [ebp - 0x12c] | push eax | mov ecx, 0x48fa00="JMK30" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ef29 SRC ReadStr push 0x48fd3c="견적 1" | lea eax, [ebp - 0x130] | push eax | mov ecx, 0x48fa20="JMK40" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ef5f SRC ReadStr push 0x48fd4c="견적 2" | lea eax, [ebp - 0x134] | push eax | mov ecx, 0x48fa40="JMK50" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48ef95 SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0x138] | push eax | mov ecx, 0x48fa50="JUKNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48efc8 SRC ReadStr push 0 | lea eax, [ebp - 0x13c] | push eax | mov ecx, 0x48fa80="ORDNM" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x10] +0x48effe SRC ReadStr push 0x48faa0="굴림체" | lea eax, [ebp - 0x140] | push eax | mov ecx, 0x48fd5c="CBFONT" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x10] +0x48f04b SRC ReadStr push 0x48fae0="clRed" | lea eax, [ebp - 0x144] | push eax | mov ecx, 0x48fd6c="ColDan" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x10] +0x48f081 SRC ReadStr push 0x48fac0="clBlack" | lea eax, [ebp - 0x148] | push eax | mov ecx, 0x48fd7c="ColByn" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x10] +0x48f0b7 SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0x14c] | push eax | mov ecx, 0x48fd8c="FOMNM" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x10] +0x48f0ed SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0x150] | push eax | mov ecx, 0x48fd9c="LANNM" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x10] +0x48f119 DST WriteBool call dword ptr [ebx + 4] | push 1 | mov ecx, 0x48fb3c="SAN_AMT" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x18] +0x48f12d DST WriteInt push 3 | mov ecx, 0x48fb4c="FLT_JAB" | mov edx, 0x48fa90="PRINT" | mov eax, dword ptr [ebp - 0x18] +0x48f14b SRC ReadStr push 0x48fdac="1/8 * 16/12 * 25/20" | lea eax, [ebp - 0x154] | push eax | mov ecx, 0x48fb5c="RXXNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f18f SRC ReadStr push 0 | lea eax, [ebp - 0x158] | push eax | mov ecx, 0x48fb80="RXTNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f1c5 SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x15c] | push eax | mov ecx, 0x48fdd8="EX1NM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f1fb SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x160] | push eax | mov ecx, 0x48fde8="EX2NM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f231 SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x164] | push eax | mov ecx, 0x48fdf8="EXCNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f267 SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x168] | push eax | mov ecx, 0x48fe08="EX0NM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f29d SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x16c] | push eax | mov ecx, 0x48fdd8="EX1NM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f2d3 SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x170] | push eax | mov ecx, 0x48fdd8="EX1NM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f309 SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x174] | push eax | mov ecx, 0x48fdd8="EX1NM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f33f SRC ReadStr push 0x48fdc8="1000" | lea eax, [ebp - 0x178] | push eax | mov ecx, 0x48fdd8="EX1NM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f3be SRC ReadStr push 0x48fcf0="1" | lea eax, [ebp - 0x17c] | push eax | mov ecx, 0x48fc60="PMODE" | mov edx, 0x48fc50="PROJECT" | mov eax, dword ptr [ebp - 0x10] +0x48f3f4 SRC ReadStr push 0x48fe18="프로젝트명" | lea eax, [ebp - 0x180] | push eax | mov ecx, 0x48fc70="PNAME" | mov edx, 0x48fc50="PROJECT" | mov eax, dword ptr [ebp - 0x10] +0x48f44f SRC ReadStr push 0x48fe3c="90.000" | lea eax, [ebp - 0x184] | push eax | mov ecx, 0x48fe2c="NAGNM" | mov edx, 0x48f6ec="START" | mov eax, dword ptr [ebp - 0x10] +0x48f47f SRC ReadSection mov eax, dword ptr [ebp - 0x14] | mov edx, dword ptr [eax] | call dword ptr [edx + 0x44] | mov ecx, dword ptr [ebp - 0x14] | mov edx, 0x48fc50="PROJECT" | mov eax, dword ptr [ebp - 0x10] +0x48f4ae SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0x188] | push eax | mov ecx, 0x48fe5c="PMHAL" | mov edx, 0x48fc50="PROJECT" | mov eax, dword ptr [ebp - 0x10] +0x48f4f5 SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0x18c] | push eax | mov ecx, 0x48fe6c="EQ_L" | mov edx, 0x48fc50="PROJECT" | mov eax, dword ptr [ebp - 0x10] +0x48f53c SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0x190] | push eax | mov ecx, 0x48fe7c="EQ_M" | mov edx, 0x48fc50="PROJECT" | mov eax, dword ptr [ebp - 0x10] +0x48f583 SRC ReadStr push 0x48fb10="0" | lea eax, [ebp - 0x194] | push eax | mov ecx, 0x48fe8c="EQ_S" | mov edx, 0x48fc50="PROJECT" | mov eax, dword ptr [ebp - 0x10] diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_코드줄_0x4b0904_요약.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_코드줄_0x4b0904_요약.txt new file mode 100644 index 000000000..b0b0d6af6 --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/ST_U_Convert_코드줄_0x4b0904_요약.txt @@ -0,0 +1,991 @@ +0x4b0fac: jmp dword ptr [eax*4 + 0x4b0fb3] +0x4b0ff2: call 0x4a7cf0 PAD dl, 1 +0x4b0ff7: push dword ptr [ebp - 0xc8] +0x4b100a: lea edx, [ebx + 0x99] +0x4b1010: call 0x401470 <> +0x4b101f: call 0x4a7cf0 PAD dl, 1 +0x4b1024: push dword ptr [ebp - 0xdc] +0x4b1037: lea edx, [ebx + 0xff] +0x4b103d: call 0x401470 <> +0x4b104c: call 0x4a7cf0 PAD dl, 1 +0x4b1051: push dword ptr [ebp - 0xf0] +0x4b1064: lea edx, [ebx + 0x179] +0x4b106a: call 0x401470 <> +0x4b1079: call 0x4a7cf0 PAD dl, 1 +0x4b107e: push dword ptr [ebp - 0x104] +0x4b1094: fld qword ptr [ebx + eax*8 + 0x190] +0x4b10a1: call 0x401458 <_System__VarFromReal> +0x4b10b0: call 0x4a7cf0 PAD dl, 1 +0x4b10b5: push dword ptr [ebp - 0x118] +0x4b10c8: lea edx, [ebx + 0x7b] +0x4b10cb: call 0x401470 <> +0x4b10da: call 0x4a7cf0 PAD dl, 0 +0x4b10df: push dword ptr [ebp - 0x12c] +0x4b10f4: call 0x401478 <_System__VarFromLStr> +0x4b1103: call 0x4a7cf0 PAD dl, 1 +0x4b1108: push dword ptr [ebp - 0x140] +0x4b111d: call 0x401478 <_System__VarFromLStr> +0x4b112c: call 0x4a7cf0 PAD dl, 0 +0x4b1131: push dword ptr [ebp - 0x154] +0x4b1137: push 0x4b5f94 +0x4b1149: lea edx, [ebx + 0x188] +0x4b114f: call 0x401470 <> +0x4b115e: call 0x4a7cf0 PAD dl, 0 +0x4b1163: push dword ptr [ebp - 0x168] +0x4b1169: push 0x4b5fa0 +0x4b1175: mov edx, 0x4b5fac ; "UC" +0x4b117d: call 0x40311c <@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString> +0x4b1191: call 0x401450 <@System@@VarFromBool$qqrr14System@Variantxo> +0x4b11a3: call 0x4a7cf0 PAD dl, 0 +0x4b11a8: push dword ptr [ebp - 0x17c] +0x4b11ae: push 0x4b5fa0 +0x4b11cd: mov edx, 0x4b5fb8 ; "AMT_1" +0x4b11d2: call 0x4012b0 <_System__LStrCat3> +0x4b11e0: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b11eb: call 0x401458 <_System__VarFromReal> +0x4b11fa: call 0x4a7cf0 PAD dl, 0 +0x4b11ff: push dword ptr [ebp - 0x190] +0x4b1205: push 0x4b5fa0 +0x4b1224: mov edx, 0x4b5fc8 ; "AMT_2" +0x4b1229: call 0x4012b0 <_System__LStrCat3> +0x4b1237: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1242: call 0x401458 <_System__VarFromReal> +0x4b1251: call 0x4a7cf0 PAD dl, 0 +0x4b1256: push dword ptr [ebp - 0x1a8] +0x4b125c: push 0x4b5fa0 +0x4b127b: mov edx, 0x4b5fd8 ; "AMT_3" +0x4b1280: call 0x4012b0 <_System__LStrCat3> +0x4b128e: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1299: call 0x401458 <_System__VarFromReal> +0x4b12a8: call 0x4a7cf0 PAD dl, 0 +0x4b12ad: push dword ptr [ebp - 0x1c0] +0x4b12b3: push 0x4b5fa0 +0x4b12d2: mov edx, 0x4b5fe8 ; "AMT_4" +0x4b12d7: call 0x4012b0 <_System__LStrCat3> +0x4b12e5: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b12f0: call 0x401458 <_System__VarFromReal> +0x4b12ff: call 0x4a7cf0 PAD dl, 0 +0x4b1304: push dword ptr [ebp - 0x1d8] +0x4b130a: push 0x4b5fa0 +0x4b1329: mov edx, 0x4b5ff8 ; "AMT_5" +0x4b132e: call 0x4012b0 <_System__LStrCat3> +0x4b133c: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1347: call 0x401458 <_System__VarFromReal> +0x4b1356: call 0x4a7cf0 PAD dl, 0 +0x4b135b: push dword ptr [ebp - 0x1f0] +0x4b1361: push 0x4b5fa0 +0x4b1366: push dword ptr [ebp - 0x1c] +0x4b1374: call 0x4012b8 <_System__LStrCatN> +0x4b1390: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4b1395: call 0x401100 <_System__WriteLn> +0x4b139f: jmp 0x4b4f2f +0x4b13b1: lea edx, [ebx + 0x68] +0x4b13b4: call 0x401470 <> +0x4b13c3: call 0x4a7cf0 PAD dl, 1 +0x4b13c8: push dword ptr [ebp - 0x20c] +0x4b13db: lea edx, [ebx + 0x99] +0x4b13e1: call 0x401470 <> +0x4b13f0: call 0x4a7cf0 PAD dl, 1 +0x4b13f5: push dword ptr [ebp - 0x220] +0x4b1408: lea edx, [ebx + 0xff] +0x4b140e: call 0x401470 <> +0x4b141d: call 0x4a7cf0 PAD dl, 1 +0x4b1422: push dword ptr [ebp - 0x234] +0x4b1435: lea edx, [ebx + 0x179] +0x4b143b: call 0x401470 <> +0x4b144a: call 0x4a7cf0 PAD dl, 1 +0x4b144f: push dword ptr [ebp - 0x248] +0x4b1465: fld qword ptr [ebx + eax*8 + 0x198] +0x4b1472: call 0x401458 <_System__VarFromReal> +0x4b1481: call 0x4a7cf0 PAD dl, 1 +0x4b1486: push dword ptr [ebp - 0x25c] +0x4b1499: lea edx, [ebx + 0x7b] +0x4b149c: call 0x401470 <> +0x4b14ab: call 0x4a7cf0 PAD dl, 0 +0x4b14b0: push dword ptr [ebp - 0x270] +0x4b14c5: call 0x401478 <_System__VarFromLStr> +0x4b14d4: call 0x4a7cf0 PAD dl, 1 +0x4b14d9: push dword ptr [ebp - 0x284] +0x4b14f9: mov edx, 0x4b5fb8 ; "AMT_1" +0x4b14fe: call 0x4012b0 <_System__LStrCat3> +0x4b150c: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1517: call 0x401458 <_System__VarFromReal> +0x4b1526: call 0x4a7cf0 PAD dl, 1 +0x4b152b: push dword ptr [ebp - 0x298] +0x4b154b: mov edx, 0x4b6008 ; "PG_1" +0x4b1550: call 0x4012b0 <_System__LStrCat3> +0x4b1564: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1575: call 0x401478 <_System__VarFromLStr> +0x4b1584: call 0x4a7cf0 PAD dl, 1 +0x4b1589: push dword ptr [ebp - 0x2b0] +0x4b15a9: mov edx, 0x4b5fc8 ; "AMT_2" +0x4b15ae: call 0x4012b0 <_System__LStrCat3> +0x4b15bc: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b15c7: call 0x401458 <_System__VarFromReal> +0x4b15d6: call 0x4a7cf0 PAD dl, 1 +0x4b15db: push dword ptr [ebp - 0x2cc] +0x4b15fb: mov edx, 0x4b6018 ; "PG_2" +0x4b1600: call 0x4012b0 <_System__LStrCat3> +0x4b1614: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1625: call 0x401478 <_System__VarFromLStr> +0x4b1634: call 0x4a7cf0 PAD dl, 1 +0x4b1639: push dword ptr [ebp - 0x2e4] +0x4b1659: mov edx, 0x4b5fd8 ; "AMT_3" +0x4b165e: call 0x4012b0 <_System__LStrCat3> +0x4b166c: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1677: call 0x401458 <_System__VarFromReal> +0x4b1686: call 0x4a7cf0 PAD dl, 1 +0x4b168b: push dword ptr [ebp - 0x300] +0x4b16ab: mov edx, 0x4b6028 ; "PG_3" +0x4b16b0: call 0x4012b0 <_System__LStrCat3> +0x4b16c4: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b16d5: call 0x401478 <_System__VarFromLStr> +0x4b16e4: call 0x4a7cf0 PAD dl, 1 +0x4b16e9: push dword ptr [ebp - 0x318] +0x4b1709: mov edx, 0x4b5fe8 ; "AMT_4" +0x4b170e: call 0x4012b0 <_System__LStrCat3> +0x4b171c: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1727: call 0x401458 <_System__VarFromReal> +0x4b1736: call 0x4a7cf0 PAD dl, 1 +0x4b173b: push dword ptr [ebp - 0x334] +0x4b175b: mov edx, 0x4b6038 ; "PG_4" +0x4b1760: call 0x4012b0 <_System__LStrCat3> +0x4b1774: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1785: call 0x401478 <_System__VarFromLStr> +0x4b1794: call 0x4a7cf0 PAD dl, 1 +0x4b1799: push dword ptr [ebp - 0x34c] +0x4b17b9: mov edx, 0x4b5ff8 ; "AMT_5" +0x4b17be: call 0x4012b0 <_System__LStrCat3> +0x4b17cc: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b17d7: call 0x401458 <_System__VarFromReal> +0x4b17e6: call 0x4a7cf0 PAD dl, 1 +0x4b17eb: push dword ptr [ebp - 0x368] +0x4b180b: mov edx, 0x4b6048 ; "PG_5" +0x4b1810: call 0x4012b0 <_System__LStrCat3> +0x4b1824: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1835: call 0x401478 <_System__VarFromLStr> +0x4b1844: call 0x4a7cf0 PAD dl, 1 +0x4b1849: push dword ptr [ebp - 0x380] +0x4b185e: call 0x401478 <_System__VarFromLStr> +0x4b186d: call 0x4a7cf0 PAD dl, 1 +0x4b1872: push dword ptr [ebp - 0x39c] +0x4b1887: call 0x401478 <_System__VarFromLStr> +0x4b1896: call 0x4a7cf0 PAD dl, 1 +0x4b189b: push dword ptr [ebp - 0x3b0] +0x4b18b0: call 0x401478 <_System__VarFromLStr> +0x4b18bf: call 0x4a7cf0 PAD dl, 0 +0x4b18c4: push dword ptr [ebp - 0x3c4] +0x4b18ca: push 0x4b5f94 +0x4b18dc: lea edx, [ebx + 0x188] +0x4b18e2: call 0x401470 <> +0x4b18f1: call 0x4a7cf0 PAD dl, 0 +0x4b18f6: push dword ptr [ebp - 0x3d8] +0x4b18fc: push 0x4b5fa0 +0x4b1908: mov edx, 0x4b5fac ; "UC" +0x4b1910: call 0x40311c <@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString> +0x4b1924: call 0x401450 <@System@@VarFromBool$qqrr14System@Variantxo> +0x4b1936: call 0x4a7cf0 PAD dl, 0 +0x4b193b: push dword ptr [ebp - 0x3ec] +0x4b1941: push 0x4b5fa0 +0x4b1960: mov edx, 0x4b5fb8 ; "AMT_1" +0x4b1965: call 0x4012b0 <_System__LStrCat3> +0x4b1973: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b197e: call 0x401458 <_System__VarFromReal> +0x4b198d: call 0x4a7cf0 PAD dl, 0 +0x4b1992: push dword ptr [ebp - 0x400] +0x4b1998: push 0x4b5fa0 +0x4b19b7: mov edx, 0x4b5fc8 ; "AMT_2" +0x4b19bc: call 0x4012b0 <_System__LStrCat3> +0x4b19ca: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b19d5: call 0x401458 <_System__VarFromReal> +0x4b19e4: call 0x4a7cf0 PAD dl, 0 +0x4b19e9: push dword ptr [ebp - 0x418] +0x4b19ef: push 0x4b5fa0 +0x4b1a0e: mov edx, 0x4b5fd8 ; "AMT_3" +0x4b1a13: call 0x4012b0 <_System__LStrCat3> +0x4b1a21: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1a2c: call 0x401458 <_System__VarFromReal> +0x4b1a3b: call 0x4a7cf0 PAD dl, 0 +0x4b1a40: push dword ptr [ebp - 0x430] +0x4b1a46: push 0x4b5fa0 +0x4b1a65: mov edx, 0x4b5fe8 ; "AMT_4" +0x4b1a6a: call 0x4012b0 <_System__LStrCat3> +0x4b1a78: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1a83: call 0x401458 <_System__VarFromReal> +0x4b1a92: call 0x4a7cf0 PAD dl, 0 +0x4b1a97: push dword ptr [ebp - 0x448] +0x4b1a9d: push 0x4b5fa0 +0x4b1abc: mov edx, 0x4b5ff8 ; "AMT_5" +0x4b1ac1: call 0x4012b0 <_System__LStrCat3> +0x4b1acf: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b1ada: call 0x401458 <_System__VarFromReal> +0x4b1ae9: call 0x4a7cf0 PAD dl, 0 +0x4b1aee: push dword ptr [ebp - 0x460] +0x4b1af4: push 0x4b5fa0 +0x4b1b13: mov edx, 0x4b6008 ; "PG_1" +0x4b1b18: call 0x4012b0 <_System__LStrCat3> +0x4b1b2c: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1b3d: call 0x401478 <_System__VarFromLStr> +0x4b1b4c: call 0x4a7cf0 PAD dl, 0 +0x4b1b51: push dword ptr [ebp - 0x478] +0x4b1b57: push 0x4b5fa0 +0x4b1b76: mov edx, 0x4b6018 ; "PG_2" +0x4b1b7b: call 0x4012b0 <_System__LStrCat3> +0x4b1b8f: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1ba0: call 0x401478 <_System__VarFromLStr> +0x4b1baf: call 0x4a7cf0 PAD dl, 0 +0x4b1bb4: push dword ptr [ebp - 0x494] +0x4b1bba: push 0x4b5fa0 +0x4b1bd9: mov edx, 0x4b6028 ; "PG_3" +0x4b1bde: call 0x4012b0 <_System__LStrCat3> +0x4b1bf2: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1c03: call 0x401478 <_System__VarFromLStr> +0x4b1c12: call 0x4a7cf0 PAD dl, 0 +0x4b1c17: push dword ptr [ebp - 0x4b0] +0x4b1c1d: push 0x4b5fa0 +0x4b1c3c: mov edx, 0x4b6038 ; "PG_4" +0x4b1c41: call 0x4012b0 <_System__LStrCat3> +0x4b1c55: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1c66: call 0x401478 <_System__VarFromLStr> +0x4b1c75: call 0x4a7cf0 PAD dl, 0 +0x4b1c7a: push dword ptr [ebp - 0x4cc] +0x4b1c80: push 0x4b5fa0 +0x4b1c9f: mov edx, 0x4b6048 ; "PG_5" +0x4b1ca4: call 0x4012b0 <_System__LStrCat3> +0x4b1cb8: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1cc9: call 0x401478 <_System__VarFromLStr> +0x4b1cd8: call 0x4a7cf0 PAD dl, 0 +0x4b1cdd: push dword ptr [ebp - 0x4e8] +0x4b1ce3: push 0x4b5fa0 +0x4b1cf5: mov edx, 0x4b6058 ; "PG_J" +0x4b1cfd: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1d0e: call 0x401478 <_System__VarFromLStr> +0x4b1d1d: call 0x4a7cf0 PAD dl, 0 +0x4b1d22: push dword ptr [ebp - 0x504] +0x4b1d28: push 0x4b5fa0 +0x4b1d47: mov edx, 0x4b6068 ; "PG_" +0x4b1d4c: call 0x4012b0 <_System__LStrCat3> +0x4b1d60: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b1d71: call 0x401478 <_System__VarFromLStr> +0x4b1d80: call 0x4a7cf0 PAD dl, 0 +0x4b1d85: push dword ptr [ebp - 0x51c] +0x4b1d8b: push 0x4b5fa0 +0x4b1d90: push dword ptr [ebp - 0x1c] +0x4b1d9e: call 0x4012b8 <_System__LStrCatN> +0x4b1dba: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4b1dbf: call 0x401100 <_System__WriteLn> +0x4b1dc9: jmp 0x4b4f2f +0x4b1ddb: lea edx, [ebx + 0x68] +0x4b1dde: call 0x401470 <> +0x4b1ded: call 0x4a7cf0 PAD dl, 1 +0x4b1df2: push dword ptr [ebp - 0x53c] +0x4b1e05: lea edx, [ebx + 0x99] +0x4b1e0b: call 0x401470 <> +0x4b1e1a: call 0x4a7cf0 PAD dl, 1 +0x4b1e1f: push dword ptr [ebp - 0x550] +0x4b1e32: lea edx, [ebx + 0xff] +0x4b1e38: call 0x401470 <> +0x4b1e47: call 0x4a7cf0 PAD dl, 1 +0x4b1e4c: push dword ptr [ebp - 0x564] +0x4b1e5f: lea edx, [ebx + 0x179] +0x4b1e65: call 0x401470 <> +0x4b1e74: call 0x4a7cf0 PAD dl, 1 +0x4b1e79: push dword ptr [ebp - 0x578] +0x4b1e86: mov al, 0x30 +0x4b1ea1: call 0x401470 <> +0x4b1eb0: call 0x4a7cf0 PAD dl, 1 +0x4b1eb5: push dword ptr [ebp - 0x58c] +0x4b1ec2: mov al, 0x30 +0x4b1edd: call 0x401470 <> +0x4b1eec: call 0x4a7cf0 PAD dl, 1 +0x4b1ef1: push dword ptr [ebp - 0x5a4] +0x4b1f07: fld qword ptr [ebx + eax*8 + 0x1a0] +0x4b1f14: call 0x401458 <_System__VarFromReal> +0x4b1f23: call 0x4a7cf0 PAD dl, 1 +0x4b1f28: push dword ptr [ebp - 0x5b8] +0x4b1f3b: lea edx, [ebx + 0x7b] +0x4b1f3e: call 0x401470 <> +0x4b1f4d: call 0x4a7cf0 PAD dl, 0 +0x4b1f52: push dword ptr [ebp - 0x5cc] +0x4b1f67: call 0x401478 <_System__VarFromLStr> +0x4b1f76: call 0x4a7cf0 PAD dl, 1 +0x4b1f7b: push dword ptr [ebp - 0x5e0] +0x4b1f90: call 0x401478 <_System__VarFromLStr> +0x4b1f9f: call 0x4a7cf0 PAD dl, 0 +0x4b1fa4: push dword ptr [ebp - 0x5f4] +0x4b1faa: push 0x4b5f94 +0x4b1fbc: lea edx, [ebx + 0x188] +0x4b1fc2: call 0x401470 <> +0x4b1fd1: call 0x4a7cf0 PAD dl, 0 +0x4b1fd6: push dword ptr [ebp - 0x608] +0x4b1fdc: push 0x4b5fa0 +0x4b1fe8: mov edx, 0x4b5fac ; "UC" +0x4b1ff0: call 0x40311c <@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString> +0x4b2004: call 0x401450 <@System@@VarFromBool$qqrr14System@Variantxo> +0x4b2016: call 0x4a7cf0 PAD dl, 0 +0x4b201b: push dword ptr [ebp - 0x61c] +0x4b2021: push 0x4b5fa0 +0x4b2026: push dword ptr [ebp - 0x1c] +0x4b2034: call 0x4012b8 <_System__LStrCatN> +0x4b2050: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4b2055: call 0x401100 <_System__WriteLn> +0x4b205f: jmp 0x4b4f2f +0x4b2071: lea edx, [ebx + 0x68] +0x4b2074: call 0x401470 <> +0x4b2083: call 0x4a7cf0 PAD dl, 1 +0x4b2088: push dword ptr [ebp - 0x644] +0x4b209b: lea edx, [ebx + 0x99] +0x4b20a1: call 0x401470 <> +0x4b20b0: call 0x4a7cf0 PAD dl, 1 +0x4b20b5: push dword ptr [ebp - 0x658] +0x4b20c8: lea edx, [ebx + 0xff] +0x4b20ce: call 0x401470 <> +0x4b20dd: call 0x4a7cf0 PAD dl, 1 +0x4b20e2: push dword ptr [ebp - 0x66c] +0x4b20f5: lea edx, [ebx + 0x179] +0x4b20fb: call 0x401470 <> +0x4b210a: call 0x4a7cf0 PAD dl, 1 +0x4b210f: push dword ptr [ebp - 0x680] +0x4b2125: fld qword ptr [ebx + eax*8 + 0x198] +0x4b2132: call 0x401458 <_System__VarFromReal> +0x4b2141: call 0x4a7cf0 PAD dl, 1 +0x4b2146: push dword ptr [ebp - 0x694] +0x4b215c: fld qword ptr [ebx + eax*8 + 0x190] +0x4b2169: call 0x401458 <_System__VarFromReal> +0x4b2178: call 0x4a7cf0 PAD dl, 1 +0x4b217d: push dword ptr [ebp - 0x6a8] +0x4b2193: fld qword ptr [ebx + eax*8 + 0x1a0] +0x4b21a0: call 0x401458 <_System__VarFromReal> +0x4b21af: call 0x4a7cf0 PAD dl, 1 +0x4b21b4: push dword ptr [ebp - 0x6bc] +0x4b21c7: lea edx, [ebx + 0x7b] +0x4b21ca: call 0x401470 <> +0x4b21d9: call 0x4a7cf0 PAD dl, 0 +0x4b21de: push dword ptr [ebp - 0x6d0] +0x4b21f3: call 0x401478 <_System__VarFromLStr> +0x4b2202: call 0x4a7cf0 PAD dl, 1 +0x4b2207: push dword ptr [ebp - 0x6e4] +0x4b221c: call 0x401478 <_System__VarFromLStr> +0x4b222b: call 0x4a7cf0 PAD dl, 0 +0x4b2230: push dword ptr [ebp - 0x6f8] +0x4b2236: push 0x4b5f94 +0x4b2248: lea edx, [ebx + 0x188] +0x4b224e: call 0x401470 <> +0x4b225d: call 0x4a7cf0 PAD dl, 0 +0x4b2262: push dword ptr [ebp - 0x70c] +0x4b2268: push 0x4b5fa0 +0x4b2274: mov edx, 0x4b5fac ; "UC" +0x4b227c: call 0x40311c <@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString> +0x4b2290: call 0x401450 <@System@@VarFromBool$qqrr14System@Variantxo> +0x4b22a2: call 0x4a7cf0 PAD dl, 0 +0x4b22a7: push dword ptr [ebp - 0x720] +0x4b22b8: call 0x4012b8 <_System__LStrCatN> +0x4b22c9: call 0x401478 <_System__VarFromLStr> +0x4b22d5: push 0x4b5fa0 +0x4b22e7: lea edx, [ebx + 0x6f] +0x4b22ea: call 0x401470 <> +0x4b22f9: call 0x4a7cf0 PAD dl, 0 +0x4b22fe: push dword ptr [ebp - 0x758] +0x4b2304: push 0x4b5fa0 +0x4b231f: call 0x401440 <_System__VarFromInt> +0x4b232e: call 0x4a7cf0 PAD dl, 0 +0x4b2333: push dword ptr [ebp - 0x76c] +0x4b2344: call 0x4012b8 <_System__LStrCatN> +0x4b2355: call 0x401478 <_System__VarFromLStr> +0x4b235a: push dword ptr [ebp - 0x744] +0x4b2360: push dword ptr [ebp - 0x748] +0x4b2366: push dword ptr [ebp - 0x74c] +0x4b236c: push dword ptr [ebp - 0x750] +0x4b237a: call 0x401478 <_System__VarFromLStr> +0x4b237f: push dword ptr [ebp - 0x780] +0x4b2385: push dword ptr [ebp - 0x784] +0x4b238b: push dword ptr [ebp - 0x788] +0x4b2391: push dword ptr [ebp - 0x78c] +0x4b23aa: call 0x41f828 +0x4b23d6: push dword ptr [ebp - 0x1c] +0x4b23d9: push 0x4b5fa0 +0x4b23f8: mov edx, 0x4b6074 ; "BAMT" +0x4b23fd: call 0x4012b0 <_System__LStrCat3> +0x4b2411: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b2422: call 0x401478 <_System__VarFromLStr> +0x4b2431: call 0x4a7cf0 PAD dl, 0 +0x4b2436: push dword ptr [ebp - 0x790] +0x4b243c: push 0x4b5fa0 +0x4b245b: mov edx, 0x4b6084 ; "CAMT" +0x4b2460: call 0x4012b0 <_System__LStrCat3> +0x4b2474: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b2485: call 0x401478 <_System__VarFromLStr> +0x4b2494: call 0x4a7cf0 PAD dl, 0 +0x4b2499: push dword ptr [ebp - 0x7ac] +0x4b249f: push 0x4b5fa0 +0x4b24be: mov edx, 0x4b6094 ; "DAMT" +0x4b24c3: call 0x4012b0 <_System__LStrCat3> +0x4b24d7: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b24e8: call 0x401478 <_System__VarFromLStr> +0x4b24f7: call 0x4a7cf0 PAD dl, 0 +0x4b24fc: push dword ptr [ebp - 0x7c8] +0x4b2502: push 0x4b5fa0 +0x4b2521: mov edx, 0x4b60a4 ; "EAMT" +0x4b2526: call 0x4012b0 <_System__LStrCat3> +0x4b253a: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b254b: call 0x401478 <_System__VarFromLStr> +0x4b255a: call 0x4a7cf0 PAD dl, 0 +0x4b255f: push dword ptr [ebp - 0x7e4] +0x4b2565: push 0x4b5fa0 +0x4b2584: mov edx, 0x4b60b4 ; "FAMT" +0x4b2589: call 0x4012b0 <_System__LStrCat3> +0x4b259d: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b25ae: call 0x401478 <_System__VarFromLStr> +0x4b25bd: call 0x4a7cf0 PAD dl, 0 +0x4b25c2: push dword ptr [ebp - 0x800] +0x4b25c8: push 0x4b5fa0 +0x4b25e7: mov edx, 0x4b60c4 ; "KAMT" +0x4b25ec: call 0x4012b0 <_System__LStrCat3> +0x4b2600: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b2611: call 0x401478 <_System__VarFromLStr> +0x4b2620: call 0x4a7cf0 PAD dl, 0 +0x4b2625: push dword ptr [ebp - 0x81c] +0x4b262b: push 0x4b5fa0 +0x4b264a: mov edx, 0x4b60d4 ; "ZAMT" +0x4b264f: call 0x4012b0 <_System__LStrCat3> +0x4b2663: call 0x40312c <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x4b2674: call 0x401478 <_System__VarFromLStr> +0x4b2683: call 0x4a7cf0 PAD dl, 0 +0x4b2688: push dword ptr [ebp - 0x838] +0x4b2696: call 0x4012b8 <_System__LStrCatN> +0x4b26af: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4b26b4: call 0x401100 <_System__WriteLn> +0x4b26be: jmp 0x4b4f2f +0x4b26d7: mov edx, 0x4b60e4 ; "L.S." +0x4b26f7: mov edx, 0x4b60f4 ; "P.S." +0x4b2709: mov ecx, 0x4b6104 ; "3" +0x4b2711: call 0x4012b0 <_System__LStrCat3> +0x4b273a: call 0x4010b8 <> +0x4b274e: lea edx, [ebx + 0x179] +0x4b2754: call 0x401280 <> +0x4b2765: call 0x4018a4 <_Sysutils_Trim> +0x4b2781: mov edx, 0x4b6110 ; "X" +0x4b27ab: lea edx, [ebx + 0x68] +0x4b27ae: call 0x401470 <> +0x4b27bd: call 0x4a7cf0 PAD dl, 1 +0x4b27c2: push dword ptr [ebp - 0x970] +0x4b27d5: lea edx, [ebx + 0x99] +0x4b27db: call 0x401470 <> +0x4b27ea: call 0x4a7cf0 PAD dl, 1 +0x4b27ef: push dword ptr [ebp - 0x984] +0x4b2802: lea edx, [ebx + 0xff] +0x4b2808: call 0x401470 <> +0x4b2817: call 0x4a7cf0 PAD dl, 1 +0x4b281c: push dword ptr [ebp - 0x998] +0x4b282f: lea edx, [ebx + 0x179] +0x4b2835: call 0x401470 <> +0x4b2844: call 0x4a7cf0 PAD dl, 1 +0x4b2849: push dword ptr [ebp - 0x9ac] +0x4b285f: fld qword ptr [ebx + eax*8 + 0x198] +0x4b286c: call 0x401458 <_System__VarFromReal> +0x4b287b: call 0x4a7cf0 PAD dl, 1 +0x4b2880: push dword ptr [ebp - 0x9c0] +0x4b2896: fld qword ptr [ebx + eax*8 + 0x190] +0x4b28a3: call 0x401458 <_System__VarFromReal> +0x4b28b2: call 0x4a7cf0 PAD dl, 1 +0x4b28b7: push dword ptr [ebp - 0x9d4] +0x4b28cd: fld qword ptr [ebx + eax*8 + 0x1a0] +0x4b28da: call 0x401458 <_System__VarFromReal> +0x4b28e9: call 0x4a7cf0 PAD dl, 1 +0x4b28ee: push dword ptr [ebp - 0x9e8] +0x4b2901: lea edx, [ebx + 0x7b] +0x4b2904: call 0x401470 <> +0x4b2913: call 0x4a7cf0 PAD dl, 0 +0x4b2918: push dword ptr [ebp - 0x9fc] +0x4b292d: call 0x401478 <_System__VarFromLStr> +0x4b293c: call 0x4a7cf0 PAD dl, 1 +0x4b2941: push dword ptr [ebp - 0xa10] +0x4b2956: call 0x401478 <_System__VarFromLStr> +0x4b2965: call 0x4a7cf0 PAD dl, 1 +0x4b296a: push dword ptr [ebp - 0xa24] +0x4b297f: call 0x401478 <_System__VarFromLStr> +0x4b298e: call 0x4a7cf0 PAD dl, 0 +0x4b2993: push dword ptr [ebp - 0xa38] +0x4b2999: push 0x4b5f94 +0x4b29ab: lea edx, [ebx + 0x188] +0x4b29b1: call 0x401470 <> +0x4b29c0: call 0x4a7cf0 PAD dl, 0 +0x4b29c5: push dword ptr [ebp - 0xa4c] +0x4b29cb: push 0x4b5fa0 +0x4b29d7: mov edx, 0x4b5fac ; "UC" +0x4b29df: call 0x40311c <@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString> +0x4b29f3: call 0x401450 <@System@@VarFromBool$qqrr14System@Variantxo> +0x4b2a05: call 0x4a7cf0 PAD dl, 0 +0x4b2a0a: push dword ptr [ebp - 0xa60] +0x4b2a1b: call 0x4012b8 <_System__LStrCatN> +0x4b2a37: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4b2a3c: call 0x401100 <_System__WriteLn> +0x4b2aa3: call 0x43058c ; "U뗭겺`���SVW3��]��]�뗚덭��}땥3픘h�Cd�0d� �~����|�X��@i,Bt0,uX���X�" <> +0x4b2aad: call 0x403194 <@Apodset@TApolloTable@Query$qqrx17System@AnsiString> +0x4b2ad2: call 0x401478 <_System__VarFromLStr> +0x4b2ae1: call 0x4a7cf0 PAD dl, 1 +0x4b2b3c: call 0x4b0054 +0x4b2b58: call 0x401280 <> +0x4b2b69: call 0x4018a4 <_Sysutils_Trim> +0x4b2b74: mov edx, 0x4b5ed0 ; "$" +0x4b2bcb: call 0x401280 <> +0x4b2bdc: call 0x4018a4 <_Sysutils_Trim> +0x4b2be7: mov edx, 0x4b6124 ; "$" +0x4b2c01: mov edx, 0x4b6130 ; "US2WON1" +0x4b2c06: call 0x401478 <_System__VarFromLStr> +0x4b2c0b: push dword ptr [ebp - 0xaa4] +0x4b2c11: push dword ptr [ebp - 0xaa8] +0x4b2c17: push dword ptr [ebp - 0xaac] +0x4b2c1d: push dword ptr [ebp - 0xab0] +0x4b2c29: mov edx, 0x4b6140 ; "US2WON" +0x4b2c2e: call 0x401478 <_System__VarFromLStr> +0x4b2c33: push dword ptr [ebp - 0xab4] +0x4b2c39: push dword ptr [ebp - 0xab8] +0x4b2c3f: push dword ptr [ebp - 0xabc] +0x4b2c45: push dword ptr [ebp - 0xac0] +0x4b2c60: fld qword ptr [eax + edx*8 + 0x1c8] +0x4b2c7b: call 0x41f828 +0x4b2c8a: call 0x4a7cf0 PAD dl, 1 +0x4b2c8f: jmp 0x4b3085 +0x4b2cca: jmp dword ptr [eax*4 + 0x4b2ce0] +0x4b2d06: mov edx, 0x4b6154 ; "H1" +0x4b2d0b: call 0x401478 <_System__VarFromLStr> +0x4b2d1a: call 0x4a7cf0 PAD dl, 1 +0x4b2d1f: jmp 0x4b3085 +0x4b2d2e: mov edx, 0x4b6160 ; "H2" +0x4b2d33: call 0x401478 <_System__VarFromLStr> +0x4b2d42: call 0x4a7cf0 PAD dl, 1 +0x4b2d47: jmp 0x4b3085 +0x4b2d56: mov edx, 0x4b616c ; "H21" +0x4b2d5b: call 0x401478 <_System__VarFromLStr> +0x4b2d6a: call 0x4a7cf0 PAD dl, 1 +0x4b2d6f: jmp 0x4b3085 +0x4b2d7e: mov edx, 0x4b6178 ; "H31" +0x4b2d83: call 0x401478 <_System__VarFromLStr> +0x4b2d92: call 0x4a7cf0 PAD dl, 1 +0x4b2d97: jmp 0x4b3085 +0x4b2da6: mov edx, 0x4b6184 ; "H32" +0x4b2dab: call 0x401478 <_System__VarFromLStr> +0x4b2dba: call 0x4a7cf0 PAD dl, 1 +0x4b2dbf: jmp 0x4b3085 +0x4b2dce: mov edx, 0x4b6190 ; "H33" +0x4b2dd3: call 0x401478 <_System__VarFromLStr> +0x4b2de2: call 0x4a7cf0 PAD dl, 1 +0x4b2de7: jmp 0x4b3085 +0x4b2df3: push dword ptr [eax + 0xc] +0x4b2dfd: push dword ptr [eax + 0x10] +0x4b2e07: push dword ptr [eax + 0x24] +0x4b2e11: push dword ptr [eax + 0x28] +0x4b2e1b: push dword ptr [eax + 0x2c] +0x4b2e25: push dword ptr [eax + 0x30] +0x4b2e33: call 0x4012b8 <_System__LStrCatN> +0x4b2e52: call 0x401280 <> +0x4b2e89: call 0x401280 <> +0x4b2ea8: mov edx, 0x4b6154 ; "H1" +0x4b2ead: call 0x401478 <_System__VarFromLStr> +0x4b2ebc: call 0x4a7cf0 PAD dl, 1 +0x4b2ec1: jmp 0x4b3085 +0x4b2ee4: call 0x401280 <> +0x4b2f03: mov edx, 0x4b6160 ; "H2" +0x4b2f08: call 0x401478 <_System__VarFromLStr> +0x4b2f17: call 0x4a7cf0 PAD dl, 1 +0x4b2f1c: jmp 0x4b3085 +0x4b2f3f: call 0x401280 <> +0x4b2f5e: mov edx, 0x4b616c ; "H21" +0x4b2f63: call 0x401478 <_System__VarFromLStr> +0x4b2f72: call 0x4a7cf0 PAD dl, 1 +0x4b2f77: jmp 0x4b3085 +0x4b2f9a: call 0x401280 <> +0x4b2fb9: mov edx, 0x4b6178 ; "H31" +0x4b2fbe: call 0x401478 <_System__VarFromLStr> +0x4b2fcd: call 0x4a7cf0 PAD dl, 1 +0x4b2fd2: jmp 0x4b3085 +0x4b2ff5: call 0x401280 <> +0x4b3014: mov edx, 0x4b6184 ; "H32" +0x4b3019: call 0x401478 <_System__VarFromLStr> +0x4b3028: call 0x4a7cf0 PAD dl, 1 +0x4b302d: jmp 0x4b3085 +0x4b304d: call 0x401280 <> +0x4b306c: mov edx, 0x4b6190 ; "H33" +0x4b3071: call 0x401478 <_System__VarFromLStr> +0x4b3080: call 0x4a7cf0 PAD dl, 1 +0x4b318c: call 0x4010b8 <> +0x4b3191: jmp 0x4b3692 +0x4b31a9: call 0x401280 <> +0x4b31ba: call 0x4018a4 <_Sysutils_Trim> +0x4b31c5: mov edx, 0x4b61a4 ; "PR" +0x4b31e4: call 0x401280 <> +0x4b31f5: call 0x4018a4 <_Sysutils_Trim> +0x4b3200: mov edx, 0x4b61b0 ; "RR" +0x4b3228: fld qword ptr [edx + ecx*8 + 0x128] +0x4b3256: call 0x401280 <> +0x4b3262: push 0x4b61bc ; "식" +0x4b32e0: call 0x4010b8 <> +0x4b32e5: push 0x4b61cc ; "% " +0x4b3305: push dword ptr [ebp - 0xbe4] +0x4b330b: push 0x4b61dc ; "C" +0x4b331b: call 0x4012b8 <_System__LStrCatN> +0x4b334e: call 0x4010b8 <> +0x4b3353: jmp 0x4b3692 +0x4b336b: jmp 0x4b3692 +0x4b3383: call 0x401280 <> +0x4b3394: call 0x4018a4 <_Sysutils_Trim> +0x4b33bb: jmp 0x4b3692 +0x4b33d3: call 0x401280 <> +0x4b33e4: call 0x4018a4 <_Sysutils_Trim> +0x4b33ef: mov edx, 0x4b61f0 ; ":" +0x4b3414: jmp 0x4b3692 +0x4b3434: call 0x401280 <> +0x4b3459: call 0x4afeac +0x4b347c: call 0x401280 <> +0x4b34ab: jmp 0x4b3692 +0x4b3557: call 0x401280 <> +0x4b3564: call 0x43086c +0x4b3569: jmp 0x4b3692 +0x4b35ad: mov edx, 0x4b6248 ; "MLS" +0x4b35e6: push 0x4b6254 ; "MLSWBDX" +0x4b363a: call 0x401280 <> +0x4b364f: call 0x431758 +0x4b3709: push 0x4b6264 ; ";ATT;ACC;" +0x4b373d: call 0x401280 <> +0x4b37e6: call 0x401280 <> +0x4b3805: lea edx, [ebx + 0x179] +0x4b380b: call 0x401280 <> +0x4b381c: call 0x4018a4 <_Sysutils_Trim> +0x4b3827: mov edx, 0x4b6278 ; "천원" +0x4b384a: call 0x401280 <> +0x4b385f: call 0x403154 <@Apodset@TApolloTable@Seek$qqr17System@AnsiString> +0x4b3880: mov edx, 0x4b6288 ; "TAMT" +0x4b3885: call 0x4012b0 <_System__LStrCat3> +0x4b389a: call 0x40310c <@Apodset@TApolloTable@GetDouble$qqr17System@AnsiString> +0x4b390c: fld qword ptr [edx + eax*8 + 0x728] +0x4b3919: call 0x401458 <_System__VarFromReal> +0x4b391e: push dword ptr [ebp - 0xca4] +0x4b3924: push dword ptr [ebp - 0xca8] +0x4b392a: push dword ptr [ebp - 0xcac] +0x4b3930: push dword ptr [ebp - 0xcb0] +0x4b3942: fld qword ptr [edx + eax*8 + 0x718] +0x4b394f: call 0x401458 <_System__VarFromReal> +0x4b3954: push dword ptr [ebp - 0xcb4] +0x4b395a: push dword ptr [ebp - 0xcb8] +0x4b3960: push dword ptr [ebp - 0xcbc] +0x4b3966: push dword ptr [ebp - 0xcc0] +0x4b3981: fld qword ptr [eax + edx*8 + 0x1c8] +0x4b399c: call 0x41f828 +0x4b39b5: call 0x401440 <_System__VarFromInt> +0x4b39e9: jmp 0x4b3ac5 +0x4b3a4e: call 0x401280 <> +0x4b3aa5: call 0x4010b8 <> +0x4b3adf: call 0x401470 <> +0x4b3aee: call 0x4a7cf0 PAD dl, 1 +0x4b3b14: call 0x401470 <> +0x4b3b19: push dword ptr [ebp - 0xd14] +0x4b3b1f: push dword ptr [ebp - 0xd18] +0x4b3b25: push dword ptr [ebp - 0xd1c] +0x4b3b2b: push dword ptr [ebp - 0xd20] +0x4b3b44: call 0x401470 <> +0x4b3b49: push dword ptr [ebp - 0xd24] +0x4b3b4f: push dword ptr [ebp - 0xd28] +0x4b3b55: push dword ptr [ebp - 0xd2c] +0x4b3b5b: push dword ptr [ebp - 0xd30] +0x4b3b7c: call 0x401280 <> +0x4b3ba4: call 0x401280 <> +0x4b3bb5: call 0x4018a4 <_Sysutils_Trim> +0x4b3bc0: mov edx, 0x4b61a4 ; "PR" +0x4b3bdf: call 0x401280 <> +0x4b3bf0: call 0x4018a4 <_Sysutils_Trim> +0x4b3bfb: mov edx, 0x4b61b0 ; "RR" +0x4b3c09: jmp 0x4b3c0d +0x4b3c15: call 0x41f828 +0x4b3c24: call 0x4a7cf0 PAD dl, 1 +0x4b3c30: call 0x4012a8 <_System__LStrCat> +0x4b3c41: call 0x401478 <_System__VarFromLStr> +0x4b3c5d: call 0x401478 <_System__VarFromLStr> +0x4b3c6c: call 0x4a7cf0 PAD dl, 1 +0x4b3c7d: call 0x401478 <_System__VarFromLStr> +0x4b3c82: push dword ptr [ebp - 0xd58] +0x4b3c88: push dword ptr [ebp - 0xd5c] +0x4b3c8e: push dword ptr [ebp - 0xd60] +0x4b3c94: push dword ptr [ebp - 0xd64] +0x4b3ca2: call 0x401478 <_System__VarFromLStr> +0x4b3ca7: push dword ptr [ebp - 0xd7c] +0x4b3cad: push dword ptr [ebp - 0xd80] +0x4b3cb3: push dword ptr [ebp - 0xd84] +0x4b3cb9: push dword ptr [ebp - 0xd88] +0x4b3cd1: call 0x41f828 +0x4b3d03: call 0x401470 <> +0x4b3d12: call 0x4a7cf0 PAD dl, 1 +0x4b3d23: call 0x401478 <_System__VarFromLStr> +0x4b3d58: call 0x401470 <> +0x4b3d67: call 0x4a7cf0 PAD dl, 1 +0x4b3d78: call 0x401478 <_System__VarFromLStr> +0x4b3dad: call 0x401470 <> +0x4b3dbc: call 0x4a7cf0 PAD dl, 1 +0x4b3dcd: call 0x401478 <_System__VarFromLStr> +0x4b3dfc: fld qword ptr [eax + edx*8 + 0x128] +0x4b3e09: call 0x401458 <_System__VarFromReal> +0x4b3e18: call 0x4a7cf0 PAD dl, 1 +0x4b3e29: call 0x401478 <_System__VarFromLStr> +0x4b3e61: fld qword ptr [eax + edx*8 + 0x1d8] +0x4b3e6f: call 0x41f880 +0x4b3e7a: call 0x401458 <_System__VarFromReal> +0x4b3e7f: push dword ptr [ebp - 0xe40] +0x4b3e85: push dword ptr [ebp - 0xe44] +0x4b3e8b: push dword ptr [ebp - 0xe48] +0x4b3e91: push dword ptr [ebp - 0xe4c] +0x4b3ea1: call 0x401440 <_System__VarFromInt> +0x4b3ea6: push dword ptr [ebp - 0xe50] +0x4b3eac: push dword ptr [ebp - 0xe54] +0x4b3eb2: push dword ptr [ebp - 0xe58] +0x4b3eb8: push dword ptr [ebp - 0xe5c] +0x4b3ebe: push 0x4b6264 ; ";ATT;ACC;" +0x4b3ef2: call 0x401280 <> +0x4b3f0b: call 0x41f828 +0x4b3f1a: call 0x4a7cf0 PAD dl, 1 +0x4b3f2b: call 0x401478 <_System__VarFromLStr> +0x4b3f63: fld qword ptr [eax + edx*8 + 0x1d0] +0x4b3f71: call 0x41f880 +0x4b3f7c: call 0x401458 <_System__VarFromReal> +0x4b3f81: push dword ptr [ebp - 0xe88] +0x4b3f87: push dword ptr [ebp - 0xe8c] +0x4b3f8d: push dword ptr [ebp - 0xe90] +0x4b3f93: push dword ptr [ebp - 0xe94] +0x4b3fa3: call 0x401440 <_System__VarFromInt> +0x4b3fa8: push dword ptr [ebp - 0xe98] +0x4b3fae: push dword ptr [ebp - 0xe9c] +0x4b3fb4: push dword ptr [ebp - 0xea0] +0x4b3fba: push dword ptr [ebp - 0xea4] +0x4b3fc0: push 0x4b6264 ; ";ATT;ACC;" +0x4b3ff4: call 0x401280 <> +0x4b400d: call 0x41f828 +0x4b401c: call 0x4a7cf0 PAD dl, 1 +0x4b402d: call 0x401478 <_System__VarFromLStr> +0x4b4065: fld qword ptr [eax + edx*8 + 0x1e0] +0x4b4073: call 0x41f880 +0x4b407e: call 0x401458 <_System__VarFromReal> +0x4b4083: push dword ptr [ebp - 0xed0] +0x4b4089: push dword ptr [ebp - 0xed4] +0x4b408f: push dword ptr [ebp - 0xed8] +0x4b4095: push dword ptr [ebp - 0xedc] +0x4b40a5: call 0x401440 <_System__VarFromInt> +0x4b40aa: push dword ptr [ebp - 0xee0] +0x4b40b0: push dword ptr [ebp - 0xee4] +0x4b40b6: push dword ptr [ebp - 0xee8] +0x4b40bc: push dword ptr [ebp - 0xeec] +0x4b40c2: push 0x4b6264 ; ";ATT;ACC;" +0x4b40f6: call 0x401280 <> +0x4b410f: call 0x41f828 +0x4b411e: call 0x4a7cf0 PAD dl, 1 +0x4b412f: call 0x401478 <_System__VarFromLStr> +0x4b4164: call 0x401470 <> +0x4b4173: call 0x4a7cf0 PAD dl, 1 +0x4b4184: call 0x401478 <_System__VarFromLStr> +0x4b41cd: mov eax, 0x4b62a0 ; "00" +0x4b41d2: call 0x4019d4 <_Sysutils_FormatFloat> +0x4b41e3: call 0x401478 <_System__VarFromLStr> +0x4b41f2: call 0x4a7cf0 PAD dl, 1 +0x4b4203: call 0x401478 <_System__VarFromLStr> +0x4b423b: call 0x401440 <_System__VarFromInt> +0x4b424a: call 0x4a7cf0 PAD dl, 1 +0x4b425b: call 0x401478 <_System__VarFromLStr> +0x4b4293: call 0x401440 <_System__VarFromInt> +0x4b42a2: call 0x4a7cf0 PAD dl, 1 +0x4b42b3: call 0x401478 <_System__VarFromLStr> +0x4b42db: fld qword ptr [edx + eax*8 + 0x428] +0x4b42e8: call 0x401458 <_System__VarFromReal> +0x4b42ed: push dword ptr [ebp - 0xfac] +0x4b42f3: push dword ptr [ebp - 0xfb0] +0x4b42f9: push dword ptr [ebp - 0xfb4] +0x4b42ff: push dword ptr [ebp - 0xfb8] +0x4b4305: mov al, 0x2a +0x4b4320: call 0x401470 <> +0x4b4325: push dword ptr [ebp - 0xfbc] +0x4b432b: push dword ptr [ebp - 0xfc0] +0x4b4331: push dword ptr [ebp - 0xfc4] +0x4b4337: push dword ptr [ebp - 0xfc8] +0x4b435c: call 0x41f828 +0x4b436b: call 0x4a7cf0 PAD dl, 1 +0x4b437c: call 0x401478 <_System__VarFromLStr> +0x4b43a5: call 0x401440 <_System__VarFromInt> +0x4b43aa: push dword ptr [ebp - 0xff0] +0x4b43b0: push dword ptr [ebp - 0xff4] +0x4b43b6: push dword ptr [ebp - 0xff8] +0x4b43bc: push dword ptr [ebp - 0xffc] +0x4b43cf: call 0x401440 <_System__VarFromInt> +0x4b43d4: push dword ptr [ebp - 0x1000] +0x4b43da: push dword ptr [ebp - 0x1004] +0x4b43e0: push dword ptr [ebp - 0x1008] +0x4b43e6: push dword ptr [ebp - 0x100c] +0x4b440d: call 0x41f828 +0x4b4424: call 0x4a7cf0 PAD dl, 0 +0x4b4435: call 0x401478 <_System__VarFromLStr> +0x4b445c: call 0x401478 <_System__VarFromLStr> +0x4b4473: call 0x4a7cf0 PAD dl, 0 +0x4b4484: call 0x401478 <_System__VarFromLStr> +0x4b44a3: call 0x4b0508 <> +0x4b44b5: call 0x401478 <_System__VarFromLStr> +0x4b44ba: push dword ptr [ebp - 0x1044] +0x4b44c0: push dword ptr [ebp - 0x1048] +0x4b44c6: push dword ptr [ebp - 0x104c] +0x4b44cc: push dword ptr [ebp - 0x1050] +0x4b44d8: call 0x4afb78 <> +0x4b44e9: call 0x401478 <_System__VarFromLStr> +0x4b44ee: push dword ptr [ebp - 0x1058] +0x4b44f4: push dword ptr [ebp - 0x105c] +0x4b44fa: push dword ptr [ebp - 0x1060] +0x4b4500: push dword ptr [ebp - 0x1064] +0x4b4518: call 0x41f828 +0x4b454b: call 0x401470 <> +0x4b4579: call 0x401280 <> +0x4b4598: call 0x401280 <> +0x4b45aa: call 0x4a7e64 +0x4b45bb: call 0x401478 <_System__VarFromLStr> +0x4b45ee: call 0x401470 <> +0x4b4623: call 0x401470 <> +0x4b4628: push dword ptr [ebp - 0x10cc] +0x4b462e: push dword ptr [ebp - 0x10d0] +0x4b4634: push dword ptr [ebp - 0x10d4] +0x4b463a: push dword ptr [ebp - 0x10d8] +0x4b4640: mov al, 0x45 +0x4b465b: call 0x401470 <> +0x4b4660: push dword ptr [ebp - 0x10dc] +0x4b4666: push dword ptr [ebp - 0x10e0] +0x4b466c: push dword ptr [ebp - 0x10e4] +0x4b4672: push dword ptr [ebp - 0x10e8] +0x4b46a2: call 0x41f828 +0x4b46b1: call 0x4a7cf0 PAD dl, 0 +0x4b46c2: call 0x401478 <_System__VarFromLStr> +0x4b46f5: call 0x401470 <> +0x4b470d: mov al, 0x20 +0x4b4728: call 0x401470 <> +0x4b472d: push dword ptr [ebp - 0x110c] +0x4b4733: push dword ptr [ebp - 0x1110] +0x4b4739: push dword ptr [ebp - 0x1114] +0x4b473f: push dword ptr [ebp - 0x1118] +0x4b4745: mov al, 0x2f +0x4b4760: call 0x401470 <> +0x4b4765: push dword ptr [ebp - 0x111c] +0x4b476b: push dword ptr [ebp - 0x1120] +0x4b4771: push dword ptr [ebp - 0x1124] +0x4b4777: push dword ptr [ebp - 0x1128] +0x4b479c: call 0x41f828 +0x4b47cf: call 0x401470 <> +0x4b4806: call 0x401440 <_System__VarFromInt> +0x4b4815: call 0x4a7cf0 PAD dl, 0 +0x4b4826: call 0x401478 <_System__VarFromLStr> +0x4b4859: call 0x401470 <> +0x4b4884: call 0x401470 <> +0x4b48ac: call 0x401508 <@System@@Write0Variant$qqrrpvrx14System@Variant> +0x4b48b1: call 0x401100 <_System__WriteLn> +0x4b48e1: lea edx, [ebx + 0x68] +0x4b4920: call 0x401280 <> +0x4b492d: call 0x43086c +0x4b4932: jmp 0x4b4f2f +0x4b494b: mov edx, 0x4b60e4 ; "L.S." +0x4b496b: mov edx, 0x4b60f4 ; "P.S." +0x4b497d: mov ecx, 0x4b6104 ; "3" +0x4b4985: call 0x4012b0 <_System__LStrCat3> +0x4b49ae: call 0x4010b8 <> +0x4b49c0: lea edx, [ebx + 0x68] +0x4b49c3: call 0x401470 <> +0x4b49d2: call 0x4a7cf0 PAD dl, 1 +0x4b49d7: push dword ptr [ebp - 0x11d0] +0x4b49ea: lea edx, [ebx + 0x99] +0x4b49f0: call 0x401470 <> +0x4b49ff: call 0x4a7cf0 PAD dl, 1 +0x4b4a04: push dword ptr [ebp - 0x11e4] +0x4b4a17: lea edx, [ebx + 0xff] +0x4b4a1d: call 0x401470 <> +0x4b4a2c: call 0x4a7cf0 PAD dl, 1 +0x4b4a31: push dword ptr [ebp - 0x11f8] +0x4b4a44: lea edx, [ebx + 0x179] +0x4b4a4a: call 0x401470 <> +0x4b4a59: call 0x4a7cf0 PAD dl, 1 +0x4b4a5e: push dword ptr [ebp - 0x120c] +0x4b4a74: fld qword ptr [ebx + eax*8 + 0x198] +0x4b4a81: call 0x401458 <_System__VarFromReal> +0x4b4a90: call 0x4a7cf0 PAD dl, 1 +0x4b4a95: push dword ptr [ebp - 0x1220] +0x4b4aab: fld qword ptr [ebx + eax*8 + 0x190] +0x4b4ab8: call 0x401458 <_System__VarFromReal> +0x4b4ac7: call 0x4a7cf0 PAD dl, 1 +0x4b4acc: push dword ptr [ebp - 0x1234] +0x4b4ae2: fld qword ptr [ebx + eax*8 + 0x1a0] +0x4b4aef: call 0x401458 <_System__VarFromReal> +0x4b4afe: call 0x4a7cf0 PAD dl, 1 +0x4b4b03: push dword ptr [ebp - 0x1248] +0x4b4b16: lea edx, [ebx + 0x7b] +0x4b4b19: call 0x401470 <> +0x4b4b28: call 0x4a7cf0 PAD dl, 0 +0x4b4b2d: push dword ptr [ebp - 0x125c] +0x4b4b42: call 0x401478 <_System__VarFromLStr> +0x4b4b51: call 0x4a7cf0 PAD dl, 1 +0x4b4b56: push dword ptr [ebp - 0x1270] +0x4b4b6b: call 0x401478 <_System__VarFromLStr> +0x4b4b7a: call 0x4a7cf0 PAD dl, 1 +0x4b4b7f: push dword ptr [ebp - 0x1284] +0x4b4b94: call 0x401478 <_System__VarFromLStr> +0x4b4ba3: call 0x4a7cf0 PAD dl, 0 +0x4b4ba8: push dword ptr [ebp - 0x1298] +0x4b4bae: push 0x4b5f94 +0x4b4bc0: lea edx, [ebx + 0x188] +0x4b4bc6: call 0x401470 <> +0x4b4bd5: call 0x4a7cf0 PAD dl, 0 +0x4b4bda: push dword ptr [ebp - 0x12ac] +0x4b4be0: push 0x4b5fa0 +0x4b4bec: mov edx, 0x4b5fac ; "UC" +0x4b4bf4: call 0x40311c <@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString> +0x4b4c08: call 0x401450 <@System@@VarFromBool$qqrr14System@Variantxo> +0x4b4c1a: call 0x4a7cf0 PAD dl, 0 +0x4b4c1f: push dword ptr [ebp - 0x12c0] +0x4b4c30: call 0x4012b8 <_System__LStrCatN> +0x4b4c43: call 0x401318 <@System@@Write0LString$qqrr15System@TTextRecx17System@AnsiString> +0x4b4c48: call 0x401100 <_System__WriteLn> +0x4b4caf: call 0x43058c ; "U뗭겺`���SVW3��]��]�뗚덭��}땥3픘h�Cd�0d� �~����|�X��@i,Bt0,uX���X�" <> +0x4b4cb9: call 0x403194 <@Apodset@TApolloTable@Query$qqrx17System@AnsiString> +0x4b4cd2: lea edx, [ebx + 0x68] +0x4b4cd5: call 0x401470 <> +0x4b4ce9: mov edx, 0x4b5ec0 ; "CODE" +0x4b4cee: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4cf9: lea edx, [ebx + 0x99] +0x4b4cff: call 0x401470 <> +0x4b4d13: mov edx, 0x4b62e0 ; "NAME" +0x4b4d18: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4d23: lea edx, [ebx + 0xff] +0x4b4d29: call 0x401470 <> +0x4b4d3d: mov edx, 0x4b62f0 ; "SIZE" +0x4b4d42: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4d4d: lea edx, [ebx + 0x179] +0x4b4d53: call 0x401470 <> +0x4b4d67: mov edx, 0x4b6300 ; "UNIT" +0x4b4d6c: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4d7a: fld qword ptr [ebx + eax*8 + 0x198] +0x4b4d87: call 0x401458 <_System__VarFromReal> +0x4b4d9b: mov edx, 0x4b6310 ; "MPRC" +0x4b4da0: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4dae: fld qword ptr [ebx + eax*8 + 0x190] +0x4b4dbb: call 0x401458 <_System__VarFromReal> +0x4b4dcf: mov edx, 0x4b6320 ; "LPRC" +0x4b4dd4: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4de2: fld qword ptr [ebx + eax*8 + 0x1a0] +0x4b4def: call 0x401458 <_System__VarFromReal> +0x4b4e03: mov edx, 0x4b6330 ; "EPRC" +0x4b4e08: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4e13: lea edx, [ebx + 0x7b] +0x4b4e16: call 0x401470 <> +0x4b4e2a: mov edx, 0x4b6340 ; "LINK" +0x4b4e2f: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4e3a: lea edx, [ebx + 0x68] +0x4b4e3d: call 0x401280 <> +0x4b4e54: call 0x452e78 ; "U뗭Q�" <> +0x4b4e65: call 0x401478 <_System__VarFromLStr> +0x4b4e79: mov edx, 0x4b6350 ; "FORM" +0x4b4e7e: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4e9c: lea edx, [ebx + 0x68] +0x4b4edb: call 0x401280 <> +0x4b4ee8: call 0x43086c +0x4b4ef7: call 0x401440 <_System__VarFromInt> +0x4b4f0b: mov edx, 0x4b6360 ; "COMPEXC" +0x4b4f10: call 0x402f84 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x4b4f23: jmp 0x4b4f2f +0x4b4f25: mov eax, 0x4b6370 ; "i = 0" diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/STmate_ActMkJaje_0x5658bc.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/STmate_ActMkJaje_0x5658bc.txt new file mode 100644 index 000000000..cd15fd2be --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/STmate_ActMkJaje_0x5658bc.txt @@ -0,0 +1,1567 @@ +0x551d60: push ebx +0x551d61: fcomp qword ptr [edx] +0x551d63: push ebp +0x551d64: add byte ptr [esp + edx*8 + 0x5c005f], al +0x551d6b: pop es +0x551d6c: dec edx +0x551d6d: popal +0x551d6e: push 0x65 +0x551d70: pop eax +0x551d71: dec esp +0x551d72: push ebx +0x551d73: add byte ptr [eax], al +0x551d75: lea eax, [eax] +0x551d78: push ebp +0x551d79: mov ebp, esp +0x551d7b: mov ecx, 8 +0x551d80: push 0 +0x551d82: push 0 +0x551d84: dec ecx +0x551d85: jne 0x551d80 +0x551d87: push ebx +0x551d88: mov ebx, dword ptr [0x5e5dfc] +0x551d8e: xor eax, eax +0x551d90: push ebp +0x551d91: push 0x552094 +0x551d96: push dword ptr fs:[eax] +0x551d99: mov dword ptr fs:[eax], esp +0x551d9c: mov byte ptr [ebp - 1], 0 +0x551da0: lea ecx, [ebp - 8] +0x551da3: mov eax, dword ptr [0x5fd480] +0x551da8: mov eax, dword ptr [eax] +0x551daa: mov edx, dword ptr [0x551a90] +0x551db0: call 0x402360 +0x551db5: xor edx, edx +0x551db7: push ebp +0x551db8: push 0x552050 +0x551dbd: push dword ptr fs:[edx] +0x551dc0: mov dword ptr fs:[edx], esp +0x551dc3: lea ecx, [ebp - 0x10] +0x551dc6: mov eax, dword ptr [0x5e6090] +0x551dcb: mov eax, dword ptr [eax] +0x551dcd: mov eax, dword ptr [eax + 0x20] +0x551dd0: mov edx, 0x5520ac ; "PNAME" +0x551dd5: call 0x404790 +0x551dda: mov eax, dword ptr [ebp - 0x10] +0x551ddd: lea edx, [ebp - 0xc] +0x551de0: call 0x401e40 +0x551de5: mov edx, dword ptr [ebp - 0xc] +0x551de8: mov eax, dword ptr [ebp - 8] +0x551deb: mov eax, dword ptr [eax + 0x31c] +0x551df1: call 0x4031b8 +0x551df6: lea ecx, [ebp - 0x18] +0x551df9: mov eax, dword ptr [0x5e6090] +0x551dfe: mov eax, dword ptr [eax] +0x551e00: mov eax, dword ptr [eax + 0x20] +0x551e03: mov edx, 0x5520bc ; "PNUM" +0x551e08: call 0x404790 +0x551e0d: mov eax, dword ptr [ebp - 0x18] +0x551e10: lea edx, [ebp - 0x14] +0x551e13: call 0x401e40 +0x551e18: mov edx, dword ptr [ebp - 0x14] +0x551e1b: mov eax, dword ptr [ebp - 8] +0x551e1e: mov eax, dword ptr [eax + 0x320] +0x551e24: call 0x4031b8 +0x551e29: mov eax, dword ptr [ebp - 8] +0x551e2c: mov eax, dword ptr [eax + 0x328] +0x551e32: xor edx, edx +0x551e34: call 0x4031b8 +0x551e39: mov eax, dword ptr [ebp - 8] +0x551e3c: mov eax, dword ptr [eax + 0x32c] +0x551e42: xor edx, edx +0x551e44: call 0x4031b8 +0x551e49: lea edx, [ebp - 0x20] +0x551e4c: mov eax, dword ptr [ebx] +0x551e4e: movsx eax, byte ptr [eax + 0x1789] +0x551e55: call 0x401e48 +0x551e5a: mov ecx, dword ptr [ebp - 0x20] +0x551e5d: lea eax, [ebp - 0x1c] +0x551e60: mov edx, 0x5520cc ; "COSTW" +0x551e65: call 0x4012b0 +0x551e6a: mov edx, dword ptr [ebp - 0x1c] +0x551e6d: mov eax, dword ptr [0x5e6090] +0x551e72: mov eax, dword ptr [eax] +0x551e74: mov eax, dword ptr [eax + 0x20] +0x551e77: call 0x404770 +0x551e7c: add esp, -0xc +0x551e7f: fstp xword ptr [esp] +0x551e82: wait +0x551e83: mov eax, dword ptr [ebp - 8] +0x551e86: mov eax, dword ptr [eax + 0x324] +0x551e8c: call 0x404b98 +0x551e91: mov eax, dword ptr [ebp - 8] +0x551e94: mov eax, dword ptr [eax + 0x330] +0x551e9a: xor edx, edx +0x551e9c: call 0x4031b8 +0x551ea1: mov eax, dword ptr [ebp - 8] +0x551ea4: mov eax, dword ptr [eax + 0x338] +0x551eaa: xor edx, edx +0x551eac: call 0x4031b8 +0x551eb1: mov eax, dword ptr [ebp - 8] +0x551eb4: mov eax, dword ptr [eax + 0x334] +0x551eba: xor edx, edx +0x551ebc: call 0x4031b8 +0x551ec1: mov eax, dword ptr [ebp - 8] +0x551ec4: mov edx, dword ptr [eax] +0x551ec6: call dword ptr [edx + 0xe8] +0x551ecc: mov eax, dword ptr [ebp - 8] +0x551ecf: mov eax, dword ptr [eax + 0x24c] +0x551ed5: cmp eax, 1 +0x551ed8: jne 0x55203a +0x551ede: dec eax +0x551edf: sete byte ptr [ebp - 1] +0x551ee3: mov eax, dword ptr [ebx] +0x551ee5: add eax, 0x178f +0x551eea: xor ecx, ecx +0x551eec: mov edx, 0x1a00 +0x551ef1: call 0x4010e0 +0x551ef6: mov eax, dword ptr [ebx] +0x551ef8: mov word ptr [eax + 0x178f], 0x3801 +0x551f01: lea edx, [ebp - 0x24] +0x551f04: mov eax, dword ptr [ebp - 8] +0x551f07: mov eax, dword ptr [eax + 0x31c] +0x551f0d: call 0x4031b0 +0x551f12: mov edx, dword ptr [ebp - 0x24] +0x551f15: mov eax, dword ptr [ebx] +0x551f17: add eax, 0x188f +0x551f1c: mov ecx, 0xff +0x551f21: call 0x401298 +0x551f26: lea edx, [ebp - 0x28] +0x551f29: mov eax, dword ptr [ebp - 8] +0x551f2c: mov eax, dword ptr [eax + 0x320] +0x551f32: call 0x4031b0 +0x551f37: mov edx, dword ptr [ebp - 0x28] +0x551f3a: mov eax, dword ptr [ebx] +0x551f3c: add eax, 0x198f +0x551f41: mov ecx, 0xff +0x551f46: call 0x401298 +0x551f4b: lea edx, [ebp - 0x2c] +0x551f4e: mov eax, dword ptr [ebp - 8] +0x551f51: mov eax, dword ptr [eax + 0x328] +0x551f57: call 0x4031b0 +0x551f5c: mov edx, dword ptr [ebp - 0x2c] +0x551f5f: mov eax, dword ptr [ebx] +0x551f61: add eax, 0x1a8f +0x551f66: mov ecx, 0xff +0x551f6b: call 0x401298 +0x551f70: lea edx, [ebp - 0x30] +0x551f73: mov eax, dword ptr [ebp - 8] +0x551f76: mov eax, dword ptr [eax + 0x32c] +0x551f7c: call 0x4031b0 +0x551f81: mov edx, dword ptr [ebp - 0x30] +0x551f84: mov eax, dword ptr [ebx] +0x551f86: add eax, 0x1b8f +0x551f8b: mov ecx, 0xff +0x551f90: call 0x401298 +0x551f95: mov eax, dword ptr [ebp - 8] +0x551f98: mov eax, dword ptr [eax + 0x324] +0x551f9e: call 0x404b90 +0x551fa3: add esp, -0xc +0x551fa6: fstp xword ptr [esp] +0x551fa9: wait +0x551faa: lea edx, [ebp - 0x34] +0x551fad: mov eax, 0x5520dc ; "₩#,0원" +0x551fb2: call 0x401fd8 +0x551fb7: mov edx, dword ptr [ebp - 0x34] +0x551fba: mov eax, dword ptr [ebx] +0x551fbc: add eax, 0x1c8f +0x551fc1: mov ecx, 0xff +0x551fc6: call 0x401298 +0x551fcb: lea edx, [ebp - 0x38] +0x551fce: mov eax, dword ptr [ebp - 8] +0x551fd1: mov eax, dword ptr [eax + 0x330] +0x551fd7: call 0x4031b0 +0x551fdc: mov edx, dword ptr [ebp - 0x38] +0x551fdf: mov eax, dword ptr [ebx] +0x551fe1: add eax, 0x1d8f +0x551fe6: mov ecx, 0xff +0x551feb: call 0x401298 +0x551ff0: lea edx, [ebp - 0x3c] +0x551ff3: mov eax, dword ptr [ebp - 8] +0x551ff6: mov eax, dword ptr [eax + 0x338] +0x551ffc: call 0x4031b0 +0x552001: mov edx, dword ptr [ebp - 0x3c] +0x552004: mov eax, dword ptr [ebx] +0x552006: add eax, 0x1e8f +0x55200b: mov ecx, 0xff +0x552010: call 0x401298 +0x552015: lea edx, [ebp - 0x40] +0x552018: mov eax, dword ptr [ebp - 8] +0x55201b: mov eax, dword ptr [eax + 0x334] +0x552021: call 0x4031b0 +0x552026: mov edx, dword ptr [ebp - 0x40] +0x552029: mov eax, dword ptr [ebx] +0x55202b: add eax, 0x1f8f +0x552030: mov ecx, 0xff +0x552035: call 0x401298 +0x55203a: xor eax, eax +0x55203c: pop edx +0x55203d: pop ecx +0x55203e: pop ecx +0x55203f: mov dword ptr fs:[eax], edx +0x552042: push 0x552057 +0x552047: lea eax, [ebp - 8] +0x55204a: call 0x402090 +0x55204f: ret +0x552050: jmp 0x401200 +0x552055: jmp 0x552047 +0x552057: xor eax, eax +0x552059: pop edx +0x55205a: pop ecx +0x55205b: pop ecx +0x55205c: mov dword ptr fs:[eax], edx +0x55205f: push 0x55209b +0x552064: lea eax, [ebp - 0x40] +0x552067: mov edx, 3 +0x55206c: call 0x401258 +0x552071: lea eax, [ebp - 0x34] +0x552074: call 0x401250 +0x552079: lea eax, [ebp - 0x30] +0x55207c: mov edx, 4 +0x552081: call 0x401258 +0x552086: lea eax, [ebp - 0x20] +0x552089: mov edx, 6 +0x55208e: call 0x401258 +0x552093: ret +0x552094: jmp 0x401200 +0x552099: jmp 0x552064 +0x55209b: mov al, byte ptr [ebp - 1] +0x55209e: pop ebx +0x55209f: mov esp, ebp +0x5520a1: pop ebp +0x5520a2: ret +0x5520a3: add bh, bh +0x5520a5: .byte 0xff +0x5520a6: .byte 0xff +0x5520a7: inc dword ptr [0x50000000] +0x5520ad: dec esi +0x5520ae: inc ecx +0x5520af: dec ebp +0x5520b0: inc ebp +0x5520b1: add byte ptr [eax], al +0x5520b3: add bh, bh +0x5520b5: .byte 0xff +0x5520b6: .byte 0xff +0x5520b7: inc dword ptr [eax + eax] +0x5520ba: add byte ptr [eax], al +0x5520bc: push eax +0x5520bd: dec esi +0x5520be: push ebp +0x5520bf: dec ebp +0x5520c0: add byte ptr [eax], al +0x5520c2: add byte ptr [eax], al +0x5520c4: .byte 0xff +0x5520c5: .byte 0xff +0x5520c6: .byte 0xff +0x5520c7: inc dword ptr [0x43000000] +0x5520cd: dec edi +0x5520ce: push ebx +0x5520cf: push esp +0x5520d0: push edi +0x5520d1: add byte ptr [eax], al +0x5520d3: add bh, bh +0x5520d5: .byte 0xff +0x5520d6: .byte 0xff +0x5520d7: inc dword ptr [edi] +0x5520d9: add byte ptr [eax], al +0x5520db: add byte ptr [ebx + 0x302c23dc], ah +0x5520e1: mov edi, 0x80c700f8 +0x5520e6: dec esp +0x5520e7: add al, byte ptr [eax] +0x5520e9: add byte ptr [ecx], al +0x5520eb: add byte ptr [eax], al +0x5520ed: add bl, al +0x5520ef: nop +0x5520f0: mov dword ptr [eax + 0x24c], 2 +0x5520fa: ret +0x5520fb: nop +0x5520fc: push ebp +0x5520fd: mov ebp, esp +0x5520ff: push ebx +0x552100: push esi +0x552101: mov esi, edx +0x552103: mov ebx, eax +0x552105: cmp word ptr [ecx], 0xd +0x552109: jne 0x552130 +0x55210b: push 1 +0x55210d: mov al, byte ptr [0x552138] +0x552112: cmp al, byte ptr [ebp + 8] +0x552115: setne al +0x552118: push eax +0x552119: mov eax, esi +0x55211b: mov edx, dword ptr [0x5fdf9c] +0x552121: call 0x401190 +0x552126: mov edx, eax +0x552128: mov eax, ebx +0x55212a: pop ecx +0x55212b: call 0x403618 +0x552130: pop esi +0x552131: pop ebx +0x552132: pop ebp +0x552133: ret 4 +0x552136: add byte ptr [eax], al +0x552138: add dword ptr [eax], eax +0x55213a: add byte ptr [eax], al +0x55213c: call 0x45f4d8 +0x552141: ret +0x552142: mov eax, eax +0x552144: push ebp +0x552145: mov ebp, esp +0x552147: xor eax, eax +0x552149: push ebp +0x55214a: push 0x552169 +0x55214f: push dword ptr fs:[eax] +0x552152: mov dword ptr fs:[eax], esp +0x552155: inc dword ptr [0x5fa0f8] +0x55215b: xor eax, eax +0x55215d: pop edx +0x55215e: pop ecx +0x55215f: pop ecx +0x552160: mov dword ptr fs:[eax], edx +0x552163: push 0x552170 +0x552168: ret +0x552169: jmp 0x401200 +0x55216e: jmp 0x552168 +0x552170: pop ebp +0x552171: ret +0x552172: mov eax, eax +0x552174: sub dword ptr [0x5fa0f8], 1 +0x55217b: ret +0x55217c: enter 0x5521, 0 +0x552180: add byte ptr [eax], al +0x552182: add byte ptr [eax], al +0x552184: add byte ptr [eax], al +0x552186: add byte ptr [eax], al +0x552188: add byte ptr [eax], al +0x55218a: add byte ptr [eax], al +0x55218c: cwde +0x55218d: and edx, dword ptr [ebp] +0x552190: mov eax, 0x20005522 +0x552195: and edx, dword ptr [ebp] +0x552198: add byte ptr [eax], al +0x55219a: add byte ptr [eax], al +0x55219c: jne 0x5521c1 +0x55219e: push ebp +0x55219f: add byte ptr [ebx + eax], cl +0x5521a2: add byte ptr [eax], al +0x5521a4: mov ah, dl +0x5521a6: pop edi +0x5521a7: add byte ptr [eax], dh +0x5521a9: sub dword ptr [eax], eax +0x5521ac: add byte ptr [ecx], ah +0x5521ae: inc eax +0x5521af: add byte ptr [eax], dl +0x5521b1: and dword ptr [eax], eax +0x5521b4: enter 0x4011, 0 +0x5521b8: lock and dword ptr [eax], eax +0x5521bc: pushal +0x5521bd: adc dword ptr [eax], eax +0x5521c0: push 0x18004011 +0x5521c5: and dword ptr [eax], eax +0x5521c8: xor byte ptr [esi], dh +0x5521ca: inc eax +0x5521cb: add byte ptr [eax + 0x21], cl +0x5521ce: inc eax +0x5521cf: add byte ptr [eax + 0x30004024], ch +0x5521d5: and dword ptr [eax], eax +0x5521d8: cmp byte ptr [ecx], ah +0x5521da: inc eax +0x5521db: add byte ptr [eax + 0x21], al +0x5521de: inc eax +0x5521df: add byte ptr [eax + 0x38004031], cl +0x5521e5: sub dword ptr [eax], eax +0x5521e8: nop +0x5521e9: and dword ptr [eax], eax +0x5521ec: lock sub byte ptr [eax], al +0x5521f0: js 0x552214 +0x5521f2: inc eax +0x5521f3: add al, bh +0x5521f5: and byte ptr [eax], al +0x5521f8: and byte ptr [esi], dh +0x5521fa: inc eax +0x5521fb: add byte ptr [eax], bh +0x5521fd: inc eax +0x5521ff: add byte ptr [eax], ch +0x552201: inc eax +0x552203: add al, al +0x552205: xor byte ptr [eax], al +0x552208: sal byte ptr [0x21500040], 1 +0x55220e: inc eax +0x55220f: add byte ptr [eax - 0x4fffbfcb], dl +0x552215: xor byte ptr [eax], al +0x552218: mov eax, 0x58004030 +0x55221d: and dword ptr [eax], eax +0x552220: mov eax, 0x80004033 +0x552225: xor dword ptr [eax], eax +0x552228: loopne 0x55225a +0x55222a: inc eax +0x55222b: add byte ptr [eax - 0x77ffbfcf], ah +0x552231: and dword ptr [eax], eax +0x552234: pushal +0x552235: and dword ptr [eax], eax +0x552238: sal byte ptr [ecx], 0x40 +0x55223b: add byte ptr [eax - 0x37ffbfdf], bl +0x552241: xor eax, dword ptr [eax] +0x552244: cwde +0x552245: xor eax, 0x35a80040 +0x55224a: inc eax +0x55224b: add byte ptr [eax + 0x35], bh +0x55224e: inc eax +0x55224f: add byte ptr [eax - 0xfffbfcb], ah +0x552255: and byte ptr [eax], al +0x552258: mov al, byte ptr [0x68004021] +0x55225d: xor al, 0x40 +0x55225f: add al, dl +0x552261: and dword ptr [eax], eax +0x552264: loopne 0x552287 +0x552266: inc eax +0x552267: add al, bl +0x552269: and dword ptr [eax], eax +0x55226c: jo 0x5522a2 +0x55226e: inc eax +0x55226f: add byte ptr [eax + 0x34], bh +0x552272: inc eax +0x552273: add al, ch +0x552275: and dword ptr [eax], eax +0x552278: pop eax +0x552279: xor al, 0x40 +0x55227b: add al, cl +0x55227d: xor eax, 0x22180040 +0x552282: inc eax +0x552283: add byte ptr [eax + 0x60004035], cl +0x552289: and al, byte ptr [eax] +0x55228c: loopne 0x5522ae +0x55228e: inc eax +0x55228f: add al, ch +0x552291: and byte ptr [eax], al +0x552294: cmp byte ptr [edx], ah +0x552296: inc eax +0x552297: add byte ptr [eax], ah +0x552299: and dword ptr [eax], eax +0x55229c: sub byte ptr [ecx], ah +0x55229e: inc eax +0x55229f: add byte ptr [eax + 0x22], dh +0x5522a2: inc eax +0x5522a3: add byte ptr [eax], cl +0x5522a5: and dword ptr [eax], eax +0x5522a8: push eax +0x5522a9: and al, byte ptr [eax] +0x5522ac: or byte ptr [edx], ah +0x5522ae: inc eax +0x5522af: add byte ptr [eax + 0x22], ch +0x5522b2: inc eax +0x5522b3: add byte ptr [eax + 0x7004021], al +0x5522b9: add byte ptr [ebx - 0xfffaadd], al +0x5522bf: add al, byte ptr [eax] +0x5522c1: add byte ptr [eax], al +0x5522c3: add byte ptr [esi], al +0x5522c5: insb byte ptr es:[edi], dx +0x5522c6: bound ebx, qword ptr [edi + 0x4d] +0x5522c9: jae 0x552332 +0x5522cb: hlt +0x5522cc: add al, byte ptr [eax] +0x5522ce: add byte ptr [ecx], al +0x5522d0: add byte ptr [edi], al +0x5522d2: ja 0x552319 +0x5522d4: pop edi +0x5522d6: push esi +0x5522d7: popal +0x5522d8: insb byte ptr es:[edi], dx +0x5522d9: clc +0x5522da: add al, byte ptr [eax] +0x5522dc: add byte ptr [edx], al +0x5522de: add byte ptr [ebx], cl +0x5522e0: jae 0x552324 +0x5522e2: je 0x552352 +0x5522e4: pop edi +0x5522e5: inc ebx +0x5522e6: popal +0x5522e7: outsb dx, byte ptr [esi] +0x5522e8: arpl word ptr [ebp + 0x6c], sp +0x5522eb: cld +0x5522ec: add al, byte ptr [eax] +0x5522ee: add byte ptr [edx], al +0x5522f0: add byte ptr [edi], al +0x5522f2: jae 0x552336 +0x5522f4: je 0x552364 +0x5522f6: pop edi +0x5522f7: dec edi +0x5522f8: imul eax, dword ptr [eax], 3 +0x5522fb: add byte ptr [eax], al +0x5522fd: add byte ptr [eax], al +0x5522ff: push es +0x552300: dec esp +0x552301: popal +0x552302: bound esp, qword ptr [ebp + 0x6c] +0x552305: xor dword ptr [ebx + eax], eax +0x552308: add byte ptr [eax], al +0x55230a: add byte ptr [eax], al +0x55230c: push es +0x55230d: insb byte ptr es:[edi], dx +0x55230e: bound ebx, qword ptr [edi + 0x4e] +0x552311: popal +0x552312: or byte ptr [bp + di], al +0x552315: add byte ptr [eax], al +0x552317: add byte ptr [eax], al +0x552319: push es +0x55231a: dec esp +0x55231b: popal +0x55231c: bound esp, qword ptr [ebp + 0x6c] +0x55231f: xor al, byte ptr [eax + eax] +0x552322: adc eax, dword ptr [eax] +0x552324: cmp al, 0x25 +0x552326: push ebp +0x552327: add byte ptr [ebx + esi*2], cl +0x55232a: inc edx +0x55232b: je 0x55239b +0x55232d: pop edi +0x55232e: dec edi +0x55232f: imul eax, dword ptr [ebx + 0x6c], 0x69 +0x552333: arpl word ptr [ebx + 0x17], bp +0x552336: add byte ptr [eax + 0x25], cl +0x552339: push ebp +0x55233a: add byte ptr [eax], dl +0x55233c: jae 0x552380 +0x55233e: je 0x5523ae +0x552340: pop edi +0x552341: inc ebx +0x552342: popal +0x552343: outsb dx, byte ptr [esi] +0x552344: arpl word ptr [ebp + 0x6c], sp +0x552347: inc ebx +0x552348: insb byte ptr es:[edi], dx +0x552349: imul esp, dword ptr [ebx + 0x6b], 0x25540014 +0x552350: push ebp +0x552351: add byte ptr [0x5f644577], cl +0x552357: push esi +0x552358: popal +0x552359: insb byte ptr es:[edi], dx +0x55235a: inc ebx +0x55235b: push 0x65676e61 +0x552360: adc eax, 0x55262400 +0x552365: add byte ptr [esi], cl +0x552367: ja 0x5523ae +0x552369: pop edi +0x55236b: push esi +0x55236c: popal +0x55236d: insb byte ptr es:[edi], dx +0x55236e: dec ebx +0x55236f: jns 0x5523b6 +0x552372: outsd dx, dword ptr [esi] +0x552373: ja 0x5523e3 +0x552375: or eax, 0x5f4d7754 +0x55237a: inc edi +0x55237b: je 0x5523dd +0x55237e: push esi +0x55237f: popal +0x552380: insb byte ptr es:[edi], dx +0x552381: jne 0x5523e8 +0x552383: add eax, dword ptr [eax] +0x552385: .byte 0xf0 +0x552386: loope 0x5523e7 +0x552388: add ah, bl +0x55238a: in eax, dx +0x55238b: pop edi +0x55238c: add byte ptr [esi + 0x5f], ah +0x552390: add byte ptr [ebp + 0x23980040], cl +0x552396: push ebp +0x552397: add byte ptr [edi], al +0x552399: or eax, 0x5f4d7754 +0x55239e: inc edi +0x55239f: je 0x552401 +0x5523a2: push esi +0x5523a3: popal +0x5523a4: insb byte ptr es:[edi], dx +0x5523a5: jne 0x55240c +0x5523a7: enter 0x5521, 0 +0x5523ab: test ah, dl +0x5523ad: pop edi +0x5523ae: add byte ptr [eax + eax + 9], bl +0x5523b2: inc edi +0x5523b3: je 0x552415 +0x5523b6: push esi +0x5523b7: popal +0x5523b8: insb byte ptr es:[edi], dx +0x5523b9: jne 0x552420 +0x5523bb: add byte ptr [eax], al +0x5523bd: lea eax, [eax] +0x5523c0: push ebp +0x5523c1: mov ebp, esp +0x5523c3: add esp, -0xc +0x5523c6: push ebx +0x5523c7: mov ebx, ecx +0x5523c9: mov dword ptr [ebp - 8], edx +0x5523cc: mov dword ptr [ebp - 4], eax +0x5523cf: mov eax, dword ptr [ebp - 4] +0x5523d2: call 0x4012c8 +0x5523d7: mov eax, dword ptr [ebp - 8] +0x5523da: call 0x4012c8 +0x5523df: xor eax, eax +0x5523e1: push ebp +0x5523e2: push 0x552529 +0x5523e7: push dword ptr fs:[eax] +0x5523ea: mov dword ptr fs:[eax], esp +0x5523ed: mov byte ptr [ebp - 9], 0 +0x5523f1: mov ecx, 0x5fa0fc +0x5523f6: mov eax, dword ptr [0x5fd480] +0x5523fb: mov eax, dword ptr [eax] +0x5523fd: mov edx, dword ptr [0x55217c] +0x552403: call 0x402360 +0x552408: xor edx, edx +0x55240a: push ebp +0x55240b: push 0x552507 +0x552410: push dword ptr fs:[edx] +0x552413: mov dword ptr fs:[edx], esp +0x552416: mov edx, dword ptr [ebp - 4] +0x552419: mov eax, dword ptr [0x5fa0fc] +0x55241e: call 0x4031b8 +0x552423: mov eax, dword ptr [ebx] +0x552425: mov dword ptr [0x5fa10c], eax +0x55242b: mov eax, dword ptr [ebx + 4] +0x55242e: mov dword ptr [0x5fa110], eax +0x552434: mov eax, dword ptr [ebp + 0x18] +0x552437: mov dword ptr [0x5fa104], eax +0x55243d: mov eax, dword ptr [ebp + 0x1c] +0x552440: mov dword ptr [0x5fa108], eax +0x552446: mov eax, dword ptr [0x5fa0fc] +0x55244b: mov eax, dword ptr [eax + 0x2f0] +0x552451: mov edx, dword ptr [ebp - 8] +0x552454: call 0x4031b8 +0x552459: fld qword ptr [ebx] +0x55245b: add esp, -0xc +0x55245e: fstp xword ptr [esp] +0x552461: wait +0x552462: mov eax, dword ptr [0x5fa0fc] +0x552467: mov eax, dword ptr [eax + 0x2f4] +0x55246d: call 0x404b98 +0x552472: fld qword ptr [ebp + 0x18] +0x552475: mov eax, dword ptr [0x5fa0fc] +0x55247a: mov eax, dword ptr [eax + 0x2f4] +0x552480: fstp xword ptr [eax + 0x240] +0x552486: wait +0x552487: fld qword ptr [ebp + 8] +0x55248a: fstp xword ptr [eax + 0x250] +0x552490: wait +0x552491: mov eax, dword ptr [0x5fa0fc] +0x552496: mov edx, dword ptr [eax] +0x552498: call dword ptr [edx + 0xe8] +0x55249e: mov eax, dword ptr [0x5fa0fc] +0x5524a3: cmp dword ptr [eax + 0x24c], 1 +0x5524aa: jne 0x5524ef +0x5524ac: mov eax, dword ptr [0x5fa0fc] +0x5524b1: mov eax, dword ptr [eax + 0x2f4] +0x5524b7: call 0x404b90 +0x5524bc: fstp qword ptr [ebx] +0x5524be: wait +0x5524bf: fld qword ptr [ebx] +0x5524c1: fcomp qword ptr [ebp + 0x10] +0x5524c4: fnstsw ax +0x5524c6: sahf +0x5524c7: jbe 0x5524d6 +0x5524c9: mov eax, dword ptr [ebp + 0x10] +0x5524cc: mov dword ptr [ebx], eax +0x5524ce: mov eax, dword ptr [ebp + 0x14] +0x5524d1: mov dword ptr [ebx + 4], eax +0x5524d4: jmp 0x5524eb +0x5524d6: fld qword ptr [ebx] +0x5524d8: fcomp qword ptr [ebp + 8] +0x5524db: fnstsw ax +0x5524dd: sahf +0x5524de: jae 0x5524eb +0x5524e0: mov eax, dword ptr [ebp + 8] +0x5524e3: mov dword ptr [ebx], eax +0x5524e5: mov eax, dword ptr [ebp + 0xc] +0x5524e8: mov dword ptr [ebx + 4], eax +0x5524eb: mov byte ptr [ebp - 9], 1 +0x5524ef: xor eax, eax +0x5524f1: pop edx +0x5524f2: pop ecx +0x5524f3: pop ecx +0x5524f4: mov dword ptr fs:[eax], edx +0x5524f7: push 0x55250e +0x5524fc: mov eax, 0x5fa0fc +0x552501: call 0x402090 +0x552506: ret +0x552507: jmp 0x401200 +0x55250c: jmp 0x5524fc +0x55250e: xor eax, eax +0x552510: pop edx +0x552511: pop ecx +0x552512: pop ecx +0x552513: mov dword ptr fs:[eax], edx +0x552516: push 0x552530 +0x55251b: lea eax, [ebp - 8] +0x55251e: mov edx, 2 +0x552523: call 0x401258 +0x552528: ret +0x552529: jmp 0x401200 +0x55252e: jmp 0x55251b +0x552530: mov al, byte ptr [ebp - 9] +0x552533: pop ebx +0x552534: mov esp, ebp +0x552536: pop ebp +0x552537: ret 0x18 +0x55253a: mov eax, eax +0x55253c: mov dword ptr [eax + 0x24c], 1 +0x552546: ret +0x552547: nop +0x552548: mov dword ptr [eax + 0x24c], 2 +0x552552: ret +0x552553: nop +0x552554: push ebp +0x552555: mov ebp, esp +0x552557: add esp, -0xc +0x55255a: push ebx +0x55255b: xor ecx, ecx +0x55255d: mov dword ptr [ebp - 0xc], ecx +0x552560: mov ebx, eax +0x552562: xor eax, eax +0x552564: push ebp +0x552565: push 0x5525f3 +0x55256a: push dword ptr fs:[eax] +0x55256d: mov dword ptr fs:[eax], esp +0x552570: mov eax, dword ptr [ebx + 0x2f4] +0x552576: call 0x404b90 +0x55257b: fstp qword ptr [ebp - 8] +0x55257e: wait +0x55257f: fld qword ptr [0x5fa104] +0x552585: fcomp dword ptr [0x552600] +0x55258b: fnstsw ax +0x55258d: sahf +0x55258e: jne 0x55259f +0x552590: xor edx, edx +0x552592: mov eax, dword ptr [ebx + 0x304] +0x552598: call 0x4031b8 +0x55259d: jmp 0x5525dd +0x55259f: fld qword ptr [ebp - 8] +0x5525a2: fdiv qword ptr [0x5fa104] +0x5525a8: fmul dword ptr [0x552604] +0x5525ae: add esp, -0xc +0x5525b1: fstp xword ptr [esp] +0x5525b4: wait +0x5525b5: lea edx, [ebp - 0xc] +0x5525b8: mov eax, 0x552610 ; "0.###" +0x5525bd: call 0x401fd8 +0x5525c2: lea eax, [ebp - 0xc] +0x5525c5: mov edx, 0x552620 ; "%" +0x5525ca: call 0x4012a8 +0x5525cf: mov edx, dword ptr [ebp - 0xc] +0x5525d2: mov eax, dword ptr [ebx + 0x304] +0x5525d8: call 0x4031b8 +0x5525dd: xor eax, eax +0x5525df: pop edx +0x5525e0: pop ecx +0x5525e1: pop ecx +0x5525e2: mov dword ptr fs:[eax], edx +0x5525e5: push 0x5525fa +0x5525ea: lea eax, [ebp - 0xc] +0x5525ed: call 0x401250 +0x5525f2: ret +0x5525f3: jmp 0x401200 +0x5525f8: jmp 0x5525ea +0x5525fa: pop ebx +0x5525fb: mov esp, ebp +0x5525fd: pop ebp +0x5525fe: ret +0x5525ff: add byte ptr [eax], al +0x552601: add byte ptr [eax], al +0x552603: add byte ptr [eax], al +0x552605: add al, cl +0x552607: inc edx +0x552608: .byte 0xff +0x552609: .byte 0xff +0x55260a: .byte 0xff +0x55260b: inc dword ptr [0x30000000] +0x552611: and esp, dword ptr cs:[ebx] +0x552614: and eax, dword ptr [eax] +0x552616: add byte ptr [eax], al +0x552618: .byte 0xff +0x552619: .byte 0xff +0x55261a: .byte 0xff +0x55261b: inc dword ptr [ecx] +0x55261d: add byte ptr [eax], al +0x55261f: add byte ptr [0x55000000], ah +0x552625: mov ebp, esp +0x552627: add esp, -0x14 +0x55262a: push ebx +0x55262b: push esi +0x55262c: push edi +0x55262d: mov dword ptr [ebp - 8], ecx +0x552630: mov esi, edx +0x552632: mov dword ptr [ebp - 4], eax +0x552635: mov ebx, dword ptr [ebp + 8] +0x552638: mov edi, 3 +0x55263d: push 0x4002 +0x552642: push 0xa0000000 +0x552647: push 0 +0x552649: mov dword ptr [ebp - 0x14], edi +0x55264c: fild dword ptr [ebp - 0x14] +0x55264f: add esp, -0xc +0x552652: fstp xword ptr [esp] +0x552655: wait +0x552656: call 0x402ad0 +0x55265b: fstp qword ptr [ebp - 0x10] +0x55265e: wait +0x55265f: mov al, byte ptr [0x55285c] +0x552664: cmp al, bl +0x552666: jne 0x552691 +0x552668: mov edi, 4 +0x55266d: push 0x4002 +0x552672: push 0xa0000000 +0x552677: push 0 +0x552679: mov dword ptr [ebp - 0x14], edi +0x55267c: fild dword ptr [ebp - 0x14] +0x55267f: add esp, -0xc +0x552682: fstp xword ptr [esp] +0x552685: wait +0x552686: call 0x402ad0 +0x55268b: fstp qword ptr [ebp - 0x10] +0x55268e: wait +0x55268f: jmp 0x5526f3 +0x552691: mov al, byte ptr [0x552860] +0x552696: cmp al, bl +0x552698: jne 0x5526c3 +0x55269a: mov edi, 5 +0x55269f: push 0x4002 +0x5526a4: push 0xa0000000 +0x5526a9: push 0 +0x5526ab: mov dword ptr [ebp - 0x14], edi +0x5526ae: fild dword ptr [ebp - 0x14] +0x5526b1: add esp, -0xc +0x5526b4: fstp xword ptr [esp] +0x5526b7: wait +0x5526b8: call 0x402ad0 +0x5526bd: fstp qword ptr [ebp - 0x10] +0x5526c0: wait +0x5526c1: jmp 0x5526f3 +0x5526c3: mov al, byte ptr [0x552864] +0x5526c8: cmp al, bl +0x5526ca: jne 0x5526f3 +0x5526cc: mov edi, 6 +0x5526d1: push 0x4002 +0x5526d6: push 0xa0000000 +0x5526db: push 0 +0x5526dd: mov dword ptr [ebp - 0x14], edi +0x5526e0: fild dword ptr [ebp - 0x14] +0x5526e3: add esp, -0xc +0x5526e6: fstp xword ptr [esp] +0x5526e9: wait +0x5526ea: call 0x402ad0 +0x5526ef: fstp qword ptr [ebp - 0x10] +0x5526f2: wait +0x5526f3: mov eax, dword ptr [ebp - 8] +0x5526f6: mov ax, word ptr [eax] +0x5526f9: sub ax, 0xd +0x5526fd: je 0x55271a +0x5526ff: sub ax, 0xe +0x552703: je 0x55272c +0x552705: sub ax, 0xb +0x552709: je 0x55275c +0x55270b: sub ax, 2 +0x55270f: je 0x5527db +0x552715: jmp 0x552851 +0x55271a: mov eax, dword ptr [ebp - 4] +0x55271d: mov dword ptr [eax + 0x24c], 1 +0x552727: jmp 0x552851 +0x55272c: fld qword ptr [0x5fa10c] +0x552732: add esp, -0xc +0x552735: fstp xword ptr [esp] +0x552738: wait +0x552739: mov eax, dword ptr [ebp - 4] +0x55273c: mov eax, dword ptr [eax + 0x2f4] +0x552742: call 0x404b98 +0x552747: mov eax, dword ptr [ebp - 4] +0x55274a: mov eax, dword ptr [eax + 0x2f4] +0x552750: mov dl, 1 +0x552752: call 0x404ba0 +0x552757: jmp 0x552851 +0x55275c: mov ebx, esi +0x55275e: mov eax, ebx +0x552760: call 0x404b90 +0x552765: fadd qword ptr [ebp - 0x10] +0x552768: fld xword ptr [ebx + 0x240] +0x55276e: fcompp +0x552770: fnstsw ax +0x552772: sahf +0x552773: jae 0x552795 +0x552775: mov ax, word ptr [esi + 0x248] +0x55277c: push eax +0x55277d: push dword ptr [esi + 0x244] +0x552783: push dword ptr [esi + 0x240] +0x552789: mov eax, ebx +0x55278b: call 0x404b98 +0x552790: jmp 0x552851 +0x552795: mov eax, ebx +0x552797: call 0x404b90 +0x55279c: fld xword ptr [ebx + 0x240] +0x5527a2: fadd qword ptr [ebp - 0x10] +0x5527a5: fcompp +0x5527a7: fnstsw ax +0x5527a9: sahf +0x5527aa: jbe 0x552851 +0x5527b0: push 0 +0x5527b2: neg edi +0x5527b4: push edi +0x5527b5: mov eax, ebx +0x5527b7: call 0x404b90 +0x5527bc: fadd qword ptr [ebp - 0x10] +0x5527bf: add esp, -0xc +0x5527c2: fstp xword ptr [esp] +0x5527c5: wait +0x5527c6: call 0x422904 +0x5527cb: add esp, -0xc +0x5527ce: fstp xword ptr [esp] +0x5527d1: wait +0x5527d2: mov eax, ebx +0x5527d4: call 0x404b98 +0x5527d9: jmp 0x552851 +0x5527db: mov ebx, esi +0x5527dd: mov eax, ebx +0x5527df: call 0x404b90 +0x5527e4: fsub qword ptr [ebp - 0x10] +0x5527e7: fld xword ptr [ebx + 0x250] +0x5527ed: fcompp +0x5527ef: fnstsw ax +0x5527f1: sahf +0x5527f2: jbe 0x552811 +0x5527f4: mov ax, word ptr [esi + 0x258] +0x5527fb: push eax +0x5527fc: push dword ptr [esi + 0x254] +0x552802: push dword ptr [esi + 0x250] +0x552808: mov eax, ebx +0x55280a: call 0x404b98 +0x55280f: jmp 0x552851 +0x552811: mov eax, ebx +0x552813: call 0x404b90 +0x552818: fld xword ptr [ebx + 0x250] +0x55281e: fsub qword ptr [ebp - 0x10] +0x552821: fcompp +0x552823: fnstsw ax +0x552825: sahf +0x552826: jae 0x552851 +0x552828: push 1 +0x55282a: neg edi +0x55282c: push edi +0x55282d: mov eax, ebx +0x55282f: call 0x404b90 +0x552834: fsub qword ptr [ebp - 0x10] +0x552837: add esp, -0xc +0x55283a: fstp xword ptr [esp] +0x55283d: wait +0x55283e: call 0x422904 +0x552843: add esp, -0xc +0x552846: fstp xword ptr [esp] +0x552849: wait +0x55284a: mov eax, ebx +0x55284c: call 0x404b98 +0x552851: pop edi +0x552852: pop esi +0x552853: pop ebx +0x552854: mov esp, ebp +0x552856: pop ebp +0x552857: ret 4 +0x55285a: add byte ptr [eax], al +0x55285c: add dword ptr [eax], eax +0x55285e: add byte ptr [eax], al +0x552860: add al, byte ptr [eax] +0x552862: add byte ptr [eax], al +0x552864: add al, 0 +0x552866: add byte ptr [eax], al +0x552868: push ebp +0x552869: mov ebp, esp +0x55286b: xor eax, eax +0x55286d: push ebp +0x55286e: push 0x55288d +0x552873: push dword ptr fs:[eax] +0x552876: mov dword ptr fs:[eax], esp +0x552879: inc dword ptr [0x5fa100] +0x55287f: xor eax, eax +0x552881: pop edx +0x552882: pop ecx +0x552883: pop ecx +0x552884: mov dword ptr fs:[eax], edx +0x552887: push 0x552894 +0x55288c: ret +0x55288d: jmp 0x401200 +0x552892: jmp 0x55288c +0x552894: pop ebp +0x552895: ret +0x552896: mov eax, eax +0x552898: sub dword ptr [0x5fa100], 1 +0x55289f: ret +0x5528a0: in al, dx +0x5528a1: sub byte ptr [ebp], dl +0x5528a4: add byte ptr [eax], al +0x5528a6: add byte ptr [eax], al +0x5528a8: add byte ptr [eax], al +0x5528aa: add byte ptr [eax], al +0x5528ac: add byte ptr [eax], al +0x5528ae: add byte ptr [eax], al +0x5528b0: inc esp +0x5528b1: push ebp +0x5528b3: add ah, bl +0x5528b5: sub dword ptr [ebp], edx +0x5528b8: or byte ptr [edx*2], ch +0x5528bf: add ah, dh +0x5528c1: sub eax, 0x3780055 +0x5528c6: add byte ptr [eax], al +0x5528c8: mov ah, dl +0x5528ca: pop edi +0x5528cb: add byte ptr [eax], dh +0x5528cd: sub dword ptr [eax], eax +0x5528d0: add byte ptr [ecx], ah +0x5528d2: inc eax +0x5528d3: add byte ptr [eax], dl +0x5528d5: and dword ptr [eax], eax +0x5528d8: enter 0x4011, 0 +0x5528dc: lock and dword ptr [eax], eax +0x5528e0: pushal +0x5528e1: adc dword ptr [eax], eax +0x5528e4: push 0x18004011 +0x5528e9: and dword ptr [eax], eax +0x5528ec: xor byte ptr [esi], dh +0x5528ee: inc eax +0x5528ef: add byte ptr [eax + 0x21], cl +0x5528f2: inc eax +0x5528f3: add byte ptr [eax + 0x30004024], ch +0x5528f9: and dword ptr [eax], eax +0x5528fc: cmp byte ptr [ecx], ah +0x5528fe: inc eax +0x5528ff: add byte ptr [eax + 0x21], al +0x552902: inc eax +0x552903: add byte ptr [eax + 0x38004031], cl +0x552909: sub dword ptr [eax], eax +0x55290c: nop +0x55290d: and dword ptr [eax], eax +0x552910: lock sub byte ptr [eax], al +0x552914: js 0x552938 +0x552916: inc eax +0x552917: add al, bh +0x552919: and byte ptr [eax], al +0x55291c: and byte ptr [esi], dh +0x55291e: inc eax +0x55291f: add byte ptr [eax], bh +0x552921: inc eax +0x552923: add byte ptr [eax], ch +0x552925: inc eax +0x552927: add al, al +0x552929: xor byte ptr [eax], al +0x55292c: sal byte ptr [0x21500040], 1 +0x552932: inc eax +0x552933: add byte ptr [eax - 0x4fffbfcb], dl +0x552939: xor byte ptr [eax], al +0x55293c: mov eax, 0x58004030 +0x552941: and dword ptr [eax], eax +0x552944: mov eax, 0x80004033 +0x552949: xor dword ptr [eax], eax +0x55294c: loopne 0x55297e +0x55294e: inc eax +0x55294f: add byte ptr [eax - 0x77ffbfcf], ah +0x552955: and dword ptr [eax], eax +0x552958: pushal +0x552959: and dword ptr [eax], eax +0x55295c: sal byte ptr [ecx], 0x40 +0x55295f: add byte ptr [eax - 0x37ffbfdf], bl +0x552965: xor eax, dword ptr [eax] +0x552968: cwde +0x552969: xor eax, 0x35a80040 +0x55296e: inc eax +0x55296f: add byte ptr [eax + 0x35], bh +0x552972: inc eax +0x552973: add byte ptr [eax - 0xfffbfcb], ah +0x552979: and byte ptr [eax], al +0x55297c: mov al, byte ptr [0x68004021] +0x552981: xor al, 0x40 +0x552983: add al, dl +0x552985: and dword ptr [eax], eax +0x552988: loopne 0x5529ab +0x55298a: inc eax +0x55298b: add al, bl +0x55298d: and dword ptr [eax], eax +0x552990: jo 0x5529c6 +0x552992: inc eax +0x552993: add byte ptr [eax + 0x34], bh +0x552996: inc eax +0x552997: add al, ch +0x552999: and dword ptr [eax], eax +0x55299c: pop eax +0x55299d: xor al, 0x40 +0x55299f: add al, cl +0x5529a1: xor eax, 0x22180040 +0x5529a6: inc eax +0x5529a7: add byte ptr [eax + 0x60004035], cl +0x5529ad: and al, byte ptr [eax] +0x5529b0: loopne 0x5529d2 +0x5529b2: inc eax +0x5529b3: add al, ch +0x5529b5: and byte ptr [eax], al +0x5529b8: cmp byte ptr [edx], ah +0x5529ba: inc eax +0x5529bb: add byte ptr [eax], ah +0x5529bd: and dword ptr [eax], eax +0x5529c0: sub byte ptr [ecx], ah +0x5529c2: inc eax +0x5529c3: add byte ptr [eax + 0x22], dh +0x5529c6: inc eax +0x5529c7: add byte ptr [eax], cl +0x5529c9: and dword ptr [eax], eax +0x5529cc: push eax +0x5529cd: and al, byte ptr [eax] +0x5529d0: or byte ptr [edx], ah +0x5529d2: inc eax +0x5529d3: add byte ptr [eax + 0x22], ch +0x5529d6: inc eax +0x5529d7: add byte ptr [eax + 0x22004021], al +0x5529dd: add byte ptr [eax], al +0x5529df: push ebp +0x5529e1: add al, dh +0x5529e3: add al, byte ptr [eax] +0x5529e5: add byte ptr [eax], al +0x5529e7: add byte ptr [esi], al +0x5529e9: push eax +0x5529ea: popal +0x5529eb: outsb dx, byte ptr [esi] +0x5529ec: insb byte ptr es:[edi], dx +0x5529ee: xor esp, esi +0x5529f0: add al, byte ptr [eax] +0x5529f2: add byte ptr [ecx], al +0x5529f4: add byte ptr [edx], cl +0x5529f6: push ebx +0x5529f7: je 0x552a5a +0x5529f9: je 0x552a70 +0x5529fb: jae 0x552a3f +0x5529fd: popal +0x5529fe: jb 0x552a31 +0x552a00: clc +0x552a01: add al, byte ptr [eax] +0x552a03: add byte ptr [eax], al +0x552a05: add byte ptr [esi], al +0x552a07: push eax +0x552a08: popal +0x552a09: outsb dx, byte ptr [esi] +0x552a0a: insb byte ptr es:[edi], dx +0x552a0c: xor bh, ah +0x552a0e: add al, byte ptr [eax] +0x552a10: add byte ptr [edx], al +0x552a12: add byte ptr [edi], al +0x552a14: je 0x552a78 +0x552a16: pop edi +0x552a17: inc edx +0x552a18: outsd dx, dword ptr [esi] +0x552a19: jno 0x552a7a +0x552a1b: add byte ptr [ebx], al +0x552a1d: add byte ptr [eax], al +0x552a1f: add eax, dword ptr [eax] +0x552a21: or byte ptr [edx + 0x47], dh +0x552a24: jb 0x552a8a +0x552a26: pop edi +0x552a27: inc edx +0x552a28: outsd dx, dword ptr [esi] +0x552a29: jno 0x552a2f +0x552a2b: add eax, dword ptr [eax] +0x552a2d: add byte ptr [eax], al +0x552a2f: add byte ptr [edi], al +0x552a31: jo 0x552aa1 +0x552a33: pop edi +0x552a34: inc ebx +0x552a35: outsd dx, dword ptr [esi] +0x552a36: outsb dx, byte ptr [esi] +0x552a37: je 0x552a41 +0x552a39: add eax, dword ptr [eax] +0x552a3b: add byte ptr [eax + eax], al +0x552a3e: pop es +0x552a3f: insb byte ptr es:[edi], dx +0x552a40: bound edx, qword ptr [eax + 0x65] +0x552a43: jb 0x552aa4 +0x552a45: dec esp +0x552a46: or al, 3 +0x552a48: add byte ptr [eax], al +0x552a4a: add al, 0 +0x552a4c: pop es +0x552a4d: insb byte ptr es:[edi], dx +0x552a4e: bound edx, qword ptr [eax + 0x65] +0x552a51: jb 0x552ab2 +0x552a53: dec ebp +0x552a54: adc byte ptr [ebx], al +0x552a56: add byte ptr [eax], al +0x552a58: add al, 0 +0x552a5a: pop es +0x552a5b: insb byte ptr es:[edi], dx +0x552a5c: bound edx, qword ptr [eax + 0x65] +0x552a5f: jb 0x552ac0 +0x552a61: push ebx +0x552a62: adc al, 3 +0x552a64: add byte ptr [eax], al +0x552a66: add eax, 0x626c0500 +0x552a6b: dec ebp +0x552a6c: jae 0x552ad5 +0x552a6e: sbb byte ptr [ebx], al +0x552a70: add byte ptr [eax], al +0x552a72: push es +0x552a73: add byte ptr [esi], cl +0x552a75: inc ebx +0x552a76: inc edx +0x552a77: outsd dx, dword ptr [esi] +0x552a78: js 0x552acd +0x552a7a: je 0x552ac5 +0x552a7d: popal +0x552a7e: insb byte ptr es:[edi], dx +0x552a7f: dec ebp +0x552a80: dec esp +0x552a81: push ebx +0x552a82: push edi +0x552a83: sbb al, 3 +0x552a85: add byte ptr [eax], al +0x552a87: push es +0x552a88: add byte ptr [esi], cl +0x552a8a: inc ebx +0x552a8b: inc edx +0x552a8c: outsd dx, dword ptr [esi] +0x552a8d: js 0x552ad2 +0x552a8f: jb 0x552af6 +0x552a91: popal +0x552a92: je 0x552af9 +0x552a94: dec ecx +0x552a95: dec esp +0x552a96: ja 0x552b01 +0x552a98: and byte ptr [ebx], al +0x552a9a: add byte ptr [eax], al +0x552a9c: pop es +0x552a9d: add byte ptr [edi], al +0x552a9f: push eax +0x552aa2: jb 0x552b04 +0x552aa5: dec esp +0x552aa6: and al, 3 +0x552aa8: add byte ptr [eax], al +0x552aaa: pop es +0x552aab: add byte ptr [edi], al +0x552aad: push eax +0x552ab0: jb 0x552b12 +0x552ab3: dec ebp +0x552ab4: sub byte ptr [ebx], al +0x552ab6: add byte ptr [eax], al +0x552ab8: pop es +0x552ab9: add byte ptr [edi], al +0x552abb: push eax +0x552abe: jb 0x552b20 +0x552ac1: push ebx +0x552ac2: sub al, 3 +0x552ac4: add byte ptr [eax], al +0x552ac6: push es +0x552ac7: add byte ptr [edi], cl +0x552ac9: inc ebx +0x552aca: inc edx +0x552acb: outsd dx, dword ptr [esi] +0x552acc: js 0x552b21 +0x552ace: je 0x552b24 +0x552ad1: popal +0x552ad2: insd dword ptr es:[edi], dx +0x552ad3: xor al, byte ptr gs:[ecx + ecx*2 + 0x46] +0x552ad8: xor byte ptr [ebx], al +0x552ada: add byte ptr [eax], al +0x552adc: or byte ptr [eax], al +0x552ade: pop es +0x552adf: inc esi +0x552ae0: imul ebp, dword ptr [esi + 0x64], 0x34676c44 +0x552ae7: add eax, dword ptr [eax] +0x552ae9: add byte ptr [ecx], cl +0x552aeb: add byte ptr [ebx], cl +0x552aed: imul ebp, dword ptr [ebp + 0x67], 0x74734c5f +0x552af4: pop edi +0x552af5: inc edx +0x552af6: je 0x552b66 +0x552af8: cmp byte ptr [ebx], al +0x552afa: add byte ptr [eax], al +0x552afc: or al, byte ptr [eax] +0x552afe: or eax, dword ptr [ecx + 0x63] +0x552b01: je 0x552b6c +0x552b03: outsd dx, dword ptr [esi] +0x552b04: outsb dx, byte ptr [esi] +0x552b05: dec esp +0x552b06: imul esi, dword ptr [ebx + 0x74], 0x33c31 +0x552b0d: add byte ptr [ebx], cl +0x552b0f: add byte ptr [esi], al +0x552b11: inc ecx +0x552b12: arpl word ptr [edi + ebx*2 + 0x4f], si +0x552b16: dec ebx +0x552b17: inc eax +0x552b18: add eax, dword ptr [eax] +0x552b1a: add byte ptr [ebx], cl +0x552b1c: add byte ptr [edx], cl +0x552b1e: inc ecx +0x552b1f: arpl word ptr [edi + ebx*2 + 0x43], si +0x552b23: popal +0x552b24: outsb dx, byte ptr [esi] +0x552b25: arpl word ptr [ebp + 0x6c], sp +0x552b28: inc esp +0x552b29: add eax, dword ptr [eax] +0x552b2b: add byte ptr [ebx], cl +0x552b2d: add byte ptr [eax], cl +0x552b2f: inc ecx +0x552b30: arpl word ptr [edi + ebx*2 + 0x46], si +0x552b34: imul ebp, dword ptr [esi + 0x64], 0x348 +0x552b3b: or al, 0 +0x552b3d: or esi, dword ptr [ebx + 0x42] +0x552b40: je 0x552bb0 +0x552b42: pop edi +0x552b43: inc ebx +0x552b44: popal +0x552b45: outsb dx, byte ptr [esi] +0x552b46: arpl word ptr [ebp + 0x6c], sp +0x552b49: dec esp +0x552b4a: add eax, dword ptr [eax] +0x552b4c: add byte ptr [eax + eax], cl +0x552b4f: pop es +0x552b50: jae 0x552b94 +0x552b52: je 0x552bc2 +0x552b54: pop edi +0x552b55: dec edi +0x552b56: imul edx, dword ptr [eax + 3], 0 +0x552b5a: add byte ptr [eax], al +0x552b5c: add byte ptr [esi], al +0x552b5e: jo 0x552bce +0x552b60: pop edi +0x552b61: dec esp +0x552b62: jbe 0x552bb9 +0x552b65: add eax, dword ptr [eax] +0x552b67: add byte ptr [0x42630700], cl +0x552b6d: js 0x552bce +0x552b6f: dec esp +0x552b70: jbe 0x552bcb +0x552b73: add eax, dword ptr [eax] +0x552b75: add byte ptr [eax + eax], al +0x552b78: push es +0x552b79: dec esp +0x552b7a: popal +0x552b7b: bound esp, qword ptr [ebp + 0x6c] +0x552b7e: xor dword ptr [ebx + eax], ebx +0x552b82: add byte ptr [esi], cl +0x552b84: add byte ptr [edx], cl +0x552b86: jae 0x552bca +0x552b88: je 0x552bf8 +0x552b8a: pop edi +0x552b8b: push ebx +0x552b8c: je 0x552bdc +0x552b8f: push ebx +0x552b90: pushal +0x552b91: add eax, dword ptr [eax] +0x552b93: add byte ptr [ebx], cl +0x552b95: add byte ptr [0x5f746341], cl +0x552b9b: inc ebx +0x552b9c: popal +0x552b9d: insb byte ptr es:[edi], dx +0x552b9e: insb byte ptr es:[edi], dx +0x552b9f: pop edi +0x552ba0: inc ebx +0x552ba1: popal +0x552ba2: insb byte ptr es:[edi], dx +0x552ba3: arpl word ptr [ebx + eax], sp +0x552ba7: add byte ptr [eax + eax], cl +0x552baa: or al, 0x53 +0x552bac: jo 0x552c13 +0x552bae: inc edx +0x552bb1: jne 0x552c27 +0x552bb3: je 0x552c24 +0x552bb5: outsb dx, byte ptr [esi] +0x552bb6: xor dword ptr [eax + 3], ebp +0x552bb9: add byte ptr [eax], al +0x552bbb: or eax, dword ptr [eax] +0x552bbd: or al, 0x41 +0x552bbf: arpl word ptr [edi + ebx*2 + 0x43], si +0x552bc3: popal +0x552bc4: insb byte ptr es:[edi], dx +0x552bc5: arpl word ptr [edi + 0x45], bx +0x552bc8: jae 0x552c3e +0x552bca: insb byte ptr es:[edi], dx +0x552bcb: add eax, dword ptr [eax] +0x552bcd: add byte ptr [ebx], cl +0x552bcf: add byte ptr [ecx + eax*2], cl +0x552bd2: arpl word ptr [edi + ebx*2 + 0x46], si +0x552bd6: imul ebp, dword ptr [esi + 0x64], 0x67614e5f +0x552bdd: jo 0x552be2 +0x552bdf: add byte ptr [eax], al +0x552be1: or al, 0 +0x552be3: or al, 0x53 +0x552be5: jo 0x552c4c +0x552be7: inc edx +0x552bea: jne 0x552c60 +0x552bec: je 0x552c5d +0x552bee: outsb dx, byte ptr [esi] +0x552bef: xor dh, byte ptr [ebx + eax] +0x552bf3: add byte ptr [esi], al +0x552bf5: add byte ptr [ecx], dl +0x552bf7: inc ebx +0x552bf8: inc edx +0x552bf9: outsd dx, dword ptr [esi] +0x552bfa: js 0x552c4f +0x552bfc: je 0x552c47 +0x552bff: popal +0x552c00: insb byte ptr es:[edi], dx +0x552c01: pop edi +0x552c02: dec esi +0x552c03: inc edx +0x552c04: push ebp +0x552c05: inc edi +0x552c06: inc ecx +0x552c07: dec ebp +0x552c08: push ss +0x552c09: add byte ptr [edx], bl +0x552c0b: add al, dh +0x552c0d: xor al, 0x55 +0x552c0f: add byte ptr [ebx], dl +0x552c11: inc ebx +0x552c12: inc edx +0x552c13: outsd dx, dword ptr [esi] +0x552c14: js 0x552c59 +0x552c16: jb 0x552c7d +0x552c18: popal +0x552c19: je 0x552c80 +0x552c1b: dec ecx +0x552c1c: dec esp +0x552c1d: ja 0x552c88 +0x552c1f: inc ebx +0x552c20: insb byte ptr es:[edi], dx +0x552c21: imul esp, dword ptr [ebx + 0x6b], 0x37e80018 +0x552c28: push ebp +0x552c29: add byte ptr [ecx], dl +0x552c2b: jb 0x552c74 +0x552c2d: jb 0x552c93 +0x552c2f: pop edi +0x552c30: inc edx +0x552c31: outsd dx, dword ptr [esi] +0x552c32: jno 0x552c77 +0x552c34: insb byte ptr es:[edi], dx +0x552c36: insb byte ptr es:[edi], dx +0x552c37: inc ebp +0x552c38: outsb dx, byte ptr [esi] +0x552c39: je 0x552ca0 +0x552c3b: jb 0x552c54 +0x552c3d: add byte ptr [eax + edi], bh +0x552c40: push ebp +0x552c41: add byte ptr [eax], dl +0x552c43: jb 0x552c8c +0x552c45: jb 0x552cab +0x552c47: pop edi +0x552c48: inc edx +0x552c49: outsd dx, dword ptr [esi] +0x552c4a: jno 0x552c90 +0x552c4c: bound ebp, qword ptr [ebx + eax*2 + 0x6c] +0x552c50: imul esp, dword ptr [ebx + 0x6b], 0x38980017 +0x552c57: push ebp +0x552c58: add byte ptr [eax], dl +0x552c5a: jb 0x552ca3 +0x552c5c: jb 0x552cc2 +0x552c5e: pop edi +0x552c5f: inc edx +0x552c60: outsd dx, dword ptr [esi] +0x552c61: jno 0x552ca7 +0x552c63: jb 0x552cc6 +0x552c65: ja 0x552caa +0x552c67: insb byte ptr es:[edi], dx +0x552c69: insb byte ptr es:[edi], dx +0x552c6a: adc eax, dword ptr [eax] +0x552c6c: adc byte ptr [ecx], bh +0x552c6e: push ebp +0x552c6f: add byte ptr [edx + esi*2], cl +0x552c72: inc edi +0x552c73: jb 0x552cd9 +0x552c75: pop edi +0x552c76: inc edx +0x552c77: outsd dx, dword ptr [esi] +0x552c78: jno 0x552cbf +0x552c7a: js 0x552ce5 +0x552c7c: je 0x552c94 +0x552c7e: add byte ptr [ecx + edi], ch +0x552c81: push ebp +0x552c82: add byte ptr [edi], cl +0x552c84: jb 0x552ccd +0x552c86: jb 0x552cec +0x552c88: pop edi +0x552c89: inc edx +0x552c8a: outsd dx, dword ptr [esi] +0x552c8b: jno 0x552cd8 +0x552c8d: jns 0x552cd4 +0x552c90: outsd dx, dword ptr [esi] +0x552c91: ja 0x552d01 +0x552c93: sbb byte ptr [eax], al +0x552c95: cmp byte ptr [ecx], 0x55 +0x552c98: add byte ptr [ecx], dl +0x552c9a: jb 0x552ce3 +0x552c9c: jb 0x552d02 +0x552c9e: pop edi +0x552c9f: inc edx +0x552ca0: outsd dx, dword ptr [esi] +0x552ca1: jno 0x552cf5 +0x552ca3: outsd dx, dword ptr [esi] +0x552ca4: ja 0x552ce9 +0x552ca6: push 0x65676e61 +0x552cab: adc al, byte ptr [eax] +0x552cad: mov byte ptr [ecx], bh +0x552caf: push ebp +0x552cb0: add byte ptr [ebx], cl +0x552cb2: inc esi +0x552cb3: imul ebp, dword ptr [esi + 0x64], 0x46676c44 +0x552cba: imul ebp, dword ptr [esi + 0x64], 0x3c080014 +0x552cc1: push ebp +0x552cc2: add byte ptr [0x5f746341], cl +0x552cc8: dec edi +0x552cc9: dec ebx +0x552cca: inc ebp +0x552ccb: js 0x552d32 +0x552ccd: arpl word ptr [ebp + 0x74], si +0x552cd0: sbb byte ptr gs:[eax], al +0x552cd3: je 0x552d15 +0x552cd5: push ebp +0x552cd6: add byte ptr [ecx], dl +0x552cd8: inc ecx +0x552cd9: arpl word ptr [edi + ebx*2 + 0x43], si +0x552cdd: popal +0x552cde: outsb dx, byte ptr [esi] +0x552cdf: arpl word ptr [ebp + 0x6c], sp +0x552ce2: inc ebp +0x552ce3: js 0x552d4a +0x552ce5: arpl word ptr [ebp + 0x74], si +0x552ce8: push ss +0x552cea: add byte ptr [eax + eax*2 + 0x55], bh +0x552cee: add byte ptr [edi], cl +0x552cf0: inc ecx +0x552cf1: arpl word ptr [edi + ebx*2 + 0x46], si +0x552cf5: imul ebp, dword ptr [esi + 0x64], 0x63657845 +0x552cfc: jne 0x552d72 +0x552cfe: sbb dword ptr gs:[eax], eax +0x552d01: pushfd +0x552d02: inc eax +0x552d03: push ebp +0x552d04: add byte ptr [edx], dl +0x552d06: arpl word ptr [edx + 0x78], ax +0x552d09: pop edi +0x552d0a: dec esp +0x552d0b: jbe 0x552d64 +0x552d0e: popal +0x552d0f: insb byte ptr es:[edi], dx +0x552d10: jne 0x552d77 +0x552d12: inc ebx +0x552d13: push 0x65676e61 +0x552d18: adc eax, dword ptr [eax] +0x552d1a: call 0xc55827b +0x552d1f: dec ebp +0x552d20: dec ebx +0x552d21: pop edi +0x552d22: inc ebx +0x552d23: dec edi +0x552d24: dec esi +0x552d25: push esp +0x552d26: pop edi +0x552d27: inc edx +0x552d28: dec edi +0x552d29: push ecx +0x552d2a: pop edi +0x552d2b: adc eax, 0x55684c00 +0x552d30: add byte ptr [esi], cl +0x552d32: push eax +0x552d35: jb 0x552d97 +0x552d38: dec esp +0x552d39: dec ebx +0x552d3a: jns 0x552d81 +0x552d3d: outsd dx, dword ptr [esi] +0x552d3e: ja 0x552dae diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/STmate_TwM_Boxa_그림저장_0x514bc0.asm.txt b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/STmate_TwM_Boxa_그림저장_0x514bc0.asm.txt new file mode 100644 index 000000000..09eae348a --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate/REA 분석/37_파일입출력_잔여_작업자료_20261114/evidence/STmate_TwM_Boxa_그림저장_0x514bc0.asm.txt @@ -0,0 +1,217 @@ +0x514b00: add byte ptr [ebx - 0x3c74efae], cl +0x514b06: call 0x404790 <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x514b0b: mov eax, dword ptr [ebp - 4] +0x514b0e: cmp byte ptr [eax], 0x43 +0x514b11: je 0x514b44 +0x514b13: mov edx, dword ptr [0x5e618c] +0x514b19: mov edx, dword ptr [edx + 0x2a0] +0x514b1f: mov eax, ebx +0x514b21: call 0x404780 <@Apodset@TApolloTable@GetLogical$qqr17System@AnsiString> +0x514b26: test ax, ax +0x514b29: jne 0x514b44 +0x514b2b: mov edx, dword ptr [0x5e618c] +0x514b31: mov edx, dword ptr [edx + 0x200] +0x514b37: mov eax, ebx +0x514b39: call 0x404778 <@Apodset@TApolloTable@GetInteger$qqr17System@AnsiString> +0x514b3e: dec eax +0x514b3f: sub eax, 2 +0x514b42: jae 0x514b4d +0x514b44: mov eax, dword ptr [ebp + 0xc] +0x514b47: mov dword ptr [eax], 0xff +0x514b4d: xor eax, eax +0x514b4f: pop edx +0x514b50: pop ecx +0x514b51: pop ecx +0x514b52: mov dword ptr fs:[eax], edx +0x514b55: push 0x514b6a +0x514b5a: lea eax, [ebp - 4] +0x514b62: ret +0x514b63: jmp 0x401200 +0x514b68: jmp 0x514b5a +0x514b6a: pop ebx +0x514b6b: pop ecx +0x514b6c: pop ebp +0x514b6d: ret 0xc +0x514b70: mov edx, dword ptr [0x5fd480] +0x514b76: mov edx, dword ptr [edx] +0x514b78: mov edx, dword ptr [edx + 0x30] +0x514b7b: xchg edx, eax +0x514b7c: call 0x44bca0 <> +0x514b81: ret +0x514b82: mov eax, eax +0x514b84: push ebp +0x514b85: mov ebp, esp +0x514b87: mov ecx, 0x27 +0x514b8c: push 0 +0x514b8e: push 0 +0x514b90: dec ecx +0x514b91: jne 0x514b8c +0x514b93: push ecx +0x514b94: push ebx +0x514b95: mov ebx, eax +0x514b97: xor eax, eax +0x514b99: push ebp +0x514b9a: push 0x514db3 +0x514b9f: push dword ptr fs:[eax] +0x514ba2: mov dword ptr fs:[eax], esp +0x514ba5: xor eax, eax +0x514ba7: push ebp +0x514ba8: push 0x514d55 +0x514bad: push dword ptr fs:[eax] +0x514bb0: mov dword ptr fs:[eax], esp +0x514bb3: mov eax, dword ptr [0x5e5f80] +0x514bb8: mov eax, dword ptr [eax] +0x514bba: mov eax, dword ptr [eax + 0x98] +0x514bc0: call 0x403d20 <@Db@TDataSet@DisableControls$qqrv> +0x514bc5: lea edx, [ebp - 0x10c] +0x514bcb: mov eax, dword ptr [ebx + 0x3c8] +0x514bd1: mov eax, dword ptr [eax + 0x168] +0x514bd7: mov eax, dword ptr [eax + 0xc] +0x514bda: mov eax, dword ptr [eax] +0x514bdc: call 0x401158 <@System@TObject@ClassName$qqrp17System@TMetaClass> +0x514be1: lea edx, [ebp - 0x10c] +0x514be7: lea eax, [ebp - 0xc] +0x514bea: call 0x401288 <> +0x514bef: mov eax, dword ptr [ebp - 0xc] +0x514bf2: lea edx, [ebp - 4] +0x514bf5: call 0x401de0 <@Sysutils@UpperCase$qqrx17System@AnsiString> +0x514bfa: mov eax, dword ptr [0x5e5f80] +0x514bff: mov eax, dword ptr [eax] +0x514c01: mov eax, dword ptr [eax + 0x98] +0x514c07: call 0x403d38 <@Db@TDataSet@Edit$qqrv> +0x514c0c: lea ecx, [ebp - 0x114] +0x514c12: mov eax, dword ptr [0x5e5f80] +0x514c17: mov eax, dword ptr [eax] +0x514c19: mov eax, dword ptr [eax + 0x98] +0x514c1f: mov edx, 0x514dc8 ; "NAME" +0x514c24: call 0x404790 <@Apodset@TApolloTable@GetString$qqr17System@AnsiString> +0x514c29: mov eax, dword ptr [ebp - 0x114] +0x514c2f: lea edx, [ebp - 0x110] +0x514c35: call 0x401e30 <@Sysutils@Trim$qqrx17System@AnsiString> +0x514c3a: cmp dword ptr [ebp - 0x110], 0 +0x514c41: jne 0x514cc2 +0x514c43: lea edx, [ebp - 0x118] +0x514c49: mov eax, dword ptr [ebx + 0x350] +0x514c4f: call 0x4037e8 <@Dialogs@TOpenDialog@GetFileName$qqrv> +0x514c54: mov eax, dword ptr [ebp - 0x118] +0x514c5a: lea edx, [ebp - 8] +0x514c5d: call 0x401f30 <@Sysutils@ExtractFileName$qqrx17System@AnsiString> +0x514c62: lea eax, [ebp - 8] +0x514c65: push eax +0x514c66: lea edx, [ebp - 0x11c] +0x514c6c: mov eax, dword ptr [ebp - 8] +0x514c6f: call 0x401f38 <@Sysutils@ExtractFileExt$qqrx17System@AnsiString> +0x514c74: mov eax, dword ptr [ebp - 0x11c] +0x514c7a: call 0x4012a0 <_System__LStrLen> +0x514c7f: push eax +0x514c80: mov eax, dword ptr [ebp - 8] +0x514c83: call 0x4012a0 <_System__LStrLen> +0x514c88: mov ecx, eax +0x514c8a: pop eax +0x514c8b: sub ecx, eax +0x514c8d: xor edx, edx +0x514c8f: mov eax, dword ptr [ebp - 8] +0x514c92: call 0x4012e8 <_System__LStrCopy> +0x514c97: lea eax, [ebp - 0x12c] +0x514c9d: mov edx, dword ptr [ebp - 8] +0x514ca0: call 0x4013f8 <@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString> +0x514ca5: lea ecx, [ebp - 0x12c] +0x514cab: mov eax, dword ptr [0x5e5f80] +0x514cb0: mov eax, dword ptr [eax] +0x514cb2: mov eax, dword ptr [eax + 0x98] +0x514cb8: mov edx, 0x514dc8 ; "NAME" +0x514cbd: call 0x403d08 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x514cc2: lea eax, [ebp - 0x13c] +0x514cc8: mov edx, dword ptr [ebp - 4] +0x514ccb: call 0x4013f8 <@System@@VarFromLStr$qqrr14System@Variantx17System@AnsiString> +0x514cd0: lea ecx, [ebp - 0x13c] +0x514cd6: mov eax, dword ptr [0x5e5f80] +0x514cdb: mov eax, dword ptr [eax] +0x514cdd: mov eax, dword ptr [eax + 0x98] +0x514ce3: mov edx, 0x514dd8 ; "SIZE" +0x514ce8: call 0x403d08 <@Db@TDataSet@SetFieldValue$qqrx17System@AnsiStringrx14System@Variant> +0x514ced: mov eax, dword ptr [0x5e5f80] +0x514cf2: mov eax, dword ptr [eax] +0x514cf4: mov eax, dword ptr [eax + 0x98] +0x514cfa: mov edx, 0x514de8 ; "IFORM" +0x514cff: call 0x403d10 <@Db@TDataSet@FieldByName$qqrx17System@AnsiString> +0x514d04: mov edx, dword ptr [0x5fe330] +0x514d0a: call 0x401190 <@System@@AsClass$qqrp14System@TObjectp17System@TMetaClass> +0x514d0f: push eax +0x514d10: mov eax, dword ptr [ebx + 0x3c8] +0x514d16: call 0x4d6e1c <> +0x514d1b: mov edx, eax +0x514d1d: pop eax +0x514d1e: call 0x403ca8 <@Db@TBlobField@LoadFromStream$qqrp15Classes@TStream> +0x514d23: mov eax, dword ptr [0x5e5f80] +0x514d28: mov eax, dword ptr [eax] +0x514d2a: mov eax, dword ptr [eax + 0x98] +0x514d30: call 0x4046f0 <@Apodset@TApolloTable@Commit$qqrv> +0x514d35: xor eax, eax +0x514d37: pop edx +0x514d38: pop ecx +0x514d39: pop ecx +0x514d3a: mov dword ptr fs:[eax], edx +0x514d3d: push 0x514d5c +0x514d42: mov eax, dword ptr [0x5e5f80] +0x514d47: mov eax, dword ptr [eax] +0x514d49: mov eax, dword ptr [eax + 0x98] +0x514d4f: call 0x403d28 <@Db@TDataSet@EnableControls$qqrv> +0x514d54: ret +0x514d55: jmp 0x401200 +0x514d5a: jmp 0x514d42 +0x514d5c: xor eax, eax +0x514d5e: pop edx +0x514d5f: pop ecx +0x514d60: pop ecx +0x514d61: mov dword ptr fs:[eax], edx +0x514d64: push 0x514dba +0x514d69: lea eax, [ebp - 0x13c] +0x514d6f: mov edx, dword ptr [0x5fce10] +0x514d75: mov ecx, 2 +0x514d7a: call 0x401348 <@System@@FinalizeArray$qqrpvt1ui> +0x514d7f: lea eax, [ebp - 0x11c] +0x514d8a: lea eax, [ebp - 0x118] +0x514d95: lea eax, [ebp - 0x114] +0x514d9b: mov edx, 2 +0x514da5: lea eax, [ebp - 0xc] +0x514da8: mov edx, 3 +0x514db2: ret +0x514db3: jmp 0x401200 +0x514db8: jmp 0x514d69 +0x514dba: pop ebx +0x514dbb: mov esp, ebp +0x514dbd: pop ebp +0x514dbe: ret +0x514dbf: add bh, bh +0x514dc1: .byte 0xff +0x514dc2: .byte 0xff +0x514dc3: inc dword ptr [eax + eax] +0x514dc6: add byte ptr [eax], al +0x514dc8: dec esi +0x514dc9: inc ecx +0x514dca: dec ebp +0x514dcb: inc ebp +0x514dcc: add byte ptr [eax], al +0x514dce: add byte ptr [eax], al +0x514dd0: .byte 0xff +0x514dd1: .byte 0xff +0x514dd2: .byte 0xff +0x514dd3: inc dword ptr [eax + eax] +0x514dd6: add byte ptr [eax], al +0x514dd8: push ebx +0x514dd9: dec ecx +0x514dda: pop edx +0x514ddb: inc ebp +0x514ddc: add byte ptr [eax], al +0x514dde: add byte ptr [eax], al +0x514de0: .byte 0xff +0x514de1: .byte 0xff +0x514de2: .byte 0xff +0x514de3: inc dword ptr [0x49000000] +0x514de9: inc esi +0x514dea: dec edi +0x514deb: push edx +0x514dec: dec ebp +0x514ded: add byte ptr [eax], al +0x514def: .byte 0x00 diff --git a/resources/tester/test_stmate_conv_jaje.py b/resources/tester/test_stmate_conv_jaje.py index 8cda59d41..80fdf7067 100644 --- a/resources/tester/test_stmate_conv_jaje.py +++ b/resources/tester/test_stmate_conv_jaje.py @@ -17,21 +17,42 @@ from conv_jaje import CAPS, SHEET, WIDTHS, amount, build_jaje_xlsx, caps_from_in def test_layout_and_rounding(): import openpyxl - head = {"PNAME": "임도 공사", "PNUM": "A-1", "BUDGET": "₩1,000원", "수요기관": "국유림", "계약일자": "2026.11.14"} + head = { + "PNAME": "임도 공사", + "PNUM": "A-1", + "BUDGET": "₩1,000원", + "수요기관": "국유림", + "계약일자": "2026.11.14", + } rows = [ - {"NAME": "레미콘", "NAME2": "25-21-120", "SIZE": "", "UNIT": "M3", "QTY": 12.345, "PRICE": 93000}, + { + "NAME": "레미콘", + "NAME2": "25-21-120", + "SIZE": "", + "UNIT": "M3", + "QTY": 12.345, + "PRICE": 93000, + }, {"NAME": "철근", "SIZE": "D13", "UNIT": "TON", "QTY": 0.125, "PRICE": 850001}, ] wb = openpyxl.load_workbook(io.BytesIO(build_jaje_xlsx(head, rows))) ws = wb[SHEET] assert ws["A2"].value.endswith("임도 공사") and ws["G2"].value.endswith("A-1") - assert ws["A3"].value == "수 요 기 관" and ws["B3"].value == "국유림" and ws["C4"].value == "₩1,000원" + assert ( + ws["A3"].value == "수 요 기 관" + and ws["B3"].value == "국유림" + and ws["C4"].value == "₩1,000원" + ) assert ws["F5"].value == "2026.11.14" assert [ws.cell(7, j).value for j in range(1, 8)] == [d for _k, d in CAPS] assert [ws.column_dimensions[c].width for c in "ABCDEFG"] == WIDTHS - assert ws["A8"].value == "레미콘\n25-21-120" and ws["C8"].value == 12.35 and ws["D8"].value == "M3" + assert ( + ws["A8"].value == "레미콘\n25-21-120" and ws["C8"].value == 12.35 and ws["D8"].value == "M3" + ) assert ws["F8"].value == amount(rows[0]) == round(12.35 * 93000) - assert ws["C9"].value == 0.13 and ws["F9"].value == 110500 # 0.125 → 0.13(사사오입) · 0.13×850001=110500.13 + assert ( + ws["C9"].value == 0.13 and ws["F9"].value == 110500 + ) # 0.125 → 0.13(사사오입) · 0.13×850001=110500.13 assert ws.max_row == 9 diff --git a/resources/tester/test_stmate_conv_win8.py b/resources/tester/test_stmate_conv_win8.py index 98c1466fd..055936c7a 100644 --- a/resources/tester/test_stmate_conv_win8.py +++ b/resources/tester/test_stmate_conv_win8.py @@ -40,17 +40,57 @@ def dbf(fields, rows): COSTN_F = [C("CODE", 6), C("NAME", 30), C("SIZE", 30), C("UNIT", 10), C("BQCODE", 16)] -COSTN_F += [N("AMT"), N("LAMT"), N("MAMT"), N("SAMT"), N("D_AMT"), N("D_LAMT"), C("GUN", 1), L("UC")] +COSTN_F += [ + N("AMT"), + N("LAMT"), + N("MAMT"), + N("SAMT"), + N("D_AMT"), + N("D_LAMT"), + C("GUN", 1), + L("UC"), +] COSTN_F += [N("AMT_1D"), C("PG_1D", 12), N("AMT_6D"), C("PG_D", 12)] COSTN_ROWS = [ - {"CODE": "M00001", "NAME": "철근", "UNIT": "TON", "AMT": 1000, "MAMT": 1000, "D_AMT": 900, "GUN": "H"}, - {"CODE": "M00001"[:1] + "00002", "NAME": "잡재료", "UNIT": "M%", "AMT": 5, "MAMT": 5, "GUN": "H"}, - {"CODE": "B00003", "NAME": "굴삭기", "UNIT": " x ", "AMT": 50, "LAMT": 30, "AMT_1D": 7, "PG_1D": "12"}, + { + "CODE": "M00001", + "NAME": "철근", + "UNIT": "TON", + "AMT": 1000, + "MAMT": 1000, + "D_AMT": 900, + "GUN": "H", + }, + { + "CODE": "M00001"[:1] + "00002", + "NAME": "잡재료", + "UNIT": "M%", + "AMT": 5, + "MAMT": 5, + "GUN": "H", + }, + { + "CODE": "B00003", + "NAME": "굴삭기", + "UNIT": " x ", + "AMT": 50, + "LAMT": 30, + "AMT_1D": 7, + "PG_1D": "12", + }, {"CODE": "B00004", "NAME": "대가", "UNIT": "M3", "AMT": 80, "AMT_6D": 3, "PG_D": "1"}, {"CODE": "Q00001", "NAME": "버림", "UNIT": "식", "AMT": 1}, {"CODE": "L00001", "NAME": "보통인부", "UNIT": "인", "AMT": 150, "LAMT": 150, "UC": "T"}, ] -BDQ_F = [C("BDCODE", 6), C("CODE", 6), C("T_NAME", 20), N("QTY", 14, 4), C("BIMOK", 1), L("DEVD"), L("T_EXIST")] +BDQ_F = [ + C("BDCODE", 6), + C("CODE", 6), + C("T_NAME", 20), + N("QTY", 14, 4), + C("BIMOK", 1), + L("DEVD"), + L("T_EXIST"), +] BDQ_ROWS = [ {"BDCODE": "B00003", "CODE": "L00001", "QTY": 1.5, "T_EXIST": "T"}, {"BDCODE": "B00004", "CODE": "B00003", "QTY": 2}, @@ -59,16 +99,38 @@ BDQ_ROWS = [ {"BDCODE": "M00001", "CODE": "L00001", "QTY": 1}, ] PRJ_F = [C("PNUM", 20), C("PNAME", 40), N("PCODE", 3, 0), N("PCLASS", 2, 0), N("MCOST", 14, 0)] -PRJ_F += [N("T_COST", 14, 0), N("MCOST1", 14, 0), N("T_COST3", 14, 0), N("K_ORD", 2, 0), N("XXXNM", 1, 0)] +PRJ_F += [ + N("T_COST", 14, 0), + N("MCOST1", 14, 0), + N("T_COST3", 14, 0), + N("K_ORD", 2, 0), + N("XXXNM", 1, 0), +] PRJ_ROWS = [ {"PNUM": "A-1", "PNAME": "옛 공사", "PCODE": 11, "PCLASS": 0, "MCOST": 100, "T_COST": 300}, - {"PNUM": "A-2", "PNAME": "변경", "PCODE": 12, "PCLASS": 6, "MCOST1": 50, "T_COST3": 9, "K_ORD": 2}, + { + "PNUM": "A-2", + "PNAME": "변경", + "PCODE": 12, + "PCLASS": 6, + "MCOST1": 50, + "T_COST3": 9, + "K_ORD": 2, + }, ] BOQ_F = [C("ITNUM", 10), C("NAME", 30), C("UNIT", 6), N("QTY", 14, 3), N("AMT"), C("BDCODE", 6)] BOQ_F += [N("T_AMOUNT"), N("QTY1", 14, 3), L("EXIST"), C("UNIT1", 6), N("SORTCODE", 13, 0)] BOQ_ROWS = [ {"ITNUM": "1", "NAME": "토공", "QTY": 0, "SORTCODE": 1}, - {"ITNUM": "", "NAME": "굴착", "UNIT": "M3", "QTY": 12.5, "AMT": 80, "BDCODE": "B00003", "T_AMOUNT": 1000}, + { + "ITNUM": "", + "NAME": "굴착", + "UNIT": "M3", + "QTY": 12.5, + "AMT": 80, + "BDCODE": "B00003", + "T_AMOUNT": 1000, + }, {"ITNUM": "", "NAME": "옛 줄", "QTY1": 3, "EXIST": "T", "UNIT1": "식", "SORTCODE": 3}, ] START_INI = "[START]\r\nARENM=B\r\nACDNM=7\r\nJMOK1=단가A\r\n[PRINT]\r\nCBFONT=돋움\r\n[PROJECT]\r\nPMODE={pm}\r\n" @@ -84,9 +146,13 @@ def old_7x(pmode=1): "BDQTY.DBF": dbf(BDQ_F, BDQ_ROWS), "PRJLST.DBF": dbf(PRJ_F, PRJ_ROWS), "GRASS.DBF": dbf([C("BDCODE", 6)], []), - "KONGJONG.DBF": dbf([C("DESCRIP", 30), C("DESSIZE", 30)], [{"DESCRIP": "토공", "DESSIZE": "가"}]), + "KONGJONG.DBF": dbf( + [C("DESCRIP", 30), C("DESSIZE", 30)], [{"DESCRIP": "토공", "DESSIZE": "가"}] + ), "BOQ11.DBF": dbf(BOQ_F, BOQ_ROWS), - "CONLD.DBF": dbf([C("BDCODE", 6)], [{"BDCODE": "B00003"}, {"BDCODE": "M00001"}, {"BDCODE": "B00003"}]), + "CONLD.DBF": dbf( + [C("BDCODE", 6)], [{"BDCODE": "B00003"}, {"BDCODE": "M00001"}, {"BDCODE": "B00003"}] + ), "MEMO.INI": b"[A]\r\nB=1\r\n", } @@ -110,9 +176,15 @@ def mem_var(name, typ, val): def old_dos(): mem = mem_var("ARENM", "C", "A->") + mem_var("LANNM", "N", 2) + mem_var("EX1NM", "N", 1500) mem += mem_var("SUBNM", "C", "버림") + mem_var("TOGNM", "L", True) + b"\x1a" - f = {k: v for k, v in old_7x().items() if k not in ("START.INI", "IMG.DB", "KONGJONG.DBF", "MEMO.INI")} + f = { + k: v + for k, v in old_7x().items() + if k not in ("START.INI", "IMG.DB", "KONGJONG.DBF", "MEMO.INI") + } f["START.MEM"] = mem - f["COSTN1.DBF"] = dbf([C("CODE", 6), N("AMT_A"), C("PG_D", 12)], [{"CODE": "M00001", "AMT_A": 11, "PG_D": "77"}]) + f["COSTN1.DBF"] = dbf( + [C("CODE", 6), N("AMT_A"), C("PG_D", 12)], [{"CODE": "M00001", "AMT_A": 11, "PG_D": "77"}] + ) f["BOQ11.DBF"] = dbf( [C("ITNUM", 10), C("DESCRIP", 30), C("DESSIZE", 30), N("QTY", 14, 3), C("BDCODE", 6)], [{"DESCRIP": "굴착", "DESSIZE": "토사", "QTY": 4, "BDCODE": "B00003"}], @@ -135,8 +207,13 @@ def test_detect_version_rules(): assert detect(win8) == 131 and detect(win8 | {"STINI.MEM": b""}) == 141 lacking = {k: v for k, v in old_7x().items() if k != "GRASS.DBF"} assert detect(lacking) == 100 and detect({"A.TXT": b""}) == 0 - jodal = {k: b"" for k in ("GLOBAL.INI", "M.TXT", "L.TXT", "E.TXT", "W.TXT", "UNIT.TXT", "UNITPART.TXT")} - jodal |= {k: b"" for k in ("J.TXT", "JPART.TXT", "JUNIT.TXT", "DANGA.TXT", "DANGA.DBF", "DANGA.DBT")} + jodal = { + k: b"" + for k in ("GLOBAL.INI", "M.TXT", "L.TXT", "E.TXT", "W.TXT", "UNIT.TXT", "UNITPART.TXT") + } + jodal |= { + k: b"" for k in ("J.TXT", "JPART.TXT", "JUNIT.TXT", "DANGA.TXT", "DANGA.DBF", "DANGA.DBT") + } jodal |= {k: b"" for k in ("GONGJONG.TXT", "MAIN.TXT", "MAINPART.TXT")} assert detect(jodal) == 200 @@ -160,7 +237,10 @@ def test_7x_costn_rules(tpl): x = rows["X00003"] assert float(x["TAMT1"]) == 50 and float(x["LAMT1"]) == 30 assert float(x.get("AMT_11", 7) or 0) == 7 and x.get("PG_11", "12") == "12" - assert float(rows["B00004"].get("AMT_61", 3) or 0) == 3 and rows["B00004"].get("PG_1", "1") in ("1", "1.0") + assert float(rows["B00004"].get("AMT_61", 3) or 0) == 3 and rows["B00004"].get("PG_1", "1") in ( + "1", + "1.0", + ) assert rows["L00001"]["UC"] == "T" @@ -178,11 +258,19 @@ def test_7x_bdqty_prj_kong_boq_ini(tpl): kong = _rows(out["KONGJONG.DBF"]) assert [(r["CODE"], r["NAME"], r["SIZE"]) for r in kong] == [("1", "토공", "가")] boq = _rows(out["BOQ11.DBF"]) - assert boq[1]["NAME1"] == "굴착" and boq[1]["BDCODE1"] == "X00003" and float(boq[1]["QTY1"]) == 12.5 + assert ( + boq[1]["NAME1"] == "굴착" + and boq[1]["BDCODE1"] == "X00003" + and float(boq[1]["QTY1"]) == 12.5 + ) assert float(boq[1]["T_AMT1"]) == 1000 and float(boq[2]["QTY2"]) == 3 assert str(boq[2]["EXIST1"]).strip() == "1" and boq[2]["UNIT2"] == "식" ini = ini_dict(out["START8X.INI"].decode("cp949")) - assert ini["START"]["ARENM"] == "2" and ini["START"]["BPNNM"] == "7" and ini["START"]["JMOK1"] == "단가A" + assert ( + ini["START"]["ARENM"] == "2" + and ini["START"]["BPNNM"] == "7" + and ini["START"]["JMOK1"] == "단가A" + ) assert ini["START"]["JMOK2"] == "물가 자료" and ini["PRINT"]["FONT"] == "돋움" assert ini["EQUIPMENT"]["CONLD"] == "X00003" and out["STINI.MEM"] == out["START8X.INI"] assert out["MEMO.INI"] == b"[A]\r\nB=1\r\n" @@ -194,13 +282,19 @@ def test_dos_rules(tpl): rows = {r["CODE"]: r for r in _rows(out["COSTN.DBF"])} if "AMT_12" in rows["M00001"]: assert float(rows["M00001"]["AMT_12"]) == 11 and rows["M00001"]["PG_11"] == "77" - assert "X00003" in rows and float(rows.get("B00004", {}).get("AMT_61", 0) or 0) == 0 # DOS 는 AMT_n 없음 + assert ( + "X00003" in rows and float(rows.get("B00004", {}).get("AMT_61", 0) or 0) == 0 + ) # DOS 는 AMT_n 없음 kong = _rows(out["KONGJONG.DBF"]) assert [r["NAME"] for r in kong] == [n.rstrip() for n in KONG_DOS] and kong[0]["CODE"] == "1" boq = _rows(out["BOQ11.DBF"]) assert boq[0]["NAME1"] == "굴착" and boq[0]["SIZE1"] == "토사" and boq[0]["BDCODE1"] == "X00003" ini = ini_dict(out["START8X.INI"].decode("cp949")) - assert ini["START"]["ARENM"] == "A->" and ini["START"]["SUBNM"] == "" and ini["PRINT"]["LANNM"] == "2.000000" + assert ( + ini["START"]["ARENM"] == "A->" + and ini["START"]["SUBNM"] == "" + and ini["PRINT"]["LANNM"] == "2.000000" + ) assert ini["PRINT"]["TOGNM"] == "1" and ini["EQUIPMENT"]["EX1NM"] == "1500.000000" assert ini["EQUIPMENT"]["CONLD"] == "B00003" and ini["PROJECT"]["PMODE"] == "1" assert "STINI.MEM" not in out or out["STINI.MEM"] != out["START8X.INI"] diff --git a/resources/tester/test_stmate_img_code.py b/resources/tester/test_stmate_img_code.py index 0d2180139..77afbfe55 100644 --- a/resources/tester/test_stmate_img_code.py +++ b/resources/tester/test_stmate_img_code.py @@ -54,7 +54,13 @@ def test_kind_by_extension(): def test_new_code_put_and_read_back(files): data = _bmp() out, rep = put_image(files, "i00009", data, "다리 사진.bmp") - assert rep == {"code": "I00009", "new": True, "kind": "TBITMAP", "bytes": len(data), "name": NEW_NAME} + assert rep == { + "code": "I00009", + "new": True, + "kind": "TBITMAP", + "bytes": len(data), + "name": NEW_NAME, + } f2 = dict(files) | out got, kind, mime = get_image(f2, "I00009") assert got == data and kind == "TBITMAP" and mime == "image/bmp" @@ -88,7 +94,9 @@ def test_sniff_when_size_blank(files): t.set(find_rows(t, "CODE")["I00011"], "SIZE", "") f2 = dict(files) | out | {"COSTN.DBF": t.to_bytes()} assert get_image(f2, "I00011")[1] == "TBITMAP" - assert SixMemo(out["COSTN.SMT"]).read(t.raw(find_rows(t, "CODE")["I00011"], "IFORM"))[:2] == b"BM" + assert ( + SixMemo(out["COSTN.SMT"]).read(t.raw(find_rows(t, "CODE")["I00011"], "IFORM"))[:2] == b"BM" + ) def test_api_put_writes_only_costn(files, tmp_path, monkeypatch): @@ -101,4 +109,6 @@ def test_api_put_writes_only_costn(files, tmp_path, monkeypatch): assert set(changed) <= {"COSTN.DBF", "COSTN.SMT"} res = A.img_get(A.ImgReq(source_path=r["saved_stc"], code="I00012")) assert res.headers["X-Img-Kind"] == "TBITMAP" and res.body[:2] == b"BM" - assert any(x["CODE"] == "I00012" for x in A.img_list(A.ImgReq(source_path=r["saved_dir"]))["rows"]) + assert any( + x["CODE"] == "I00012" for x in A.img_list(A.ImgReq(source_path=r["saved_dir"]))["rows"] + ) diff --git a/resources/tester/test_stmate_jdl_rea.py b/resources/tester/test_stmate_jdl_rea.py index 6e1550337..b3adafa77 100644 --- a/resources/tester/test_stmate_jdl_rea.py +++ b/resources/tester/test_stmate_jdl_rea.py @@ -25,8 +25,22 @@ from kanjub_cfg import stage_slots # noqa: E402 from stc_read import Source # noqa: E402 # 검사기 cmp 값(열 개수) -CMP = {"Main.Txt": 3, "M.Txt": 0x13, "L.Txt": 7, "E.Txt": 9, "W.Txt": 9, "J.Txt": 9, "GongJong.Txt": 4} -CMP |= {"Unit.Txt": 10, "JUnit.Txt": 10, "Danga.Txt": 10, "MainPart.Txt": 0x1F, "UnitPart.Txt": 0x1C} +CMP = { + "Main.Txt": 3, + "M.Txt": 0x13, + "L.Txt": 7, + "E.Txt": 9, + "W.Txt": 9, + "J.Txt": 9, + "GongJong.Txt": 4, +} +CMP |= { + "Unit.Txt": 10, + "JUnit.Txt": 10, + "Danga.Txt": 10, + "MainPart.Txt": 0x1F, + "UnitPart.Txt": 0x1C, +} CMP |= {"JPart.Txt": 0x13} STC = next((ROOT / "tools/stmate-test/work_dbf").glob("*.STC"), None) TAB, EXT, SUB, CRLF = "\t", "\x05", "\x07", b"\r\n" @@ -53,7 +67,9 @@ def test_check_lines_counts_and_code_chars(): assert J.check_lines("L.Txt", good + CRLF) == [] bad = J.build_line(["l0001", f"가{TAB}나", "", "인", 1, "", ""]) errs = J.check_lines("L.Txt", good + CRLF + bad) - assert any("203002" in e and "Line : 2" in e for e in errs) and any("코드 글자" in e for e in errs) + assert any("203002" in e and "Line : 2" in e for e in errs) and any( + "코드 글자" in e for e in errs + ) def test_num_text_exttostr(): @@ -68,7 +84,14 @@ def test_export_bundle_lines_follow_rules(): r = export_bundle(str(STC)) assert r["series"] == 1 and all(not v for v in r["checks"].values()) t = DbfTable(src.files["COSTN.DBF"]) - want = {"L": "L.Txt", "M": "M.Txt", "S": "E.Txt", "W": "W.Txt", "B": "Unit.Txt", "X": "JUnit.Txt"} + want = { + "L": "L.Txt", + "M": "M.Txt", + "S": "E.Txt", + "W": "W.Txt", + "B": "Unit.Txt", + "X": "JUnit.Txt", + } want["D"] = "Danga.Txt" lines = {k: v.split(CRLF) for k, v in r["files"].items()} seen: dict[str, int] = {} @@ -85,7 +108,9 @@ def test_export_bundle_lines_follow_rules(): if k == "L": assert cols[4] == J.num_text(lam) and ext[0] == t.get(i, "BQCODE") if k == "M": - assert cols[4] == J.num_text(mam) and cols[6] == J.num_text(float(t.get(i, "AMT_11") or 0)) + assert cols[4] == J.num_text(mam) and cols[6] == J.num_text( + float(t.get(i, "AMT_11") or 0) + ) if k == "S": assert cols[4:7] == ["0", "0", J.num_text(sam)] if k in "BXD": @@ -101,11 +126,24 @@ def test_export_bundle_lines_follow_rules(): def test_unit_rules(): - rec = {"CODE": "B00001", "NAME": "a", "SIZE": "", "UNIT": "l.s.", "EQCODE": "", "BQCODE": "", "UC": False} + rec = { + "CODE": "B00001", + "NAME": "a", + "SIZE": "", + "UNIT": "l.s.", + "EQCODE": "", + "BQCODE": "", + "UC": False, + } rec |= {"L": 1.0, "M": 2.0, "E": 3.0, "AMT": [0] * 5, "PG": [""] * 5, "PG_J": "", "PG_S": ""} assert J.split_line(code_line(rec, False, "")[1])[0][3] == "l.s.3" - assert J.split_line(code_line(rec | {"CODE": "W00001", "UNIT": "T%"}, False, "")[1])[0][3] == "T%*100" - assert J.split_line(code_line(rec | {"CODE": "S00001", "UNIT": " $ "}, False, "")[1])[0][3] == "$" + assert ( + J.split_line(code_line(rec | {"CODE": "W00001", "UNIT": "T%"}, False, "")[1])[0][3] + == "T%*100" + ) + assert ( + J.split_line(code_line(rec | {"CODE": "S00001", "UNIT": " $ "}, False, "")[1])[0][3] == "$" + ) assert code_line(rec | {"CODE": "I00001"}, False, "") is None @@ -134,3 +172,24 @@ def test_hal_rate_float32_factor(): def test_fifth_series_slot(): """변경 4차 = 계열 5 — 저장 칸 5 를 차수로 읽음.""" assert stage_slots({"1_C_KANNO": 1, "5_C_KANNO": 2}) == [1, 5] + + +def test_jdl_api_export_and_check(): + if STC is None: + pytest.skip("표본 STC 없음") + import base64 + + import api_jdl as A + + r = A.jdl_export(A.JdlReq(source_path=str(STC))) + assert ( + r["series"] == 1 + and r["missing"] + and "L.Txt" in r["first"] + and r["first"]["L.Txt"]["F_CODE"] + ) + z = A.jdl_export_zip(A.JdlReq(source_path=str(STC))) + assert z.body[:2] == b"PK" + bad = base64.b64encode(J.build_line(["L1", "x\ty", "", "", "", "", ""])).decode() + c = A.jdl_check(A.JdlCheckReq(files={"L.TXT": bad, "readme.md": ""}))["checks"] + assert c["L.TXT"] and c["readme.md"] == ["검사 대상 아님"] diff --git a/tools/stmate-test/api_conv.py b/tools/stmate-test/api_conv.py index 16a2253ba..8202af606 100644 --- a/tools/stmate-test/api_conv.py +++ b/tools/stmate-test/api_conv.py @@ -18,8 +18,13 @@ from conv_jb import JB_DIR, list_jb, match_project, read_jb from conv_win8 import convert as convert_win8 from conv_win8_ini import detect as detect_win8 from conv_xls_apply import import_boq, register -from conv_xls_out import export_boq_xlsx, export_code_xlsx, export_jaje_xlsx, import_code_xlsx -from conv_xls_out import import_jaje_xlsx +from conv_xls_out import ( + export_boq_xlsx, + export_code_xlsx, + export_jaje_xlsx, + import_code_xlsx, + import_jaje_xlsx, +) from conv_xml import xml_to_project from conv_xml_cfg import apply_settings, options, validate from fastapi import APIRouter, HTTPException @@ -151,7 +156,10 @@ class Win8Req(BaseModel): def _old_files(req: Win8Req) -> dict: if req.files: - return {k.rsplit("/", 1)[-1].upper(): base64.b64decode(v.split(",", 1)[-1]) for k, v in req.files.items()} + return { + k.rsplit("/", 1)[-1].upper(): base64.b64decode(v.split(",", 1)[-1]) + for k, v in req.files.items() + } p = pathlib.Path(req.old_path or "") if not req.old_path or not p.is_dir(): raise HTTPException(404, f"폴더 없음: {req.old_path}") @@ -181,7 +189,15 @@ def api_jaje_sum_xlsx(req: JajeSumReq): def api_win8_check(req: Win8Req): """판 가리기(Chk_STDir) — 111 DOS · 120~129 7.x · 130~149 Win8 · 200 조달청 TEXT.""" v = detect_win8(_old_files(req)) - kind = "DOS" if 110 <= v <= 119 else "7.x" if 120 <= v <= 129 else "Win8" if 130 <= v <= 149 else "" + kind = ( + "DOS" + if 110 <= v <= 119 + else "7.x" + if 120 <= v <= 129 + else "Win8" + if 130 <= v <= 149 + else "" + ) return {"version": v, "kind": kind or ("조달청 TEXT" if v == 200 else "구버전 자료 아님")} diff --git a/tools/stmate-test/api_img.py b/tools/stmate-test/api_img.py index acf2d9825..a7de76d44 100644 --- a/tools/stmate-test/api_img.py +++ b/tools/stmate-test/api_img.py @@ -84,5 +84,7 @@ def img_put(req: ImgPutReq): raise HTTPException(400, "base64 아님") changed, rep = _guard(put_image, s.files, req.code, data, req.filename, req.to_jpeg) files = dict(s.files) | changed - res = write_output(_root(), safe_name(req.target_folder_name or s.path.stem), files, s.names, s.entries) + res = write_output( + _root(), safe_name(req.target_folder_name or s.path.stem), files, s.names, s.entries + ) return {**res, "report": rep} diff --git a/tools/stmate-test/api_jdl.py b/tools/stmate-test/api_jdl.py index ed567a411..c0beb6842 100644 --- a/tools/stmate-test/api_jdl.py +++ b/tools/stmate-test/api_jdl.py @@ -60,7 +60,9 @@ def jdl_export_zip(req: JdlReq): for name, data in r["files"].items(): z.writestr(name, data) disp = "attachment; filename=JDL_TEXT.zip" - return Response(content=buf.getvalue(), media_type="application/zip", headers={"Content-Disposition": disp}) + return Response( + content=buf.getvalue(), media_type="application/zip", headers={"Content-Disposition": disp} + ) @router.post("/api/jdl/check") diff --git a/tools/stmate-test/conv_jaje.py b/tools/stmate-test/conv_jaje.py index 551df4af6..9bdeff284 100644 --- a/tools/stmate-test/conv_jaje.py +++ b/tools/stmate-test/conv_jaje.py @@ -85,8 +85,12 @@ def build_jaje_xlsx(head: dict, rows: list[dict], caps: list[str] | None = None) for i, r in enumerate(part, start=8): qty = half(float(r.get("QTY") or 0), 2) price = float(r.get("PRICE") or 0) - ws.cell(i, 1, _join(r.get("NAME", ""), r.get("NAME2", ""))).alignment = Alignment(wrap_text=True) - ws.cell(i, 2, _join(r.get("SIZE", ""), r.get("SIZE2", ""))).alignment = Alignment(wrap_text=True) + ws.cell(i, 1, _join(r.get("NAME", ""), r.get("NAME2", ""))).alignment = Alignment( + wrap_text=True + ) + ws.cell(i, 2, _join(r.get("SIZE", ""), r.get("SIZE2", ""))).alignment = Alignment( + wrap_text=True + ) ws.cell(i, 3, qty) ws.cell(i, 4, r.get("UNIT", "")) ws.cell(i, 5, price) diff --git a/tools/stmate-test/conv_win8.py b/tools/stmate-test/conv_win8.py index aad2b9c22..ee3ff6221 100644 --- a/tools/stmate-test/conv_win8.py +++ b/tools/stmate-test/conv_win8.py @@ -28,13 +28,29 @@ _FLAGS = [(k, k) for k in ("NAGCD", "UC", "K_S", "GUN", "JOJAK", "BOKSA")] _BK = [(f"{c}AMT", f"{c}AMT1") for c in "BCDEFG"] + [("HAMT", "ZAMT1"), ("KAMT", "KAMT1")] _BK += [(f"D_{c}AMT", f"{c}AMT2") for c in "BCDEFG"] + [("D_HAMT", "ZAMT2"), ("D_KAMT", "KAMT2")] COSTN_DOS = _HEAD + _AMT + _FLAGS + _BK -_AP = [(f"AMT_{n}D", f"AMT_{n}1") for n in range(1, 6)] + [(f"PG_{n}D", f"PG_{n}1") for n in range(1, 6)] -_AP += [(f"AMT_{n}B", f"AMT_{n}2") for n in range(1, 6)] + [(f"PG_{n}B", f"PG_{n}2") for n in range(1, 6)] -_AP += [("PG_J", "PG_J"), ("PG_D", "PG_1"), ("PG_B", "PG_2"), ("AMT_61", "AMT_1"), ("AMT_62", "AMT_2")] +_AP = [(f"AMT_{n}D", f"AMT_{n}1") for n in range(1, 6)] + [ + (f"PG_{n}D", f"PG_{n}1") for n in range(1, 6) +] +_AP += [(f"AMT_{n}B", f"AMT_{n}2") for n in range(1, 6)] + [ + (f"PG_{n}B", f"PG_{n}2") for n in range(1, 6) +] +_AP += [ + ("PG_J", "PG_J"), + ("PG_D", "PG_1"), + ("PG_B", "PG_2"), + ("AMT_61", "AMT_1"), + ("AMT_62", "AMT_2"), +] _AP += [("AMT_6D", "AMT_61"), ("AMT_6B", "AMT_62")] COSTN_7X = _HEAD + _AMT + _FLAGS + _AP + _BK + [("PP", "PP")] COSTN1_M = [("AMT_A", "AMT_12"), ("AMT_B", "AMT_22"), ("AMT_C", "AMT_32"), ("AMT_D", "AMT_11")] -COSTN1_M += [("AMT_E", "AMT_21"), ("AMT_F", "AMT_31"), ("PG_A", "PG_12"), ("PG_B", "PG_22"), ("PG_C", "PG_32")] +COSTN1_M += [ + ("AMT_E", "AMT_21"), + ("AMT_F", "AMT_31"), + ("PG_A", "PG_12"), + ("PG_B", "PG_22"), + ("PG_C", "PG_32"), +] COSTN1_M += [("PG_D", "PG_11"), ("PG_E", "PG_21"), ("PG_F", "PG_31"), ("PG_J", "PG_J")] BDQTY_MAP = [("BDCODE", "BDCODE"), ("CODE", "CODE"), ("T_NAME", "NAME1"), ("T_SIZE", "SIZE1")] BDQTY_MAP += [("QTY", "QTY1"), ("BIMOK", "BIMOK"), ("DEVD", "DEVD1")] @@ -48,18 +64,40 @@ PRJ_7X += [(f"{c}3", f"{c}4") for c in _COST] + [("T_COST3", "TCOST4")] PRJ_7X += [("XXXNM", "XX1NM"), ("IXXNM", "XX2NM"), ("JXXNM", "XX3NM"), ("KXXNM", "XX4NM")] PRJ_7X += [("CHAMT", "CHAMT"), ("K_ORD", "K_ORD")] _BOQ = [("QTY", "QTY1")] + [(a, b) for a, b in _AMT[:4]] -_BOQ += [("T_AMOUNT", "T_AMT1"), ("L_AMOUNT", "L_AMT1"), ("M_AMOUNT", "M_AMT1"), ("S_AMOUNT", "S_AMT1")] +_BOQ += [ + ("T_AMOUNT", "T_AMT1"), + ("L_AMOUNT", "L_AMT1"), + ("M_AMOUNT", "M_AMT1"), + ("S_AMOUNT", "S_AMT1"), +] _BOQ += [("BDCODE", "BDCODE1"), ("QTY1", "QTY2")] + _AMT[4:] -_BOQ += [("DT_AMOUNT", "T_AMT2"), ("DL_AMOUNT", "L_AMT2"), ("DM_AMOUNT", "M_AMT2"), ("DS_AMOUNT", "S_AMT2")] +_BOQ += [ + ("DT_AMOUNT", "T_AMT2"), + ("DL_AMOUNT", "L_AMT2"), + ("DM_AMOUNT", "M_AMT2"), + ("DS_AMOUNT", "S_AMT2"), +] _BOQ += [("QTY2", "QTY3"), ("T_AMOUNT2", "T_AMT3"), ("QTY3", "QTY4"), ("T_AMOUNT3", "T_AMT4")] _BOQ += [(k, k) for k in ("SORTCODE", "ENDCODE", "BQCODE")] BOQ_7X = [("ITNUM", "ITNUM"), ("NAME", "NAME1"), ("SIZE", "SIZE1"), ("UNIT", "UNIT1")] + _BOQ BOQ_7X += [(k, k) for k in ("RL", "RM", "RS", "UC")] BOQ_DOS = [("ITNUM", "ITNUM"), ("DESCRIP", "NAME1"), ("DESSIZE", "SIZE1"), ("UNIT", "UNIT1")] + _BOQ -BQM_7X = [("ITNUM", "ITNUM"), ("NAME", "NAME1"), ("SIZE", "SIZE1"), ("UNIT", "UNIT1"), ("QTY", "QTY1")] +BQM_7X = [ + ("ITNUM", "ITNUM"), + ("NAME", "NAME1"), + ("SIZE", "SIZE1"), + ("UNIT", "UNIT1"), + ("QTY", "QTY1"), +] BQM_7X += [("AMT", "TAMT1"), ("T_AMOUNT", "T_AMT1"), ("BDCODE", "BDCODE1")] BQM_7X += [(k, k) for k in ("RATE", "BIGO", "SORTCODE", "ENDCODE")] -KONG_DOS = ["토 공", "배 수 공", "구 조 물 공", "포 장 공", "조 경 공"] +KONG_DOS = [ + "토 공", + "배 수 공", + "구 조 물 공", + "포 장 공", + "조 경 공", +] KONG_DOS += ["부 대 공", "기 타 공 "] UNMAPPED = [ "간접비 설정 이관(PRJ_MEMO — 7.x 0x48abb0 · DOS 0x4922e4) → 틀 설정 유지", @@ -122,7 +160,9 @@ def _is_t(v) -> bool: return str(v).strip().upper() in ("T", "Y", "1", "TRUE") -def conv_costn(src: list[dict], pairs, have: set[str], m_extra: dict[str, dict]) -> tuple[list[dict], dict]: +def conv_costn( + src: list[dict], pairs, have: set[str], m_extra: dict[str, dict] +) -> tuple[list[dict], dict]: """COSTN 행 옮기기 — (행, 옛 B → 새 X).""" out, b2x = [], {} for r in src: @@ -213,7 +253,9 @@ def convert(old: dict, template: dict, pname: str = "") -> tuple[dict, dict]: notes: list[str] = [] conld = b_list(_rows(_table(old, "CONLD.DBF"))) contd = b_list(_rows(_table(old, "CONTD.DBF"))) - m_extra = {r.get("CODE", "").strip(): r for r in _rows(_table(old, "COSTN1.DBF"))} if dos else {} + m_extra = ( + {r.get("CODE", "").strip(): r for r in _rows(_table(old, "COSTN1.DBF"))} if dos else {} + ) have = _fields(template["COSTN.DBF"]) costn_src = _rows(_table(old, "COSTN.DBF")) costn, b2x = conv_costn(costn_src, COSTN_DOS if dos else COSTN_7X, have, m_extra) @@ -247,7 +289,10 @@ def convert(old: dict, template: dict, pname: str = "") -> tuple[dict, dict]: kong = [{"CODE": f" {i}", "NAME": n} for i, n in enumerate(KONG_DOS, 1)] else: src_k = _rows(_table(old, "KONGJONG.DBF")) - kong = [{"CODE": str(i), "NAME": r.get("DESCRIP", ""), "SIZE": r.get("DESSIZE", "")} for i, r in enumerate(src_k, 1)] + kong = [ + {"CODE": str(i), "NAME": r.get("DESCRIP", ""), "SIZE": r.get("DESSIZE", "")} + for i, r in enumerate(src_k, 1) + ] out["KONGJONG.DBF"] = _build(template["KONGJONG.DBF"], kong) boq_tpl = template.get("BOQ11.DBF") for k in [k for k in out if re.match(r"^BOQ\d+\.DBF$", k)]: @@ -265,8 +310,16 @@ def convert(old: dict, template: dict, pname: str = "") -> tuple[dict, dict]: if not dos and _table(old, f"BQM{pc}.DBF") is not None: notes.append(f"BQM{pc}.DBF 있음 — 틀에 BQM 구조가 없어 옮기지 않음") if b2x: - conld = "".join(b2x.get(conld[i : i + 6], conld[i : i + 6]) for i in range(0, len(conld), 6)) if not dos else conld - contd = "".join(b2x.get(contd[i : i + 6], contd[i : i + 6]) for i in range(0, len(contd), 6)) if not dos else contd + conld = ( + "".join(b2x.get(conld[i : i + 6], conld[i : i + 6]) for i in range(0, len(conld), 6)) + if not dos + else conld + ) + contd = ( + "".join(b2x.get(contd[i : i + 6], contd[i : i + 6]) for i in range(0, len(contd), 6)) + if not dos + else contd + ) if dos: ini, n2 = ini_from_dos(old.get("START.MEM", b""), conld, contd) notes += n2 diff --git a/tools/stmate-test/conv_win8_ini.py b/tools/stmate-test/conv_win8_ini.py index d0be493b4..ad8924829 100644 --- a/tools/stmate-test/conv_win8_ini.py +++ b/tools/stmate-test/conv_win8_ini.py @@ -20,8 +20,26 @@ RULES = [ (110, ("START.MEM", "FORM.DBF", "KANJUB2.DBF", "COSTN1.DBF")), (150, ("START8X", "COSTA.DBF", "COSTN.SMT", "PRJLST.SMT", "SYSINFO.DBF")), ] -JODAL = ("GLOBAL.INI", "M.TXT", "L.TXT", "E.TXT", "W.TXT", "UNIT.TXT", "UNITPART.TXT", "J.TXT", "JPART.TXT") -JODAL += ("JUNIT.TXT", "DANGA.TXT", "DANGA.DBF", "DANGA.DBT", "GONGJONG.TXT", "MAIN.TXT", "MAINPART.TXT") +JODAL = ( + "GLOBAL.INI", + "M.TXT", + "L.TXT", + "E.TXT", + "W.TXT", + "UNIT.TXT", + "UNITPART.TXT", + "J.TXT", + "JPART.TXT", +) +JODAL += ( + "JUNIT.TXT", + "DANGA.TXT", + "DANGA.DBF", + "DANGA.DBT", + "GONGJONG.TXT", + "MAIN.TXT", + "MAINPART.TXT", +) RULES.append((200, JODAL)) CORE = ("COSTN.DBF", "BDQTY.DBF", "PRJLST.DBF", "GRASS.DBF") @@ -62,14 +80,32 @@ def detect(files: dict) -> int: # 7.x [START] 키 — (대상 키, 원본 키, 기본값) START_7X = [("BMKNM", "BMKNM", "MLST"), ("ACDNM", "ACDNM", "1"), ("BPNNM", "ACDNM", "1")] -START_7X += [("KCDNM", "KCDNM", "1"), ("ZCDNM", "ZCDNM", "2"), ("CHGNM", "CHGNM", "1"), ("CHBNM", "CHGNM", "1")] -START_7X += [("CHNNM", "CHNNM", "1"), ("BCDNM", "BCDNM", "0"), ("DCDNM", "DCDNM", "0"), ("ICDNM", "ICDNM", "0")] +START_7X += [ + ("KCDNM", "KCDNM", "1"), + ("ZCDNM", "ZCDNM", "2"), + ("CHGNM", "CHGNM", "1"), + ("CHBNM", "CHGNM", "1"), +] +START_7X += [ + ("CHNNM", "CHNNM", "1"), + ("BCDNM", "BCDNM", "0"), + ("DCDNM", "DCDNM", "0"), + ("ICDNM", "ICDNM", "0"), +] START_7X += [("LCDNM", "LCDNM", "1"), ("MCDNM", "MCDNM", "1"), ("PCDNM", "PCDNM", "10")] -START_7X += [("SCDNM", "SCDNM", "0"), ("WCDNM", "WCDNM", "0"), ("SUBNM", "SUBNM", ""), ("LMGNM", "LMGNM", "4")] +START_7X += [ + ("SCDNM", "SCDNM", "0"), + ("WCDNM", "WCDNM", "0"), + ("SUBNM", "SUBNM", ""), + ("LMGNM", "LMGNM", "4"), +] START_7X += [("MKRNM", "MKRNM", "5"), ("TMGNM", "TMGNM", "6"), ("JEMNM", "JEMNM", "123456")] JMOK = ["가격 정보", "물가 자료", "유통 물가", "견적단가1", "견적단가2", "적용 단가"] START_7X += [(f"JMOK{i}", f"JMOK{i}", v) for i, v in enumerate(JMOK, 1)] -START_7X += [(f"JMK{i}0", f"JMK{i}0", v) for i, v in enumerate(["가.정", "물.자", "유.물", "견적 1", "견적 2"], 1)] +START_7X += [ + (f"JMK{i}0", f"JMK{i}0", v) + for i, v in enumerate(["가.정", "물.자", "유.물", "견적 1", "견적 2"], 1) +] START_7X += [("JUKNM", "JUKNM", "0")] EQUIP_7X = [("RXXNM", "START", "RXXNM", "1/8 * 16/12 * 25/20"), ("RXTNM", "START", "RXTNM", "")] EQUIP_7X += [("EXLNM1", "START", "EX1NM", "1000"), ("EXHNM1", "START", "EX2NM", "1000")] @@ -92,16 +128,29 @@ def ini_from_7x(start_ini: bytes, conld: str, contd: str) -> bytes: g = lambda sec, k, d: src.get(sec, {}).get(k, d) # noqa: E731 start = [("ARENM", "1" if g("START", "ARENM", "A->") == "A->" else "2")] start += [(t, g("START", s, d)) for t, s, d in START_7X] - prt = [("ORDNM", g("PRINT", "ORDNM", "")), ("FONT", g("PRINT", "CBFONT", "굴림체")), ("F_COL0", "clBlack")] + prt = [ + ("ORDNM", g("PRINT", "ORDNM", "")), + ("FONT", g("PRINT", "CBFONT", "굴림체")), + ("F_COL0", "clBlack"), + ] prt += [("F_COL1", g("PRINT", "COLDAN", "clRed")), ("F_COL2", g("PRINT", "COLBYN", "clBlack"))] prt += [("SH_TYP0", g("PRINT", "FOMNM", "0")), ("SAN_TYP", g("PRINT", "LANNM", "0"))] prt += [("SAN_AMT", "1"), ("FLT_JAB", "3")] eq = [(t, g(s, k, d)) for t, s, k, d in EQUIP_7X] eq += [(k, v) for k, v in (("CONLD", conld), ("CONTD", contd)) if v] - prj = [("PCODE", "XXXX"), ("PMODE", g("PROJECT", "PMODE", "1")), ("PNAME", g("PROJECT", "PNAME", "프로젝트명"))] + prj = [ + ("PCODE", "XXXX"), + ("PMODE", g("PROJECT", "PMODE", "1")), + ("PNAME", g("PROJECT", "PNAME", "프로젝트명")), + ] prj.append(("P_DIR", "")) nag = [("NAGNM", src["START"]["NAGNM"])] if "NAGNM" in src.get("START", {}) else [] - for t, k in (("ST_MHAL", "PMHAL"), ("EQ_LHAL", "EQ_L"), ("EQ_MHAL", "EQ_M"), ("EQ_SHAL", "EQ_S")): + for t, k in ( + ("ST_MHAL", "PMHAL"), + ("EQ_LHAL", "EQ_L"), + ("EQ_MHAL", "EQ_M"), + ("EQ_SHAL", "EQ_S"), + ): if k in src.get("PROJECT", {}): nag.append((t, src["PROJECT"][k])) secs = [("START", start), ("PRINT", prt), ("EQUIPMENT", eq), ("PROJECT", prj), ("NAG_HAL", nag)] @@ -144,11 +193,19 @@ def ini_from_dos(mem: bytes, conld: str, contd: str) -> tuple[bytes, list[str]]: start = [kv for kv in start if kv[0] not in ("SUBNM", "QCDNM", "XCDNM", "JUKNM")] start += [("SUBNM", ""), ("QCDNM", "0"), ("XCDNM", "0"), ("JUKNM", "0")] prt = [(k, str(v[k])) for k in DOS_PRINT if k in v] - prt += [("ORDNM", " "), ("FONT", "굴림체"), ("F_COL0", "clBlack"), ("F_COL1", "clRed"), ("F_COL2", "clBlack")] + prt += [ + ("ORDNM", " "), + ("FONT", "굴림체"), + ("F_COL0", "clBlack"), + ("F_COL1", "clRed"), + ("F_COL2", "clBlack"), + ] eq = [(k, str(v[k])) for k in DOS_EQUIP if k in v] eq += [(k, x) for k, x in (("CONLD", conld), ("CONTD", contd)) if x] note = ["DOS [START] 키 이름 표(0x588294)는 실행 중 채워짐 — MEM 변수 이름 그대로 씀(조건부)"] - return write_ini([("START", start), ("PRINT", prt), ("EQUIPMENT", eq), ("PROJECT", [("PMODE", "1")])]), note + return write_ini( + [("START", start), ("PRINT", prt), ("EQUIPMENT", eq), ("PROJECT", [("PMODE", "1")])] + ), note def b_list(rows: list[dict]) -> str: @@ -162,4 +219,8 @@ def b_list(rows: list[dict]) -> str: def swap_codes(text: str, mapping: dict[str, str]) -> str: - return re.sub("|".join(map(re.escape, mapping)), lambda m: mapping[m.group(0)], text) if mapping else text + return ( + re.sub("|".join(map(re.escape, mapping)), lambda m: mapping[m.group(0)], text) + if mapping + else text + ) diff --git a/tools/stmate-test/conv_xls_res.py b/tools/stmate-test/conv_xls_res.py index eb3e8f410..7d178cf3d 100644 --- a/tools/stmate-test/conv_xls_res.py +++ b/tools/stmate-test/conv_xls_res.py @@ -163,7 +163,11 @@ def comp_row(bd: str, r: tuple, cols: dict, meta: dict) -> dict: row["BIMOK"] = meta.get("BMK", "") row["PRPT"] = _int(meta.get("IPR")) if k == "D": - row |= {"SPRPT": _int(meta.get("SPR")), "SBMOK": meta.get("SBM", ""), "TPRPT": _int(meta.get("TPR"))} + row |= { + "SPRPT": _int(meta.get("SPR")), + "SBMOK": meta.get("SBM", ""), + "TPRPT": _int(meta.get("TPR")), + } if ratio: row |= {"UNIT1": meta.get("UNI", ""), "EQCODE": meta.get("EQC", "")} row |= {"PRIN": _int(meta.get("PRI")), "PROUT": _int(meta.get("PRO"))} diff --git a/tools/stmate-test/img_code.py b/tools/stmate-test/img_code.py index 61ebc404c..4c2baf086 100644 --- a/tools/stmate-test/img_code.py +++ b/tools/stmate-test/img_code.py @@ -22,7 +22,12 @@ from dbf_rw import DbfTable, find_rows KIND = {".JPG": "TJPEGIMAGE", ".JPEG": "TJPEGIMAGE", ".BMP": "TBITMAP", ".ICO": "TICON"} KIND |= {".EMF": "TMETAFILE", ".WMF": "TMETAFILE"} -MIME = {"TJPEGIMAGE": "image/jpeg", "TBITMAP": "image/bmp", "TICON": "image/x-icon", "TMETAFILE": ""} +MIME = { + "TJPEGIMAGE": "image/jpeg", + "TBITMAP": "image/bmp", + "TICON": "image/x-icon", + "TMETAFILE": "", +} NEW_NAME = "새로운 그림코드" @@ -78,7 +83,9 @@ def list_images(files: dict) -> list[dict]: if t.deleted(i) or not code.startswith("I"): continue data = memo.read(t.raw(i, "IFORM")) - out.append({"CODE": code, "NAME": t.get(i, "NAME"), "SIZE": t.get(i, "SIZE"), "bytes": len(data)}) + out.append( + {"CODE": code, "NAME": t.get(i, "NAME"), "SIZE": t.get(i, "SIZE"), "bytes": len(data)} + ) return out @@ -94,7 +101,9 @@ def get_image(files: dict, code: str) -> tuple[bytes, str, str]: return data, kind, MIME.get(kind, "") -def put_image(files: dict, code: str, data: bytes, filename: str, to_jpeg: bool = False) -> tuple[dict, dict]: +def put_image( + files: dict, code: str, data: bytes, filename: str, to_jpeg: bool = False +) -> tuple[dict, dict]: """그림 넣기·그림저장 — (바뀐 files 두 개, 보고) · 없는 I 코드는 새로 등록(이름 「새로운 그림코드」).""" code = code.strip().upper() if not code.startswith("I") or len(code) > 6: @@ -115,4 +124,10 @@ def put_image(files: dict, code: str, data: bytes, filename: str, to_jpeg: bool ptr = t.raw(i, "IFORM") t.set_raw(i, "IFORM", memo.write(ptr if ptr.strip(b" \x00") else BLANK_PTR, data)) out = {"COSTN.DBF": t.to_bytes(), "COSTN.SMT": memo.to_bytes()} - return out, {"code": code, "new": new, "kind": kind, "bytes": len(data), "name": t.get(i, "NAME")} + return out, { + "code": code, + "new": new, + "kind": kind, + "bytes": len(data), + "name": t.get(i, "NAME"), + } diff --git a/tools/stmate-test/jdl_export.py b/tools/stmate-test/jdl_export.py index 8ddbcf98d..c005c80bb 100644 --- a/tools/stmate-test/jdl_export.py +++ b/tools/stmate-test/jdl_export.py @@ -59,7 +59,12 @@ def code_record(t: DbfTable, i: int, s: int) -> dict: """FUN_00431758 꼴 코드 기록 — 계열 s 의 노무·재료·경비.""" code = _s(t, i, "CODE") k = code[:1] - rec = {"CODE": code, "NAME": _s(t, i, "NAME"), "SIZE": _s(t, i, "SIZE"), "UNIT": _s(t, i, "UNIT")} + rec = { + "CODE": code, + "NAME": _s(t, i, "NAME"), + "SIZE": _s(t, i, "SIZE"), + "UNIT": _s(t, i, "UNIT"), + } if k == "X": rec["UNIT"] = "시간" rec |= {"EQCODE": _s(t, i, "EQCODE"), "BQCODE": _s(t, i, "BQCODE"), "UC": _l(t, i, "UC")} @@ -89,13 +94,17 @@ def code_line(rec: dict, gun_ok: bool, gun: str) -> tuple[str, bytes] | None: head = [rec["CODE"], rec["NAME"], rec["SIZE"], unit] last = Raw(gun if (gun_ok and k in "MS") else " ") if k == "L": - return name, build_line(head + [rec["L"], rec["EQCODE"], ""], [rec["BQCODE"], rec["UC"], *rec["AMT"], last]) + return name, build_line( + head + [rec["L"], rec["EQCODE"], ""], [rec["BQCODE"], rec["UC"], *rec["AMT"], last] + ) if k == "M": pairs = [x for a, p in zip(rec["AMT"], rec["PG"]) for x in (a, p)] ext = [rec["BQCODE"], rec["UC"], *rec["AMT"], *rec["PG"], rec["PG_J"], rec["PG_S"], last] return name, build_line(head + [rec["M"], rec["EQCODE"], *pairs, "", "", ""], ext) if k == "S": - return name, build_line(head + ["0", "0", rec["E"], rec["EQCODE"], ""], [rec["BQCODE"], rec["UC"], last]) + return name, build_line( + head + ["0", "0", rec["E"], rec["EQCODE"], ""], [rec["BQCODE"], rec["UC"], last] + ) prices = [rec["M"], rec["L"], rec["E"], rec["EQCODE"]] if k == "W": return name, build_line(head + prices + [""], [rec["BQCODE"], rec["UC"]]) @@ -125,7 +134,9 @@ def export_bundle(path: str, series: int | None = None, today: datetime.date | N s = series or SERIES_BY_PCLASS.get(pclass) if not s: raise ValueError(f"PCLASS {pclass} 의 계열 미확인 — series(1~4) 지정 필요") - gun_ok = all(f in t.fields for f in ("GUN", "BAMT", "CAMT", "DAMT", "EAMT", "FAMT", "KAMT", "ZAMT")) + gun_ok = all( + f in t.fields for f in ("GUN", "BAMT", "CAMT", "DAMT", "EAMT", "FAMT", "KAMT", "ZAMT") + ) files: dict[str, bytearray] = {} warnings: list[str] = [] rows = [i for i in range(len(t)) if not t.deleted(i)] @@ -146,7 +157,10 @@ def export_bundle(path: str, series: int | None = None, today: datetime.date | N head = build_line(["01", p.get(0, "PNAME"), 1, ""], ["", False, "", "", "", Raw("0")]) files["GongJong.Txt"] = bytearray(head + b"\r\n") day = (today or datetime.date.today()).strftime("%Y%m%d") - cost = [(k, p.get(0, f"{f}{s}")) for k, f in (("LCOST", "LCOST"), ("MCOST", "MCOST"), ("ECOST", "SCOST"))] + cost = [ + (k, p.get(0, f"{f}{s}")) + for k, f in (("LCOST", "LCOST"), ("MCOST", "MCOST"), ("ECOST", "SCOST")) + ] cost.append(("TCOST", p.get(0, f"TCOST{s}"))) ini = [("BASIC", [("MAKER", "STM"), ("CDATE", day), ("JDL VERSION", "3.3")]), ("COST", cost)] ini.append(("CPART", CPART_CONST)) diff --git a/tools/stmate-test/jdl_format.py b/tools/stmate-test/jdl_format.py index d669f6290..ea45f67ac 100644 --- a/tools/stmate-test/jdl_format.py +++ b/tools/stmate-test/jdl_format.py @@ -52,12 +52,30 @@ COLUMNS: dict[str, list[str | None]] = { "JUnit.Txt": _PRICE + ["F_TFNO", "F_BIGO"], "Danga.Txt": _PRICE + ["F_TFNO", "F_BIGO"], # 세부 3종(Ghidra 0x4f7890 · 0x4fa7fc · 0x4fdd10) — F_CODE1 = 앞 열 묶음 + 1열(조건부) - "MainPart.Txt": ["F_CODE", "F_CODE1", "F_DES", "F_SIZE", "F_UNIT", "F_QQTY", "F_MPRICE", "F_LPRICE"] + "MainPart.Txt": [ + "F_CODE", + "F_CODE1", + "F_DES", + "F_SIZE", + "F_UNIT", + "F_QQTY", + "F_MPRICE", + "F_LPRICE", + ] + ["F_EPRICE", None, "F_SPROPER", "F_LOADBM", "F_SAVEBM", "F_SRATE", "F_KWAN", "F_SCOST"] + ["F_SGUBUN", "F_SCODE", "F_SANQTY"] + _LINK + ["F_LRATE", "F_SAN"], - "UnitPart.Txt": ["F_CODE", "F_CODE1", "F_DES", "F_SIZE", "F_UNIT", "F_QQTY", "F_MPRICE", "F_LPRICE"] + "UnitPart.Txt": [ + "F_CODE", + "F_CODE1", + "F_DES", + "F_SIZE", + "F_UNIT", + "F_QQTY", + "F_MPRICE", + "F_LPRICE", + ] + ["F_EPRICE", None, "F_SPROPER", "F_LOADBM", "F_SAVEBM", "F_SRATE", "F_KWAN", "F_SANQTY"] + _LINK + ["F_LRATE", "F_SAN"], diff --git a/tools/stmate-test/scr_jdl.js b/tools/stmate-test/scr_jdl.js index cf20df52b..cc07cab51 100644 --- a/tools/stmate-test/scr_jdl.js +++ b/tools/stmate-test/scr_jdl.js @@ -76,7 +76,8 @@ async jdlExport(ctx) { const body = { source_path: curPath(ctx) }; const r = await req("/api/jdl/export", body); - if (!confirm(`[조달청포맷(TEXT,JDL) 생성]\n${summary(r)}\n\n묶음 파일을 zip 으로 받을까요?`)) return; + if (!confirm(`[조달청포맷(TEXT,JDL) 생성]\n${summary(r)}\n\n묶음 파일을 zip 으로 받을까요?`)) + return; const name = (ctx.state.projectMeta.pname || "공사").slice(0, 28); download(await req("/api/jdl/export.zip", body, true), `${name}_JDL_TEXT.zip`); },