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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x10]
cmp eax, dword [ecx + 8]
jbe 0x651490
sub esp, 0x90
mov eax, dword [esp + 0xa0]
test eax, eax
jne 0x65147e
mov eax, 3
lea ecx, [0x83f669]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], ecx
test eax, eax
jg 0x65144e
xor edx, edx
test dl, dl
je 0x6513ca
mov edx, dword [esp + 0x94]
test edx, edx
je 0x651383
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 4], eax
call fcn.00591e20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x651363
mov dword [esp + 0x30], eax
lea eax, [0x7e8da0]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
call fcn.00408810
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0xc]
test cl, cl
je 0x651312
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x30]
mov ebx, dword [ecx + 0x18]
mov ebp, dword [ecx + 0x14]
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.0064e640
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov dword [edx + 0x18], ecx
mov ecx, dword [0xc83da0]
test ecx, ecx
jne 0x651305
mov dword [edx + 0x14], eax
call fcn.0040b7c0
mov eax, dword [esp]
mov dword [esp + 0x50], eax
lea ecx, [0x82cca0]
mov dword [esp], ecx
call fcn.0040ac80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x94]
mov dword [edi + 0x78], eax
mov eax, dword [0xc83da0]
test eax, eax
jne 0x6512e9
mov edx, dword [esp + 0x98]
mov dword [edi + 0x7c], edx
mov edx, dword [esp + 0x1c]
mov dword [edi + 4], edx
mov edx, dword [0xc83da0]
test edx, edx
jne 0x6512c5
mov edx, dword [esp + 0x34]
mov dword [edi], edx
mov edx, dword [esp + 0x30]
mov dword [edi + 8], edx
mov dword [edi + 0x10], 8
lea ebx, [0x840861]
mov dword [edi + 0xc], ebx
mov dword [edi + 0x14], 1
mov dword [edi + 0x18], 1
mov ebx, dword [0xc83da0]
test ebx, ebx
jne 0x6512ac
mov ebx, dword [esp + 0x50]
mov dword [edi + 0x1c], ebx
mov ebx, dword [esp + 0x20]
mov dword [edi + 0x20], ebx
mov ebx, dword [0xc83da0]
lea ebp, [edi + 0x24]
test ebx, ebx
jne 0x651296
mov ebx, dword [esp + 0x3c]
mov dword [edi + 0x24], ebx
mov eax, dword [edx + 0x14]
mov edx, dword [edx + 0x18]
mov dword [edi + 0x48], edx
mov edx, dword [0xc83da0]
test edx, edx
jne 0x651283
mov dword [edi + 0x44], eax
mov edx, dword [esp + 0xac]
test edx, edx
je 0x65127c
mov dword [esp + 0x4c], ebp
je 0x6510a6
mov dword [esp + 0x38], edi
mov ebx, dword [edx + 8]
cmp ebx, 0x4128187d
jne 0x6510b7
lea ecx, [0x98ae70]
cmp ecx, edx
jne 0x6510ad
mov eax, dword [esp + 0xb0]
jne 0x6510a6
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
cmp ecx, edx
setae bl
mov ebp, dword [eax + 0xc]
sar edx, 0x1f
cmp ebp, edx
sete dl
xchg ebp, ebx
setg bl
xchg ebp, ebx
and edx, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x651099
xor ecx, ecx
mov dword [edi + 0x2c], ecx
sar ecx, 0x1f
mov dword [edi + 0x30], ecx
lea edi, [esp + 0x64]
mov esi, eax
call fcn.0045a51e
lea eax, [0x7e4820]
mov dword [esp], eax
call fcn.0040ac80
mov eax, dword [esp + 4]
lea ecx, [0x6772a0]
mov dword [eax], ecx
mov ecx, dword [0xc83da0]
lea edi, [eax + 4]
test ecx, ecx
jne 0x651066
lea esi, [esp + 0x64]
call fcn.0045a51e
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x28], eax
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x651023
mov edx, dword [ecx + 0x30]
test edx, edx
sete dl
mov ebx, dword [ecx + 0x2c]
test ebx, ebx
sete bl
and edx, ebx
test dl, dl
je 0x651023
lea edx, [0x98e050]
mov dword [ecx + 0x20], edx
mov edx, dword [0xc83da0]
test edx, edx
jne 0x651047
lea eax, [0xc83b64]
mov dword [ecx + 0x24], eax
lea eax, [0x90d294]
mov dword [ecx + 0x28], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x90
ret
mov edi, dword [esp + 0x4c]
lea eax, [0xc83b64]
call fcn.00459d90
lea edi, [ecx + 0x28]
lea eax, [0x90d294]
call fcn.00459d90
jmp 0x651023
mov dword [esp + 0x48], eax
lea eax, [0x801660]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x64]
mov dword [esp + 8], eax
call fcn.00410bc0
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 0x28]
mov eax, dword [esp + 0x48]
call fcn.00459d90
jmp 0x650fe1
mov edx, dword [esp + 0x28]
sub edx, ecx
mov ecx, edx
jmp 0x650f92
mov ecx, edi
jmp 0x650fe1
mov eax, 0
jmp 0x650f5b
cmp ebx, 0xa5164854
jne 0x6511a3
lea ecx, [0x98a2b0]
cmp ecx, edx
jne 0x651199
mov eax, dword [esp + 0xb0]
jne 0x6510a6
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
cmp ecx, edx
setae bl
mov ebp, dword [eax + 0x10]
sar edx, 0x1f
cmp ebp, edx
setg dl
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
or edx, ebp
test dl, dl
je 0x65118c
xor ecx, ecx
mov dword [edi + 0x2c], ecx
sar ecx, 0x1f
mov dword [edi + 0x30], ecx
lea edi, [esp + 0x78]
mov esi, eax
call fcn.0045a514
lea eax, [0x7e47c0]
mov dword [esp], eax
call fcn.0040ac80
mov eax, dword [esp + 4]
lea ecx, [0x6771d0]
mov dword [eax], ecx
mov ecx, dword [0xc83da0]
lea edi, [eax + 4]
test ecx, ecx
jne 0x651159
lea esi, [esp + 0x78]
call fcn.0045a514
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x28], eax
jmp 0x650fe1
mov dword [esp + 0x44], eax
lea eax, [0x7fda60]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x78]
mov dword [esp + 8], eax
call fcn.00410bc0
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 0x28]
mov eax, dword [esp + 0x44]
call fcn.00459d90
jmp 0x650fe1
mov edx, dword [esp + 0x28]
sub edx, ecx
mov ecx, edx
jmp 0x651109
mov eax, 0
jmp 0x6510d8
cmp ebx, 0xe763bb76
jne 0x6510a6
lea ebx, [0x98a270]
cmp ebx, edx
jne 0x651272
mov eax, dword [esp + 0xb0]
jne 0x6510a6
mov edx, dword [eax + 4]
sub edx, dword [eax + 0xc]
mov dword [edi + 0x2c], edx
sar edx, 0x1f
mov dword [edi + 0x30], edx
nop
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp eax, ecx
ja 0x65148a
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x2c], ebx
lea eax, [0x7e4280]
mov dword [esp], eax
call fcn.0040ac80
mov eax, dword [esp + 4]
lea ecx, [0x6770f0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
sub ecx, edx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, edx
mov dword [eax + 0xc], ecx
mov ebx, dword [0xc83da0]
neg ecx
sar ecx, 0x1f
and edx, ecx
mov ecx, dword [esp + 0x40]
add ecx, edx
test ebx, ebx
jne 0x651253
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x28], eax
jmp 0x650fe1
lea edi, [eax + 4]
mov edx, eax
mov eax, ecx
call fcn.00459d90
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 0x28]
mov eax, edx
call fcn.00459d90
jmp 0x650fe1
mov eax, 0
jmp 0x6511c4
mov ecx, edi
jmp 0x651023
lea edx, [edi + 0x44]
mov ecx, edi
mov edi, edx
call fcn.00459d90
mov edi, ecx
jmp 0x650f1a
mov eax, edi
mov edi, ebp
mov ecx, eax
mov eax, dword [esp + 0x3c]
call fcn.00459d90
mov edi, ecx
jmp 0x650f00
lea ebx, [edi + 0x1c]
mov eax, edi
mov edi, ebx
mov ecx, eax
mov eax, dword [esp + 0x50]
call fcn.00459d90
mov edi, ecx
jmp 0x650ee1
mov eax, dword [esp + 0x34]
call fcn.00459d90
lea ebx, [edi + 8]
mov eax, edi
mov edi, ebx
mov ecx, eax
mov eax, dword [esp + 0x30]
call fcn.00459d90
mov edx, eax
mov edi, ecx
jmp 0x650eae
lea edx, [edi + 0x7c]
mov eax, edi
mov edi, edx
mov ecx, eax
mov eax, dword [esp + 0x98]
call fcn.00459d90
mov edi, ecx
jmp 0x650e8c
lea edi, [edx + 0x14]
call fcn.00459d90
jmp 0x650e4c
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x650e0e
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x58], eax
lea edx, [0x98deb0]
mov dword [esp], edx
lea edx, [esp + 0x54]
mov dword [esp + 4], edx
call fcn.00408660
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
jmp 0x650e0e
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
add esp, 0x90
ret
lea eax, [0x7e66a0]
mov dword [esp], eax
call fcn.0040ac80
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x15
lea ecx, [0x846d42]
mov dword [eax], ecx
mov dword [esp + 0xb4], 0
lea ecx, [0x98a4f0]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x90
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004084f0
mov eax, dword [esp + 8]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
lea ecx, [0x7cfd20]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
lea eax, [0x84a7a6]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004d1710
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x90
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x90d320]
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004ef140
cmp dword [esp + 0x10], 0xffffffff
sete dl
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
jmp 0x650d8c
mov ecx, dword [esp + 0x9c]
jmp 0x650d7a
call fcn.00459e70
nop
call fcn.00458550
jmp fcn.00650d40