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

Disassembly:
mov ecx, dword [0x8cbf38]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x88]
cmp eax, dword [ecx + 8]
jbe 0x5178c1
sub esp, 0x108
mov eax, 0
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov byte [esp + 0x2e], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
call fcn.00516d80
mov eax, dword [esp + 4]
test eax, eax
jne 0x517847
lea edi, [esp + 0xbc]
xor eax, eax
call fcn.0046c0bb
mov ecx, dword [esp + 0x110]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0x114]
mov dword [esp], ebx
call edx
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x2d], cl
lea edi, [esp + 0xbc]
lea esi, [esp + 4]
call fcn.0046c59e
lea edi, [esp + 0xa8]
lea esi, [esp + 0xbc]
call fcn.0046c59e
movzx ecx, byte [esp + 0x2d]
test cl, cl
je 0x517095
lea edi, [esp + 0x94]
lea esi, [esp + 0xbc]
call fcn.0046c59e
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
test eax, 0x80000000
je 0x516fb9
shl eax, 1
mov ebp, ecx
shl ecx, 1
mov edx, ebp
shr ebp, 0x1f
or ebp, eax
mov eax, ebp
shl ebp, 1
shr eax, 0x1f
shr ecx, 0x1f
or ecx, ebp
add ecx, 0xd7b17f80
adc eax, 0xd
jmp 0x516fcb
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov edx, ecx
mov ecx, ebp
test ecx, ecx
sete cl
test eax, eax
sete al
and eax, ecx
test al, al
je 0x516ff1
test edx, 0x3fffffff
jne 0x516ff1
mov eax, dword [esp + 0x10c]
xor ecx, ecx
jmp 0x51709e
mov eax, dword [esp + 0x10c]
test byte [eax], al
lea edi, [esp + 0x80]
lea esi, [esp + 0xa8]
call fcn.0046c59e
mov dword [esp], eax
lea edi, [esp + 4]
lea esi, [esp + 0x80]
call fcn.0046c59e
mov dword [esp + 0x18], 0x77
call fcn.004d5260
lea edi, [esp + 0xd0]
lea esi, [0x8a6a40]
call fcn.0046c59e
lea edi, [esp + 0xe4]
xor eax, eax
call fcn.0046c0b9
lea eax, [0x517a00]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xe8], eax
lea edi, [esp + 0xec]
lea esi, [esp + 0xd0]
call fcn.0046c59e
lea ecx, [esp + 0xe4]
mov dword [esp + 0x104], ecx
mov byte [esp + 0x2e], 1
mov ecx, 1
jmp 0x51709e
mov eax, dword [esp + 0x10c]
xor ecx, ecx
mov byte [esp + 0x2f], cl
mov ebp, dword [eax + 0x144]
mov edx, dword [eax + 0x140]
cmp ebp, 3
jne 0x5170c9
cmp word [edx], 0x6374
jne 0x51776e
cmp byte [edx + 2], 0x70
je 0x5170e6
jmp 0x51776e
cmp ebp, 4
jne 0x51776e
cmp dword [edx], 0x34706374
je 0x5170e6
cmp dword [edx], 0x36706374
jne 0x51776e
mov ebp, dword [esp + 0x118]
test ebp, ebp
jne 0x517187
mov edx, dword [esp + 0x120]
test edx, edx
je 0x51789c
mov ebx, dword [esp + 0x120]
lea ebp, [0x7017f8]
cmp ebx, ebp
jne 0x51712f
lea eax, [0x6472c0]
mov dword [esp], eax
call fcn.0040fcf0
mov eax, dword [esp + 4]
lea ecx, [0x7017f8]
jmp 0x517155
lea esi, [0x70180c]
cmp ebx, esi
jne 0x51789c
lea eax, [0x64b840]
mov dword [esp], eax
call fcn.0040fcf0
mov eax, dword [esp + 4]
lea ecx, [0x70180c]
mov edx, dword [esp + 0x10c]
mov ebx, dword [edx + 0x10]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004b51d0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5176cb
mov eax, dword [esp + 0x10c]
movzx ecx, byte [esp + 0x2f]
mov ebp, dword [esp + 0x120]
test ebp, ebp
je 0x517884
mov ebp, dword [esp + 0x120]
mov edx, eax
lea eax, [0x7017f8]
cmp ebp, eax
jne 0x5171b9
mov eax, dword [esp + 0x124]
cmp byte [eax + 4], 0x7f
sete al
jmp 0x517222
lea eax, [0x70180c]
cmp ebp, eax
jne 0x517884
mov ebx, dword [0x89e0c4]
cmp ebx, 0x10
jb 0x51787a
mov eax, dword [esp + 0x124]
lea ecx, [eax + 8]
mov dword [esp + 0x74], ecx
mov esi, dword [0x89e0c0]
lea edi, [esp + 0x40]
call fcn.0046c5a8
test byte [eax], al
mov eax, dword [esp + 0x74]
mov dword [esp], eax
lea eax, [esp + 0x40]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x10
call fcn.00406eb0
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0x2f]
mov edx, dword [esp + 0x10c]
test al, al
je 0x5172a0
mov word [esp + 0x30], 0xffff
mov byte [esp + 0x32], 1
mov edx, dword [0x8a6630]
mov eax, dword [edx]
call eax
movzx eax, byte [esp]
test al, al
je 0x517249
mov byte [esp + 0x32], 0xfe
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov dword [esp + 4], 0x98000011
lea ecx, [esp + 0x30]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x34]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.004dce40
lea eax, [0x6243e0]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00408790
mov eax, dword [esp + 8]
mov dword [esp + 0x68], eax
movzx ecx, byte [esp + 0x2f]
or ecx, 2
mov byte [esp + 0x2f], cl
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea edx, [0x5179c0]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
lea edx, [esp + 0x78]
mov dword [esp + 0x100], edx
mov byte [esp + 0x2e], cl
lea edx, [0x644d40]
mov dword [esp], edx
call fcn.0040fcf0
mov eax, dword [esp + 4]
lea ecx, [0x5178d0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x110]
mov dword [eax + 4], ecx
mov ecx, dword [0x8cc0e0]
test ecx, ecx
jne 0x517339
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x68]
jmp 0x517358
call fcn.0046bed0
mov ecx, dword [esp + 0x114]
mov dword [edi], ecx
mov edx, dword [esp + 0x10c]
mov dword [edi + 4], edx
mov ebx, dword [esp + 0x68]
mov dword [edi + 8], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov dword [esp], eax
call fcn.00447d90
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
mov ecx, dword [esp + 0x120]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 8], ecx
call fcn.004d9e30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test eax, eax
je 0x5175c7
mov dword [esp + 0x70], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x114]
mov dword [esp], edx
call ecx
mov dword [esp], 0
call fcn.00409c60
movzx eax, byte [esp + 8]
test al, al
jne 0x5174a8
mov eax, dword [esp + 0x70]
lea ecx, [0x701834]
cmp eax, ecx
jne 0x517439
lea eax, [0x640f00]
mov dword [esp], eax
call fcn.0040fcf0
mov eax, dword [esp + 4]
mov dword [eax + 4], 9
lea ecx, [0x67e113]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [0x8cc0e0]
test ecx, ecx
jne 0x517423
mov ecx, dword [esp + 0x5c]
jmp 0x51742e
call fcn.0046beb0
mov ecx, dword [esp + 0x5c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x701820]
jmp 0x517441
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
movzx eax, byte [esp + 0x2f]
test al, 2
je 0x51748a
and eax, 0xfffffffd
mov byte [esp + 0x2f], al
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x100]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x2f]
test al, 1
je 0x5174a1
and eax, 0xfffffffe
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
call eax
add esp, 0x108
ret
mov eax, dword [esp + 0x110]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x114]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 8]
cmp dword [0x89de38], eax
jne 0x517523
mov dword [esp + 0x50], ebx
mov dword [esp + 0x6c], eax
mov ecx, dword [0x89de3c]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00407c30
movzx eax, byte [esp + 0xc]
test al, al
je 0x517513
lea ecx, [0x701870]
lea edx, [0x8cbda0]
jmp 0x517560
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x50]
cmp dword [0x89de40], eax
jne 0x517560
mov ecx, dword [0x89de44]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00407c30
movzx eax, byte [esp + 0xc]
test al, al
je 0x517558
mov ecx, dword [0x89dbc0]
mov edx, dword [0x89dbc4]
jmp 0x517560
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], edx
movzx eax, byte [esp + 0x2f]
test al, 2
je 0x5175a9
and eax, 0xfffffffd
mov byte [esp + 0x2f], al
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x100]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x2f]
test al, 1
je 0x5175c0
and eax, 0xfffffffe
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
call eax
add esp, 0x108
ret
mov eax, dword [esp + 0x10c]
lea ecx, [eax + 0x10]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
mov dword [esp + 4], 0xffff
mov dword [esp + 8], 0x7010
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 4
call fcn.004b9aa0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x517606
xor eax, eax
xor ecx, ecx
jmp 0x517664
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
lea edx, [0x640f00]
mov dword [esp], edx
call fcn.0040fcf0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xa
lea ecx, [0x67e647]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [0x8cc0e0]
test ecx, ecx
jne 0x51764e
mov ecx, dword [esp + 0x54]
jmp 0x517659
call fcn.0046beb0
mov ecx, dword [esp + 0x54]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
mov ecx, eax
lea eax, [0x701820]
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
movzx eax, byte [esp + 0x2f]
test al, 2
je 0x5176ad
and eax, 0xfffffffd
mov byte [esp + 0x2f], al
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x100]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x2f]
test al, 1
je 0x5176c4
and eax, 0xfffffffe
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
call eax
add esp, 0x108
ret
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
lea edx, [0x640f00]
mov dword [esp], edx
call fcn.0040fcf0
mov eax, dword [esp + 4]
mov dword [eax + 4], 4
lea ecx, [0x67d0b8]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [0x8cc0e0]
test ecx, ecx
jne 0x517713
mov ecx, dword [esp + 0x60]
jmp 0x51771e
call fcn.0046beb0
mov ecx, dword [esp + 0x60]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
lea ecx, [0x701820]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
movzx eax, byte [esp + 0x2f]
test al, 1
je 0x517767
and eax, 0xfffffffe
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
call eax
add esp, 0x108
ret
mov edx, dword [0x89d644]
mov ecx, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 8], eax
call ecx
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5177a2
xor eax, eax
xor ecx, ecx
jmp 0x517800
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
lea edx, [0x640f00]
mov dword [esp], edx
call fcn.0040fcf0
mov eax, dword [esp + 4]
mov dword [eax + 4], 7
lea ecx, [0x67d864]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [0x8cc0e0]
test ecx, ecx
jne 0x5177ea
mov ecx, dword [esp + 0x64]
jmp 0x5177f5
call fcn.0046beb0
mov ecx, dword [esp + 0x64]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
mov ecx, eax
lea eax, [0x701820]
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
movzx eax, byte [esp + 0x2f]
test al, 1
je 0x517840
and eax, 0xfffffffe
mov byte [esp + 0x2e], al
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
call eax
add esp, 0x108
ret
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
add esp, 0x108
ret
mov edx, 0x10
call fcn.0046bff0
lea eax, [0x62efe0]
mov dword [esp], eax
lea eax, [0x700d94]
mov dword [esp + 4], eax
call fcn.0043c340
lea eax, [0x62efe0]
mov dword [esp], eax
lea eax, [0x700d94]
mov dword [esp + 4], eax
call fcn.0043c340
nop
call fcn.0043b8a0
add esp, 0x108
ret
call fcn.0046aab0
jmp fcn.00516e90