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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xec]
cmp eax, dword [ecx + 8]
jbe 0x2ca1016
sub esp, 0x16c
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov eax, dword [esp + 0x184]
mov dword [esp], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 4], eax
call fcn.02ca11c0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 8]
test ecx, ecx
jne 0x2c9ff12
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x118], esi
lea edi, [esp + 0x158]
xor eax, eax
call fcn.02b3eb1b
mov ecx, dword [esp + 0x174]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0x178]
mov dword [esp], ebx
call edx
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x27], cl
lea edi, [esp + 0x158]
lea esi, [esp + 4]
call fcn.02b3effe
lea edi, [esp + 0x144]
lea esi, [esp + 0x158]
call fcn.02b3effe
movzx ecx, byte [esp + 0x27]
test cl, cl
je 0x2c9fb9f
lea edi, [esp + 0x130]
lea esi, [esp + 0x144]
call fcn.02b3effe
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
test ecx, 0x80000000
je 0x2c9fb69
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
mov ecx, edx
shl edx, 1
mov ebx, eax
shl eax, 1
shr edx, 0x1f
or eax, edx
mov edx, eax
add eax, 0xd7b17f80
shr ebx, 0x1f
add edx, 0xd7b17f80
adc ebx, 0xd
jmp 0x2c9fb7d
mov ecx, dword [esp + 0x138]
mov ebx, dword [esp + 0x13c]
mov edx, ecx
mov ecx, eax
mov eax, edx
test ebx, ebx
sete dl
test eax, eax
sete al
and edx, eax
test dl, dl
je 0x2c9fb98
test ecx, 0x3fffffff
sete al
jmp 0x2c9fb9a
xor eax, eax
xor eax, 1
jmp 0x2c9fba1
xor eax, eax
test al, al
je 0x2c9fc2a
mov eax, dword [esp + 0x17c]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x180]
mov dword [esp], edx
lea edi, [esp + 4]
lea esi, [esp + 0x144]
call fcn.02b3effe
mov ecx, dword [esp + 0x70]
call ecx
mov dword [esp + 0xb8], 0x20
mov eax, dword [esp + 0x17c]
lea ecx, [eax + 0x20]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x180]
mov dword [esp + 0xe0], ecx
lea edi, [esp + 0xe4]
lea esi, [0x30f7b60]
call fcn.02b3effe
lea ecx, [esp + 0xb8]
mov dword [esp], ecx
call fcn.02b118b0
test eax, eax
jne 0x2c9ff05
mov eax, dword [0x30f65d4]
mov ecx, dword [esp + 0x174]
lea edx, [0x2da7f40]
cmp ecx, edx
jne 0x2c9fc65
mov dword [esp], ecx
mov ecx, dword [esp + 0x178]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.02ae3610
movzx eax, byte [esp + 0xc]
test al, al
jne 0x2c9fd51
lea eax, [0x2d07e80]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.02ae4620
mov eax, dword [esp + 8]
mov dword [esp + 0x11c], eax
lea ecx, [0x2d08140]
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.02ae4620
mov eax, dword [esp + 8]
mov dword [esp + 0x120], eax
mov dword [esp + 0x84], 0xc
lea ecx, [0x2d5a0b4]
mov dword [esp + 0x94], ecx
mov dword [esp + 0xac], eax
lea ecx, [esp + 0x194]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0xb4], ecx
lea edx, [esp + 0x84]
mov dword [esp], edx
call fcn.02b118b0
test eax, eax
jne 0x2c9fef8
mov dword [esp], 0x18
lea eax, [0x2d5a0b8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x178]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x180]
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x11c]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x120]
mov dword [esp + 0x1c], ebp
call fcn.02b1e4b0
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x4c]
lea edx, [ecx + 6]
mov dword [esp + 0x54], edx
mov dword [esp + 8], edx
call fcn.02b274d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x54]
cmp ecx, 1
jb 0x2c9fd8a
mov edx, 1
jmp 0x2c9fdc3
lea edx, [0x2d0e7c0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc ecx
mov ebx, edx
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x50], edx
mov byte [eax], 5
mov ebx, dword [esp + 0x170]
mov ebp, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x18]
test ebp, ebp
je 0x2c9feaf
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x2c9feaf
cmp ebp, 0xff
jg 0x2c9fe57
mov dword [esp + 0x128], esi
mov dword [esp + 0x6c], ebp
lea edi, [edx + 1]
cmp ecx, edi
jae 0x2c9fe49
lea ebx, [0x2d0e7c0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea edi, [ecx + 1]
mov ebx, dword [esp + 0x170]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x128]
mov ecx, edx
mov edx, dword [esp + 0x50]
xchg ebp, ebx
mov byte [eax + edx], bl
xchg ebp, ebx
xor edx, edx
jmp 0x2ca0fb4
lea eax, [0x2d17160]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1f
lea ecx, [0x2d4a367]
mov dword [eax], ecx
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea ecx, [0x2da439c]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
nop
call fcn.02b123e0
add esp, 0x16c
ret
lea ebp, [edx + 2]
cmp ecx, ebp
jae 0x2c9fef0
lea ebx, [0x2d0e7c0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebp, [ecx + 2]
mov ebx, dword [esp + 0x170]
mov ecx, edx
mov edx, dword [esp + 0x50]
mov word [eax + edx], 1
jmp 0x2c9ff43
nop
call fcn.02b123e0
add esp, 0x16c
ret
nop
call fcn.02b123e0
add esp, 0x16c
ret
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], edx
mov dword [esp + 0x198], ebx
nop
call fcn.02b123e0
add esp, 0x16c
ret
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x124], eax
mov edx, dword [esp + 0x17c]
mov ebx, dword [edx + 0x2c]
mov esi, dword [esp + 0x180]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
test edx, edx
jne 0x2ca0458
mov edx, dword [esp + 0x54]
cmp edx, 2
jb 0x2ca0f8f
lea eax, [0x2d15760]
mov dword [esp], eax
mov ecx, dword [esp + 0x17c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x180]
mov dword [esp + 8], edx
call fcn.02ae90c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x124]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 2
call fcn.02b67d10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
test edx, edx
jne 0x2ca044b
mov ecx, dword [esp + 0x50]
test ecx, ecx
jbe 0x2ca0f88
mov edx, dword [esp + 0x124]
movzx ebx, byte [edx]
cmp bl, 5
jne 0x2ca038d
cmp ecx, 1
jbe 0x2ca0f7e
movzx eax, byte [edx + 1]
cmp eax, 0xff
je 0x2ca0335
mov ecx, dword [esp + 0x170]
mov ebx, dword [ecx + 0x24]
test ebx, ebx
je 0x2ca00fc
mov dword [esp + 0x68], eax
lea eax, [0x2d18420]
mov dword [esp], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x180]
mov dword [esp + 8], ecx
call fcn.02ae90c0
mov eax, dword [esp + 0x170]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x174]
mov dword [esp], esi
mov esi, dword [esp + 0x178]
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x10], ebx
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
test edx, edx
jne 0x2ca0328
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x124]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x54]
cmp ecx, 3
jb 0x2ca010e
mov ebx, 3
jmp 0x2ca0151
mov dword [esp + 0x64], eax
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 3
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ecx, 3
mov ebx, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x124], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ecx
mov byte [edx], 5
mov byte [edx + 1], al
mov byte [edx + 2], 0
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov ebp, dword [esp + 0x4c]
mov dword [esp + 4], ebp
call fcn.02c0b830
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x2ca01ab
cmp ecx, 4
je 0x2ca01a2
cmp ecx, 0x10
jne 0x2ca0f34
xor edx, edx
jmp 0x2ca0f42
mov edx, eax
mov ebx, ecx
jmp 0x2ca0c47
mov eax, dword [esp + 0x4c]
cmp eax, 0xff
jg 0x2ca02d0
mov ecx, dword [esp + 0x50]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jb 0x2ca01d2
mov ebp, dword [esp + 0x124]
jmp 0x2ca0212
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov ebp, dword [esp + 0x124]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.02b27650
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov ebx, ecx
mov ebp, edx
mov ecx, dword [esp + 0x50]
mov edx, eax
mov eax, dword [esp + 0x4c]
mov byte [ebp + ecx], 3
lea ecx, [edx + 1]
cmp ebx, ecx
jae 0x2ca0257
mov dword [esp + 0x50], edx
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.02b27650
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov byte [ebp + edx], al
lea edx, [eax + ecx]
mov dword [esp + 0x50], edx
cmp ebx, edx
jae 0x2ca0298
mov dword [esp + 0x6c], ecx
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.02b27650
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x124], ebp
mov dword [esp + 0x54], ebx
add ecx, ebp
mov dword [esp], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.02b3f220
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x124]
jmp 0x2ca0465
lea eax, [0x2d17160]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xd
lea ecx, [0x2d41b0e]
mov dword [eax], ecx
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea ecx, [0x2da439c]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
nop
call fcn.02b123e0
add esp, 0x16c
ret
nop
call fcn.02b123e0
add esp, 0x16c
ret
lea eax, [0x2d17160]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x24
lea ecx, [0x2d4c490]
mov dword [eax], ecx
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea ecx, [0x2da439c]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
nop
call fcn.02b123e0
add esp, 0x16c
ret
movzx eax, bl
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.02b74020
mov dword [esp], 0
lea eax, [0x2d48dfd]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
call fcn.02b2a990
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10c], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
lea edx, [0x2d17160]
mov dword [esp], edx
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 0x2ca0408
mov eax, dword [esp + 0x10c]
mov dword [edi], eax
jmp 0x2ca0414
mov eax, dword [esp + 0x10c]
call fcn.02b3e880
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea eax, [0x2da439c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], edi
nop
call fcn.02b123e0
add esp, 0x16c
ret
nop
call fcn.02b123e0
add esp, 0x16c
ret
nop
call fcn.02b123e0
add esp, 0x16c
ret
lea ebx, [eax + 2]
cmp ecx, ebx
jae 0x2ca04a1
mov dword [esp + 0x50], eax
lea ebp, [0x2d0e7c0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
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 + 2]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x124], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ecx
mov ebp, dword [esp + 0x44]
mov esi, ebp
sar ebp, 8
xchg ebp, ebx
mov byte [edx + eax], bl
xchg ebp, ebx
xchg esi, ebx
mov byte [edx + eax + 1], bl
xchg esi, ebx
mov eax, dword [esp + 0x17c]
mov ebp, dword [eax + 0x2c]
mov esi, dword [esp + 0x180]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
test edx, edx
jne 0x2ca0bf6
mov edx, dword [esp + 0x54]
cmp edx, 4
jb 0x2ca0c3d
lea eax, [0x2d15760]
mov dword [esp], eax
mov ecx, dword [esp + 0x17c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x180]
mov dword [esp + 8], edx
call fcn.02ae90c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x124]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 4
call fcn.02b67d10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
test edx, edx
jne 0x2ca0be9
mov ecx, dword [esp + 0x50]
test ecx, ecx
jbe 0x2ca0c36
mov edx, dword [esp + 0x124]
movzx ebx, byte [edx]
cmp bl, 5
jne 0x2ca0b2b
cmp ecx, 1
jbe 0x2ca0c2c
movzx ebx, byte [edx + 1]
test ebx, ebx
jne 0x2ca0a71
cmp ecx, 2
jbe 0x2ca0c22
movzx eax, byte [edx + 2]
test al, al
jne 0x2ca0a19
lea eax, [0x2d236e0]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x50]
cmp ecx, 3
jbe 0x2ca0c18
mov dword [esp + 0x12c], eax
mov ecx, dword [esp + 0x124]
movzx edx, byte [ecx + 3]
cmp dl, 1
je 0x2ca07f2
cmp dl, 3
je 0x2ca073d
cmp dl, 4
jne 0x2ca067f
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0x10
call fcn.02b274d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x12c]
mov dword [ecx + 0xc], 0x10
mov dword [ecx + 0x10], 0x10
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2ca066d
mov dword [ecx + 8], eax
jmp 0x2ca0675
lea edi, [ecx + 8]
call fcn.02b3e880
mov ebx, 0x12
jmp 0x2ca0845
movzx eax, dl
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.02b74020
mov dword [esp], 0
lea eax, [0x2d457f9]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x15
call fcn.02b2a990
mov eax, dword [esp + 0x14]
mov dword [esp + 0x110], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
lea edx, [0x2d17160]
mov dword [esp], edx
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2ca06fa
mov eax, dword [esp + 0x110]
mov dword [edi], eax
jmp 0x2ca0706
mov eax, dword [esp + 0x110]
call fcn.02b3e880
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea eax, [0x2da439c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], edi
nop
call fcn.02b123e0
add esp, 0x16c
ret
lea eax, [0x2d15760]
mov dword [esp], eax
mov ecx, dword [esp + 0x17c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x180]
mov dword [esp + 8], edx
call fcn.02ae90c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x124]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 1
call fcn.02b67d10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x2ca07c1
mov eax, dword [esp + 0x124]
movzx ebx, byte [eax]
add ebx, 2
mov ecx, dword [esp + 0x12c]
jmp 0x2ca0845
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], edx
nop
call fcn.02b123e0
add esp, 0x16c
ret
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.02b274d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x12c]
mov dword [ecx + 0xc], 4
mov dword [ecx + 0x10], 4
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2ca0838
mov dword [ecx + 8], eax
jmp 0x2ca0840
lea edi, [ecx + 8]
call fcn.02b3e880
mov ebx, 6
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0x54]
cmp ebx, edx
jg 0x2ca0860
ja 0x2ca0c11
mov eax, dword [esp + 0x124]
jmp 0x2ca0880
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.02b274d0
mov edx, dword [esp + 0xc]
mov eax, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x54], edx
mov dword [esp + 0x124], eax
lea ecx, [0x2d15760]
mov dword [esp], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x180]
mov dword [esp + 8], ecx
call fcn.02ae90c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x124]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.02b67d10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
test edx, edx
jne 0x2ca0a0c
mov ebx, dword [esp + 0x12c]
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
test ebp, ebp
je 0x2ca0958
mov ecx, dword [esp + 0x48]
cmp ecx, esi
jge 0x2ca0921
mov eax, ecx
jmp 0x2ca0925
mov eax, ecx
mov ecx, esi
mov edx, dword [esp + 0x124]
cmp edx, ebp
je 0x2ca09b8
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.02b3f220
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0x12c]
jmp 0x2ca09b8
mov eax, dword [esp + 0x48]
lea ecx, [eax - 2]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jb 0x2ca0c0c
mov dword [esp], 0
mov eax, dword [esp + 0x124]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.02b2ac40
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x12c]
mov dword [edi + 4], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2ca09a6
mov dword [edi], eax
jmp 0x2ca09ab
call fcn.02b3e880
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x124]
mov ebx, edi
lea ebp, [eax - 2]
cmp eax, ebp
jbe 0x2ca0c03
movzx ecx, byte [eax + edx - 2]
shl ecx, 8
movzx eax, byte [eax + edx - 1]
or ecx, eax
mov dword [ebx + 0x14], ecx
lea eax, [0x2da7bbc]
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
nop
call fcn.02b123e0
add esp, 0x16c
ret
nop
call fcn.02b123e0
add esp, 0x16c
ret
lea eax, [0x2d17160]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x2d4678d]
mov dword [eax], ecx
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea ecx, [0x2da439c]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
nop
call fcn.02b123e0
add esp, 0x16c
ret
mov dword [esp], ebx
call fcn.02ca1370
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x2d424d7]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xe
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.02b2a990
mov eax, dword [esp + 0x14]
mov dword [esp + 0x114], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
lea edx, [0x2d17160]
mov dword [esp], edx
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 0x2ca0ae8
mov eax, dword [esp + 0x114]
mov dword [edi], eax
jmp 0x2ca0af4
mov eax, dword [esp + 0x114]
call fcn.02b3e880
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea eax, [0x2da439c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], edi
nop
call fcn.02b123e0
add esp, 0x16c
ret
movzx eax, bl
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.02b74020
mov dword [esp], 0
lea eax, [0x2d48dfd]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
call fcn.02b2a990
mov eax, dword [esp + 0x14]
mov dword [esp + 0x108], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
lea edx, [0x2d17160]
mov dword [esp], edx
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2ca0ba6
mov eax, dword [esp + 0x108]
mov dword [edi], eax
jmp 0x2ca0bb2
mov eax, dword [esp + 0x108]
call fcn.02b3e880
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea eax, [0x2da439c]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], edi
nop
call fcn.02b123e0
add esp, 0x16c
ret
nop
call fcn.02b123e0
add esp, 0x16c
ret
nop
call fcn.02b123e0
add esp, 0x16c
ret
mov ecx, eax
mov eax, ebp
call fcn.02b3e900
call fcn.02b3e940
mov ecx, ebx
call fcn.02b3e940
mov eax, 3
call fcn.02b3e900
mov eax, 2
call fcn.02b3e900
mov eax, 1
call fcn.02b3e900
xor eax, eax
call fcn.02b3e900
mov ecx, 4
call fcn.02b3e940
test eax, eax
je 0x2ca0d33
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x104], eax
mov edx, dword [esp + 0x50]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x54]
cmp ebp, ebx
jb 0x2ca0c72
mov esi, dword [esp + 0x124]
jmp 0x2ca0cb9
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
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 eax, dword [esp + 0x104]
mov ebp, ecx
mov esi, edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
mov byte [esi + edx], 1
lea edx, [ecx + ebx]
mov dword [esp + 0x50], edx
cmp ebp, edx
jae 0x2ca0d01
mov dword [esp + 0x6c], ebx
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.02b27650
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x124], esi
lea edx, [esi + ebx]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.02b3f220
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x124]
jmp 0x2ca0465
cmp ebx, 4
jne 0x2ca0de7
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
movzx ebx, byte [edx + 2]
movzx edx, byte [edx + 3]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov ebp, dword [0x30f1d28]
mov esi, dword [0x30f1d2c]
cmp esi, 0x10
jl 0x2ca0d84
mov esi, 0x10
lea edi, [esp + 0x74]
cmp ebp, edi
je 0x2ca0dc0
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], cl
mov byte [esp + 0x29], bl
mov byte [esp + 0x28], dl
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.02b3f220
movzx eax, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x2a]
movzx edx, byte [esp + 0x28]
movzx ebx, byte [esp + 0x29]
mov byte [esp + 0x80], al
mov byte [esp + 0x81], cl
mov byte [esp + 0x82], bl
mov byte [esp + 0x83], dl
lea edx, [esp + 0x74]
mov ebx, 0x10
jmp 0x2ca0df0
cmp ebx, 0x10
je 0x2ca0df0
xor edx, edx
xor ebx, ebx
test edx, edx
je 0x2ca0edc
mov dword [esp + 0x100], edx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x50]
lea ecx, [eax + 1]
mov ebp, dword [esp + 0x54]
cmp ebp, ecx
jb 0x2ca0e1b
mov esi, dword [esp + 0x124]
jmp 0x2ca0e62
lea edx, [0x2d0e7c0]
mov dword [esp], edx
mov ebx, dword [esp + 0x124]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.02b27650
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov ebx, dword [esp + 0x30]
mov ebp, ecx
mov esi, edx
mov edx, dword [esp + 0x100]
mov ecx, eax
mov eax, dword [esp + 0x50]
mov byte [esi + eax], 4
lea eax, [ebx + ecx]
mov dword [esp + 0x50], eax
cmp ebp, eax
jae 0x2ca0eaa
mov dword [esp + 0x6c], ecx
lea edx, [0x2d0e7c0]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
call fcn.02b27650
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x124], esi
lea eax, [ecx + esi]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.02b3f220
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x124]
jmp 0x2ca0465
lea eax, [0x2d17160]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x14
lea ecx, [0x2d450c8]
mov dword [eax], ecx
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
lea ecx, [0x2da439c]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
nop
call fcn.02b123e0
add esp, 0x16c
ret
mov edx, eax
mov ebx, ecx
xor eax, eax
xor ecx, ecx
jmp 0x2ca0c47
inc edx
cmp edx, 0xa
jge 0x2ca0f53
jae 0x2ca0f72
movzx ebx, byte [eax + edx]
test bl, bl
je 0x2ca0f41
jmp 0x2ca0f34
cmp byte [eax + 0xa], 0xff
jne 0x2ca0f34
cmp byte [eax + 0xb], 0xff
jne 0x2ca0f34
lea ebp, [eax + 0xc]
mov edx, eax
mov ebx, ecx
mov eax, ebp
mov ecx, 4
jmp 0x2ca0c47
mov eax, edx
mov ecx, 0xa
call fcn.02b3e900
mov eax, 1
call fcn.02b3e900
xor eax, eax
call fcn.02b3e900
mov ecx, 2
call fcn.02b3e940
mov byte [eax + edi], bl
inc edx
mov ebx, dword [esp + 0x128]
mov ebx, dword [esp + 0x170]
mov edi, esi
mov esi, dword [esp + 0x128]
cmp edx, ebp
jge 0x2ca100f
mov ebx, dword [esi + edx*4]
lea esi, [edi + 1]
cmp ecx, esi
jae 0x2ca0f99
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
lea edx, [0x2d0e7c0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea esi, [ecx + 1]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x5c]
mov ecx, edx
mov edx, dword [esp + 0x60]
jmp 0x2ca0f99
mov ebp, edi
jmp 0x2c9ff43
call fcn.02b3d440
jmp fcn.02c9fa20