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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x2c65b39
sub esp, 0x70
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.02c65c50
mov eax, dword [esp + 4]
test eax, eax
jg 0x2c65653
xor ecx, ecx
xor edx, edx
jmp 0x2c65675
mov dword [esp + 0x40], eax
lea ecx, [0x2d0e5c0]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.02b274d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov edx, eax
mov eax, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], edx
lea ebx, [0x2d2e260]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
call fcn.02aec190
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.02c62dd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
jne 0x2c65778
test ecx, ecx
jbe 0x2c65b31
movzx eax, byte [edx]
cmp al, 0x20
je 0x2c656e2
cmp al, 9
jne 0x2c65778
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.02c64920
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 4]
test eax, eax
je 0x2c6571d
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
add esp, 0x70
ret
mov dword [esp], 0
lea eax, [0x2d4c448]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x24
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.02b2a990
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.02ae8ee0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x78], ecx
lea ecx, [0x2da4aa4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
add esp, 0x70
ret
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
jmp 0x2c65788
mov edx, eax
mov eax, ecx
mov ecx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x74]
mov dword [esp], edx
lea ebx, [0x2d5a138]
mov dword [esp + 4], ebx
call fcn.02c64b40
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x2c65ac1
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], ebx
nop
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov byte [esp + 0xc], 0x3a
call fcn.02ae2840
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x2c65a5e
mov edx, dword [esp + 0x38]
cmp edx, ecx
jb 0x2c65b2c
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.02c65ea0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x2c6583d
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
jmp 0x2c65782
mov edx, dword [esp + 0x20]
inc edx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x58]
jmp 0x2c65ad9
cmp edx, ebx
ja 0x2c65b1a
mov dword [esp + 0x3c], eax
mov dword [esp + 0x5c], ecx
mov dword [esp], 0
mov eax, dword [esp + 0x38]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
add eax, ebp
mov dword [esp + 4], eax
sub ebx, edx
mov dword [esp + 8], ebx
call fcn.02b2ac40
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
lea edx, [0x2d2e260]
mov dword [esp], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x3c]
mov dword [esp + 0xc], esi
call fcn.02aefb10
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
test ecx, ecx
je 0x2c658d3
mov ebx, dword [esp + 0x2c]
jmp 0x2c6597a
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jle 0x2c6597a
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x54]
mov dword [edi + 4], ecx
lea ecx, [ebx - 1]
mov dword [esp + 0x2c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 8
add ecx, edi
mov dword [esp + 0x64], ecx
mov ebx, dword [0x311e9a0]
test ebx, ebx
jne 0x2c65911
mov eax, dword [esp + 0x50]
mov dword [edi], eax
jmp 0x2c6591a
mov eax, dword [esp + 0x50]
call fcn.02b3e880
lea eax, [0x2d2e260]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call fcn.02af01a0
mov edi, dword [esp + 0x10]
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2c65964
mov eax, dword [esp + 0x54]
mov dword [edi], eax
jmp 0x2c6596d
mov eax, dword [esp + 0x54]
call fcn.02b3e880
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
jmp 0x2c65a4d
lea ebp, [edx + 1]
cmp eax, ebp
jae 0x2c659bc
mov dword [esp + 0x24], edx
lea ebx, [0x2d0e5c0]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
call fcn.02b27650
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebp, [eax + 1]
mov ebx, dword [esp + 0x2c]
mov eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], eax
lea esi, [ecx + edx*8 + 4]
mov ebx, dword [esp + 0x28]
mov dword [esi], ebx
mov ebx, dword [0x311e9a0]
lea edx, [ecx + edx*8]
test ebx, ebx
jne 0x2c659e7
mov ebx, dword [esp + 0x50]
mov dword [edx], ebx
jmp 0x2c659f2
mov edi, edx
mov eax, dword [esp + 0x50]
call fcn.02b3e880
lea eax, [0x2d2e260]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call fcn.02af01a0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x48]
mov dword [edi + 8], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2c65a3c
mov eax, dword [esp + 0x64]
mov dword [edi], eax
jmp 0x2c65a45
mov eax, dword [esp + 0x64]
call fcn.02b3e880
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
test edx, edx
je 0x2c65782
jmp 0x2c65afb
mov dword [esp], 0
lea eax, [0x2d48c05]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
call fcn.02b2a990
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.02ae8ee0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x78], ecx
lea ecx, [0x2da4aa4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
add esp, 0x70
ret
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
add esp, 0x70
ret
inc edx
cmp edx, ebx
jge 0x2c65851
jae 0x2c65b23
movzx esi, byte [ebp + edx]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x2c65ad8
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x2c65ad8
jmp 0x2c6584f
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x80], eax
add esp, 0x70
ret
mov eax, edx
mov ecx, ebx
call fcn.02b3e960
mov eax, edx
mov ecx, ebx
call fcn.02b3e900
call fcn.02b3e940
xor eax, eax
call fcn.02b3e900
nop
call fcn.02b3d440
jmp fcn.02c65620