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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x64]
cmp eax, dword [ecx + 8]
jbe 0x2c9dcb2
sub esp, 0xe4
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
nop
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x78]
mov edx, dword [eax + 0x7c]
test ecx, ecx
jne 0x2c9d035
nop
mov edx, dword [0x30f65d4]
lea ecx, [0x2da7f40]
nop
mov eax, dword [ecx + 0x1c]
mov dword [esp], edx
lea ecx, [0x2d11680]
mov dword [esp + 4], ecx
lea ecx, [0x311e790]
mov dword [esp + 8], ecx
call eax
mov eax, dword [esp + 0x10]
lea ecx, [0x2d1a280]
cmp dword [esp + 0xc], ecx
je 0x2c9d064
xor eax, eax
mov dword [esp + 0xb0], eax
test eax, eax
je 0x2c9d0b6
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x2c9d0b6
mov dword [esp + 0x40], 8
lea ecx, [0x2d5a058]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x100]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x40]
mov dword [esp], ecx
call fcn.02b118b0
test eax, eax
jne 0x2c9d0a9
jmp 0x2c9d0b6
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov byte [esp + 0x2f], 0
mov dword [esp + 0x70], 0xc
lea eax, [0x2d5a05c]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x2f]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x9c], eax
lea ecx, [esp + 0x100]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x70]
mov dword [esp], ecx
call fcn.02b118b0
test eax, eax
jne 0x2c9d284
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.02c9de30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x2c9d181
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x2c9d15a
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.02c9de30
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
jmp 0x2c9d181
mov eax, dword [0x30f7500]
mov ecx, dword [0x30f7504]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.02c9e020
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 8]
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x3c], ebx
mov dword [esp], ecx
call fcn.02c1c9e0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0xf4]
test dl, dl
je 0x2c9d236
mov edx, dword [esp + 0xe8]
mov ebx, dword [edx + 8]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
test ebp, ebp
je 0x2c9d23d
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x2c9d23d
mov dword [esp], 0
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
lea edx, [0x2d3f3dc]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 3
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.02b2aad0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xe8]
mov ebp, ecx
mov ebx, eax
jmp 0x2c9d280
mov edx, dword [esp + 0xe8]
mov ebx, dword [edx]
cmp dword [edx + 4], 7
jne 0x2c9d27c
cmp dword [ebx], 0x4e4e4f43
jne 0x2c9d27c
cmp word [ebx + 4], 0x4345
jne 0x2c9d27c
cmp byte [ebx + 6], 0x54
jne 0x2c9d27c
mov ebx, dword [edx + 8]
mov ebp, dword [ebx + 0x20]
test ebp, ebp
jne 0x2c9d27c
mov ebp, dword [ebx + 0xc]
mov ebx, dword [ebx + 8]
test ebp, ebp
jne 0x2c9d280
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0xb8]
jmp 0x2c9d280
mov ebp, ecx
mov ebx, eax
xor eax, eax
jmp 0x2c9d292
nop
call fcn.02b123e0
add esp, 0xe4
ret
inc eax
cmp eax, ebp
jge 0x2c9d2f0
jae 0x2c9dcaa
movzx esi, byte [ebx + eax]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
jb 0x2c9d2ae
xchg esi, eax
cmp al, 0x7f
xchg esi, eax
jne 0x2c9d291
lea eax, [0x2d17160]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x36
lea ecx, [0x2d5170c]
mov dword [eax], ecx
lea ecx, [0x2da439c]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov dword [esp + 0x38], ebp
mov dword [esp + 0xb4], ebx
lea eax, [0x2d156a0]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xf0]
mov dword [esp + 8], ecx
call fcn.02ae91f0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x2c9d33c
mov ecx, dword [esp + 0xec]
mov eax, dword [esp + 0xf0]
xor edx, edx
jmp 0x2c9d41a
mov eax, dword [esp + 0xec]
lea ecx, [0x2da4248]
cmp eax, ecx
jne 0x2c9d356
mov edx, dword [esp + 0xf0]
jmp 0x2c9d35b
mov edx, 0
jne 0x2c9d36d
cmp dword [edx + 0xc], 0x1000
jl 0x2c9d36d
mov eax, edx
jmp 0x2c9d412
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0x1000
call fcn.02b274d0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc0], eax
lea ecx, [0x2d252a0]
mov dword [esp], ecx
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 0xc], 0x1000
mov dword [eax + 0x10], 0x1000
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2c9d3cc
mov ecx, dword [esp + 0xc0]
mov dword [eax + 8], ecx
jmp 0x2c9d3df
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0xc0]
call fcn.02b3e880
mov eax, ecx
mov ecx, dword [esp + 0xec]
mov dword [eax + 0x18], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2c9d3ff
mov ecx, dword [esp + 0xf0]
mov dword [eax + 0x1c], ecx
jmp 0x2c9d412
lea edi, [eax + 0x1c]
mov ecx, eax
mov eax, dword [esp + 0xf0]
call fcn.02b3e880
mov eax, ecx
lea ecx, [0x2da4248]
mov edx, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0xbc], edx
mov ebx, dword [esp + 0xe8]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
test ebp, ebp
jne 0x2c9d447
mov ebp, 3
lea esi, [0x2d3f424]
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.02ae8ee0
mov eax, dword [esp + 8]
lea ecx, [0x2d0e5c0]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.02ae8ee0
mov eax, dword [esp + 8]
lea ecx, [0x2d0e5c0]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
lea ebx, [0x2d42b81]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x10
lea ebx, [esp + 0xd4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 2
call fcn.02b9d2e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
mov eax, dword [esp + 0x100]
test eax, eax
jne 0x2c9dc9d
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
call fcn.02ae8ee0
mov eax, dword [esp + 8]
lea ecx, [0x2d0e5c0]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], edx
lea ebx, [0x2d40a13]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0xa
lea ebx, [esp + 0xcc]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.02b9d2e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
mov eax, dword [esp + 0x100]
test eax, eax
jne 0x2c9dc90
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x2c9d65c
mov ecx, dword [eax + 0x30]
test ecx, ecx
je 0x2c9d65c
lea eax, [0x2d09d60]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2c9d61d
mov eax, dword [esp + 0xb8]
mov dword [edi], eax
jmp 0x2c9d629
mov eax, dword [esp + 0xb8]
call fcn.02b3e880
mov eax, dword [esp + 0xb0]
mov edx, dword [eax + 0x30]
mov ecx, dword [edx]
lea ebx, [0x2d3f609]
mov dword [esp], ebx
mov dword [esp + 4], 4
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ecx
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x1c]
lea edx, [0x2d35740]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x2d40b35]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xa
call fcn.02aefe40
movzx eax, byte [esp + 0x14]
test al, al
jne 0x2c9d6a0
mov ecx, 0x12
lea eax, [0x2d43aca]
jmp 0x2c9d6cc
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x1c]
mov dword [esp], ecx
lea ecx, [0x2d40b35]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
call fcn.02c64880
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x2c9d808
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.02ae8ee0
mov eax, dword [esp + 8]
lea ecx, [0x2d0e5c0]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
lea edx, [0x2d42ef1]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x10
lea edx, [esp + 0xcc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.02b9d2e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
mov eax, dword [esp + 0x100]
test eax, eax
jne 0x2c9dc83
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x2c9d808
mov ecx, dword [eax + 0x30]
test ecx, ecx
je 0x2c9d808
lea eax, [0x2d09d60]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2c9d7c2
mov eax, dword [esp + 0xa8]
mov dword [edi], eax
jmp 0x2c9d7ce
mov eax, dword [esp + 0xa8]
call fcn.02b3e880
mov eax, dword [esp + 0xb0]
mov edx, dword [eax + 0x30]
mov ecx, dword [edx]
lea ebx, [0x2d40b35]
mov dword [esp], ebx
mov dword [esp + 4], 0xa
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ecx
mov eax, dword [esp + 0xb0]
lea eax, [0x2d3a4a0]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.02ca25b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], edx
test ebx, ebx
jne 0x2c9dc76
mov dword [esp + 0xac], eax
mov dword [esp], eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xa4]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xc], ebx
call fcn.02ca34b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
test edx, edx
jne 0x2c9dc69
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x1c]
mov edx, dword [0x30f6d50]
mov dword [esp], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
call fcn.02c9c450
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
test edx, edx
jne 0x2c9dc5c
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x2c9d94d
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x10], edx
call fcn.02c9c450
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
test edx, edx
jne 0x2c9dc4f
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
lea edx, [0x2d3f31e]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 2
call fcn.02b67c20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
test edx, edx
jne 0x2c9dc42
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x2c9d9b5
mov edx, dword [eax + 0x34]
test edx, edx
je 0x2c9d9b5
mov eax, dword [edx]
call eax
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xfc]
test edx, edx
je 0x2c9da97
mov ecx, dword [esp + 0x30]
lea ebx, [0x2da4248]
cmp ecx, ebx
jne 0x2c9d9db
mov ebp, dword [esp + 0xa4]
jmp 0x2c9d9e0
mov ebp, 0
je 0x2c9d9e6
test eax, eax
jmp 0x2c9da26
mov dword [esp], ebp
call fcn.02c63cd0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
test edx, edx
jne 0x2c9da8a
mov eax, dword [esp + 0xb0]
test eax, eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xfc]
lea ebx, [0x2da4248]
je 0x2c9da3c
mov eax, dword [eax + 0x38]
test eax, eax
je 0x2c9da3c
mov ecx, dword [eax]
mov edx, eax
call ecx
mov edx, dword [esp + 0xfc]
mov eax, dword [edx]
call eax
movzx eax, byte [esp]
test al, al
jne 0x2c9da97
mov byte [esp + 0x2f], 1
nop
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test ecx, ecx
je 0x2c9da67
mov ecx, dword [ecx + 0x10]
mov dword [esp], eax
call ecx
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov eax, dword [esp + 0x30]
lea ecx, [0x2da4248]
cmp eax, ecx
jne 0x2c9daae
mov ecx, dword [esp + 0xa4]
jmp 0x2c9dab3
mov ecx, 0
jne 0x2c9db04
mov edx, dword [esp + 0xac]
movzx ebx, byte [edx + 0x48]
test bl, bl
je 0x2c9db0b
mov dword [esp], ecx
call fcn.02c63cd0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test eax, eax
jne 0x2c9dae9
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xac]
jmp 0x2c9db0b
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], edx
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov edx, dword [esp + 0xac]
mov byte [esp + 0x2f], 1
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.02ca3d00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
test edx, edx
je 0x2c9dbe9
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
cmp ebx, ecx
jne 0x2c9dbdc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.02ae3610
movzx eax, byte [esp + 0xc]
test al, al
je 0x2c9dbdc
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
lea eax, [0x2da4a54]
mov dword [esp], eax
lea eax, [esp + 0xc4]
mov dword [esp + 4], eax
call fcn.02ae9050
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x2c9dc1f
mov dword [esp], eax
call fcn.02c63cd0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
nop
call fcn.02b123e0
add esp, 0xe4
ret
mov ecx, ebp
call fcn.02b3e900
nop
call fcn.02b3d440
jmp fcn.02c9cfe0