Function at 0x41b780
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov dword [esp + 0x50], eax
mov eax, dword [0x4711d4]
test eax, eax
je 0x41bc01
mov eax, dword [0x471084]
xor edx, edx
mov ebx, dword [0x471024]
mov dword [esp + 0x54], 0
test eax, eax
mov dword [esp + 0x40], ebx
jne 0x41b7ec
jmp 0x41c329
cmp ecx, 0x6fffffff
je 0x41c05f
cmp ecx, 0x6ffffffd
je 0x41bc48
add dword [esp + 0x54], 1
add dword [esp + 0x40], 0x48
cmp eax, dword [esp + 0x54]
jbe 0x41bbf9
mov ebp, dword [esp + 0x40]
mov ecx, dword [ebp + 4]
cmp ecx, 0x6ffffffe
jne 0x41b7c0
mov ebp, dword [esp + 0x40]
mov eax, ebp
mov ebx, dword [ebp + 0x2c]
call fcn.00401c10
mov dword [esp], str._nVersion_needs_section__s_contains__u_entries:_n
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov dword [esp], str._Addr:_0x
call sub.msvcrt.dll_printf
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 4], 0x445515
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edx
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [ebx + 0x28]
mov eax, 0x444781
cmp edx, dword [0x471084]
jae 0x41b876
mov eax, dword [0x471024]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
call fcn.00401c10
mov edx, dword [ebx + 0x28]
mov ebp, dword [esp + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], str.__Offset:__08lx__Link:__u___s__n
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov ebx, dword [esp + 0x40]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], str.Version_Needs_section
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], eax
xor eax, eax
call fcn.00402840
test eax, eax
mov dword [esp + 0x4c], eax
je 0x41c31a
add eax, dword [ebx + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x41bbcf
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x28]
sub ebp, dword [esp + 0x4c]
add edx, 0x10
cmp dword [esp + 0x28], edx
mov dword [esp + 0x58], ebp
jb 0x41c7d9
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x44], 0
mov dword [esp + 0x3c], 0
mov ebx, edi
lea esi, [esi]
mov dword [esp + 4], 2
mov dword [esp], ebx
call dword [0x472cf4]
mov dword [esp + 4], 2
mov edi, eax
lea eax, [ebx + 2]
movzx edi, di
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 4
mov word [esp + 0x24], ax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 4
mov ebp, eax
lea eax, [ebx + 8]
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 4
mov esi, eax
lea eax, [ebx + 0xc]
mov dword [esp], eax
call dword [0x472cf4]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], edi
mov dword [esp], str.___06x:_Version:__d
mov dword [esp + 4], ecx
mov dword [esp + 0x48], eax
call sub.msvcrt.dll_printf
mov eax, dword [0x4713ac]
test eax, eax
je 0x41b9c0
cmp ebp, dword [0x4713b0]
jb 0x41bc31
mov dword [esp + 4], ebp
mov dword [esp], str.__File:__lx
call sub.msvcrt.dll_printf
movzx ebp, word [esp + 0x24]
mov dword [esp], str.__Cnt:__d_n
mov dword [esp + 4], ebp
mov dword [esp + 0x34], ebp
call sub.msvcrt.dll_printf
mov eax, dword [esp + 0x28]
sub eax, ebx
cmp esi, eax
ja 0x41c356
mov eax, dword [esp + 0x34]
add ebx, esi
add esi, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x24], esi
je 0x41bb71
lea eax, [ebx + 0x10]
cmp dword [esp + 0x28], eax
jb 0x41bc20
mov ebp, dword [esp + 0x34]
xor edi, edi
sub ebp, 1
mov dword [esp + 0x38], ebp
jmp 0x41bab9
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp], str.___06x:___Name_index:__lx
mov dword [esp + 4], ebp
call sub.msvcrt.dll_printf
movzx eax, word [esp + 0x2c]
mov edx, str.none
movzx ebp, word [esp + 0x30]
mov byte [0x471f60], 0
test eax, eax
je 0x41ba69
call fcn.00410170
mov edx, eax
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov dword [esp], str.__Flags:__s__Version:__d_n
call sub.msvcrt.dll_printf
mov eax, dword [esp + 0x28]
sub eax, ebx
cmp esi, eax
ja 0x41bb61
test esi, esi
jne 0x41ba99
cmp dword [esp + 0x38], edi
jg 0x41bb61
add dword [esp + 0x24], esi
add ebx, esi
add edi, 1
cmp dword [esp + 0x34], edi
jle 0x41bb71
lea eax, [ebx + 0x10]
cmp dword [esp + 0x28], eax
jb 0x41bc20
mov dword [esp + 4], 4
mov dword [esp], ebx
call dword [0x472cf4]
lea eax, [ebx + 4]
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 2
mov word [esp + 0x2c], ax
lea eax, [ebx + 6]
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 4
mov word [esp + 0x30], ax
lea eax, [ebx + 8]
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 4
mov ebp, eax
lea eax, [ebx + 0xc]
mov dword [esp], eax
call dword [0x472cf4]
mov esi, eax
mov eax, dword [0x4713ac]
test eax, eax
je 0x41ba30
cmp ebp, dword [0x4713b0]
jae 0x41ba30
lea ecx, [eax + ebp]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp], str.___06x:___Name:__s
mov dword [esp + 4], ecx
call sub.msvcrt.dll_printf
jmp 0x41ba48
mov dword [esp + 4], esi
mov dword [esp], str.Invalid_vna_next_field_of__lx_n
call fcn.004371d0
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x41bc11
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x2c]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x44]
ja 0x41c6db
mov edx, dword [esp + 0x48]
add dword [esp + 0x44], 1
add dword [esp + 0x3c], edx
cmp dword [esp + 0x44], eax
jae 0x41bbcf
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x3c], ecx
ja 0x41bbc3
mov ebx, dword [esp + 0x4c]
add ebx, dword [esp + 0x3c]
lea eax, [ebx + 0x10]
cmp dword [esp + 0x28], eax
jae 0x41b920
mov dword [esp], str.Missing_Version_Needs_information_n
call fcn.004371d0
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0x471084]
mov edx, 1
add dword [esp + 0x54], 1
add dword [esp + 0x40], 0x48
cmp eax, dword [esp + 0x54]
ja 0x41b7ec
test edx, edx
je 0x41c329
add esp, 0xac
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x40]
mov eax, dword [ebp + 0x2c]
jmp 0x41bb91
mov dword [esp], str.Missing_Version_Needs_auxillary_information_n
call fcn.004371d0
jmp 0x41bb71
add eax, ebp
mov dword [esp + 4], eax
mov dword [esp], str.__File:__s
call sub.msvcrt.dll_printf
jmp 0x41b9d0
mov eax, ebp
mov ebx, dword [ebp + 0x2c]
call fcn.00401c10
mov dword [esp], str._nVersion_definition_section__s_contains__u_entries:_n
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov dword [esp], str.__Addr:_0x
call sub.msvcrt.dll_printf
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 4], 0x445515
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edx
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [ebx + 0x28]
mov eax, 0x444781
cmp edx, dword [0x471084]
jae 0x41bcbf
mov eax, dword [0x471024]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
call fcn.00401c10
mov edx, dword [ebx + 0x28]
mov ebp, dword [esp + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], str.__Offset:__08lx__Link:__u___s_
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov ebx, dword [esp + 0x40]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], str.version_definition_section
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], eax
xor eax, eax
call fcn.00402840
test eax, eax
mov dword [esp + 0x3c], eax
je 0x41c31a
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
add eax, dword [ebp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x41c021
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x3c]
add edx, 0x14
cmp dword [esp + 0x24], edx
mov dword [esp + 0x44], ecx
jb 0x41c7cc
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov ebx, ebp
nop
mov dword [esp + 4], 2
mov dword [esp], ebx
call dword [0x472cf4]
mov dword [esp + 4], 2
mov word [esp + 0x28], ax
lea eax, [ebx + 2]
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 2
mov ebp, eax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 2
mov word [esp + 0x34], ax
lea eax, [ebx + 6]
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 4
movzx esi, ax
lea eax, [ebx + 8]
mov dword [esp], eax
call dword [0x472cf4]
lea eax, [ebx + 0xc]
mov dword [esp + 4], 4
mov dword [esp], eax
call dword [0x472cf4]
mov dword [esp + 4], 4
mov edi, eax
lea eax, [ebx + 0x10]
mov dword [esp], eax
call dword [0x472cf4]
mov edx, str.none
mov byte [0x471f60], 0
mov dword [esp + 0x38], eax
movzx eax, bp
test eax, eax
je 0x41be28
call fcn.00410170
mov edx, eax
movzx eax, word [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xc], edx
mov dword [esp], str.___06x:_Rev:__d__Flags:__s
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
call sub.msvcrt.dll_printf
movzx eax, word [esp + 0x34]
mov dword [esp + 8], esi
mov dword [esp], str.__Index:__d__Cnt:__d
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov eax, dword [esp + 0x24]
sub eax, ebx
cmp edi, eax
ja 0x41c370
add ebx, edi
mov dword [esp + 4], 4
mov dword [esp], ebx
call dword [0x472cf4]
mov dword [esp + 4], 4
mov ebp, eax
lea eax, [ebx + 4]
mov dword [esp], eax
call dword [0x472cf4]
mov edx, eax
mov eax, dword [0x4713ac]
test eax, eax
je 0x41beb0
cmp ebp, dword [0x4713b0]
jb 0x41c040
mov dword [esp + 4], ebp
mov dword [esp], str.Name_index:__ld_n
mov dword [esp + 0x20], edx
call sub.msvcrt.dll_printf
mov edx, dword [esp + 0x20]
add edi, dword [esp + 0x2c]
cmp esi, 1
jle 0x41bfb0
mov eax, dword [esp + 0x24]
sub eax, ebx
cmp edx, eax
ja 0x41bff6
add ebx, edx
add edi, edx
lea eax, [ebx + 8]
cmp dword [esp + 0x24], eax
jb 0x41bff6
sub esi, 1
mov dword [esp + 0x28], esi
mov esi, 1
jmp 0x41bf46
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], str.___06x:_Parent__d__name_index:__ld_n
call sub.msvcrt.dll_printf
cmp esi, dword [esp + 0x28]
je 0x41bfb0
mov eax, dword [esp + 0x24]
sub eax, ebx
cmp eax, ebp
jb 0x41bff6
add ebx, ebp
add edi, ebp
add esi, 1
lea eax, [ebx + 8]
cmp dword [esp + 0x24], eax
jb 0x41bff6
mov dword [esp + 4], 4
mov dword [esp], ebx
call dword [0x472cf4]
mov dword [esp + 4], 4
mov ecx, eax
lea eax, [ebx + 4]
mov dword [esp + 0x20], ecx
mov dword [esp], eax
call dword [0x472cf4]
mov ecx, dword [esp + 0x20]
mov ebp, eax
mov eax, dword [0x4713ac]
test eax, eax
je 0x41bf02
cmp ecx, dword [0x4713b0]
jae 0x41bf02
add ecx, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], str.___06x:_Parent__d:__s_n
call sub.msvcrt.dll_printf
cmp esi, dword [esp + 0x28]
jne 0x41bf24
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x2c]
jbe 0x41c010
mov ebx, dword [esp + 0x40]
add dword [esp + 0x30], 1
mov ebp, dword [esp + 0x30]
cmp dword [ebx + 0x2c], ebp
jbe 0x41c021
cmp eax, dword [esp + 0x44]
ja 0x41c345
mov ebx, dword [esp + 0x3c]
add ebx, eax
lea edx, [ebx + 0x14]
cmp dword [esp + 0x24], edx
jb 0x41c345
mov dword [esp + 0x2c], eax
jmp 0x41bd70
mov dword [esp], str.__Version_def_aux_past_end_of_section
call sub.msvcrt.dll_puts
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x2c]
ja 0x41bfbe
mov ebp, dword [esp + 0x40]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [esp + 0x30]
ja 0x41c345
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, 1
mov eax, dword [0x471084]
jmp 0x41b7d8
add eax, ebp
mov dword [esp + 4], eax
mov dword [esp], str.Name:__s_n
mov dword [esp + 0x20], edx
call sub.msvcrt.dll_printf
mov edx, dword [esp + 0x20]
jmp 0x41bec8
mov ebx, dword [esp + 0x40]
mov ecx, dword [ebx + 0x28]
cmp ecx, eax
jae 0x41b7d8
lea ebx, [ecx + ecx*8]
mov ecx, dword [0x471024]
mov ebp, dword [esp + 0x40]
lea ebx, [ecx + ebx*8]
cmp dword [ebx + 0x28], eax
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
jae 0x41b7d8
mov ebp, dword [0x47109c]
lea ecx, [esp + 0x60]
mov edx, ebx
mov eax, dword [esp + 0x50]
test ebp, ebp
je 0x41c37c
call fcn.00402f90
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x41c31a
mov eax, dword [ebx + 0x28]
lea edx, [eax + eax*8]
mov eax, dword [0x471024]
lea eax, [eax + edx*8]
mov ebp, eax
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x10], str.version_string_table
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x20]
mov dword [esp], 1
mov dword [esp + 4], 0
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], eax
xor eax, eax
call fcn.00402840
test eax, eax
mov dword [esp + 0x58], eax
je 0x41c2ff
mov eax, dword [esp + 0x40]
shrd esi, edi, 1
mov dword [esp + 0x30], esi
call fcn.00401c10
mov dword [esp + 8], esi
mov dword [esp], str._nVersion_symbols_section__s_contains__lu_entries:_n
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov dword [esp], str._Addr:
call sub.msvcrt.dll_printf
mov ebp, dword [esp + 0x40]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [esp + 4], 0x445515
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edx
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, ebx
call fcn.00401c10
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], str.__Offset:__08lx__Link:__u___s__n
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
mov eax, dword [esp + 0x30]
mov edx, dword [0x471298]
mov ecx, dword [0x47129c]
mov dword [esp + 4], 0
add eax, eax
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call fcn.00406ba0
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], str.version_symbol_data
mov dword [esp + 8], 2
mov dword [esp + 0xc], 0
mov dword [esp], esi
mov dword [esp + 4], 0
mov ecx, eax
xor eax, eax
call fcn.00402840
test eax, eax
mov ebp, eax
je 0x41c2f3
mov dword [esp + 4], 2
mov dword [esp], esi
call fcn.0042bf70
mov ebx, dword [esp + 0x30]
test ebx, ebx
mov dword [esp + 0x5c], eax
je 0x41c7a4
mov edx, dword [esp + 0x30]
mov ebx, esi
mov edi, eax
lea esi, [ebp + edx*2 - 2]
lea esi, [esi]
mov dword [esp], esi
sub esi, 2
mov dword [esp + 4], 2
call dword [0x472cf4]
mov word [edi + ebx*2 - 2], ax
sub ebx, 1
jne 0x41c220
mov dword [esp], ebp
call sub.msvcrt.dll_free
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x2c], 0
add ecx, 8
mov dword [esp + 0x24], ecx
lea esi, [esi]
mov ebx, dword [esp + 0x2c]
mov dword [esp], str.___03x:
mov dword [esp + 4], ebx
mov ebp, ebx
call sub.msvcrt.dll_printf
mov edi, dword [esp + 0x24]
sub edi, 8
cmp ebp, dword [esp + 0x30]
jae 0x41c2c3
movzx eax, word [edi]
test ax, ax
jne 0x41c390
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x12
mov dword [esp + 4], 1
mov dword [esp], str.___0__local_
add eax, 0x20
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
add ebp, 1
add edi, 2
cmp edi, dword [esp + 0x24]
jne 0x41c27d
mov dword [esp], 0xa
call sub.msvcrt.dll_putchar
add dword [esp + 0x2c], 4
mov ebx, dword [esp + 0x2c]
add dword [esp + 0x24], 8
cmp dword [esp + 0x30], ebx
ja 0x41c260
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, 1
mov eax, dword [0x471084]
jmp 0x41b7d8
mov edx, 1
mov eax, dword [0x471084]
jmp 0x41b7d8
mov dword [esp], str._nNo_version_information_found_in_this_file.
call sub.msvcrt.dll_puts
add esp, 0xac
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], str.__Version_definition_past_end_of_section
call sub.msvcrt.dll_puts
jmp 0x41c021
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x2c]
cmp dword [esp + 0x44], eax
jae 0x41bbcf
jmp 0x41bbc3
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0x2c]
jmp 0x41c017
call fcn.004033a0
mov dword [esp + 0x48], eax
jmp 0x41c0ae
cmp ax, 1
je 0x41c593
movsx edx, ax
and eax, 0x7fff
sar edx, 0x1f
and edx, 0x48
add edx, 0x20
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str._4x_c
call sub.msvcrt.dll_printf
cmp ebp, dword [esp + 0x60]
mov dword [esp + 0x38], eax
jae 0x41c5dd
mov ecx, dword [0x47122c]
mov edx, dword [0x471228]
mov eax, ecx
or eax, edx
jne 0x41c466
xor ebx, ebx
cmp word [edi], 0x8001
je 0x41c402
mov ecx, dword [0x47123c]
mov edx, dword [0x471238]
mov eax, ecx
or eax, edx
jne 0x41c628
test ebx, ebx
je 0x41c435
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0xc
mov dword [esp + 0xc], 0x44c0b2
mov dword [esp + 4], ebx
mov dword [esp], str.__s__s
sub edx, eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_printf
add dword [esp + 0x38], eax
cmp dword [esp + 0x38], 0x11
jg 0x41c2b7
mov eax, 0x12
sub eax, dword [esp + 0x38]
mov dword [esp + 8], 0x20
mov dword [esp], 0x448711
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
jmp 0x41c2b7
mov eax, dword [esp + 0x50]
mov dword [esp], 0x10
mov dword [esp + 4], 0
call fcn.00406ba0
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x6c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], str.version_need
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp], 0x10
mov dword [esp + 4], 0
call fcn.00402840
test eax, eax
je 0x41c5d0
lea edx, [esp + 0x74]
mov dword [esp + 4], 4
lea ebp, [esp + 0x88]
mov dword [esp], edx
lea esi, [esp + 0x82]
call dword [0x472cf4]
lea ecx, [esp + 0x78]
mov dword [esp + 4], 4
mov dword [esp], ecx
mov ebx, eax
call dword [0x472cf4]
add ebx, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
jmp 0x41c547
mov dword [esp + 4], 4
mov dword [esp], ebp
call dword [0x472cf4]
mov dword [esp + 4], 2
mov dword [esp], esi
mov edi, eax
call dword [0x472cf4]
mov edx, dword [esp + 0x28]
add ebx, edi
cmp word [edx], ax
je 0x41c5ee
test edi, edi
je 0x41c5c0
mov edx, dword [esp + 0x50]
mov ecx, ebx
mov dword [esp + 0x10], str.version_need_aux__2_
lea eax, [esp + 0x7c]
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp], 0x10
mov dword [esp + 4], 0
call fcn.00402840
test eax, eax
jne 0x41c510
mov ebx, dword [esp + 0x28]
cmp word [ebx], 0
jne 0x41c5c0
mov ebp, dword [esp + 0x4c]
mov edi, ebx
jmp 0x41c5f6
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x12
mov dword [esp + 4], 1
mov dword [esp], str.___1__global_
add eax, 0x20
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0x41c2b7
mov eax, dword [esp + 0x3c]
add dword [esp + 0x34], eax
test eax, eax
jne 0x41c48a
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x28]
jmp 0x41c3e3
mov dword [esp], str.invalid_index_into_symbol_array_n
call fcn.004371d0
jmp 0x41c2b7
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x84]
mov dword [esp + 4], 4
mov dword [esp], eax
call dword [0x472cf4]
mov ebx, dword [esp + 0x44]
mov edx, dword [ebx + 0x24]
test edx, edx
je 0x41c6ec
mov ebx, dword [esp + 0x58]
add ebx, eax
jmp 0x41c3e5
mov eax, dword [esp + 0x50]
mov dword [esp], 0x14
mov dword [esp + 4], 0
call fcn.00406ba0
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x34], ebp
mov esi, eax
mov dword [esp + 0x10], str.version_def
mov ecx, esi
mov edx, ebx
mov dword [esp + 8], 1
lea eax, [esp + 0x8c]
mov dword [esp + 0xc], 0
mov dword [esp], 0x14
mov dword [esp + 4], 0
call fcn.00402840
test eax, eax
je 0x41c6ce
lea edx, [esp + 0x9c]
mov dword [esp + 4], 4
mov dword [esp], edx
call dword [0x472cf4]
lea ecx, [esp + 0x90]
mov dword [esp + 4], 2
mov dword [esp], ecx
mov ebp, eax
call dword [0x472cf4]
movzx edx, word [edi]
add esi, ebp
and dx, 0x7fff
cmp dx, ax
je 0x41c703
test ebp, ebp
jne 0x41c64e
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
jmp 0x41c402
mov dword [esp], str.Corrupt_Version_Needs_structure___offset_to_next_structure_is_zero_with_entries_still_left_to_be_processed_n
call fcn.004371d0
jmp 0x41bbcf
mov edx, dword [esp + 0x44]
mov ebx, str.invalid
cmp eax, dword [edx + 0x20]
jae 0x41c3e5
jmp 0x41c61d
mov ecx, ebp
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0x98]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
mov dword [esp + 4], 4
mov dword [esp], eax
call dword [0x472cf4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], str.version_def_aux
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp], 8
sub eax, ecx
lea ecx, [eax + esi]
lea esi, [esp + 0x64]
mov dword [esp + 4], 0
mov eax, esi
call fcn.00402840
test eax, eax
je 0x41c2b7
mov dword [esp + 4], 4
mov dword [esp], esi
call dword [0x472cf4]
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + 0x24]
test ecx, ecx
jne 0x41c791
cmp eax, dword [edx + 0x20]
jae 0x41c7b1
cmp ebx, str.invalid
jne 0x41c7bb
mov ebx, dword [esp + 0x58]
add ebx, eax
jmp 0x41c402
mov dword [esp], ebp
call sub.msvcrt.dll_free
jmp 0x41c2e7
mov ebx, str.invalid
jmp 0x41c406
test ebx, ebx
lea esi, [esi]
je 0x41c799
mov ebx, str.both
jmp 0x41c406
mov dword [esp + 0x30], 0
jmp 0x41c017
mov dword [esp + 0x44], 0
jmp 0x41c35d