Function at 0x44f610
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 0x44f644
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 0x44fe66
dec dl
je 0x44fe66
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 0x44f692
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.0045e800
mov dword [ebp - 0xb4], eax
test eax, eax
je 0x44f63a
mov esi, dword [ebp - 0x1c0]
test esi, esi
jne 0x44ff05
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 0x4504f2
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x190], 0
mov eax, dword [ebp - 0x18c]
test eax, eax
je 0x44fe51
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 0x44f7b3
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 0x44f807
mov edx, dword [ebx + 0xa0]
test edx, edx
jne 0x44f7c6
jmp 0x44f7e1
mov edx, dword [edx]
test edx, edx
je 0x44f7e1
cmp dword [edx + 4], 1
jne 0x44f7c0
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 0x44f7c6
sub esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.004569c0
add esp, 0x10
mov dword [ebp - 0x190], eax
test eax, eax
jne 0x44fe22
mov eax, dword [ebx + 0x14]
or ah, 0x80
mov dword [ebx + 0x14], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x44f770
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x64]
test edi, edi
je 0x450e2a
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 0x44f88a
jmp 0x44fc95
mov ebx, dword [ebx]
test ebx, ebx
je 0x44f9a2
mov edx, dword [ebx + 4]
lea eax, [edx - 3]
cmp eax, 1
jbe 0x44fac0
dec edx
jne 0x44f880
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 0x44f8bf
mov dword [ebp - 0x1a0], 1
mov edx, dword [ebp - 0x188]
mov eax, dword [edx + 4]
cmp eax, 9
je 0x44fb78
cmp eax, 4
je 0x44fb78
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x44fc60
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 0x44f920
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 0x44f92c
mov eax, edx
cmp dword [ebp - 0xe0], eax
jae 0x44f93a
mov dword [ebp - 0xe0], eax
mov edx, dword [esi + 0x94]
mov eax, dword [edx + 4]
cmp dword [eax + 4], 5
je 0x44fba4
mov esi, dword [ebp - 0x184]
test esi, esi
je 0x44f880
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 0x44faeb
nop
lea esi, [esi]
test byte [edi + 0x19], 4
je 0x44fb91
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 0x44f88a
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x44fc95
mov eax, dword [edi + 0x14]
or eax, 4
mov dword [edi + 0x14], eax
test byte [edi + 0x14], 1
jne 0x44f9c9
test byte [edi + 0x18], 1
jne 0x44f9c9
mov dword [edi + 0x1c], 0
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x44f85c
mov eax, dword [ebp - 0x1a0]
test eax, eax
jne 0x44fe80
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 0x44feec
push edx
push edx
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0043c140
add esp, 0x10
test eax, eax
je 0x44fecb
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x64]
test esi, esi
jne 0x44fa41
jmp 0x44fcd3
mov esi, dword [esi + 0xc]
test esi, esi
je 0x44fcd3
mov ebx, dword [esi + 0x8c]
test byte [esi + 0x14], 4
je 0x44fa81
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x44fa67
lea edx, [ebx + 0x3c]
mov eax, dword [ebp + 8]
call fcn.00444e30
test eax, eax
je 0x44ffc5
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x44fa81
lea edx, [ebx + 0x4c]
mov eax, dword [ebp + 8]
call fcn.00444e30
test eax, eax
je 0x44ff94
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 0x44fa36
test byte [esi + 0x17], 8
jne 0x44fca3
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.00405b30
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 0x44f980
mov esi, dword [ebp - 0x1bc]
test esi, esi
je 0x44f980
mov eax, dword [ebp - 0x17c]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x44fb34
mov edx, dword [ebp - 0x188]
xor eax, eax
mov esi, dword [edx + 0x40]
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x44fb21
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 0x44f880
mov edx, dword [ebp - 0x188]
xor eax, eax
mov esi, dword [edx + 0x50]
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x44fb60
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 0x44f880
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x180], 0
jmp 0x44f920
mov edx, dword [ebp - 0x188]
mov ecx, dword [edx + 0x40]
add ecx, eax
mov dword [edx + 0x40], ecx
jmp 0x44f880
test byte [edx + 0x29], 8
jne 0x44f94d
mov ecx, dword [edx + 0xa0]
mov eax, dword [ecx + 0x928]
test eax, eax
je 0x44fe5e
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 0x44fbf2
mov dword [ebp - 0x1a8], eax
cmp eax, dword [ebp - 0x1a4]
jbe 0x44fc0a
mov edx, dword [ecx + 0x208]
test edx, edx
je 0x44fc0a
mov dword [ebp - 0x1a4], eax
test byte [esi + 0x14], 4
je 0x44f94d
mov ecx, dword [ebp - 0x17c]
xor edx, edx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x44fc26
mov edx, dword [eax + 0x18]
mov ecx, dword [ebp - 0x17c]
mov eax, dword [ecx + 0x4c]
test eax, eax
je 0x44fc38
mov ecx, dword [eax + 0x18]
add edx, ecx
cmp dword [ebp - 0x1b0], edx
jae 0x44fc46
mov dword [ebp - 0x1b0], edx
mov eax, dword [esi + 0x4c]
cmp eax, dword [ebp - 0x1ac]
jbe 0x44f94d
mov dword [ebp - 0x1ac], eax
jmp 0x44f94d
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ecx + 0xf4]
test eax, eax
je 0x44fb78
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 0x44f920
mov eax, dword [edi + 0x14]
and eax, 0xfffffffb
mov dword [edi + 0x14], eax
jmp 0x44f9b6
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x44faa9
sub esp, 0xc
mov edi, dword [ebx + 0x18]
push edi
call fcn.0040eae0
add esp, 0x10
test eax, eax
je 0x44ff60
mov esi, dword [esi + 0xc]
mov dword [ebx + 0x30], eax
test esi, esi
jne 0x44fa41
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 0x44ff3f
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.0040eae0
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 0x4504e1
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 0x450071
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.004335a0
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 0x4842e8
push esi
push 0
mov dword [ebp - 0x1d8], edx
push edx
call fcn.00447200
add esp, 0x20
dec eax
je 0x44ffd6
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1d8]
call fcn.004470e0
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.00404730
mov dword [ebx + 0xa0], 0
mov dword [ebp - 0x194], ebx
mov ebx, dword [ebx + 0xc]
add esp, 0x10
test ebx, ebx
jne 0x44f770
jmp 0x44f812
mov ecx, dword [ebx]
mov dword [ebp - 0x1ec], ecx
jmp 0x44f79c
mov eax, dword [ecx + 0x68]
jmp 0x44fbe4
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 0x44f65a
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx]
and eax, 3
cmp al, 2
je 0x44f9e2
push eax
mov edi, dword [ebp + 8]
push edi
push 0x445470
mov esi, dword [ecx + 0x1c]
push esi
call fcn.00412860
add esp, 0x10
jmp 0x44f9e2
sub esp, 0xc
mov edi, dword [ebp - 0xe0]
push edi
call fcn.0040eae0
add esp, 0x10
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x45008c
lea ebx, [ebp - 0xbc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1d8], ebx
mov edx, dword [ebp - 0x1d8]
call fcn.004470e0
xor eax, eax
jmp 0x44fe1a
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.00405080
add esp, 0x10
jmp 0x44fa0d
push ebx
push ebx
push str..hash
mov ecx, dword [ebp - 0x1b8]
push ecx
call fcn.00404d80
mov dword [ebp - 0xb0], eax
pop eax
pop edx
push str..gnu.version
mov eax, dword [ebp - 0x1b8]
push eax
call fcn.00404d80
add esp, 0x10
mov dword [ebp - 0xac], eax
jmp 0x44f6d5
mov eax, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x1a8]
shl eax, 2
shl edx, 5
sub edx, eax
jmp 0x44fd35
test edi, edi
je 0x450874
lea edx, [ebp - 0xbc]
mov dword [ebp - 0x1d8], edx
jmp 0x44fe0a
sub esp, 0xc
mov eax, dword [ebp - 0x1a4]
shl eax, 2
push eax
call fcn.0040eae0
add esp, 0x10
mov dword [ebp - 0x98], eax
test eax, eax
jne 0x450189
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x1d8], eax
jmp 0x44fe0a
sub esp, 0xc
mov ebx, dword [ebp - 0x1b0]
push ebx
call fcn.0040eae0
add esp, 0x10
mov dword [ebp - 0xa4], eax
test eax, eax
jne 0x45009a
lea edi, [ebp - 0xbc]
mov dword [ebp - 0x1d8], edi
jmp 0x44fe0a
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 0x45007e
mov ebx, 1
jmp 0x45001b
mov edi, dword [ebp + 8]
inc ebx
mov eax, dword [edi + 0xa0]
cmp dword [eax + 0x214], ebx
jbe 0x45007e
push eax
push eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.00433480
add esp, 0x10
mov edx, eax
test eax, eax
je 0x450009
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 0x450051
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.00447200
add esp, 0x20
dec eax
je 0x450009
jmp 0x44fe0a
cmp byte [ebp - 0xc1], 0
jne 0x44fd9c
mov eax, dword [ebp - 0xe0]
test eax, eax
jne 0x44feab
mov esi, dword [ebp - 0x1b0]
test esi, esi
jne 0x44ffa5
mov ecx, dword [ebp - 0x1ac]
test ecx, ecx
je 0x4500e1
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.0040eae0
add esp, 0x10
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x44ff94
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.0040eae0
add esp, 0x10
mov dword [ebp - 0x9c], eax
test eax, eax
je 0x44ff60
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.0040eae0
add esp, 0x10
mov dword [ebp - 0x94], eax
test eax, eax
je 0x4504e1
sub esp, 0xc
push ebx
call fcn.0040eae0
add esp, 0x10
mov dword [ebp - 0x90], eax
test eax, eax
je 0x44fecb
sub esp, 0xc
push ebx
call fcn.0040eae0
add esp, 0x10
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x44ffc5
mov esi, dword [ebp - 0x1a4]
test esi, esi
jne 0x44ff71
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x1c]
mov esi, dword [edi + 0xc8]
test esi, esi
je 0x4501fd
mov edx, esi
xor ebx, ebx
mov eax, dword [edx + 0x14]
test ah, 4
je 0x4501d1
mov ecx, dword [edx + 0x24]
test ecx, ecx
jne 0x4501c3
test ah, 1
jne 0x4501c3
mov eax, dword [edx + 0xa4]
test eax, eax
je 0x4501c3
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 0x45019d
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [esi + 0x1c]
cmp dword [ecx + 0x1ac], 1
jne 0x4501f5
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 0x45031f
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 0x450308
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 0x450430
mov eax, dword [ebp - 0x154]
inc eax
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x154]
test eax, eax
je 0x4502f0
mov edi, dword [ebp - 0x150]
test edi, edi
je 0x4502f0
mov esi, dword [ebp - 0x160]
test esi, esi
je 0x4505b6
mov ebx, dword [ebp - 0xc8]
test ebx, ebx
je 0x4505b6
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 [0x484500]
add esp, 0x20
sub esp, 0xc
push 0x11
call fcn.00405d50
xor eax, eax
add esp, 0x10
jmp 0x44f63c
mov ebx, dword [ebx]
test ebx, ebx
jne 0x45025f
mov eax, dword [ebp - 0x150]
test eax, eax
jne 0x4505d2
mov edi, dword [ebp - 0xd8]
mov edi, dword [edi + 0xc]
mov dword [ebp - 0xd8], edi
test edi, edi
jne 0x450211
sub esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.0045a820
add esp, 0x10
test eax, eax
je 0x44f63a
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx + 0x34]
mov dword [ebp - 0x1b4], ebx
test ebx, ebx
je 0x450360
mov edi, dword [ebp - 0x1b4]
mov eax, dword [edi + 0x9c]
and byte [edi + 0x2b], 0xbf
mov dword [ebp - 0x1b4], eax
test eax, eax
jne 0x450346
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x64]
mov dword [ebp - 0xd4], edx
test edx, edx
je 0x4508d0
mov ecx, dword [ebp - 0xd4]
mov esi, dword [ecx + 0xa0]
test esi, esi
jne 0x4503c6
jmp 0x4508b9
lea eax, [edx - 3]
cmp eax, 1
jbe 0x4506c7
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.00413ee0
add esp, 0x10
test eax, eax
je 0x451393
mov esi, dword [esi]
test esi, esi
je 0x4508b9
mov edx, dword [esi + 4]
cmp edx, 1
jne 0x450390
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 0x450390
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 0x45039c
test byte [ebx + 0x2b], 0x40
jne 0x4503bc
lea eax, [ebp - 0xbc]
mov edx, ebx
mov dword [ebp - 0x1d8], eax
call fcn.0044dce0
test eax, eax
je 0x44fe0a
or byte [ebx + 0x2b], 0x40
jmp 0x4503bc
mov edi, dword [ebx + 0x10]
mov esi, dword [edi + 0x94]
mov eax, dword [esi + 4]
cmp dword [eax + 4], 5
je 0x45053d
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x160], edi
inc eax
mov dword [ebp - 0x154], eax
jmp 0x450276
cmp dword [esi + 4], 3
je 0x451400
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.0040d7d0
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.004048c0
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 0x450781
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x1d8], ecx
jmp 0x44fe0a
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 0x44f9e2
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 0x450446
push eax
push eax
push edi
push esi
call fcn.00434410
add esp, 0x10
mov edx, eax
test eax, eax
je 0x450446
mov eax, dword [esi + 0xa0]
mov ecx, dword [eax + 0x214]
cmp edx, ecx
jae 0x450446
mov eax, dword [eax + 0x40]
mov eax, dword [eax + edx*4]
cmp byte [eax + 8], 0
jns 0x450446
cmp ecx, dword [eax + 0x1c]
jbe 0x450446
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0xc8], edi
inc eax
mov dword [ebp - 0x150], eax
jmp 0x450276
push eax
push eax
mov eax, dword [ebp - 0xd8]
push eax
push str._A_has_both_ordered_and_unordered_sections
call dword [0x484500]
add esp, 0x10
jmp 0x4502d9
sub esp, 0xc
mov eax, dword [ebp - 0x150]
shl eax, 2
push eax
call fcn.0040eae0
add esp, 0x10
mov edi, eax
test eax, eax
je 0x44f63a
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 0xa0]
test eax, eax
je 0x4506b3
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 0x45060f
push 0x443430
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.0040d7d0
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 0x450642
sub esp, 0xc
push edi
call sub.msvcrt.dll_free
add esp, 0x10
jmp 0x450308
push 0x443430
push 4
push 0
push edi
call sub.msvcrt.dll_qsort
add esp, 0x10
jmp 0x4506a2
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.004115b0
add esp, 0x10
mov dword [ebp - 0x13c], eax
test eax, eax
je 0x45124d
mov edx, dword [esi + 0x10]
mov eax, dword [ebx + 0x3c]
test eax, eax
mov edi, dword [edx + 8]
mov dword [ebp - 0x144], edi
je 0x451238
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 0x451291
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x88]
mov dword [ebp - 0x140], eax
test eax, eax
jne 0x45076a
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.00405080
add esp, 0x10
mov dword [ebx], 0
mov eax, dword [ebp - 0x13c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
jne 0x450842
mov edx, dword [ebp + 0xc]
mov edi, dword [esi + 8]
mov al, byte [edx]
and eax, 3
cmp al, 2
je 0x45079b
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 0x4507d7
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 0x4507ba
cmp byte [ecx + 0xa], 0x20
je 0x45136b
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 0x451340
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 0x4503bc
mov edx, dword [ebp - 0x144]
test edx, edx
je 0x450781
sub esp, 0xc
push eax
call fcn.00411800
mov dword [esp], eax
mov edi, eax
call fcn.0040eb40
add esp, 0x10
mov dword [ebp - 0x14c], eax
test eax, eax
je 0x44ff58
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.00411860
add esp, 0x10
test eax, eax
je 0x450495
dec eax
je 0x45045e
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.00405b30
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x450374
mov edx, dword [ebp + 0xc]
test byte [edx + 4], 2
jne 0x4508f7
mov ebx, dword [edx + 0x34]
test ebx, ebx
je 0x4508f7
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 5
je 0x450e61
mov ebx, dword [ebx + 0x9c]
test ebx, ebx
jne 0x4508e0
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 0x448b10
mov edi, dword [ebp + 0xc]
mov ecx, dword [edi + 0x1c]
push ecx
call fcn.0040ed30
mov edx, dword [ebp - 0x34]
add esp, 0x10
test edx, edx
jne 0x44f63a
mov eax, dword [ebp - 0x1c8]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x450983
cmp byte [ebp - 0xc1], 0
jne 0x450962
mov al, byte [edi + 1]
and eax, 0x18
cmp al, 0x18
je 0x450983
push fcn.00447200
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 0x44f63a
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 0x450baa
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x1c]
mov eax, dword [edx + 0xf8]
test eax, eax
je 0x450baa
cmp dword [eax + 0x3c], 0x484390
je 0x450baa
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x178], eax
mov al, byte [ebx]
and eax, 3
cmp al, 3
je 0x4509ec
dec al
je 0x4509ec
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x174], 0
test eax, eax
je 0x450ab7
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 0x450ab7
mov eax, dword [edi + 0x8c]
mov ebx, dword [eax + 0x60]
test ebx, ebx
jle 0x450aa6
mov esi, dword [eax + 0x5c]
test esi, esi
jg 0x450a46
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.00405080
add esp, 0x10
lea edx, [ebp - 0x5c]
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp + 8]
call fcn.00444fa0
test eax, eax
je 0x44f63a
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 0x450a82
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 0x450a1e
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x1c]
mov ebx, dword [edx + 0xc0]
test ebx, ebx
je 0x450b91
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.00433480
add esp, 0x10
mov esi, eax
test eax, eax
je 0x450b40
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.00444fa0
test eax, eax
je 0x44f63a
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 0x450b51
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 0x450ace
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 0x448b10
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x1c]
push esi
call fcn.0040ed30
mov ebx, dword [ebp - 0x34]
add esp, 0x10
test ebx, ebx
jne 0x44f63a
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [ecx + 0xd4]
test edx, edx
je 0x450c2c
cmp byte [ebp - 0xc1], 0
jne 0x450c0b
mov ebx, dword [ebp + 0xc]
mov al, byte [ebx + 1]
and eax, 0x18
cmp al, 0x18
je 0x450c2c
push fcn.00447200
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 0x44f63a
sub esp, 0xc
mov eax, dword [ebp - 0xb4]
push eax
call fcn.0045e1f0
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 0x450ec7
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0xa0]
mov eax, dword [eax + 0x90c]
test eax, eax
jne 0x450c88
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.00405080
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.0040eae0
add esp, 0x10
mov dword [ebp - 0x128], eax
test eax, eax
je 0x44f63a
mov esi, dword [ebp - 0x88]
test esi, esi
je 0x450cfb
mov eax, dword [ebp - 0xb8]
sub esp, 0xc
mov eax, dword [eax + 0x7c]
shl eax, 2
push eax
call fcn.0040eb40
add esp, 0x10
mov dword [ebp - 0x88], eax
test eax, eax
je 0x451192
mov ecx, dword [ebp - 0x12c]
mov edi, dword [ecx + 0x54]
test edi, edi
je 0x450d94
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 0x451178
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 0x450d18
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.004106a0
add esp, 0x10
test eax, eax
jne 0x450df4
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.00410490
add esp, 0x10
cmp eax, ebx
je 0x450e96
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 0x44f63c
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 0x44f9e2
mov eax, dword [ebx + 0xa0]
mov eax, dword [eax + 0x24c]
test eax, eax
je 0x4508ed
sub esp, 0xc
push eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0xa0]
add esp, 0x10
mov dword [eax + 0x24c], 0
jmp 0x4508ed
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 0x450ff3
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 0x450f21
mov edi, dword [ebx]
test edi, edi
jne 0x4511ab
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.0045e0e0
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.004335a0
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.004106a0
add esp, 0x10
test eax, eax
jne 0x44f63a
push eax
push eax
mov eax, dword [ebp - 0xb4]
push eax
push ebx
call fcn.0045e390
add esp, 0x10
test eax, eax
je 0x44f63a
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x64]
test ebx, ebx
je 0x451073
mov esi, dword [ebx + 0x8c]
test byte [ebx + 0x14], 4
je 0x45106c
mov edx, dword [ebp - 0x1c8]
mov eax, dword [edx + 0xfc]
test eax, eax
je 0x451028
sub esp, 0xc
xor edi, edi
push ebx
call eax
add esp, 0x10
test eax, eax
je 0x45102d
mov edi, 1
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x451049
lea edx, [esi + 0x3c]
mov ecx, edi
mov eax, dword [ebp + 8]
call fcn.00446b30
test eax, eax
je 0x44f63a
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x451065
lea edx, [esi + 0x4c]
mov ecx, edi
mov eax, dword [ebp + 8]
call fcn.00446b30
test eax, eax
je 0x44f63a
mov dword [ebx + 0x4c], 0
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x450ffd
mov ebx, dword [ebp - 0x1c0]
test ebx, ebx
je 0x451b7e
mov ecx, dword [ebp + 0xc]
test byte [ecx + 4], 8
je 0x4514f1
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
je 0x4514f1
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.0040d7d0
mov dword [ebp - 0x100], eax
pop eax
pop edx
push str..rela.dyn
push ebx
call fcn.00404cc0
mov dword [ebp - 0xd0], eax
pop edi
pop eax
push str..rel.dyn
push ebx
call fcn.00404cc0
mov esi, dword [ebp - 0xd0]
add esp, 0x10
mov dword [ebp - 0x198], eax
test esi, esi
je 0x4515f4
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x4515f4
mov ebx, dword [ebp - 0x198]
test ebx, ebx
je 0x45147d
mov ecx, dword [ebp - 0x198]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x45147d
mov edi, dword [edx + 0xa0]
test edi, edi
je 0x4519f5
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 0x451960
mov esi, dword [esi]
test esi, esi
jne 0x451163
jmp 0x451a15
push edx
push edx
push eax
mov edi, dword [ebp - 0xb4]
push edi
call fcn.0045e460
add esp, 0x10
mov dword [ebx + 8], eax
jmp 0x450d38
sub esp, 0xc
mov ebx, dword [ebp - 0x128]
push ebx
call sub.msvcrt.dll_free
xor eax, eax
add esp, 0x10
jmp 0x44f63c
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.004335a0
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.004106a0
add esp, 0x20
test eax, eax
jne 0x44f63a
push eax
mov eax, dword [ebp + 8]
push eax
push esi
mov edi, dword [ebp - 0x88]
push edi
call fcn.00410490
add esp, 0x10
cmp eax, esi
jne 0x44f63a
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0xa0]
jmp 0x450f21
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x45126b
add ebx, 0x4c
mov dword [ebp - 0x148], ebx
jmp 0x450724
sub esp, 0xc
lea ebx, [ebp - 0xbc]
push 0x11
call fcn.00405d50
add esp, 0x10
mov dword [ebp - 0x1d8], ebx
jmp 0x44fe0a
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.00405080
mov dword [ebp - 0x148], 0
add esp, 0x10
mov edx, dword [esi + 0x10]
jmp 0x450724
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.00413990
add esp, 0x20
mov edx, eax
test eax, eax
je 0x451314
mov al, byte [eax + 0xc]
sub eax, 3
cmp al, 1
jbe 0x4512d5
mov dword [edx + 0x1c], 0xfffffffe
mov dword [ebx], edx
mov dword [ebp - 0x140], 0
jmp 0x450770
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 0x450770
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 0x450770
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 0x450830
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 0x4507ec
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x1d8], eax
cmp dword [esi + 4], 1
jne 0x44fe0a
mov edx, dword [ebp - 0x1b4]
mov eax, dword [edx + 4]
cmp dword [eax + 4], 5
jne 0x44fe0a
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 0x44fecb
cmp al, 1
je 0x451438
jb 0x45140d
mov esi, str.ELFCLASS64
cmp al, 2
je 0x451412
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.00405b30
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov edx, dword [eax]
jmp 0x45046e
mov esi, str.ELFCLASSNONE
cmp dl, 1
je 0x451476
jb 0x45143f
mov ebx, str.ELFCLASS64
cmp dl, 2
je 0x451444
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.00405b30
mov esi, str.ELFCLASS32
jmp 0x451412
mov ebx, str.ELFCLASSNONE
sub esp, 0xc
lea edi, [ebp - 0xbc]
push 3
call fcn.00405d50
push esi
push ebx
mov esi, dword [ebp - 0x1b4]
push esi
push str._B:_file_class__s_incompatible_with__s
call dword [0x484500]
add esp, 0x20
mov dword [ebp - 0x1d8], edi
jmp 0x44fe0a
mov ebx, str.ELFCLASS32
jmp 0x451444
test eax, eax
je 0x4515f4
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 0x4514e0
cmp dword [edi + 4], 1
jne 0x4514da
mov eax, dword [edi + 0x10]
mov esi, dword [eax + 0x24]
add edx, esi
mov edi, dword [edi]
test edi, edi
jne 0x4514cc
mov ecx, dword [ebp - 0x198]
mov eax, dword [ecx + 0x24]
cmp eax, edx
je 0x451f2b
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.00404d80
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x451535
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.00405080
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 0x451b7e
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 0x45182b
cmp edx, 0x11
jae 0x4517d8
cmp edx, 6
je 0x451821
ja 0x4517c0
cmp edx, 4
je 0x451781
ja 0x451745
test edx, edx
jne 0x45171a
mov eax, dword [ebp - 0x19c]
test eax, eax
jne 0x451663
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 0x451b7e
mov dword [ebp - 0x168], ecx
jmp 0x451561
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x19c], 0
test eax, eax
je 0x451505
mov edx, dword [ebp - 0x198]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x4514f1
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 0x4514c6
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 0x451b7e
mov edi, dword [ebp - 0x198]
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + 4]
cmp eax, 4
je 0x451739
cmp eax, 9
jne 0x4515dd
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 0x4515dd
cmp edx, 0x6ffffffc
je 0x451956
mov ebx, str..gnu.version_r
cmp edx, 0x6ffffffe
je 0x45174a
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 0x4515dd
mov dword [ebp - 0x1c], 0x6ffffff9
jmp 0x4516b1
mov ebx, str..dynstr
push eax
push eax
push ebx
mov eax, dword [ebp - 0x1b8]
push eax
call fcn.00404d80
add esp, 0x10
mov edx, eax
test edx, edx
je 0x4517aa
mov ecx, dword [edx + 0x3c]
mov eax, dword [ecx + 0x8c]
cmp dword [eax + 4], 7
je 0x451788
mov eax, dword [ecx + 0x1c]
mov ebx, dword [edx + 0x38]
add eax, ebx
mov dword [ebp - 0x18], eax
jmp 0x4516c4
mov ebx, str..hash
jmp 0x45174a
push esi
push esi
push ebx
push str.warning:_section__s_is_being_made_into_a_note
call dword [0x484500]
mov dword [esp], 0xf
call fcn.00405d50
add esp, 0x10
jmp 0x44fe0a
push edi
push edi
push ebx
push str.could_not_find_section__s
call dword [0x484500]
add esp, 0x10
jmp 0x44fe0a
cmp edx, 0xc
je 0x4520c7
ja 0x451ecd
cmp edx, 8
ja 0x45171a
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 0x4516c4
mov edi, 1
mov eax, dword [esi + 0x40]
mov ecx, dword [eax + edi*4]
cmp dword [ecx + 4], ebx
je 0x451869
inc edi
cmp dword [esi + 0x214], edi
ja 0x451808
jmp 0x4516c4
mov ebx, str..dynsym
jmp 0x45174a
cmp edx, 0x20
je 0x451938
ja 0x45190f
cmp edx, 0x1a
je 0x451905
ja 0x45189d
cmp edx, 0x19
jne 0x45171a
mov ebx, str..init_array
push eax
push eax
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.00404cc0
add esp, 0x10
mov edx, eax
jmp 0x45175e
test byte [ecx + 8], 2
je 0x451813
cmp edx, 0x12
je 0x45188d
cmp edx, 8
je 0x45188d
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x451885
cmp eax, dword [ecx + 0xc]
jbe 0x451813
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x18], eax
jmp 0x451813
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x451813
cmp edx, 0x1b
je 0x4518fe
cmp edx, 0x1c
jne 0x45171a
mov esi, str..fini_array
push ebx
push ebx
push esi
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404cc0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x4518e8
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x4518dd
push eax
push eax
push esi
push str.warning:__s_section_has_zero_size
call dword [0x484500]
add esp, 0x10
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x18], eax
jmp 0x4516c4
push edx
push edx
push esi
push str.could_not_find_section__s
call dword [0x484500]
add esp, 0x10
jmp 0x44fe0a
mov esi, str..init_array
jmp 0x4518b0
mov ebx, str..fini_array
jmp 0x451853
cmp edx, 0x6ffffff0
je 0x45194c
ja 0x451701
cmp edx, 0x21
je 0x451942
cmp edx, 0x6ffffef5
jne 0x45171a
mov ebx, str..gnu.hash
jmp 0x45174a
mov ebx, str..preinit_array
jmp 0x451853
mov esi, str..preinit_array
jmp 0x4518b0
mov ebx, str..gnu.version
jmp 0x45174a
mov ebx, str..gnu.version_d
jmp 0x45174a
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 0x451b35
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 0x45116d
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x451b1c
mov eax, dword [ebp - 0x114]
test eax, eax
jne 0x451b1c
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 [0x484500]
mov dword [esp], 5
call fcn.00405d50
add esp, 0x10
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
jmp 0x451505
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 0x451a39
mov esi, ecx
cmp dword [esi + 4], 1
je 0x451a5a
mov esi, dword [esi]
test esi, esi
jne 0x451a2d
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x45149d
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x45163b
jmp 0x45149d
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 0x451ac3
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 0x451a33
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x451aaa
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x4519bc
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x118], 1
jmp 0x451a33
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 0x451b0c
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x451af3
cmp dword [ebp - 0x114], 1
je 0x4519bc
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x118], 1
jmp 0x451a33
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 0x4519c7
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x118], 1
jmp 0x45116d
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 0x451b0c
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x451b65
cmp dword [ebp - 0x114], 1
je 0x4519bc
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x118], 1
jmp 0x45116d
mov eax, dword [ebp - 0x1b8]
test eax, eax
je 0x451d47
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 0x44fe0a
mov ecx, dword [ebp + 0xc]
mov dl, byte [ecx + 3]
test dl, 0x20
je 0x451bc5
mov al, byte [ecx]
and eax, 3
cmp al, 3
je 0x451bca
dec al
je 0x451bca
and edx, 0x40
je 0x451c32
push ebx
push ebx
push str..dynamic
mov ecx, dword [ebp - 0x1b8]
push ecx
call fcn.00404d80
add esp, 0x10
test eax, eax
je 0x451c32
mov ebx, dword [eax + 0x6c]
mov edx, dword [eax + 0x24]
mov esi, ebx
add esi, edx
cmp ebx, esi
jae 0x451c32
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 0x451eaa
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 0x451c01
mov edx, dword [ebp - 0x1b8]
mov edx, dword [edx + 0x64]
mov dword [ebp - 0x1ec], edx
test edx, edx
je 0x451d47
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [ecx + 0x14]
test ah, 1
je 0x451d30
mov ebx, dword [ecx + 0x24]
mov dword [ebp - 0xdc], ebx
test ebx, ebx
je 0x451d30
mov ebx, dword [ecx + 0x3c]
cmp ebx, 0x484390
je 0x451d30
test eax, 0x100000
je 0x451d30
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x1c]
cmp dword [eax + 0xa0], ecx
je 0x451d30
cmp dword [eax + 0xa4], ecx
je 0x451d30
mov eax, str..dynstr
mov esi, dword [ecx]
cld
mov ecx, 8
mov edi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x451e34
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.0040d7d0
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.004048c0
add esp, 0x20
test eax, eax
je 0x44fe0a
mov ebx, dword [ebp - 0x1ec]
mov ebx, dword [ebx + 0xc]
mov dword [ebp - 0x1ec], ebx
test ebx, ebx
jne 0x451c49
mov edi, dword [ebp + 0xc]
mov al, byte [edi]
and eax, 3
cmp al, 2
je 0x451e7d
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax + 0xa0]
test ecx, ecx
je 0x451d81
sub eax, 0xffffff80
push edx
push edx
push eax
mov edi, dword [ebp + 8]
push edi
call fcn.00460030
add esp, 0x10
test eax, eax
je 0x44fe0a
push esi
push esi
mov ebx, dword [ebp + 0xc]
push ebx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0045aa90
add esp, 0x10
test eax, eax
je 0x44fe0a
mov edx, dword [ebp - 0x1d8]
mov eax, dword [ebp + 8]
call fcn.004470e0
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 0x44f63c
sub esp, 0xc
mov eax, dword [ebp - 0x190]
push eax
call fcn.0040eae0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x44f63a
push edi
mov esi, dword [ebp - 0x190]
push esi
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00457100
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.004048c0
add esp, 0x14
push ebx
call sub.msvcrt.dll_free
mov eax, 1
add esp, 0x10
jmp 0x44f63c
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.004106a0
add esp, 0x10
test eax, eax
jne 0x44fe0a
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.0045e390
add esp, 0x10
test eax, eax
jne 0x451d30
jmp 0x44fe0a
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push edi
push eax
push 0x4383b0
mov esi, dword [ebp + 8]
push esi
call fcn.004049c0
mov ebx, dword [ebp - 0x14]
add esp, 0x10
test ebx, ebx
jne 0x44fe0a
jmp 0x451d57
mov eax, dword [ebp + 0xc]
test byte [eax + 3], 0x40
je 0x4520d2
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 0x451c32
cmp edx, 0xd
jne 0x45171a
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.00413390
add esp, 0x20
mov ecx, eax
test eax, eax
je 0x4520f7
mov al, byte [eax + 0xc]
sub eax, 3
cmp al, 1
jbe 0x4520a5
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 0x4515dd
xor edx, edx
div dword [ebp - 0xf4]
mov dword [ebp - 0x1cc], eax
test eax, eax
je 0x4514f1
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.0040eb40
add esp, 0x10
mov dword [ebp - 0xec], eax
test eax, eax
je 0x4521f9
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 0x451ff3
mov edx, dword [ebp - 0xe4]
cmp dword [edx + 4], 1
je 0x452115
mov edi, dword [ebp - 0xe4]
mov edi, dword [edi]
mov dword [ebp - 0xe4], edi
test edi, edi
jne 0x451fd1
push 0x442860
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 0x4522e8
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 0x452266
mov edx, dword [ebp - 0xf0]
cmp dword [ebx + 4], 1
lea eax, [ebx + edx]
je 0x45203d
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 0x452089
mov ecx, edx
mov eax, dword [ecx + 8]
inc esi
mov dword [edx], eax
cmp dword [ebp - 0x1cc], esi
jbe 0x452266
mov edi, dword [ebp - 0xf0]
add edx, edi
jmp 0x452077
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x18], edx
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4520eb
mov edi, dword [ecx + 0x1c]
mov esi, dword [eax + 0x38]
add edx, edi
add edx, esi
mov dword [ebp - 0x18], edx
jmp 0x4516c4
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x48]
jmp 0x451edc
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 0x451c32
mov dword [ebp - 0x18], 0
jmp 0x4516c4
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 0x4515dd
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x120], ecx
mov ebx, ecx
mov ecx, dword [ecx + 0x6c]
test ecx, ecx
je 0x452230
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 0x451fe1
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 0x451fe1
mov edx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0xf4]
add eax, edx
mov dword [ebp - 0x1dc], eax
jmp 0x45217e
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 0x451505
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x451fe1
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 0x451505
push 0x4428c0
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 0x4522a5
mov esi, dword [ebx + 0x3c]
cmp esi, dword [ebp - 0x198]
je 0x452303
mov eax, dword [ebp - 0x198]
mov edi, dword [eax + 0xa0]
test edi, edi
je 0x4522d1
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xf8], edx
cmp dword [edi + 4], 1
je 0x452374
mov edi, dword [edi]
test edi, edi
jne 0x4522c1
sub esp, 0xc
mov ecx, dword [ebp - 0xec]
push ecx
call sub.msvcrt.dll_free
add esp, 0x10
jmp 0x451505
mov edx, dword [ebp - 0xec]
xor esi, esi
mov ecx, edx
mov ebx, edx
mov dword [ebp - 0x19c], 0
jmp 0x452077
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 0x4522a5
add ecx, eax
xor edx, edx
inc edx
cmp edx, dword [ebp - 0x1cc]
je 0x45233c
mov eax, dword [ecx - 0x24]
sub ecx, 0x14
cmp eax, 4
je 0x452320
test edx, edx
je 0x4522a5
mov eax, dword [ebp - 0xf4]
imul edx, eax
cmp dword [ebx + 0x24], edx
jne 0x4522a5
lea ecx, [esi + 0xa0]
mov edx, dword [esi + 0xa0]
test edx, edx
je 0x45241d
cmp dword [edx + 4], 1
je 0x452436
mov ecx, edx
mov eax, dword [edx]
mov edx, eax
jmp 0x45235a
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 0x4522cb
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 0x4522cb
mov eax, dword [ebp - 0xf4]
lea ebx, [eax + ebx]
jmp 0x4523c5
mov ebx, dword [ebp - 0xe4]
mov dword [ecx], ebx
mov dword [ebx], 0
mov dword [esi + 0xa4], ebx
jmp 0x4522a5
mov eax, dword [edx + 0x10]
cmp eax, dword [edi + 0xe4]
jne 0x45236c
mov eax, dword [edx]
mov dword [ebp - 0xe4], edx
mov dword [ecx], eax
jmp 0x452370