Function at 0x414600
Capabilities:
Query environment variable
Read file on windows
Write file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x48
mov dword [ebp - 0x4c], ecx
call fcn.00401320
call fcn.00491050
mov dword [ebp - 0x44], eax
push ecx
push ecx
push 0x4b9990
push 2
call sub.msvcrt.dll_setlocale
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [0x521ed0], eax
mov dword [esp], eax
call fcn.004885c0
pop eax
mov eax, dword [ebp - 0x4c]
pop edx
add eax, 4
push eax
mov eax, dword [ebp - 0x4c]
push eax
call fcn.00490cb0
call fcn.00430b10
pop eax
mov edi, dword [0x521ed0]
push edi
call fcn.00423740
mov dword [esp], 0x4131b0
call fcn.00423770
mov dword [esp], 0x414360
mov dword [0x51c5b8], eax
call fcn.00490f80
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ecx + 4]
add esp, 0x10
mov dword [ebp - 0x40], ecx
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
dec eax
jle 0x4149f2
mov ebx, 1
jmp 0x4146ba
inc ebx
cmp ebx, dword [ebp - 0x3c]
je 0x4149f2
mov edx, dword [ebp - 0x40]
mov ecx, 0xa
cld
mov edx, dword [edx + ebx*4]
mov edi, str.__sysroot
mov dword [ebp - 0x38], edx
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4146b0
mov eax, dword [ebp - 0x38]
add eax, 0xa
mov dword [0x521fb0], eax
cmp byte [eax], 0
jne 0x414d38
mov eax, dword [0x521f90]
test eax, eax
je 0x414d29
sub esp, 0xc
push eax
call sub.msvcrt.dll_strlen
add esp, 0x10
mov dword [0x521ee0], eax
sub esp, 0xc
push str.arm_unknown_linux_androideabi
call fcn.00425010
add esp, 0x10
test eax, eax
je 0x4150fe
sub esp, 0xc
mov dword [0x521e6c], 1
mov byte [0x521ea8], 0x3a
mov dword [0x521eb4], 0xffffffff
push str.COLLECT_NO_DEMANGLE
mov dword [0x521eb8], 0xffffffff
mov dword [0x521e64], 1
mov dword [0x521e60], 1
mov dword [0x521e90], 1
mov dword [0x521fd4], 0xffffffff
mov dword [0x521f34], 1
mov dword [0x521f38], 1
mov byte [0x521f3c], 0xff
mov dword [0x521f4c], 0
mov dword [0x521f50], 0
call sub.msvcrt.dll_getenv
test eax, eax
mov dword [esp], 0x4b9990
sete al
and eax, 0xff
mov dword [0x521fd8], 0x4a5060
mov dword [0x521ef0], eax
mov al, byte [0x521fc3]
or eax, 0xffffff81
mov dword [0x521ff8], 0x521ff4
or byte [0x521fc5], 2
or byte [0x521fc4], 8
or byte [0x521fc1], 2
mov byte [0x521fc3], al
mov dword [0x522008], 0x4b9a6c
mov dword [0x52200c], 0x4b9a72
mov dword [0x522010], 1
mov dword [0x522018], 0xffffffff
mov dword [0x52201c], 0xffffffff
mov dword [0x522020], 0xffffffff
mov dword [0x522028], 5
mov byte [0x521fc9], 0x3a
call fcn.004191c0
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
mov dword [ebp - 0x34], ecx
mov dword [esp], str.LDEMULATION
mov dword [ebp - 0x30], eax
call sub.msvcrt.dll_getenv
add esp, 0x10
mov dword [ebp - 0x48], eax
test eax, eax
je 0x414e61
cmp dword [ebp - 0x30], 1
jle 0x414a20
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], 1
dec edx
mov dword [ebp - 0x58], edx
jmp 0x4148c3
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x58], ecx
jle 0x414d14
mov eax, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x2c], ecx
mov ebx, dword [ebx + eax + 4]
mov dword [ebp - 0x48], ebx
lea esi, [esi]
mov ebx, dword [ebp - 0x2c]
inc ebx
mov dword [ebp - 0x2c], ebx
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], ecx
jle 0x414a20
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
shl ebx, 2
mov edi, 0x4b9a96
cld
mov ecx, dword [ecx + ebx]
mov dword [ebp - 0x28], ecx
mov ecx, 2
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
jne 0x4148b0
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 0x24], eax
cmp byte [edx + 2], 0
je 0x414890
cld
mov edi, str._mips1
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips2
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips3
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips4
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips5
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips32
mov ecx, 8
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips32r2
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips32r6
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips64
mov ecx, 8
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips64r2
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._mips64r6
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edi, str._m486
mov ecx, 6
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x4148b0
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x48], edx
jmp 0x4148b0
mov eax, 0x4b999c
call fcn.004142e0
test eax, eax
jne 0x4146da
mov eax, 0x4b99c8
call fcn.004142e0
test eax, eax
jne 0x4146da
mov eax, str._tmp_81bb757d7a175c6c06523986e7d60b5b_sysroot
jmp 0x4146da
sub esp, 0xc
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.004182d0
pop eax
mov eax, dword [ebp - 0x4c]
pop edx
mov edi, dword [eax + 4]
push edi
mov esi, dword [eax]
push esi
call fcn.00418150
mov dword [esp], eax
mov dword [0x521f10], eax
call fcn.00424080
pop ebx
mov ecx, dword [0x521f10]
mov dword [0x521ec0], eax
push ecx
call fcn.00424010
mov dword [0x521ec4], eax
call fcn.00412460
call fcn.00415d60
call fcn.00417fa0
pop eax
pop edx
mov edx, dword [ebp - 0x4c]
mov dword [0x51c2a0], 0
mov eax, dword [edx + 4]
push eax
mov edi, dword [edx]
push edi
call fcn.004067e0
mov eax, dword [0x521ebc]
add esp, 0x10
test eax, eax
jne 0x414d4e
call fcn.0041baf0
call fcn.00418000
mov esi, dword [0x51c578]
test esi, esi
je 0x414e6d
mov eax, dword [0x521f00]
test eax, eax
je 0x414b75
mov eax, dword [0x51c578]
test eax, eax
je 0x41506b
sub esp, 0xc
push str.using_external_linker_script:
call fcn.00419120
add esp, 0x10
sub esp, 0xc
push str._n_n
call fcn.00419120
mov eax, dword [0x51c578]
add esp, 0x10
test eax, eax
je 0x41504f
sub esp, 0xc
push 0x2001
call fcn.004886d0
mov ebx, eax
pop eax
mov eax, dword [0x51c578]
push eax
call sub.msvcrt.dll_rewind
add esp, 0x10
jmp 0x414b30
sub esp, 0xc
mov byte [ebx + eax], 0
push ebx
call fcn.00419120
add esp, 0x10
mov edi, dword [0x51c578]
push edi
push 0x2000
push 1
push ebx
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
jne 0x414b20
sub esp, 0xc
mov esi, dword [0x51c578]
push esi
call sub.msvcrt.dll_rewind
mov dword [esp], ebx
call sub.msvcrt.dll_free
add esp, 0x10
sub esp, 0xc
push str._n_n
call fcn.00419120
add esp, 0x10
mov ecx, dword [0x521f44]
test ecx, ecx
jne 0x414d5f
call fcn.0040db70
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 2
je 0x414d85
mov eax, dword [0x51c2a0]
test eax, eax
jne 0x414bc9
mov eax, dword [0x522050]
test eax, eax
jne 0x414baf
mov eax, dword [0x521f44]
test eax, eax
je 0x414bb9
sub esp, 0xc
push 0
call fcn.0048eba0
sub esp, 0xc
push str._P_F:_no_input_files_n
call fcn.00419060
add esp, 0x10
mov edi, dword [0x521fa0]
test edi, edi
jne 0x414d97
call fcn.00417f90
mov ebx, dword [0x521eac]
test ebx, ebx
je 0x414c0a
mov eax, 2
mov edi, 0x4b9bc8
cld
mov esi, ebx
mov ecx, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41500d
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [0x521eb0], eax
call fcn.00410f80
mov al, byte [0x521fc0]
and eax, 3
cmp al, 2
je 0x414dc2
mov eax, dword [0x521ff0]
mov ebx, dword [eax + 0x28]
or ebx, 0x40
mov dword [eax + 0x28], ebx
test byte [0x521fcc], 1
je 0x414c54
mov eax, dword [0x521ff0]
mov ecx, dword [eax + 0x28]
or ecx, 0x80000
mov dword [eax + 0x28], ecx
cmp dword [0x521fcc], 5
je 0x415080
call 0x415180
mov eax, dword [0x521eb0]
test eax, eax
je 0x414c67
call fcn.0040f8d0
mov eax, dword [0x521f30]
test eax, eax
je 0x414c89
mov eax, dword [0x521eb0]
test eax, eax
je 0x4150cb
sub esp, 0xc
push eax
call fcn.0041a2c0
add esp, 0x10
mov eax, dword [0x521df0]
test eax, eax
je 0x414c97
call fcn.00419db0
mov eax, dword [0x521f48]
test eax, eax
jne 0x414dd5
call fcn.00415d40
call fcn.00412440
mov edi, dword [0x521e64]
test edi, edi
jne 0x414cc6
mov esi, dword [0x51c580]
test esi, esi
je 0x41514e
sub esp, 0xc
mov eax, dword [0x521ff0]
push eax
call fcn.00428720
add esp, 0x10
test eax, eax
je 0x414e47
mov al, byte [0x521fc0]
and eax, 3
cmp al, 2
je 0x414cf8
mov eax, dword [0x521f2c]
test eax, eax
jne 0x414eed
mov eax, dword [0x521e94]
test eax, eax
jne 0x414ddf
mov dword [0x4a5040], 0
jmp 0x414baf
sub esp, 0xc
push str._P_F:_missing_argument_to__m_n
call fcn.00419060
add esp, 0x10
jmp 0x4148b0
mov dword [0x521ee0], 0xffffffff
jmp 0x414706
sub esp, 0xc
push eax
call fcn.00490ff0
add esp, 0x10
mov dword [0x521f90], eax
jmp 0x4146e8
sub esp, 0xc
push eax
call fcn.00425b40
add esp, 0x10
jmp 0x414a9b
call fcn.0040ea60
push edx
push edx
push eax
push 0x4b9ba1
call fcn.00419120
add esp, 0x10
call fcn.0040db70
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 2
jne 0x414b94
mov eax, dword [0x522050]
test eax, eax
je 0x414b94
jmp 0x414baf
mov ebx, dword [ebp - 0x48]
push esi
push esi
push ebx
push str._P:_mode__s_n
call fcn.00419120
add esp, 0x10
call fcn.00417f90
mov ebx, dword [0x521eac]
test ebx, ebx
jne 0x414be6
jmp 0x414c0a
mov eax, dword [0x521ff0]
mov esi, dword [eax + 0x28]
and esi, 0xffffffbf
mov dword [eax + 0x28], esi
jmp 0x414c2d
call fcn.004093f0
jmp 0x414ca4
call fcn.00491050
mov esi, dword [sym.imp.msvcrt.dll__iob]
sub esp, 0xc
mov ebx, eax
mov eax, dword [ebp - 0x44]
sub ebx, eax
lea eax, [esi + 0x20]
push eax
call sub.msvcrt.dll_fflush
mov eax, 0xf4240
mov edx, ebx
mov ecx, eax
mov eax, ebx
sar edx, 0x1f
add esi, 0x40
idiv ecx
mov dword [esp], edx
mov eax, ebx
sar ebx, 0x1f
mov edx, 0x431bde83
imul edx
sar edx, 0x12
mov eax, dword [0x521ed0]
sub edx, ebx
push edx
push eax
push str._s:_total_time_in_link:__ld._06ld_n
push esi
call fcn.00414340
add esp, 0x14
push esi
call sub.msvcrt.dll_fflush
add esp, 0x10
jmp 0x414d05
push eax
push eax
mov eax, dword [0x521ff0]
push eax
push str._F_B:_final_close_failed:__E_n
call fcn.00419060
add esp, 0x10
jmp 0x414cdf
mov dword [ebp - 0x48], 0x4b9a84
jmp 0x414870
mov eax, dword [0x521f7c]
test eax, eax
je 0x414e9f
sub esp, 0xc
push eax
call fcn.00419670
mov dword [0x521d70], 1
call fcn.00401540
mov ebx, dword [0x51c578]
add esp, 0x10
test ebx, ebx
jne 0x414ab3
sub esp, 0xc
lea eax, [ebp - 0x14]
push eax
call fcn.00418040
mov ecx, dword [ebp - 0x14]
add esp, 0x10
test ecx, ecx
jne 0x4150d8
push edx
push 1
push str.built_in_linker_script
push eax
mov dword [0x51c09c], eax
call fcn.004046f0
add esp, 0x10
mov dword [0x521d70], 1
call fcn.00401540
mov dword [0x51c09c], 0
jmp 0x414ab3
sub esp, 0xc
mov ebx, dword [0x4a5040]
push ebx
call sub.msvcrt.dll_strlen
add esp, 0x10
mov esi, eax
cmp eax, 3
jle 0x414f47
push eax
push eax
lea eax, [ebx + esi - 4]
push str..exe
push eax
call sub.msvcrt.dll__stricmp
add esp, 0x10
test eax, eax
je 0x414cf8
mov edi, dword [0x4a5040]
push eax
push eax
mov eax, esi
add eax, edi
push str..dll
sub eax, 4
push eax
call sub.msvcrt.dll__stricmp
add esp, 0x10
test eax, eax
je 0x414cf8
sub esp, 0xc
push 0x1000
call fcn.004886d0
mov dword [ebp - 0x50], eax
lea eax, [esi + 5]
mov dword [esp], eax
call fcn.004886d0
pop ecx
mov edx, dword [0x4a5040]
pop ebx
mov dword [ebp - 0x54], eax
push edx
push eax
call sub.msvcrt.dll_strcpy
pop edi
mov esi, dword [ebp - 0x54]
push esi
call sub.msvcrt.dll_strlen
mov edx, dword [ebp - 0x54]
pop ecx
add eax, edx
pop ebx
mov dword [eax], 0x6578652e
mov byte [eax + 4], 0
mov eax, dword [0x4a5040]
push 0x4b9c49
push eax
call sub.msvcrt.dll_fopen
pop edi
mov esi, eax
mov ebx, dword [ebp - 0x54]
pop eax
push 0x4b9c4c
push ebx
call sub.msvcrt.dll_fopen
add esp, 0x10
mov edi, eax
test esi, esi
je 0x415133
test edi, edi
je 0x41511b
mov eax, dword [ebp - 0x50]
push esi
push 0x1000
push 1
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
mov ebx, eax
test eax, eax
jle 0x415096
mov eax, dword [ebp - 0x50]
push edi
push ebx
push 1
push eax
call sub.msvcrt.dll_fwrite
add esp, 0x10
cmp eax, ebx
je 0x414fc6
push eax
push eax
mov eax, dword [ebp - 0x54]
push eax
push str._P:_Error_writing_file___s_n
call fcn.00419060
add esp, 0x10
jmp 0x414fc6
push ecx
push ecx
push 0x4b9bca
push ebx
call sub.msvcrt.dll_fopen
add esp, 0x10
mov dword [0x521eb0], eax
test eax, eax
jne 0x414c0a
sub esp, 0xc
push 1
call fcn.00424490
pop eax
mov edi, dword [0x521eac]
pop edx
push edi
push str._P_F:_cannot_open_map_file__s:__E_n
call fcn.00419060
add esp, 0x10
jmp 0x414c0a
sub esp, 0xc
lea eax, [ebp - 0x14]
push eax
call fcn.00418040
mov dword [esp], eax
call fcn.00419120
add esp, 0x10
jmp 0x414b65
sub esp, 0xc
push str.using_internal_linker_script:
call fcn.00419120
add esp, 0x10
jmp 0x414add
mov eax, dword [0x521ff0]
mov edx, dword [eax + 0x28]
or edx, 0x400000
mov dword [eax + 0x28], edx
jmp 0x414c54
sub esp, 0xc
push esi
call fcn.004a4800
mov dword [esp], edi
call fcn.004a4800
add esp, 0x10
inc eax
je 0x4150e9
sub esp, 0xc
mov edx, dword [ebp - 0x54]
push edx
call sub.msvcrt.dll_free
pop eax
mov eax, dword [ebp - 0x50]
push eax
call sub.msvcrt.dll_free
add esp, 0x10
jmp 0x414cf8
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
jmp 0x414c7d
sub esp, 0xc
push eax
call fcn.00419650
add esp, 0x10
jmp 0x414ecf
mov ecx, dword [ebp - 0x54]
push ebx
push ebx
push ecx
push str._P:_Error_closing_file___s_n
call fcn.00419060
add esp, 0x10
jmp 0x4150ad
push esi
push esi
push str.arm_unknown_linux_androideabi
push str._X_P:_cant_set_BFD_default_target_to___s:__E_n
call fcn.00419060
mov dword [esp], 1
call fcn.0048eba0
push eax
push eax
mov eax, dword [ebp - 0x54]
push eax
push str._P_F:_unable_to_open_for_destination_of_copy___s_n
call fcn.00419060
add esp, 0x10
jmp 0x414fc6
mov edx, dword [0x4a5040]
push ecx
push ecx
push edx
push str._P_F:_unable_to_open_for_source_of_copy___s_n
call fcn.00419060
add esp, 0x10
jmp 0x414fbe
mov ebx, dword [0x521fa0]
test ebx, ebx
je 0x41516e
mov edx, dword [0x4a5040]
push ecx
push ecx
push edx
push str._P:_link_errors_found__deleting_executable___s_n
call fcn.00419060
add esp, 0x10
sub esp, 0xc
push 1
call fcn.0048eba0
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x58
push 0
call fcn.00424490
call fcn.00408f80
mov dword [esp], 0x4156b0
call fcn.0040a580
add esp, 0x10
cmp dword [0x521eb4], 0xffffffff
je 0x41568f
mov edx, dword [0x521ff0]
mov dword [ebp - 0x38], edx
mov eax, dword [edx + 0x64]
mov ecx, dword [edx + 0x6c]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4154d1
test ecx, ecx
je 0x4154d1
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x10], 0
mov edx, dword [edx + 0x1c]
mov dword [ebp - 0x50], edx
mov ecx, dword [ecx + 0xa0]
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x4154aa
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov edx, dword [eax + 4]
mov dword [ebp - 0x30], 0
cmp edx, 1
je 0x415546
mov al, byte [0x521fc0]
and eax, 3
cmp al, 2
je 0x41559d
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
mov edi, dword [ebp - 0x30]
test edi, edi
je 0x4154f8
mov ebx, dword [ebp - 0x48]
mov eax, dword [0x521eb4]
add ebx, ecx
cmp ebx, eax
jae 0x415284
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x24]
add edx, esi
cmp eax, edx
jbe 0x415284
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x20]
add eax, ecx
cmp eax, dword [0x521eb8]
jb 0x41550d
mov edx, dword [ebp - 0x2c]
mov eax, 5
cld
mov edx, dword [edx]
mov edi, 0x4b9d3c
mov dword [ebp - 0x58], edx
mov esi, edx
mov ecx, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x415588
sub esp, 0xc
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x58]
mov edi, 0x4b9d42
push eax
call sub.msvcrt.dll_strlen
sub esi, 3
add esp, 0x10
cld
add esi, eax
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
je 0x4154fd
mov ecx, dword [ebp - 0x28]
sub esp, 0xc
mov ecx, dword [ecx]
mov dword [ebp - 0x3c], ecx
push ecx
call sub.msvcrt.dll_strlen
mov esi, eax
lea ebx, [eax + 1]
mov dword [esp], ebx
call fcn.004886d0
add esp, 0xc
mov dword [ebp - 0x54], eax
push ebx
mov edx, dword [ebp - 0x3c]
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
test esi, esi
je 0x415339
mov edx, dword [ebp - 0x54]
xor eax, eax
mov ecx, dword [ebp - 0x54]
mov al, byte [esi + edx - 1]
dec ecx
test byte [eax + eax + 0x517c20], 4
je 0x415621
add edx, esi
jmp 0x415336
xor eax, eax
mov al, byte [edx - 2]
dec edx
test byte [eax + eax + 0x517c20], 4
je 0x415621
dec esi
jne 0x415322
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
cmp eax, 2
je 0x4155da
cmp eax, 4
je 0x4155da
lea eax, [ebp - 0x10]
push esi
push eax
mov ebx, dword [ebp - 0x54]
push ebx
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.004258e0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4155c3
push edx
push edx
push eax
mov eax, dword [ebp - 0x38]
push eax
call fcn.00425ab0
add esp, 0x10
mov esi, eax
test eax, eax
je 0x4155c3
sub esp, 0xc
push 0
push 1
push 1
push ebx
mov eax, dword [0x521fdc]
push eax
call fcn.0042ca90
add esp, 0x20
mov ebx, eax
test eax, eax
je 0x4155c3
sub esp, 0xc
mov eax, dword [ebp - 0x54]
push eax
call sub.msvcrt.dll_free
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], esi
mov edx, dword [ebp - 0x2c]
mov byte [ebx + 0xc], 3
mov ecx, edx
mov eax, dword [edx + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x1c], eax
mov al, byte [esi + 0x18]
mov dl, byte [edx + 0x18]
and eax, 0xfffffffe
and edx, 1
mov dword [esi + 0x24], 0
or eax, edx
mov dword [esi + 0x3c], esi
mov byte [esi + 0x18], al
mov dword [esi + 0x48], 0
mov eax, dword [ecx + 0x20]
mov edx, dword [ebp - 0x38]
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 0x38]
mov dword [esi + 0x38], eax
mov eax, dword [ecx + 0x40]
mov dword [esi + 0x40], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x4c], 0
push esi
push edx
push ecx
push edx
call dword [eax + 0xb4]
add esp, 0x20
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0xa0], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0xa4]
mov dword [esi + 0xa4], eax
mov ecx, dword [ebp - 0x30]
mov dword [edx + 0xa4], ecx
mov eax, dword [ebp - 0x34]
mov dword [ecx], 0
mov ecx, dword [ebp - 0x34]
mov ebx, dword [eax + 8]
mov eax, dword [edx + 0x24]
sub eax, ebx
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x50]
add eax, ebx
mov dword [edx + 0x24], ebx
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x50]
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], edx
jmp 0x41547b
mov ecx, dword [ecx]
test ecx, ecx
je 0x41549e
mov eax, dword [ecx + 8]
sub eax, ebx
mov dword [ecx + 8], eax
cmp dword [ecx + 4], 1
jne 0x415475
mov eax, dword [ecx + 0x10]
mov dword [eax + 0x3c], esi
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
mov dword [edx + 0x38], eax
jne 0x41547b
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x2c], esi
mov eax, dword [ecx]
test eax, eax
jne 0x41551f
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x40]
dec esi
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x28], ecx
test ecx, ecx
je 0x4154c9
mov ebx, dword [ebp - 0x40]
test ebx, ebx
jne 0x4151d6
mov eax, dword [0x521ff0]
mov dword [ebp - 0x38], eax
push ecx
push ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 4]
push 0x521fc0
push edx
call dword [eax + 0x174]
add esp, 0x10
test eax, eax
je 0x41566e
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp - 0x48]
add ebx, ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x44]
add edx, eax
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
add eax, edi
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], ebx
mov eax, dword [ecx]
test eax, eax
je 0x4154aa
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 4]
cmp edx, 1
jne 0x415226
mov edx, dword [eax + 0x10]
mov al, byte [0x521fc1]
and eax, 0x18
je 0x41563e
mov dword [ebp - 0x44], 0
cmp al, 0x10
je 0x41563e
mov al, byte [0x521fc0]
mov dword [ebp - 0x48], 0
and eax, 3
cmp al, 2
je 0x415649
mov edx, dword [edx + 0x24]
mov dword [ebp - 0x4c], edx
jmp 0x41524b
mov eax, 0xe
mov edi, 0x4b9d46
cld
mov esi, dword [ebp - 0x58]
mov ecx, eax
jmp 0x4152c5
lea eax, [edx - 3]
cmp eax, 1
ja 0x415236
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x4c], 0
jmp 0x41524b
sub esp, 0xc
xor esi, esi
push str._F_P:_clone_section_failed:__E_n
call fcn.00419060
add esp, 0x10
jmp 0x415427
sub esp, 0xc
mov eax, dword [ebp - 0x54]
push eax
call sub.msvcrt.dll_strlen
add esp, 0x10
cmp eax, 5
jbe 0x415354
cld
mov ecx, 5
mov esi, dword [ebp - 0x3c]
mov edi, 0x4b9d3c
repe cmpsb byte [esi], byte es:[edi]
je 0x415654
mov edi, 0x4b9d54
mov ecx, 0xe
mov esi, dword [ebp - 0x3c]
repe cmpsb byte [esi], byte es:[edi]
je 0x415654
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 5], 0
jmp 0x415354
cmp esi, 1
jbe 0x415339
lea eax, [ecx + esi]
cmp byte [eax], 0x2e
jne 0x415339
mov byte [eax], 0
jmp 0x415339
mov eax, dword [edx + 0x74]
mov dword [ebp - 0x44], eax
jmp 0x415566
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0x48], eax
jmp 0x41557d
push eax
push eax
mov edi, dword [ebp - 0x3c]
xor esi, esi
push edi
push str._F_P:_cannot_create_split_section_name_for__s_n
call fcn.00419060
add esp, 0x10
jmp 0x415427
call fcn.00423710
test eax, eax
je 0x4156a1
sub esp, 0xc
push str._F_P:_final_link_failed:__E_n
call fcn.00419060
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [0x521eb8], 0xffffffff
jne 0x4151b1
jmp 0x4154c9
sub esp, 0xc
push 1
call fcn.0048eba0
nop
lea esi, [esi]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
cmp eax, 8
je 0x415810
jbe 0x415755
cmp eax, 9
je 0x415768
cmp eax, 0xc
jne 0x415760
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx + 0x94]
cmp eax, dword [0x521ff0]
je 0x415705
push eax
push eax
push 0x11f
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.00419100
add esp, 0x10
test byte [ebx + 0x15], 1
jne 0x41571a
mov eax, dword [ebx + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x415760
push eax
push eax
push ebx
mov edi, dword [0x521ff0]
push edi
call fcn.0042cb00
add esp, 0x10
mov dword [eax + 4], 2
mov edx, dword [esi + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x14]
lea edx, [ecx + 4]
mov dword [eax + 0x14], edx
mov edx, dword [ecx]
mov dword [eax + 0x10], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 5
je 0x415940
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esi + 0x20]
mov eax, dword [ebx + 0x94]
cmp eax, dword [0x521ff0]
je 0x41578d
push eax
push eax
push 0xc5
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.00419100
add esp, 0x10
test byte [ebx + 0x15], 1
jne 0x4157a2
mov eax, dword [ebx + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x415760
push eax
push eax
push ebx
mov eax, dword [0x521ff0]
push eax
call fcn.0042cb00
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x415b2c
mov eax, dword [esi + 0x24]
sub esp, 0xc
mov dword [ebx + 8], eax
mov edi, dword [esi + 0xc]
push edi
call fcn.0042f2b0
mov dword [ebx + 0xc], eax
mov dword [esp], 0xc
call fcn.004886d0
add esp, 0x10
mov dword [ebx + 0x10], eax
mov edx, eax
mov eax, dword [esi + 8]
mov dword [edx], eax
mov eax, dword [esi + 0x1c]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x14]
test eax, eax
je 0x415adc
mov dword [ebx + 4], 4
mov dword [edx + 4], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 0x94]
cmp eax, dword [0x521ff0]
je 0x415835
push edi
push edi
push 0x33
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.00419100
add esp, 0x10
mov eax, dword [ebp - 0x24]
test byte [eax + 0x15], 1
jne 0x415851
mov eax, dword [eax + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x415760
push ebx
push ebx
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [0x521ff0]
push edx
call fcn.0042cb00
add esp, 0x10
mov edi, eax
test eax, eax
je 0x415b41
mov dword [edi + 4], 2
sub esp, 0xc
mov eax, dword [esi + 0x18]
mov ebx, 1
mov dword [edi + 8], eax
push 8
call fcn.004886d0
add esp, 0x10
mov dword [edi + 0x14], eax
mov ecx, dword [0x521ff0]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 4]
mov eax, dword [eax + 8]
test eax, eax
je 0x4158f3
dec eax
je 0x415a1d
mov eax, dword [0x521f54]
cmp eax, 1
je 0x4158ee
cmp eax, 2
je 0x415b56
xor bl, bl
test eax, eax
jne 0x4158f3
mov eax, dword [0x51c290]
test eax, eax
jne 0x4158da
jmp 0x4158ee
mov eax, dword [eax + 0x18]
test eax, eax
je 0x4158ee
mov edx, dword [eax + 0x10]
test edx, edx
je 0x4158d3
mov eax, dword [edx + 4]
cmp dword [eax + 8], 1
je 0x415b56
mov ebx, 1
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x94], ecx
je 0x415912
push eax
push eax
push 0x8b
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.00419100
add esp, 0x10
mov edx, dword [esi + 8]
lea eax, [edx - 0x11a]
cmp eax, 4
jbe switch.0x004159f4
push eax
push str.build_link_order
push 0xb6
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.004190a0
lea esi, [esi]
mov ebx, dword [esi + 8]
mov eax, dword [ebx + 0x18]
and eax, 0x380
cmp ax, 0x200
je 0x415760
cmp word [ebx + 0x14], 0
js 0x415760
mov edi, dword [ebx + 0x3c]
mov eax, dword [edi + 0x94]
cmp eax, dword [0x521ff0]
je 0x415985
push eax
push eax
push 0xf8
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.00419100
add esp, 0x10
test byte [edi + 0x15], 1
jne 0x41599e
mov eax, dword [edi + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x415760
push eax
push eax
push edi
mov eax, dword [0x521ff0]
push eax
call fcn.0042cb00
mov esi, eax
mov eax, dword [ebx + 0x14]
and eax, 0x2200
add esp, 0x10
cmp eax, 0x200
je 0x4159fb
mov dword [esi + 0x10], ebx
mov dword [esi + 4], 1
cmp dword [ebx + 0x3c], edi
je 0x4159e3
push eax
push eax
push 0x10f
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.00419100
add esp, 0x10
mov eax, dword [ebx + 0x24]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x38]
mov dword [esi + 8], eax
jmp 0x415760
jmp dword [eax*4 + 0x4b9e5c]
mov dword [esi + 4], 2
mov dword [esi + 0x14], 0x4b9e59
mov dword [esi + 0x10], 1
jmp 0x4159e3
cmp eax, 0x11e
jne 0x415b6d
xor ebx, ebx
jmp 0x4158f3
mov eax, dword [edi + 0x14]
mov dl, byte [ebp - 0x20]
mov byte [eax], dl
mov dword [edi + 0xc], 1
mov eax, dword [edi + 0xc]
mov dword [edi + 0x10], eax
jmp 0x415760
push ebx
push ebx
mov eax, dword [0x521ff0]
mov ecx, dword [edi + 0x14]
mov eax, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call dword [eax + 0x3c]
add esp, 0x10
mov dword [edi + 0xc], 2
jmp 0x415a33
push ecx
push ecx
mov eax, dword [0x521ff0]
mov edx, dword [edi + 0x14]
mov eax, dword [eax + 4]
push edx
mov esi, dword [ebp - 0x20]
push esi
call dword [eax + 0x30]
add esp, 0x10
mov dword [edi + 0xc], 4
jmp 0x415a33
cmp edx, 0x11a
je 0x415a92
mov esi, dword [ebp - 0x20]
or ecx, 0xffffffff
test esi, esi
js 0x415a94
xor ecx, ecx
mov eax, dword [0x521ff0]
test ebx, ebx
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x30]
mov eax, dword [edi + 0x14]
je 0x415b0e
push ebx
push ebx
push eax
push ecx
call edx
mov eax, dword [0x521ff0]
mov eax, dword [eax + 4]
mov ecx, 4
add esp, 0x10
mov edx, dword [eax + 0x30]
mov eax, dword [edi + 0x14]
add eax, ecx
push esi
push esi
push eax
mov ebx, dword [ebp - 0x20]
push ebx
call edx
add esp, 0x10
mov dword [edi + 0xc], 8
jmp 0x415a33
mov dword [ebx + 4], 3
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [0x521ff0]
je 0x415b82
mov eax, dword [ecx + 0x3c]
mov dword [edx + 4], eax
mov eax, dword [ecx + 0x38]
mov ecx, dword [edx + 8]
add ecx, eax
mov dword [edx + 8], ecx
jmp 0x415760
add eax, 4
push ebx
push ebx
push eax
push ecx
call edx
mov eax, dword [0x521ff0]
xor ecx, ecx
add esp, 0x10
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x30]
mov eax, dword [edi + 0x14]
jmp 0x415ac2
sub esp, 0xc
push str._P_F:_bfd_new_link_order_failed_n
call fcn.00419060
add esp, 0x10
jmp 0x4157bd
sub esp, 0xc
push str._P_F:_bfd_new_link_order_failed_n
call fcn.00419060
add esp, 0x10
jmp 0x415870
mov eax, dword [esi + 8]
cmp eax, 0x11d
je 0x415bb4
ja 0x415a12
cmp eax, 0x11a
jae 0x415b8a
push eax
push str.build_link_order
push 0x86
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.004190a0
mov dword [edx + 4], ecx
jmp 0x415760
lea ebx, [ebp - 0x14]
push eax
push eax
push ebx
mov eax, dword [ebp - 0x20]
push eax
call fcn.004310e0
mov dword [esp], ebx
xor ebx, ebx
call fcn.00430c70
mov ecx, dword [0x521ff0]
add esp, 0x10
mov dword [ebp - 0x20], eax
jmp 0x4158f3
lea ebx, [ebp - 0x14]
push eax
push eax
push ebx
mov eax, dword [ebp - 0x20]
push eax
call fcn.00430c50
mov dword [esp], ebx
xor ebx, ebx
call fcn.00430b90
mov ecx, dword [0x521ff0]
add esp, 0x10
mov dword [ebp - 0x20], eax
jmp 0x4158f3