Function at 0x6acb40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x250
mov esi, esp
mov dword [esi + 0x238], ebp
mov edi, ecx
nop
mov dword [esi + 0x23c], esp
mov dword [esi + 0x248], 0xffffffff
lea eax, [esi + 0x240]
mov dword [esi + 0x244], 0x6b3cb0
mov ecx, dword fs:[0]
mov dword [esi + 0x240], ecx
mov dword fs:[0], eax
call fcn.006b3c50
mov edx, dword [0xa0ff04]
mov ecx, dword [0xa0fef8]
mov ebx, 0x8bfb
sub ebx, eax
mov dword [esi + 0x4c], ebx
sub ecx, ebx
add ecx, edx
call dword [0xa0535c]
call ecx
mov ecx, eax
xor ecx, 0x674355cd
mov edx, eax
xor edx, 0x674355dd
mov ebx, eax
xor ebx, 0x674355d1
mov dword [esi + 0x24], edx
mov dword [esi + edx + 0xb4], 0
mov dword [esi + 0x14], eax
xor eax, 0x674355c6
mov dword [esi + 0x30], ebx
mov dword [esi + 0x2c], eax
mov dword [esi + ebx + 0xb4], eax
mov dword [esi], ecx
mov byte [esi + ecx + 0xb4], 0
mov dword [esi + 0xb4], 0x920fc0
mov dword [esi + 0x248], 2
lea eax, [esi + 0xb4]
mov dword [esi + 0xa8], edi
mov ecx, edi
push dword [ebp + 8]
push eax
call fcn.006abcb0
nop
mov eax, dword [esi + 0x24]
mov dword [esi + eax + 0x74], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
mov dword [esi + eax + 0x74], ecx
mov eax, dword [esi]
mov byte [esi + eax + 0x74], 0
mov dword [esi + 0x74], 0x922910
mov dword [esi + 0x248], 3
lea ecx, [esi + 0x74]
call fcn.007868f0
nop
mov eax, dword [esi]
add eax, esi
add eax, 0xb4
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + ecx + 0xb4]
mov dword [esi + 0x50], eax
mov ebx, eax
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
cmp dword [esi + eax + 0xb4], ecx
jbe 0x6acc87
mov eax, dword [esi + 0x50]
mov ebx, dword [eax]
test edi, edi
je 0x6adb13
pxor xmm0, xmm0
movdqu xmmword [esi + 0x1e0], xmm0
movdqu xmmword [esi + 0x1d0], xmm0
movdqu xmmword [esi + 0x1c0], xmm0
movdqu xmmword [esi + 0x1b0], xmm0
movdqu xmmword [esi + 0x1a0], xmm0
movdqu xmmword [esi + 0x190], xmm0
movdqu xmmword [esi + 0x180], xmm0
movdqu xmmword [esi + 0x170], xmm0
movdqu xmmword [esi + 0x160], xmm0
movdqu xmmword [esi + 0x150], xmm0
movdqu xmmword [esi + 0x140], xmm0
movdqu xmmword [esi + 0x130], xmm0
movdqu xmmword [esi + 0x120], xmm0
movdqu xmmword [esi + 0x110], xmm0
movdqu xmmword [esi + 0x100], xmm0
movdqu xmmword [esi + 0xf0], xmm0
mov eax, dword [esi + 0x14]
mov ecx, eax
xor ecx, 0x674355e6
mov dword [esi + 4], ecx
mov byte [esi + ecx + 0xf0], 1
xor eax, 0x67435595
mov dword [esi + 0x20], eax
mov byte [esi + eax + 0xf0], 1
movzx eax, byte [ebx + edi - 1]
cmp byte [esi + eax + 0xf0], 0
lea eax, [ebx + edi - 1]
jne 0x6acd69
lea ecx, [edi - 1]
nop
test ecx, ecx
je 0x6acfde
nop
movzx edx, byte [eax - 1]
dec eax
dec ecx
cmp byte [esi + edx + 0xf0], 0
je 0x6acd50
sub eax, ebx
nop
cmp byte [0xa57014], 0
jne 0x6acd7c
lea ecx, [edi - 1]
cmp eax, ecx
jne 0x6acdcc
cmp edi, eax
jb 0x6adb13
setne cl
mov edx, ebx
movzx ebx, cl
add edx, eax
mov dword [esi + 0x44], edx
sub edi, ebx
mov ecx, dword [esi + 0x24]
mov dword [esi + ecx + 0xb4], edi
sub edi, eax
mov eax, dword [0xa0ff00]
mov ecx, dword [0xa0fef4]
sub ecx, dword [esi + 0x4c]
add ecx, eax
inc edi
add ebx, edx
mov dword [esi + 0x248], 0xffffffff
call dword [0xa0535c]
push edi
push ebx
push dword [esi + 0x44]
call ecx
add esp, 0xc
nop
mov eax, dword [esi]
lea ecx, [esi + eax]
add ecx, 0x74
mov eax, dword [esi + 0x24]
mov eax, dword [esi + eax + 0x74]
mov dword [esi + 0x28], ecx
mov edi, ecx
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x2c]
cmp dword [esi + ecx + 0x74], edx
jbe 0x6acdf2
mov ecx, dword [esi + 0x28]
mov edi, dword [ecx]
test eax, eax
je 0x6adb23
pxor xmm0, xmm0
movdqu xmmword [esi + 0x1e0], xmm0
movdqu xmmword [esi + 0x1d0], xmm0
movdqu xmmword [esi + 0x1c0], xmm0
movdqu xmmword [esi + 0x1b0], xmm0
movdqu xmmword [esi + 0x1a0], xmm0
movdqu xmmword [esi + 0x190], xmm0
movdqu xmmword [esi + 0x180], xmm0
movdqu xmmword [esi + 0x170], xmm0
movdqu xmmword [esi + 0x160], xmm0
movdqu xmmword [esi + 0x150], xmm0
movdqu xmmword [esi + 0x140], xmm0
movdqu xmmword [esi + 0x130], xmm0
movdqu xmmword [esi + 0x120], xmm0
movdqu xmmword [esi + 0x110], xmm0
movdqu xmmword [esi + 0x100], xmm0
movdqu xmmword [esi + 0xf0], xmm0
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 0xf0], 1
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0xf0], 1
lea ecx, [edi + eax]
dec ecx
movzx edx, byte [edi + eax - 1]
cmp byte [esi + edx + 0xf0], 0
jne 0x6acec9
lea edx, [eax - 1]
nop word [eax + eax]
test edx, edx
je 0x6acfe8
nop
movzx ebx, byte [ecx - 1]
dec ecx
dec edx
cmp byte [esi + ebx + 0xf0], 0
je 0x6aceb0
sub ecx, edi
mov ebx, dword [esi + 0x14]
mov edx, ebx
xor edx, 0xe3a5ffda
xor ebx, 0x1c5a0025
add ebx, edx
add ebx, eax
cmp ecx, ebx
jne 0x6acf53
cmp eax, ecx
jb 0x6adb23
setne dl
movzx ebx, dl
add edi, ecx
mov dword [esi], edi
sub eax, ebx
mov edx, dword [esi + 0x24]
mov dword [esi + edx + 0x74], eax
mov edi, dword [esi + 0x14]
mov edx, edi
xor edx, 0x54d1e648
sub edx, ecx
xor edi, 0xab2e19b7
add edx, eax
mov eax, edx
xor eax, 1
add eax, edi
and edx, 1
lea eax, [eax + edx*2]
inc eax
mov dword [esi + 4], eax
mov eax, dword [0xa0ff00]
mov ecx, dword [0xa0fef4]
sub ecx, dword [esi + 0x4c]
add ecx, eax
mov edi, dword [esi]
add ebx, edi
mov dword [esi + 0x248], 0xffffffff
call dword [0xa0535c]
push dword [esi + 4]
push ebx
push edi
call ecx
add esp, 0xc
nop
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + ebx + 0x74]
mov ecx, dword [esi + 0x30]
mov ecx, dword [esi + ecx + 0x74]
mov edx, ecx
sub edx, eax
cmp edx, 2
jae 0x6acfa6
nop
movzx eax, byte [0xa0fd13]
mov ecx, dword [esi + 0x14]
xor cl, 0x26
mov byte [esi + 0x1b], cl
cmp al, cl
je 0x6ad923
mov eax, dword [esi + 0x14]
mov ecx, eax
xor cl, 0x6e
mov dl, 0xff
nop
mov eax, ecx
lock cmpxchg byte [0xa0fd13], dl
je 0x6acff2
cmp al, byte [esi + 0x1b]
jne 0x6acf90
jmp 0x6ad923
mov edx, eax
xor edx, 2
mov edi, eax
and edi, 2
lea edx, [edx + edi*2]
mov dword [esi + ebx + 0x74], edx
mov edi, dword [esi + 0x28]
cmp ecx, dword [esi + 0x2c]
jbe 0x6acfc4
mov ecx, dword [esi + 0x28]
mov edi, dword [ecx]
mov ecx, dword [esi + 0x14]
xor ecx, 0x7a95
mov word [edi + eax], cx
mov byte [edi + edx], 0
nop
mov eax, dword [esi + 0x24]
jmp 0x6ad95f
mov eax, 0xffffffff
jmp 0x6acd6b
mov ecx, 0xffffffff
jmp 0x6acecb
nop
mov eax, dword [esi + 0x14]
mov ecx, eax
xor ecx, 0xde649567
mov dword [esi + 0x20], ecx
mov ecx, eax
xor ecx, 0xa5823673
mov dword [esi + 4], ecx
mov ecx, eax
xor ecx, 0x674355ca
movzx eax, al
movd xmm5, eax
punpcklbw xmm5, xmm5
movdqa xmm6, xmmword [0x9a2460]
pxor xmm6, xmm5
cmp ecx, 2
mov eax, 1
cmovge eax, ecx
xor edx, edx
mov dword [esi + 0x44], ecx
cmp ecx, 8
nop
mov dword [esi + 0x70], eax
jl 0x6ad854
xor edx, edx
movdqa xmm0, xmm6
punpcklbw xmm0, xmm6
cmp dword [esi + 0x44], 0x10
movdqa xmmword [esi + 0xe0], xmm5
movdqa xmmword [esi + 0xd0], xmm6
jge 0x6ad316
mov ecx, eax
mov eax, edx
mov edx, ecx
and edx, 0x7ffffff8
pshuflw xmm3, xmm0, 0
pshuflw xmm2, xmm0, 0x55
pcmpeqd xmm4, xmm4
mov dword [esi + 0x6c], edx
nop dword [eax]
nop
mov dword [esi], eax
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0x20]
mov edi, eax
xor edi, ecx
lea edx, [eax + 1]
mov eax, edx
xor eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi]
and eax, ecx
and edi, ebx
add edi, eax
mov dword [esi + 0x10], edi
mov eax, dword [esi]
add eax, 2
and edx, ecx
mov edi, dword [esi + 8]
and edi, ebx
add edi, edx
mov dword [esi + 8], edi
mov edx, eax
xor edx, ecx
and eax, ecx
and edx, ebx
add edx, eax
mov dword [esi + 0x1c], edx
mov eax, dword [esi]
add eax, 3
mov edx, eax
xor edx, ecx
and eax, ecx
and edx, ebx
add edx, eax
mov dword [esi + 0x40], edx
mov eax, dword [esi]
add eax, 4
mov ebx, ecx
mov ecx, eax
xor ecx, ebx
and eax, ebx
and ecx, dword [esi + 4]
add ecx, eax
mov dword [esi + 0xc], ecx
mov eax, dword [esi]
add eax, 5
mov edx, eax
xor edx, ebx
and eax, ebx
and edx, dword [esi + 4]
add edx, eax
mov eax, dword [esi]
add eax, 6
mov ecx, eax
xor ecx, ebx
and eax, ebx
and ecx, dword [esi + 4]
add ecx, eax
mov eax, dword [esi]
lea ebx, [eax + 7]
mov eax, ebx
xor eax, dword [esi + 0x20]
and ebx, dword [esi + 0x20]
and eax, dword [esi + 4]
add eax, ebx
mov ebx, dword [esi]
xor ebx, 0x7be6a314
sub ebx, dword [esi + 4]
mov edi, dword [esi + 0x10]
lea edi, [ebx + edi*2]
mov dword [esi + 0x34], edi
mov ebx, dword [esi]
xor ebx, 0x7be6a315
sub ebx, dword [esi + 4]
mov edi, dword [esi + 8]
lea edi, [ebx + edi*2]
mov dword [esi + 0x38], edi
mov ebx, dword [esi]
xor ebx, 0x7be6a316
sub ebx, dword [esi + 4]
mov edi, dword [esi + 0x1c]
lea edi, [ebx + edi*2]
mov dword [esi + 0x1c], edi
mov ebx, dword [esi]
xor ebx, 0x7be6a317
sub ebx, dword [esi + 4]
mov edi, dword [esi + 0x40]
lea edi, [ebx + edi*2]
mov dword [esi + 0x10], edi
mov ebx, dword [esi]
xor ebx, 0x7be6a310
sub ebx, dword [esi + 4]
mov edi, dword [esi + 0xc]
lea edi, [ebx + edi*2]
mov dword [esi + 0x90], edi
mov edi, dword [esi]
xor edi, 0x7be6a311
sub edi, dword [esi + 4]
lea edi, [edi + edx*2]
mov edx, dword [esi]
xor edx, 0x7be6a312
sub edx, dword [esi + 4]
lea ecx, [edx + ecx*2]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a313
sub ecx, dword [esi + 4]
lea eax, [ecx + eax*2]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x34]
xor edx, edx
mov ebx, dword [esi + 0x44]
div ebx
mov dword [esi + 8], edx
mov eax, dword [esi + 0x38]
xor edx, edx
div ebx
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x1c]
xor edx, edx
div ebx
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x10]
xor edx, edx
div ebx
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x90]
xor edx, edx
div ebx
mov ecx, edx
mov eax, edi
xor edx, edx
div ebx
mov edi, edx
mov eax, dword [esi + 0xc]
xor edx, edx
div ebx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x3c]
xor edx, edx
div ebx
not ecx
not edi
movzx ecx, byte [ebx + ecx + 0x9a25a0]
movzx eax, byte [ebx + edi + 0x9a25a0]
shl eax, 8
or eax, ecx
mov ecx, dword [esi + 8]
not ecx
mov edi, dword [esi + 0x40]
not edi
movzx ecx, byte [ebx + ecx + 0x9a25a0]
movzx edi, byte [ebx + edi + 0x9a25a0]
shl edi, 8
or edi, ecx
mov ecx, dword [esi + 0x1c]
not ecx
movzx ecx, byte [ebx + ecx + 0x9a25a0]
shl ecx, 0x10
or ecx, edi
mov edi, dword [esi + 0x10]
not edi
movzx edi, byte [ebx + edi + 0x9a25a0]
shl edi, 0x18
or edi, ecx
movd xmm0, edi
pinsrw xmm0, eax, 2
mov eax, dword [esi + 0xc]
not eax
not edx
movzx eax, byte [ebx + eax + 0x9a25a0]
movzx ecx, byte [ebx + edx + 0x9a25a0]
mov edx, dword [esi + 0x6c]
shl ecx, 8
or ecx, eax
mov eax, dword [esi]
pinsrw xmm0, ecx, 3
movq xmm1, qword [eax + 0xa0fd10]
movdqa xmm6, xmm0
pxor xmm6, xmm3
movdqa xmm5, xmm0
pandn xmm5, xmm2
por xmm6, xmm5
movdqa xmm7, xmm0
pxor xmm7, xmm2
pand xmm7, xmm6
movdqa xmm6, xmm0
pandn xmm6, xmm3
pand xmm0, xmm2
por xmm0, xmm6
pxor xmm5, xmm4
pxor xmm5, xmm0
por xmm5, xmm7
paddb xmm5, xmm1
movq qword [eax + 0xa0fd10], xmm5
add eax, 8
cmp eax, edx
jne 0x6ad090
mov eax, dword [esi + 0x70]
cmp eax, edx
movdqa xmm5, xmmword [esi + 0xe0]
movdqa xmm6, xmmword [esi + 0xd0]
jne 0x6ad854
jmp 0x6ad90e
mov edx, eax
and edx, 0x7ffffff0
movdqa xmm1, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esi + 0x210], xmm0
movdqa xmmword [esi + 0x1f0], xmm1
pshuflw xmm0, xmm1, 0x55
pshufd xmm0, xmm0, 0
movdqa xmmword [esi + 0x200], xmm0
xor eax, eax
mov dword [esi + 0x6c], edx
nop word cs:[eax + eax]
nop
mov dword [esi], eax
mov eax, dword [esi]
mov edx, dword [esi + 0x20]
xor eax, edx
mov ecx, eax
mov eax, dword [esi]
lea edi, [eax + 1]
mov eax, edi
xor eax, edx
mov dword [esi + 8], eax
mov eax, dword [esi]
and eax, edx
mov ebx, dword [esi + 4]
and ecx, ebx
add ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi]
add eax, 2
and edi, edx
mov ecx, dword [esi + 8]
and ecx, ebx
add ecx, edi
mov dword [esi + 8], ecx
mov edi, eax
xor edi, edx
and eax, edx
and edi, ebx
add edi, eax
mov eax, dword [esi]
add eax, 3
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x1c], ecx
mov eax, dword [esi]
add eax, 4
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x40], ecx
mov eax, dword [esi]
add eax, 5
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0xc], ecx
mov eax, dword [esi]
add eax, 6
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x3c], ecx
mov eax, dword [esi]
add eax, 7
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x90], ecx
mov eax, dword [esi]
add eax, 8
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x38], ecx
mov eax, dword [esi]
add eax, 9
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x34], ecx
mov eax, dword [esi]
add eax, 0xa
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x48], ecx
mov eax, dword [esi]
add eax, 0xb
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x68], ecx
mov eax, dword [esi]
add eax, 0xc
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x64], ecx
mov eax, dword [esi]
add eax, 0xd
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x60], ecx
mov eax, dword [esi]
add eax, 0xe
mov ecx, eax
xor ecx, edx
and eax, edx
and ecx, ebx
add ecx, eax
mov dword [esi + 0x5c], ecx
mov eax, dword [esi]
lea ecx, [eax + 0xf]
mov eax, ecx
xor eax, edx
and ecx, edx
and eax, ebx
add eax, ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a314
sub ecx, ebx
mov edx, dword [esi + 0x10]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a315
sub ecx, ebx
mov edx, dword [esi + 8]
lea ecx, [ecx + edx*2]
mov dword [esi + 8], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a316
sub ecx, ebx
lea ecx, [ecx + edi*2]
mov dword [esi + 0xac], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a317
sub ecx, ebx
mov edx, dword [esi + 0x1c]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x54], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a310
sub ecx, ebx
mov edx, dword [esi + 0x40]
lea edi, [ecx + edx*2]
mov ecx, dword [esi]
xor ecx, 0x7be6a311
sub ecx, ebx
mov edx, dword [esi + 0xc]
lea ecx, [ecx + edx*2]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a312
sub ecx, ebx
mov edx, dword [esi + 0x3c]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a313
sub ecx, ebx
mov edx, dword [esi + 0x90]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x90], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a31c
sub ecx, ebx
mov edx, dword [esi + 0x38]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x38], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a31d
sub ecx, ebx
mov edx, dword [esi + 0x34]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a31e
sub ecx, ebx
mov edx, dword [esi + 0x48]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x48], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a31f
sub ecx, ebx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + edx*2]
mov dword [esi + 0xb0], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a318
sub ecx, ebx
mov edx, dword [esi + 0x64]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x58], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a319
sub ecx, ebx
mov edx, dword [esi + 0x60]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x60], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a31a
sub ecx, ebx
mov edx, dword [esi + 0x5c]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x64], ecx
mov ecx, dword [esi]
xor ecx, 0x7be6a31b
sub ecx, ebx
lea eax, [ecx + eax*2]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x10]
xor edx, edx
mov ecx, dword [esi + 0x44]
div ecx
mov dword [esi + 0x10], edx
mov eax, dword [esi + 8]
xor edx, edx
div ecx
mov dword [esi + 8], edx
mov eax, dword [esi + 0xac]
xor edx, edx
div ecx
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x54]
xor edx, edx
div ecx
mov dword [esi + 0x40], edx
mov eax, edi
xor edx, edx
div ecx
mov dword [esi + 0x54], edx
mov eax, dword [esi + 0xc]
xor edx, edx
div ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x3c]
xor edx, edx
div ecx
mov dword [esi + 0x3c], edx
mov eax, dword [esi + 0x90]
xor edx, edx
div ecx
mov dword [esi + 0x90], edx
mov eax, dword [esi + 0x38]
xor edx, edx
div ecx
mov dword [esi + 0x38], edx
mov eax, dword [esi + 0x34]
xor edx, edx
div ecx
mov dword [esi + 0x34], edx
mov eax, dword [esi + 0x48]
xor edx, edx
div ecx
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0xb0]
xor edx, edx
div ecx
mov dword [esi + 0x5c], edx
mov eax, dword [esi + 0x58]
xor edx, edx
div ecx
mov dword [esi + 0x58], edx
mov eax, dword [esi + 0x60]
xor edx, edx
div ecx
mov edi, edx
mov eax, dword [esi + 0x64]
xor edx, edx
div ecx
mov ebx, edx
mov eax, dword [esi + 0x68]
xor edx, edx
div ecx
not edx
movzx eax, byte [ecx + edx + 0x9a25a0]
mov edx, dword [esi + 0x6c]
movd xmm1, eax
not ebx
movzx eax, byte [ecx + ebx + 0x9a25a0]
movd xmm2, eax
not edi
movzx eax, byte [ecx + edi + 0x9a25a0]
movd xmm0, eax
mov eax, dword [esi + 0x58]
not eax
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm7, eax
mov eax, dword [esi + 0x5c]
not eax
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm4, eax
mov eax, dword [esi + 0x48]
not eax
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm5, eax
mov eax, dword [esi + 0x34]
not eax
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm3, eax
mov eax, dword [esi + 0x38]
not eax
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm6, eax
mov eax, dword [esi + 0x90]
not eax
punpcklbw xmm2, xmm1
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm1, eax
movdqa xmmword [esi + 0x90], xmm1
mov eax, dword [esi + 0x3c]
not eax
punpcklbw xmm7, xmm0
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm0, eax
mov eax, dword [esi + 0xc]
not eax
punpcklwd xmm7, xmm2
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm1, eax
mov eax, dword [esi + 0x54]
not eax
punpcklbw xmm5, xmm4
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm4, eax
mov eax, dword [esi + 0x40]
not eax
punpcklbw xmm6, xmm3
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm3, eax
mov eax, dword [esi + 0x1c]
not eax
punpcklwd xmm6, xmm5
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm5, eax
mov eax, dword [esi + 0x10]
not eax
punpckldq xmm6, xmm7
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm2, eax
mov eax, dword [esi + 8]
not eax
punpcklbw xmm0, xmmword [esi + 0x90]
movzx eax, byte [ecx + eax + 0x9a25a0]
movd xmm7, eax
mov eax, dword [esi]
punpcklbw xmm4, xmm1
punpcklwd xmm4, xmm0
punpcklbw xmm5, xmm3
punpcklbw xmm2, xmm7
punpcklwd xmm2, xmm5
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm6
movdqa xmm1, xmm2
movdqa xmm4, xmmword [esi + 0x210]
pxor xmm1, xmm4
movdqa xmm0, xmm2
movdqa xmm5, xmmword [esi + 0x200]
pandn xmm0, xmm5
por xmm1, xmm0
movdqa xmm3, xmm2
pxor xmm3, xmm5
pand xmm3, xmm1
movdqa xmm1, xmm2
pandn xmm1, xmm4
pand xmm2, xmm5
por xmm2, xmm1
pxor xmm0, xmmword [0x9a2490]
pxor xmm0, xmm2
por xmm0, xmm3
paddb xmm0, xmmword [eax + 0xa0fd10]
movdqa xmmword [eax + 0xa0fd10], xmm0
add eax, 0x10
cmp eax, edx
jne 0x6ad360
mov eax, dword [esi + 0x70]
cmp eax, edx
movdqa xmm5, xmmword [esi + 0xe0]
movdqa xmm6, xmmword [esi + 0xd0]
movdqa xmm0, xmmword [esi + 0x1f0]
je 0x6ad90e
test al, 8
jne 0x6ad06c
pxor xmm5, xmmword [0x9a2470]
movd dword [esi], xmm6
movdqa xmm2, xmmword [0x9a2480]
nop dword [eax + eax]
mov eax, edx
mov edi, dword [esi + 0x20]
xor eax, edi
mov ecx, edx
and edx, edi
mov edi, dword [esi + 4]
and eax, edi
add eax, edx
mov edx, ecx
xor edx, 0x7be6a314
sub edx, edi
lea eax, [edx + eax*2]
xor edx, edx
mov ebx, dword [esi + 0x44]
div ebx
not edx
movzx edx, byte [ebx + edx + 0x9a25a0]
mov eax, edx
movd xmm1, edx
not dl
mov ebx, dword [esi]
xor al, bh
movzx edx, dl
movd xmm0, edx
punpcklbw xmm0, xmm0
pand xmm0, xmm5
movdqa xmm3, xmm1
psllw xmm3, 8
pxor xmm1, xmm6
pand xmm3, xmm6
pand xmm1, xmm2
movdqa xmm4, xmm2
pandn xmm4, xmm3
por xmm4, xmm1
por xmm4, xmm0
movd edx, xmm4
movdqa xmmword [esi + 0x220], xmm0
mov ah, byte [esi + 0x220]
xor ah, dh
and dl, al
not ah
or dl, ah
mov eax, dword [esi + 0x70]
add byte [ecx + 0xa0fd10], dl
mov edx, ecx
inc edx
cmp eax, edx
jne 0x6ad870
nop
movzx eax, byte [esi + 0x1b]
xchg byte [0xa0fd13], al
mov dword [esi + 0x248], 3
nop
mov dword [esi + 0x248], 3
sub esp, 0x10
movzx eax, byte [esi + 0xf0]
mov byte [esp + 4], al
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0xa0fd10
mov dword [esp], 2
mov ecx, dword [esi + 0x28]
call fcn.0066d8c0
nop
mov eax, dword [esi + 0x24]
nop
mov edi, dword [esi + eax + 0xb4]
mov eax, dword [esi + 0x50]
mov dword [esi], eax
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
cmp dword [esi + eax + 0xb4], ecx
jbe 0x6ad982
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov dword [esi], eax
mov edx, dword [esi + 0x24]
mov ebx, dword [esi + edx + 0x74]
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0x74]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x6ad9c8
nop
mov dword [esi + 0x248], 3
sub esp, 0x10
movzx eax, byte [esi + 0xf0]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi]
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, dword [esi + 0x28]
call fcn.0066d8c0
jmp 0x6ada18
nop
mov dword [esi + 0x20], edi
add edi, ebx
mov ecx, edi
mov dword [esi + 4], edi
mov dword [esi + edx + 0x74], edi
mov edi, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
jbe 0x6ad9e4
mov eax, dword [esi + 0x28]
mov edi, dword [eax]
mov eax, dword [0xa0ff00]
mov ecx, dword [0xa0fef4]
sub ecx, dword [esi + 0x4c]
add ecx, eax
add ebx, edi
mov dword [esi + 0x248], 0xffffffff
call dword [0xa0535c]
push dword [esi + 0x20]
push dword [esi]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 4]
mov byte [edi + eax], 0
nop
mov dword [esi + 0x248], 3
mov ecx, dword [esi + 0xa8]
lea eax, [esi + 0x74]
push eax
call fcn.006ac780
nop
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0x74]
cmp eax, dword [esi + 0x2c]
jbe 0x6ada94
lea edi, [eax + 1]
mov ebx, dword [esi + 0x14]
mov ecx, ebx
xor ecx, 0x67435a36
cmp edi, ecx
mov ecx, dword [esi + 0x28]
mov edx, dword [ecx]
jbe 0x6ada89
nop
mov ecx, dword [edx - 4]
mov edi, ebx
xor edi, 0x98bcaa35
add edi, edx
sub edi, ecx
mov edx, ebx
xor edx, 0x674355e9
cmp edi, edx
jae 0x6adb43
mov edx, ebx
xor edx, 0x674355ed
mov edi, eax
xor edi, edx
and edx, eax
lea edi, [edi + edx*2]
mov edx, ecx
nop
push edi
push edx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0xb4]
cmp eax, dword [esi + 0x2c]
jbe 0x6adafc
lea edi, [eax + 1]
mov ecx, dword [esi + 0x14]
xor ecx, 0x67435a36
cmp edi, ecx
mov ecx, dword [esi + 0x50]
mov ecx, dword [ecx]
jbe 0x6adaf1
nop
mov edx, dword [ecx - 4]
cmp byte [0xa57015], 0
jne 0x6adae2
nop
mov ebx, dword [esi + 0x14]
mov edi, ebx
xor edi, 0x98bcaa35
add edi, ecx
sub edi, edx
mov ecx, ebx
xor ecx, 0x674355e9
cmp edi, ecx
jae 0x6adb33
mov ecx, dword [esi + 0x14]
xor ecx, 0x674355ed
add eax, ecx
mov edi, eax
mov ecx, edx
nop
push edi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x240]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
nop
mov dword [esi + 0x248], 3
call fcn.006979d0
nop
mov dword [esi + 0x248], 3
call fcn.006979d0
nop
mov dword [esi + 0x248], 1
call fcn.008cd651
nop
mov dword [esi + 0x248], 0
call fcn.008cd651
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x24c]
mov ebp, dword [esi + 0x238]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x24c]
mov ebp, dword [esi + 0x238]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x24c]
mov ebp, dword [esi + 0x238]
nop
mov eax, dword [0xa0ff08]
mov edi, dword [0xa0fef0]
sub edi, dword [esi + 0x4c]
add edi, eax
mov ecx, edi
call dword [0xa0535c]
lea ecx, [esi + 0x74]
call edi
add esp, 0x10
pop ebp
ret