Function at 0x402f30
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, edx
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x9c
mov edx, dword [edx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 4]
mov edx, dword [edx + 8]
mov eax, dword [eax + 8]
cmp eax, edx
je 0x402f60
cmp eax, 2
je 0x402f60
cmp edx, 2
jne 0x403140
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x28]
mov dword [esp], ebp
and eax, 7
mov dword [esp + 4], eax
call fcn.004230b0
test eax, eax
je 0x4034a0
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x64]
test edx, edx
je 0x403750
mov eax, dword [0x4bd074]
test al, 1
jne 0x403100
mov edi, dword [0x4bd0d4]
test edi, edi
jne 0x4034d0
mov esi, dword [0x4bd024]
xor edx, edx
test esi, esi
jne 0x402fcf
mov ecx, dword [0x4bd0b0]
mov edx, dword [0x4bd0ac]
test ecx, ecx
je 0x403191
add edx, dword [0x4bd0b4]
movzx eax, byte [ebp + 0x28]
and eax, 7
cmp al, 3
je 0x403036
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 4]
mov esi, dword [0x4bd08c]
mov eax, dword [eax + 0x28]
not esi
and esi, dword [ecx + 0x10]
shr eax, 5
and eax, 0x3ffff
or eax, dword [0x4bd090]
mov dword [esp + 4], edx
mov dword [esp], ebp
and esi, eax
mov eax, esi
and eax, 0xfffffffe
cmp dword [0x4bd0c8], 7
cmove esi, eax
call fcn.00421280
test eax, eax
je 0x403160
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00420d20
test eax, eax
je 0x403160
mov edi, dword [esp + 0x1c]
mov dword [esp], edi
call fcn.00423700
mov dword [esp], edi
mov dword [esp + 0x1c], edi
mov esi, eax
call fcn.00423710
test ebx, ebx
mov edi, eax
je 0x403083
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00423740
test eax, eax
je 0x40307d
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00423740
mov edx, dword [eax + 0xc]
test edx, edx
jne 0x403728
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x150]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebp
call eax
test eax, eax
jne 0x4031a0
mov eax, dword [esp + 0x1c]
test byte [eax + 0x2b], 1
jne 0x4030c9
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00423700
mov dword [esp], ebp
mov ebx, eax
call fcn.00423700
cmp ebx, eax
je 0x4031a0
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00423700
test eax, eax
jne 0x403512
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.0041e0f0
mov dword [esp], str.Unable_to_recognise_the_format_of_the_input_file___s
mov dword [esp + 4], eax
call fcn.0041d6c0
xor eax, eax
jmp 0x40314e
cmp eax, 1
je 0x402f9b
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
cmp dword [eax + 4], 5
je 0x402f9b
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.0041e0f0
mov dword [esp], str.__compress_debug_sections_zlibzlib_gnuzlib_gabi__is_unsupported_on___s
mov dword [esp + 4], eax
call fcn.0041d6c0
xor eax, eax
jmp 0x40314e
mov dword [esp], str.Unable_to_change_endianness_of_input_file_s_
call fcn.0041d6c0
xor eax, eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.0041e1e0
add esp, 0x9c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x74]
jmp 0x402fc9
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x28]
mov dword [esp], ebp
and eax, 7
mov dword [esp + 4], eax
call fcn.004230b0
test eax, eax
je 0x403160
mov eax, dword [ebp + 4]
cmp dword [eax + 4], 2
je 0x403550
mov ebx, dword [0x4bd0e0]
test ebx, ebx
je 0x4031da
mov dword [esp], ebx
call fcn.0048d280
mov eax, dword [0x4bd0dc]
cmp ebx, eax
je 0x4031eb
mov dword [esp], eax
call fcn.0048d280
mov edi, dword [esp + 0x1c]
mov dword [0x4bd0e0], 0
mov dword [0x4bd0dc], 0
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x104]
mov dword [esp], edi
call eax
test eax, eax
js 0x403160
mov dword [esp], eax
call fcn.004742f0
mov edx, dword [edi + 4]
mov edx, dword [edx + 0x108]
mov dword [esp], edi
mov dword [0x4bd0e0], eax
mov dword [0x4bd0dc], eax
mov dword [esp + 4], eax
call edx
test eax, eax
mov dword [esp + 0x30], eax
js 0x403160
je 0x4036e1
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x4025d0
mov dword [esp], eax
call fcn.0041ed30
mov eax, dword [0x4bd024]
test eax, eax
je 0x403690
mov ebx, dword [0x4bd088]
test ebx, ebx
jne 0x40347a
mov ebx, dword [0x4bd084]
mov edi, dword [esp + 0x1c]
test ebx, ebx
je 0x4032ce
mov eax, dword [ebx + 4]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0041e710
test eax, eax
mov dword [ebx + 0x14], eax
je 0x4039f3
mov esi, dword [eax + 0x3c]
mov eax, dword [ebx + 0xc]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.0041ede0
test eax, eax
je 0x4039a8
mov ebx, dword [ebx]
test ebx, ebx
jne 0x403290
mov edi, dword [0x4bd080]
test edi, edi
je 0x403823
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
jmp 0x40330c
mov dword [esp + 0xc], str.cant_dump_section___it_is_empty
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.0041e1e0
mov edi, dword [edi]
test edi, edi
je 0x40381f
mov eax, dword [edi + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0041e710
test eax, eax
mov ebx, eax
je 0x4037f3
test byte [eax + 0x15], 1
je 0x403707
mov ebp, dword [eax + 0x24]
test ebp, ebp
je 0x4032e6
mov eax, dword [edi + 8]
mov dword [esp + 4], 0x496a1d
mov dword [esp], eax
call sub.msvcrt.dll_fopen
test eax, eax
mov dword [esp + 0x20], eax
je 0x4039cb
mov dword [esp], ebp
call fcn.004742f0
mov dword [esp + 0x14], ebp
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 0x24], eax
call fcn.0041ef20
test eax, eax
je 0x403770
mov eax, dword [esp + 0x20]
mov dword [esp + 8], ebp
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
cmp ebp, eax
jne 0x40448d
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.0048d280
jmp 0x403302
mov esi, dword [eax + 0x18]
or esi, 0x100
mov eax, dword [ebx + 4]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0041e710
test eax, eax
mov eax, dword [ebx + 4]
jne 0x4037b7
or esi, 0x100000
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0041ebd0
test eax, eax
mov dword [ebx + 0x14], eax
je 0x4037e2
mov edx, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov dword [esp], ebp
mov dword [esp + 8], edx
call fcn.0041ede0
test eax, eax
je 0x403791
mov eax, dword [ebx + 4]
xor edx, edx
mov ecx, 0xc
call fcn.00401710
test eax, eax
je 0x403454
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x14]
or byte [eax + 0x18], 1
mov dword [eax + 0x20], edx
mov dword [eax + 0x1c], edx
mov eax, dword [ebx + 4]
xor edx, edx
mov ecx, 0x30
call fcn.00401710
test eax, eax
je 0x403470
mov edx, dword [ebx + 0x14]
mov eax, dword [eax + 0x14]
mov dword [edx + 0x20], eax
mov ebx, dword [ebx]
test ebx, ebx
je 0x403282
mov eax, dword [ebx + 4]
xor edx, edx
mov ecx, 0x40
call fcn.00401710
test eax, eax
jne 0x4033d2
mov esi, 0x128
jmp 0x4033db
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp], 0
call fcn.0041e1e0
add esp, 0x9c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp]
mov edx, dword [eax]
mov eax, dword [ecx + 4]
mov dword [esp + 0x20], edx
mov esi, dword [eax]
mov dword [esp], ecx
call fcn.0041e0f0
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp], str.copy_from___s___s__to___s___s__n
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_printf
jmp 0x402fa9
mov edi, dword [esp + 0x1c]
mov dword [esp], edi
call fcn.00423710
mov dword [esp], edi
mov ebx, eax
call fcn.00423700
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004237f0
mov dword [esp], str.Output_file_cannot_represent_architecture___s
mov dword [esp + 4], eax
call fcn.0041d6c0
xor eax, eax
jmp 0x40314e
mov esi, dword [eax]
mov edx, str.pei_
mov ecx, 4
mov edi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4031c8
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 0xa0]
mov ecx, dword [ecx + 4]
cmp dword [ecx + 4], 2
je 0x404224
mov edx, dword [0x4927e4]
cmp edx, 0xffffffff
je 0x404210
mov dword [eax + 0xa4], edx
mov ebx, edx
mov edx, dword [0x4927e0]
cmp edx, 0xffffffff
je 0x4035a5
mov dword [eax + 0xd4], edx
mov edx, dword [0x4927dc]
cmp edx, 0xffffffff
je 0x4035b6
mov dword [eax + 0xd4], edx
mov edx, dword [0x4927d8]
cmp edx, 0xffffffff
je 0x4035c7
mov dword [eax + 0x9c], edx
mov edx, dword [0x4927d4]
cmp edx, 0xffffffff
je 0x40425f
mov dword [eax + 0xa0], edx
mov ecx, dword [0x4927d0]
cmp ecx, 0xffffffff
je 0x4035ed
mov dword [eax + 0xcc], ecx
mov ecx, dword [0x4927cc]
cmp ecx, 0xffffffff
je 0x4035fe
mov dword [eax + 0xcc], ecx
movzx ecx, word [0x4927c8]
cmp cx, 0xffff
je 0x403612
mov word [eax + 0xc4], cx
movzx ecx, word [0x4927c6]
cmp cx, 0xffff
je 0x403626
mov word [eax + 0xb0], cx
movzx ecx, word [0x4927c4]
cmp cx, 0xffff
je 0x40363a
mov word [eax + 0xb2], cx
cmp ebx, edx
jbe 0x4031c8
mov dword [esp + 8], ebx
lea ebx, [esp + 0x68]
mov dword [esp + 4], 0x4968f0
lea esi, [esp + 0x7c]
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov eax, dword [0x4927d4]
mov dword [esp + 4], 0x4968f0
mov dword [esp], esi
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], str.warning:_file_alignment__0x_s____section_alignment__0x_s_
call fcn.0041d6c0
jmp 0x4031c8
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0xbc]
mov dword [esp + 4], ebp
mov dword [esp], ecx
call eax
test eax, eax
jne 0x403274
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], str.error_in_private_header_data
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [0x4bd0cc], 1
call fcn.0041e1e0
jmp 0x403274
mov eax, dword [0x4bd0e0]
mov dword [esp], eax
call fcn.0048d280
mov dword [0x4bd0e0], 0
mov dword [0x4bd0dc], 0
jmp 0x40324f
mov dword [esp + 0xc], str.cant_dump_section___it_has_no_contents
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.0041e1e0
jmp 0x403302
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.0041e0f0
mov dword [esp], str.Input_file___s_ignores_binary_architecture_parameter.
mov dword [esp + 4], eax
call fcn.0041d6c0
jmp 0x403083
mov dword [esp], eax
call fcn.0041e0f0
mov dword [esp], str.error:_the_input_file__s_has_no_sections
mov dword [esp + 4], eax
call fcn.0041d6c0
xor eax, eax
jmp 0x40314e
mov dword [esp + 0xc], str.could_not_retrieve_section_contents
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.0041e1e0
jmp 0x4033b5
mov eax, dword [ebx + 0x14]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0041e1e0
xor eax, eax
jmp 0x40314e
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.cant_add_section__s
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0041e1e0
xor eax, eax
jmp 0x40314e
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], str.cant_create_section___s
mov dword [esp + 0x10], eax
jmp 0x4037c3
mov eax, dword [edi + 4]
mov dword [esp + 0xc], str.cant_dump_section__s___it_does_not_exist
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov dword [esp], 0
call fcn.0041e1e0
jmp 0x403302
mov ebp, dword [esp + 0x28]
mov eax, dword [0x4bd07c]
test eax, eax
je 0x403861
mov dword [esp + 4], 0x496a9c
mov dword [esp], ebp
call fcn.0041e710
test eax, eax
je 0x4044bb
mov eax, dword [ebp]
mov dword [esp], str._s:_debuglink_section_already_exists
mov dword [esp + 4], eax
call fcn.0041d6c0
mov dword [0x4bd07c], 0
mov dword [esp + 0x58], 0
mov ebx, dword [ebp + 0x6c]
test ebx, ebx
je 0x403a0d
mov eax, dword [0x4bd0a4]
test eax, eax
jne 0x40388a
mov eax, dword [0x4bd09c]
test eax, eax
je 0x403a0d
lea eax, [ebx*4]
mov dword [esp], eax
mov edi, eax
mov dword [esp + 0x24], eax
call fcn.004742f0
mov dword [esp + 4], 0x401560
mov dword [esp], ebp
mov esi, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
mov dword [esp + 8], eax
call fcn.0041ed30
mov dword [esp + 0xc], 0x401570
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.msvcrt.dll_qsort
mov dword [esp], edi
call fcn.004742f0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov ecx, eax
mov dword [esp], ecx
mov dword [esp + 0x50], eax
call sub.msvcrt.dll_memset
mov eax, dword [0x4bd0a4]
mov dword [esp + 0x54], 0
test eax, eax
je 0x404277
mov esi, ebx
sub esi, 1
je 0x404277
mov edi, dword [esp + 0x5c]
mov ebx, 1
mov dword [esp + 0x28], ebp
jmp 0x40393e
add edi, 4
add ebx, 1
cmp esi, edx
jbe 0x404273
mov eax, dword [edi]
mov edx, ebx
mov ecx, dword [eax + 0x14]
and ecx, 0x102
cmp ecx, 0x102
jne 0x403930
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
add edx, ecx
mov dword [esp + 0x20], edx
mov edx, dword [edi + 4]
mov ebp, dword [edx + 0x20]
mov edx, ebx
cmp dword [esp + 0x20], ebp
jae 0x403930
sub ebp, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
add ecx, ebp
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.0041ede0
test eax, eax
je 0x40469a
mov eax, dword [esp + 0x50]
mov edx, ebx
mov dword [eax + ebx*4 - 4], ebp
mov eax, dword [esp + 0x54]
cmp eax, ebp
cmovae ebp, eax
mov dword [esp + 0x54], ebp
jmp 0x403930
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0041e1e0
xor eax, eax
jmp 0x40314e
mov eax, dword [edi + 8]
mov dword [esp + 0xc], str.could_not_open_section_dump_file
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0041e1e0
jmp 0x403302
mov eax, dword [ebx + 4]
mov dword [esp], str.error:__s_not_found__cant_be_updated
mov dword [esp + 4], eax
call fcn.0041d6c0
xor eax, eax
jmp 0x40314e
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov edi, dword [0x4bd078]
mov dword [esp + 0x4c], 0
test edi, edi
jne 0x4042e7
mov eax, dword [0x4bd0c8]
cmp eax, 7
je 0x4041ff
cmp eax, 2
je 0x4041ff
sub eax, 3
cmp eax, 3
jbe 0x403a71
mov esi, dword [0x4bd0c4]
test esi, esi
jne 0x403a71
cmp dword [0x4bd064], 0
je 0x4041e5
mov eax, dword [0x4bd0e0]
mov dword [esp + 4], 0x401a60
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.0041ed30
mov edi, dword [esp + 0x30]
mov eax, dword [0x4bd03c]
add eax, edi
lea eax, [eax*4 + 4]
mov dword [esp], eax
call fcn.004742f0
mov dword [esp + 0x34], 0
mov dword [esp + 0x44], eax
mov dword [0x4bd0dc], eax
mov eax, dword [0x4bd0e0]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x48], eax
shr dword [esp + 0x48], 5
and dword [esp + 0x48], 0x42
test edi, edi
je 0x403d4d
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], ebp
nop
lea esi, [esi]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov ebx, dword [0x4bd040]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x10], 0x4928e8
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x24], eax
mov esi, dword [eax + 4]
sete al
test ebx, ebx
movzx eax, al
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
je 0x403b91
mov eax, dword [0x4bd03c]
test eax, eax
mov dword [esp + 0x20], eax
jle 0x403b91
mov ebp, dword [ebx + 0x14]
test ebp, ebp
je 0x403b91
xor edi, edi
jmp 0x403b52
add edi, 1
mov ebx, dword [ebx]
cmp edi, dword [esp + 0x20]
je 0x403b91
mov ebp, dword [ebx + 0x14]
test ebp, ebp
je 0x403b91
mov dword [esp + 4], esi
mov dword [esp], ebp
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x403b40
mov dword [esp], ebp
call fcn.0048d280
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov dword [ebx + 0x14], 0x496b29
lea edi, [eax + 1]
lea ebp, [ecx + eax*4]
mov eax, ebx
call fcn.00402440
mov dword [esp + 0x34], edi
mov dword [ebp], eax
mov ebx, dword [0x4bd044]
test ebx, ebx
je 0x403bc6
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 4]
mov eax, dword [ebx]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x403ef0
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x403ba2
mov eax, dword [esp + 0x24]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x1c]
movzx edx, byte [esi]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 0x18]
cmp dl, al
je 0x403f32
mov ebx, dword [0x4bd070]
xor ecx, ecx
test ebx, ebx
je 0x403c07
mov edi, dword [esp + 0x3c]
mov ebx, dword [edi + 4]
movzx ebx, byte [ebx + 0x18]
test bl, bl
je 0x403c07
test al, al
je 0x403db1
cmp dl, al
je 0x403db1
xor eax, eax
test ecx, ecx
mov edx, dword [0x4bd030]
jne 0x403dcc
test eax, eax
jne 0x403ef8
test edx, edx
mov ebx, esi
je 0x403c82
mov dword [esp], edx
call sub.msvcrt.dll_strlen
mov dword [esp], esi
mov ebx, eax
call sub.msvcrt.dll_strlen
lea eax, [ebx + eax + 2]
mov dword [esp], eax
call fcn.004742f0
mov ebp, eax
mov ebx, eax
mov edx, dword [0x4bd030]
test edx, edx
je 0x403c6f
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x20], edx
call sub.msvcrt.dll_strcpy
mov edx, dword [esp + 0x20]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
add ebp, eax
mov dword [esp + 4], esi
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov eax, dword [esp + 0x24]
mov dword [eax + 4], ebx
cmp dword [0x4bd0c8], 7
je 0x403de8
mov esi, dword [esp + 0x28]
and esi, 0x20
je 0x403e20
mov edx, dword [0x4bd060]
mov eax, ebx
call fcn.004024c0
test eax, eax
je 0x403cc7
mov dword [esp + 4], ebx
mov dword [esp], str.not_stripping_symbol___s_because_it_is_named_in_a_relocation
call fcn.0041d6c0
mov dword [0x4bd0cc], 1
test esi, esi
je 0x403ed6
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
call fcn.00402520
test eax, eax
jne 0x403d36
test byte [esp + 0x28], 2
je 0x403d02
mov eax, dword [0x4bd038]
test eax, eax
je 0x4041cb
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xc]
and eax, 0xfffffffd
or al, 0x80
mov dword [ecx + 0xc], eax
mov ebp, dword [esp + 0x38]
test ebp, ebp
jne 0x403d20
test byte [esp + 0x28], 0x82
jne 0x4041a2
test byte [esp + 0x28], 1
jne 0x404178
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
mov dword [ecx + eax*4], edi
add eax, 1
mov dword [esp + 0x34], eax
add dword [esp + 0x2c], 1
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x2c], eax
jne 0x403af0
mov ebp, dword [esp + 0x3c]
mov ebx, dword [0x4bd040]
test ebx, ebx
je 0x403f87
mov esi, dword [0x4bd03c]
test esi, esi
jle 0x403f87
xor esi, esi
mov edx, dword [esp + 0x34]
jmp 0x403d8b
cmp byte [eax], 0
jne 0x404778
add esi, 1
mov ebx, dword [ebx]
cmp esi, dword [0x4bd03c]
jge 0x403f83
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x403d71
mov ecx, dword [esp + 0x44]
lea eax, [edx + 1]
mov dword [esp + 0x20], eax
mov eax, ebx
lea edi, [ecx + edx*4]
mov edx, ebp
call fcn.00402440
mov edx, dword [esp + 0x20]
mov dword [edi], eax
jmp 0x403d7a
test ecx, ecx
je 0x4048bc
mov edx, dword [0x4bd030]
mov eax, 1
test edx, edx
je 0x404168
mov ecx, dword [esp + 0x24]
add esi, 1
mov dword [ecx + 4], esi
jmp 0x403c17
cmp dword [0x4bd0c8], 3
jne 0x403ec1
mov eax, dword [0x4bd034]
test eax, eax
je 0x403dff
test dword [esp + 0x28], 0x4000
jne 0x403ccf
mov edx, dword [0x4bd058]
mov eax, ebx
call fcn.004024c0
test eax, eax
jne 0x403ccf
jmp 0x403d36
test dword [esp + 0x28], 0x100
je 0x403e43
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x9c]
mov eax, dword [eax]
test byte [eax + 0xc], 0x20
jne 0x403c9c
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x403e5f
test byte [esp + 0x28], 0x82
jne 0x403ec1
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test byte [eax + 0x15], 0x10
jne 0x403ec1
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.00423ad0
cmp eax, 0x49
je 0x403ec1
test byte [esp + 0x28], 0x82
jne 0x403ddb
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x403ddb
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test byte [eax + 0x15], 0x10
jne 0x403ddb
test byte [esp + 0x28], 4
je 0x4045ab
mov eax, dword [0x4bd0c8]
sub eax, 2
cmp eax, 1
jbe 0x403de8
cmp dword [0x4bd078], 0
jne 0x403de8
mov edx, dword [0x4bd060]
mov eax, ebx
call fcn.004024c0
test eax, eax
jne 0x403de8
mov edx, dword [0x4bd05c]
mov eax, ebx
call fcn.004024c0
test eax, eax
jne 0x403de8
jmp 0x403ccf
mov esi, dword [ebx + 4]
jmp 0x403bbf
mov dword [esp], edx
nop
lea esi, [esi]
call sub.msvcrt.dll_strlen
mov dword [esp], esi
mov ebx, eax
call sub.msvcrt.dll_strlen
lea eax, [ebx + eax + 2]
mov dword [esp], eax
call fcn.004742f0
mov ebx, eax
lea ebp, [eax + 1]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
movzx eax, byte [eax + 0x18]
mov byte [ebx], al
jmp 0x403c47
mov ecx, dword [0x4bd070]
test ecx, ecx
jne 0x403f79
mov eax, dword [0x4bd06c]
test eax, eax
je 0x403f72
test byte [esp + 0x28], 0x82
mov ecx, 1
jne 0x403c07
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x403c07
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test byte [eax + 0x15], 0x10
jne 0x403c07
xor ecx, ecx
jmp 0x403c07
mov ecx, 1
jmp 0x403be8
mov dword [esp + 0x34], edx
mov ebx, dword [0x4bd078]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
test ebx, ebx
mov dword [eax + ecx*4], 0
je 0x40401e
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x40401e
mov edx, dword [ebp + 4]
mov eax, dword [edx + 4]
cmp eax, 6
je 0x40400a
cmp eax, 5
je 0x403fc1
cmp eax, 2
jne 0x404315
lea eax, [esp + 0x7c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x68]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0041d220
test eax, eax
jne 0x404514
mov dword [0x4bd0cc], 1
xor eax, eax
jmp 0x40314e
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00418a80
test eax, eax
je 0x403ff9
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [0x4bd0dc]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.004238f0
mov edi, dword [esp + 0x1c]
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x402d10
mov dword [esp], edi
call fcn.0041ed30
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x4029e0
mov dword [esp], edi
call fcn.0041ed30
mov ebx, dword [0x4bd088]
test ebx, ebx
je 0x4040ab
lea esi, [esi]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0041ee20
test eax, eax
je 0x403791
mov ebx, dword [ebx]
test ebx, ebx
jne 0x404070
mov ebx, dword [0x4bd084]
test ebx, ebx
je 0x4040f3
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0xc]
mov esi, dword [eax + 0x3c]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.0041ee20
test eax, eax
je 0x4039a8
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4040b5
mov eax, dword [0x4bd07c]
test eax, eax
je 0x404118
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00425d50
test eax, eax
je 0x404601
mov edx, dword [0x4bd0a4]
test edx, edx
jne 0x4043a0
cmp dword [0x4bd09c], 0
jne 0x4043a0
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x1c]
mov eax, dword [eax + 0xa8]
mov dword [esp + 4], ebp
mov dword [esp], edi
call eax
test eax, eax
je 0x40476b
mov eax, dword [0x4bd094]
test eax, eax
jne 0x40464e
mov eax, 1
jmp 0x40314e
mov eax, dword [esp + 0x24]
mov byte [esi], bl
mov ebx, esi
mov dword [eax + 4], esi
jmp 0x403c82
mov edx, dword [0x4bd050]
mov eax, ebx
call fcn.004024c0
test eax, eax
je 0x403d20
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xc]
and eax, 0xfffffffe
or eax, 2
mov dword [ecx + 0xc], eax
jmp 0x403d20
mov edx, dword [0x4bd054]
mov eax, ebx
call fcn.004024c0
test eax, eax
je 0x404340
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0xc]
and al, 0x7d
or eax, 1
mov dword [edi + 0xc], eax
jmp 0x403d15
mov edx, dword [0x4bd048]
mov eax, ebx
call fcn.004024c0
test eax, eax
jne 0x403cf3
jmp 0x403d02
mov eax, dword [0x4bd060]
mov dword [esp], eax
call fcn.00474710
test eax, eax
je 0x4047bf
mov eax, dword [0x4bd0c8]
cmp eax, 7
je 0x403a8e
jmp 0x403a71
mov dword [0x4927e4], 0x200
mov ebx, 0x200
jmp 0x403594
mov esi, dword [ecx]
mov edi, edx
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x40357d
mov edi, dword [esp + 0x1c]
mov edi, dword [edi + 0xa0]
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x20]
lea edi, [eax + 0x80]
lea esi, [ecx + 0x80]
mov ecx, 0x38
rep movsd dword es:[edi], dword [esi]
jmp 0x40357d
mov dword [0x4927d4], 0x1000
mov edx, 0x1000
jmp 0x4035dc
mov ebp, dword [esp + 0x28]
mov eax, dword [0x4bd09c]
test eax, eax
je 0x403a25
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x24]
mov edx, dword [0x4bd098]
lea ebx, [eax + edi - 4]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x20]
mov esi, dword [eax + 0x24]
add esi, ecx
cmp esi, edx
jae 0x403a25
sub edx, ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0041ede0
test eax, eax
je 0x404788
mov eax, dword [0x4bd098]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
sub eax, esi
mov dword [ecx + edi - 4], eax
mov edi, dword [esp + 0x54]
cmp edi, eax
cmovae eax, edi
mov dword [esp + 0x54], eax
jmp 0x403a25
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov eax, dword [0x4bd0e0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004057f0
mov dword [esp + 0x4c], eax
jmp 0x403a3b
mov eax, dword [edx]
mov dword [esp + 0xc], str.dont_know_how_to_write_debugging_information_for__s
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp + 0x10], eax
mov dword [esp], 0
call fcn.0041e1e0
jmp 0x403ff9
mov eax, dword [0x4bd04c]
mov dword [esp], eax
call fcn.00474710
test eax, eax
jne 0x404591
mov edi, dword [0x4bd064]
test edi, edi
je 0x403d15
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov edx, dword [eax + 4]
cmp dword [edx + 4], 5
jne 0x403d15
cmp dword [eax + 0xa0], 0
je 0x403d15
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + 0x25]
and eax, 3
sub eax, 1
cmp al, 1
ja 0x403d15
jmp 0x4041b7
mov eax, dword [esp + 0x54]
mov ebx, 0x2000
cmp eax, 0x2000
cmovbe ebx, eax
mov dword [esp], ebx
call fcn.004742f0
mov dword [esp + 8], ebx
mov edi, eax
mov dword [esp + 0x28], eax
movzx eax, byte [0x4bd0a0]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 0x6c]
test eax, eax
mov dword [esp + 0x30], eax
je 0x404133
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [eax + ecx*4]
test ebx, ebx
je 0x40446c
mov eax, dword [esp + 0x20]
xor edi, edi
mov eax, dword [eax]
mov esi, dword [eax + 0x24]
sub esi, ebx
jmp 0x404427
xor edx, edx
add esi, ebp
adc edi, edx
sub ebx, ebp
je 0x40446c
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
cmp ebx, 0x2000
mov ebp, 0x2000
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
cmovbe ebp, ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.0041ee20
test eax, eax
jne 0x404417
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov eax, dword [eax]
jmp 0x403794
add dword [esp + 0x2c], 1
mov eax, dword [esp + 0x30]
add dword [esp + 0x20], 4
cmp dword [esp + 0x2c], eax
jne 0x4043f9
mov ebp, dword [esp + 0x24]
jmp 0x404133
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov edx, dword [edi + 8]
mov dword [esp], str.error_writing_section_contents_to__s__error:__s_
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0041d6c0
xor eax, eax
jmp 0x40314e
mov eax, dword [0x4bd07c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00425cb0
test eax, eax
mov dword [esp + 0x58], eax
je 0x4048a6
mov eax, dword [ebp + 4]
cmp dword [eax + 4], 2
jne 0x403869
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x4047b5
xor ecx, ecx
jmp 0x404505
cmp edx, dword [ecx + 0x1c]
cmova ecx, eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x404617
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x4044fa
test ecx, ecx
jne 0x4044f4
mov ecx, eax
jmp 0x4044fa
mov dword [esp + 8], 0x2108
mov dword [esp + 4], 0x496b80
mov dword [esp], ebp
call fcn.0041ebd0
mov dword [esp + 8], 0x2108
mov dword [esp + 4], 0x496b86
mov dword [esp], ebp
mov ebx, eax
call fcn.0041ebd0
test eax, eax
mov esi, eax
je 0x40456c
test ebx, ebx
je 0x40456c
mov eax, dword [esp + 0x68]
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0041ede0
test eax, eax
jne 0x4046e8
mov dword [esp + 0xc], str.cant_create_debugging_section
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0041e1e0
jmp 0x403ff9
mov edx, dword [0x4bd04c]
mov eax, ebx
call fcn.004024c0
test eax, eax
je 0x4041b7
jmp 0x404355
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
cmp dword [edx + 4], 2
je 0x4046cb
cmp dword [0x4bd0c8], 3
je 0x403de8
mov eax, dword [0x4bd0c4]
cmp eax, 2
je 0x403de8
sub eax, 1
jne 0x403ec1
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004238c0
test eax, eax
je 0x403ec1
jmp 0x403de8
mov eax, dword [0x4bd07c]
mov dword [esp + 0xc], str.cannot_fill_debug_link_section___s
mov dword [esp + 0x10], eax
jmp 0x4037c3
test ecx, ecx
je 0x4047b5
mov edx, dword [ecx + 0x24]
or eax, 0xffffffff
add edx, dword [ecx + 0x1c]
lea ecx, [edx + 0xfff]
mov ebx, ecx
and ebx, 0xfffff000
cmp edx, ecx
cmovbe eax, ebx
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x1c], eax
or byte [ecx + 0x18], 1
jmp 0x403869
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.004215a0
test eax, eax
jne 0x40415e
mov eax, dword [0x4bd094]
mov dword [esp], str.this_target_does_not_support__lu_alternative_machine_codes
mov dword [esp + 4], eax
call fcn.0041d6c0
mov eax, dword [ebp + 4]
cmp dword [eax + 4], 5
je 0x4048c6
mov dword [esp], str.ignoring_the_alternative_value
call fcn.0041d6c0
mov eax, 1
jmp 0x40314e
mov eax, dword [edi]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0xc], str.Cant_fill_gap_after_section
mov dword [esp], 0
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
call fcn.0041e1e0
mov dword [0x4bd0cc], 1
jmp 0x404277
mov eax, dword [eax + 0x8c]
test eax, eax
je 0x4045bc
cmp dword [eax + 0x1c], 0
jne 0x403ec1
jmp 0x4045bc
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0041ede0
test eax, eax
je 0x40456c
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x40], 2
mov dword [esi + 0x40], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], 0
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0041ee20
test eax, eax
jne 0x4048e7
mov dword [esp + 0xc], str.cant_set_debugging_section_contents
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], 0
call fcn.0041e1e0
jmp 0x403ff9
mov dword [esp + 0xc], str.error_copying_private_BFD_data
jmp 0x4034a8
mov dword [esp + 4], eax
mov dword [esp], str.before_s_not_found
call fcn.0041d690
mov eax, dword [ebx]
mov dword [esp + 0xc], str.cant_add_padding
mov dword [esp + 4], ebp
mov dword [esp], 0
mov dword [esp + 8], eax
call fcn.0041e1e0
mov dword [0x4bd0cc], 1
jmp 0x403a25
mov eax, 0x1000
jmp 0x40463b
mov eax, dword [0x4bd058]
mov dword [esp], eax
call fcn.00474710
test eax, eax
jne 0x4041fa
mov eax, dword [0x4bd054]
mov dword [esp], eax
call fcn.00474710
test eax, eax
jne 0x4041fa
mov eax, dword [0x4bd050]
mov dword [esp], eax
call fcn.00474710
test eax, eax
jne 0x4041fa
mov eax, dword [0x4bd04c]
mov dword [esp], eax
call fcn.00474710
test eax, eax
jne 0x4041fa
mov eax, dword [0x4bd048]
mov dword [esp], eax
call fcn.00474710
test eax, eax
jne 0x4041fa
cmp dword [0x4bd030], 0
jne 0x4041fa
cmp dword [0x4bd0bc], 0
jne 0x4041fa
cmp dword [0x4bd0b8], 0
jne 0x4041fa
cmp dword [0x4bd078], 0
jne 0x4041fa
cmp dword [0x4bd070], 0
jne 0x4041fa
cmp dword [0x4bd06c], 0
jne 0x4041fa
cmp dword [0x4bd044], 0
jne 0x4041fa
cmp dword [0x4bd038], 0
jne 0x4041fa
cmp dword [0x4bd03c], 0
jne 0x4041fa
mov eax, dword [esp + 0x30]
jmp 0x404022
mov eax, dword [0x4bd07c]
mov dword [esp + 0xc], str.cannot_create_debug_link_section___s
mov dword [esp + 0x10], eax
jmp 0x4037c3
mov eax, 1
jmp 0x403c09
mov dword [esp], str.treating_that_number_as_an_absolute_e_machine_value_instead
call fcn.0041d6c0
mov eax, dword [ebp + 0xa0]
mov edx, dword [0x4bd094]
mov word [eax + 0x26], dx
jmp 0x40415e
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 4], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0041ee20
test eax, eax
je 0x404746
jmp 0x40401e