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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc8]
cmp eax, dword [ecx + 8]
jbe 0x2c95495
sub esp, 0x148
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov eax, dword [esp + 0x14c]
mov ecx, dword [eax]
mov dword [esp + 0x12c], ecx
mov dword [esp], ecx
call fcn.02c92810
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x130], edx
mov dword [esp + 0xe4], 0x10
lea ebx, [0x2d5a078]
mov dword [esp + 0xf4], ebx
mov ebx, dword [esp + 0x12c]
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
lea ebp, [esp + 0xe4]
mov dword [esp], ebp
call fcn.02b118b0
test eax, eax
jne 0x2c94b72
mov dword [esp + 0xac], 0x10
lea eax, [0x2d5a094]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0xd4], eax
lea ecx, [esp + 0x160]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0xac]
mov dword [esp], ecx
call fcn.02b118b0
test eax, eax
jne 0x2c94b65
mov eax, dword [esp + 0x14c]
mov ebx, dword [eax + 4]
mov ebp, dword [ebx + 0x58]
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x2c94b12
je 0x2c94ae6
lea edi, [0x2d268a0]
cmp dword [esi + 4], edi
je 0x2c94b12
mov esi, dword [ebx + 0x30]
test esi, esi
xchg edi, ebx
setne bl
xchg edi, ebx
mov ecx, ebx
mov ebx, dword [ebx + 0x2c]
test ebx, ebx
mov edx, eax
setne al
or edi, eax
xchg edi, eax
test al, al
xchg edi, eax
jne 0x2c94b1a
mov esi, 0xffffffff
mov ebx, 0xffffffff
jmp 0x2c94b1a
mov ecx, ebx
mov edx, eax
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x134], ebp
test ebp, ebp
setne al
mov byte [esp + 0x2e], al
cmp esi, 0xffffffff
xchg edi, ebx
setne bl
xchg edi, ebx
cmp ebx, 0xffffffff
setne al
or eax, edi
mov byte [esp + 0x2f], al
mov edi, dword [esp + 0x154]
mov byte [esp + 0x78], al
xor eax, eax
mov byte [esp + 0x2d], al
xor eax, eax
mov byte [esp + 0x2c], al
movzx eax, byte [esp + 0x78]
jmp 0x2c94bb0
nop
call fcn.02b123e0
add esp, 0x148
ret
nop
call fcn.02b123e0
add esp, 0x148
ret
mov edi, dword [esp + 0x154]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x130]
mov eax, ecx
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x14c]
mov ebp, dword [esp + 0x134]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
movzx esi, byte [esp + 0x2d]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x2c94e59
mov ebp, dword [esp + 0x50]
dec ebp
mov esi, dword [esp + 0x54]
cmp esi, ebp
jb 0x2c9548b
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x150]
mov ecx, dword [eax + 0x10]
mov dword [esp], edi
mov edx, dword [esp + 0x130]
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
movzx ebx, byte [esp + 0x2f]
test bl, bl
je 0x2c94cdf
mov ebp, dword [esp + 0x38]
mov esi, ebp
sub ebp, ecx
mov edi, ecx
sar ecx, 0x1f
sub esi, edi
mov esi, dword [esp + 0x3c]
sbb esi, ecx
test ebp, ebp
mov ecx, ebx
sete bl
test esi, esi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x2c94cd6
test eax, eax
jne 0x2c94cd6
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
cmp eax, edx
ja 0x2c95484
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebp
mov ecx, dword [esp + 0x150]
mov ebx, dword [ecx + 0x10]
mov ebp, dword [esp + 0x154]
mov dword [esp], ebp
mov esi, dword [esp + 0x54]
sub esi, eax
mov dword [esp + 0x64], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
mov ebp, dword [esp + 0x130]
add esi, ebp
mov dword [esp + 4], esi
sub edx, eax
mov dword [esp + 8], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0xc], edx
call ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov edx, ecx
sub ecx, eax
mov ebx, eax
sar eax, 0x1f
sub edx, ebx
mov esi, dword [esp + 0x60]
sbb esi, eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, ecx
movzx ecx, byte [esp + 0x2f]
test esi, esi
jge 0x2c94ce9
jmp 0x2c94d9c
mov ecx, ebx
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x128], edx
mov dword [esp + 0x4c], eax
mov ebx, dword [0x30f735c]
cmp dword [0x30f7358], eax
jne 0x2c94d53
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.02ae3610
movzx eax, byte [esp + 0xc]
test al, al
je 0x2c94d3b
movzx ecx, byte [esp + 0x2f]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
xor eax, eax
xor edx, edx
mov ebx, 1
jmp 0x2c94d60
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x2f]
mov edx, dword [esp + 0x128]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
test eax, eax
jne 0x2c94e06
movzx ebx, byte [esp + 0x2d]
mov byte [esp + 0x2d], bl
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x54]
cmp edi, ebx
ja 0x2c9547b
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x70]
jmp 0x2c951a7
test eax, eax
je 0x2c94b7f
jmp 0x2c95452
mov eax, dword [0x30f7608]
mov dword [esp + 0x4c], eax
mov ecx, dword [0x30f760c]
mov dword [esp + 0x128], ecx
mov edx, dword [esp + 0x14c]
mov edx, dword [edx + 0xc]
mov ebx, dword [esp + 0x12c]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.02c9afb0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.02b123e0
add esp, 0x148
ret
mov ecx, dword [esp + 0x14c]
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esp + 0x12c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.02c9afb0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.02b123e0
add esp, 0x148
ret
movzx eax, byte [esp + 0x2c]
test al, al
jne 0x2c9512f
test ebp, ebp
jne 0x2c94e75
xor eax, eax
xor ecx, ecx
xor ebx, ebx
jmp 0x2c94f0f
mov eax, dword [esp + 0x12c]
test byte [eax], al
lea ecx, [eax + 0x30]
mov dword [esp + 0x144], ecx
mov dword [esp], ecx
call fcn.02b458f0
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov ecx, dword [esp + 0x138]
mov dword [esp + 4], ecx
call fcn.02c96990
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov dword [esp + 0x11c], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x144]
mov dword [esp], eax
call fcn.02b45c90
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x164]
test eax, eax
jne 0x2c950d3
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x12c]
test byte [edx], al
lea ebp, [edx + 0x30]
mov dword [esp + 0x144], ebp
mov dword [esp], ebp
call fcn.02b458f0
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0xa0]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x144]
mov dword [esp], edx
call fcn.02b45c90
mov eax, dword [esp + 0x12c]
lea ecx, [eax + 0xd8]
mov dword [esp + 0x144], ecx
mov dword [esp], ecx
call fcn.02b458f0
mov dword [esp + 0x80], 4
lea eax, [0x2d5a354]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x80]
mov dword [esp], eax
call fcn.02b118b0
test eax, eax
jne 0x2c950c6
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x2c95013
mov ecx, dword [esp + 0x14c]
mov ecx, dword [ecx + 0xc]
mov edx, dword [esp + 0x12c]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov byte [esp + 8], 1
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
call fcn.02c947e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
jmp 0x2c9507e
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x74]
mov edx, dword [esp + 0x14c]
mov edx, dword [edx + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov byte [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.02c8a6a0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x12c]
mov eax, dword [eax + 0x6c]
mov dword [esp], eax
call fcn.02c63cd0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test eax, eax
je 0x2c950b9
mov eax, dword [esp + 0x160]
test eax, eax
jne 0x2c950b9
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], edx
nop
call fcn.02b123e0
add esp, 0x148
ret
nop
call fcn.02b123e0
add esp, 0x148
ret
mov edx, dword [esp + 0x14c]
mov ebx, dword [edx + 0xc]
mov ebp, dword [esp + 0x12c]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.02c9afb0
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x12c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 1
call fcn.02c96f30
nop
call fcn.02b123e0
add esp, 0x148
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
nop
call fcn.02b123e0
add esp, 0x148
ret
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x128], eax
mov edx, dword [esp + 0x144]
mov dword [esp], edx
call fcn.02b45c90
mov eax, dword [esp + 0x14c]
movzx ecx, byte [esp + 0x2c]
mov edx, dword [esp + 0x128]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
movzx ecx, byte [esp + 0x2f]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
test edi, edi
jle 0x2c94d8f
test eax, eax
jne 0x2c94d8f
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.02c95530
mov eax, dword [esp + 8]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [0x30f762c]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x128], ebp
mov esi, dword [esp + 0xc]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x140], edi
cmp dword [0x30f7628], ecx
jne 0x2c9525d
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x124], edx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.02ae3610
movzx eax, byte [esp + 0xc]
test al, al
jne 0x2c95429
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x124]
mov ebp, dword [esp + 0x128]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x140]
mov ebx, dword [0x30f7634]
cmp dword [0x30f7630], ecx
jne 0x2c9529e
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.02ae3610
movzx eax, byte [esp + 0xc]
test al, al
jne 0x2c953cb
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x128]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x140]
test esi, esi
jne 0x2c953b0
mov eax, dword [esp + 0x12c]
test byte [eax], al
lea ecx, [eax + 0xd8]
mov dword [esp + 0x144], ecx
mov dword [esp], ecx
call fcn.02b458f0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
cmp edx, ecx
jb 0x2c95476
mov ebx, dword [esp + 0x40]
cmp ebx, ecx
jb 0x2c9546d
sub ebx, ecx
mov dword [esp + 0x40], ebx
mov eax, edx
sub edx, ecx
mov dword [esp + 0x44], edx
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, ecx
mov esi, dword [esp + 0x120]
add edx, esi
mov dword [esp + 0x120], edx
movzx edi, byte [esp + 0x2d]
xchg edi, eax
test al, al
xchg edi, eax
je 0x2c95326
test ebx, ebx
jne 0x2c95326
movzx edi, byte [esp + 0x2e]
xor edi, 1
xchg edi, eax
mov byte [esp + 0x2c], al
xchg edi, eax
jmp 0x2c95334
mov dword [esp + 0x68], eax
xor eax, eax
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x12c]
mov ebx, dword [edx + 0x74]
mov ebp, dword [esp + 0x14c]
mov edi, dword [ebp + 0xc]
mov dword [esp], ebx
mov dword [esp + 4], edi
movzx ebx, byte [esp + 0x2c]
mov byte [esp + 8], bl
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.02c8a6a0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x2c95152
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x6c]
mov dword [esp], ecx
call fcn.02c63cd0
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
jmp 0x2c95152
mov dword [esp + 0x160], edi
mov dword [esp + 0x164], ebp
nop
call fcn.02b123e0
add esp, 0x148
ret
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x12c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.02c9afb0
mov eax, dword [esp + 0x140]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.02b123e0
add esp, 0x148
ret
mov eax, dword [esp + 0x140]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.02b123e0
add esp, 0x148
ret
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
nop
call fcn.02b123e0
add esp, 0x148
ret
mov eax, ecx
mov ecx, ebx
call fcn.02b3e960
call fcn.02b3e940
mov ecx, edi
mov edx, ebx
call fcn.02b3e940
mov ecx, edx
call fcn.02b3e960
mov ecx, ebp
mov edx, esi
call fcn.02b3e940
nop
call fcn.02b3d440
jmp fcn.02c949a0