Function at 0x511150
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov edi, edx
mov ebx, ecx
cmp byte [ecx + 0x188], 0
je 0x51120c
lea ecx, [ebx + 0x148]
call fcn.0050d8f0
test eax, eax
je 0x51120c
mov esi, eax
mov dword [esp + 0x1c], ebx
mov ebx, dword [edi + 4]
lea eax, [edx - 1]
cmp eax, ebx
jae 0x5112ab
mov dword [esp + 0x60], str.index_is_greater_than_or_equal_to_the_number_of_dynamic_symbols__
mov dword [esp + 0x68], edx
mov word [esp + 0x70], 0x803
lea eax, [esp + 0x60]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], 0x5580d8
mov word [esp + 0x48], 0x302
mov dword [esp + 0x4c], str.unable_to_get_name_of_the_dynamic_symbol_with_index
mov dword [esp + 0x54], ebx
mov word [esp + 0x5c], 0x803
lea eax, [esp + 0x4c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], 0x558038
mov word [esp + 0x30], 0x302
lea eax, [esp + 0x20]
mov dword [esp + 4], eax
lea eax, [esp + 0x38]
mov dword [esp + 0xc], eax
mov word [esp + 0x14], 0x202
lea eax, [esp + 4]
mov ebx, dword [esp + 0x1c]
jmp 0x511254
mov eax, dword [edi + 4]
mov dword [esp + 0x4c], str.unable_to_get_name_of_the_dynamic_symbol_with_index
mov dword [esp + 0x54], eax
mov word [esp + 0x5c], 0x803
lea eax, [esp + 0x4c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], 0x558038
mov word [esp + 0x30], 0x302
lea eax, [esp + 0x20]
mov dword [esp + 4], eax
mov dword [esp + 0xc], str.no_dynamic_symbol_table_found
mov word [esp + 0x14], 0x302
lea eax, [esp + 4]
mov ecx, ebx
push eax
call fcn.0053aad0
mov dword [esp + 4], 0
mov byte [esp + 8], 0x12
mov dword [esp + 9], 0x726f633c
mov dword [esp + 0xd], 0x74707572
mov word [esp + 0x11], 0x3e
mov eax, dword [ebx]
lea edx, [esp + 4]
mov ecx, ebx
push edx
push edi
call dword [eax + 0x104]
test byte [esp + 8], 1
je 0x5112a3
push dword [esp + 0x10]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0
mov eax, dword [eax + 0x1c]
mov ecx, esi
sub ecx, eax
mov edx, 0x18
mov eax, ebx
mul edx
mov edi, ecx
sar edi, 0x1f
add eax, ecx
adc edx, edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
add eax, 0x18
adc edx, 0
xor ecx, ecx
cmp dword [esp + 0x18], eax
sbb ecx, edx
jae 0x5113f9
mov dword [esp + 0x8c], str.symbol_at_0x
lea eax, [esp + 0x78]
mov dword [esp + 0x94], eax
mov word [esp + 0x9c], 0xe03
lea eax, [esp + 0x8c]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], str._goes_past_the_end_of_the_file__0x
mov word [esp + 0xb0], 0x302
lea eax, [esp + 0xa0]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x68], eax
mov word [esp + 0x70], 0xe02
lea eax, [esp + 0x60]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], 0x5580d8
mov word [esp + 0x48], 0x302
mov dword [esp + 0x4c], str.unable_to_get_name_of_the_dynamic_symbol_with_index
mov dword [esp + 0x54], ebx
mov word [esp + 0x5c], 0x803
lea eax, [esp + 0x4c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], 0x558038
mov word [esp + 0x30], 0x302
lea eax, [esp + 0x20]
mov dword [esp + 4], eax
lea eax, [esp + 0x38]
mov dword [esp + 0xc], eax
mov word [esp + 0x14], 0x202
lea eax, [esp + 4]
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
push eax
call fcn.0053aad0
mov dword [esp + 4], 0
mov byte [esp + 8], 0x12
mov dword [esp + 9], 0x726f633c
mov dword [esp + 0xd], 0x74707572
mov word [esp + 0x11], 0x3e
mov edi, dword [esp + 0x34]
jmp 0x511280
lea eax, [ebx + ebx*2]
lea esi, [esi + eax*8]
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [eax + 0x210]
movsd qword [esp + 0xa0], xmm0
sub esp, 0xc
movsd qword [esp + 4], xmm0
mov dword [esp], esi
lea ecx, [esp + 0x44]
call fcn.005093d0
test byte [esp + 0x40], 1
jne 0x51147a
test ebx, ebx
cmove esi, ebx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov eax, dword [0x5657e4]
cmp byte [eax], 0
mov edi, dword [esp + 0x34]
je 0x511546
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
sub esp, 0xc
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x2c]
mov dword [esp], eax
call fcn.00550ab6
add esp, 0xc
jmp 0x5115cb
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], 0
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x8c]
mov ebx, esi
lea esi, [esp + 0x60]
push eax
push esi
call fcn.00550abc
add esp, 8
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 4]
mov dword [esp + 0x4c], str.unable_to_get_name_of_the_dynamic_symbol_with_index
mov dword [esp + 0x54], eax
mov word [esp + 0x5c], 0x803
lea eax, [esp + 0x4c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], 0x558038
mov word [esp + 0x30], 0x302
lea eax, [esp + 0x20]
mov dword [esp + 4], eax
mov dword [esp + 0xc], esi
mov word [esp + 0x14], 0x402
lea eax, [esp + 4]
mov esi, dword [esp + 0x1c]
mov ecx, esi
push eax
call fcn.0053aad0
mov dword [esp + 4], ebx
mov byte [esp + 8], 0x12
mov dword [esp + 9], 0x726f633c
mov dword [esp + 0xd], 0x74707572
mov word [esp + 0x11], 0x3e
test byte [esp + 0x60], 1
mov ebx, esi
je 0x51152d
push dword [esp + 0x68]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x51167c
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x51167c
test ecx, ecx
je 0x51156a
cmp ebx, 0xfffffff0
jae 0x5116a5
cmp ebx, 0xb
jae 0x511584
mov eax, ebx
add al, bl
mov byte [esp + 0x20], al
lea eax, [esp + 0x21]
test ebx, ebx
jne 0x5115b4
jmp 0x5115c7
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
jmp 0x5115cb
mov dword [esp + 0x18], esi
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
mov dword [esp + 0x78], ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, dword [esp + 0x78]
add esp, 4
mov dword [esp + 0x28], eax
add esi, 2
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], eax
push ebx
push ecx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x24]
add esp, 0xc
mov byte [eax + ebx], 0
movzx ebx, byte [esp + 0x20]
mov eax, ebx
and al, 1
je 0x5115e0
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
jmp 0x5115e6
shr ebx, 1
lea edx, [esp + 0x21]
mov dword [esp + 4], esi
lea ecx, [esp + 8]
test edx, edx
je 0x511612
cmp ebx, 0xfffffff0
jae 0x5116a9
cmp ebx, 0xb
jae 0x511628
mov eax, ebx
add al, bl
mov byte [esp + 8], al
lea esi, [esp + 9]
test ebx, ebx
jne 0x511652
jmp 0x51165d
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 8], 0
jmp 0x511668
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
mov dword [esp + 0x1c], edx
call sub.libc.dll_operator_new_unsigned_int_
mov edx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x10], eax
add esi, 2
mov dword [esp + 8], esi
mov esi, eax
mov dword [esp + 0xc], ebx
push ebx
push edx
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
movzx eax, byte [esp + 0x20]
and al, 1
test al, al
mov ebx, dword [esp + 0x1c]
je 0x51167c
push dword [esp + 0x28]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x40], 1
je 0x511280
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x38], 0
test ecx, ecx
je 0x511280
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x511280
lea ecx, [esp + 0x20]
call fcn.00407790
int3