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

Disassembly:
mov ecx, dword [0x93ee7c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x6689be
sub esp, 0xbc
mov eax, 0
mov dword [esp + 0xb8], eax
mov byte [esp + 0x37], 0
mov byte [esp + 0xc8], 0
mov eax, dword [esp + 0xc0]
movzx ecx, byte [eax + 0x88]
test cl, cl
jne 0x668466
mov dword [esp], eax
call fcn.004868a0
lea eax, [0x668a10]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0x9c]
mov dword [esp + 0xb8], ecx
mov byte [esp + 0x37], 1
mov byte [eax + 8], 0
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x668447
lea edi, [esp + 0x7c]
mov edx, eax
xor eax, eax
call fcn.00471acb
mov ecx, dword [edx + 0x98]
mov ebx, dword [edx + 0x9c]
test ebx, ebx
sete bl
xchg ebp, ebx
setg bl
xchg ebp, ebx
test ecx, ecx
seta cl
and ecx, ebx
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x6683f4
call fcn.004b5b60
lea edi, [esp + 0xa4]
lea esi, [esp]
call fcn.00471fae
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0x9c]
lea edi, [esp]
lea esi, [esp + 0xa4]
call fcn.00471fae
xor ecx, ecx
mov ebx, dword [esp + 0x44]
sub ecx, ebx
mov dword [esp + 0x14], ecx
mov ecx, 0
sbb ecx, edx
mov dword [esp + 0x18], ecx
call fcn.004af2a0
lea edi, [esp + 0x7c]
lea esi, [esp + 0x1c]
call fcn.00471fae
mov edx, dword [esp + 0xc0]
mov eax, dword [edx + 0xc]
lea ecx, [0x6dda00]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
lea ebx, [eax + 0x18]
mov dword [esp + 0x98], ebx
mov dword [esp + 8], ebx
call fcn.00466f20
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, dword [eax + 8]
test cl, cl
je 0x668475
mov dword [esp + 0x3c], edx
mov ecx, dword [eax]
mov dword [esp + 0x90], ecx
mov eax, dword [eax + 4]
xor ebx, ebx
xor ebp, ebp
jmp 0x668605
mov byte [esp + 0xc8], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
call eax
add esp, 0xbc
ret
mov byte [esp + 0xc8], 0
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x6684b5
call fcn.00466d70
mov eax, dword [0x93f150]
mov ecx, dword [esp]
test eax, eax
jne 0x66849e
mov eax, dword [esp + 0xc0]
jmp 0x6684b2
call fcn.00471840
mov dword [edi], ecx
mov eax, dword [esp + 0xc0]
mov edx, dword [eax + 0x10]
mov dword [edi + 4], edx
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x10]
lea edx, [0x6dda40]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.0040c740
mov esi, dword [esp + 0xc]
lea edi, [esp + 0x5c]
call fcn.00471f9a
lea eax, [esp + 0x5c]
mov dword [esp], eax
call fcn.006693c0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
inc ecx
nop
mov edx, dword [esp + 0x6c]
cmp eax, ecx
jae 0x668536
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6fbf00]
mov dword [esp + 0x10], eax
call fcn.0046c670
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ecx
mov eax, dword [0x93f150]
test eax, eax
jne 0x66854d
mov eax, dword [esp + 0xc4]
jmp 0x668562
call fcn.00471840
mov eax, dword [esp + 0xc4]
mov dword [edi], eax
mov ebx, dword [edx + ecx*4 - 4]
mov dword [edi + 4], ebx
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 0x10]
lea ecx, [0x6dda40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.00467120
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x93f150]
test eax, eax
je 0x6685c5
mov dword [esp + 0x94], edi
lea eax, [0x6f33a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.0040eb20
mov edi, dword [esp + 0x94]
lea esi, [esp + 0x5c]
call fcn.00471f9a
mov byte [esp + 0xc8], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
call eax
add esp, 0xbc
ret
mov ebx, dword [esp + 0x90]
mov ebx, edx
mov ebp, eax
mov edx, dword [esp + 0x3c]
mov eax, ecx
mov ecx, dword [esp + 0x90]
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
mov byte [esp + 0x34], bl
test eax, eax
je 0x66895b
mov dword [esp + 0x38], eax
test bl, bl
jne 0x6688f4
mov esi, dword [ecx + eax*4 - 4]
mov dword [esp + 0x78], esi
lea edi, [esp + 0x48]
lea esi, [esp + 0x7c]
call fcn.00471fae
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
test ecx, 0x80000000
je 0x668674
mov dword [esp + 0x44], esi
shl ecx, 1
mov edi, esi
shl esi, 1
shr edi, 0x1f
or ecx, edi
mov edi, ecx
shl ecx, 1
shr edi, 0x1f
shr esi, 0x1f
or esi, ecx
add esi, 0xd7b17f80
adc edi, 0xd
mov ecx, esi
mov esi, dword [esp + 0x44]
jmp 0x66867c
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
test ecx, ecx
sete cl
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x6686a1
test esi, 0x3fffffff
jne 0x6686a1
xor ecx, ecx
jmp 0x668724
mov eax, dword [esp + 0x78]
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0xa4]
call fcn.00471fae
lea edi, [esp]
lea esi, [esp + 0xa4]
call fcn.00471fae
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call fcn.004b0a00
lea edi, [esp + 0xa4]
lea esi, [esp + 0x1c]
call fcn.00471fae
lea edi, [esp]
lea esi, [esp + 0xa4]
call fcn.00471fae
lea edi, [esp + 0x14]
lea esi, [esp + 0x7c]
call fcn.00471fae
call fcn.004ae220
movzx eax, byte [esp + 0x28]
mov edx, dword [esp + 0x3c]
movzx ebx, byte [esp + 0x34]
movzx ebp, byte [esp + 0x35]
mov ecx, eax
mov eax, dword [esp + 0x38]
mov byte [esp + 0x33], cl
test cl, cl
je 0x66876c
lea eax, [0x6e5aa0]
mov dword [esp], eax
call fcn.0040bb90
mov eax, dword [esp + 4]
lea ecx, [0x6689d0]
mov dword [eax], ecx
mov edx, dword [0x93f150]
test edx, edx
jne 0x668756
mov edx, dword [esp + 0x78]
jmp 0x668761
call fcn.00471830
mov edx, dword [esp + 0x78]
mov dword [edi], edx
mov dword [eax + 4], edx
mov dword [esp], eax
call fcn.00442120
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.0066d750
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0x38]
lea edx, [ecx - 1]
test al, al
jne 0x668791
movzx eax, byte [esp + 0x33]
test al, al
je 0x6687a2
mov ecx, edx
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
jmp 0x6685ed
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x78]
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0xa4]
call fcn.00471fae
mov ecx, dword [esp + 0xc4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea edi, [esp + 0x10]
lea esi, [esp + 0xa4]
call fcn.00471fae
call fcn.00669120
movzx eax, byte [esp + 0x24]
test al, al
je 0x6688e6
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx]
test edx, edx
je 0x66880e
mov ecx, dword [esp + 0x38]
jmp 0x6688ea
mov byte [esp + 0x36], al
mov eax, dword [esp + 0xc0]
mov edx, dword [eax + 0x18]
nop
lea ebp, [0x6dda80]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00468140
movzx eax, byte [esp + 0x10]
test al, al
je 0x6688db
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx + 0x14]
cmp dword [eax + 8], edx
jne 0x6688be
mov ebx, dword [eax + 4]
test byte [ebx], al
mov ebp, dword [0x93f150]
nop
mov esi, dword [eax]
test ebp, ebp
je 0x668873
call fcn.00471840
mov dword [edi], esi
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], esi
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x93f150]
mov esi, dword [eax + 4]
test ebp, ebp
je 0x6688a4
call fcn.00471870
mov dword [edi], esi
mov ebp, dword [ebx + 4]
mov dword [edi + 4], ebp
mov ebp, dword [eax]
mov dword [edi + 8], ebp
mov ebp, dword [eax + 4]
mov dword [edi + 0xc], ebp
mov ebp, dword [eax + 8]
mov dword [edi + 0x10], ebp
mov dword [ebx + 4], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
dec dword [edx + 0x14]
mov eax, dword [esp + 0x78]
mov edx, dword [ecx + 0x18]
lea ebx, [0x6dda80]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0040d360
movzx eax, byte [esp + 0x36]
mov ecx, dword [esp + 0x40]
jmp 0x6688ea
mov ecx, dword [esp + 0x38]
mov edx, 1
jmp 0x6685ed
test eax, eax
je 0x66895b
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0xc]
lea edx, [0x6dda00]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.00467120
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov ecx, dword [0x93f150]
test ecx, ecx
jne 0x668944
mov ecx, dword [esp + 0x90]
jmp 0x668957
call fcn.00471840
mov ecx, dword [esp + 0x90]
mov dword [edi], ecx
mov ebx, dword [eax]
mov dword [edi + 4], ebx
mov dword [eax], ecx
jmp 0x668982
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0xc]
lea edx, [0x6dda00]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.004675f0
movzx eax, byte [esp + 0x34]
test al, al
je 0x668475
movzx eax, byte [esp + 0x35]
mov byte [esp + 0xc8], al
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
call eax
add esp, 0xbc
ret
call fcn.00470430
jmp fcn.006682c0