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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xbc]
cmp eax, dword [ecx + 8]
jbe 0x2b5cff3
sub esp, 0x13c
lea edi, [esp + 0x158]
xor eax, eax
call fcn.02b3eb1b
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x140]
xor ebx, ebx
xor ebp, ebp
xor esi, esi
mov edi, 0xffffffff
mov ecx, 0xffffffff
mov dword [esp + 0x90], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov byte [esp + 0x36], cl
xor edx, edx
mov byte [esp + 0x37], dl
mov edx, 0xffffffff
mov dword [esp + 0x70], edx
xor edx, edx
mov dword [esp + 0x78], edx
xor edx, edx
mov dword [esp + 0x84], edx
xor edx, edx
mov dword [esp + 0x64], edx
xor edx, edx
mov dword [esp + 0x50], edx
xor edx, edx
mov dword [esp + 0xd0], edx
xor ebx, ebx
mov dword [esp + 0x58], ebx
xor ebx, ebx
mov dword [esp + 0xe4], ebx
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x148]
mov dword [esp + 0xfc], ebx
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x140]
xor ebx, ebx
jmp 0x2b5aad4
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0xcc]
xchg esi, eax
mov byte [esp + 0x36], al
xchg esi, eax
xchg edi, eax
mov byte [esp + 0x37], al
xchg edi, eax
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xa4], edx
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0xd4]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xf8], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.02b55f10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xa0]
mov ebx, edx
sub edx, ecx
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x14]
cmp ebx, edx
jb 0x2b5cfe9
cmp ebp, edx
ja 0x2b5cfe0
mov dword [esp + 0x4c], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xe8], esi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0xd4], edi
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
call fcn.02b5a8b0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x5c]
sub eax, ecx
mov edx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 0xf8]
add eax, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x88], ebx
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov dword [esp + 0xfc], esi
test ebp, ebp
jne 0x2b5c999
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x2b5b947
mov dword [esp + 0xa4], edx
mov dword [esp + 0xd8], eax
mov ecx, edi
and edi, 0xffff
cmp edi, 0x106
jg 0x2b5b377
cmp edi, 0x23
jg 0x2b5b154
cmp edi, 0x21
jg 0x2b5b058
cmp edi, 0x17
jne 0x2b5acea
mov dword [esp + 0x8c], ebp
cmp ebx, 3
jl 0x2b5ac3d
cmp word [esi], 0x5455
jne 0x2b5ac3d
cmp byte [esi + 2], 0x43
jne 0x2b5ac3d
mov ecx, dword [0x30f13f0]
add ebx, 0xfffffffd
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 3
add esi, ebx
mov dword [esp + 0xd0], ecx
mov ecx, esi
mov ebx, edi
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
jmp 0x2b5b920
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.02b5d000
mov ecx, dword [esp + 8]
movzx eax, byte [esp + 0xc]
test al, al
je 0x2b5acb9
mov edx, dword [esp + 0x88]
cmp ecx, edx
ja 0x2b5cfdb
sub edx, ecx
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, ecx
mov ebp, dword [esp + 0xfc]
lea esi, [edx + ebp]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
movzx edi, byte [esp + 0x37]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0xcc], eax
mov ecx, esi
movzx esi, byte [esp + 0x36]
mov eax, dword [esp + 0xd8]
jmp 0x2b5b920
mov ebp, dword [0x30f7700]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x88]
jmp 0x2b5b920
cmp edi, 0x18
jl 0x2b5b6ce
cmp ecx, 0x18
je 0x2b5ad02
cmp ecx, 0x1a
je 0x2b5ad02
cmp ecx, 0x1b
jne 0x2b5ad45
cmp ebx, 1
jl 0x2b5ad40
cmp byte [esi], 0x5a
jne 0x2b5ad40
dec ebx
mov ecx, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add esi, ebx
mov eax, dword [0x30f13f0]
movzx edi, byte [esp + 0x37]
mov dword [esp + 0xd0], eax
mov ebx, ecx
mov eax, dword [esp + 0xd8]
mov ecx, esi
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
cmp ecx, 0x1b
je 0x2b5ad4a
cmp ecx, 0x20
jne 0x2b5adbb
cmp ebx, 6
jge 0x2b5ad6b
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
cmp byte [esi + 3], 0x3a
je 0x2b5ad8d
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
lea ecx, [esi + 1]
lea ebp, [esi + 4]
add ebx, 0xfffffffa
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 6
add ebx, esi
mov dword [esp + 0xb0], eax
lea eax, [0x2d3f2a2]
mov dword [esp + 0xdc], eax
jmp 0x2b5af63
cmp ecx, 0x1f
je 0x2b5adc5
cmp ecx, 0x1a
jne 0x2b5ae16
cmp ebx, 3
jge 0x2b5ade6
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
lea ecx, [esi + 1]
add ebx, 0xfffffffd
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 3
add ebx, esi
lea edi, [0x2d3f2a2]
lea edi, [0x2d3f2a2]
mov dword [esp + 0xdc], edi
lea edi, [0x2d3f2a2]
jmp 0x2b5af56
cmp ecx, 0x1c
je 0x2b5ae20
cmp ecx, 0x21
jne 0x2b5ae99
cmp ebx, 9
jge 0x2b5ae41
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
cmp byte [esi + 3], 0x3a
jne 0x2b5ae4d
cmp byte [esi + 6], 0x3a
je 0x2b5ae69
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
lea ecx, [esi + 1]
lea ebp, [esi + 4]
lea edi, [esi + 7]
add ebx, 0xfffffff7
mov dword [esp + 0xa0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 9
add ebx, esi
mov dword [esp + 0xdc], edi
mov edi, dword [esp + 0xa0]
jmp 0x2b5af42
cmp ecx, 0x19
je 0x2b5aea3
cmp ecx, 0x1e
jne 0x2b5aef1
cmp ebx, 7
jge 0x2b5aec4
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
lea ecx, [esi + 1]
lea ebp, [esi + 3]
lea edi, [esi + 5]
add ebx, 0xfffffff9
mov dword [esp + 0xa0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 7
add ebx, esi
mov dword [esp + 0xdc], edi
mov edi, dword [esp + 0xa0]
jmp 0x2b5af42
cmp ebx, 5
jge 0x2b5af12
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
lea ecx, [esi + 1]
lea ebp, [esi + 3]
add ebx, 0xfffffffb
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 5
add ebx, esi
mov dword [esp + 0xc0], eax
lea eax, [0x2d3f2a2]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xb8], eax
mov eax, ebp
mov ebp, edi
mov edi, eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xa8], eax
mov eax, edi
mov edi, ebp
mov ebp, eax
mov dword [esp + 0xa0], edi
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xec], ebp
mov dword [esp], ecx
mov dword [esp + 4], 2
call fcn.02b56ff0
mov eax, dword [esp + 8]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x2b5af9f
xor edx, edx
jmp 0x2b5afc7
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.02b56ff0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, eax
mov eax, dword [esp + 0x80]
test ecx, ecx
je 0x2b5afcf
xor ebx, ebx
jmp 0x2b5afff
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.02b56ff0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x74]
mov ebx, eax
mov eax, dword [esp + 0x80]
imul eax, eax, 0x3c
add eax, edx
imul eax, eax, 0x3c
add eax, ebx
mov edx, dword [esp + 0xfc]
movzx edx, byte [edx]
cmp dl, 0x2b
je 0x2b5b027
cmp dl, 0x2d
jne 0x2b5b021
neg eax
jmp 0x2b5b027
mov ecx, dword [0x30f7700]
mov edx, dword [esp + 0xa4]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ebp, ecx
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0xd8]
jmp 0x2b5b920
cmp edi, 0x22
jne 0x2b5b117
sar ecx, 0x10
lea ebp, [ecx + 1]
cmp ebx, ebp
jge 0x2b5b087
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x68], ebp
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.02b5d420
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x68]
cmp ebp, esi
jb 0x2b5cfd2
mov edi, dword [esp + 0xa0]
sub ebp, edi
dec ebp
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and esi, ebp
mov ebp, dword [esp + 0xfc]
add esi, ebp
mov ebp, eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0xe4], edx
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
mov ecx, esi
mov ebx, edi
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
jmp 0x2b5b920
cmp ebx, 2
jl 0x2b5b13e
movzx ecx, byte [esi]
cmp cl, 0x2e
je 0x2b5b129
cmp cl, 0x2c
jne 0x2b5b13e
movzx ecx, byte [esi + 1]
cmp cl, 0x30
jb 0x2b5b13e
cmp cl, 0x39
ja 0x2b5b13e
xor ecx, ecx
jmp 0x2b5cf1b
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
cmp edi, 0x102
jg 0x2b5b230
cmp edi, 0x101
je 0x2b5b1d2
cmp edi, 0x102
jne 0x2b5b6ce
mov eax, dword [0x30f1ec8]
mov ecx, dword [0x30f1ecc]
mov edx, dword [0x30f1ed0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.02b56cc0
mov eax, dword [esp + 0x14]
inc eax
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
movzx edi, byte [esp + 0x37]
mov ecx, esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
mov eax, dword [0x30f1ea8]
mov ecx, dword [0x30f1eac]
mov edx, dword [0x30f1eb0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.02b56cc0
mov eax, dword [esp + 0x14]
inc eax
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
movzx edi, byte [esp + 0x37]
mov ecx, esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
cmp edi, 0x104
jle 0x2b5b2fa
cmp edi, 0x105
je 0x2b5b2a5
cmp edi, 0x106
jne 0x2b5b6ce
mov eax, dword [0x30f1eb8]
mov ecx, dword [0x30f1ebc]
mov edx, dword [0x30f1ec0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.02b56cc0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
movzx edi, byte [esp + 0x37]
mov ecx, esi
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
mov eax, dword [0x30f1e98]
mov ecx, dword [0x30f1e9c]
mov edx, dword [0x30f1ea0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
call fcn.02b56cc0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
movzx edi, byte [esp + 0x37]
mov ecx, esi
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
mov dword [esp], esi
mov dword [esp + 4], ebx
cmp ecx, 0x104
sete al
mov byte [esp + 8], al
call fcn.02b5a7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
jne 0x2b5b33c
lea ebp, [eax - 1]
cmp ebp, 0xb
jbe 0x2b5b33c
mov ebp, 5
lea esi, [0x2d3f95a]
jmp 0x2b5b347
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x70], eax
movzx edi, byte [esp + 0x37]
mov dword [esp + 0x58], ebp
mov dword [esp + 0xe4], esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0xa4]
jmp 0x2b5b920
cmp edi, 0x20c
jg 0x2b5b5c4
cmp edi, 0x10b
jg 0x2b5b409
cmp edi, 0x109
jle 0x2b5b39a
xor ebp, ebp
jmp 0x2b5ce63
cmp ecx, 0x108
jne 0x2b5b3ba
test ebx, ebx
jle 0x2b5b3ba
cmp byte [esi], 0x20
jne 0x2b5b3ba
dec ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add esi, ebx
mov ebx, ebp
mov dword [esp], esi
mov dword [esp + 4], ebx
cmp ecx, 0x109
sete al
mov byte [esp + 8], al
call fcn.02b5a7a0
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x90], eax
movzx edi, byte [esp + 0x37]
mov ecx, esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
cmp edi, 0x113
jne 0x2b5b49c
cmp ebx, 4
jl 0x2b5b425
movzx ecx, byte [esi]
add ecx, 0xffffffd0
cmp cl, 9
jbe 0x2b5b441
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
mov dword [esp], esi
mov dword [esp + 4], 4
call fcn.02b56ff0
mov eax, dword [esp + 0x88]
lea ebx, [eax - 4]
mov eax, ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
mov ecx, dword [esp + 0xfc]
lea esi, [ebx + ecx]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x40], ebx
movzx edi, byte [esp + 0x37]
mov ecx, esi
mov ebx, eax
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
cmp edi, 0x114
jne 0x2b5b547
cmp ebx, 2
jge 0x2b5b4c9
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
mov dword [esp], esi
mov dword [esp + 4], 2
call fcn.02b56ff0
mov eax, dword [esp + 0x88]
lea ecx, [eax - 2]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
mov ebx, dword [esp + 0xfc]
add ecx, ebx
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0xc]
test esi, esi
je 0x2b5b50f
mov eax, ebp
mov edx, dword [esp + 0x88]
mov ecx, ebx
jmp 0x2b5b522
cmp ebp, 0x45
jl 0x2b5b51c
lea eax, [ebp + 0x76c]
jmp 0x2b5b522
lea eax, [ebp + 0x7d0]
mov dword [esp + 0x40], eax
movzx edi, byte [esp + 0x37]
mov ebp, esi
mov ebx, edx
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
cmp edi, 0x20c
jne 0x2b5b6ce
mov dword [esp], esi
mov dword [esp + 4], ebx
mov byte [esp + 8], 0
call fcn.02b5a7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp eax, 0x18
jb 0x2b5b586
mov ebp, 4
lea esi, [0x2d3f6c9]
jmp 0x2b5b591
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x84], eax
movzx edi, byte [esp + 0x37]
mov dword [esp + 0x58], ebp
mov dword [esp + 0xe4], esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0xa4]
jmp 0x2b5b920
cmp edi, 0x210
jle 0x2b5b831
cmp edi, 0x212
jle 0x2b5b6e4
cmp edi, 0x215
jne 0x2b5b655
cmp ebx, 2
jge 0x2b5b605
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
lea ecx, [ebx - 2]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, esi
cmp word [esi], 0x4d41
jne 0x2b5b62a
movzx esi, byte [esp + 0x36]
mov edi, 1
jmp 0x2b5b920
cmp word [esi], 0x4d50
jne 0x2b5b640
mov esi, 1
movzx edi, byte [esp + 0x37]
jmp 0x2b5b920
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
jmp 0x2b5b920
cmp edi, 0x216
jne 0x2b5b6ce
cmp ebx, 2
jge 0x2b5b67e
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
lea ecx, [ebx - 2]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, esi
cmp word [esi], 0x6d61
jne 0x2b5b6a3
movzx esi, byte [esp + 0x36]
mov edi, 1
jmp 0x2b5b920
cmp word [esi], 0x6d70
jne 0x2b5b6b9
mov esi, 1
movzx edi, byte [esp + 0x37]
jmp 0x2b5b920
mov ebp, dword [0x30f7700]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
jmp 0x2b5b920
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ecx, dword [esp + 0xfc]
jmp 0x2b5b920
mov dword [esp], esi
mov dword [esp + 4], ebx
cmp ecx, 0x212
sete al
mov byte [esp + 8], al
call fcn.02b5a7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
cmp eax, 0x3c
jb 0x2b5b75b
mov dword [esp + 0x50], eax
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ebp, edx
mov edx, 6
mov dword [esp + 0x58], edx
lea esi, [0x2d3fc13]
mov dword [esp + 0xe4], esi
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
movzx esi, byte [esp + 0x36]
mov edi, ecx
mov ecx, ebx
mov ebx, edi
movzx edi, byte [esp + 0x37]
jmp 0x2b5b920
cmp ecx, 2
jl 0x2b5b81d
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
je 0x2b5b779
xchg ebp, eax
cmp al, 0x2c
xchg ebp, eax
jne 0x2b5b81d
movzx ebp, byte [ebx + 1]
add ebp, 0xffffffd0
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x2b5b81d
mov dword [esp + 0x9c], eax
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x98], edx
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.02b55f10
mov eax, dword [esp + 0x10]
and eax, 0xffff
cmp eax, 0x22
je 0x2b5b7ce
cmp eax, 0x23
jne 0x2b5b808
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x50], ecx
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ebp, dword [esp + 0x98]
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x54]
jmp 0x2b5b920
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xe0]
mov eax, 2
jmp 0x2b5cdcc
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0xe4]
jmp 0x2b5cd8c
cmp edi, 0x20e
jg 0x2b5b8af
mov dword [esp], esi
mov dword [esp + 4], ebx
cmp ecx, 0x20e
sete al
mov byte [esp + 8], al
call fcn.02b5a7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp eax, 0xc
jbe 0x2b5b874
mov ebp, 4
lea esi, [0x2d3f6c9]
jmp 0x2b5b87f
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x84], eax
movzx edi, byte [esp + 0x37]
mov dword [esp + 0x58], ebp
mov dword [esp + 0xe4], esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0xa4]
jmp 0x2b5b920
mov dword [esp], esi
mov dword [esp + 4], ebx
cmp ecx, 0x210
sete al
mov byte [esp + 8], al
call fcn.02b5a7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp eax, 0x3c
jb 0x2b5b8ea
mov ebp, 6
lea esi, [0x2d3fbf5]
jmp 0x2b5b8f5
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x78], eax
movzx edi, byte [esp + 0x37]
mov dword [esp + 0x58], ebp
mov dword [esp + 0xe4], esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x2b5cc18
test ebp, ebp
je 0x2b5aa95
jmp 0x2b5caf7
test ebx, ebx
jne 0x2b5c839
movzx edx, byte [esp + 0x36]
test dl, dl
je 0x2b5b969
mov edx, dword [esp + 0x84]
cmp edx, 0xc
jge 0x2b5b970
add edx, 0xc
jmp 0x2b5b982
mov edx, dword [esp + 0x84]
movzx ebp, byte [esp + 0x37]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x2b5b982
cmp edx, 0xc
jne 0x2b5b982
xor edx, edx
mov ebp, dword [esp + 0x44]
test ebp, ebp
jl 0x2b5bda8
mov eax, dword [esp + 0x40]
test eax, 3
jne 0x2b5ba20
mov edi, 0x51eb851f
mov ecx, edx
imul edi
mov dword [esp + 0xa4], edx
mov eax, dword [esp + 0x40]
sar eax, 0x1f
sar edx, 5
sub edx, eax
imul edx, edx, 0x64
mov esi, dword [esp + 0x40]
cmp esi, edx
jne 0x2b5b9da
mov edx, dword [esp + 0xa4]
sar edx, 7
sub edx, eax
imul edx, edx, 0x190
cmp esi, edx
jne 0x2b5ba0f
cmp ebp, 0x3c
jne 0x2b5b9ed
mov edx, ebp
mov eax, 2
mov ebp, 0x1d
jmp 0x2b5b9fa
jle 0x2b5b9f4
lea edx, [ebp - 1]
jmp 0x2b5b9f6
mov edx, ebp
xor eax, eax
xor ebp, ebp
mov esi, dword [esp + 0xfc]
mov edi, ebp
mov ebp, edx
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x40]
jmp 0x2b5ba24
mov eax, esi
mov edx, ecx
mov esi, dword [esp + 0xfc]
xor ecx, ecx
xor edi, edi
jmp 0x2b5ba24
xor ecx, ecx
xor edi, edi
lea esi, [ebp - 1]
cmp esi, 0x16c
ja 0x2b5bcac
test ecx, ecx
jne 0x2b5ba89
mov ecx, eax
mov eax, 0x84210843
mov edi, edx
imul esi
lea edx, [edx + ebp - 1]
sar edx, 4
lea eax, [edx + 1]
cmp eax, 0xd
jae 0x2b5caed
lea esi, [0x2eca6c0]
lea ebx, [esi + edx*4 + 4]
cmp dword [ebx], ebp
jge 0x2b5ba66
lea eax, [edx + 2]
lea edx, [eax - 1]
cmp edx, 0xd
jae 0x2b5cae1
mov edx, dword [esi + eax*4 - 4]
sub ebp, edx
mov edx, edi
mov ebx, dword [esp + 0x88]
mov ecx, eax
mov edi, ebp
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x70]
test ebp, ebp
jl 0x2b5bb99
cmp ecx, ebp
je 0x2b5bb99
lea eax, [0x2d2a000]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5bace
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5bada
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5bafa
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5bb0f
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5bb3d
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x18], ecx
jmp 0x2b5bb52
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov dword [edi + 0x24], 0x22
lea ecx, [0x2d4b4c4]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x158]
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x170], ecx
add esp, 0x13c
ret
mov ebp, dword [esp + 0x90]
test ebp, ebp
jl 0x2b5bdcb
cmp edi, ebp
je 0x2b5bdcb
lea eax, [0x2d2a000]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5bbe1
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5bbed
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5bc0d
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5bc22
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5bc50
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x18], ecx
jmp 0x2b5bc65
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov dword [edi + 0x24], 0x20
lea ecx, [0x2d4a480]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x158]
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x170], ecx
add esp, 0x13c
ret
lea eax, [0x2d2a000]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5bcdd
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5bce9
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5bd09
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5bd1e
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5bd4c
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x18], ecx
jmp 0x2b5bd61
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov dword [edi + 0x24], 0x1a
lea ecx, [0x2d47980]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x158]
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x170], ecx
add esp, 0x13c
ret
mov ebp, dword [esp + 0x70]
test ebp, ebp
jge 0x2b5bdb5
mov ebp, 1
mov edi, dword [esp + 0x90]
test edi, edi
jge 0x2b5bdc5
mov edi, 1
mov eax, dword [esp + 0x40]
mov ecx, ebp
cmp edi, 1
jl 0x2b5be59
cmp ecx, 2
jne 0x2b5be26
test eax, 3
jne 0x2b5be22
mov ebp, 0x51eb851f
mov esi, edx
imul ebp
mov dword [esp + 0xa4], edx
mov ebp, dword [esp + 0x40]
mov eax, ebp
sar ebp, 0x1f
sar edx, 5
sub edx, ebp
imul edx, edx, 0x64
cmp eax, edx
jne 0x2b5be1b
mov edx, dword [esp + 0xa4]
sar edx, 7
sub edx, ebp
imul edx, edx, 0x190
cmp eax, edx
jne 0x2b5be28
mov ebp, 0x1d
jmp 0x2b5be51
mov esi, edx
jmp 0x2b5be28
mov esi, edx
cmp ecx, 0xd
jae 0x2b5cad5
lea edx, [0x2eca6c0]
mov ebp, dword [edx + ecx*4]
lea ebx, [ecx - 1]
cmp ebx, 0xd
jae 0x2b5cac9
sub ebp, dword [edx + ecx*4 - 4]
mov ebx, dword [esp + 0x88]
cmp ebp, edi
jge 0x2b5bf55
lea eax, [0x2d2a000]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5be8a
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5be96
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5beb6
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5becb
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5bef9
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x18], ecx
jmp 0x2b5bf0e
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov dword [edi + 0x24], 0x12
lea ecx, [0x2d43950]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x158]
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x170], ecx
add esp, 0x13c
ret
mov edx, dword [esp + 0xd0]
test edx, edx
jne 0x2b5c7c9
mov edx, dword [esp + 0x38]
cmp edx, 0xffffffff
jne 0x2b5c3dc
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x2b5c365
mov edx, dword [0x30f13f0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.02b609d0
lea edi, [esp + 0x114]
lea esi, [esp + 0x20]
call fcn.02b3effe
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
test ecx, 0x80000000
je 0x2b5c002
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
shl edx, 1
mov ecx, eax
shl eax, 1
shr edx, 0x1f
or eax, edx
mov edx, eax
add eax, 0xd7b17f80
shr ecx, 0x1f
add edx, 0xd7b17f80
adc ecx, 0xd
jmp 0x2b5c010
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x120]
add eax, 0x886e0900
mov edx, dword [esp + 0x154]
mov dword [esp], edx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x3c]
mov dword [esp + 8], ebp
adc ecx, 0xfffffff1
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
call fcn.02b63990
mov eax, dword [esp + 0x14]
movzx ecx, byte [esp + 0x18]
test cl, cl
jne 0x2b5c28c
mov ecx, dword [esp + 0x3c]
cmp ecx, 3
jle 0x2b5c08e
mov edx, dword [esp + 0xcc]
cmp word [edx], 0x4d47
jne 0x2b5c095
cmp byte [edx + 2], 0x54
jne 0x2b5c095
lea eax, [edx + 3]
mov dword [esp], eax
lea eax, [ecx - 3]
mov dword [esp + 4], eax
call fcn.02b56ff0
mov eax, dword [esp + 8]
imul eax, eax, 0xe10
jmp 0x2b5c095
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x60], eax
nop
lea ecx, [0x2d2dea0]
mov dword [esp], ecx
call fcn.02aeb620
mov edi, dword [esp + 4]
mov dword [esp + 0xc8], edi
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c0cf
mov ecx, dword [esp + 0xcc]
mov dword [edi], ecx
jmp 0x2b5c0db
mov eax, dword [esp + 0xcc]
call fcn.02b3e880
lea eax, [0x2d09da0]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c109
mov ecx, dword [esp + 0xcc]
mov dword [eax], ecx
jmp 0x2b5c119
mov edi, eax
mov eax, dword [esp + 0xcc]
call fcn.02b3e880
mov eax, edi
mov ecx, dword [esp + 0x60]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], 0
mov ecx, dword [esp + 0xc8]
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x10], 1
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2b5c148
mov dword [ecx + 8], eax
jmp 0x2b5c150
lea edi, [ecx + 8]
call fcn.02b3e880
lea eax, [0x2d09de0]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax], 0
mov dword [eax + 4], 0x80000000
mov word [eax + 8], 0
mov byte [eax + 0xa], 0
mov ecx, dword [esp + 0xc8]
mov dword [ecx + 0x18], 1
mov dword [ecx + 0x1c], 1
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2b5c19d
mov dword [ecx + 0x14], eax
jmp 0x2b5c1a5
lea edi, [ecx + 0x14]
call fcn.02b3e880
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0x80000000
mov dword [ecx + 0x30], 0xffffffff
mov dword [ecx + 0x34], 0x7fffffff
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
test edx, edx
jbe 0x2b5cac0
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2b5c1de
mov dword [ecx + 0x38], eax
jmp 0x2b5c1e6
lea edi, [ecx + 0x38]
call fcn.02b3e880
nop
lea eax, [0x30f4480]
cmp ecx, eax
jne 0x2b5c1f3
xor ecx, ecx
nop
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x118]
test edx, 0x80000000
je 0x2b5c255
shl edx, 1
mov ebx, eax
shr eax, 0x1f
or eax, edx
shl ebx, 1
mov edx, eax
shl eax, 1
shr ebx, 0x1f
or eax, ebx
mov ebx, eax
add eax, 0xd7b17f80
mov dword [esp + 0x11c], eax
shr edx, 0x1f
add ebx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x120], edx
and dword [esp + 0x114], 0x3fffffff
mov dword [esp + 0x118], 0
mov dword [esp + 0x124], ecx
lea edi, [esp + 0x158]
lea esi, [esp + 0x114]
call fcn.02b3effe
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
add esp, 0x13c
ret
xor ecx, ecx
sub ecx, eax
lea edx, [esp + 0x114]
mov dword [esp], edx
mov ebx, eax
sar eax, 0x1f
xor ebp, ebp
sub ebp, ebx
mov ebx, 0
sbb ebx, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call fcn.02b5d980
nop
mov eax, dword [esp + 0x154]
lea ecx, [0x30f4480]
cmp eax, ecx
jne 0x2b5c2cb
xor eax, eax
nop
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x118]
test edx, 0x80000000
je 0x2b5c32e
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 + 0x11c], ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x120], edx
and dword [esp + 0x114], 0x3fffffff
mov dword [esp + 0x118], 0
mov dword [esp + 0x124], eax
lea edi, [esp + 0x158]
lea esi, [esp + 0x114]
call fcn.02b3effe
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
add esp, 0x13c
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x1c], eax
call fcn.02b609d0
lea edi, [esp + 0x128]
lea esi, [esp + 0x20]
call fcn.02b3effe
lea edi, [esp + 0x158]
lea esi, [esp + 0x128]
call fcn.02b3effe
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
add esp, 0x13c
ret
xor ebx, ebx
sub ebx, edx
mov dword [esp + 0x94], ebx
mov ebp, dword [0x30f13f0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.02b609d0
lea edi, [esp + 0x100]
lea esi, [esp + 0x20]
call fcn.02b3effe
lea eax, [esp + 0x100]
mov dword [esp], eax
mov ecx, dword [esp + 0x38]
mov edx, ecx
sar ecx, 0x1f
xor ebx, ebx
sub ebx, edx
mov ebx, 0
sbb ebx, ecx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
call fcn.02b5d980
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
test ecx, 0x80000000
je 0x2b5c49e
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
shl edx, 1
mov ecx, eax
shl eax, 1
shr edx, 0x1f
or eax, edx
mov edx, eax
add eax, 0xd7b17f80
shr ecx, 0x1f
add edx, 0xd7b17f80
adc ecx, 0xd
jmp 0x2b5c4ac
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
add eax, 0x886e0900
mov edx, dword [esp + 0x154]
mov dword [esp], edx
adc ecx, 0xfffffff1
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
call fcn.02b61a70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
jne 0x2b5c51a
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jne 0x2b5c4ec
mov eax, 1
jmp 0x2b5c520
cmp ebx, eax
je 0x2b5c4f4
xor eax, eax
jmp 0x2b5c520
mov dword [esp], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.02ae2800
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
jmp 0x2b5c520
mov ebx, dword [esp + 0x3c]
xor eax, eax
test al, al
je 0x2b5c5d6
nop
mov eax, dword [esp + 0x154]
lea ecx, [0x30f4480]
cmp eax, ecx
jne 0x2b5c53c
xor eax, eax
nop
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
test edx, 0x80000000
je 0x2b5c59f
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 ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
mov dword [esp + 0x108], ecx
shr edx, 0x1f
add ebx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x10c], edx
and dword [esp + 0x100], 0x3fffffff
mov dword [esp + 0x104], 0
mov dword [esp + 0x110], eax
lea edi, [esp + 0x158]
lea esi, [esp + 0x100]
call fcn.02b3effe
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
add esp, 0x13c
ret
nop
lea eax, [0x2d2dea0]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov dword [esp + 0xf0], edi
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c60c
mov ecx, dword [esp + 0xcc]
mov dword [edi], ecx
jmp 0x2b5c618
mov eax, dword [esp + 0xcc]
call fcn.02b3e880
lea eax, [0x2d09da0]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c646
mov ecx, dword [esp + 0xcc]
mov dword [eax], ecx
jmp 0x2b5c656
mov edi, eax
mov eax, dword [esp + 0xcc]
call fcn.02b3e880
mov eax, edi
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], 0
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x10], 1
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2b5c685
mov dword [ecx + 8], eax
jmp 0x2b5c68d
lea edi, [ecx + 8]
call fcn.02b3e880
lea eax, [0x2d09de0]
mov dword [esp], eax
call fcn.02aeb620
mov eax, dword [esp + 4]
mov dword [eax], 0
mov dword [eax + 4], 0x80000000
mov word [eax + 8], 0
mov byte [eax + 0xa], 0
mov ecx, dword [esp + 0xf0]
mov dword [ecx + 0x18], 1
mov dword [ecx + 0x1c], 1
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2b5c6da
mov dword [ecx + 0x14], eax
jmp 0x2b5c6e2
lea edi, [ecx + 0x14]
call fcn.02b3e880
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0x80000000
mov dword [ecx + 0x30], 0xffffffff
mov dword [ecx + 0x34], 0x7fffffff
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
test edx, edx
jbe 0x2b5cab7
mov edx, dword [0x311e9a0]
test edx, edx
jne 0x2b5c71b
mov dword [ecx + 0x38], eax
jmp 0x2b5c723
lea edi, [ecx + 0x38]
call fcn.02b3e880
nop
lea eax, [0x30f4480]
cmp ecx, eax
jne 0x2b5c730
xor ecx, ecx
nop
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
test edx, 0x80000000
je 0x2b5c792
shl edx, 1
mov ebx, eax
shr eax, 0x1f
or eax, edx
shl ebx, 1
mov edx, eax
shl eax, 1
shr ebx, 0x1f
or eax, ebx
mov ebx, eax
add eax, 0xd7b17f80
mov dword [esp + 0x108], eax
shr edx, 0x1f
add ebx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x10c], edx
and dword [esp + 0x100], 0x3fffffff
mov dword [esp + 0x104], 0
mov dword [esp + 0x110], ecx
lea edi, [esp + 0x158]
lea esi, [esp + 0x100]
call fcn.02b3effe
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
add esp, 0x13c
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.02b609d0
lea edi, [esp + 0x128]
lea esi, [esp + 0x20]
call fcn.02b3effe
lea edi, [esp + 0x158]
lea esi, [esp + 0x128]
call fcn.02b3effe
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
add esp, 0x13c
ret
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.02b5a110
mov eax, dword [esp + 8]
mov dword [esp + 0xf8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa4], ecx
lea edx, [0x2d2a000]
mov dword [esp], edx
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5c88c
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5c898
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c8b8
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5c8cd
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c902
mov eax, dword [esp + 0xfc]
mov dword [edi + 0x18], eax
jmp 0x2b5c913
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edi, ecx
call fcn.02b3e880
mov dword [esp], 0
lea eax, [0x2d41ff9]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xe
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
call fcn.02b2a990
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xf4]
mov dword [edx + 0x24], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c968
mov dword [edx + 0x20], eax
jmp 0x2b5c970
lea edi, [edx + 0x20]
call fcn.02b3e880
lea edi, [esp + 0x158]
xor eax, eax
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], edx
add esp, 0x13c
ret
lea eax, [0x2d2a000]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5c9ca
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5c9d6
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5c9f6
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5ca0b
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov ecx, dword [esp + 0x5c]
mov dword [edi + 0x14], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5ca28
mov ecx, dword [esp + 0xe8]
mov dword [edi + 0x10], ecx
jmp 0x2b5ca3d
lea ecx, [edi + 0x10]
mov eax, dword [esp + 0xe8]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5ca5d
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x18], ecx
jmp 0x2b5ca72
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
xor eax, eax
lea edi, [esp + 0x158]
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x170], ecx
add esp, 0x13c
ret
xor eax, eax
mov ecx, edx
call fcn.02b3e900
xor eax, eax
mov ecx, edx
call fcn.02b3e900
mov eax, ebx
mov ecx, 0xd
call fcn.02b3e900
mov eax, ecx
mov ecx, 0xd
call fcn.02b3e900
mov eax, edx
mov ecx, 0xd
call fcn.02b3e900
mov ecx, 0xd
call fcn.02b3e900
lea eax, [0x2d2a000]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5cb28
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5cb34
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5cb54
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5cb69
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov ecx, dword [esp + 0xa4]
mov dword [edi + 0x14], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5cb89
mov ecx, dword [esp + 0xd8]
mov dword [edi + 0x10], ecx
jmp 0x2b5cb9e
lea ecx, [edi + 0x10]
mov eax, dword [esp + 0xd8]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov ecx, dword [esp + 0xa0]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5cbbe
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x18], ecx
jmp 0x2b5cbd3
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
xor eax, eax
lea edi, [esp + 0x158]
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x170], ecx
add esp, 0x13c
ret
lea eax, [0x2d2a000]
mov dword [esp], eax
call fcn.02aeb620
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x144]
mov dword [edi + 4], eax
mov eax, dword [0x311e9a0]
test eax, eax
jne 0x2b5cc49
mov ecx, dword [esp + 0x140]
mov dword [edi], ecx
jmp 0x2b5cc55
mov eax, dword [esp + 0x140]
call fcn.02b3e880
mov ecx, dword [esp + 0x14c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5cc75
mov ecx, dword [esp + 0x148]
mov dword [edi + 8], ecx
jmp 0x2b5cc8a
lea ecx, [edi + 8]
mov eax, dword [esp + 0x148]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov ecx, dword [esp + 0xa4]
mov dword [edi + 0x14], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5ccaa
mov ecx, dword [esp + 0xd8]
mov dword [edi + 0x10], ecx
jmp 0x2b5ccbf
lea ecx, [edi + 0x10]
mov eax, dword [esp + 0xd8]
mov edx, edi
mov edi, ecx
call fcn.02b3e880
mov edi, edx
mov dword [esp + 0xf4], edi
mov ecx, dword [esp + 0xa0]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5cce6
mov eax, dword [esp + 0xfc]
mov dword [edi + 0x18], eax
jmp 0x2b5ccf7
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0xfc]
mov edi, ecx
call fcn.02b3e880
mov dword [esp], 0
lea eax, [0x2d3f2b2]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
lea eax, [0x2d419d6]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0xd
call fcn.02b2aa30
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xf4]
mov dword [edx + 0x24], ecx
mov ecx, dword [0x311e9a0]
test ecx, ecx
jne 0x2b5cd5b
mov dword [edx + 0x20], eax
jmp 0x2b5cd63
lea edi, [edx + 0x20]
call fcn.02b3e880
lea edi, [esp + 0x158]
xor eax, eax
call fcn.02b3eb1b
lea ecx, [0x2da46bc]
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], edx
add esp, 0x13c
ret
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], ebp
mov dword [esp + 0xe4], edi
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0xd8]
movzx esi, byte [esp + 0x36]
movzx edi, byte [esp + 0x37]
mov ebp, edx
mov edx, dword [esp + 0xa4]
mov edx, ecx
mov ecx, ebx
mov ebx, edx
mov edx, dword [esp + 0xa4]
jmp 0x2b5b920
inc eax
cmp eax, ecx
jge 0x2b5cde2
jae 0x2b5ce5d
movzx ebx, byte [eax + edx]
add ebx, 0xffffffd0
cmp bl, 9
jbe 0x2b5cdcb
mov dword [esp + 0x6c], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.02b5d420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x54]
cmp ebp, esi
ja 0x2b5ce54
sub esi, ebp
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebp, esi
mov esi, dword [esp + 0xe0]
add ebp, esi
mov esi, eax
mov eax, dword [esp + 0x9c]
mov eax, ecx
mov ecx, edi
mov edi, eax
mov eax, dword [esp + 0x9c]
mov eax, ebp
mov ebp, edx
mov edx, ebx
mov ebx, eax
mov eax, dword [esp + 0x9c]
jmp 0x2b5cd8c
mov eax, ebp
mov ecx, esi
call fcn.02b3e960
call fcn.02b3e900
inc ebp
cmp ebp, 2
jge 0x2b5ce8a
cmp ecx, 0x10a
jne 0x2b5ce62
test ebx, ebx
jle 0x2b5ce62
cmp byte [esi], 0x20
jne 0x2b5ce62
dec ebx
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add esi, ebx
mov ebx, edi
jmp 0x2b5ce62
xor ebp, ebp
xor edi, edi
jmp 0x2b5cea1
inc ebp
lea edi, [edi + edi*4]
movzx edx, dl
lea edi, [edx + edi*2]
mov edx, dword [esp + 0xa4]
cmp ebp, 3
jge 0x2b5cec4
cmp ebp, ebx
jge 0x2b5cec0
jae 0x2b5cf10
movzx edx, byte [ebp + esi]
add edx, 0xffffffd0
cmp dl, 9
jbe 0x2b5ce90
mov edx, dword [esp + 0xa4]
test ebp, ebp
je 0x2b5ced1
cmp ecx, 0x10b
jne 0x2b5cedb
cmp ebp, 3
je 0x2b5cedb
mov ecx, dword [0x30f7700]
xor edi, edi
jmp 0x2b5cef0
cmp ebp, ebx
ja 0x2b5cf07
sub ebx, ebp
mov ecx, ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
add esi, ebx
mov ebx, ecx
xor ecx, ecx
mov dword [esp + 0x44], edi
movzx edi, byte [esp + 0x37]
mov ebp, ecx
mov ecx, esi
movzx esi, byte [esp + 0x36]
jmp 0x2b5b920
mov eax, ebp
mov ecx, ebx
call fcn.02b3e960
mov eax, ebp
mov ecx, ebx
call fcn.02b3e900
mov ecx, ebp
cmp ecx, 9
jge 0x2b5cf3a
lea ebp, [ecx + 1]
cmp ebx, ebp
jle 0x2b5cf3a
movzx edi, byte [ecx + esi + 1]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x2b5cf3a
xchg edi, eax
cmp al, 0x39
xchg edi, eax
jbe 0x2b5cf19
mov dword [esp + 0x7c], ecx
mov dword [esp], esi
mov dword [esp + 4], ebx
lea eax, [ecx + 1]
mov dword [esp + 0xa0], eax
mov dword [esp + 8], eax
call fcn.02b5d420
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xa0]
cmp ebp, esi
jb 0x2b5cfc9
mov edi, dword [esp + 0x7c]
sub ebp, edi
dec ebp
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
mov esi, dword [esp + 0xfc]
add ebp, esi
movzx esi, byte [esp + 0x36]
mov dword [esp + 0x58], ebx
mov dword [esp + 0xe4], edx
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0xa4]
mov ecx, ebp
mov ebx, edi
movzx edi, byte [esp + 0x37]
mov ebp, eax
mov eax, dword [esp + 0xd8]
jmp 0x2b5b920
mov eax, esi
mov ecx, ebp
call fcn.02b3e960
mov eax, esi
mov ecx, ebp
call fcn.02b3e960
call fcn.02b3e920
mov eax, ebp
mov ecx, edx
call fcn.02b3e960
mov ecx, edx
mov edx, ebx
call fcn.02b3e920
nop
call fcn.02b3d440
jmp fcn.02b5a9c0