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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x9c]
cmp eax, dword [ecx + 8]
jbe 0x2c8662e
sub esp, 0x11c
lea eax, [0x2d35740]
mov dword [esp], eax
mov ecx, dword [esp + 0x120]
mov dword [esp + 4], ecx
lea edx, [0x2d40b2b]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xa
call fcn.02aefb10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x2c85902
mov dword [esp + 0x58], eax
lea ecx, [0x2d13420]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.02b274d0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
lea ecx, [0x2d35740]
mov dword [esp], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 4], ecx
lea ecx, [0x2d40b2b]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xa
call fcn.02aefb10
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x9c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x58]
xor ebp, ebp
xor esi, esi
jmp 0x2c8594b
lea eax, [0x311e790]
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0x11c
ret
mov edi, dword [esp + 0x6c]
lea ebp, [edi + 1]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x9c]
mov esi, ecx
mov ebx, eax
mov eax, edi
mov ecx, dword [esp + 0x9c]
cmp ebp, eax
jge 0x2c85b26
lea edi, [ecx + ebp*8]
mov ecx, dword [edi]
mov dword [esp + 0x88], ecx
mov edi, dword [edi + 4]
mov dword [esp + 0x48], edi
nop
jmp 0x2c85b59
mov eax, dword [esp + 0x70]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x8c], edx
jmp 0x2c85b82
nop
mov dword [esp], ecx
mov dword [esp + 4], edi
lea eax, [0x2d5a6e8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.02ba6ba0
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp ecx, 1
jne 0x2c859df
mov edx, dword [edi + 4]
test edx, edx
jne 0x2c859df
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x2c8592c
test ecx, ecx
jbe 0x2c86626
mov edx, dword [edi]
mov ebx, dword [edi + 4]
jmp 0x2c85bb7
mov dword [esp + 0x74], edi
mov dword [esp + 0x34], ecx
mov dword [edi + 4], ebx
mov ebp, dword [0x311e9a0]
test ebp, ebp
jne 0x2c85a0a
mov dword [edi], edx
jmp 0x2c85a11
mov eax, edx
call fcn.02b3e880
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x2d3f26f]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.02ba8810
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x2c85a4b
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x2c8592c
mov ebx, dword [esp + 0x74]
mov edx, dword [ebx + 4]
mov ebp, dword [ebx]
cmp edx, ecx
jb 0x2c86621
lea eax, [ecx + 1]
cmp edx, eax
jb 0x2c8661a
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x84], ebp
sub edx, ecx
lea esi, [edx - 1]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
add esi, ebp
test ecx, ecx
jne 0x2c85a8e
xor eax, eax
jmp 0x2c85ad9
mov dword [esp + 0x68], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x64], edx
mov dword [esp], ebp
mov dword [esp + 4], ecx
lea eax, [0x2d5a124]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.02ba7a80
mov eax, dword [esp + 0x10]
test eax, eax
setl al
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x68]
test al, al
je 0x2c85b12
cmp edi, 1
jle 0x2c85b09
cmp byte [esi], 0x22
jne 0x2c85b05
mov eax, ebx
lea ebx, [edx + esi - 2]
cmp byte [ebx], 0x22
jne 0x2c85b0b
add edx, 0xfffffffd
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, 1
add esi, edx
mov edi, ebx
jmp 0x2c85b0b
mov eax, ebx
jmp 0x2c85b0b
mov eax, ebx
xor edx, edx
jmp 0x2c85c13
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x2c8592c
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], ebx
add esp, 0x11c
ret
dec edi
mov eax, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 1
add ecx, edi
mov edi, eax
mov eax, dword [esp + 0x70]
test edi, edi
jle 0x2c85970
movzx eax, byte [ecx]
cmp al, 0x20
je 0x2c85b42
cmp al, 9
je 0x2c85b42
cmp al, 0xa
je 0x2c85b42
cmp al, 0xd
je 0x2c85b42
jmp 0x2c8596c
dec edi
mov eax, dword [esp + 0x70]
test edi, edi
jle 0x2c85988
movzx eax, byte [ecx + edi - 1]
cmp al, 0x20
je 0x2c85b7d
cmp al, 9
je 0x2c85b7d
cmp al, 0xa
je 0x2c85b7d
cmp al, 0xd
je 0x2c85b7d
jmp 0x2c85988
dec ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add edx, ebx
mov ebx, ebp
test ebx, ebx
jle 0x2c85bdd
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x2c85ba8
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x2c85ba8
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x2c85ba8
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x2c85ba8
jmp 0x2c85bdd
dec ebx
test ebx, ebx
jle 0x2c859f1
movzx ebp, byte [edx + ebx - 1]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x2c85bdc
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x2c85bdc
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x2c85bdc
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x2c85bdc
jmp 0x2c859f1
inc edx
mov ebp, dword [esp + 0x84]
cmp edi, edx
jle 0x2c85c59
jbe 0x2c86611
movzx ebx, byte [esi + edx]
lea ebp, [ebx - 0x20]
xchg ebp, eax
cmp al, 0x5f
xchg ebp, eax
jae 0x2c85c46
cmp bl, 0x22
je 0x2c85c42
cmp bl, 0x3b
je 0x2c85c3e
cmp bl, 0x5c
jne 0x2c85c0b
cmp edi, edx
jmp 0x2c85c48
cmp edi, edx
jmp 0x2c85c48
cmp edi, edx
jmp 0x2c85c48
cmp edi, edx
mov ebp, dword [esp + 0x84]
mov esi, 0
mov edi, 0
jle 0x2c85c6f
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x2c8592c
mov dword [esp + 0x38], edi
mov dword [esp + 0x98], esi
lea eax, [0x2d324c0]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2c85ca8
mov edx, dword [esp + 0x84]
mov dword [eax], edx
jmp 0x2c85cb8
mov edi, eax
mov eax, dword [esp + 0x84]
call fcn.02b3e880
mov eax, edi
mov edx, dword [esp + 0x38]
mov dword [eax + 0xc], edx
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c85cd5
mov edx, dword [esp + 0x98]
mov dword [eax + 8], edx
jmp 0x2c85ce8
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x98]
call fcn.02b3e880
mov eax, ecx
mov edx, dword [esp + 0x48]
mov dword [eax + 0x4c], edx
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c85d05
mov edx, dword [esp + 0x88]
mov dword [eax + 0x48], edx
jmp 0x2c85d18
lea edi, [eax + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.02b3e880
mov eax, ecx
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
mov ebx, 1
jmp 0x2c85d33
inc ebx
mov edx, dword [esp + 0x74]
cmp ebx, ecx
jge 0x2c85e41
jae 0x2c8660a
lea edi, [edx + ebx*8]
mov ebp, dword [edi]
mov esi, dword [edi + 4]
jmp 0x2c85ed5
mov edx, dword [esp + 0x74]
jmp 0x2c85efb
mov edx, dword [esp + 0x74]
lea edx, [edx + ebx*8 + 4]
mov dword [edx], esi
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c85d71
mov dword [edi], ebp
test esi, esi
jmp 0x2c85d7e
mov edx, eax
mov eax, ebp
call fcn.02b3e880
test esi, esi
mov eax, edx
je 0x2c85d2e
mov dword [esp + 0x50], ebx
mov dword [esp + 0x94], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x80], ebp
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x2d3f26f]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.02ba8810
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x2c85dea
mov edx, dword [esp + 0x44]
cmp edx, ecx
jb 0x2c86605
lea eax, [ecx + 1]
cmp edx, eax
jb 0x2c865fe
sub edx, ecx
dec edx
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x80]
add edx, eax
jmp 0x2c85df9
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x44]
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x7c], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.02c62b50
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x2c85e2d
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x40]
xor eax, eax
jmp 0x2c85f24
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
mov ecx, dword [esp + 0x54]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x58]
cmp ebx, edx
jb 0x2c85e59
mov ebp, dword [esp + 0x8c]
jmp 0x2c85e9a
lea eax, [0x2d13420]
mov dword [esp], eax
mov ebp, dword [esp + 0x8c]
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 ebx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x54]
mov ebp, edx
mov edx, eax
mov eax, dword [esp + 0x90]
mov esi, dword [0x311e9a0]
lea edi, [ebp + ecx*4]
test esi, esi
jne 0x2c85eae
mov dword [ebp + ecx*4], eax
jmp 0x2c85eb3
call fcn.02b3e880
mov eax, ebx
mov ecx, edx
mov edx, ebp
jmp 0x2c8592c
dec esi
mov edx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ebp, esi
mov esi, edx
mov edx, dword [esp + 0x74]
test esi, esi
jle 0x2c85efb
movzx edx, byte [ebp]
cmp dl, 0x20
je 0x2c85ebe
cmp dl, 9
je 0x2c85ebe
cmp dl, 0xa
je 0x2c85ebe
cmp dl, 0xd
je 0x2c85ebe
jmp 0x2c85d4e
dec esi
mov edx, dword [esp + 0x74]
test esi, esi
jle 0x2c85d5b
movzx edx, byte [ebp + esi - 1]
cmp dl, 0x20
je 0x2c85ef6
cmp dl, 9
je 0x2c85ef6
cmp dl, 0xa
je 0x2c85ef6
cmp dl, 0xd
je 0x2c85ef6
jmp 0x2c85d57
inc eax
mov edx, edi
cmp eax, ebp
jge 0x2c85f6b
jae 0x2c865f7
movzx esi, byte [ebx + eax]
mov edi, edx
lea edx, [esi - 0x20]
cmp dl, 0x5f
jae 0x2c85f5d
xchg esi, eax
cmp al, 0x22
xchg esi, eax
je 0x2c85f59
xchg esi, eax
cmp al, 0x3b
xchg esi, eax
je 0x2c85f55
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x2c85f21
cmp eax, ebp
jmp 0x2c85f5f
cmp eax, ebp
jmp 0x2c85f5f
cmp eax, ebp
jmp 0x2c85f5f
cmp eax, ebp
mov ebx, 0
mov ebp, 0
jmp 0x2c85f6d
mov edi, edx
jge 0x2c8603a
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x94]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jae 0x2c86004
mov dword [esp + 0x68], edx
mov dword [esp + 0x98], ebx
lea eax, [0x2d0e5c0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c85fe8
mov dword [ebx + 0x50], eax
jmp 0x2c85ff0
lea edi, [ebx + 0x50]
call fcn.02b3e880
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x98]
mov edi, eax
mov eax, dword [esp + 0x90]
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x311e9a0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x2c86022
mov dword [edi], ebx
jmp 0x2c8602d
mov ecx, eax
mov eax, ebx
call fcn.02b3e880
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
cmp ecx, 6
jg 0x2c86105
cmp ecx, 4
jne 0x2c86088
cmp dword [edi], 0x68746170
jne 0x2c86529
mov eax, dword [esp + 0x90]
mov dword [eax + 0x14], ebp
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c8606d
mov dword [eax + 0x10], ebx
jmp 0x2c8607b
lea edi, [eax + 0x10]
mov ecx, eax
mov eax, ebx
call fcn.02b3e880
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
cmp ecx, 6
jne 0x2c86529
cmp dword [edi], 0x616d6f64
jne 0x2c860d5
cmp word [edi + 4], 0x6e69
jne 0x2c860d5
mov eax, dword [esp + 0x90]
mov dword [eax + 0x1c], ebp
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c860ba
mov dword [eax + 0x18], ebx
jmp 0x2c860c8
lea edi, [eax + 0x18]
mov ecx, eax
mov eax, ebx
call fcn.02b3e880
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
cmp dword [edi], 0x75636573
jne 0x2c86529
cmp word [edi + 4], 0x6572
jne 0x2c86529
mov eax, dword [esp + 0x90]
mov byte [eax + 0x40], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
cmp ecx, 7
jne 0x2c86427
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x7c], ebx
cmp dword [edi], 0x69707865
jne 0x2c863aa
cmp word [edi + 4], 0x6572
jne 0x2c863aa
cmp byte [edi + 6], 0x73
jne 0x2c863aa
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x38], ebp
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c86151
mov dword [ecx + 0x34], ebx
jmp 0x2c8615b
lea edi, [ecx + 0x34]
mov eax, ebx
call fcn.02b3e880
lea edi, [esp + 0x108]
xor eax, eax
call fcn.02b3eb1b
lea edi, [esp + 0xe0]
call fcn.02b3eb1b
mov ecx, dword [0x30f13f0]
mov edx, dword [0x30f13ec]
lea esi, [0x2d48f8d]
mov dword [esp], esi
mov dword [esp + 4], 0x1d
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.02b5a9c0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
lea edi, [esp + 0xe0]
lea esi, [esp + 0x18]
call fcn.02b3effe
lea edi, [esp + 0x108]
lea esi, [esp + 0xe0]
call fcn.02b3effe
lea edi, [esp + 0xcc]
lea esi, [esp + 0x108]
call fcn.02b3effe
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x2c862c2
lea edi, [esp + 0xf4]
xor eax, eax
call fcn.02b3eb1b
lea edi, [esp + 0xe0]
call fcn.02b3eb1b
mov ecx, dword [0x30f13f0]
mov edx, dword [0x30f13ec]
lea ebx, [0x2d48faa]
mov dword [esp], ebx
mov dword [esp + 4], 0x1d
mov ebp, dword [esp + 0x7c]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.02b5a9c0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x5c], ecx
lea edi, [esp + 0xe0]
lea esi, [esp + 0x18]
call fcn.02b3effe
lea edi, [esp + 0xf4]
lea esi, [esp + 0xe0]
call fcn.02b3effe
lea edi, [esp + 0xcc]
lea esi, [esp + 0xf4]
call fcn.02b3effe
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x2c862c2
mov ecx, dword [esp + 0x90]
lea edi, [ecx + 0x20]
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c862ab
xor eax, eax
call fcn.02b3eb1b
jmp 0x2c86529
lea eax, [0x2d3cd20]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.02af0e00
jmp 0x2c86529
lea edi, [esp + 0xb8]
lea esi, [esp + 0xcc]
call fcn.02b3effe
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
test edx, 0x80000000
je 0x2c86339
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
mov dword [esp + 0xc0], ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0xc4], edx
and dword [esp + 0xb8], 0x3fffffff
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc8], 0
lea edi, [esp + 0xa4]
lea esi, [esp + 0xb8]
call fcn.02b3effe
mov eax, dword [esp + 0x90]
lea edi, [eax + 0x20]
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2c86379
lea esi, [esp + 0xa4]
call fcn.02b3effe
jmp 0x2c8639d
lea eax, [0x2d3cd20]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.02af0c20
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
cmp dword [edi], 0x2d78616d
jne 0x2c86529
cmp word [edi + 4], 0x6761
jne 0x2c86529
cmp byte [edi + 6], 0x65
jne 0x2c86529
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.02b6dbc0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x2c86529
test eax, eax
je 0x2c86409
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jbe 0x2c865f0
mov edx, dword [esp + 0x7c]
cmp byte [edx], 0x30
je 0x2c86529
test eax, eax
jg 0x2c8640e
mov eax, 0xffffffff
mov edx, dword [esp + 0x90]
mov dword [edx + 0x3c], eax
mov eax, edx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
cmp ecx, 8
jne 0x2c86529
cmp dword [edi], 0x70747468
jne 0x2c86459
cmp dword [edi + 4], 0x796c6e6f
jne 0x2c86459
mov eax, dword [esp + 0x90]
mov byte [eax + 0x41], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
cmp dword [edi], 0x656d6173
jne 0x2c86529
cmp dword [edi + 4], 0x65746973
jne 0x2c86529
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.02c62b50
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x2c8650e
cmp ecx, 3
jne 0x2c864b1
cmp word [edx], 0x616c
jne 0x2c864f3
cmp byte [edx + 2], 0x78
jne 0x2c864f3
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 2
jmp 0x2c86501
cmp ecx, 4
jne 0x2c864ce
cmp dword [edx], 0x656e6f6e
jne 0x2c864f3
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 4
jmp 0x2c86501
cmp ecx, 6
jne 0x2c864f3
cmp dword [edx], 0x69727473
jne 0x2c864f3
cmp word [edx + 4], 0x7463
jne 0x2c864f3
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 3
jmp 0x2c86501
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x94]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jae 0x2c865ba
mov dword [esp + 0x68], edx
mov dword [esp + 0x98], ebx
lea eax, [0x2d0e5c0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2c8659e
mov dword [ebx + 0x50], eax
jmp 0x2c865a6
lea edi, [ebx + 0x50]
call fcn.02b3e880
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x98]
mov edi, eax
mov eax, dword [esp + 0x90]
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x311e9a0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x2c865d8
mov dword [edi], ebx
jmp 0x2c865e3
mov ecx, eax
mov eax, ebx
call fcn.02b3e880
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x2c85d2e
xor eax, eax
call fcn.02b3e900
mov ecx, ebp
call fcn.02b3e900
mov ecx, edx
call fcn.02b3e960
call fcn.02b3e920
mov eax, ebx
call fcn.02b3e900
mov eax, edx
mov ecx, edi
call fcn.02b3e900
mov ecx, edx
call fcn.02b3e960
call fcn.02b3e920
xor eax, eax
call fcn.02b3e900
nop
call fcn.02b3d440
jmp fcn.02c85830