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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x445afb
mov eax, dword fs:[0]
push eax
sub esp, 0x3c0
mov eax, dword [0x45accc]
xor eax, esp
mov dword [esp + 0x3b8], eax
push ebx
push esi
push edi
mov eax, dword [0x45accc]
xor eax, esp
push eax
lea eax, [esp + 0x3d0]
mov dword fs:[0], eax
xor edi, edi
push edi
push 0x80
push 3
push edi
push 3
mov ebx, ecx
mov eax, dword [ebx + 0x74]
push SysReAllocString
push eax
mov dword [esp + 0x50], edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
mov dword [esp + 0x28], esi
cmp esi, 0xffffffff
jne 0x407491
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str._ERROR__Open_File_Error__
call fcn.00407340
mov ecx, ebx
call fcn.00407230
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4081fd
push edi
lea eax, [esp + 0x38]
push eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x4074c8
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str._ERROR__Open_File_Error__
call fcn.00407340
mov ecx, ebx
call fcn.00407230
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4081fd
push edi
lea ecx, [esp + 0x3c]
push ecx
push 0x200
lea edx, [esp + 0x1d0]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4074a4
mov eax, dword [esp + 0x1d4]
lea ecx, [eax + eax - 0x400]
mov dword [esp + 0x20], ecx
call fcn.0041aec8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x407512
push 0x80004005
call fcn.00401460
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push str.PHISON_ImageFile
lea ecx, [esp + 0x18]
mov dword [esp + 0x3dc], edi
call fcn.004057f0
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 0xc]
lea edi, [esp + 0x1c4]
cmp eax, 4
jb 0x407564
lea ebx, [ebx]
mov ecx, dword [edi]
cmp ecx, dword [esi]
jne 0x407588
sub eax, 4
add esi, 4
add edi, 4
cmp eax, 4
jae 0x407550
test eax, eax
je 0x4075b0
mov dl, byte [esi]
cmp dl, byte [edi]
jne 0x407588
cmp eax, 1
jbe 0x4075b0
mov cl, byte [esi + 1]
cmp cl, byte [edi + 1]
jne 0x407588
cmp eax, 2
jbe 0x4075b0
mov dl, byte [esi + 2]
cmp dl, byte [edi + 2]
je 0x4075b0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str._ERROR__This_file_is_not_a_PHISON_image_with_header__
call fcn.00407340
mov ecx, ebx
call fcn.00407230
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4081d6
mov ecx, dword [esp + 0x1d4]
push ecx
lea edx, [esp + 0x18]
push str.Header_Length:__d
push edx
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx eax, byte [esp + 0x1d9]
movzx ecx, byte [esp + 0x1d8]
push eax
push ecx
lea edx, [esp + 0x1c]
push str.BuildImage_Tool_Version:__d._02d
push edx
call fcn.004026d0
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx eax, byte [esp + 0x1e0]
movzx ecx, byte [esp + 0x1df]
movzx edx, byte [esp + 0x1de]
push eax
movzx eax, byte [esp + 0x1e1]
push ecx
movzx ecx, byte [esp + 0x1e4]
push edx
movzx edx, byte [esp + 0x1e6]
push eax
movzx eax, byte [esp + 0x1eb]
push ecx
shl edx, 8
or edx, eax
push edx
lea ecx, [esp + 0x2c]
push str.Build_date:__d__d__d__d:_02d:_02d
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x34]
add esp, 0x1c
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx edx, byte [esp + 0x1d9]
movzx eax, byte [esp + 0x1d8]
push edx
push eax
lea ecx, [esp + 0x1c]
push str._d._02d
push ecx
call fcn.004026d0
mov edx, dword [esp + 0x24]
push str.2.08
push edx
call fcn.0043200b
add esp, 0x18
test eax, eax
setg al
test al, al
je 0x40770e
cmp byte [esp + 0x202], 0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
jne 0x4076fd
push str.Card_Type:_SD_Card
jmp 0x407702
push str.Card_Type:_eMMC_Card
call fcn.00407340
mov ecx, ebx
call fcn.00407230
movzx eax, byte [esp + 0x1e1]
cmp eax, 4
ja case.default.0x40771b
jmp dword [eax*4 + 0x408228]
push str.Image_Type:_Standard_File_System
lea eax, [esp + 0x18]
push eax
jmp 0x407763
push str.Image_Type:_Unknown_File_System
lea ecx, [esp + 0x18]
push ecx
jmp 0x407763
push str.Image_Type:_Spansion_Flash_Card
jmp 0x40775e
push str.Image_Type:_Building_Part_Data
lea eax, [esp + 0x18]
push eax
jmp 0x407763
push str.Image_Type:_Data_with_CopyKing_Check_Image
lea ecx, [esp + 0x18]
push ecx
jmp 0x407763
push str.Image_Type:_Unknown
lea edx, [esp + 0x18]
push edx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 8
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov eax, dword [esp + 0x1e2]
shr eax, 0xb
push eax
lea ecx, [esp + 0x18]
push str.User_Area_Size_of_Card:__dMB
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea edx, [esp + 0x14]
push 0x44a154
push edx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea eax, [esp + 0x14]
push str._Note_
push eax
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea ecx, [esp + 0x14]
push 0x44a154
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
push 0x81
lea edx, [esp + 0x140]
push 0
push edx
call fcn.00431320
mov ecx, 0x20
lea esi, [esp + 0x340]
lea edi, [esp + 0x148]
add esp, 0xc
rep movsd dword es:[edi], dword [esi]
xor eax, eax
jmp 0x4078a0
mov cl, byte [esp + eax + 0x13c]
not cl
mov byte [esp + eax + 0x13c], cl
inc eax
cmp eax, 0x80
jl 0x4078a0
lea edx, [esp + 0x13c]
push edx
lea eax, [esp + 0x18]
push str._s_n_n
push eax
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
mov dword [esp + 0x2c], eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4081d6
push eax
call fcn.0041206c
mov edx, dword [esp + 0x24]
add esp, 4
xor esi, esi
push esi
lea ecx, [esp + 0x3c]
push ecx
mov edi, eax
mov eax, dword [esp + 0x30]
push edx
push edi
push eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x407981
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str._ERROR__Open_File_Error__
call fcn.00407340
mov ecx, ebx
call fcn.00407230
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call fcn.00412061
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x3d8], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4081f1
cmp dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jbe 0x4081c2
jmp 0x4079a0
movzx eax, byte [edi + esi + 2]
sub eax, 1
je 0x407d2d
sub eax, 1
je 0x407ab7
xor eax, eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], eax
lea eax, [esp + 0x11c]
mov ecx, esi
mov edx, eax
sub ecx, edx
add ecx, edi
mov dword [esp + 0x1c], 0x20
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + eax]
cmp edx, dword [eax]
jne 0x407a35
sub ecx, 4
add eax, 4
cmp ecx, 4
jae 0x407a10
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov esi, eax
jmp 0x40811d
cmp dword [edi + esi + 1], 0
jne 0x407a76
lea eax, [esp + 0x14]
push str.This_data_type_is_not_supported_now_
push eax
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov ecx, dword [esp + 0x20]
mov esi, ecx
add esi, dword [edi + esi + 1]
lea edx, [esp + 0x14]
push str.This_data_type_is_not_supported_now_
push edx
mov dword [esp + 0x24], esi
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov edi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [edi], eax
call fcn.00407230
jmp 0x40811d
add esi, edi
mov ecx, 0x20
lea edi, [esp + 0x9c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14]
push 0x44a154
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea edx, [esp + 0x14]
push str._Protect_Zone_Parameter_
push edx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea eax, [esp + 0x14]
push 0x44a154
push eax
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov ecx, dword [esp + 0xac]
push ecx
lea edx, [esp + 0x18]
push str.EOC_of_FAT1_LBA_Address:__d
push edx
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov eax, dword [esp + 0xb0]
push eax
lea ecx, [esp + 0x18]
push str.EOC_of_FAT2_LBA_Address:__d
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x1c], esp
mov esi, esp
add eax, 0xfffffff0
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx edx, byte [esp + 0xb4]
push edx
lea eax, [esp + 0x18]
push str.EOC_Entry_Number:__d
push eax
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea ecx, [esp + 0xbc]
mov dword [esp + 0x5c], ecx
lea eax, [esp + 0xcc]
mov dword [esp + 0x64], eax
lea edx, [esp + 0xc4]
mov dword [esp + 0x60], edx
lea ecx, [esp + 0xd4]
mov dword [esp + 0x68], ecx
lea eax, [esp + 0xe4]
mov dword [esp + 0x70], eax
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xec]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ecx
lea eax, [esp + 0xc0]
lea edx, [esp + 0xf4]
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0xc8]
mov dword [esp + 0x78], edx
mov dword [esp + 0x40], ecx
lea eax, [esp + 0xd8]
lea edx, [esp + 0xd0]
lea ecx, [esp + 0xe0]
mov dword [esp + 0x48], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], ecx
lea edx, [esp + 0xe8]
lea ecx, [esp + 0xf8]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], ecx
xor eax, eax
mov edx, dword [esp + eax*4 + 0x5c]
mov ecx, dword [edx]
test ecx, ecx
jne 0x407cdc
mov edx, dword [esp + eax*4 + 0x3c]
cmp dword [edx], ecx
je 0x407d23
lea esi, [eax + 1]
mov eax, dword [esp + eax*4 + 0x3c]
mov edx, dword [eax]
push edx
push ecx
push esi
lea eax, [esp + 0x20]
push str.Protect_Zone__d:__d___d
push eax
call fcn.004026d0
mov eax, dword [esp + 0x28]
add esp, 0x10
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov edi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [edi], eax
call fcn.00407230
mov eax, esi
cmp eax, 8
jl 0x407cca
sub dword [esp + 0x1c], 0xffffff80
jmp 0x408119
add esi, edi
mov ecx, 8
lea edi, [esp + 0x7c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14]
push 0x44a154
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea edx, [esp + 0x14]
push str._User_Area_Information_
push edx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea eax, [esp + 0x14]
push 0x44a154
push eax
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
lea ecx, [esp + 0x14]
push str.Form_Type:_Data
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx eax, byte [esp + 0x81]
dec eax
cmp eax, 8
ja case.default.0x407e18
jmp dword [eax*4 + 0x40823c]
push str.Area_Type:_Normal
jmp 0x407e81
push str.Area_Type:_Security
lea eax, [esp + 0x18]
push eax
jmp 0x407e86
push str.Area_Type:_Boot1
lea ecx, [esp + 0x18]
push ecx
jmp 0x407e86
push str.Area_Type:_Boot2
jmp 0x407e81
push str.Area_Type:_RPMB
lea eax, [esp + 0x18]
push eax
jmp 0x407e86
push str.Area_Type:_GPAP1
lea ecx, [esp + 0x18]
push ecx
jmp 0x407e86
push str.Area_Type:_GPAP2
jmp 0x407e81
push str.Area_Type:_GPAP3
lea eax, [esp + 0x18]
push eax
jmp 0x407e86
push str.Area_Type:_GPAP4
lea ecx, [esp + 0x18]
push ecx
jmp 0x407e86
push str.Area_Type:_Unknown__
lea edx, [esp + 0x18]
push edx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 8
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx eax, byte [esp + 0x82]
cmp eax, 6
ja case.default.0x407ebe
jmp dword [eax*4 + 0x408260]
push str.FileSystem_Type:_N_A
lea eax, [esp + 0x18]
push eax
jmp 0x407f19
push str.FileSystem_Type:_DAT
jmp 0x407f14
push str.FileSystem_Type:_FAT12_Table
lea edx, [esp + 0x18]
push edx
jmp 0x407f19
push str.FileSystem_Type:_FAT16_Table
lea eax, [esp + 0x18]
push eax
jmp 0x407f19
push str.FileSystem_Type:_FAT32_Table
jmp 0x407f14
push str.FileSystem_Type:_exFAT_Table
lea edx, [esp + 0x18]
push edx
jmp 0x407f19
push str.FileSystem_Type:_Unknown_Data
lea eax, [esp + 0x18]
push eax
jmp 0x407f19
push str.FileSystem_Type:_Unknown__
lea ecx, [esp + 0x18]
push ecx
call fcn.004026d0
mov eax, dword [esp + 0x1c]
add esp, 8
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov ecx, dword [esp + 0x8c]
mov eax, ecx
and eax, 0xff0000
mov edx, ecx
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
push eax
mov dword [esp + 0x90], eax
lea eax, [esp + 0x18]
push str.Data_Sections_LBA_Start_Address_of_Card:__d
push eax
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov ecx, dword [esp + 0x90]
mov eax, ecx
and eax, 0xff0000
mov edx, ecx
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
push eax
mov dword [esp + 0x94], eax
lea eax, [esp + 0x18]
push str.Data_Position_of_Image_File:_Sector_No.__d
push eax
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
mov ecx, dword [esp + 0x94]
mov eax, ecx
mov edx, ecx
and eax, 0xff0000
shr edx, 0x10
or eax, edx
mov edx, ecx
shl edx, 0x10
and ecx, 0xff00
or edx, ecx
shr eax, 8
shl edx, 8
or eax, edx
push eax
mov dword [esp + 0x98], eax
lea eax, [esp + 0x18]
push str.Data_Sector_Size:__d_Sectors
push eax
call fcn.004026d0
mov eax, dword [esp + 0x20]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx ecx, byte [esp + 0x99]
movzx edx, byte [esp + 0x98]
push ecx
push edx
lea eax, [esp + 0x1c]
push str.DATA_CRC16_CheckSum:__02X_02X
push eax
call fcn.004026d0
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
movzx ecx, byte [esp + 0x8b]
movzx edx, byte [esp + 0x8a]
movzx eax, byte [esp + 0x89]
push ecx
movzx ecx, byte [esp + 0x8c]
push edx
push eax
push ecx
lea edx, [esp + 0x24]
push str.DATA_CRC32_CheckSum:__02X_02X_02X_02X
push edx
call fcn.004026d0
mov eax, dword [esp + 0x2c]
add esp, 0x14
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.00407230
add dword [esp + 0x1c], 0x20
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
inc eax
push eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x18]
push str.Data_Chunk_Number:__u
push eax
call fcn.004026d0
mov edi, dword [esp + 0x20]
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add edi, 0xfffffff0
add esp, 8
mov dword [esp + 0x1c], esp
mov dword [esp + 0x1c], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x40816a
cmp eax, dword [edi]
jne 0x40816a
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4081a4
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov dword [esp + 0x30], eax
test eax, eax
je 0x408221
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 4]
inc ecx
push ecx
add edi, 0x10
push edi
push ecx
add eax, 0x10
push eax
call fcn.004313eb
mov edi, dword [esp + 0x40]
add esp, 0x10
mov edx, dword [esp + 0x1c]
add edi, 0x10
mov ecx, ebx
mov dword [edx], edi
call fcn.00407230
mov edi, dword [esp + 0x30]
cmp esi, dword [esp + 0x20]
jb 0x4079a0
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call fcn.00412061
add esp, 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x3d8], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4081fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3b8]
xor ecx, esp
call fcn.00431b39
mov esp, ebp
pop ebp
ret
call fcn.004016b0
mov edi, edi
and dh, byte [edi + 0x40]
add byte [esi], ch
ja 0x40826f
add byte [edx], bh
ja 0x408273
add byte [ecx + 0x77], al
inc eax
add byte [ebp + 0x77], cl
inc eax
add byte [edi], bl
jle 0x40827f
add byte [esi], ah
jle 0x408283
add byte [edx], dh
jle 0x408287
add byte [esi], bh
jle 0x40828b
add byte [ebp + 0x7e], al
inc eax
add byte [ecx + 0x7e], dl
inc eax
add byte [ebp + 0x7e], bl
inc eax
pop ebp
jle 4227735
add byte [esi + edi*2 + 0x40], ah
add byte [eax + 0x7e], dh
inc eax
add ch, al
jle 0x4082a3
add cl, dl
jle 0x4082a7
add al, bl
jle 0x4082ab
add ah, ah
jle 0x4082af
add al, dh
jle 0x4082b3
add bh, dh
jle 0x4082b7
add byte [ebx], al
jg 0x4082bb
add ah, cl
int3
int3
push edi
mov esi, ecx
call fcn.0041d7db
push eax
push ebp
add dword [eax], eax
push 8
call fcn.00412032
add esp, 4
test eax, eax
je 0x4082aa
mov dword [eax + 4], 0
mov dword [eax], vtable.CFont.0
mov edi, eax
popfd
inc esp
add byte [ebx + 0x3302ebf8], cl
clc
jmp 0x4082ac
xor edi, edi
jmp [edx]
push 0
push str.Times_New_Roman
jo 0x408254
inc esp
add byte [edx + 0x64], ch
push 0x64
mov ecx, edi
call fcn.00418756
test edi, edi
jne 0x4082c4
add byte [ebp + 0x330475ff], al
shr bl, 3
xor eax, eax
jmp 0x4082c7
mov eax, dword [edi + 4]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 1
push eax
mov eax, dword [esi + 0x98]
push 0x30
push eax
call ebx
test edi, edi
je 0x4082ea
mov edx, dword [edi]
mov eax, dword [edx + 4]
push 1
mov ecx, edi
call eax
mov ecx, dword [esi + 0x98]
push 0
push 0
push 0x448
push ecx
call ebx
mov eax, dword [esi + 0x74]
push ecx
sub eax, 0x10
mov dword [esp + 0x10], esp
mov edi, esp
push eax
call fcn.00404380
add eax, 0x10
add esp, 4
mov ecx, esi
mov dword [edi], eax
call fcn.00407230
mov ecx, esi
call fcn.00407400
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret