Function at 0x415660
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.004d9460
mov dword [ebp - 0x44], eax
push ecx
push ecx
push 0x504a60
push 2
call sub.msvcrt.dll_setlocale
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [0x5da390], eax
mov dword [esp], eax
call fcn.004d09d0
pop eax
mov eax, dword [ebp - 0x4c]
pop edx
add eax, 4
push eax
mov eax, dword [ebp - 0x4c]
push eax
call fcn.004d90c0
call fcn.0043e280
pop eax
mov edi, dword [0x5da390]
push edi
call fcn.0042f990
mov dword [esp], 0x414100
call fcn.0042f9c0
mov dword [esp], 0x4153c0
mov dword [0x5d45b8], eax
call fcn.004d9390
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 0x415a52
mov ebx, 1
jmp 0x41571a
inc ebx
cmp ebx, dword [ebp - 0x3c]
je 0x415a52
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 0x415710
mov eax, dword [ebp - 0x38]
add eax, 0xa
mov dword [0x5da470], eax
cmp byte [eax], 0
jne 0x415d9e
mov eax, dword [0x5da450]
test eax, eax
je 0x415d8f
sub esp, 0xc
push eax
call sub.msvcrt.dll_strlen
add esp, 0x10
mov dword [0x5da3a0], eax
sub esp, 0xc
push str.x86_64_pc_linux_android
call fcn.004313f0
add esp, 0x10
test eax, eax
je 0x416167
sub esp, 0xc
mov dword [0x5da31c], 1
mov byte [0x5da358], 0x3a
mov dword [0x5da364], 0xffffffff
push str.COLLECT_NO_DEMANGLE
mov dword [0x5da368], 0xffffffff
mov dword [0x5da36c], 0xffffffff
mov dword [0x5da314], 1
mov dword [0x5da310], 1
mov dword [0x5da340], 1
mov dword [0x5da498], 0xffffffff
mov dword [0x5da3f4], 1
mov dword [0x5da3f8], 1
mov byte [0x5da3fc], 0xff
mov dword [0x5da40c], 0
mov dword [0x5da410], 0
call sub.msvcrt.dll_getenv
mov dword [esp], 0x504a60
test eax, eax
mov dword [0x5da49c], 0x4ee060
sete al
and eax, 0xff
mov dword [0x5da4bc], 0x5da4b8
mov dword [0x5da3b0], eax
mov al, byte [0x5da483]
or eax, 0xffffff81
mov dword [0x5da4cc], 0x504b34
or byte [0x5da485], 2
or byte [0x5da484], 8
or byte [0x5da481], 2
mov byte [0x5da483], al
mov dword [0x5da4d0], 0x504b3a
mov dword [0x5da4d4], 1
mov dword [0x5da4dc], 0xffffffff
mov dword [0x5da4e0], 0xffffffff
mov dword [0x5da4e4], 0xffffffff
mov dword [0x5da4ec], 5
mov byte [0x5da489], 0x3a
call fcn.0041a990
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword [eax]
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 0x415eca
cmp dword [ebp - 0x30], 1
jle 0x415a80
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], 1
dec edx
mov dword [ebp - 0x58], edx
jmp 0x415923
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x58], ecx
jle 0x415d7a
mov eax, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x2c], ecx
mov ebx, dword [ebx + eax + 4]
mov dword [ebp - 0x48], ebx
nop
mov ebx, dword [ebp - 0x2c]
inc ebx
mov dword [ebp - 0x2c], ebx
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], ecx
jle 0x415a80
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
shl ebx, 2
mov edi, 0x504b57
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 0x415910
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 0x24], eax
cmp byte [edx + 2], 0
je 0x4158f4
cld
mov edi, str._mips1
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips2
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips3
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips4
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips5
mov ecx, 7
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips32
mov ecx, 8
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips32r2
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips32r6
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips64
mov ecx, 8
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips64r2
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._mips64r6
mov ecx, 0xa
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edi, str._m486
mov ecx, 6
mov esi, dword [ebp - 0x28]
repe cmpsb byte [esi], byte es:[edi]
je 0x415910
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x48], edx
jmp 0x415910
mov eax, 0x504a6c
call fcn.00415340
test eax, eax
jne 0x41573a
mov eax, 0x504a98
call fcn.00415340
test eax, eax
jne 0x41573a
mov eax, str._tmp_2946f8265f3ce420e3a0bf488b0c3b90_sysroot
jmp 0x41573a
sub esp, 0xc
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.00419a70
pop eax
mov eax, dword [ebp - 0x4c]
pop edx
mov edi, dword [eax + 4]
push edi
mov esi, dword [eax]
push esi
call fcn.004198f0
mov dword [esp], eax
mov dword [0x5da3d0], eax
call fcn.00430360
pop ebx
mov ecx, dword [0x5da3d0]
mov dword [0x5da378], eax
push ecx
mov dword [0x5da37c], edx
call fcn.004302e0
mov dword [0x5da380], eax
mov dword [0x5da384], edx
call fcn.004133a0
call fcn.00416f10
call fcn.00419740
pop eax
pop edx
mov edx, dword [ebp - 0x4c]
mov dword [0x5d42a0], 0
mov eax, dword [edx + 4]
push eax
mov edi, dword [edx]
push edi
call fcn.00406880
mov eax, dword [0x5da370]
add esp, 0x10
test eax, eax
jne 0x415db4
call fcn.0041d2d0
call fcn.004197a0
mov esi, dword [0x5d4578]
test esi, esi
je 0x415ed6
mov eax, dword [0x5da3c0]
test eax, eax
je 0x415bdb
mov eax, dword [0x5d4578]
test eax, eax
je 0x4160d4
sub esp, 0xc
push str.using_external_linker_script:
call fcn.0041a8f0
add esp, 0x10
sub esp, 0xc
push str._n_n
call fcn.0041a8f0
mov eax, dword [0x5d4578]
add esp, 0x10
test eax, eax
je 0x4160b8
sub esp, 0xc
push 0x2001
call fcn.004d0ae0
mov ebx, eax
pop eax
mov eax, dword [0x5d4578]
push eax
call sub.msvcrt.dll_rewind
add esp, 0x10
jmp 0x415b96
sub esp, 0xc
mov byte [ebx + eax], 0
push ebx
call fcn.0041a8f0
add esp, 0x10
mov edi, dword [0x5d4578]
push edi
push 0x2000
push 1
push ebx
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
jne 0x415b86
sub esp, 0xc
mov esi, dword [0x5d4578]
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.0041a8f0
add esp, 0x10
mov ecx, dword [0x5da404]
test ecx, ecx
jne 0x415dc5
call fcn.0040e6c0
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 2
je 0x415deb
mov eax, dword [0x5d42a0]
test eax, eax
jne 0x415c2f
mov eax, dword [0x5da520]
test eax, eax
jne 0x415c15
mov eax, dword [0x5da404]
test eax, eax
je 0x415c1f
sub esp, 0xc
push 0
call fcn.004d6fb0
sub esp, 0xc
push str._P_F:_no_input_files_n
call fcn.0041a830
add esp, 0x10
mov edi, dword [0x5da460]
test edi, edi
jne 0x415e00
call fcn.00419730
mov ebx, dword [0x5da35c]
test ebx, ebx
je 0x415c70
mov eax, 2
mov edi, 0x504c88
cld
mov esi, ebx
mov ecx, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x416076
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [0x5da360], eax
call fcn.00411c60
mov al, byte [0x5da480]
and eax, 3
cmp al, 2
je 0x415e2b
mov eax, dword [0x5da4b4]
mov ebx, dword [eax + 0x28]
or ebx, 0x40
mov dword [eax + 0x28], ebx
test byte [0x5da48c], 1
je 0x415cba
mov eax, dword [0x5da4b4]
mov ecx, dword [eax + 0x28]
or ecx, 0x80000
mov dword [eax + 0x28], ecx
cmp dword [0x5da48c], 5
je 0x4160e9
call 0x4161f0
mov eax, dword [0x5da360]
test eax, eax
je 0x415ccd
call fcn.004105a0
mov eax, dword [0x5da3f0]
test eax, eax
je 0x415cef
mov eax, dword [0x5da360]
test eax, eax
je 0x416134
sub esp, 0xc
push eax
call fcn.0041ba90
add esp, 0x10
mov eax, dword [0x5da2a0]
test eax, eax
je 0x415cfd
call fcn.0041b580
mov eax, dword [0x5da408]
test eax, eax
jne 0x415e3e
call fcn.00416ef0
call fcn.00413380
mov edi, dword [0x5da314]
test edi, edi
jne 0x415d2c
mov esi, dword [0x5d4580]
test esi, esi
je 0x4161b7
sub esp, 0xc
mov eax, dword [0x5da4b4]
push eax
call fcn.00434d10
add esp, 0x10
test eax, eax
je 0x415eb0
mov al, byte [0x5da480]
and eax, 3
cmp al, 2
je 0x415d5e
mov eax, dword [0x5da3ec]
test eax, eax
jne 0x415f56
mov eax, dword [0x5da344]
test eax, eax
jne 0x415e48
mov dword [0x4ee040], 0
jmp 0x415c15
sub esp, 0xc
push str._P_F:_missing_argument_to__m_n
call fcn.0041a830
add esp, 0x10
jmp 0x415910
mov dword [0x5da3a0], 0xffffffff
jmp 0x415766
sub esp, 0xc
push eax
call fcn.004d9400
add esp, 0x10
mov dword [0x5da450], eax
jmp 0x415748
sub esp, 0xc
push eax
call fcn.00431fa0
add esp, 0x10
jmp 0x415b07
call fcn.0040f730
push edx
push edx
push eax
push 0x504c61
call fcn.0041a8f0
add esp, 0x10
call fcn.0040e6c0
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 2
jne 0x415bfa
mov eax, dword [0x5da520]
test eax, eax
je 0x415bfa
jmp 0x415c15
mov ebx, dword [ebp - 0x48]
push esi
push esi
push ebx
push str._P:_mode__s_n
call fcn.0041a8f0
add esp, 0x10
call fcn.00419730
mov ebx, dword [0x5da35c]
test ebx, ebx
jne 0x415c4c
jmp 0x415c70
mov eax, dword [0x5da4b4]
mov esi, dword [eax + 0x28]
and esi, 0xffffffbf
mov dword [eax + 0x28], esi
jmp 0x415c93
call fcn.00409570
jmp 0x415d0a
call fcn.004d9460
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 [0x5da390]
sub edx, ebx
push edx
push eax
push str._s:_total_time_in_link:__ld._06ld_n
push esi
call fcn.004153a0
add esp, 0x14
push esi
call sub.msvcrt.dll_fflush
add esp, 0x10
jmp 0x415d6b
push eax
push eax
mov eax, dword [0x5da4b4]
push eax
push str._F_B:_final_close_failed:__E_n
call fcn.0041a830
add esp, 0x10
jmp 0x415d45
mov dword [ebp - 0x48], 0x504b4c
jmp 0x4158da
mov eax, dword [0x5da43c]
test eax, eax
je 0x415f08
sub esp, 0xc
push eax
call fcn.0041ae40
mov dword [0x5da220], 1
call fcn.00401540
mov ebx, dword [0x5d4578]
add esp, 0x10
test ebx, ebx
jne 0x415b1f
sub esp, 0xc
lea eax, [ebp - 0x14]
push eax
call fcn.004197e0
mov ecx, dword [ebp - 0x14]
add esp, 0x10
test ecx, ecx
jne 0x416141
push edx
push 1
push str.built_in_linker_script
push eax
mov dword [0x5d409c], eax
call fcn.00404750
add esp, 0x10
mov dword [0x5da220], 1
call fcn.00401540
mov dword [0x5d409c], 0
jmp 0x415b1f
sub esp, 0xc
mov ebx, dword [0x4ee040]
push ebx
call sub.msvcrt.dll_strlen
add esp, 0x10
mov esi, eax
cmp eax, 3
jle 0x415fb0
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 0x415d5e
mov edi, dword [0x4ee040]
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 0x415d5e
sub esp, 0xc
push 0x1000
call fcn.004d0ae0
mov dword [ebp - 0x50], eax
lea eax, [esi + 5]
mov dword [esp], eax
call fcn.004d0ae0
pop ecx
mov edx, dword [0x4ee040]
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 [0x4ee040]
push 0x504d09
push eax
call sub.msvcrt.dll_fopen
pop edi
mov esi, eax
mov ebx, dword [ebp - 0x54]
pop eax
push 0x504d0c
push ebx
call sub.msvcrt.dll_fopen
add esp, 0x10
mov edi, eax
test esi, esi
je 0x41619c
test edi, edi
je 0x416184
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 0x4160ff
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 0x41602f
push eax
push eax
mov eax, dword [ebp - 0x54]
push eax
push str._P:_Error_writing_file___s_n
call fcn.0041a830
add esp, 0x10
jmp 0x41602f
push ecx
push ecx
push 0x504c8a
push ebx
call sub.msvcrt.dll_fopen
add esp, 0x10
mov dword [0x5da360], eax
test eax, eax
jne 0x415c70
sub esp, 0xc
push 1
call fcn.00430870
pop eax
mov edi, dword [0x5da35c]
pop edx
push edi
push str._P_F:_cannot_open_map_file__s:__E_n
call fcn.0041a830
add esp, 0x10
jmp 0x415c70
sub esp, 0xc
lea eax, [ebp - 0x14]
push eax
call fcn.004197e0
mov dword [esp], eax
call fcn.0041a8f0
add esp, 0x10
jmp 0x415bcb
sub esp, 0xc
push str.using_internal_linker_script:
call fcn.0041a8f0
add esp, 0x10
jmp 0x415b49
mov eax, dword [0x5da4b4]
mov edx, dword [eax + 0x28]
or edx, 0x400000
mov dword [eax + 0x28], edx
jmp 0x415cba
sub esp, 0xc
push esi
call fcn.004ed130
mov dword [esp], edi
call fcn.004ed130
add esp, 0x10
inc eax
je 0x416152
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 0x415d5e
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
jmp 0x415ce3
sub esp, 0xc
push eax
call fcn.0041ae20
add esp, 0x10
jmp 0x415f38
mov ecx, dword [ebp - 0x54]
push ebx
push ebx
push ecx
push str._P:_Error_closing_file___s_n
call fcn.0041a830
add esp, 0x10
jmp 0x416116
push esi
push esi
push str.x86_64_pc_linux_android
push str._X_P:_cant_set_BFD_default_target_to___s:__E_n
call fcn.0041a830
mov dword [esp], 1
call fcn.004d6fb0
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.0041a830
add esp, 0x10
jmp 0x41602f
mov edx, dword [0x4ee040]
push ecx
push ecx
push edx
push str._P_F:_unable_to_open_for_source_of_copy___s_n
call fcn.0041a830
add esp, 0x10
jmp 0x416027
mov ebx, dword [0x5da460]
test ebx, ebx
je 0x4161d7
mov edx, dword [0x4ee040]
push ecx
push ecx
push edx
push str._P:_link_errors_found__deleting_executable___s_n
call fcn.0041a830
add esp, 0x10
sub esp, 0xc
push 1
call fcn.004d6fb0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x78
push 0
call fcn.00430870
call fcn.00409050
mov dword [esp], 0x4167e0
call fcn.0040a790
add esp, 0x10
cmp dword [0x5da364], 0xffffffff
je 0x4167ac
mov edx, dword [0x5da4b4]
mov dword [ebp - 0x40], edx
mov ebx, dword [edx + 0x64]
mov ecx, dword [edx + 0x6c]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x4165c7
test ecx, ecx
je 0x4165c7
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x14], 0
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov ecx, dword [ecx + 0xc0]
mov dword [ebp - 0x3c], ecx
test ecx, ecx
je 0x41659f
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x34], ebx
mov edx, dword [esi + 4]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x38], 0
cmp edx, 1
je 0x416649
mov al, byte [0x5da480]
and eax, 3
cmp al, 2
je 0x4166a6
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov edi, dword [ebp - 0x38]
test edi, edi
je 0x4165ee
mov ebx, dword [ebp - 0x50]
mov eax, dword [0x5da364]
add ebx, ecx
cmp ebx, eax
jae 0x416320
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x2c]
add ecx, esi
cmp eax, ecx
jbe 0x416320
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
add eax, dword [ebp - 0x28]
adc edx, dword [ebp - 0x24]
cmp edx, dword [0x5da36c]
jb 0x416607
ja 0x416320
cmp eax, dword [0x5da368]
jb 0x416607
lea esi, [esi]
mov esi, dword [ebp - 0x34]
mov eax, 5
cld
mov esi, dword [esi]
mov edi, 0x504dfc
mov dword [ebp - 0x6c], esi
mov ecx, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x416691
sub esp, 0xc
mov edx, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x6c]
mov edi, 0x504e02
push edx
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 0x4165f3
mov ebx, dword [ebp - 0x30]
sub esp, 0xc
mov ebx, dword [ebx]
mov dword [ebp - 0x44], ebx
push ebx
call sub.msvcrt.dll_strlen
mov esi, eax
lea ebx, [eax + 1]
mov dword [esp], ebx
call fcn.004d0ae0
add esp, 0xc
mov dword [ebp - 0x68], eax
push ebx
mov edx, dword [ebp - 0x44]
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
test esi, esi
je 0x4163d7
mov edx, dword [ebp - 0x68]
xor eax, eax
mov ecx, dword [ebp - 0x68]
mov al, byte [esi + edx - 1]
dec ecx
test byte [eax + eax + 0x5cf260], 4
je 0x416736
add edx, esi
jmp 0x4163d4
xor eax, eax
mov al, byte [edx - 2]
dec edx
test byte [eax + eax + 0x5cf260], 4
je 0x416736
dec esi
jne 0x4163c0
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
cmp eax, 2
je 0x4166ef
cmp eax, 4
je 0x4166ef
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.00431d40
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4166d3
push edi
push edi
push eax
mov esi, dword [ebp - 0x40]
push esi
call fcn.00431f10
add esp, 0x10
mov dword [ebp - 0x64], eax
test eax, eax
je 0x4166d3
sub esp, 0xc
push 0
push 1
push 1
push ebx
mov ebx, dword [0x5da4a0]
push ebx
call fcn.004398f0
add esp, 0x20
mov ebx, eax
test eax, eax
je 0x4166d3
sub esp, 0xc
mov ecx, dword [ebp - 0x68]
push ecx
call sub.msvcrt.dll_free
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov edx, dword [ebp - 0x64]
mov byte [ebx + 0xc], 3
mov dword [ebx + 0x14], edx
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x64]
mov eax, dword [ecx + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 0x24]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov al, byte [esi + 0x18]
mov dl, byte [ecx + 0x18]
and eax, 0xfffffffe
and edx, 1
mov dword [esi + 0x30], 0
or eax, edx
mov dword [esi + 0x34], 0
mov byte [esi + 0x18], al
mov dword [esi + 0x58], esi
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x2c]
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 0x50]
mov dword [esi + 0x2c], edx
mov edx, dword [ecx + 0x54]
mov dword [esi + 0x50], eax
mov eax, dword [ecx + 0x5c]
mov dword [esi + 0x54], edx
mov dword [esi + 0x5c], eax
mov esi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
mov eax, dword [esi + 4]
push edx
push esi
push ecx
push esi
call dword [eax + 0xb4]
add esp, 0x20
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0xc0], edx
mov ecx, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x64]
mov eax, dword [ecx + 0xc4]
mov dword [ebx + 0xc4], eax
mov esi, dword [ebp - 0x38]
mov dword [ecx + 0xc4], esi
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov dword [esi], 0
mov edi, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov eax, dword [ecx + 0x30]
mov edx, dword [ecx + 0x34]
sub eax, esi
sbb edx, edi
add dword [ebp - 0x60], esi
adc dword [ebp - 0x5c], edi
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edx
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x3c]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
jmp 0x416566
mov ebx, dword [ebx]
test ebx, ebx
je 0x416590
sub dword [ebx + 8], esi
sbb dword [ebx + 0xc], edi
cmp dword [ebx + 4], 1
jne 0x416560
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0x64]
mov dword [eax + 0x58], edx
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0xc]
mov ebx, dword [ebx]
mov dword [ecx + 0x50], eax
mov dword [ecx + 0x54], edx
test ebx, ebx
jne 0x416566
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebx]
test eax, eax
jne 0x41661c
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x48]
dec esi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4165be
mov ebx, dword [ebp - 0x48]
test ebx, ebx
jne 0x416246
mov edx, dword [0x5da4b4]
mov dword [ebp - 0x40], edx
push ecx
push ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 4]
push 0x5da480
push ecx
call dword [eax + 0x174]
add esp, 0x10
test eax, eax
je 0x41678b
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp - 0x50]
add ebx, ecx
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x58]
add ecx, edi
add eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x54]
adc edx, dword [ebp - 0x24]
mov dword [ebp - 0x50], ebx
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebx]
mov dword [ebp - 0x54], edx
test eax, eax
je 0x41659f
mov esi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], esi
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x28], ebx
mov edx, dword [esi + 4]
cmp edx, 1
jne 0x4162a3
mov al, byte [0x5da481]
mov edx, dword [esi + 0x18]
and eax, 0x18
je 0x416753
mov dword [ebp - 0x4c], 0
cmp al, 0x10
je 0x416753
mov al, byte [0x5da480]
mov dword [ebp - 0x50], 0
and eax, 3
cmp al, 2
je 0x416761
mov ebx, dword [edx + 0x30]
mov esi, dword [edx + 0x34]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], esi
jmp 0x4162cf
mov eax, 0xe
mov edi, 0x504e06
cld
mov esi, dword [ebp - 0x6c]
mov ecx, eax
jmp 0x41635f
lea eax, [edx - 3]
cmp eax, 1
ja 0x4162b3
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
jmp 0x4162cf
sub esp, 0xc
push str._F_P:_clone_section_failed:__E_n
call fcn.0041a830
add esp, 0x10
mov dword [ebp - 0x64], 0
jmp 0x4164f1
sub esp, 0xc
mov eax, dword [ebp - 0x68]
push eax
call sub.msvcrt.dll_strlen
add esp, 0x10
cmp eax, 5
jbe 0x4163f2
cld
mov ecx, 5
mov esi, dword [ebp - 0x44]
mov edi, 0x504dfc
repe cmpsb byte [esi], byte es:[edi]
je 0x41676c
mov edi, 0x504e14
mov ecx, 0xe
mov esi, dword [ebp - 0x44]
repe cmpsb byte [esi], byte es:[edi]
je 0x41676c
mov esi, dword [ebp - 0x68]
mov byte [esi + 5], 0
jmp 0x4163f2
cmp esi, 1
jbe 0x4163d7
lea eax, [ecx + esi]
cmp byte [eax], 0x2e
jne 0x4163d7
mov byte [eax], 0
jmp 0x4163d7
mov eax, dword [edx + 0x94]
mov dword [ebp - 0x4c], eax
jmp 0x416669
mov ebx, dword [edx + 0x68]
mov dword [ebp - 0x50], ebx
jmp 0x416680
push eax
push eax
mov eax, dword [ebp - 0x44]
push eax
push str._F_P:_cannot_create_split_section_name_for__s_n
call fcn.0041a830
add esp, 0x10
mov dword [ebp - 0x64], 0
jmp 0x4164f1
call fcn.0042f960
test eax, eax
je 0x4167d2
sub esp, 0xc
push str._F_P:_final_link_failed:__E_n
call fcn.0041a830
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [0x5da36c]
mov eax, dword [0x5da368]
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
jne 0x416221
mov eax, dword [0x5da4b4]
mov dword [ebp - 0x40], eax
jmp 0x4165c7
sub esp, 0xc
push 1
call fcn.004d6fb0
lea esi, [esi]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
cmp eax, 8
je 0x416962
jbe 0x416890
cmp eax, 9
je 0x4168a8
cmp eax, 0xc
jne 0x4168a0
mov ebx, dword [esi + 0x18]
mov eax, dword [ebx + 0xb4]
cmp eax, dword [0x5da4b4]
je 0x416835
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.0041a8d0
add esp, 0x10
test byte [ebx + 0x15], 1
jne 0x41684a
mov eax, dword [ebx + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x4168a0
push eax
push eax
push ebx
mov eax, dword [0x5da4b4]
push eax
call fcn.00439960
add esp, 0x10
mov dword [eax + 4], 2
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], edx
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xc], ecx
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x1c]
lea edx, [ecx + 4]
mov dword [eax + 0x1c], edx
mov edx, dword [ecx]
mov dword [eax + 0x18], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 5
je 0x416a80
lea esi, [esi]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esi + 0x28]
mov eax, dword [ebx + 0xb4]
cmp eax, dword [0x5da4b4]
je 0x4168cd
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.0041a8d0
add esp, 0x10
test byte [ebx + 0x15], 1
jne 0x4168e2
mov eax, dword [ebx + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x4168a0
push edi
push edi
push ebx
mov ebx, dword [0x5da4b4]
push ebx
call fcn.00439960
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x416cbf
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
sub esp, 0xc
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], eax
mov ecx, dword [esi + 0xc]
push ecx
call fcn.0043c480
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], eax
mov dword [esp], 0x10
call fcn.004d0ae0
add esp, 0x10
mov dword [ebx + 0x18], eax
mov ecx, eax
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [ecx + 0xc], edx
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x14]
test eax, eax
je 0x416c77
mov dword [ebx + 4], 4
mov dword [ecx + 4], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [eax + 0xb4]
cmp eax, dword [0x5da4b4]
je 0x416987
push edx
push edx
push 0x33
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.0041a8d0
add esp, 0x10
mov eax, dword [ebp - 0x2c]
test byte [eax + 0x15], 1
jne 0x4169a3
mov eax, dword [eax + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x4168a0
push eax
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [0x5da4b4]
push eax
call fcn.00439960
add esp, 0x10
mov edi, eax
test eax, eax
je 0x416caa
mov dword [edi + 4], 2
sub esp, 0xc
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
push 8
call fcn.004d0ae0
mov dword [edi + 0x1c], eax
add esp, 0x10
mov ecx, dword [0x5da4b4]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x24], edx
mov eax, dword [eax + 8]
test eax, eax
je case.0x416cd4.286
dec eax
je case.0x416cd4.286
mov eax, dword [0x5da414]
cmp eax, 1
je case.0x416cd4.286
cmp eax, 2
je 0x416a53
test eax, eax
jne case.0x416cd4.286
mov eax, dword [0x5d4290]
test eax, eax
jne 0x416a3f
jmp case.0x416cd4.286
mov eax, dword [eax + 0x18]
test eax, eax
je case.0x416cd4.286
mov edx, dword [eax + 0x10]
test edx, edx
je 0x416a34
mov eax, dword [edx + 4]
cmp dword [eax + 8], 1
jne case.0x416cd4.286
mov eax, dword [esi + 8]
sub eax, 0x11a
cmp eax, 4
jbe switch.0x00416cd4
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.0041a870
lea esi, [esi]
mov ebx, dword [esi + 8]
mov eax, dword [ebx + 0x18]
and eax, 0x380
cmp ax, 0x200
je 0x4168a0
cmp word [ebx + 0x14], 0
js 0x4168a0
mov edi, dword [ebx + 0x58]
mov eax, dword [edi + 0xb4]
cmp eax, dword [0x5da4b4]
je 0x416ac5
push edx
push edx
push 0xf8
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_ld_ldwrite.c
call fcn.0041a8d0
add esp, 0x10
test byte [edi + 0x15], 1
jne 0x416ade
mov eax, dword [edi + 0x14]
and eax, 0x402
cmp eax, 0x402
jne 0x4168a0
push eax
push eax
push edi
mov eax, dword [0x5da4b4]
push eax
call fcn.00439960
mov esi, eax
mov eax, dword [ebx + 0x14]
and eax, 0x2200
add esp, 0x10
cmp eax, 0x200
je 0x416bb8
mov dword [esi + 0x18], ebx
mov dword [esi + 4], 1
cmp dword [ebx + 0x58], edi
je 0x416b27
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.0041a8d0
add esp, 0x10
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x50]
mov edx, dword [ebx + 0x54]
mov dword [esi + 0xc], edx
mov dword [esi + 8], eax
jmp 0x4168a0
lea ebx, [ebp - 0x18]
push eax
push ebx
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x28]
push eax
call fcn.0043e960
mov dword [esp], ebx
call fcn.0043e4f0
mov ecx, dword [0x5da4b4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
add esp, 0x10
lea esi, [esi]
mov edx, dword [ebp - 0x2c]
cmp dword [edx + 0xb4], ecx
je 0x416b8f
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.0041a8d0
add esp, 0x10
mov eax, dword [esi + 8]
sub eax, 0x11a
cmp eax, 4
jbe switch.0x00416bb1
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.0041a870
jmp dword [eax*4 + 0x504f1c]
mov dword [esi + 4], 2
mov dword [esi + 0x1c], 0x504f19
mov dword [esi + 0x18], 1
jmp 0x416b27
mov eax, dword [edi + 0x1c]
mov dl, byte [ebp - 0x28]
mov byte [eax], dl
mov dword [edi + 0x10], 1
mov dword [edi + 0x14], 0
mov eax, dword [edi + 0x10]
mov dword [edi + 0x18], eax
jmp 0x4168a0
push esi
mov eax, dword [0x5da4b4]
mov ebx, dword [edi + 0x1c]
mov eax, dword [eax + 4]
push ebx
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call dword [eax + 0x3c]
add esp, 0x10
mov dword [edi + 0x10], 2
mov dword [edi + 0x14], 0
jmp 0x416be8
push esi
mov eax, dword [0x5da4b4]
mov ebx, dword [edi + 0x1c]
mov eax, dword [eax + 4]
push ebx
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call dword [eax + 0x30]
add esp, 0x10
mov dword [edi + 0x10], 4
mov dword [edi + 0x14], 0
jmp 0x416be8
push esi
mov eax, dword [0x5da4b4]
mov ebx, dword [edi + 0x1c]
mov eax, dword [eax + 4]
push ebx
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call dword [eax + 0x24]
add esp, 0x10
mov dword [edi + 0x10], 8
mov dword [edi + 0x14], 0
jmp 0x416be8
mov dword [ebx + 4], 3
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 0xb4]
cmp eax, dword [0x5da4b4]
je 0x416d37
mov eax, dword [edx + 0x58]
mov dword [ecx + 4], eax
mov eax, dword [edx + 0x50]
mov edx, dword [edx + 0x54]
add dword [ecx + 8], eax
adc dword [ecx + 0xc], edx
jmp 0x4168a0
sub esp, 0xc
push str._P_F:_bfd_new_link_order_failed_n
call fcn.0041a830
add esp, 0x10
jmp 0x4169c1
sub esp, 0xc
push str._P_F:_bfd_new_link_order_failed_n
call fcn.0041a830
add esp, 0x10
jmp 0x4168fe
jmp dword [eax*4 + 0x504f30]
lea ebx, [ebp - 0x18]
push eax
push ebx
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x28]
push eax
call fcn.0043e3d0
mov dword [esp], ebx
call fcn.0043e300
mov ecx, dword [0x5da4b4]
add esp, 0x10
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp case.0x416cd4.286
lea ebx, [ebp - 0x18]
push ecx
push ebx
mov edx, dword [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.0043e8b0
mov dword [esp], ebx
call fcn.0043e3f0
mov ecx, dword [0x5da4b4]
add esp, 0x10
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp case.0x416cd4.286
mov dword [ecx + 4], edx
jmp 0x4168a0