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

Disassembly:
mov ecx, dword [0x98cddc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x6909be
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 0x690466
mov dword [esp], eax
call fcn.0047b9f0
lea eax, [0x690a10]
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 0x690447
lea edi, [esp + 0x7c]
mov edx, eax
xor eax, eax
call fcn.00471d4b
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 0x6903f4
call fcn.004c31c0
lea edi, [esp + 0xa4]
lea esi, [esp]
call fcn.0047222e
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.0047222e
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.004bc900
lea edi, [esp + 0x7c]
lea esi, [esp + 0x1c]
call fcn.0047222e
mov edx, dword [esp + 0xc0]
mov eax, dword [edx + 0xc]
lea ecx, [0x6e34a0]
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.00467350
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, dword [eax + 8]
test cl, cl
je 0x690475
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 0x690605
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 0x6904b5
call fcn.004671a0
mov eax, dword [0x98d0b8]
mov ecx, dword [esp]
test eax, eax
jne 0x69049e
mov eax, dword [esp + 0xc0]
jmp 0x6904b2
call fcn.00471ac0
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, [0x6e34e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.0040c7c0
mov esi, dword [esp + 0xc]
lea edi, [esp + 0x5c]
call fcn.0047221a
lea eax, [esp + 0x5c]
mov dword [esp], eax
call fcn.006913c0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
inc ecx
nop
mov edx, dword [esp + 0x6c]
cmp eax, ecx
jae 0x690536
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x703480]
mov dword [esp + 0x10], eax
call fcn.0046cad0
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 [0x98d0b8]
test eax, eax
jne 0x69054d
mov eax, dword [esp + 0xc4]
jmp 0x690562
call fcn.00471ac0
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, [0x6e34e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.00467550
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x98d0b8]
test eax, eax
je 0x6905c5
mov dword [esp + 0x94], edi
lea eax, [0x6fab60]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.0040eba0
mov edi, dword [esp + 0x94]
lea esi, [esp + 0x5c]
call fcn.0047221a
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 0x69095b
mov dword [esp + 0x38], eax
test bl, bl
jne 0x6908f4
mov esi, dword [ecx + eax*4 - 4]
mov dword [esp + 0x78], esi
lea edi, [esp + 0x48]
lea esi, [esp + 0x7c]
call fcn.0047222e
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
test ecx, 0x80000000
je 0x690674
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 0x69067c
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 0x6906a1
test esi, 0x3fffffff
jne 0x6906a1
xor ecx, ecx
jmp 0x690724
mov eax, dword [esp + 0x78]
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0xa4]
call fcn.0047222e
lea edi, [esp]
lea esi, [esp + 0xa4]
call fcn.0047222e
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call fcn.004be060
lea edi, [esp + 0xa4]
lea esi, [esp + 0x1c]
call fcn.0047222e
lea edi, [esp]
lea esi, [esp + 0xa4]
call fcn.0047222e
lea edi, [esp + 0x14]
lea esi, [esp + 0x7c]
call fcn.0047222e
call fcn.004bb880
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 0x69076c
lea eax, [0x6eb820]
mov dword [esp], eax
call fcn.0040bc10
mov eax, dword [esp + 4]
lea ecx, [0x6909d0]
mov dword [eax], ecx
mov edx, dword [0x98d0b8]
test edx, edx
jne 0x690756
mov edx, dword [esp + 0x78]
jmp 0x690761
call fcn.00471ab0
mov edx, dword [esp + 0x78]
mov dword [edi], edx
mov dword [eax + 4], edx
mov dword [esp], eax
call fcn.004425a0
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.00695750
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0x38]
lea edx, [ecx - 1]
test al, al
jne 0x690791
movzx eax, byte [esp + 0x33]
test al, al
je 0x6907a2
mov ecx, edx
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
jmp 0x6905ed
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x78]
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0xa4]
call fcn.0047222e
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.0047222e
call fcn.00691120
movzx eax, byte [esp + 0x24]
test al, al
je 0x6908e6
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx]
test edx, edx
je 0x69080e
mov ecx, dword [esp + 0x38]
jmp 0x6908ea
mov byte [esp + 0x36], al
mov eax, dword [esp + 0xc0]
mov edx, dword [eax + 0x18]
nop
lea ebp, [0x6e3520]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00468570
movzx eax, byte [esp + 0x10]
test al, al
je 0x6908db
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 0x6908be
mov ebx, dword [eax + 4]
test byte [ebx], al
mov ebp, dword [0x98d0b8]
nop
mov esi, dword [eax]
test ebp, ebp
je 0x690873
call fcn.00471ac0
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 [0x98d0b8]
mov esi, dword [eax + 4]
test ebp, ebp
je 0x6908a4
call fcn.00471af0
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, [0x6e3520]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0040d3e0
movzx eax, byte [esp + 0x36]
mov ecx, dword [esp + 0x40]
jmp 0x6908ea
mov ecx, dword [esp + 0x38]
mov edx, 1
jmp 0x6905ed
test eax, eax
je 0x69095b
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0xc]
lea edx, [0x6e34a0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.00467550
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 [0x98d0b8]
test ecx, ecx
jne 0x690944
mov ecx, dword [esp + 0x90]
jmp 0x690957
call fcn.00471ac0
mov ecx, dword [esp + 0x90]
mov dword [edi], ecx
mov ebx, dword [eax]
mov dword [edi + 4], ebx
mov dword [eax], ecx
jmp 0x690982
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0xc]
lea edx, [0x6e34a0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.00467a20
movzx eax, byte [esp + 0x34]
test al, al
je 0x690475
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.004706b0
jmp fcn.006902c0