Function at 0x1002acf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov eax, dword [0x1019c020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, edx
mov dword [ebp - 0x240], ebx
mov edx, ecx
mov dword [ebp - 0x244], 0
push edi
mov edi, dword [ebp + 0xc]
lea eax, [esi*4]
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x24c], eax
lea eax, [ebx*4]
mov dword [ebp - 0x250], eax
mov eax, dword [edx + 0x4c]
lea ecx, [edi*4]
mov dword [ebp - 0x278], 0xffffffff
mov dword [ebp - 0x22c], ecx
mov eax, dword [eax + esi*4]
mov eax, dword [eax + ebx*4]
cmp dword [ecx + eax], 0
jne 0x1002d079
mov eax, dword [edx + 0x1c]
mov ecx, ebx
shl eax, cl
mov ecx, dword [edx]
mov dword [ebp - 0x274], eax
sub ecx, ebx
shr eax, 1
mov ebx, 1
mov dword [ebp - 0x224], eax
mov eax, esi
imul eax, dword [ebp - 0x274]
mov dword [ebp - 0x228], eax
mov eax, dword [edx + 4]
mov edx, ebx
shl edx, cl
dec edx
and edx, eax
neg edx
sbb edx, edx
shr eax, cl
neg edx
shl ebx, cl
add edx, eax
dec ebx
mov dword [ebp - 0x23c], edx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 8]
and ebx, eax
neg ebx
sbb ebx, ebx
shr eax, cl
mov ecx, dword [ebp - 0x23c]
neg ebx
add ebx, eax
mov eax, ecx
shr eax, 1
mov dword [ebp - 0x270], eax
mov eax, ecx
and eax, 1
mov dword [ebp - 0x284], ebx
add dword [ebp - 0x270], eax
mov eax, ebx
shr eax, 1
mov dword [ebp - 0x280], eax
mov eax, ebx
and eax, 1
add dword [ebp - 0x280], eax
test cl, 7
mov eax, 0
setne al
mov dword [ebp - 0x220], eax
mov eax, ecx
shr eax, 3
mov ecx, 0
add dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x270]
test al, 7
setne cl
shr eax, 3
add ecx, eax
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x268], ecx
lea ecx, [edi*4]
mov ecx, dword [ecx + eax]
mov eax, dword [edx + ecx*4 + 0x24]
mov edx, esi
imul edx, dword [ebp - 0x220]
imul edx, dword [ebp - 0x274]
add edx, dword [eax + edi*4]
mov eax, 0xa
sub eax, ecx
mov dword [ebp - 0x218], edx
mov edx, dword [ebp - 0x210]
mov ecx, esi
imul ecx, dword [ebp - 0x268]
mov eax, dword [edx + eax*4]
imul ecx, dword [ebp - 0x224]
mov dword [ebp - 0x214], ecx
lea ecx, [edi*4]
mov edx, dword [ebp - 0x214]
add edx, dword [eax + ecx]
mov ebx, dword [ebp - 0x240]
mov eax, edx
add eax, dword [ebp - 0x268]
mov dword [ebp - 0x214], edx
mov edx, dword [ebp - 0x210]
imul ecx, edi, 0x101c
mov dword [ebp - 0x26c], eax
mov edi, dword [edx + 0x50]
add edi, ecx
mov dword [ebp - 0x25c], edi
test esi, esi
jne 0x1002aeda
mov ecx, 0x400
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x25c]
lea ecx, [edx + 0x54]
mov dword [edi + 0x1000], 0
mov dword [edi + 0x1004], 0x10000
mov dword [edi + 0x1008], 0
mov dword [edi + 0x100c], 0xb
mov dword [edi + 0x1010], 0xffffffff
call fcn.1002a7c0
mov edx, dword [ebp - 0x210]
mov edi, dword [ebp - 0x22c]
mov dword [ebp - 0x238], 0
mov ecx, dword [edx + 0x4c]
mov ecx, dword [ecx + esi*4]
mov ecx, dword [ecx + ebx*4]
mov dword [edi + ecx], eax
mov ecx, dword [ebp - 0x25c]
mov dword [ecx + 0x1014], 0x1002a820
mov eax, dword [edx + 0x4c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + ebx*4]
mov eax, dword [edi + eax]
lea edi, [ebp - 0x204]
mov dword [ecx + 0x1018], eax
mov eax, dword [edx + 0x38]
lea ecx, [eax*4 + 4]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
test esi, esi
jne 0x1002af7f
mov eax, dword [edx + 0x40]
mov ecx, dword [ebp - 0x22c]
mov dword [ecx + eax], esi
xor eax, eax
mov dword [ebp - 0x27c], 0xffffffff
cmp dword [edx + 0x38], eax
mov dword [ebp - 0x264], 0
sete al
mov dword [ebp - 0x258], eax
test esi, esi
jne 0x1002afad
mov dword [ebp - 0x21c], esi
jmp 0x1002b018
mov edi, dword [ebp - 0x218]
mov esi, edi
mov eax, dword [ebp - 0x220]
sub esi, eax
cmp dword [ebp - 0x228], 1
mov dword [ebp - 0x21c], 1
jbe 0x1002b000
mov edi, esi
sub edi, eax
cmp esi, dword [ebp - 0x218]
jae 0x1002b018
mov cl, byte [esi]
xor edx, edx
mov al, byte [edi]
inc esi
inc edi
cmp cl, al
sete dl
mov dword [ebp - 0x21c], edx
mov edx, dword [ebp - 0x210]
cmp cl, al
je 0x1002afd4
jmp 0x1002b018
cmp esi, edi
jae 0x1002b018
mov al, byte [esi]
xor ecx, ecx
inc esi
test al, al
sete cl
mov dword [ebp - 0x21c], ecx
test al, al
je 0x1002b000
test ebx, ebx
jne 0x1002b812
mov dword [ebp - 0x234], ebx
cmp dword [ebp - 0x274], ebx
jbe 0x1002c17d
mov ecx, dword [ebp - 0x228]
nop dword [eax + eax]
cmp ecx, dword [ebp - 0x284]
jae 0x1002c17d
cmp dword [ebp - 0x258], 0
jne 0x1002b1d7
cmp dword [ebp - 0x238], 0x800
jbe 0x1002b1d7
mov eax, dword [edx + 0x38]
xor ebx, ebx
or edi, 0xffffffff
mov dword [ebp - 0x244], ebx
xor esi, esi
mov dword [ebp - 0x224], eax
test byte [edx + 0x34], 0x40
mov ecx, ebx
setne cl
lea ecx, [ecx*2 + 3]
cmp ecx, eax
ja 0x1002b0d8
xor edx, edx
nop word [eax + eax]
lea ebx, [ecx*4]
mov eax, dword [ebp + ebx - 0x204]
cmp eax, esi
cmova esi, eax
cmp eax, edi
cmovb edi, eax
cmp eax, dword [ebp + edx - 0x204]
jbe 0x1002b0c9
mov dword [ebp - 0x244], ecx
mov edx, ebx
inc ecx
cmp ecx, dword [ebp - 0x224]
jbe 0x1002b0a0
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x204]
mov ecx, edi
cmp eax, edi
cmovb ecx, eax
cmp eax, esi
mov dword [ebp - 0x280], ecx
mov ecx, esi
cmova ecx, eax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x260], ecx
mov ecx, eax
shr eax, 3
sub ecx, esi
mov dword [ebp - 0x258], eax
cmp ecx, eax
jae 0x1002b1cd
mov eax, dword [edx + 0x40]
add eax, dword [ebp - 0x22c]
mov dword [ebp - 0x224], eax
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0x204]
mov dword [ebp - 0x240], eax
mov eax, esi
sub eax, dword [ebp - 0x240]
cmp eax, ecx
jbe 0x1002b1cd
mov ebx, dword [ebp - 0x238]
mov dword [ebp - 0x230], ebx
shr dword [ebp - 0x230], 4
mov ebx, dword [ebp - 0x244]
cmp eax, dword [ebp - 0x230]
jbe 0x1002b1cd
mov eax, dword [ebp - 0x240]
sub eax, dword [ebp - 0x238]
mov edx, dword [ebp - 0x210]
add eax, esi
cmp eax, ecx
jbe 0x1002b1cd
cmp eax, dword [ebp - 0x230]
jbe 0x1002b1cd
mov eax, dword [ebp - 0x238]
sub esi, edi
shr eax, 2
cmp esi, eax
jbe 0x1002b1cd
mov ecx, dword [ebp - 0x224]
cmp dword [ecx], 0
jne 0x1002b1b0
mov eax, dword [ebp - 0x260]
sub eax, dword [ebp - 0x280]
cmp eax, dword [ebp - 0x258]
jbe 0x1002b1cd
test dword [edx + 0x34], 0x100
mov dword [ebp - 0x27c], ebx
jne 0x1002b1cd
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x278], eax
mov dword [ecx], ebx
mov dword [ebp - 0x258], 1
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x224], eax
test al, 8
je 0x1002b294
cmp dword [ebp - 0x228], 0
mov ebx, 1
mov edi, dword [ebp - 0x218]
mov ecx, edi
jbe 0x1002b270
mov edx, edi
mov esi, edi
sub edx, dword [ebp - 0x220]
sub esi, edx
nop word [eax + eax]
cmp edx, edi
jae 0x1002b225
mov cl, byte [esi + edx]
xor ebx, ebx
mov al, byte [edx]
inc edx
cmp cl, al
sete bl
cmp cl, al
je 0x1002b210
mov esi, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x25c]
xor eax, eax
cmp ebx, dword [ebp - 0x21c]
mov edx, 0xe5
sete al
test byte [ebp - 0x224], 0x40
push eax
mov eax, 0x195
cmovne edx, eax
call fcn.1002a3a0
add esp, 4
mov dword [ebp - 0x21c], ebx
test ebx, ebx
je 0x1002b294
add edi, esi
mov dword [ebp - 0x218], edi
jmp 0x1002b7e1
mov esi, dword [ebp - 0x220]
lea edx, [edi + esi]
nop dword [eax]
cmp ecx, edx
jae 0x1002b22b
mov al, byte [ecx]
xor ebx, ebx
inc ecx
test al, al
sete bl
test al, al
je 0x1002b280
jmp 0x1002b22b
mov ebx, dword [ebp - 0x228]
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x214], ecx
xor esi, esi
test ebx, ebx
je 0x1002b2bc
mov eax, dword [ebp - 0x218]
sub eax, dword [ebp - 0x220]
movzx edi, byte [eax]
shl edi, 8
cmp ebx, 1
jbe 0x1002b2dd
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x218]
add eax, eax
sub ecx, eax
movzx ecx, byte [ecx]
shl ecx, 8
mov dword [ebp - 0x214], ecx
xor ebx, ebx
cmp dword [ebp - 0x23c], ebx
jbe 0x1002b7e1
mov eax, 1
mov dword [ebp - 0x244], ebx
sub eax, dword [ebp - 0x220]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x218]
nop dword [eax + eax]
mov edx, dword [ebp - 0x220]
movzx eax, byte [eax]
or esi, eax
lea eax, [edx*8 - 8]
mov edx, dword [ebp - 0x210]
cmp ebx, eax
jae 0x1002b372
cmp dword [ebp - 0x228], 0
jbe 0x1002b372
mov edx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x224]
movzx eax, byte [eax + edx]
mov edx, dword [ebp - 0x210]
or edi, eax
cmp dword [ebp - 0x228], 1
jbe 0x1002b372
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x218]
add eax, eax
sub ecx, eax
movzx eax, byte [ecx + 1]
mov ecx, dword [ebp - 0x214]
or ecx, eax
test byte [edx + 0x34], 0x40
je 0x1002b590
nop dword [eax]
mov eax, dword [edx + 0x40]
add ecx, ecx
mov dword [ebp - 0x214], ecx
add esi, esi
mov ecx, dword [ebp - 0x22c]
add edi, edi
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x208], edi
mov ecx, dword [ecx + eax]
test ecx, ecx
je 0x1002b3ff
cmp ecx, ebx
jbe 0x1002b3b0
xor esi, esi
jmp 0x1002b3db
mov eax, ebx
mov edx, ebx
and eax, 0xfffffff8
sub edx, eax
sub edx, ecx
mov ecx, 7
mov al, dl
sar edx, 3
and al, 7
sub cl, al
mov eax, dword [ebp - 0x218]
movzx esi, byte [edx + eax]
shr esi, cl
and esi, 1
shl esi, 4
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x230]
mov edi, eax
shr edx, 1
and eax, 0x1e00
and edx, 0x7c000
or edx, eax
shr edx, 9
or edx, esi
jmp 0x1002b41b
mov edx, dword [ebp - 0x208]
mov eax, esi
shr edx, 1
and eax, 0x1e00
and edx, 0x7e000
mov edi, esi
or edx, eax
shr edx, 9
mov ecx, dword [ebp - 0x25c]
shr edi, 8
and edi, 1
push edi
call fcn.1002a3a0
mov edx, dword [ebp - 0x210]
add esp, 4
cmp dword [ebp - 0x258], 0
mov esi, dword [ebp - 0x23c]
jne 0x1002b55e
mov ecx, dword [edx + 0x38]
cmp ebx, ecx
jb 0x1002b55e
lea eax, [esi - 2]
cmp ebx, eax
jae 0x1002b55e
mov eax, dword [ebp - 0x208]
mov esi, 5
shr eax, 0xe
not eax
movd xmm0, edi
and eax, 1
pshufd xmm2, xmm0, 0
xor eax, edi
add dword [ebp - 0x204], eax
cmp ecx, esi
jb 0x1002b4c9
cmp esi, ebx
ja 0x1002b4c9
mov edx, dword [ebp - 0x244]
mov ecx, 7
sub edx, esi
mov al, dl
sar edx, 3
and al, 7
sub cl, al
mov eax, dword [ebp - 0x218]
movzx eax, byte [edx + eax]
shr eax, cl
not eax
and eax, 1
xor eax, edi
add dword [ebp + esi*4 - 0x204], eax
inc esi
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x38]
cmp esi, ecx
jbe 0x1002b487
mov eax, ecx
sub eax, esi
inc eax
cmp esi, ecx
ja 0x1002b54c
cmp eax, 8
jb 0x1002b535
xorps xmm0, xmm0
and eax, 7
movaps xmm1, xmm0
mov edx, ecx
pcmpeqd xmm1, xmm2
sub edx, eax
movaps xmm2, xmmword [0x101922f0]
pand xmm2, xmm1
pandn xmm1, xmm0
por xmm2, xmm1
nop dword [eax + eax]
movups xmm0, xmmword [ebp + esi*4 - 0x204]
movaps xmm1, xmm2
paddd xmm1, xmm0
movups xmmword [ebp + esi*4 - 0x204], xmm1
movups xmm0, xmmword [ebp + esi*4 - 0x1f4]
movaps xmm1, xmm2
paddd xmm1, xmm0
movups xmmword [ebp + esi*4 - 0x1f4], xmm1
add esi, 8
cmp esi, edx
jbe 0x1002b500
cmp esi, ecx
ja 0x1002b54c
xor edi, 1
nop dword [eax]
add dword [ebp + esi*4 - 0x204], edi
inc esi
cmp esi, ecx
jbe 0x1002b540
inc dword [ebp - 0x238]
mov edx, dword [ebp - 0x210]
mov esi, dword [ebp - 0x23c]
inc ebx
mov ecx, ebx
and ecx, 7
mov dword [ebp - 0x244], ecx
je 0x1002b7b6
mov edi, dword [ebp - 0x208]
cmp ebx, esi
mov esi, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x214]
jb 0x1002b380
jmp 0x1002b7b6
mov eax, dword [edx + 0x40]
add ecx, ecx
mov dword [ebp - 0x214], ecx
add esi, esi
mov ecx, dword [ebp - 0x22c]
add edi, edi
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x208], edi
mov ecx, dword [ecx + eax]
test ecx, ecx
je 0x1002b61f
cmp ecx, ebx
jbe 0x1002b5c0
xor esi, esi
jmp 0x1002b5eb
mov eax, ebx
mov edx, ebx
and eax, 0xfffffff8
sub edx, eax
sub edx, ecx
mov ecx, 7
mov al, dl
sar edx, 3
and al, 7
sub cl, al
mov eax, dword [ebp - 0x218]
movzx esi, byte [edx + eax]
shr esi, cl
and esi, 1
shl esi, 2
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x230]
mov edi, eax
shr edx, 3
and eax, 0x600
and edx, 0xf000
or edx, eax
mov eax, dword [ebp - 0x214]
shr edx, 1
and eax, 0x38000
or edx, eax
shr edx, 8
or edx, esi
jmp 0x1002b64b
mov edx, dword [ebp - 0x208]
mov eax, esi
shr edx, 3
and eax, 0x600
and edx, 0xf800
mov edi, esi
or edx, eax
mov eax, dword [ebp - 0x214]
shr edx, 1
and eax, 0x38000
or edx, eax
shr edx, 8
mov ecx, dword [ebp - 0x25c]
shr edi, 8
and edi, 1
push edi
call fcn.1002a3a0
mov edx, dword [ebp - 0x210]
add esp, 4
cmp dword [ebp - 0x258], 0
mov esi, dword [ebp - 0x23c]
jne 0x1002b78e
mov ecx, dword [edx + 0x38]
cmp ebx, ecx
jb 0x1002b78e
lea eax, [esi - 2]
cmp ebx, eax
jae 0x1002b78e
mov eax, dword [ebp - 0x208]
mov esi, 3
shr eax, 0xe
not eax
movd xmm0, edi
and eax, 1
pshufd xmm2, xmm0, 0
xor eax, edi
add dword [ebp - 0x204], eax
cmp ecx, esi
jb 0x1002b6f9
cmp esi, ebx
ja 0x1002b6f9
mov edx, dword [ebp - 0x244]
mov ecx, 7
sub edx, esi
mov al, dl
sar edx, 3
and al, 7
sub cl, al
mov eax, dword [ebp - 0x218]
movzx eax, byte [edx + eax]
shr eax, cl
not eax
and eax, 1
xor eax, edi
add dword [ebp + esi*4 - 0x204], eax
inc esi
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x38]
cmp esi, ecx
jbe 0x1002b6b7
mov eax, ecx
sub eax, esi
inc eax
cmp esi, ecx
ja 0x1002b77c
cmp eax, 8
jb 0x1002b762
xorps xmm0, xmm0
and eax, 7
movaps xmm1, xmm0
mov edx, ecx
pcmpeqd xmm1, xmm2
sub edx, eax
movaps xmm2, xmmword [0x101922f0]
pand xmm2, xmm1
pandn xmm1, xmm0
por xmm2, xmm1
nop dword [eax + eax]
movups xmm0, xmmword [ebp + esi*4 - 0x204]
movaps xmm1, xmm2
paddd xmm1, xmm0
movups xmmword [ebp + esi*4 - 0x204], xmm1
movups xmm0, xmmword [ebp + esi*4 - 0x1f4]
paddd xmm0, xmm2
movups xmmword [ebp + esi*4 - 0x1f4], xmm0
add esi, 8
cmp esi, edx
jbe 0x1002b730
cmp esi, ecx
ja 0x1002b77c
xor edi, 1
nop dword [eax]
add dword [ebp + esi*4 - 0x204], edi
inc esi
cmp esi, ecx
jbe 0x1002b770
inc dword [ebp - 0x238]
mov edx, dword [ebp - 0x210]
mov esi, dword [ebp - 0x23c]
inc ebx
mov ecx, ebx
and ecx, 7
mov dword [ebp - 0x244], ecx
je 0x1002b7b6
mov edi, dword [ebp - 0x208]
cmp ebx, esi
mov esi, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x214]
jb 0x1002b590
mov eax, dword [ebp - 0x218]
mov esi, dword [ebp - 0x230]
inc eax
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x218], eax
cmp ebx, dword [ebp - 0x23c]
jb 0x1002b310
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x228]
inc eax
mov edx, dword [ebp - 0x210]
inc ecx
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x228], ecx
cmp eax, dword [ebp - 0x274]
jb 0x1002b040
jmp 0x1002c17d
xor eax, eax
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x274], eax
jbe 0x1002c17d
mov ebx, dword [ebp - 0x228]
xor edi, edi
nop
cmp ebx, dword [ebp - 0x284]
jae 0x1002c17d
cmp dword [ebp - 0x258], 0
jne 0x1002b9ce
cmp dword [ebp - 0x238], 0x800
jbe 0x1002b9ce
mov eax, dword [edx + 0x38]
xor ecx, ecx
or ebx, 0xffffffff
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x240], eax
lea esi, [ecx + 3]
cmp eax, esi
jb 0x1002b8bd
xor edx, edx
nop word [eax + eax]
lea eax, [esi*4]
mov eax, dword [ebp + eax - 0x204]
cmp eax, ecx
cmova ecx, eax
cmp eax, ebx
cmovb ebx, eax
cmp eax, dword [ebp + edx - 0x204]
jbe 0x1002b8ae
mov dword [ebp - 0x260], esi
lea edx, [esi*4]
inc esi
cmp esi, dword [ebp - 0x240]
jbe 0x1002b880
mov edx, dword [ebp - 0x210]
mov esi, dword [ebp - 0x204]
mov eax, ebx
cmp esi, ebx
cmovb eax, esi
cmp esi, ecx
mov dword [ebp - 0x248], eax
mov eax, ecx
cmova eax, esi
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x238]
mov esi, eax
shr eax, 3
sub esi, ecx
mov dword [ebp - 0x254], eax
cmp esi, eax
jae 0x1002b9b8
mov eax, dword [edx + 0x40]
add eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x210]
mov dword [ebp - 0x234], eax
mov eax, dword [eax]
mov eax, dword [ebp + eax*4 - 0x204]
mov dword [ebp - 0x240], eax
mov eax, ecx
sub eax, dword [ebp - 0x240]
cmp eax, esi
jbe 0x1002b9b8
mov edx, dword [ebp - 0x238]
mov dword [ebp - 0x21c], edx
shr dword [ebp - 0x21c], 4
mov edx, dword [ebp - 0x210]
cmp eax, dword [ebp - 0x21c]
jbe 0x1002b9b8
mov eax, dword [ebp - 0x240]
sub eax, dword [ebp - 0x238]
add eax, ecx
cmp eax, esi
jbe 0x1002b9b8
cmp eax, dword [ebp - 0x21c]
jbe 0x1002b9b8
mov eax, dword [ebp - 0x238]
sub ecx, ebx
shr eax, 2
cmp ecx, eax
jbe 0x1002b9b8
mov ecx, dword [ebp - 0x234]
cmp dword [ecx], 0
jne 0x1002b995
mov eax, dword [ebp - 0x258]
sub eax, dword [ebp - 0x248]
cmp eax, dword [ebp - 0x254]
jbe 0x1002b9b8
test dword [edx + 0x34], 0x100
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x27c], eax
jne 0x1002b9b8
mov ebx, dword [ebp - 0x230]
mov dword [ebp - 0x278], ebx
mov dword [ecx], eax
mov ebx, dword [ebp - 0x228]
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x258], 1
mov ecx, eax
mov eax, dword [ebp - 0x224]
shr ecx, 1
dec eax
cmp ecx, eax
jae 0x1002b9ec
mov ecx, dword [ebp - 0x280]
mov eax, ebx
dec ecx
shr eax, 1
cmp eax, ecx
jb 0x1002b9fa
mov esi, dword [ebp - 0x214]
mov dword [ebp - 0x26c], esi
jmp 0x1002ba00
mov esi, dword [ebp - 0x214]
test byte [edx + 0x34], 0x10
je 0x1002bc6c
test byte [ebp - 0x230], 1
jne 0x1002bc6c
mov eax, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x218]
dec eax
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x234], ecx
cmp dword [ebp - 0x230], eax
jae 0x1002ba51
mov eax, dword [ebp - 0x284]
dec eax
cmp ebx, eax
jae 0x1002ba51
mov eax, dword [ebp - 0x220]
add eax, ecx
mov dword [ebp - 0x234], eax
cmp ebx, 1
jbe 0x1002ba64
sub esi, dword [ebp - 0x268]
movzx esi, byte [esi]
shl esi, 8
jmp 0x1002ba66
xor esi, esi
mov eax, dword [ebp - 0x214]
xor edx, edx
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x264], 1
movzx ebx, byte [eax]
movzx ecx, byte [ecx]
shl ecx, 8
shl ebx, 8
mov dword [ebp - 0x208], ecx
cmp dword [ebp - 0x270], edx
jbe 0x1002bc47
inc eax
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x214]
sub eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x214]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x264]
nop
test eax, eax
je 0x1002bc47
mov eax, dword [ebp - 0x268]
lea eax, [eax*8 - 8]
cmp edx, eax
jae 0x1002bb20
cmp dword [ebp - 0x228], 1
jbe 0x1002bafd
mov eax, dword [ebp - 0x248]
movzx eax, byte [eax]
or esi, eax
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x260]
movzx eax, byte [eax]
or ebx, eax
mov eax, dword [ebp - 0x21c]
movzx eax, byte [eax + ecx]
or dword [ebp - 0x208], eax
nop
mov ecx, dword [ebp - 0x208]
mov eax, edx
shr eax, 2
cmp eax, dword [ebp - 0x220]
jae 0x1002bb60
mov eax, dword [ebp - 0x240]
movzx edi, byte [eax]
inc eax
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x234]
movzx ecx, byte [eax]
inc eax
mov dword [ebp - 0x244], ecx
mov ecx, dword [ebp - 0x208]
mov dword [ebp - 0x234], eax
nop
shl dword [ebp - 0x244], 2
add ecx, ecx
mov dword [ebp - 0x208], ecx
add esi, esi
add ebx, ebx
shl edi, 2
mov ecx, esi
mov eax, ebx
shr ecx, 3
and eax, 0x38000
and ecx, 0x7000
or ecx, eax
mov eax, dword [ebp - 0x208]
shr ecx, 3
and eax, 0x38000
or ecx, eax
shr ecx, 9
test ecx, ecx
jne 0x1002bbbe
mov eax, edi
or eax, dword [ebp - 0x244]
test eax, 0x300
jne 0x1002bbe9
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x60]
mov byte [edx + eax], cl
jmp 0x1002bc00
cmp ecx, 0x1ff
jne 0x1002bbf3
mov eax, edi
and eax, dword [ebp - 0x244]
and eax, 0x300
cmp eax, 0x300
jne 0x1002bbe9
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x60]
mov byte [edx + eax], 1
jmp 0x1002bc00
xor eax, eax
mov dword [ebp - 0x264], eax
jmp 0x1002bc06
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x60]
mov byte [edx + eax], 2
mov eax, dword [ebp - 0x264]
inc edx
test dl, 3
je 0x1002bc1e
mov ecx, dword [ebp - 0x208]
cmp edx, dword [ebp - 0x270]
jb 0x1002bb60
test dl, 7
je 0x1002bc2f
cmp edx, dword [ebp - 0x270]
jb 0x1002bb20
inc dword [ebp - 0x248]
inc dword [ebp - 0x21c]
cmp edx, dword [ebp - 0x270]
jb 0x1002bad0
mov ecx, dword [ebp - 0x25c]
xor eax, eax
cmp dword [ebp - 0x264], eax
mov edx, 0xc3f
sete al
push eax
call fcn.1002a3a0
mov edx, dword [ebp - 0x210]
add esp, 4
mov ebx, dword [ebp - 0x228]
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x254], 0
xor edi, edi
mov dword [ebp - 0x208], ecx
test ebx, ebx
je 0x1002bc9e
mov eax, dword [ebp - 0x218]
sub eax, dword [ebp - 0x220]
movzx esi, byte [eax]
shl esi, 8
cmp ebx, 1
jbe 0x1002bcd7
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x218]
add eax, eax
sub ecx, eax
mov eax, dword [ebp - 0x214]
sub eax, dword [ebp - 0x268]
movzx ecx, byte [ecx]
movzx eax, byte [eax]
shl ecx, 8
shl eax, 8
mov dword [ebp - 0x208], ecx
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x214]
xor ebx, ebx
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x23c], ebx
jbe 0x1002c134
mov eax, dword [ebp - 0x268]
lea eax, [eax*8 - 8]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x214]
sub eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x240], eax
nop
mov eax, ebx
shr eax, 1
cmp eax, dword [ebp - 0x20c]
jae 0x1002bd74
cmp dword [ebp - 0x228], 1
jbe 0x1002bd54
mov eax, dword [ebp - 0x240]
movzx eax, byte [eax]
or dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x214]
movzx eax, byte [eax + 1]
or dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 1]
or dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x220]
mov dword [ebp - 0x234], eax
sub dword [ebp - 0x234], edx
inc dword [ebp - 0x234]
mov edx, dword [ebp - 0x210]
nop dword [eax + eax]
mov ecx, dword [ebp - 0x220]
movzx eax, byte [eax]
or edi, eax
lea eax, [ecx*8 - 8]
mov ecx, dword [ebp - 0x208]
cmp ebx, eax
jae 0x1002be00
cmp dword [ebp - 0x228], 0
jbe 0x1002be00
mov eax, dword [ebp - 0x234]
movzx eax, byte [eax]
or esi, eax
cmp dword [ebp - 0x228], 1
jbe 0x1002be00
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x218]
add eax, eax
sub ecx, eax
movzx eax, byte [ecx + 1]
mov ecx, dword [ebp - 0x208]
or ecx, eax
mov dword [ebp - 0x208], ecx
nop dword [eax + eax]
mov eax, dword [ebp - 0x248]
shl dword [ebp - 0x21c], 1
add eax, eax
shl dword [ebp - 0x254], 1
cmp dword [ebp - 0x264], 0
mov dword [ebp - 0x248], eax
je 0x1002be56
mov eax, dword [edx + 0x60]
mov ecx, ebx
shr ecx, 1
cmp byte [ecx + eax], 2
mov ecx, dword [ebp - 0x208]
jge 0x1002be50
shl ecx, 2
shl edi, 2
shl esi, 2
add ebx, 2
mov dword [ebp - 0x208], ecx
jmp 0x1002c0d4
mov eax, dword [ebp - 0x248]
add esi, esi
add ecx, ecx
add edi, edi
mov dword [ebp - 0x260], esi
test byte [edx + 0x34], 4
mov dword [ebp - 0x208], ecx
je 0x1002bf4f
mov ecx, dword [ebp - 0x254]
and eax, 0x30000
shr ecx, 2
and ecx, 0xc000
or ecx, eax
mov eax, esi
shr ecx, 4
test byte [ebp - 0x228], 1
jne 0x1002bee0
test bl, 1
jne 0x1002bebd
and eax, 0x38000
or ecx, eax
mov eax, edi
shr ecx, 5
and eax, 0x200
or ecx, eax
mov eax, dword [edx + 0x44]
shr ecx, 5
cmp byte [ecx + eax], 2
jmp 0x1002bf49
and eax, 0x70000
or ecx, eax
mov eax, edi
shr ecx, 5
and eax, 0x600
or ecx, eax
mov eax, dword [edx + 0x44]
shr ecx, 5
cmp byte [ecx + eax + 0x100], 2
jmp 0x1002bf49
test bl, 1
jne 0x1002bf18
and eax, 0x38000
or ecx, eax
mov eax, dword [ebp - 0x208]
shr ecx, 3
and eax, 0x38000
or ecx, eax
mov eax, edi
shr ecx, 2
and eax, 0x200
or ecx, eax
mov eax, dword [edx + 0x44]
shr ecx, 5
cmp byte [ecx + eax + 0x300], 2
jmp 0x1002bf49
and eax, 0x70000
or ecx, eax
mov eax, dword [ebp - 0x208]
shr ecx, 3
and eax, 0x70000
or ecx, eax
mov eax, edi
shr ecx, 2
and eax, 0x600
or ecx, eax
mov eax, dword [edx + 0x44]
shr ecx, 5
cmp byte [ecx + eax + 0xb00], 2
jl 0x1002c0b6
mov eax, dword [edx + 0x40]
mov ecx, dword [ebp - 0x22c]
mov ecx, dword [ecx + eax]
test ecx, ecx
je 0x1002bfbe
cmp ecx, ebx
jbe 0x1002bf67
xor edx, edx
jmp 0x1002bf92
mov eax, ebx
mov edx, ebx
and eax, 0xfffffff8
sub edx, eax
sub edx, ecx
mov ecx, 7
mov al, dl
sar edx, 3
and al, 7
sub cl, al
mov eax, dword [ebp - 0x218]
movzx edx, byte [edx + eax]
shr edx, cl
and edx, 1
shl edx, 4
mov ecx, dword [ebp - 0x208]
mov eax, esi
shr eax, 2
and ecx, 0x10000
and eax, 0x6000
or eax, ecx
mov ecx, edi
shr eax, 2
and ecx, 0x600
or eax, ecx
shr eax, 9
or eax, edx
jmp 0x1002bfe6
mov ecx, dword [ebp - 0x208]
mov eax, esi
shr eax, 2
and ecx, 0x10000
and eax, 0xe000
or eax, ecx
mov ecx, edi
shr eax, 2
and ecx, 0x600
or eax, ecx
shr eax, 9
mov esi, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x21c]
test bl, 1
je 0x1002c013
and esi, 0x18000
and ecx, 0x18000
or esi, 0x80000
shr esi, 2
or esi, ecx
shr esi, 7
jmp 0x1002c027
shr esi, 2
and ecx, 0x30000
and esi, 0xc000
or esi, ecx
shr esi, 8
mov edx, dword [ebp - 0x228]
mov ecx, edi
and edx, 1
shr ecx, 8
shl edx, 0xb
and ecx, 1
or edx, esi
push ecx
mov ecx, dword [ebp - 0x25c]
or edx, eax
call fcn.1002a3a0
mov esi, dword [ebp - 0x260]
add esp, 4
cmp dword [ebp - 0x258], 0
jne 0x1002c0b0
mov eax, dword [ebp - 0x210]
mov edx, dword [eax + 0x38]
cmp ebx, edx
jb 0x1002c130
mov eax, esi
mov ecx, 3
shr eax, 6
not eax
xor eax, edi
shr eax, 8
and eax, 1
add dword [ebp - 0x204], eax
cmp edx, ecx
jb 0x1002c0aa
nop dword [eax]
mov eax, edi
shr eax, cl
not eax
xor eax, edi
shr eax, 8
and eax, 1
add dword [ebp + ecx*4 - 0x204], eax
inc ecx
cmp ecx, edx
jbe 0x1002c090
inc dword [ebp - 0x238]
mov edx, dword [ebp - 0x210]
inc ebx
test bl, 1
je 0x1002c0ce
mov ecx, dword [ebp - 0x208]
cmp ebx, dword [ebp - 0x23c]
jb 0x1002be50
mov ecx, dword [ebp - 0x208]
test bl, 7
je 0x1002c0e5
cmp ebx, dword [ebp - 0x23c]
jb 0x1002be00
mov eax, dword [ebp - 0x218]
inc dword [ebp - 0x234]
inc eax
mov dword [ebp - 0x218], eax
test bl, 0xf
je 0x1002c109
cmp ebx, dword [ebp - 0x23c]
jb 0x1002bda0
mov eax, dword [ebp - 0x214]
inc dword [ebp - 0x26c]
inc eax
inc dword [ebp - 0x240]
mov dword [ebp - 0x214], eax
cmp ebx, dword [ebp - 0x23c]
jb 0x1002bd30
jmp 0x1002c13a
mov edx, eax
jmp 0x1002c0b6
mov eax, dword [ebp - 0x214]
test byte [ebp - 0x230], 1
jne 0x1002c157
mov ecx, dword [ebp - 0x268]
sub dword [ebp - 0x26c], ecx
sub eax, ecx
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x230]
mov ebx, dword [ebp - 0x228]
inc eax
inc ebx
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x228], ebx
cmp eax, dword [ebp - 0x274]
jb 0x1002b830
mov ecx, dword [ebp - 0x25c]
call fcn.1002a200
mov ebx, dword [ebp - 0x210]
mov edi, dword [ebp - 0x24c]
mov esi, dword [ebp - 0x250]
mov eax, dword [ebx + 0x4c]
mov eax, dword [edi + eax]
mov ecx, dword [eax + esi]
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ecx + eax]
call fcn.1002a8a0
mov eax, dword [ebx + 0x4c]
mov edx, dword [ebp - 0x22c]
mov eax, dword [edi + eax]
mov eax, dword [eax + esi]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c1ec
mov byte [ecx + esi], 0xff
inc dword [esi + 0xfa0]
jmp 0x1002c289
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c202
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c21f
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d08a
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0xff
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c2c4
mov byte [esi + ecx], 2
inc dword [esi + 0xfa0]
jmp 0x1002c361
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c2da
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c2f7
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d08f
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 2
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov ecx, dword [ebp - 0x27c]
cmp ecx, 0xffffffff
je 0x1002d079
test dword [ebx + 0x34], 0x100
je 0x1002ca5d
mov eax, dword [ebx + 0x40]
mov dword [edx + eax], ecx
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c3be
mov byte [esi + ecx], 0xff
inc dword [esi + 0xfa0]
jmp 0x1002c45b
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c3d4
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c3f1
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d094
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0xff
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c496
mov byte [esi + ecx], 6
inc dword [esi + 0xfa0]
jmp 0x1002c533
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c4ac
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c4c9
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d099
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 6
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c56e
mov byte [esi + ecx], 0
inc dword [esi + 0xfa0]
jmp 0x1002c60b
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c584
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c5a1
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d09e
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c646
mov byte [esi + ecx], 0
inc dword [esi + 0xfa0]
jmp 0x1002c6e3
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c65c
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c679
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0a3
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c71e
mov byte [esi + ecx], 0
inc dword [esi + 0xfa0]
jmp 0x1002c7bb
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c734
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c751
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0a8
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20c], eax
mov esi, dword [eax + 0xfac]
mov ecx, dword [esi + 0xfa0]
cmp ecx, 0xf9f
jge 0x1002c7f6
mov byte [esi + ecx], 0
inc dword [esi + 0xfa0]
jmp 0x1002c893
mov edi, dword [eax + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c80c
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c829
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0ad
mov edx, dword [ebp - 0x22c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x20c]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov ecx, dword [edx + eax]
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x224], ecx
mov esi, dword [ecx + 0xfac]
mov edx, dword [edx + eax]
mov dword [ebp - 0x20c], edx
mov eax, dword [esi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002c8d8
mov byte [esi + eax], dl
inc dword [esi + 0xfa0]
jmp 0x1002c974
mov edi, dword [ecx + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002c8ee
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
jmp 0x1002c90b
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0b2
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfb0], edi
mov edi, dword [ebp - 0x24c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0xfa4]
mov ecx, dword [ebp - 0x224]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
mov dword [ecx + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x250]
mov eax, dword [edi + eax]
mov eax, dword [eax + ecx]
mov ecx, dword [ebp - 0x22c]
mov ebx, dword [ecx + eax]
mov esi, dword [ebx + 0xfac]
mov eax, dword [esi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002c9ba
mov byte [esi + eax], 0
inc dword [esi + 0xfa0]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret
mov edi, dword [ebx + 0xfb0]
mov ecx, dword [edi]
test ecx, ecx
je 0x1002ca41
mov eax, dword [ecx + 0xfa4]
mov dword [edi], eax
mov dword [ecx + 0xfb0], edi
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [esi + 0xfa4], ecx
mov dword [ecx + 0xfa8], esi
mov ecx, dword [esi + 0xfa4]
pop edi
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [esi + 0xfa4]
pop esi
mov dword [ebx + 0xfac], eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x1002c9d2
jmp 0x1002d0b7
mov esi, dword [ebx + 0x54]
lea edi, [ebx + 0x54]
test esi, esi
je 0x1002cac0
mov eax, dword [esi + 0xfa4]
mov dword [edi], eax
mov dword [esi + 0xfb0], edi
mov edi, esi
mov dword [esi + 0xfa0], 0
mov dword [esi + 0xfa4], 0
mov dword [esi + 0xfa8], 0
mov dword [esi + 0xfac], esi
mov byte [esi], 0xff
inc dword [esi + 0xfa0]
mov eax, dword [edi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002cad8
mov byte [edi + eax], 6
inc dword [edi + 0xfa0]
jmp 0x1002cb6f
push 0xfb4
call fcn.1012f850
mov esi, eax
add esp, 4
test esi, esi
jne 0x1002ca6f
jmp 0x1002d0bc
mov edx, dword [esi + 0xfb0]
mov dword [ebp - 0x20c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1002caf4
mov eax, dword [ecx + 0xfa4]
mov dword [edx], eax
jmp 0x1002cb11
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0c1
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [ecx + 0xfb0], edx
mov dword [edi + 0xfa4], ecx
mov dword [ecx + 0xfa8], edi
mov ecx, dword [edi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 6
mov eax, dword [edi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [edi + 0xfa4]
mov dword [esi + 0xfac], eax
mov eax, dword [ebp - 0x278]
mov edi, dword [esi + 0xfac]
sar eax, 0x18
movzx ecx, al
mov dword [ebp - 0x224], ecx
mov eax, dword [edi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002cba2
mov byte [edi + eax], cl
inc dword [edi + 0xfa0]
jmp 0x1002cc3e
mov edx, dword [esi + 0xfb0]
mov dword [ebp - 0x20c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1002cbbe
mov eax, dword [ecx + 0xfa4]
mov dword [edx], eax
jmp 0x1002cbdb
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0c6
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfb0], edx
mov edx, dword [ebp - 0x224]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [edi + 0xfa4], ecx
mov dword [ecx + 0xfa8], edi
mov ecx, dword [edi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], dl
mov eax, dword [edi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [edi + 0xfa4]
mov dword [esi + 0xfac], eax
mov eax, dword [ebp - 0x278]
mov edi, dword [esi + 0xfac]
sar eax, 0x10
movzx ecx, al
mov dword [ebp - 0x224], ecx
mov eax, dword [edi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002cc71
mov byte [edi + eax], cl
inc dword [edi + 0xfa0]
jmp 0x1002cd0d
mov edx, dword [esi + 0xfb0]
mov dword [ebp - 0x20c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1002cc8d
mov eax, dword [ecx + 0xfa4]
mov dword [edx], eax
jmp 0x1002ccaa
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0cb
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfb0], edx
mov edx, dword [ebp - 0x224]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [edi + 0xfa4], ecx
mov dword [ecx + 0xfa8], edi
mov ecx, dword [edi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], dl
mov eax, dword [edi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [edi + 0xfa4]
mov dword [esi + 0xfac], eax
mov eax, dword [ebp - 0x278]
mov edi, dword [esi + 0xfac]
sar eax, 8
movzx ecx, al
mov dword [ebp - 0x224], ecx
mov eax, dword [edi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002cd40
mov byte [edi + eax], cl
inc dword [edi + 0xfa0]
jmp 0x1002cddc
mov edx, dword [esi + 0xfb0]
mov dword [ebp - 0x20c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1002cd5c
mov eax, dword [ecx + 0xfa4]
mov dword [edx], eax
jmp 0x1002cd79
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0d0
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfb0], edx
mov edx, dword [ebp - 0x224]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [edi + 0xfa4], ecx
mov dword [ecx + 0xfa8], edi
mov ecx, dword [edi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], dl
mov eax, dword [edi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [edi + 0xfa4]
mov dword [esi + 0xfac], eax
mov edi, dword [esi + 0xfac]
mov eax, dword [ebp - 0x278]
movzx ecx, al
mov dword [ebp - 0x224], ecx
mov eax, dword [edi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002ce0c
mov byte [edi + eax], cl
inc dword [edi + 0xfa0]
jmp 0x1002cea8
mov edx, dword [esi + 0xfb0]
mov dword [ebp - 0x20c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1002ce28
mov eax, dword [ecx + 0xfa4]
mov dword [edx], eax
jmp 0x1002ce45
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0d5
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfb0], edx
mov edx, dword [ebp - 0x224]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [edi + 0xfa4], ecx
mov dword [ecx + 0xfa8], edi
mov ecx, dword [edi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], dl
mov eax, dword [edi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [edi + 0xfa4]
mov dword [esi + 0xfac], eax
mov edi, dword [esi + 0xfac]
mov eax, dword [edi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002cecf
mov edx, dword [ebp - 0x27c]
mov byte [edi + eax], dl
inc dword [edi + 0xfa0]
jmp 0x1002cf6b
mov edx, dword [esi + 0xfb0]
mov dword [ebp - 0x20c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1002ceeb
mov eax, dword [ecx + 0xfa4]
mov dword [edx], eax
jmp 0x1002cf08
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0da
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfb0], edx
mov edx, dword [ebp - 0x27c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [edi + 0xfa4], ecx
mov dword [ecx + 0xfa8], edi
mov ecx, dword [edi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], dl
mov eax, dword [edi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [edi + 0xfa4]
mov dword [esi + 0xfac], eax
mov edi, dword [esi + 0xfac]
mov eax, dword [edi + 0xfa0]
cmp eax, 0xf9f
jge 0x1002cf8d
mov byte [edi + eax], 0
inc dword [edi + 0xfa0]
jmp 0x1002d024
mov edx, dword [esi + 0xfb0]
mov dword [ebp - 0x20c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1002cfa9
mov eax, dword [ecx + 0xfa4]
mov dword [edx], eax
jmp 0x1002cfc6
push 0xfb4
call fcn.1012f850
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1002d0df
mov edx, dword [ebp - 0x20c]
mov dword [ecx + 0xfa0], 0
mov dword [ecx + 0xfa4], 0
mov dword [ecx + 0xfa8], 0
mov dword [ecx + 0xfac], ecx
mov dword [ecx + 0xfb0], edx
mov dword [edi + 0xfa4], ecx
mov dword [ecx + 0xfa8], edi
mov ecx, dword [edi + 0xfa4]
mov eax, dword [ecx + 0xfa0]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0xfa4]
inc dword [eax + 0xfa0]
mov eax, dword [edi + 0xfa4]
mov dword [esi + 0xfac], eax
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x24c]
mov eax, dword [ecx + eax]
mov ecx, dword [ebp - 0x250]
mov edx, dword [eax + ecx]
mov ecx, dword [esi + 0xfac]
add edx, dword [ebp - 0x22c]
mov eax, dword [edx]
mov dword [ecx + 0xfa4], eax
mov ecx, dword [esi + 0xfac]
mov eax, dword [ecx + 0xfa4]
mov dword [eax + 0xfa8], ecx
mov eax, dword [esi + 0xfac]
mov eax, dword [eax + 0xfa4]
mov eax, dword [eax + 0xfac]
mov dword [esi + 0xfac], eax
mov dword [edx], esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1012b4a2
mov esp, ebp
pop ebp
ret
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
call fcn.1013bba3
int3