Function at 0x409370
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x2c
mov eax, dword [eax + 4]
cmp eax, 0xf
ja case.default.0x409387
mov ebp, edx
jmp dword [eax*4 + 0x4d0ec0]
mov ecx, dword [esi + 0xc]
mov eax, str.BEFORE
mov edx, dword [esi + 8]
mov dword [esp], str.INSERT__s__s_n
test ecx, ecx
mov ecx, str.AFTER
cmove eax, ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call fcn.004184d0
lea esi, [esi]
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [0x514710]
test edx, edx
je 0x4093c0
mov eax, dword [0x51470c]
test eax, eax
jne 0x409a6a
mov dword [esp], str._CONSTRUCTORS_n
call fcn.004184d0
mov ebx, dword [0x514710]
test ebx, ebx
je 0x4093c0
mov eax, ebx
mov edx, ebp
call fcn.00409370
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4093f5
jmp 0x4093c0
cmp esi, dword [0x5146d8]
mov edi, dword [esi + 0x1c]
je 0x4094b3
mov eax, dword [esi + 0x18]
mov dword [esp], 0x4d0e16
mov dword [esp + 4], eax
call fcn.004184d0
test edi, edi
je 0x4094ae
mov eax, dword [edi + 0x1c]
mov dword [0x50f338], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp eax, 0xe
mov ebx, eax
jg 0x409b7b
nop
add ebx, 1
call fcn.00418560
cmp ebx, 0xf
jle 0x409450
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x24]
mov dword [esp], str.0x_V__W
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004184d0
mov eax, dword [edi + 0x20]
cmp dword [edi + 0x1c], eax
je 0x40948f
mov dword [esp + 4], eax
mov dword [esp], str._load_address_0x_V
call fcn.004184d0
mov eax, dword [esi + 0x34]
test eax, eax
je 0x4094ae
mov dword [esp + 8], 0x50f338
mov dword [esp + 4], 0x4bfb90
mov dword [esp], eax
call fcn.00416940
call fcn.00418580
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x4093c0
nop
mov eax, ebx
mov edx, esi
call fcn.00409370
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4094c0
jmp 0x4093c0
mov ebx, 0x10
lea esi, [esi]
call fcn.00418560
sub ebx, 1
jne 0x4094e0
mov eax, dword [esi + 8]
mov edx, dword [eax + 0xc]
cmp edx, 8
je 0x409a9d
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x2e
je 0x409b67
mov dword [0x5148cc], ecx
xor ebx, ebx
mov edi, dword [eax + 0x14]
mov eax, dword [ebp + 0x1c]
mov ecx, 0x4bfb90
test eax, eax
cmove eax, ecx
cmp edx, 5
je 0x409b43
mov dword [esp + 8], 0x50f338
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00416940
mov ebp, dword [0x5148dc]
test ebp, ebp
je 0x409b4d
mov eax, dword [esi + 8]
cmp dword [eax + 0xc], 8
je 0x409563
test ebx, ebx
jne 0x409563
mov edi, dword [0x5148cc]
test edi, edi
je 0x409ba9
mov eax, dword [0x5148d8]
mov edi, dword [0x5148d0]
test eax, eax
je 0x409575
add edi, dword [eax + 0x1c]
mov dword [esp + 4], edi
mov dword [esp], str.0x_V
call fcn.004184d0
test ebx, ebx
je 0x40958f
mov dword [0x50f338], edi
mov dword [esp], 0x4d0e64
mov dword [0x5148cc], 0
call fcn.004184d0
mov eax, dword [esi + 8]
jmp 0x409606
mov edx, dword [esi + 8]
test edx, edx
je 0x4093c0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4095cc
test byte [eax + 0x2a], 2
jne 0x4093c0
mov eax, dword [0x514770]
mov dword [esp + 8], edx
mov dword [esp + 4], str.LOAD__s_n
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x4093c0
mov eax, dword [esi + 8]
mov dword [esp], str.Address_of_section__s_set_to
mov dword [esp + 4], eax
call fcn.004184d0
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.00416de0
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00418580
call fcn.00418560
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x409a8c
mov eax, dword [esi + 8]
test eax, eax
je 0x409b87
mov dword [esp + 4], eax
mov dword [esp], 0x4d0cec
call fcn.004184d0
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x409a7b
mov dword [esp], 0x4d0d7b
call fcn.004184d0
mov edi, dword [esi + 0x10]
test edi, edi
je 0x409707
lea esi, [esi]
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x409a05
mov eax, dword [edi + 8]
test eax, eax
je 0x4096c5
mov eax, dword [eax]
mov dword [esp], 0x4d0d7d
mov dword [esp + 4], eax
call fcn.004184d0
mov eax, dword [edi + 8]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x4096b9
nop
mov eax, dword [ebx]
mov dword [esp], 0x4d0d90
mov dword [esp + 4], eax
call fcn.004184d0
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x4096a0
mov dword [esp], 0x4d0d8d
call fcn.004184d0
mov eax, dword [edi + 4]
test eax, eax
je 0x409a27
mov dword [esp + 4], eax
mov dword [esp], 0x4d0cec
call fcn.004184d0
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x409a16
mov eax, dword [edi]
test eax, eax
je 0x409707
mov dword [esp], 0x4d0d94
call fcn.004184d0
mov edi, dword [edi]
test edi, edi
jne 0x409670
mov dword [esp], 0x4d0d79
call fcn.004184d0
call fcn.00418580
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x4093c0
mov eax, ebx
mov edx, ebp
call fcn.00409370
mov ebx, dword [ebx]
test ebx, ebx
jne 0x409723
jmp 0x4093c0
mov eax, dword [esi + 8]
add esp, 0x2c
xor edx, edx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00409090
mov dword [esp], str._CREATE_OBJECT_SYMBOLS_n
call fcn.004184d0
jmp 0x4093c0
mov eax, dword [0x514770]
mov dword [esp + 8], 0xd
mov dword [esp + 4], 1
mov dword [esp], str._FILL_mask_0x
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 8]
mov ebx, dword [eax]
lea esi, [eax + 4]
test ebx, ebx
je 0x4097b5
movzx eax, byte [esi]
add esi, 1
mov dword [esp + 4], str._02x
mov dword [esp + 8], eax
mov eax, dword [0x514770]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
sub ebx, 1
jne 0x409791
mov eax, dword [0x514770]
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
jmp 0x4093c0
call fcn.00409020
mov ebx, 0x10
lea esi, [esi]
call fcn.00418560
sub ebx, 1
jne 0x4097e0
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
test eax, eax
je 0x4097f7
add ebx, dword [eax + 0x1c]
mov eax, dword [esi + 8]
sub eax, 0x11a
cmp eax, 4
ja case.default.0x409808
jmp dword [eax*4 + 0x4d0f00]
mov eax, dword [esi + 8]
mov dword [esp + 4], str.TARGET__s__n
mov dword [esp + 8], eax
mov eax, dword [0x514770]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x4093c0
mov eax, dword [esi + 8]
mov dword [esp], str.OUTPUT__s
mov dword [esp + 4], eax
call fcn.004184d0
mov eax, dword [0x5146dc]
test eax, eax
je 0x40985d
mov dword [esp + 4], eax
mov dword [esp], 0x4d0d90
call fcn.004184d0
mov dword [esp], 0x4d0e8b
call fcn.004184d0
jmp 0x4093c0
call fcn.00409020
mov ebx, 9
mov dword [esp], str._fill
call fcn.004184d0
call fcn.00418560
sub ebx, 1
jne 0x409886
mov eax, dword [esi + 0x10]
mov ebp, dword [esi + 8]
test eax, eax
je 0x40989d
add ebp, dword [eax + 0x1c]
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebp
mov dword [esp], 0x4d0e0d
mov dword [esp + 8], eax
call fcn.004184d0
mov edi, dword [esi + 0x14]
mov ebx, dword [edi]
add edi, 4
test ebx, ebx
je 0x4098e4
movzx eax, byte [edi]
add edi, 1
mov dword [esp + 4], str._02x
mov dword [esp + 8], eax
mov eax, dword [0x514770]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
sub ebx, 1
jne 0x4098c0
call fcn.00418580
mov eax, dword [esi + 0xc]
mov ecx, dword [0x50f2b8]
shr eax, cl
add eax, ebp
mov dword [0x50f338], eax
jmp 0x4093c0
mov eax, dword [0x514770]
mov dword [esp + 8], 0xc
mov dword [esp + 4], 1
mov dword [esp], str.START_GROUP_n
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x40993f
lea esi, [esi]
mov eax, ebx
mov edx, ebp
call fcn.00409370
mov ebx, dword [ebx]
test ebx, ebx
jne 0x409930
mov eax, dword [0x514770]
mov dword [esp + 8], 0xa
mov dword [esp + 4], 1
mov dword [esp], str.END_GROUP_n
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
jmp 0x4093c0
call fcn.00409020
mov ebx, 0x10
lea esi, [esi]
call fcn.00418560
sub ebx, 1
jne 0x409980
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
test eax, eax
je 0x409997
add ebx, dword [eax + 0x1c]
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.0044e820
mov edi, eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x20]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], str.0x_V__W_RELOC__s
mov dword [esp + 0xc], eax
call fcn.004184d0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x409aa7
mov dword [esp + 4], eax
mov dword [esp], 0x4d0e01
call fcn.004184d0
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00416de0
call fcn.00418580
mov ecx, dword [0x50f2b8]
shr edi, cl
add ebx, edi
mov dword [0x50f338], ebx
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], str.SORT_
call fcn.004184d0
jmp 0x40967b
mov dword [esp], 0x4d0d79
call fcn.004184d0
jmp 0x4096eb
mov dword [esp], 0x4d0d77
call fcn.004184d0
jmp 0x4096e0
mov dword [esp + 8], eax
mov eax, dword [0x514770]
mov dword [esp + 4], str.Fail_with__d_n
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp + 4], 0x1188
mov dword [esp], str..._.._binutils_ld_ldlang.c
call fcn.004184a0
jmp 0x4093c0
mov dword [esp], str._SORT__CONSTRUCTORS__n
call fcn.004184d0
jmp 0x4093eb
mov dword [esp], 0x4d0d79
call fcn.004184d0
jmp 0x409656
mov dword [esp], str.SORT_
call fcn.004184d0
jmp 0x409630
mov edi, dword [eax + 0x10]
xor ebx, ebx
jmp 0x409510
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
jmp 0x4099cd
mov eax, 0x4d0d1b
mov edi, 2
mov edx, dword [esi + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
mov dword [esp], str.0x_V__W__s_0x_v
call fcn.004184d0
mov eax, dword [esi + 0xc]
cmp dword [eax + 0xc], 7
je 0x4099e8
call fcn.00418560
mov eax, dword [esi + 0xc]
jmp 0x4099e0
mov dword [esp + 8], str.print_data_statement
mov dword [esp + 4], 0x10c4
mov dword [esp], str..._.._binutils_ld_ldlang.c
call fcn.0044ba70
mov eax, 0x4d0d26
mov edi, 8
jmp 0x409abb
mov eax, 0x4d0d16
mov edi, 1
jmp 0x409abb
mov eax, 0x4d0d21
mov edi, 4
jmp 0x409abb
mov eax, 0x4d0d2b
mov edi, 8
jmp 0x409abb
mov dword [0x5148dc], 0
mov eax, dword [esi + 8]
cmp dword [eax + 0xc], 5
je 0x409b98
mov dword [esp], str.undef
call fcn.004184d0
jmp 0x40958f
cmp byte [ecx + 1], 0
jne 0x409505
mov ebx, 1
jmp 0x40950d
call fcn.00418580
xor ebx, ebx
jmp 0x409450
mov dword [esp], 0x4d0d77
call fcn.004184d0
jmp 0x40964b
mov dword [esp], str.__provide_
call fcn.004184d0
jmp 0x40958f
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [0x51483c]
mov dword [esp], eax
call fcn.004500a0
test eax, eax
je 0x409bfd
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx + 0x3c]
mov edx, dword [edx + 0x1c]
add edx, dword [eax + 0x18]
add edx, dword [ecx + 0x38]
mov dword [esp], str._0x_V_
mov dword [esp + 4], edx
call fcn.004184d0
jmp 0x40958f
mov dword [esp], str._unresolved_
call fcn.004184d0
jmp 0x40958f