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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x2ca9f51
sub esp, 0xc8
mov eax, 0
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov byte [esp + 0x37], 0
mov byte [esp + 0xd4], 0
mov eax, dword [esp + 0xcc]
movzx ecx, byte [eax + 0x68]
test cl, cl
jne 0x2ca9a42
mov dword [esp], eax
call fcn.02b458f0
lea eax, [0x2d5a354]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc0], eax
mov byte [esp + 0x37], 1
mov byte [eax + 8], 0
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x2ca9a1f
lea edi, [esp + 0x68]
mov edx, eax
xor eax, eax
call fcn.02b3eb1b
mov ecx, dword [edx + 0x7c]
test ecx, ecx
setg cl
sete bl
mov ebp, dword [edx + 0x78]
test ebp, ebp
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebp, ebx
or ecx, ebp
test cl, cl
je 0x2ca99d2
call fcn.02b5fbb0
lea edi, [esp + 0x90]
lea esi, [esp]
call fcn.02b3effe
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x44], ecx
xor edx, edx
sub edx, ecx
mov ebx, dword [eax + 0x7c]
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.02b3effe
xor ecx, ecx
mov ebp, dword [esp + 0x44]
sub ecx, ebp
mov ecx, 0
sbb ecx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
call fcn.02b5ef90
lea edi, [esp + 0x68]
lea esi, [esp + 0x1c]
call fcn.02b3effe
mov edx, dword [esp + 0xcc]
mov eax, dword [edx + 0xc]
lea ecx, [0x2d0f9e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xd0]
lea ebx, [eax + 0x18]
mov dword [esp + 0x50], ebx
mov dword [esp + 8], ebx
call fcn.02aec6b0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
movzx edx, byte [esp + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
test dl, dl
je 0x2ca9a51
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ecx
xor edx, edx
xor ebp, ebp
jmp 0x2ca9be2
mov byte [esp + 0xd4], 0
mov byte [esp + 0x37], 0
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xc8
ret
mov byte [esp + 0xd4], 0
add esp, 0xc8
ret
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x2ca9a90
call fcn.02aec110
mov eax, dword [0x311e9a0]
mov ecx, dword [esp]
test eax, eax
jne 0x2ca9a7d
mov eax, dword [esp + 0xcc]
mov dword [eax + 0x10], ecx
jmp 0x2ca9a90
mov edx, dword [esp + 0xcc]
lea edi, [edx + 0x10]
mov eax, ecx
call fcn.02b3e880
mov eax, edx
mov ecx, dword [eax + 0x10]
lea edx, [0x2d0fa60]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.02aec4e0
mov esi, dword [esp + 0xc]
lea edi, [esp + 0xa4]
call fcn.02b3efea
lea eax, [esp + 0xa4]
mov dword [esp], eax
call fcn.02caa940
nop
mov eax, dword [esp + 0xb8]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xbc]
cmp ebx, ecx
jae 0x2ca9b21
lea ebp, [0x2d219e0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.02b27650
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb4], edx
lea ecx, [eax + 1]
mov dword [esp + 0xb8], ecx
mov ecx, dword [0x311e9a0]
lea edi, [edx + eax*4]
test ecx, ecx
jne 0x2ca9b44
mov ecx, dword [esp + 0xd0]
mov dword [edx + eax*4], ecx
jmp 0x2ca9b50
mov eax, dword [esp + 0xd0]
call fcn.02b3e880
mov eax, dword [esp + 0xcc]
mov eax, dword [eax + 0x10]
lea ecx, [0x2d0fa60]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.02aeca30
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2ca9b92
lea esi, [esp + 0xa4]
call fcn.02b3efea
jmp 0x2ca9baf
lea eax, [0x2d23760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.02af0c20
mov byte [esp + 0xd4], 0
mov byte [esp + 0x37], 0
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xc8
ret
mov ebx, dword [esp + 0x4c]
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
mov byte [esp + 0x34], dl
test ebx, ebx
jle 0x2ca9eed
mov dword [esp + 0x38], ebx
test dl, dl
jne 0x2ca9e96
mov eax, dword [ecx + ebx*4 - 4]
lea edi, [esp + 0x54]
lea esi, [esp + 0x68]
call fcn.02b3effe
mov ecx, dword [esp + 0x54]
mov esi, edx
mov edx, dword [esp + 0x58]
test edx, 0x80000000
je 0x2ca9c5e
shl edx, 1
mov edi, ecx
shr ecx, 0x1f
or edx, ecx
mov dword [esp + 0x44], edx
mov ecx, edi
shl edi, 1
shl edx, 1
shr edi, 0x1f
or edx, edi
mov edi, edx
add edx, 0xd7b17f80
mov ebp, dword [esp + 0x44]
shr ebp, 0x1f
add edi, 0xd7b17f80
adc ebp, 0xd
mov edi, ebx
mov ebx, ebp
movzx ebp, byte [esp + 0x35]
jmp 0x2ca9c68
mov edx, dword [esp + 0x5c]
mov edi, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x48], eax
test ebx, ebx
sete bl
test edx, edx
sete dl
and ebx, edx
test bl, bl
je 0x2ca9c88
test ecx, 0x3fffffff
jne 0x2ca9c88
xor ecx, ecx
jmp 0x2ca9d01
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0x7c]
call fcn.02b3effe
lea edi, [esp]
lea esi, [esp + 0x7c]
call fcn.02b3effe
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.02b61390
lea edi, [esp + 0x90]
lea esi, [esp + 0x1c]
call fcn.02b3effe
lea edi, [esp]
lea esi, [esp + 0x90]
call fcn.02b3effe
lea edi, [esp + 0x14]
lea esi, [esp + 0x68]
call fcn.02b3effe
call fcn.02b5dc50
movzx eax, byte [esp + 0x28]
movzx ebp, byte [esp + 0x35]
movzx esi, byte [esp + 0x34]
mov edi, dword [esp + 0x38]
mov ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x33], cl
test cl, cl
je 0x2ca9d27
mov dword [esp], 4
lea ecx, [0x2d5a0a0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.02b1e4b0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.02cae6e0
mov eax, dword [esp + 0x38]
lea ecx, [eax - 1]
movzx edx, byte [esp + 4]
test dl, dl
jne 0x2ca9d48
movzx edx, byte [esp + 0x33]
test dl, dl
je 0x2ca9d57
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
jmp 0x2ca9bd2
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.02caa730
movzx eax, byte [esp + 0x10]
test al, al
je 0x2ca9e88
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
test edx, edx
je 0x2ca9da2
mov ecx, dword [esp + 0x38]
jmp 0x2ca9e8c
mov byte [esp + 0x36], al
nop
mov eax, dword [esp + 0xcc]
mov edx, dword [eax + 0x18]
lea ebp, [0x2d0f520]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.02aee230
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x2ca9e7d
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + 0x14]
cmp dword [eax + 8], edx
jne 0x2ca9e60
mov edi, dword [eax + 4]
test byte [edi], al
nop
mov ebx, dword [0x311e9a0]
mov ebp, dword [eax]
test ebx, ebx
jne 0x2ca9dff
mov dword [edi], ebp
jmp 0x2ca9e0a
mov ebx, eax
mov eax, ebp
call fcn.02b3e880
mov eax, ebx
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x311e9a0]
mov esi, dword [eax + 4]
test ebp, ebp
jne 0x2ca9e34
mov dword [ebx + 4], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x2ca9e5d
lea edi, [ebx + 4]
mov ebx, eax
mov eax, esi
call fcn.02b3e880
mov edi, ebx
xor eax, eax
call fcn.02b3e880
lea ebp, [ebx + 4]
mov edi, ebp
call fcn.02b3e880
lea edi, [ebx + 8]
xor eax, eax
call fcn.02b3e880
dec dword [edx + 0x14]
mov eax, dword [esp + 0x48]
mov edx, dword [ecx + 0x18]
lea ebx, [0x2d0f520]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.02aee960
movzx eax, byte [esp + 0x36]
mov ecx, dword [esp + 0x40]
jmp 0x2ca9e8c
mov ecx, dword [esp + 0x38]
mov edx, 1
jmp 0x2ca9bd2
test ebx, ebx
jle 0x2ca9eed
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0xc]
lea edx, [0x2d0f9e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.02aeca30
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 8], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2ca9ee2
mov eax, dword [esp + 0x4c]
mov dword [edi], eax
jmp 0x2ca9f11
mov eax, dword [esp + 0x4c]
call fcn.02b3e880
jmp 0x2ca9f11
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0xc]
lea edx, [0x2d0f9e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.02aecf10
movzx eax, byte [esp + 0x34]
test al, al
je 0x2ca9a51
movzx eax, byte [esp + 0x35]
mov byte [esp + 0xd4], al
mov byte [esp + 0x37], 0
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xc8
ret
call fcn.02b3d440
jmp fcn.02ca98b0