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

Disassembly:
mov ecx, dword [0x93d128]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x10]
cmp eax, dword [ecx + 8]
jbe 0x6c9bd4
sub esp, 0x90
mov eax, 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov byte [esp + 0x33], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
test edx, edx
setne dl
test ecx, ecx
setne cl
or edx, ecx
test dl, dl
jne 0x6c9793
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
jmp 0x6c97e4
mov byte [esp + 0x32], dl
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [esp + 0x94]
mov dword [esp], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.006155d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x88], eax
mov byte [esp + 0x33], 1
mov eax, dword [esp + 0x9c]
mov ebx, edx
movzx edx, byte [esp + 0x32]
mov dword [esp + 0x44], ecx
lea esi, [eax + 8]
mov dword [esp + 0x84], esi
lea edi, [esp + 0x70]
call fcn.0045f82e
mov ecx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
test ecx, 0x80000000
je 0x6c982f
shl ecx, 1
mov esi, ebp
shl ebp, 1
mov edi, esi
shr esi, 0x1f
or esi, ecx
mov ecx, esi
shl esi, 1
shr ebp, 0x1f
or esi, ebp
shr ecx, 0x1f
add esi, 0xd7b17f80
adc ecx, 0xd
jmp 0x6c9839
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov edi, ebp
test ecx, ecx
sete cl
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ecx, ebp
test cl, cl
je 0x6c985b
test edi, 0x3fffffff
jne 0x6c985b
mov ecx, dword [esp + 0x44]
jmp 0x6c98bb
lea edi, [esp + 0x58]
mov esi, dword [esp + 0x84]
call fcn.0045f82e
or edx, 2
mov byte [esp + 0x31], dl
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea edi, [esp + 8]
lea esi, [esp + 0x58]
call fcn.0045f82e
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.00614d80
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x8c], eax
movzx edx, byte [esp + 0x31]
mov byte [esp + 0x33], dl
mov dword [esp + 0x54], ebx
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x31], dl
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x18], ebp
call fcn.0062e300
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
je 0x6c997a
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
movzx eax, byte [esp + 0x31]
test al, 2
je 0x6c995c
and eax, 0xfffffffd
mov byte [esp + 0x31], al
mov byte [esp + 0x33], al
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x31]
test al, 1
je 0x6c9973
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov edx, dword [esp + 0x88]
mov eax, dword [edx]
call eax
add esp, 0x90
ret
mov dword [esp + 0x4c], edx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], ecx
lea edx, [0x7d8610]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.005aca80
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
jne 0x6c99be
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
cmp edx, eax
jb 0x6c9bc0
mov ecx, dword [esp + 0xb0]
test ecx, ecx
jne 0x6c99de
lea ecx, [0x8fe1c0]
mov edx, dword [ecx + 0x44]
test edx, edx
jne 0x6c9a28
mov dword [esp + 0x40], eax
mov dword [esp], ecx
call fcn.006a2a90
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x44], ecx
mov ecx, dword [0x93d218]
test ecx, ecx
jne 0x6c9a0f
mov ecx, dword [esp + 0xa8]
jmp 0x6c9a23
call fcn.0045f0e0
mov ecx, dword [esp + 0xa8]
mov dword [edi], ecx
mov edx, dword [eax + 0x40]
mov dword [edi + 4], edx
mov dword [eax + 0x40], ecx
mov ecx, eax
mov dword [esp + 0x50], ecx
lea eax, [0x782100]
mov dword [esp], eax
call fcn.0040ca90
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [0x93d218]
test edx, edx
jne 0x6c9a58
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
jmp 0x6c9a6a
call fcn.0045f0e0
mov edx, dword [esp + 0x4c]
mov dword [edi], edx
mov ebx, dword [esp + 0x50]
mov dword [edi + 4], ebx
mov dword [esp + 0x6c], eax
mov dword [eax + 4], edx
mov dword [eax + 0x2c], ebx
mov byte [eax + 8], 1
lea ecx, [0x758c80]
mov dword [esp], ecx
call fcn.0040ca90
mov eax, dword [esp + 4]
lea ecx, [0x6e8d50]
mov dword [eax], ecx
mov ecx, dword [0x93d218]
test ecx, ecx
jne 0x6c9aa2
mov ecx, dword [esp + 0x6c]
jmp 0x6c9ab6
call fcn.0045f0f0
mov ecx, dword [esp + 0x6c]
mov dword [edi], ecx
mov dword [edi + 4], eax
mov edx, dword [ecx + 0xc]
mov dword [edi + 8], edx
mov dword [eax + 4], ecx
mov dword [ecx + 0xc], eax
mov dword [esp], ecx
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
call fcn.006ac470
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x6c9b40
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
movzx eax, byte [esp + 0x31]
test al, 2
je 0x6c9b22
and eax, 0xfffffffd
mov byte [esp + 0x31], al
mov byte [esp + 0x33], al
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x31]
test al, 1
je 0x6c9b39
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov edx, dword [esp + 0x88]
mov eax, dword [edx]
call eax
add esp, 0x90
ret
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp], edx
call eax
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 0x31]
test al, 2
je 0x6c9ba2
and eax, 0xfffffffd
mov byte [esp + 0x31], al
mov byte [esp + 0x33], al
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx]
call ecx
movzx eax, byte [esp + 0x31]
test al, 1
je 0x6c9bb9
and eax, 0xfffffffe
mov byte [esp + 0x33], al
mov edx, dword [esp + 0x88]
mov eax, dword [edx]
call eax
add esp, 0x90
ret
mov ecx, eax
call fcn.0045f170
nop
call fcn.004341d0
add esp, 0x90
ret
call fcn.0045dcb0
jmp fcn.006c9710