Function at 0x5109a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebx
sub esp, 0x18
call fcn.00510500
mov ebx, dword [esp + 0x20]
add dword [eax + 4], 1
mov eax, dword [esp + 0x24]
mov dword [ebx - 0x60], 0
sub ebx, 0x20
mov dword [ebx - 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [ebx - 0x2c], eax
call fcn.00507c90
mov dword [ebx - 0x28], eax
call fcn.005070f0
mov dword [ebx], 0x432b2b00
mov dword [ebx - 0x24], eax
mov dword [ebx + 4], 0x474e5543
mov dword [ebx + 8], 0x427220
mov dword [ebx - 0x40], 1
mov dword [esp], ebx
call fcn.00415790
mov dword [esp], ebx
call fcn.00510130
call fcn.0050ad70
nop
nop
nop
nop
nop
nop
nop
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
lea eax, [esp + 0x5c]
mov ebp, dword [esp + 0xdc]
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x74], 0x5109a0
mov dword [esp], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x78], 0x514b08
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], 0x5112ae
mov dword [esp + 0x84], esp
call fcn.004155c0
cmp dword [esp + 0xd0], 1
mov dword [esp + 0x90], 0
jne 0x510a98
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, 0
add edi, 0xbcd4d500
adc ebp, 0xb8b1aabc
cmp dword [esp + 0xd0], edi
mov dword [esp + 0x38], edi
sbb eax, ebp
mov dword [esp + 0x3c], ebp
setae byte [esp + 0x20]
cmp dword [esp + 0xd4], 6
movzx ecx, byte [esp + 0x20]
sete al
and al, cl
mov byte [esp + 0x4d], al
je 0x510ac0
mov eax, dword [esp + 0xe0]
mov eax, dword [eax - 0x18]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xe0]
mov eax, dword [eax - 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe0]
mov eax, dword [eax - 0xc]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x510c00
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.005101b0
lea esi, [esi]
nop
mov dword [esp + 0x18], 3
lea eax, [esp + 0x5c]
mov dword [esp], eax
call fcn.00415650
mov eax, dword [esp + 0x18]
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
call fcn.00415740
mov dword [esp + 0x30], eax
test eax, eax
je 0x510c88
mov edx, eax
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0x98]
mov dword [esp + 0x60], 0xffffffff
call fcn.00426fb0
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0xac]
mov byte [esp + 0x4e], al
cmp al, 0xff
je 0x510c99
and eax, 0x70
cmp al, 0x30
je 0x5111d0
ja 0x510cc0
cmp al, 0x20
jne 0x510cb0
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
call fcn.00415780
mov dword [esp + 0x34], eax
lea esi, [esi]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.00415700
cmp dword [esp + 0x90], 1
sbb eax, 0
mov esi, eax
test eax, eax
js 0x510c88
jne 0x510ce8
mov eax, dword [esp + 0xd4]
and eax, 1
je 0x510ec0
mov dword [esp + 0x2c], 0
xor edx, edx
xor ebp, ebp
mov ecx, dword [esp + 0x38]
mov eax, 1
mov ebx, dword [esp + 0x3c]
cmp eax, ecx
mov eax, 0
sbb eax, ebx
jb 0x510bea
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x2c]
mov dword [eax - 0x18], edi
mov edi, dword [esp + 0x30]
mov dword [eax - 0x14], ebp
mov dword [eax - 0x10], edi
mov dword [eax - 8], edx
mov dword [eax - 0xc], esi
mov dword [esp + 0x18], 6
jmp 0x510aa0
mov edx, dword [esp + 0x2c]
test edx, edx
js 0x510ee6
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], 0
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.004156d0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.004156d0
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.00415720
mov dword [esp + 0x18], 7
jmp 0x510aa0
mov dword [esp + 0x18], 8
jmp 0x510aa0
cmp al, 0x50
jne 0x510cb2
mov dword [esp + 0x34], 0
jmp 0x510b50
jbe 0x510c99
mov dword [esp + 0x60], 0xffffffff
call sub.msvcrt.dll_abort
nop
cmp al, 0x40
jne 0x510c95
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
call fcn.00415750
mov dword [esp + 0x34], eax
jmp 0x510b50
mov eax, dword [esp + 0x18]
lea esi, [esi]
xor edi, edi
xor ecx, ecx
lea esi, [esi]
movzx ebx, byte [eax]
add eax, 1
mov edx, ebx
and edx, 0x7f
shl edx, cl
add ecx, 7
or edi, edx
test bl, bl
js 0x510cf8
xor ebp, ebp
xor ecx, ecx
lea esi, [esi]
movzx ebx, byte [eax]
add eax, 1
mov edx, ebx
and edx, 0x7f
shl edx, cl
add ecx, 7
or ebp, edx
test bl, bl
js 0x510d18
sub esi, 1
jne 0x510cf0
lea eax, [edi + 1]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x40], eax
test ebp, ebp
je 0x510e73
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0xa8]
test edx, edx
je 0x510c88
lea ebp, [eax + ebp - 1]
test ebp, ebp
je 0x511287
mov eax, dword [esp + 0xe0]
lea edx, [eax + 0x20]
test byte [eax], 1
je 0x510d77
mov edx, dword [eax - 0x30]
movzx eax, byte [esp + 0x4e]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov eax, dword [edx - 0x50]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xd4]
and eax, 8
mov dword [esp + 0x58], eax
sete al
and al, byte [esp + 0x20]
mov byte [esp + 0x4f], al
mov eax, ebp
lea esi, [esi]
xor esi, esi
xor ecx, ecx
mov ebx, eax
lea esi, [esi]
lea esi, [esi]
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or esi, eax
test dl, dl
js 0x510dc0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], esi
cmp ecx, 0x1f
ja 0x510df7
and edx, 0x40
je 0x510df7
mov eax, 1
shl eax, cl
neg eax
or esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x2c], eax
lea esi, [esi]
nop
movzx ebx, byte [edx]
add edx, 1
mov eax, ebx
and eax, 0x7f
shl eax, cl
add ecx, 7
or esi, eax
test bl, bl
js 0x510e10
mov dword [esp + 0x20], esi
cmp ecx, 0x1f
ja 0x510f68
and ebx, 0x40
je 0x510f68
mov eax, 1
shl eax, cl
neg eax
or esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], esi
test eax, eax
jne 0x510fd8
mov byte [esp + 0x4d], 1
lea esi, [esi]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
add eax, edi
mov dword [esp + 0x28], eax
jmp 0x510db0
test eax, eax
je 0x510c88
mov eax, dword [esp + 0xd4]
and eax, 1
mov dword [esp + 0x2c], eax
jne 0x510c88
test byte [esp + 0xd4], 8
jne 0x510c14
mov edi, dword [esp + 0x38]
mov eax, 1
mov ebp, dword [esp + 0x3c]
cmp eax, edi
mov eax, dword [esp + 0x18]
sbb eax, ebp
jb 0x510c14
jmp 0x510c0c
test byte [esp + 0xd4], 8
jne 0x510ee1
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov edx, 1
cmp edx, edi
sbb eax, ebp
jae 0x510a84
call fcn.0050ad70
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0xe4]
lea ecx, [esp + 0x98]
mov dword [esp + 0x60], 0xffffffff
call fcn.00426fb0
movzx eax, byte [esp + 0xac]
cmp al, 0xff
je 0x51120d
and eax, 0x70
cmp al, 0x30
je 0x51125c
ja 0x51122d
cmp al, 0x20
jne 0x511214
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
call fcn.00415780
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.00415780
mov edi, dword [esp + 0xe0]
mov dword [edi - 0xc], eax
jmp 0x510c0c
mov ebp, dword [esp + 0x18]
test ebp, ebp
jne 0x510fd8
mov byte [esp + 0x4d], 1
mov ebx, dword [esp + 0x20]
test ebx, ebx
jne 0x510e60
cmp byte [esp + 0x4d], 0
je 0x510c88
mov eax, dword [esp + 0xd4]
and eax, 1
mov dword [esp + 0x2c], eax
jne 0x510c88
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x38]
mov eax, 1
mov ebp, dword [esp + 0x3c]
cmp eax, edi
mov eax, 0
sbb eax, ebp
jb 0x510c14
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x510c14
jmp 0x510c0c
mov edi, dword [esp + 0x18]
test edi, edi
jg 0x511080
mov esi, dword [esp + 0x44]
test esi, esi
je 0x510ff7
cmp byte [esp + 0x4f], 0
jne 0x511198
mov edx, dword [esp + 0x18]
xor esi, esi
xor ecx, ecx
not edx
add edx, dword [esp + 0xa4]
lea esi, [esi]
nop
movzx ebx, byte [edx]
add edx, 1
mov eax, ebx
and eax, 0x7f
shl eax, cl
add ecx, 7
or esi, eax
test bl, bl
js 0x511010
test esi, esi
jne 0x510f75
mov eax, dword [esp + 0xd4]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
and eax, 1
jne 0x511175
cmp dword [esp + 0x58], 0
jne 0x511064
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov edx, 1
cmp edx, edi
sbb eax, ebp
jae 0x510c00
mov ecx, dword [esp + 0x18]
test ecx, ecx
jns 0x510c14
mov dword [esp + 0x60], 1
call fcn.00506ca0
lea esi, [esi]
movzx eax, byte [esp + 0x4e]
cmp al, 0xff
je 0x5111fe
and eax, 7
cmp al, 2
je 0x5111f0
jbe 0x51117e
cmp al, 3
je 0x511186
cmp al, 4
jne 0x510cb2
mov eax, dword [esp + 0x18]
lea ecx, [eax*8]
neg ecx
lea eax, [esp + 0x94]
mov edx, dword [esp + 0x34]
add ecx, dword [esp + 0xa4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
mov eax, dword [esp + 0x54]
call fcn.00427270
mov eax, dword [esp + 0x94]
mov dword [esp + 0x48], eax
test eax, eax
je 0x51102e
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x510f75
mov eax, dword [esp + 0x50]
mov dword [esp + 0x94], eax
mov eax, dword [ecx]
call dword [eax + 8]
test al, al
je 0x511124
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x48]
lea edi, [esp + 0x94]
mov eax, dword [ecx]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 8], 1
mov dword [esp], edi
mov eax, dword [eax + 0x10]
mov dword [esp + 0x60], 0xffffffff
call eax
sub esp, 0xc
test al, al
je 0x510f75
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x94]
test byte [esp + 0xd4], 1
je 0x510fa8
mov esi, dword [esp + 0x40]
jmp 0x510bb4
test al, al
jne 0x510cb2
mov eax, dword [esp + 0x18]
lea ecx, [eax*4]
neg ecx
jmp 0x5110bb
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x60], 0xffffffff
mov edx, dword [esp + 0x44]
mov dword [esp], eax
lea eax, [esp + 0x98]
call fcn.00427100
test al, al
jne 0x510f75
jmp 0x51102e
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
call fcn.00415770
mov dword [esp + 0x34], eax
jmp 0x510b50
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax]
neg ecx
jmp 0x5110bb
xor ecx, ecx
jmp 0x5110bb
cmp al, 0x50
jne 0x510cb2
xor eax, eax
jmp 0x510f54
ja 0x510cb2
cmp al, 0x10
je 0x51120d
test al, al
jne 0x510cb2
xor eax, eax
jmp 0x510f54
cmp al, 0x40
jne 0x511205
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
call fcn.00415750
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.00415750
jmp 0x510f54
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp], eax
call fcn.00415770
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.00415770
jmp 0x510f54
mov eax, dword [esp + 0xd4]
and eax, 1
mov dword [esp + 0x2c], eax
jne 0x510c88
mov eax, dword [esp + 0xd4]
and eax, 8
mov dword [esp + 0x58], eax
jmp 0x510fa0