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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x2c997ff
sub esp, 0x50
mov eax, 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x1f], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov edx, dword [eax + 0x80]
test edx, edx
jne 0x2c997a5
mov dword [esp + 0x30], ecx
lea ecx, [eax + 0x14]
mov dword [esp + 0x3c], ecx
mov dword [esp], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0xc], edx
call fcn.02c8eaa0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x7c]
cmp ecx, 0xffffffff
setne bl
mov ebp, dword [eax + 0x78]
cmp ebp, 0xffffffff
xchg esi, ebx
setne bl
xchg esi, ebx
or ebx, esi
test bl, bl
je 0x2c99595
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x64]
cmp ebx, ebp
xchg esi, ebx
seta bl
xchg esi, ebx
mov edi, ebx
sar ebx, 0x1f
cmp ecx, ebx
sete dl
setl cl
and edx, esi
or edx, ecx
test dl, dl
je 0x2c994f6
mov dword [esp + 0x64], ebp
mov ecx, dword [esp + 0x68]
test ecx, ecx
jne 0x2c994ba
lea eax, [0x2d17160]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x4a
lea ecx, [0x2d532b0]
mov dword [eax], ecx
lea ecx, [0x2da439c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x54]
mov ebx, dword [edx + 0xc]
mov ebp, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], 1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.02c9afb0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [eax + 0x80], edx
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c994da
mov dword [eax + 0x84], ecx
jmp 0x2c994eb
lea edi, [eax + 0x84]
mov edx, eax
mov eax, ecx
call fcn.02b3e880
mov eax, edx
mov eax, dword [eax + 0x78]
mov dword [esp + 0x64], eax
add esp, 0x50
ret
sub ebp, edi
mov dword [eax + 0x78], ebp
mov ecx, dword [esp + 0x2c]
sbb ecx, ebx
mov dword [eax + 0x7c], ecx
mov ecx, dword [esp + 0x68]
mov edx, dword [0x30f735c]
cmp dword [0x30f7358], ecx
je 0x2c9951a
xor ecx, ecx
jmp 0x2c99539
mov dword [esp], ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.02ae3610
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x54]
test cl, cl
je 0x2c99595
mov ecx, dword [eax + 0x78]
test ecx, ecx
seta cl
mov edx, dword [eax + 0x7c]
test edx, edx
setg dl
sete bl
and ebx, ecx
or ebx, edx
test bl, bl
je 0x2c99595
mov ecx, dword [0x30f7384]
mov edx, dword [0x30f7380]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov dword [eax + 0x80], edx
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c99584
mov dword [eax + 0x84], ecx
jmp 0x2c99591
lea edi, [eax + 0x84]
mov eax, ecx
call fcn.02b3e880
add esp, 0x50
ret
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x2c997a1
mov eax, dword [esp + 0x30]
test byte [eax], al
lea ecx, [eax + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp], ecx
call fcn.02b458f0
lea eax, [0x2d5a354]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], ecx
mov byte [esp + 0x1f], 1
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x44]
mov ebx, dword [ecx + 0x48]
test ebx, ebx
je 0x2c995e9
mov ebx, dword [ebx]
cmp ebx, edx
jge 0x2c995e9
mov ebp, ebx
mov ebx, edx
mov edx, ebp
jmp 0x2c995eb
mov ebx, edx
cmp edx, 0x20000000
jge 0x2c99622
lea ebp, [edx - 0x40000000]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov esi, ebx
sub ebx, edx
lea edx, [ebx + 0x40000000]
cmp ebp, edx
setl bl
test esi, esi
xchg esi, ebx
setg bl
xchg esi, ebx
xchg esi, eax
cmp al, bl
xchg esi, eax
jne 0x2c99624
mov dword [ecx + 0x44], edx
jmp 0x2c99624
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x68]
test edx, edx
je 0x2c99634
xor edx, edx
jmp 0x2c996b1
mov edx, dword [esp + 0x54]
mov ebx, dword [edx + 0x70]
mov esi, dword [edx + 0x74]
test esi, esi
je 0x2c9964a
mov esi, dword [esi]
cmp esi, ebx
jge 0x2c9964a
mov ebx, esi
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.02c8e9e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 4]
cmp eax, 0x3ff000
jge 0x2c9969b
lea ecx, [eax - 0x400000]
neg ecx
mov edx, dword [esp + 0x54]
mov ebx, dword [edx + 0x70]
mov ebp, ebx
sub ebx, eax
lea eax, [ebx + 0x400000]
cmp ecx, eax
setl bl
test ebp, ebp
xchg ebp, ebx
setg bl
xchg ebp, ebx
xchg ebp, eax
cmp al, bl
xchg ebp, eax
jne 0x2c996a1
mov dword [edx + 0x70], eax
jmp 0x2c996a1
mov edx, dword [esp + 0x54]
xor ecx, ecx
lea eax, [0x2d5a354]
mov ebp, dword [esp + 0x28]
mov edx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], edx
test ebp, ebp
jne 0x2c996c1
test edx, edx
je 0x2c9975f
lea eax, [ecx + 0xd8]
mov dword [esp + 0x34], eax
mov dword [esp], eax
call fcn.02b458f0
lea eax, [0x2d5a354]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov byte [esp + 0x1f], 3
mov eax, dword [esp + 0x28]
test eax, eax
je 0x2c99718
cmp eax, 0x7fffffff
ja 0x2c997dd
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x74]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.02c8b980
mov eax, dword [esp + 0x20]
test eax, eax
je 0x2c99749
cmp eax, 0x7fffffff
ja 0x2c997c5
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x74]
mov ebx, dword [esp + 0x54]
mov ebx, dword [ebx + 0xc]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.02c8b980
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x6c]
mov dword [esp], eax
call fcn.02c63cd0
mov eax, 3
jmp 0x2c99764
mov eax, 1
test al, 2
je 0x2c99785
and eax, 0xfffffffd
mov byte [esp + 0x1e], al
mov byte [esp + 0x1f], al
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
call fcn.02b45c90
movzx eax, byte [esp + 0x1e]
test al, 1
je 0x2c9979d
and eax, 0xfffffffe
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0x50
ret
add esp, 0x50
ret
mov dword [esp + 0x64], 0
mov ecx, dword [eax + 0x80]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
add esp, 0x50
ret
lea eax, [0x2d0e5c0]
mov dword [esp], eax
lea eax, [0x2da231c]
mov dword [esp + 4], eax
call fcn.02b13450
lea eax, [0x2d0e5c0]
mov dword [esp], eax
lea eax, [0x2da231c]
mov dword [esp + 4], eax
call fcn.02b13450
nop
call fcn.02b123e0
add esp, 0x50
ret
call fcn.02b3d440
jmp fcn.02c99360