Function at 0x4642d0
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1fc
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x1b4]
mov dword [ebp - 0x1c8], eax
mov eax, dword [ecx + 0x1c]
cmp dword [eax + 0x28], 1
je 0x464304
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dl, byte [ecx]
and edx, 3
cmp dl, 3
je 0x464b26
dec dl
je 0x464b26
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x1c0], edx
mov dword [ebp - 0x1b8], eax
mov al, byte [ecx]
mov dword [ebp - 0x1bc], 1
and eax, 3
cmp al, 2
je 0x464352
mov al, byte [ecx + 3]
shr al, 1
mov ebx, eax
and ebx, 1
mov dword [ebp - 0x1bc], ebx
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], eax
call fcn.00476690
mov dword [ebp - 0xb4], eax
test eax, eax
je 0x4642fa
mov esi, dword [ebp - 0x1c0]
test esi, esi
jne 0x464bc5
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov edx, dword [ebp + 8]
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa0], 0
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x64]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov eax, dword [eax + 0x1b4]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov eax, dword [eax + 0x190]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x18c], eax
test ebx, ebx
je 0x4651b2
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x190], 0
mov eax, dword [ebp - 0x18c]
test eax, eax
je 0x464b11
mov edi, dword [ebx]
mov dword [ebp - 0x1ec], edi
push eax
push eax
mov eax, dword [ebp - 0x18c]
push eax
push edi
call sub.msvcrt.dll_strcmp
add esp, 0x10
test eax, eax
je 0x464473
mov eax, str..gnu.attributes
mov ecx, 0x10
cld
mov esi, dword [ebp - 0x1ec]
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4644c7
mov edx, dword [ebx + 0xa0]
test edx, edx
jne 0x464486
jmp 0x4644a1
mov edx, dword [edx]
test edx, edx
je 0x4644a1
cmp dword [edx + 4], 1
jne 0x464480
mov eax, dword [edx + 0x10]
mov edx, dword [edx]
mov esi, dword [eax + 0x14]
and esi, 0xfffffeff
test edx, edx
mov dword [eax + 0x14], esi
jne 0x464486
sub esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.00475660
add esp, 0x10
mov dword [ebp - 0x190], eax
test eax, eax
jne 0x464ae2
mov eax, dword [ebx + 0x14]
or ah, 0x80
mov dword [ebx + 0x14], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x464430
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x64]
test edi, edi
je 0x465aea
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1a0], 0
mov edx, dword [edi + 0x8c]
mov dword [edi + 0x4c], 0
mov dword [ebp - 0x188], edx
mov ebx, dword [edi + 0xa0]
test ebx, ebx
jne 0x46454a
jmp 0x464955
mov ebx, dword [ebx]
test ebx, ebx
je 0x464662
mov edx, dword [ebx + 4]
lea eax, [edx - 3]
cmp eax, 1
jbe 0x464780
dec edx
jne 0x464540
mov esi, dword [ebx + 0x10]
mov ecx, dword [esi + 0x8c]
mov dword [ebp - 0x17c], ecx
or byte [esi + 0x18], 2
test byte [esi + 0x16], 0x80
je 0x46457f
mov dword [ebp - 0x1a0], 1
mov edx, dword [ebp - 0x188]
mov eax, dword [edx + 4]
cmp eax, 9
je 0x464838
cmp eax, 4
je 0x464838
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x464920
mov edx, dword [ebp - 0x1c8]
mov ecx, dword [esi + 0x4c]
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x180], 0
mov eax, dword [edx + 0xf8]
test eax, eax
je 0x4645e0
sub esp, 0xc
push esi
call eax
add esp, 0x10
mov dword [ebp - 0x180], eax
lea esi, [esi]
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
cmp eax, edx
jae 0x4645ec
mov eax, edx
cmp dword [ebp - 0xe0], eax
jae 0x4645fa
mov dword [ebp - 0xe0], eax
mov edx, dword [esi + 0x94]
mov eax, dword [edx + 4]
cmp dword [eax + 4], 5
je 0x464864
mov esi, dword [ebp - 0x184]
test esi, esi
je 0x464540
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x184]
add eax, ecx
mov edx, dword [edi + 0x4c]
add edx, eax
mov dword [edi + 0x4c], edx
cmp dword [ebx + 4], 1
je 0x4647ab
nop
lea esi, [esi]
test byte [edi + 0x19], 4
je 0x464851
mov ecx, dword [ebp - 0x188]
mov ebx, dword [ebx]
mov esi, dword [ecx + 0x50]
add esi, eax
test ebx, ebx
mov dword [ecx + 0x50], esi
jne 0x46454a
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x464955
mov eax, dword [edi + 0x14]
or eax, 4
mov dword [edi + 0x14], eax
test byte [edi + 0x14], 1
jne 0x464689
test byte [edi + 0x18], 1
jne 0x464689
mov dword [edi + 0x1c], 0
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x46451c
mov eax, dword [ebp - 0x1a0]
test eax, eax
jne 0x464b40
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov al, byte [ebx + 1]
mov ebx, dword [ebp - 0x1bc]
and eax, 0x18
cmp al, 0x18
setne al
and eax, 0xff
or eax, ebx
test byte [edi + 0x2b], 0x40
mov dword [edi + 0x7c], eax
jne 0x464bac
push edx
push edx
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0043c8d0
add esp, 0x10
test eax, eax
je 0x464b8b
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x64]
test esi, esi
jne 0x464701
jmp 0x464993
mov esi, dword [esi + 0xc]
test esi, esi
je 0x464993
mov ebx, dword [esi + 0x8c]
test byte [esi + 0x14], 4
je 0x464741
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x464727
lea edx, [ebx + 0x3c]
mov eax, dword [ebp + 8]
call fcn.00459af0
test eax, eax
je 0x464c85
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x464741
lea edx, [ebx + 0x4c]
mov eax, dword [ebp + 8]
call fcn.00459af0
test eax, eax
je 0x464c54
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
xor edx, 0xffffffff
xor eax, 0xffffffff
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x50], 0
or edx, eax
jne 0x4646f6
test byte [esi + 0x17], 8
jne 0x464963
push eax
push str.bfd_elf_final_link
push 0x2c5f
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.00424270
nop
mov edx, dword [edi + 0x4c]
mov eax, 1
add edx, eax
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [edi + 0x4c], edx
cmp dword [ebx + 4], 1
jne 0x464640
mov esi, dword [ebp - 0x1bc]
test esi, esi
je 0x464640
mov eax, dword [ebp - 0x17c]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4647f4
mov edx, dword [ebp - 0x188]
xor eax, eax
mov esi, dword [edx + 0x40]
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x4647e1
mov eax, dword [ecx + 0x18]
mov ecx, edx
xor edx, edx
div ecx
add eax, esi
mov ecx, dword [ebp - 0x180]
mov edx, dword [ebp - 0x188]
add eax, ecx
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0x17c]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x464540
mov edx, dword [ebp - 0x188]
xor eax, eax
mov esi, dword [edx + 0x50]
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x464820
mov eax, dword [ecx + 0x18]
mov ecx, edx
xor edx, edx
div ecx
mov edx, dword [ebp - 0x180]
add eax, esi
add eax, edx
mov edx, dword [ebp - 0x188]
mov dword [edx + 0x50], eax
jmp 0x464540
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x180], 0
jmp 0x4645e0
mov edx, dword [ebp - 0x188]
mov ecx, dword [edx + 0x40]
add ecx, eax
mov dword [edx + 0x40], ecx
jmp 0x464540
test byte [edx + 0x29], 8
jne 0x46460d
mov ecx, dword [edx + 0xa0]
mov eax, dword [ecx + 0x928]
test eax, eax
je 0x464b1e
mov edx, dword [ebp - 0x1c8]
mov eax, dword [edx + 0x17c]
xor edx, edx
mov dl, byte [eax + 5]
mov eax, dword [ecx + 0x60]
mov dword [ebp - 0x1f0], edx
xor edx, edx
div dword [ebp - 0x1f0]
cmp dword [ebp - 0x1a8], eax
jae 0x4648b2
mov dword [ebp - 0x1a8], eax
cmp eax, dword [ebp - 0x1a4]
jbe 0x4648ca
mov edx, dword [ecx + 0x208]
test edx, edx
je 0x4648ca
mov dword [ebp - 0x1a4], eax
test byte [esi + 0x14], 4
je 0x46460d
mov ecx, dword [ebp - 0x17c]
xor edx, edx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x4648e6
mov edx, dword [eax + 0x18]
mov ecx, dword [ebp - 0x17c]
mov eax, dword [ecx + 0x4c]
test eax, eax
je 0x4648f8
mov ecx, dword [eax + 0x18]
add edx, ecx
cmp dword [ebp - 0x1b0], edx
jae 0x464906
mov dword [ebp - 0x1b0], edx
mov eax, dword [esi + 0x4c]
cmp eax, dword [ebp - 0x1ac]
jbe 0x46460d
mov dword [ebp - 0x1ac], eax
jmp 0x46460d
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ecx + 0xf4]
test eax, eax
je 0x464838
push ecx
push ecx
push esi
mov edx, dword [ebp + 0xc]
push edx
call eax
add esp, 0x10
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], 0
jmp 0x4645e0
mov eax, dword [edi + 0x14]
and eax, 0xfffffffb
mov dword [edi + 0x14], eax
jmp 0x464676
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x464769
sub esp, 0xc
mov edi, dword [ebx + 0x18]
push edi
call fcn.004318c0
add esp, 0x10
test eax, eax
je 0x464c20
mov esi, dword [esi + 0xc]
mov dword [ebx + 0x30], eax
test esi, esi
jne 0x464701
mov edx, dword [ebp + 8]
mov ebx, dword [ebp - 0x1c8]
xor eax, eax
mov ecx, dword [edx + 0xa0]
mov dword [edx + 0x7c], 0
mov edx, dword [ebx + 0x17c]
mov dword [ebp - 0x1c4], ecx
mov dword [ecx + 0x4c], 2
mov edi, dword [ebp - 0x1c4]
mov al, byte [edx + 5]
mov dword [ecx + 0x70], eax
xor ecx, ecx
mov cl, byte [edx + 0xb]
mov eax, 1
shl eax, cl
mov dword [edi + 0x6c], eax
cmp dword [ebp - 0x1a8], 0x13
ja 0x464bff
mov dword [ebp - 0x1a8], 0x14
mov edx, 0x230
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1a8]
sub esp, 0xc
mov ebx, dword [eax + 0x1c]
mov dword [ebx + 0x58], ecx
push edx
call fcn.004318c0
add esp, 0x10
mov dword [ebx + 0x5c], eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
je 0x4651a1
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0xa0]
cmp dword [esi + 0x214], 0xff01
sbb eax, eax
xor eax, 0xffffffff
mov dword [ebp - 0x88], eax
mov al, byte [ebp - 0x1bc]
mov byte [ebp - 0xc1], al
mov al, byte [ebx + 1]
and eax, 0x18
cmp al, 0x18
je 0x464d31
push 1
mov eax, dword [esi + 0x934]
lea esi, [ebp - 0x48]
mov edx, dword [eax + 0x24]
push edx
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 0x1c4]
add eax, 0x48
push eax
call fcn.00433d30
lea edx, [ebp - 0xbc]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x3b], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 0x3a], 0
mov dword [esp], 0
push 0x4a5448
push esi
push 0
mov dword [ebp - 0x1d8], edx
push edx
call fcn.0045bec0
add esp, 0x20
dec eax
je 0x464c96
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1d8]
call fcn.0045bda0
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push edx
push eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.00425230
mov dword [ebx + 0xa0], 0
mov dword [ebp - 0x194], ebx
mov ebx, dword [ebx + 0xc]
add esp, 0x10
test ebx, ebx
jne 0x464430
jmp 0x4644d2
mov ecx, dword [ebx]
mov dword [ebp - 0x1ec], ecx
jmp 0x46445c
mov eax, dword [ecx + 0x68]
jmp 0x4648a4
mov ebx, dword [ebp + 8]
mov edi, dword [ebx + 0x28]
or edi, 0x800
mov dword [ebx + 0x28], edi
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x1c]
jmp 0x46431a
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx]
and eax, 3
cmp al, 2
je 0x4646a2
push eax
mov edi, dword [ebp + 8]
push edi
push 0x45a130
mov esi, dword [ecx + 0x1c]
push esi
call fcn.0042bf60
add esp, 0x10
jmp 0x4646a2
sub esp, 0xc
mov edi, dword [ebp - 0xe0]
push edi
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x464d4c
lea ebx, [ebp - 0xbc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1d8], ebx
mov edx, dword [ebp - 0x1d8]
call fcn.0045bda0
xor eax, eax
jmp 0x464ada
push ecx
push ecx
push 0x2c40
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.004237c0
add esp, 0x10
jmp 0x4646cd
push ebx
push ebx
push str..hash
mov ecx, dword [ebp - 0x1b8]
push ecx
call fcn.00425880
mov dword [ebp - 0xb0], eax
pop eax
pop edx
push str..gnu.version
mov eax, dword [ebp - 0x1b8]
push eax
call fcn.00425880
add esp, 0x10
mov dword [ebp - 0xac], eax
jmp 0x464395
mov eax, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x1a8]
shl eax, 2
shl edx, 5
sub edx, eax
jmp 0x4649f5
test edi, edi
je 0x465534
lea edx, [ebp - 0xbc]
mov dword [ebp - 0x1d8], edx
jmp 0x464aca
sub esp, 0xc
mov eax, dword [ebp - 0x1a4]
shl eax, 2
push eax
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0x98], eax
test eax, eax
jne 0x464e49
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x1d8], eax
jmp 0x464aca
sub esp, 0xc
mov ebx, dword [ebp - 0x1b0]
push ebx
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0xa4], eax
test eax, eax
jne 0x464d5a
lea edi, [ebp - 0xbc]
mov dword [ebp - 0x1d8], edi
jmp 0x464aca
mov ecx, dword [ebp + 8]
mov byte [ebp - 0x3c], 3
mov byte [ebp - 0x3b], 0
mov byte [ebp - 0x3a], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov eax, dword [ecx + 0xa0]
cmp dword [eax + 0x214], 1
jbe 0x464d3e
mov ebx, 1
jmp 0x464cdb
mov edi, dword [ebp + 8]
inc ebx
mov eax, dword [edi + 0xa0]
cmp dword [eax + 0x214], ebx
jbe 0x464d3e
push eax
push eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.00433c10
add esp, 0x10
mov edx, eax
test eax, eax
je 0x464cc9
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x7c]
mov dword [edx + 0x88], eax
mov dword [ebp - 0x38], ebx
mov al, byte [ecx]
and eax, 3
cmp al, 2
je 0x464d11
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x48], eax
sub esp, 0xc
push 0
push edx
push esi
push 0
mov eax, dword [ebp - 0x1d8]
push eax
call fcn.0045bec0
add esp, 0x20
dec eax
je 0x464cc9
jmp 0x464aca
cmp byte [ebp - 0xc1], 0
jne 0x464a5c
mov eax, dword [ebp - 0xe0]
test eax, eax
jne 0x464b6b
mov esi, dword [ebp - 0x1b0]
test esi, esi
jne 0x464c65
mov ecx, dword [ebp - 0x1ac]
test ecx, ecx
je 0x464da1
mov edx, dword [ebp - 0x1c8]
sub esp, 0xc
mov eax, dword [edx + 0x17c]
mov edx, dword [ebp - 0x1ac]
mov al, byte [eax + 9]
and eax, 0xff
lea eax, [eax + eax*2]
shl eax, 2
imul eax, edx
push eax
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x464c54
mov ecx, dword [ebp - 0x1c8]
mov edi, dword [ebp - 0x1a8]
sub esp, 0xc
mov eax, dword [ecx + 0x17c]
mov al, byte [eax + 5]
and eax, 0xff
imul eax, edi
push eax
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0x9c], eax
test eax, eax
je 0x464c20
mov ebx, dword [ebp - 0x1a8]
mov edi, dword [ebp - 0x1a8]
shl ebx, 2
sub esp, 0xc
lea eax, [ebx + edi]
shl eax, 2
push eax
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0x94], eax
test eax, eax
je 0x4651a1
sub esp, 0xc
push ebx
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0x90], eax
test eax, eax
je 0x464b8b
sub esp, 0xc
push ebx
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x464c85
mov esi, dword [ebp - 0x1a4]
test esi, esi
jne 0x464c31
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x1c]
mov esi, dword [edi + 0xc8]
test esi, esi
je 0x464ebd
mov edx, esi
xor ebx, ebx
mov eax, dword [edx + 0x14]
test ah, 4
je 0x464e91
mov ecx, dword [edx + 0x24]
test ecx, ecx
jne 0x464e83
test ah, 1
jne 0x464e83
mov eax, dword [edx + 0xa4]
test eax, eax
je 0x464e83
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
add ecx, ebx
mov eax, dword [edx + 0x1c]
mov ebx, ecx
mov edx, dword [edx + 0xc]
add ebx, eax
test edx, edx
jne 0x464e5d
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [esi + 0x1c]
cmp dword [ecx + 0x1ac], 1
jne 0x464eb5
mov ecx, dword [esi + 0x40]
mov eax, 1
shl eax, cl
lea ebx, [ebx + eax - 1]
neg eax
and ebx, eax
sub ebx, edx
mov dword [edi + 0xcc], ebx
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 0x64]
mov dword [ebp - 0xd8], ebx
test ebx, ebx
je 0x464fdf
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x1b4]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0xd8]
mov ebx, dword [eax + 0xa0]
test ebx, ebx
je 0x464fc8
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x160], 0
mov dword [ebp - 0xc8], 0
cmp dword [ebx + 4], 1
je 0x4650f0
mov eax, dword [ebp - 0x154]
inc eax
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x154]
test eax, eax
je 0x464fb0
mov edi, dword [ebp - 0x150]
test edi, edi
je 0x464fb0
mov esi, dword [ebp - 0x160]
test esi, esi
je 0x465276
mov ebx, dword [ebp - 0xc8]
test ebx, ebx
je 0x465276
push ecx
push ecx
mov ebx, dword [ebp - 0x160]
mov edx, dword [ebx + 0x94]
push edx
push ebx
mov edi, dword [ebp - 0xc8]
mov eax, dword [edi + 0x94]
push eax
push edi
mov eax, dword [ebp - 0xd8]
push eax
push str._A_has_both_ordered____A_in__B__and_unordered____A_in__B__sections
call dword [0x4a5380]
add esp, 0x20
sub esp, 0xc
push 0x11
call fcn.00424490
xor eax, eax
add esp, 0x10
jmp 0x4642fc
mov ebx, dword [ebx]
test ebx, ebx
jne 0x464f1f
mov eax, dword [ebp - 0x150]
test eax, eax
jne 0x465292
mov edi, dword [ebp - 0xd8]
mov edi, dword [edi + 0xc]
mov dword [ebp - 0xd8], edi
test edi, edi
jne 0x464ed1
sub esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.00478f20
add esp, 0x10
test eax, eax
je 0x4642fa
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx + 0x34]
mov dword [ebp - 0x1b4], ebx
test ebx, ebx
je 0x465020
mov edi, dword [ebp - 0x1b4]
mov eax, dword [edi + 0x9c]
and byte [edi + 0x2b], 0xbf
mov dword [ebp - 0x1b4], eax
test eax, eax
jne 0x465006
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x64]
mov dword [ebp - 0xd4], edx
test edx, edx
je 0x465590
mov ecx, dword [ebp - 0xd4]
mov esi, dword [ecx + 0xa0]
test esi, esi
jne 0x465086
jmp 0x465579
lea eax, [edx - 3]
cmp eax, 1
jbe 0x465387
push esi
mov eax, dword [ebp - 0xd4]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0042d5e0
add esp, 0x10
test eax, eax
je 0x466053
mov esi, dword [esi]
test esi, esi
je 0x465579
mov edx, dword [esi + 4]
cmp edx, 1
jne 0x465050
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x1b4], eax
mov ebx, eax
mov eax, dword [eax + 4]
cmp dword [eax + 4], 5
jne 0x465050
mov edi, dword [ebp - 0x1c8]
mov eax, dword [ebx + 0xa0]
mov edx, dword [edi + 0x17c]
mov al, byte [eax + 4]
cmp al, byte [edx + 0xc]
jne 0x46505c
test byte [ebx + 0x2b], 0x40
jne 0x46507c
lea eax, [ebp - 0xbc]
mov edx, ebx
mov dword [ebp - 0x1d8], eax
call fcn.004629a0
test eax, eax
je 0x464aca
or byte [ebx + 0x2b], 0x40
jmp 0x46507c
mov edi, dword [ebx + 0x10]
mov esi, dword [edi + 0x94]
mov eax, dword [esi + 4]
cmp dword [eax + 4], 5
je 0x4651fd
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], edi
inc eax
mov dword [ebp - 0x154], eax
jmp 0x464f36
cmp dword [esi + 4], 3
je 0x4660c0
mov eax, dword [esi + 0x10]
mov edx, dword [eax + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x18]
push 0
push 0
push 0
mov ebx, dword [ebp - 0x144]
push ebx
mov ebx, dword [ebp - 0x13c]
mov ebx, dword [ebx + 0x20]
push ebx
push edx
push 0
push ecx
call dword [eax + 0x1c]
add esp, 0x20
sub esp, 0xc
mov eax, dword [ebp + 8]
mov ebx, dword [esi + 8]
push eax
call fcn.00426620
imul eax, ebx
pop edx
xor edx, edx
pop ecx
push edi
push edx
push eax
mov eax, dword [ebp - 0x14c]
push eax
mov eax, dword [ebp - 0xd4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004253c0
add esp, 0x14
mov ebx, eax
mov eax, dword [ebp - 0x14c]
push eax
call sub.msvcrt.dll_free
add esp, 0x10
test ebx, ebx
jne 0x465441
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x1d8], ecx
jmp 0x464aca
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x1ac], 0
jmp 0x4646a2
mov ecx, dword [ebp - 0x15c]
mov eax, dword [esi + 0xa0]
mov edx, dword [ecx + 0x17c]
mov al, byte [eax + 4]
cmp al, byte [edx + 0xc]
jne 0x465106
push eax
push eax
push edi
push esi
call fcn.00434ba0
add esp, 0x10
mov edx, eax
test eax, eax
je 0x465106
mov eax, dword [esi + 0xa0]
mov ecx, dword [eax + 0x214]
cmp edx, ecx
jae 0x465106
mov eax, dword [eax + 0x40]
mov eax, dword [eax + edx*4]
cmp byte [eax + 8], 0
jns 0x465106
cmp ecx, dword [eax + 0x1c]
jbe 0x465106
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0xc8], edi
inc eax
mov dword [ebp - 0x150], eax
jmp 0x464f36
push eax
push eax
mov eax, dword [ebp - 0xd8]
push eax
push str._A_has_both_ordered_and_unordered_sections
call dword [0x4a5380]
add esp, 0x10
jmp 0x464f99
sub esp, 0xc
mov eax, dword [ebp - 0x150]
shl eax, 2
push eax
call fcn.004318c0
add esp, 0x10
mov edi, eax
test eax, eax
je 0x4642fa
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 0xa0]
test eax, eax
je 0x465373
mov dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 0xcc]
mov dword [edi + ecx*4], eax
inc ecx
mov eax, dword [eax]
mov dword [ebp - 0xcc], ecx
test eax, eax
jne 0x4652cf
push 0x4580f0
push 4
push ecx
push edi
call sub.msvcrt.dll_qsort
mov dword [ebp - 0x158], 0
xor edx, edx
add esp, 0x10
mov ebx, dword [ebp - 0x158]
sub esp, 0xc
mov eax, dword [edi + ebx*4]
or ebx, 0xffffffff
mov esi, dword [eax + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x40]
push eax
shl ebx, cl
and ebx, edx
call fcn.00426620
mov edx, eax
mov eax, ebx
mov ecx, edx
xor edx, edx
div ecx
mov edx, dword [ebp - 0x158]
mov dword [esi + 0x38], eax
mov ecx, dword [ebp - 0x158]
add esp, 0x10
mov eax, dword [edi + edx*4]
inc ecx
mov edx, ebx
mov dword [ebp - 0x158], ecx
mov dword [eax + 8], ebx
mov ecx, dword [ebp - 0xcc]
mov ebx, dword [eax + 0xc]
add edx, ebx
cmp dword [ebp - 0x158], ecx
jne 0x465302
sub esp, 0xc
push edi
call sub.msvcrt.dll_free
add esp, 0x10
jmp 0x464fc8
push 0x4580f0
push 4
push 0
push edi
call sub.msvcrt.dll_qsort
add esp, 0x10
jmp 0x465362
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [edx + 4]
mov ebx, dword [ecx + 0x8c]
mov eax, dword [eax + 0x1b4]
mov dword [ebp - 0x138], eax
push eax
push eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
push eax
push edx
call fcn.0042f060
add esp, 0x10
mov dword [ebp - 0x13c], eax
test eax, eax
je 0x465f0d
mov edx, dword [esi + 0x10]
mov eax, dword [ebx + 0x3c]
test eax, eax
mov edi, dword [edx + 8]
mov dword [ebp - 0x144], edi
je 0x465ef8
add ebx, 0x3c
mov dword [ebp - 0x148], ebx
mov ecx, dword [ebp - 0x148]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0xc]
lea ebx, [eax*4]
add ebx, edi
cmp dword [esi + 4], 3
jne 0x465f51
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x88]
mov dword [ebp - 0x140], eax
test eax, eax
jne 0x46542a
push eax
push eax
push 0x2a06
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.004237c0
add esp, 0x10
mov dword [ebx], 0
mov eax, dword [ebp - 0x13c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
jne 0x465502
mov edx, dword [ebp + 0xc]
mov edi, dword [esi + 8]
mov al, byte [edx]
and eax, 3
cmp al, 2
je 0x46545b
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + 0x1c]
add edi, eax
mov ebx, dword [ebp - 0x138]
lea eax, [ebp - 0x80]
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebx + 0x17c]
cmp byte [ecx + 9], 0
je 0x465497
mov edx, eax
xor ebx, ebx
mov dword [edx], edi
mov dword [edx + 4], 0
mov dword [edx + 8], 0
xor eax, eax
inc ebx
mov al, byte [ecx + 9]
add edx, 0xc
cmp eax, ebx
ja 0x46547a
cmp byte [ecx + 0xa], 0x20
je 0x46602b
mov edi, dword [ebp - 0x13c]
mov eax, dword [edi]
mov dword [ebp - 0x7c], eax
mov edx, dword [ebp - 0x148]
mov eax, dword [edx]
mov edx, dword [eax + 0x30]
cmp dword [eax + 4], 9
je 0x466000
mov edi, dword [ebp - 0x144]
mov dword [ebp - 0x78], edi
push eax
mov ebx, dword [ebp - 0x148]
xor eax, eax
mov al, byte [ecx + 4]
mov edi, dword [ebx + 4]
imul eax, edi
add eax, edx
push eax
mov edx, dword [ebp - 0x1e0]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [ecx + 0x44]
add esp, 0x10
mov edi, dword [ebp - 0x148]
mov eax, dword [edi + 4]
inc eax
mov dword [edi + 4], eax
jmp 0x46507c
mov edx, dword [ebp - 0x144]
test edx, edx
je 0x465441
sub esp, 0xc
push eax
call fcn.0042f2b0
mov dword [esp], eax
mov edi, eax
call fcn.00431920
add esp, 0x10
mov dword [ebp - 0x14c], eax
test eax, eax
je 0x464c18
mov eax, dword [ebp - 0x14c]
push eax
mov eax, dword [ebp - 0x144]
push eax
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x13c]
push eax
call fcn.0042f310
add esp, 0x10
test eax, eax
je 0x465155
dec eax
je 0x46511e
push esi
push str.elf_reloc_link_order
push 0x2a47
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.00424270
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x465034
mov edx, dword [ebp + 0xc]
test byte [edx + 4], 2
jne 0x4655b7
mov ebx, dword [edx + 0x34]
test ebx, ebx
je 0x4655b7
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 5
je 0x465b21
mov ebx, dword [ebx + 0x9c]
test ebx, ebx
jne 0x4655a0
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], 0
push ebx
lea ebx, [ebp - 0x34]
push ebx
push 0x45d7d0
mov edi, dword [ebp + 0xc]
mov ecx, dword [edi + 0x1c]
push ecx
call fcn.00425ad0
mov edx, dword [ebp - 0x34]
add esp, 0x10
test edx, edx
jne 0x4642fa
mov eax, dword [ebp - 0x1c8]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x465643
cmp byte [ebp - 0xc1], 0
jne 0x465622
mov al, byte [edi + 1]
and eax, 0x18
cmp al, 0x18
je 0x465643
push fcn.0045bec0
mov eax, dword [ebp - 0x1d8]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call edx
add esp, 0x10
test eax, eax
je 0x4642fa
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c4]
mov eax, dword [edx + 0x7c]
mov dword [ecx + 0x68], eax
mov eax, dword [ebp - 0x1c0]
test eax, eax
je 0x46586a
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x1c]
mov eax, dword [edx + 0xf8]
test eax, eax
je 0x46586a
cmp dword [eax + 0x3c], 0x4a54f0
je 0x46586a
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x178], eax
mov al, byte [ebx]
and eax, 3
cmp al, 3
je 0x4656ac
dec al
je 0x4656ac
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x174], 0
test eax, eax
je 0x465777
mov eax, dword [ebp + 8]
mov byte [ebp - 0x50], 3
mov byte [ebp - 0x4f], 0
mov byte [ebp - 0x4e], 0
mov edi, dword [eax + 0x64]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x174], 0
test edi, edi
je 0x465777
mov eax, dword [edi + 0x8c]
mov ebx, dword [eax + 0x60]
test ebx, ebx
jle 0x465766
mov esi, dword [eax + 0x5c]
test esi, esi
jg 0x465706
push eax
push eax
push 0x2db9
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.004237c0
add esp, 0x10
lea edx, [ebp - 0x5c]
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp + 8]
call fcn.00459c60
test eax, eax
je 0x4642fa
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x174], ebx
mov edx, dword [ecx + 0x17c]
jge 0x465742
mov dword [ebp - 0x174], ebx
push 0
xor eax, eax
mov al, byte [edx + 5]
mov ecx, dword [ebp - 0x178]
imul eax, ebx
add eax, ecx
push eax
mov eax, dword [ebp - 0x1e4]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [edx + 0x24]
add esp, 0x10
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x4656de
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x1c]
mov ebx, dword [edx + 0xc0]
test ebx, ebx
je 0x465851
lea edi, [ebp - 0x5c]
mov dword [ebp - 0x1e4], edi
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x58], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x54], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x4c], eax
and byte [ebp - 0x4f], 0xfc
push eax
push eax
mov eax, dword [ebx + 0x20]
push eax
mov eax, dword [ebx + 4]
push eax
call fcn.00433c10
add esp, 0x10
mov esi, eax
test eax, eax
je 0x465800
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x1e4]
mov eax, dword [eax + 0x8c]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 8]
call fcn.00459c60
test eax, eax
je 0x4642fa
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
mov esi, dword [ebx + 0x10]
mov eax, dword [eax + 0x1c]
add eax, edi
add eax, esi
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebx + 0xc]
cmp dword [ebp - 0x174], ecx
jge 0x465811
mov dword [ebp - 0x174], ecx
mov eax, dword [ebp - 0x1c8]
mov edx, dword [eax + 0x17c]
push 0
xor eax, eax
mov al, byte [edx + 5]
imul eax, ecx
mov ecx, dword [ebp - 0x178]
add eax, ecx
push eax
mov eax, dword [ebp - 0x1e4]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [edx + 0x24]
mov ebx, dword [ebx]
add esp, 0x10
test ebx, ebx
jne 0x46578e
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x1c]
mov eax, dword [edx + 0xf8]
mov eax, dword [eax + 0x3c]
mov edx, dword [eax + 0x8c]
mov eax, dword [ebp - 0x174]
inc eax
mov dword [edx + 0x20], eax
mov ebx, dword [ebp - 0x1d8]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], 0
push edi
lea edi, [ebp - 0x34]
push edi
push 0x45d7d0
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x1c]
push esi
call fcn.00425ad0
mov ebx, dword [ebp - 0x34]
add esp, 0x10
test ebx, ebx
jne 0x4642fa
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [ecx + 0xd4]
test edx, edx
je 0x4658ec
cmp byte [ebp - 0xc1], 0
jne 0x4658cb
mov ebx, dword [ebp + 0xc]
mov al, byte [ebx + 1]
and eax, 0x18
cmp al, 0x18
je 0x4658ec
push fcn.0045bec0
mov ecx, dword [ebp - 0x1d8]
push ecx
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call edx
add esp, 0x10
test eax, eax
je 0x4642fa
sub esp, 0xc
mov eax, dword [ebp - 0xb4]
push eax
call fcn.00476080
mov eax, dword [ebp - 0xbc]
add esp, 0x10
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x12c], eax
mov eax, dword [eax + 0x54]
test eax, eax
je 0x465b87
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0xa0]
mov eax, dword [eax + 0x90c]
test eax, eax
jne 0x465948
push eax
push eax
push 0x22f5
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.004237c0
mov edx, dword [ebp - 0xb8]
add esp, 0x10
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x12c]
sub esp, 0xc
mov eax, dword [eax + 0x1b4]
mov edi, dword [edx + 0x54]
mov dword [ebp - 0x134], eax
mov eax, dword [eax + 0x17c]
mov al, byte [eax + 5]
and eax, 0xff
imul eax, edi
push eax
call fcn.004318c0
add esp, 0x10
mov dword [ebp - 0x128], eax
test eax, eax
je 0x4642fa
mov esi, dword [ebp - 0x88]
test esi, esi
je 0x4659bb
mov eax, dword [ebp - 0xb8]
sub esp, 0xc
mov eax, dword [eax + 0x7c]
shl eax, 2
push eax
call fcn.00431920
add esp, 0x10
mov dword [ebp - 0x88], eax
test eax, eax
je 0x465e52
mov ecx, dword [ebp - 0x12c]
mov edi, dword [ecx + 0x54]
test edi, edi
je 0x465a54
mov dword [ebp - 0x130], 0
xor esi, esi
mov edi, dword [ebp - 0x12c]
mov ebx, esi
mov ecx, dword [edi + 0x5c]
add ebx, ecx
mov eax, dword [ebx + 8]
cmp eax, 0xffffffff
jne 0x465e38
mov dword [ebx + 8], 0
mov edx, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x88]
add esi, 0x1c
mov eax, dword [edx + 0x17c]
mov edx, dword [ebx + 0x18]
lea edx, [ecx + edx*4]
push edx
xor edx, edx
mov dl, byte [eax + 5]
mov edi, dword [ebx + 0x14]
imul edx, edi
mov ecx, dword [ebp - 0x128]
add edx, ecx
push edx
push ebx
mov edx, dword [ebp - 0xb8]
push edx
call dword [eax + 0x24]
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
inc eax
add esp, 0x10
mov dword [ebp - 0x130], eax
mov edi, dword [ecx + 0x54]
cmp edi, dword [ebp - 0x130]
ja 0x4659d8
mov ebx, dword [ebp - 0x134]
mov ecx, dword [ebp - 0xb8]
xor edx, edx
mov eax, dword [ebx + 0x17c]
mov esi, dword [ecx + 0xa0]
mov bl, byte [eax + 5]
push 0
mov eax, dword [esi + 0x60]
add eax, dword [esi + 0x58]
adc edx, dword [esi + 0x5c]
push edx
push eax
push ecx
call fcn.0046b220
add esp, 0x10
test eax, eax
jne 0x465ab4
and ebx, 0xff
push eax
imul ebx, edi
mov edi, dword [ebp - 0xb8]
push edi
push ebx
mov ecx, dword [ebp - 0x128]
push ecx
call fcn.0046b010
add esp, 0x10
cmp eax, ebx
je 0x465b56
sub esp, 0xc
mov esi, dword [ebp - 0x128]
push esi
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x12c]
pop ebx
mov ecx, dword [eax + 0x5c]
push ecx
call sub.msvcrt.dll_free
mov edx, dword [ebp - 0x12c]
xor eax, eax
add esp, 0x10
mov dword [edx + 0x5c], 0
jmp 0x4642fc
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1ac], 0
jmp 0x4646a2
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x24c]
test eax, eax
je 0x4655ad
sub esp, 0xc
push eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0xa0]
add esp, 0x10
mov dword [eax + 0x24c], 0
jmp 0x4655ad
mov edx, dword [esi + 0x60]
sub esp, 0xc
add edx, eax
mov eax, dword [ebp - 0x128]
mov dword [esi + 0x60], edx
push eax
call sub.msvcrt.dll_free
mov edi, dword [ebp - 0x12c]
pop eax
mov eax, dword [edi + 0x5c]
push eax
call sub.msvcrt.dll_free
mov dword [edi + 0x5c], 0
add esp, 0x10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x465cb3
mov ecx, dword [ebp - 0x1c4]
mov edx, dword [ecx + 0x60]
xor ecx, ecx
mov dword [ebp - 0x170], edx
mov edx, dword [ebp - 0x1c4]
mov dword [ebp - 0x16c], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x58]
mov edx, dword [edx + 0x5c]
add dword [ebp - 0x170], eax
adc dword [ebp - 0x16c], edx
mov esi, dword [ecx + 0xa0]
mov ebx, dword [esi + 0x208]
test ebx, ebx
je 0x465be1
mov edi, dword [ebx]
test edi, edi
jne 0x465e6b
mov edi, dword [ebp - 0x1c8]
sub esp, 0xc
mov ebx, dword [ebp - 0xb4]
mov dword [esi + 0xbc], 3
mov eax, dword [edi + 0x1b4]
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], eax
push ebx
call fcn.00475f70
mov dword [esi + 0xe0], 0
mov dword [esi + 0xd0], eax
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xdc], 1
push 1
lea eax, [esi + 0xb8]
mov ecx, dword [ebp - 0x16c]
push ecx
mov edx, dword [ebp - 0x170]
push edx
push eax
call fcn.00433d30
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0xa0]
add esp, 0x20
mov ecx, dword [ecx + 0x934]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
push 0
mov eax, dword [esi + 0xcc]
push eax
mov eax, dword [esi + 0xc8]
push eax
push ebx
call fcn.0046b220
add esp, 0x10
test eax, eax
jne 0x4642fa
push eax
push eax
mov eax, dword [ebp - 0xb4]
push eax
push ebx
call fcn.00476220
add esp, 0x10
test eax, eax
je 0x4642fa
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x64]
test ebx, ebx
je 0x465d33
mov esi, dword [ebx + 0x8c]
test byte [ebx + 0x14], 4
je 0x465d2c
mov edx, dword [ebp - 0x1c8]
mov eax, dword [edx + 0xfc]
test eax, eax
je 0x465ce8
sub esp, 0xc
xor edi, edi
push ebx
call eax
add esp, 0x10
test eax, eax
je 0x465ced
mov edi, 1
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x465d09
lea edx, [esi + 0x3c]
mov ecx, edi
mov eax, dword [ebp + 8]
call fcn.0045b7f0
test eax, eax
je 0x4642fa
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x465d25
lea edx, [esi + 0x4c]
mov ecx, edi
mov eax, dword [ebp + 8]
call fcn.0045b7f0
test eax, eax
je 0x4642fa
mov dword [ebx + 0x4c], 0
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x465cbd
mov ebx, dword [ebp - 0x1c0]
test ebx, ebx
je 0x46683e
mov ecx, dword [ebp + 0xc]
test byte [ecx + 4], 8
je 0x4661b1
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
je 0x4661b1
mov ebx, dword [ebp + 8]
sub esp, 0xc
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x1b4]
mov dword [ebp - 0xfc], eax
mov eax, dword [eax + 0x17c]
mov al, byte [eax + 9]
mov byte [ebp - 0xe5], al
push ebx
call fcn.00426620
mov dword [ebp - 0x100], eax
pop eax
pop edx
push str..rela.dyn
push ebx
call fcn.004257c0
mov dword [ebp - 0xd0], eax
pop edi
pop eax
push str..rel.dyn
push ebx
call fcn.004257c0
mov esi, dword [ebp - 0xd0]
add esp, 0x10
mov dword [ebp - 0x198], eax
test esi, esi
je 0x4662b4
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x4662b4
mov ebx, dword [ebp - 0x198]
test ebx, ebx
je 0x46613d
mov ecx, dword [ebp - 0x198]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x46613d
mov edi, dword [edx + 0xa0]
test edi, edi
je 0x4666b5
mov edx, dword [ebp - 0xfc]
mov esi, edi
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x118], 0
mov ebx, dword [edx + 0x17c]
cmp dword [esi + 4], 1
je 0x466620
mov esi, dword [esi]
test esi, esi
jne 0x465e23
jmp 0x4666d5
push edx
push edx
push eax
mov edi, dword [ebp - 0xb4]
push edi
call fcn.004762f0
add esp, 0x10
mov dword [ebx + 8], eax
jmp 0x4659f8
sub esp, 0xc
mov ebx, dword [ebp - 0x128]
push ebx
call sub.msvcrt.dll_free
xor eax, eax
add esp, 0x10
jmp 0x4642fc
mov dword [ebx + 4], 0x12
mov dword [ebx + 0x28], 4
mov eax, dword [ecx + 0x7c]
mov dword [ebx + 0x24], 4
lea esi, [eax*4]
mov dword [ebx + 0x18], esi
push 1
mov edx, dword [ebp - 0x16c]
push edx
mov eax, dword [ebp - 0x170]
push eax
push ebx
call fcn.00433d30
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], edx
push 0
mov eax, dword [ebx + 0x14]
push eax
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0046b220
add esp, 0x20
test eax, eax
jne 0x4642fa
push eax
mov eax, dword [ebp + 8]
push eax
push esi
mov edi, dword [ebp - 0x88]
push edi
call fcn.0046b010
add esp, 0x10
cmp eax, esi
jne 0x4642fa
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0xa0]
jmp 0x465be1
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x465f2b
add ebx, 0x4c
mov dword [ebp - 0x148], ebx
jmp 0x4653e4
sub esp, 0xc
lea ebx, [ebp - 0xbc]
push 0x11
call fcn.00424490
add esp, 0x10
mov dword [ebp - 0x1d8], ebx
jmp 0x464aca
push eax
push eax
push 0x29fe
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.004237c0
mov dword [ebp - 0x148], 0
add esp, 0x10
mov edx, dword [esi + 0x10]
jmp 0x4653e4
push eax
push eax
push 1
push 0
push 0
mov eax, dword [edx + 4]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0042d090
add esp, 0x20
mov edx, eax
test eax, eax
je 0x465fd4
mov al, byte [eax + 0xc]
sub eax, 3
cmp al, 1
jbe 0x465f95
mov dword [edx + 0x1c], 0xfffffffe
mov dword [ebx], edx
mov dword [ebp - 0x140], 0
jmp 0x465430
mov edx, dword [edx + 0x14]
mov dword [ebx], 0
mov eax, dword [edx + 0x3c]
mov ebx, dword [edx + 0x38]
mov edi, dword [eax + 0x88]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x140], edi
add eax, ecx
mov dword [ebp - 0x144], eax
mov edi, dword [ebp - 0x144]
add edi, ebx
mov dword [ebp - 0x144], edi
jmp 0x465430
sub esp, 0xc
mov edi, dword [ebp + 0xc]
mov edx, dword [edi + 0x18]
push 0
push 0
push 0
mov eax, dword [esi + 0x10]
mov ebx, dword [eax + 4]
push ebx
push edi
call dword [edx + 0x24]
add esp, 0x20
mov dword [ebp - 0x140], 0
jmp 0x465430
push eax
xor eax, eax
mov ebx, dword [ebp - 0x148]
mov al, byte [ecx + 3]
mov edi, dword [ebx + 4]
imul eax, edi
add eax, edx
push eax
mov eax, dword [ebp - 0x1e0]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [ecx + 0x3c]
add esp, 0x10
jmp 0x4654f0
mov ebx, dword [ebp - 0x140]
shl ebx, 8
mov dword [ebp - 0x140], ebx
mov ebx, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x140]
movzx eax, byte [ebx]
add eax, edx
mov dword [ebp - 0x7c], eax
jmp 0x4654ac
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x1d8], eax
cmp dword [esi + 4], 1
jne 0x464aca
mov edx, dword [ebp - 0x1b4]
mov eax, dword [edx + 4]
cmp dword [eax + 4], 5
jne 0x464aca
mov eax, dword [edx + 0xa0]
mov ebx, dword [ebp - 0x1c8]
mov dl, byte [eax + 4]
mov eax, dword [ebx + 0x17c]
mov al, byte [eax + 0xc]
cmp dl, al
je 0x464b8b
cmp al, 1
je 0x4660f8
jb 0x4660cd
mov esi, str.ELFCLASS64
cmp al, 2
je 0x4660d2
push eax
push str.bfd_elf_final_link
push 0x2d52
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.00424270
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov edx, dword [eax]
jmp 0x46512e
mov esi, str.ELFCLASSNONE
cmp dl, 1
je 0x466136
jb 0x4660ff
mov ebx, str.ELFCLASS64
cmp dl, 2
je 0x466104
push edi
push str.bfd_elf_final_link
push 0x2d5a
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.00424270
mov esi, str.ELFCLASS32
jmp 0x4660d2
mov ebx, str.ELFCLASSNONE
sub esp, 0xc
lea edi, [ebp - 0xbc]
push 3
call fcn.00424490
push esi
push ebx
mov esi, dword [ebp - 0x1b4]
push esi
push str._B:_file_class__s_incompatible_with__s
call dword [0x4a5380]
add esp, 0x20
mov dword [ebp - 0x1d8], edi
jmp 0x464aca
mov ebx, str.ELFCLASS32
jmp 0x466104
test eax, eax
je 0x4662b4
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xfc]
mov edi, dword [ecx + 0xa0]
mov ebx, dword [eax + 0x17c]
xor ecx, ecx
mov eax, dword [ebx + 0x40]
mov cl, byte [ebx + 4]
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebx + 0x44]
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x198], edx
xor edx, edx
test edi, edi
je 0x4661a0
cmp dword [edi + 4], 1
jne 0x46619a
mov eax, dword [edi + 0x10]
mov esi, dword [eax + 0x24]
add edx, esi
mov edi, dword [edi]
test edi, edi
jne 0x46618c
mov ecx, dword [ebp - 0x198]
mov eax, dword [ecx + 0x24]
cmp eax, edx
je 0x466beb
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
push eax
push eax
push str..dynamic
mov edi, dword [ebp - 0x1b8]
push edi
call fcn.00425880
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x4661f5
push edx
push edx
push 0x2e59
push str._usr_local_google_buildbot_src_android_gcc_toolchain_build_.._binutils_binutils_2.27_bfd_elflink.c
call fcn.004237c0
add esp, 0x10
mov ecx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x168], ecx
add ecx, eax
mov dword [ebp - 0x164], ecx
cmp dword [ebp - 0x168], ecx
jae 0x46683e
mov ebx, dword [ebp - 0x1c8]
mov edx, dword [ebx + 0x17c]
lea edi, [ebp - 0x1c]
push eax
push edi
mov eax, dword [ebp - 0x168]
push eax
mov eax, dword [ebp - 0x1b8]
push eax
call dword [edx + 0x30]
mov edx, dword [ebp - 0x1c]
add esp, 0x10
cmp edx, 0x12
ja 0x4664eb
cmp edx, 0x11
jae 0x466498
cmp edx, 6
je 0x4664e1
ja 0x466480
cmp edx, 4
je 0x466441
ja 0x466405
test edx, edx
jne 0x4663da
mov eax, dword [ebp - 0x19c]
test eax, eax
jne 0x466323
mov edi, dword [ebp - 0x1c8]
xor eax, eax
mov ebx, dword [ebp - 0x168]
mov edx, dword [edi + 0x17c]
mov al, byte [edx + 6]
lea ecx, [eax + ebx]
cmp ecx, dword [ebp - 0x164]
jae 0x46683e
mov dword [ebp - 0x168], ecx
jmp 0x466221
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x19c], 0
test eax, eax
je 0x4661c5
mov edx, dword [ebp - 0x198]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x4661b1
mov ecx, dword [ebp - 0x198]
mov edi, dword [ebp - 0xfc]
mov ecx, dword [ecx + 0xa0]
mov ebx, dword [edi + 0x17c]
mov dword [ebp - 0x10c], ecx
xor eax, eax
mov edx, dword [ebx + 0x38]
mov al, byte [ebx + 3]
mov edi, dword [ebp - 0x10c]
mov ebx, dword [ebx + 0x3c]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x104], edx
mov dword [ebp - 0x108], ebx
jmp 0x466186
mov edi, dword [ebp - 0x1c8]
xor eax, eax
mov ebx, dword [ebp - 0x168]
mov edx, dword [edi + 0x17c]
mov al, byte [edx + 6]
lea ecx, [eax + ebx]
cmp dword [ebp - 0x164], ecx
jbe 0x46683e
mov edi, dword [ebp - 0x198]
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + 4]
cmp eax, 4
je 0x4663f9
cmp eax, 9
jne 0x46629d
mov dword [ebp - 0x1c], 0x6ffffffa
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x18], eax
push ebx
lea edi, [ebp - 0x1c]
mov ebx, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x168]
mov eax, dword [ebx + 0x17c]
push ecx
push edi
mov edx, dword [ebp - 0x1b8]
push edx
call dword [eax + 0x34]
mov edx, dword [ebx + 0x17c]
xor eax, eax
mov ecx, dword [ebp - 0x168]
add esp, 0x10
mov al, byte [edx + 6]
add ecx, eax
jmp 0x46629d
cmp edx, 0x6ffffffc
je 0x466616
mov ebx, str..gnu.version_r
cmp edx, 0x6ffffffe
je 0x46640a
mov eax, dword [ebp - 0x1c8]
mov ebx, dword [ebp - 0x168]
mov edx, dword [eax + 0x17c]
xor eax, eax
mov al, byte [edx + 6]
lea ecx, [eax + ebx]
jmp 0x46629d
mov dword [ebp - 0x1c], 0x6ffffff9
jmp 0x466371
mov ebx, str..dynstr
push eax
push eax
push ebx
mov eax, dword [ebp - 0x1b8]
push eax
call fcn.00425880
add esp, 0x10
mov edx, eax
test edx, edx
je 0x46646a
mov ecx, dword [edx + 0x3c]
mov eax, dword [ecx + 0x8c]
cmp dword [eax + 4], 7
je 0x466448
mov eax, dword [ecx + 0x1c]
mov ebx, dword [edx + 0x38]
add eax, ebx
mov dword [ebp - 0x18], eax
jmp 0x466384
mov ebx, str..hash
jmp 0x46640a
push esi
push esi
push ebx
push str.warning:_section__s_is_being_made_into_a_note
call dword [0x4a5380]
mov dword [esp], 0xf
call fcn.00424490
add esp, 0x10
jmp 0x464aca
push edi
push edi
push ebx
push str.could_not_find_section__s
call dword [0x4a5380]
add esp, 0x10
jmp 0x464aca
cmp edx, 0xc
je 0x466d87
ja 0x466b8d
cmp edx, 8
ja 0x4663da
lea eax, [edx - 0x11]
mov ecx, dword [ebp + 8]
cmp eax, 2
mov dword [ebp - 0x18], 0
sbb ebx, ebx
mov esi, dword [ecx + 0xa0]
and ebx, 5
add ebx, 4
cmp dword [esi + 0x214], 1
jbe 0x466384
mov edi, 1
mov eax, dword [esi + 0x40]
mov ecx, dword [eax + edi*4]
cmp dword [ecx + 4], ebx
je 0x466529
inc edi
cmp dword [esi + 0x214], edi
ja 0x4664c8
jmp 0x466384
mov ebx, str..dynsym
jmp 0x46640a
cmp edx, 0x20
je 0x4665f8
ja 0x4665cf
cmp edx, 0x1a
je 0x4665c5
ja 0x46655d
cmp edx, 0x19
jne 0x4663da
mov ebx, str..init_array
push eax
push eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.004257c0
add esp, 0x10
mov edx, eax
jmp 0x46641e
test byte [ecx + 8], 2
je 0x4664d3
cmp edx, 0x12
je 0x46654d
cmp edx, 8
je 0x46654d
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x466545
cmp eax, dword [ecx + 0xc]
jbe 0x4664d3
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x18], eax
jmp 0x4664d3
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x4664d3
cmp edx, 0x1b
je 0x4665be
cmp edx, 0x1c
jne 0x4663da
mov esi, str..fini_array
push ebx
push ebx
push esi
mov ecx, dword [ebp + 8]
push ecx
call fcn.004257c0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4665a8
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x46659d
push eax
push eax
push esi
push str.warning:__s_section_has_zero_size
call dword [0x4a5380]
add esp, 0x10
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x18], eax
jmp 0x466384
push edx
push edx
push esi
push str.could_not_find_section__s
call dword [0x4a5380]
add esp, 0x10
jmp 0x464aca
mov esi, str..init_array
jmp 0x466570
mov ebx, str..fini_array
jmp 0x466513
cmp edx, 0x6ffffff0
je 0x46660c
ja 0x4663c1
cmp edx, 0x21
je 0x466602
cmp edx, 0x6ffffef5
jne 0x4663da
mov ebx, str..gnu.hash
jmp 0x46640a
mov ebx, str..preinit_array
jmp 0x466513
mov esi, str..preinit_array
jmp 0x466570
mov ebx, str..gnu.version
jmp 0x46640a
mov ebx, str..gnu.version_d
jmp 0x46640a
mov eax, dword [esi + 0x10]
xor edx, edx
mov ecx, dword [eax + 0x24]
xor eax, eax
mov al, byte [ebx + 4]
mov dword [ebp - 0x200], eax
mov eax, ecx
div dword [ebp - 0x200]
test edx, edx
jne 0x4667f5
xor eax, eax
xor edx, edx
mov al, byte [ebx + 3]
mov dword [ebp - 0x200], eax
mov eax, ecx
div dword [ebp - 0x200]
test edx, edx
je 0x465e2d
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x4667dc
mov eax, dword [ebp - 0x114]
test eax, eax
jne 0x4667dc
push ecx
push ecx
mov edx, dword [ebp + 8]
push edx
push str._B:_Unable_to_sort_relocs___they_are_in_more_than_one_size
call dword [0x4a5380]
mov dword [esp], 5
call fcn.00424490
add esp, 0x10
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
jmp 0x4661c5
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x118], 0
mov ebx, dword [eax + 0x17c]
mov ecx, dword [ebp - 0x198]
mov ecx, dword [ecx + 0xa0]
mov dword [ebp - 0x10c], ecx
test ecx, ecx
je 0x4666f9
mov esi, ecx
cmp dword [esi + 4], 1
je 0x46671a
mov esi, dword [esi]
test esi, esi
jne 0x4666ed
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x46615d
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x4662fb
jmp 0x46615d
mov eax, dword [esi + 0x10]
xor edx, edx
mov ecx, dword [eax + 0x24]
xor eax, eax
mov al, byte [ebx + 4]
mov dword [ebp - 0x200], eax
mov eax, ecx
div dword [ebp - 0x200]
test edx, edx
jne 0x466783
xor eax, eax
xor edx, edx
mov al, byte [ebx + 3]
mov dword [ebp - 0x200], eax
mov eax, ecx
div dword [ebp - 0x200]
test edx, edx
je 0x4666f3
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x46676a
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x46667c
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x118], 1
jmp 0x4666f3
xor eax, eax
xor edx, edx
mov al, byte [ebx + 3]
mov dword [ebp - 0x200], eax
mov eax, ecx
div dword [ebp - 0x200]
test edx, edx
jne 0x4667cc
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x4667b3
cmp dword [ebp - 0x114], 1
je 0x46667c
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x118], 1
jmp 0x4666f3
push eax
push eax
mov eax, dword [ebp + 8]
push eax
push str._B:_Unable_to_sort_relocs___they_are_of_an_unknown_size
jmp 0x466687
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x118], 1
jmp 0x465e2d
xor eax, eax
xor edx, edx
mov al, byte [ebx + 3]
mov dword [ebp - 0x200], eax
mov eax, ecx
div dword [ebp - 0x200]
test edx, edx
jne 0x4667cc
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x466825
cmp dword [ebp - 0x114], 1
je 0x46667c
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x118], 1
jmp 0x465e2d
mov eax, dword [ebp - 0x1b8]
test eax, eax
je 0x466a07
push eax
push eax
mov edi, dword [ebp + 0xc]
push edi
mov esi, dword [ebp + 8]
push esi
mov edx, dword [ebp - 0x1c8]
call dword [edx + 0x9c]
add esp, 0x10
test eax, eax
je 0x464aca
mov ecx, dword [ebp + 0xc]
mov dl, byte [ecx + 3]
test dl, 0x20
je 0x466885
mov al, byte [ecx]
and eax, 3
cmp al, 3
je 0x46688a
dec al
je 0x46688a
and edx, 0x40
je 0x4668f2
push ebx
push ebx
push str..dynamic
mov ecx, dword [ebp - 0x1b8]
push ecx
call fcn.00425880
add esp, 0x10
test eax, eax
je 0x4668f2
mov ebx, dword [eax + 0x6c]
mov edx, dword [eax + 0x24]
mov esi, ebx
add esi, edx
cmp ebx, esi
jae 0x4668f2
mov edi, dword [ebp - 0x1c8]
mov edx, dword [edi + 0x17c]
lea edi, [ebp - 0x24]
push eax
push edi
push ebx
mov eax, dword [ebp - 0x1b8]
push eax
call dword [edx + 0x30]
add esp, 0x10
cmp dword [ebp - 0x24], 0x16
je 0x466b6a
mov eax, dword [ebp - 0x1c8]
mov edx, dword [eax + 0x17c]
xor eax, eax
mov al, byte [edx + 6]
add ebx, eax
cmp esi, ebx
ja 0x4668c1
mov edx, dword [ebp - 0x1b8]
mov edx, dword [edx + 0x64]
mov dword [ebp - 0x1ec], edx
test edx, edx
je 0x466a07
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [ecx + 0x14]
test ah, 1
je 0x4669f0
mov ebx, dword [ecx + 0x24]
mov dword [ebp - 0xdc], ebx
test ebx, ebx
je 0x4669f0
mov ebx, dword [ecx + 0x3c]
cmp ebx, 0x4a54f0
je 0x4669f0
test eax, 0x100000
je 0x4669f0
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x1c]
cmp dword [eax + 0xa0], ecx
je 0x4669f0
cmp dword [eax + 0xa4], ecx
je 0x4669f0
mov eax, str..dynstr
mov esi, dword [ecx]
cld
mov ecx, 8
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x466af4
mov eax, dword [ebp - 0x1ec]
sub esp, 0xc
xor esi, esi
mov ebx, dword [eax + 0x38]
mov eax, dword [ebp + 8]
push eax
call fcn.00426620
mov edx, dword [ebp - 0xdc]
pop ecx
pop edi
push edx
mov dword [ebp - 0x200], eax
mov edx, dword [ebp - 0x200]
mov eax, dword [ebp - 0x200]
imul edx, esi
mov dword [ebp - 0x1f4], edx
mov dword [ebp - 0x1fc], 0
mul ebx
mov edi, dword [ebp - 0x1f4]
mov esi, edx
add esi, edi
push esi
push eax
mov edx, dword [ebp - 0x1ec]
mov esi, dword [edx + 0x6c]
push esi
mov ebx, dword [edx + 0x3c]
push ebx
mov ecx, dword [ebp + 8]
push ecx
call fcn.004253c0
add esp, 0x20
test eax, eax
je 0x464aca
mov ebx, dword [ebp - 0x1ec]
mov ebx, dword [ebx + 0xc]
mov dword [ebp - 0x1ec], ebx
test ebx, ebx
jne 0x466909
mov edi, dword [ebp + 0xc]
mov al, byte [edi]
and eax, 3
cmp al, 2
je 0x466b3d
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax + 0xa0]
test ecx, ecx
je 0x466a41
sub eax, 0xffffff80
push edx
push edx
push eax
mov edi, dword [ebp + 8]
push edi
call fcn.00477ec0
add esp, 0x10
test eax, eax
je 0x464aca
push esi
push esi
mov ebx, dword [ebp + 0xc]
push ebx
mov ecx, dword [ebp + 8]
push ecx
call fcn.00479190
add esp, 0x10
test eax, eax
je 0x464aca
mov edx, dword [ebp - 0x1d8]
mov eax, dword [ebp + 8]
call fcn.0045bda0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xa0]
mov edx, dword [ebp - 0x194]
test edx, edx
mov eax, dword [eax + 0x934]
mov dword [eax + 0x38], 1
mov eax, 1
je 0x4642fc
sub esp, 0xc
mov eax, dword [ebp - 0x190]
push eax
call fcn.004318c0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4642fa
push edi
mov esi, dword [ebp - 0x190]
push esi
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00475da0
pop eax
mov eax, dword [ebp - 0x190]
pop edx
push eax
push 0
push 0
push ebx
mov eax, dword [ebp - 0x194]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004253c0
add esp, 0x14
push ebx
call sub.msvcrt.dll_free
mov eax, 1
add esp, 0x10
jmp 0x4642fc
push 0
mov eax, dword [ebx + 0x8c]
mov edx, dword [eax + 0x14]
push edx
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0046b220
add esp, 0x10
test eax, eax
jne 0x464aca
push eax
push eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x50]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00476220
add esp, 0x10
test eax, eax
jne 0x4669f0
jmp 0x464aca
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push edi
push eax
push 0x438b40
mov esi, dword [ebp + 8]
push esi
call fcn.004254c0
mov ebx, dword [ebp - 0x14]
add esp, 0x10
test ebx, ebx
jne 0x464aca
jmp 0x466a17
mov eax, dword [ebp + 0xc]
test byte [eax + 3], 0x40
je 0x466d92
sub esp, 0xc
mov eax, dword [eax + 0x18]
push str._P_X:_read_only_segment_has_dynamic_relocations._n
call dword [eax + 0x2c]
add esp, 0x10
jmp 0x4668f2
cmp edx, 0xd
jne 0x4663da
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x4c]
sub esp, 0xc
push 1
push 0
push 0
push eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x1c]
push eax
call fcn.0042ca90
add esp, 0x20
mov ecx, eax
test eax, eax
je 0x466db7
mov al, byte [eax + 0xc]
sub eax, 3
cmp al, 1
jbe 0x466d65
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x168]
mov edx, dword [eax + 0x17c]
xor eax, eax
mov al, byte [edx + 6]
add ecx, eax
jmp 0x46629d
xor edx, edx
div dword [ebp - 0xf4]
mov dword [ebp - 0x1cc], eax
test eax, eax
je 0x4661b1
xor eax, eax
sub esp, 0xc
mov al, byte [ebp - 0xe5]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 8]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x1cc]
mov ebx, dword [ebp - 0xf0]
imul eax, ebx
push eax
call fcn.00431920
add esp, 0x10
mov dword [ebp - 0xec], eax
test eax, eax
je 0x466eb9
mov edi, dword [ebp - 0xfc]
mov eax, dword [edi + 0x17c]
cmp byte [eax + 0xa], 0x20
setne al
and eax, 0xff
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
dec eax
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
mov al, 0
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x198]
mov eax, dword [eax + 0xa0]
mov dword [ebp - 0xe4], eax
test eax, eax
je 0x466cb3
mov edx, dword [ebp - 0xe4]
cmp dword [edx + 4], 1
je 0x466dd5
mov edi, dword [ebp - 0xe4]
mov edi, dword [edi]
mov dword [ebp - 0xe4], edi
test edi, edi
jne 0x466c91
push 0x457520
mov edi, dword [ebp - 0xf0]
push edi
mov esi, dword [ebp - 0x1cc]
push esi
mov ebx, dword [ebp - 0xec]
push ebx
call sub.msvcrt.dll_qsort
mov eax, dword [ebp - 0xec]
add esp, 0x10
cmp dword [eax + 4], 1
jne 0x466fa8
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
add eax, ecx
mov dword [ebp - 0x19c], 0
mov edx, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x1cc]
inc edx
mov ebx, eax
mov dword [ebp - 0x19c], edx
cmp dword [ebp - 0x19c], ecx
je 0x466f26
mov edx, dword [ebp - 0xf0]
cmp dword [ebx + 4], 1
lea eax, [ebx + edx]
je 0x466cfd
mov ecx, ebx
mov esi, dword [ebp - 0x19c]
mov edx, ebx
mov eax, dword [edx + 0xc]
mov edi, dword [ecx + 0xc]
xor eax, edi
test dword [ebp - 0x110], eax
je 0x466d49
mov ecx, edx
mov eax, dword [ecx + 8]
inc esi
mov dword [edx], eax
cmp dword [ebp - 0x1cc], esi
jbe 0x466f26
mov edi, dword [ebp - 0xf0]
add edx, edi
jmp 0x466d37
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x18], edx
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x466dab
mov edi, dword [ecx + 0x1c]
mov esi, dword [eax + 0x38]
add edx, edi
add edx, esi
mov dword [ebp - 0x18], edx
jmp 0x466384
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x48]
jmp 0x466b9c
mov ecx, dword [ebp + 0xc]
sub esp, 0xc
mov eax, dword [ecx + 0x18]
push str._P:_warning:_creating_a_DT_TEXTREL_in_a_shared_object._n
call dword [eax + 0x2c]
add esp, 0x10
jmp 0x4668f2
mov dword [ebp - 0x18], 0
jmp 0x466384
mov edi, dword [ebp - 0x1c8]
xor eax, eax
mov ecx, dword [ebp - 0x168]
mov edx, dword [edi + 0x17c]
mov al, byte [edx + 6]
add ecx, eax
jmp 0x46629d
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x120], ecx
mov ebx, ecx
mov ecx, dword [ecx + 0x6c]
test ecx, ecx
je 0x466ef0
mov edi, dword [ebp - 0x120]
mov eax, dword [edi + 0x24]
add eax, ecx
mov dword [ebp - 0x11c], eax
mov eax, dword [edi + 0x38]
cmp ecx, dword [ebp - 0x11c]
jae 0x466ca1
mov ebx, dword [ebp - 0x100]
xor edx, edx
imul eax, ebx
div dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0xf4]
imul eax, edx
mov edx, dword [ebp - 0xec]
add ebx, ecx
mov dword [ebp - 0x1dc], ebx
mov edi, ebx
lea esi, [eax + edx]
lea ebx, [esi + 8]
push eax
push ebx
push ecx
mov eax, dword [ebp + 8]
push eax
call dword [ebp - 0x104]
add esp, 0xc
push ebx
mov eax, dword [ebp - 0x120]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xfc]
call dword [ecx + 0x110]
mov ebx, dword [ebp - 0x110]
mov dword [esi], ebx
mov dword [esi + 4], eax
mov ebx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xf0]
add edi, ebx
add esi, eax
mov edx, dword [ebp - 0xf4]
mov eax, edi
sub eax, edx
add esp, 0x10
mov ecx, dword [ebp - 0x1dc]
cmp eax, dword [ebp - 0x11c]
jae 0x466ca1
mov edx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0xf4]
add eax, edx
mov dword [ebp - 0x1dc], eax
jmp 0x466e3e
push ecx
push ecx
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x18]
push 0
push 0
mov edx, dword [ebp + 8]
push edx
push 0
push str.Not_enough_memory_to_sort_relocations
push ebx
call dword [eax + 0x14]
add esp, 0x20
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
jmp 0x4661c5
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x466ca1
sub esp, 0xc
mov esi, dword [ebp - 0xec]
push esi
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
jmp 0x4661c5
push 0x457580
mov ecx, dword [ebp - 0xf0]
push ecx
mov eax, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x19c]
sub eax, edx
push eax
push ebx
call sub.msvcrt.dll_qsort
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebx + 0x1c]
add esp, 0x10
mov ebx, dword [edi + 0xe4]
test ebx, ebx
je 0x466f65
mov esi, dword [ebx + 0x3c]
cmp esi, dword [ebp - 0x198]
je 0x466fc3
mov eax, dword [ebp - 0x198]
mov edi, dword [eax + 0xa0]
test edi, edi
je 0x466f91
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xf8], edx
cmp dword [edi + 4], 1
je 0x467034
mov edi, dword [edi]
test edi, edi
jne 0x466f81
sub esp, 0xc
mov ecx, dword [ebp - 0xec]
push ecx
call sub.msvcrt.dll_free
add esp, 0x10
jmp 0x4661c5
mov edx, dword [ebp - 0xec]
xor esi, esi
mov ecx, edx
mov ebx, edx
mov dword [ebp - 0x19c], 0
jmp 0x466d37
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0xec]
lea eax, [edx + edx*4]
shl eax, 2
cmp dword [ecx + eax - 0x10], 4
jne 0x466f65
add ecx, eax
xor edx, edx
inc edx
cmp edx, dword [ebp - 0x1cc]
je 0x466ffc
mov eax, dword [ecx - 0x24]
sub ecx, 0x14
cmp eax, 4
je 0x466fe0
test edx, edx
je 0x466f65
mov eax, dword [ebp - 0xf4]
imul edx, eax
cmp dword [ebx + 0x24], edx
jne 0x466f65
lea ecx, [esi + 0xa0]
mov edx, dword [esi + 0xa0]
test edx, edx
je 0x4670dd
cmp dword [edx + 4], 1
je 0x4670f6
mov ecx, edx
mov eax, dword [edx]
mov edx, eax
jmp 0x46701a
mov ebx, dword [edi + 0x10]
mov esi, dword [ebp - 0xec]
xor edx, edx
mov ecx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x24]
add eax, ecx
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0xf8]
sub eax, esi
div dword [ebp - 0xf0]
mov edx, dword [ebp - 0xf4]
imul eax, edx
xor edx, edx
div dword [ebp - 0x100]
mov dword [ebx + 0x38], eax
cmp ecx, dword [ebp - 0x124]
jae 0x466f8b
mov ebx, dword [ebp - 0xf4]
add ebx, ecx
mov esi, ebx
push eax
push ecx
mov eax, dword [ebp - 0xf8]
add eax, 8
push eax
mov eax, dword [ebp + 8]
push eax
call dword [ebp - 0x108]
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf8]
add eax, edx
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf4]
add esi, eax
add esp, 0x10
mov eax, esi
mov ecx, ebx
sub eax, edx
cmp eax, dword [ebp - 0x124]
jae 0x466f8b
mov eax, dword [ebp - 0xf4]
lea ebx, [eax + ebx]
jmp 0x467085
mov ebx, dword [ebp - 0xe4]
mov dword [ecx], ebx
mov dword [ebx], 0
mov dword [esi + 0xa4], ebx
jmp 0x466f65
mov eax, dword [edx + 0x10]
cmp eax, dword [edi + 0xe4]
jne 0x46702c
mov eax, dword [edx]
mov dword [ebp - 0xe4], edx
mov dword [ecx], eax
jmp 0x467030