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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x2ca98a1
sub esp, 0xd8
mov eax, 0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov byte [esp + 0x23], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0xdc]
movzx ecx, byte [eax + 0x68]
test cl, cl
jne 0x2ca8ec4
mov ecx, dword [eax + 0x70]
test ecx, ecx
jge 0x2ca8ee5
mov eax, dword [0x30f74f8]
mov ecx, dword [0x30f74fc]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xd8
ret
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.02cae6e0
movzx eax, byte [esp + 4]
test al, al
jne 0x2ca9056
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.02cb1bc0
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
call fcn.02b458f0
lea eax, [0x2d5a354]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xd0], eax
mov byte [esp + 0x23], 1
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx]
test edx, edx
jne 0x2ca8f50
xor edx, edx
jmp 0x2ca8f84
mov edx, dword [eax + 0x18]
lea ebp, [0x2d0f520]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.02aee0e0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
test eax, eax
setne al
mov ecx, dword [esp + 0xe0]
mov edx, eax
mov eax, dword [esp + 0xdc]
test dl, dl
jne 0x2ca9025
lea esi, [ecx + 0xc]
lea edi, [esp + 0x7c]
call fcn.02b3efea
lea edi, [esp + 0xb4]
lea esi, [esp + 0x7c]
call fcn.02b3efea
lea edi, [esp + 0x98]
xor eax, eax
call fcn.02b3eb19
mov ecx, dword [esp + 0xdc]
mov edx, dword [ecx + 0x10]
lea ebx, [0x2d0fa60]
mov dword [esp], ebx
mov dword [esp + 4], edx
lea edx, [esp + 0xb4]
mov dword [esp + 8], edx
call fcn.02aec6b0
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x21], cl
mov esi, dword [esp + 0xc]
lea edi, [esp + 0x98]
call fcn.02b3efea
lea edi, [esp + 0x60]
lea esi, [esp + 0x98]
call fcn.02b3efea
movzx ecx, byte [esp + 0x21]
test cl, cl
je 0x2ca9077
mov edx, dword [esp + 0xe0]
mov ebx, dword [edx]
test ebx, ebx
jne 0x2ca97dd
jmp 0x2ca95d1
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov byte [esp + 0x23], 0
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xd8
ret
mov eax, dword [0x30f74e8]
mov ecx, dword [0x30f74ec]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xd8
ret
mov eax, dword [esp + 0xdc]
movzx ecx, byte [eax + 8]
test cl, cl
jne 0x2ca9161
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x2ca90c2
call fcn.02aec110
mov eax, dword [0x311e9a0]
mov ecx, dword [esp]
test eax, eax
jne 0x2ca90af
mov eax, dword [esp + 0xdc]
mov dword [eax + 0xc], ecx
jmp 0x2ca90c2
mov edx, dword [esp + 0xdc]
lea edi, [edx + 0xc]
mov eax, ecx
call fcn.02b3e880
mov eax, edx
lea edi, [esp + 0xb4]
lea esi, [esp + 0x7c]
call fcn.02b3efea
mov ecx, dword [eax + 0xc]
lea edx, [0x2d0f9e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.02aec4e0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [ebx + 0x70]
test ebp, ebp
jne 0x2ca9111
mov ebp, 2
cmp ebp, ecx
jle 0x2ca912c
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], edx
mov ebp, dword [esp + 0xe0]
xor esi, esi
jmp 0x2ca9199
mov eax, dword [0x30f7560]
mov ecx, dword [0x30f7564]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
mov byte [esp + 0x23], 0
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xd8
ret
mov eax, dword [0x30f74d8]
mov ecx, dword [0x30f74dc]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
mov byte [esp + 0x23], 0
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xd8
ret
inc esi
mov ebx, edi
cmp esi, ecx
jge 0x2ca9216
mov edi, ebx
lea ebx, [edx + esi*4]
cmp dword [ebx], ebp
jne 0x2ca9196
mov dword [esp + 0x34], esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
lea eax, [0x2d37ee0]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebp
lea ecx, [0x2d49123]
mov dword [esp], ecx
mov dword [esp + 4], 0x1d
lea edx, [esp + 0x44]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.02c62a20
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0xdc]
jmp 0x2ca9196
lea edi, [esp + 0xb4]
lea esi, [esp + 0x7c]
call fcn.02b3efea
mov ecx, dword [esp + 0x28]
mov esi, ebx
lea ebx, [ecx + 1]
cmp eax, ebx
jae 0x2ca9274
lea ebp, [0x2d37ee0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call fcn.02b27650
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0xdc]
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], eax
mov ebx, dword [0x311e9a0]
lea esi, [edx + ecx*4]
test ebx, ebx
jne 0x2ca9292
mov dword [edx + ecx*4], ebp
jmp 0x2ca929b
mov edi, esi
mov eax, ebp
call fcn.02b3e880
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0xc]
lea edx, [0x2d0f9e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.02aeca30
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 8], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2ca92e6
mov eax, dword [esp + 0x40]
mov dword [edi], eax
jmp 0x2ca92ef
mov eax, dword [esp + 0x40]
call fcn.02b3e880
mov eax, dword [esp + 0xdc]
lea ecx, [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 4], ecx
call fcn.02cb2580
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
je 0x2ca9446
mov edx, dword [eax + 0x18]
test edx, edx
je 0x2ca9329
mov edx, dword [edx]
jmp 0x2ca932b
xor edx, edx
cmp edx, ecx
jle 0x2ca9446
mov ecx, dword [eax + 0x14]
nop
mov edx, dword [ecx + 0x14]
test edx, edx
jne 0x2ca9342
xor edx, edx
jmp 0x2ca9345
mov edx, dword [ecx + 4]
mov ebx, dword [edx + 0x10]
mov ebp, dword [edx + 0xc]
lea esi, [0x2d37ee0]
cmp ebp, esi
jne 0x2ca95b4
nop
cmp dword [edx + 8], ecx
jne 0x2ca93e9
mov edi, dword [edx + 4]
test byte [edi], al
mov ebp, dword [0x311e9a0]
mov esi, dword [edx]
test ebp, ebp
jne 0x2ca9378
mov dword [edi], esi
jmp 0x2ca9383
mov ebp, eax
mov eax, esi
call fcn.02b3e880
mov eax, ebp
mov ebp, dword [edx]
test byte [ebp], al
mov esi, dword [0x311e9a0]
mov edi, ebx
mov ebx, dword [edx + 4]
test esi, esi
jne 0x2ca93b0
mov dword [ebp + 4], ebx
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
jmp 0x2ca93e4
add ebp, 4
mov esi, edi
mov edi, ebp
mov eax, ebx
call fcn.02b3e880
mov edi, edx
xor eax, eax
call fcn.02b3e880
lea ebx, [edx + 4]
mov edi, ebx
call fcn.02b3e880
lea edi, [edx + 8]
xor eax, eax
call fcn.02b3e880
mov eax, dword [esp + 0xdc]
mov edi, esi
dec dword [ecx + 0x14]
jmp 0x2ca93eb
mov edi, ebx
mov dword [esp + 0x3c], edi
mov edx, dword [eax + 0x18]
lea ebx, [0x2d0f520]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
call fcn.02aee960
mov eax, dword [0x30f7558]
mov ecx, dword [0x30f755c]
mov edx, dword [esp + 0x3c]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.02cb1c10
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
call fcn.02caa000
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x78]
test ecx, ecx
seta dl
mov ebx, dword [eax + 0x7c]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
and ebp, edx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x2ca9532
mov edx, dword [esp + 0xe0]
mov ebp, dword [edx]
test ebp, ebp
jne 0x2ca9539
mov ebp, dword [edx + 0x78]
test ebp, ebp
je 0x2ca94a3
mov dword [esp], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call fcn.02b5d760
mov eax, dword [esp + 0xe0]
jmp 0x2ca9539
lea eax, [0x2d15e80]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
lea ecx, [0x2cb60c0]
mov dword [eax], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2ca94d3
mov ecx, dword [esp + 0xe0]
mov dword [eax + 4], ecx
jmp 0x2ca94e6
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe0]
call fcn.02b3e880
mov eax, ecx
mov ecx, dword [esp + 0xdc]
mov edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.02b5d860
mov eax, dword [0x311e9a0]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x2ca951d
mov eax, dword [esp + 0xe0]
mov dword [eax + 0x78], ecx
jmp 0x2ca9539
mov edx, dword [esp + 0xe0]
lea edi, [edx + 0x78]
mov eax, ecx
call fcn.02b3e880
mov eax, edx
jmp 0x2ca9539
mov edx, dword [esp + 0xe0]
call fcn.02b5fbb0
lea edi, [esp + 0x4c]
lea esi, [esp]
call fcn.02b3effe
mov eax, dword [esp + 0xe0]
lea edi, [eax + 0x64]
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2ca9569
lea esi, [esp + 0x4c]
call fcn.02b3effe
jmp 0x2ca9583
lea eax, [0x2d3cd20]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x4c]
mov dword [esp + 8], eax
call fcn.02af0c20
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov byte [esp + 0x23], 0
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xd8
ret
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x2d0dec0]
mov dword [esp + 8], eax
call fcn.02ae8b90
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov eax, edx
mov edx, dword [esp + 0x68]
mov ecx, ebp
mov ebp, dword [esp + 0x6c]
mov esi, ebx
sub ebx, ebp
mov edi, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x34], edx
add ebx, edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x70]
test ebx, ebx
jle 0x2ca96b7
mov dword [esp + 0x24], ebx
cmp esi, ebp
jg 0x2ca9645
mov ebp, dword [esp + 0x34]
test ebp, ebp
jne 0x2ca961d
xor ecx, ecx
jmp 0x2ca9681
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x60], edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], edi
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x6c]
cmp ecx, ebp
jbe 0x2ca97b1
mov ecx, dword [edx + ebp*4]
lea edi, [edx + ebp*4]
mov esi, dword [0x311e9a0]
test esi, esi
jne 0x2ca9672
mov dword [edx + ebp*4], 0
jmp 0x2ca967d
mov edx, eax
xor eax, eax
call fcn.02b3e880
mov eax, edx
inc dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.02caa730
movzx eax, byte [esp + 0x10]
test al, al
je 0x2ca95ca
mov eax, dword [esp + 0x24]
test eax, eax
mov eax, dword [esp + 0xe0]
setg cl
mov byte [esp + 0x22], cl
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x6c]
add edx, dword [esp + 0x74]
test edx, edx
jne 0x2ca9707
lea edi, [esp + 0xb4]
lea esi, [esp + 0x7c]
call fcn.02b3efea
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x10]
lea edx, [0x2d0fa60]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.02aecf10
jmp 0x2ca9773
lea edi, [esp + 0xb4]
lea esi, [esp + 0x7c]
call fcn.02b3efea
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x10]
lea edx, [0x2d0fa60]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.02aeca30
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2ca9759
lea esi, [esp + 0x60]
call fcn.02b3efea
jmp 0x2ca9773
lea eax, [0x2d23760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x60]
mov dword [esp + 8], eax
call fcn.02af0c20
movzx eax, byte [esp + 0x22]
test al, al
je 0x2ca9077
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov byte [esp + 0x23], 0
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.02b45c90
add esp, 0xd8
ret
mov eax, ebp
call fcn.02b3e900
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.02caa730
mov eax, dword [esp + 0xe0]
mov edx, eax
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov eax, edx
mov edx, dword [esp + 0x68]
mov ecx, ebp
mov ebp, dword [esp + 0x6c]
mov esi, ebx
sub ebx, ebp
mov edi, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x34], edx
add ebx, edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x70]
test ebx, ebx
jle 0x2ca9886
cmp ebp, esi
jl 0x2ca9849
mov ebx, dword [esp + 0x34]
test ebx, ebx
jne 0x2ca9821
xor ecx, ecx
jmp 0x2ca97b8
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], edi
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x6c]
cmp ecx, ebx
jbe 0x2ca988d
mov ecx, dword [edx + ebx*4]
lea edi, [edx + ebx*4]
mov ebp, dword [0x311e9a0]
test ebp, ebp
jne 0x2ca9872
mov dword [edx + ebx*4], 0
jmp 0x2ca987d
mov edx, eax
xor eax, eax
call fcn.02b3e880
mov eax, edx
inc dword [esp + 0x6c]
jmp 0x2ca97b8
xor ecx, ecx
jmp 0x2ca96ba
mov eax, ebx
call fcn.02b3e900
nop
call fcn.02b123e0
add esp, 0xd8
ret
call fcn.02b3d440
jmp fcn.02ca8e60