Function at 0x423670
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb4
push ebx
mov ebx, ecx
push ebp
push esi
lea esi, [ebx + 0x1f4]
push edi
push esi
call fcn.00423e90
mov ecx, esi
call dword [sym.imp.TAPI_DRAW.dll_public:_void___thiscall_CObjList::DelAllObj_void_]
mov esi, dword [esp + 0xc8]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x4236c5
mov eax, dword [ebx]
push 1
push str.Visual1
mov ecx, ebx
call dword [eax + 0x5c]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret 8
cmp dword [esp + 0xcc], 1
jne 0x4236d9
mov edx, dword [ebx]
push 1
push esi
mov ecx, ebx
call dword [edx + 0x5c]
push 0x43b3b4
push esi
call dword [sym.imp.MSVCRT.dll_fopen]
mov edi, eax
xor esi, esi
add esp, 8
cmp edi, esi
jne 0x4236ff
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret 8
push esi
push esi
push edi
call dword [sym.imp.MSVCRT.dll_fseek]
add esp, 0xc
mov dword [esp + 0x20], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], 0x7d0
mov dword [esp + 0x10], 0
mov ebp, dword [sym.imp.MSVCRT.dll_fread]
push edi
push 1
lea eax, [esp + 0x28]
push 4
push eax
call ebp
add esp, 0x10
cmp eax, 1
jb 0x423a33
mov ecx, dword [esp + 0x20]
test ecx, ecx
jl 0x4239fd
cmp ecx, 0x64
jge 0x4239fd
fld dword [esp + 0x10]
fcomp dword [0x434d74]
fnstsw ax
test ah, 1
je 0x4238b5
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], 3
mov dword [esp + 0x50], 5
mov dword [esp + 0x54], 0xc
mov dword [esp + 0x58], 0xd
mov dword [esp + 0x5c], 0x13
mov dword [esp + 0x60], 8
mov dword [esp + 0x64], 7
mov dword [esp + 0x68], 0x11
mov dword [esp + 0x6c], 0xb
mov dword [esp + 0x70], 4
mov dword [esp + 0x74], 6
mov dword [esp + 0x78], 9
mov dword [esp + 0x7c], 0xa
mov dword [esp + 0x80], 0x15
mov dword [esp + 0x84], 0x16
mov dword [esp + 0x88], 0x1d
mov dword [esp + 0x8c], 0x14
mov dword [esp + 0x90], 0x1a
mov dword [esp + 0x94], 0x1b
mov dword [esp + 0x98], 0x17
mov dword [esp + 0x9c], 0x18
mov dword [esp + 0xa0], 0xe
mov dword [esp + 0xa4], 0x10
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xac], 0x1e
mov dword [esp + 0xb0], 0x20
mov dword [esp + 0xb4], 0x1c
mov dword [esp + 0xb8], 0x19
mov dword [esp + 0xbc], 0x1f
mov dword [esp + 0xc0], 0x12
mov ecx, dword [esp + ecx*4 + 0x40]
mov ecx, dword [ebx + ecx*4 + 0x64]
mov edx, dword [ecx]
call dword [edx + 0x74]
jmp 0x4238be
mov ecx, dword [ebx + ecx*4 + 0x64]
mov eax, dword [ecx]
call dword [eax + 0x74]
mov esi, eax
test esi, esi
je 0x423723
fld dword [esp + 0x10]
fcomp dword [0x434d78]
fnstsw ax
test ah, 1
je 0x423943
push edi
call dword [sym.imp.MSVCRT.dll_ftell]
add esp, 4
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14], eax
push edi
push 1
push 4
push ecx
call ebp
add esp, 0x10
lea edx, [esp + 0x2c]
push edi
push 1
push 4
push edx
call ebp
add esp, 0x10
lea eax, [esp + 0x30]
push edi
push 1
push 4
push eax
call ebp
add esp, 0x10
lea ecx, [esp + 0x34]
push edi
push 1
push 4
push ecx
call ebp
add esp, 0x10
lea edx, [esp + 0x38]
push edi
push 1
push 4
push edx
call ebp
mov eax, dword [esp + 0x24]
add esp, 0x10
push 0
push eax
push edi
call dword [sym.imp.MSVCRT.dll_fseek]
add esp, 0xc
mov ebp, dword [esi]
push edi
mov ecx, esi
mov dword [esp + 0x18], ebp
call dword [ebp + 0xb4]
fld dword [esp + 0x10]
fcomp dword [0x434d78]
fnstsw ax
test ah, 1
je 0x4239c4
fild dword [esp + 0x2c]
fstp dword [esp + 0x18]
fild dword [esp + 0x30]
mov edx, dword [esp + 0x18]
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
push ecx
push edx
mov ecx, esi
call dword [ebp + 0x3c]
fild dword [esp + 0x34]
fstp dword [esp + 0x18]
fild dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
push eax
push ecx
mov ecx, esi
call dword [ebp + 0x40]
mov ecx, esi
call dword [sym.imp.TAPI_DRAW.dll_public:_int___thiscall_TAPI_DllBase::Get_id_void_]
cmp eax, 0x18697
jge 0x4239c4
mov ecx, dword [esp + 0x24]
mov eax, ecx
dec ecx
mov dword [esp + 0x24], ecx
push eax
mov ecx, esi
call dword [sym.imp.TAPI_DRAW.dll_public:_void___thiscall_TAPI_DllBase::Set_id_int_]
push esi
lea ecx, [ebx + 0x1f4]
call dword [sym.imp.TAPI_DRAW.dll_public:_int___thiscall_CObjList::LoadAddObj_class_TAPI_DllBase__]
mov ebp, dword [ebx]
mov ecx, ebx
call dword [ebp + 0x68]
test eax, eax
mov dword [esp + 0x28], eax
je 0x423723
lea edx, [esp + 0x28]
mov ecx, ebx
push edx
call dword [ebp + 0x6c]
push eax
mov eax, dword [esp + 0x18]
mov ecx, esi
call dword [eax + 0x34]
jmp 0x423723
cmp ecx, 0xfffffff7
jne 0x423a16
lea eax, [ebx + 0x1f4]
mov ecx, ebx
push eax
push edi
call fcn.00423a90
jmp 0x423723
cmp ecx, 0xfffffff8
jne 0x423723
push edi
push 1
lea ecx, [esp + 0x18]
push 4
push ecx
call ebp
add esp, 0x10
jmp 0x423723
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
fld dword [esp + 0x14]
fcomp dword [0x434d74]
add esp, 4
fnstsw ax
test ah, 1
je 0x423a7a
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x423a65
call sub.MFC42.DLL_AfxGetThread
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x423a67
xor eax, eax
push 0x20
push str.Convert_
push 0x43b344
mov ecx, eax
call sub.MFC42.DLL_CWnd::MessageBoxA
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xb4
ret 8