Function at 0x538720
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov ebx, dword [ebp + 0x18]
cmp byte [ebx + 0x14], 0
jne 0x53878c
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0x10]
cmp ecx, dword [ebx + 0xc]
jne 0x53877a
lea eax, [ecx + ecx*2]
shr eax, 1
test ecx, ecx
mov edi, 0x20
cmovne edi, eax
cmp edi, ecx
jbe 0x538786
cmp edi, 0x3fffffff
ja 0x538786
lea eax, [edi*4]
push eax
push dword [ebx + 4]
call fcn.004c9cf0
add esp, 8
test eax, eax
je 0x538786
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], edi
mov ecx, dword [ebx + 8]
jmp 0x53877d
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4], esi
add dword [ebx + 8], 1
jmp 0x53878c
mov word [ebx + 0x14], 0x101
push ebx
call fcn.0052d510
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
je 0x53973f
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
lea eax, [edi + 0x14]
push edi
push ebx
push eax
push dword [ecx + 4]
push dword [ebp + 0x10]
push esi
call fcn.005313a0
add esp, 0x18
test eax, eax
je 0x539760
push ebx
push edi
push edi
push esi
push esi
call fcn.00530960
add esp, 0x14
test eax, eax
mov eax, 0
je 0x53973f
mov eax, dword [ebp + 8]
mov edi, dword [eax + 8]
mov dword [ebp - 0x28], esi
mov edx, dword [esi + 4]
mov eax, dword [edi + 4]
xor ecx, ecx
mov esi, edx
sub esi, eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x10], eax
jge 0x53892a
mov esi, dword [edi]
sub eax, edx
xor ecx, ecx
mov ebx, edx
cmp eax, 8
jb 0x53891c
mov dword [ebp - 0x18], eax
mov ebx, eax
and ebx, 0xfffffff8
lea eax, [ebx - 8]
mov ecx, eax
shr ecx, 3
add ecx, 1
mov edi, ecx
and edi, 3
mov dword [ebp - 0x24], edi
cmp eax, 0x18
jae 0x538842
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x5388b7
and ecx, 0xfffffffc
lea eax, [esi + edx*4]
add eax, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop
movdqu xmm2, xmmword [eax + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + edi*4 - 0x50]
movdqu xmm3, xmmword [eax + edi*4 - 0x40]
movdqu xmm4, xmmword [eax + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + edi*4]
por xmm1, xmm2
add edi, 0x20
add ecx, 0xfffffffc
jne 0x538860
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x5388ea
add edi, dword [ebp - 0x1c]
lea eax, [esi + edi*4]
add eax, 0x10
shl edx, 5
xor ecx, ecx
nop dword [eax]
movdqu xmm2, xmmword [eax + ecx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + ecx]
por xmm1, xmm2
add ecx, 0x20
cmp edx, ecx
jne 0x5388d0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
cmp dword [ebp - 0x18], ebx
jne 0x538914
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
jmp 0x53892a
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
nop
or ecx, dword [esi + ebx*4]
add ebx, 1
cmp eax, ebx
jne 0x538920
cmp eax, edx
jge 0x538a3a
mov ebx, eax
mov eax, dword [ebp - 0x28]
mov esi, dword [eax]
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x538a30
mov ebx, eax
and ebx, 0xfffffff8
movd xmm0, ecx
lea eax, [ebx - 8]
mov edi, eax
shr edi, 3
add edi, 1
mov ecx, edi
and ecx, 3
mov dword [ebp - 0x18], ecx
cmp eax, 0x18
jae 0x53896e
pxor xmm1, xmm1
xor ecx, ecx
jmp 0x5389d7
and edi, 0xfffffffc
mov eax, dword [ebp - 0x10]
lea eax, [esi + eax*4]
add eax, 0x70
pxor xmm1, xmm1
xor ecx, ecx
movdqu xmm2, xmmword [eax + ecx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + ecx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + ecx*4 - 0x50]
movdqu xmm3, xmmword [eax + ecx*4 - 0x40]
movdqu xmm4, xmmword [eax + ecx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + ecx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + ecx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + ecx*4]
por xmm1, xmm2
add ecx, 0x20
add edi, 0xfffffffc
jne 0x538980
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x538a0a
add ecx, dword [ebp - 0x10]
lea eax, [esi + ecx*4]
add eax, 0x10
shl edi, 5
xor ecx, ecx
nop dword [eax]
movdqu xmm2, xmmword [eax + ecx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + ecx]
por xmm1, xmm2
add ecx, 0x20
cmp edi, ecx
jne 0x5389f0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
cmp dword [ebp - 0x14], ebx
mov edi, dword [ebp - 0x20]
je 0x538a3a
add ebx, dword [ebp - 0x10]
nop
or ecx, dword [esi + ebx*4]
add ebx, 1
cmp edx, ebx
jne 0x538a30
mov ebx, dword [ebp - 0x10]
cmp edx, ebx
cmovl ebx, edx
test ebx, ebx
jle 0x538b44
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov esi, dword [edi]
xor edi, edi
cmp ebx, 4
jb 0x538b35
mov dword [ebp - 0x10], ebx
mov edi, ebx
and edi, 0xfffffffc
movd xmm0, ecx
lea edx, [edi - 4]
mov ecx, edx
shr ecx, 2
add ecx, 1
mov ebx, ecx
and ebx, 3
mov dword [ebp - 0x14], ebx
cmp edx, 0xc
jae 0x538a84
xor ebx, ebx
jmp 0x538ae6
and ecx, 0xfffffffc
xor ebx, ebx
nop dword [eax]
movdqu xmm1, xmmword [eax + ebx*4]
movdqu xmm2, xmmword [eax + ebx*4 + 0x10]
movdqu xmm3, xmmword [esi + ebx*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [esi + ebx*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [eax + ebx*4 + 0x20]
movdqu xmm2, xmmword [esi + ebx*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [eax + ebx*4 + 0x30]
movdqu xmm0, xmmword [esi + ebx*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add ebx, 0x10
add ecx, 0xfffffffc
jne 0x538a90
cmp dword [ebp - 0x14], 0
je 0x538b1a
lea edx, [esi + ebx*4]
mov dword [ebp - 0x18], edx
lea ebx, [eax + ebx*4]
shl dword [ebp - 0x14], 4
xor edx, edx
mov ecx, dword [ebp - 0x18]
nop
movdqu xmm1, xmmword [ebx + edx]
movdqu xmm2, xmmword [ecx + edx]
pxor xmm2, xmm1
por xmm0, xmm2
add edx, 0x10
cmp dword [ebp - 0x14], edx
jne 0x538b00
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
mov ebx, dword [ebp - 0x10]
jmp 0x538b40
mov edx, dword [esi + edi*4]
xor edx, dword [eax + edi*4]
or ecx, edx
add edi, 1
cmp ebx, edi
jne 0x538b35
mov eax, dword [ebp - 0x28]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x24], eax
mov esi, dword [eax + 4]
xor eax, eax
mov edi, dword [ebp - 0x1c]
sub edi, esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x30], ebx
jge 0x538c9a
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov edx, esi
mov edi, dword [ebp - 0x1c]
sub edx, edi
xor eax, eax
cmp edx, 8
jb 0x538c87
mov dword [ebp - 0x2c], edx
mov edi, edx
and edi, 0xfffffff8
lea edx, [edi - 8]
mov eax, edx
shr eax, 3
add eax, 1
mov esi, eax
and esi, 3
mov dword [ebp - 0x34], esi
cmp edx, 0x18
jae 0x538bb2
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x538c27
and eax, 0xfffffffc
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
lea esi, [esi + edx*4]
add esi, 0x70
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop dword [eax + eax]
movdqu xmm2, xmmword [esi + ebx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [esi + ebx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [esi + ebx*4 - 0x50]
movdqu xmm3, xmmword [esi + ebx*4 - 0x40]
movdqu xmm4, xmmword [esi + ebx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [esi + ebx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [esi + ebx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [esi + ebx*4]
por xmm1, xmm2
add ebx, 0x20
add eax, 0xfffffffc
jne 0x538bd0
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x538c5a
add ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
lea eax, [eax + ebx*4]
add eax, 0x10
shl edx, 5
xor esi, esi
nop
movdqu xmm2, xmmword [eax + esi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + esi]
por xmm1, xmm2
add esi, 0x20
cmp edx, esi
jne 0x538c40
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [ebp - 0x2c], edi
jne 0x538c7e
mov ebx, dword [ebp - 0x30]
jmp 0x538c9a
add edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
nop word [eax + eax]
or eax, dword [edx + edi*4]
add edi, 1
cmp esi, edi
jne 0x538c90
mov esi, dword [ebp - 0x20]
mov edi, dword [esi + 0xc]
mov esi, dword [ebp - 0x10]
xor edi, ebx
cmp esi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edi
jge 0x538db9
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
mov dword [ebp - 0x14], edx
mov ebx, dword [ebp - 0x18]
cmp ebx, 8
jae 0x538cc8
mov ebx, esi
jmp 0x538dc1
and ebx, 0xfffffff8
movd xmm0, eax
lea edx, [ebx - 8]
mov eax, edx
shr eax, 3
add eax, 1
mov edi, eax
and edi, 3
mov dword [ebp - 0x2c], edi
cmp edx, 0x18
jae 0x538cef
pxor xmm1, xmm1
xor edi, edi
jmp 0x538d67
and eax, 0xfffffffc
mov edx, dword [ebp - 0x14]
lea esi, [edx + esi*4]
add esi, 0x70
pxor xmm1, xmm1
xor edi, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm2, xmmword [esi + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [esi + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [esi + edi*4 - 0x50]
movdqu xmm3, xmmword [esi + edi*4 - 0x40]
movdqu xmm4, xmmword [esi + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [esi + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [esi + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [esi + edi*4]
por xmm1, xmm2
add edi, 0x20
add eax, 0xfffffffc
jne 0x538d10
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x538d9a
add edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
lea eax, [eax + edi*4]
add eax, 0x10
shl edx, 5
xor esi, esi
nop
movdqu xmm2, xmmword [eax + esi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + esi]
por xmm1, xmm2
add esi, 0x20
cmp edx, esi
jne 0x538d80
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [ebp - 0x18], ebx
jne 0x538dbe
mov esi, dword [ebp - 0x1c]
jmp 0x538dda
add ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
nop word [eax + eax]
or eax, dword [edx + ebx*4]
add ebx, 1
cmp esi, ebx
jne 0x538dd0
or dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x10]
cmp esi, ecx
cmovl ecx, esi
test ecx, ecx
jle 0x538f04
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
mov edi, ecx
mov ecx, dword [edx]
mov dword [ebp - 0x1c], ecx
xor ebx, ebx
cmp edi, 4
jae 0x538e11
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x538ef5
mov dword [ebp - 0x10], edi
mov ebx, edi
and ebx, 0xfffffffc
movd xmm0, eax
lea edx, [ebx - 4]
mov eax, edx
shr eax, 2
add eax, 1
mov ecx, eax
and ecx, 3
mov dword [ebp - 0x14], ecx
cmp edx, 0xc
jae 0x538e3f
xor edi, edi
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x538ea6
and eax, 0xfffffffc
xor edi, edi
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
nop word [eax + eax]
movdqu xmm1, xmmword [ecx + edi*4]
movdqu xmm2, xmmword [ecx + edi*4 + 0x10]
movdqu xmm3, xmmword [esi + edi*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [esi + edi*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [ecx + edi*4 + 0x20]
movdqu xmm2, xmmword [esi + edi*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [ecx + edi*4 + 0x30]
movdqu xmm0, xmmword [esi + edi*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add edi, 0x10
add eax, 0xfffffffc
jne 0x538e50
cmp dword [ebp - 0x14], 0
je 0x538eda
lea edx, [esi + edi*4]
mov dword [ebp - 0x18], edx
lea edi, [ecx + edi*4]
shl dword [ebp - 0x14], 4
xor edx, edx
mov eax, dword [ebp - 0x18]
nop
movdqu xmm1, xmmword [edi + edx]
movdqu xmm2, xmmword [eax + edx]
pxor xmm2, xmm1
por xmm0, xmm2
add edx, 0x10
cmp dword [ebp - 0x14], edx
jne 0x538ec0
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
mov edi, dword [ebp - 0x10]
jmp 0x538f00
mov edx, dword [esi + ebx*4]
xor edx, dword [ecx + ebx*4]
or eax, edx
add ebx, 1
cmp edi, ebx
jne 0x538ef5
cmp dword [ebp - 0x20], 0
sete cl
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x24]
xor edx, dword [esi + 0xc]
or edx, eax
sete al
or al, cl
movzx eax, al
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x10], 2
jl 0x53972c
mov edx, 1
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x14]
nop dword [eax + eax]
mov eax, dword [eax + 0x14]
mov ecx, eax
xor ecx, edx
not eax
add ecx, 0xffffffff
test ecx, eax
jns 0x538f5a
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x53972f
mov dword [ebp - 0x30], edx
push ebx
push edi
mov esi, dword [ebp - 0x28]
push esi
push esi
push esi
call fcn.00530960
add esp, 0x14
test eax, eax
je 0x539760
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0xc]
mov edx, dword [esi + 4]
mov ecx, dword [edi + 4]
xor eax, eax
mov esi, edx
sub esi, ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x24], edx
mov esi, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], edi
jge 0x5390ba
mov esi, dword [edi]
sub ecx, edx
xor eax, eax
mov ebx, edx
cmp ecx, 8
jb 0x5390ac
mov dword [ebp - 0x18], ecx
mov ebx, ecx
and ebx, 0xfffffff8
lea ecx, [ebx - 8]
mov dword [ebp - 0x2c], ecx
shr ecx, 3
add ecx, 1
mov eax, ecx
and eax, 3
cmp dword [ebp - 0x2c], 0x18
jae 0x538fd7
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x539047
and ecx, 0xfffffffc
lea edx, [esi + edx*4]
add edx, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word [eax + eax]
movdqu xmm2, xmmword [edx + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edx + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edx + edi*4 - 0x50]
movdqu xmm3, xmmword [edx + edi*4 - 0x40]
movdqu xmm4, xmmword [edx + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edx + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edx + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edx + edi*4]
por xmm1, xmm2
add edi, 0x20
add ecx, 0xfffffffc
jne 0x538ff0
test eax, eax
je 0x53907a
mov ecx, eax
add edi, dword [ebp - 0x24]
lea eax, [esi + edi*4]
add eax, 0x10
shl ecx, 5
xor edx, edx
nop dword [eax + eax]
movdqu xmm2, xmmword [eax + edx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + edx]
por xmm1, xmm2
add edx, 0x20
cmp ecx, edx
jne 0x539060
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [ebp - 0x18], ebx
jne 0x5390a4
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
jmp 0x5390ba
mov edx, dword [ebp - 0x24]
add ebx, edx
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
nop
or eax, dword [esi + ebx*4]
add ebx, 1
cmp ecx, ebx
jne 0x5390b0
cmp ecx, edx
jge 0x5391ea
mov ecx, dword [ebp - 0x28]
mov esi, dword [ecx]
mov ebx, dword [ebp - 0x14]
cmp ebx, 8
jae 0x5390e0
mov ebx, dword [ebp - 0x10]
jmp 0x5391e0
and ebx, 0xfffffff8
movd xmm0, eax
lea eax, [ebx - 8]
mov edx, eax
shr edx, 3
add edx, 1
mov ecx, edx
and ecx, 3
cmp eax, 0x18
jae 0x539104
pxor xmm1, xmm1
xor edi, edi
jmp 0x539177
and edx, 0xfffffffc
mov eax, dword [ebp - 0x10]
lea eax, [esi + eax*4]
add eax, 0x70
pxor xmm1, xmm1
xor edi, edi
nop word cs:[eax + eax]
movdqu xmm2, xmmword [eax + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + edi*4 - 0x50]
movdqu xmm3, xmmword [eax + edi*4 - 0x40]
movdqu xmm4, xmmword [eax + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + edi*4]
por xmm1, xmm2
add edi, 0x20
add edx, 0xfffffffc
jne 0x539120
test ecx, ecx
je 0x5391aa
add edi, dword [ebp - 0x10]
lea eax, [esi + edi*4]
add eax, 0x10
shl ecx, 5
xor edx, edx
nop dword [eax]
movdqu xmm2, xmmword [eax + edx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + edx]
por xmm1, xmm2
add edx, 0x20
cmp ecx, edx
jne 0x539190
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [ebp - 0x14], ebx
jne 0x5391d1
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
jmp 0x5391ea
add ebx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
nop word [eax + eax]
or eax, dword [esi + ebx*4]
add ebx, 1
cmp edx, ebx
jne 0x5391e0
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
cmovl ecx, edx
test ecx, ecx
jle 0x53932f
mov edx, ecx
mov ecx, dword [ebp - 0x28]
mov esi, dword [ecx]
mov edi, dword [edi]
xor ebx, ebx
cmp edx, 4
jb 0x539320
mov dword [ebp - 0x10], edx
mov ebx, edx
and ebx, 0xfffffffc
movd xmm0, eax
lea ecx, [ebx - 4]
mov eax, ecx
shr eax, 2
add eax, 1
mov edx, eax
and edx, 3
mov dword [ebp - 0x14], edx
xor edx, edx
cmp ecx, 0xc
jae 0x539239
mov ecx, dword [ebp - 0x14]
jmp 0x5392a6
and eax, 0xfffffffc
xor edx, edx
mov ecx, dword [ebp - 0x14]
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm1, xmmword [esi + edx*4]
movdqu xmm2, xmmword [esi + edx*4 + 0x10]
movdqu xmm3, xmmword [edi + edx*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [edi + edx*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [esi + edx*4 + 0x20]
movdqu xmm2, xmmword [edi + edx*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [esi + edx*4 + 0x30]
movdqu xmm0, xmmword [edi + edx*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add edx, 0x10
add eax, 0xfffffffc
jne 0x539250
test ecx, ecx
je 0x5392dd
lea ecx, [edi + edx*4]
mov dword [ebp - 0x18], ecx
lea edx, [esi + edx*4]
shl dword [ebp - 0x14], 4
xor ecx, ecx
nop dword [eax]
movdqu xmm1, xmmword [edx + ecx]
mov eax, dword [ebp - 0x18]
movdqu xmm2, xmmword [eax + ecx]
pxor xmm2, xmm1
por xmm0, xmm2
add ecx, 0x10
cmp dword [ebp - 0x14], ecx
jne 0x5392c0
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
mov edx, dword [ebp - 0x10]
jmp 0x53932b
mov edx, dword [ebp - 0x30]
add edx, 1
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x10]
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
jl 0x538f40
jmp 0x53972f
mov ecx, dword [edi + ebx*4]
xor ecx, dword [esi + ebx*4]
or eax, ecx
add ebx, 1
cmp edx, ebx
jne 0x539320
mov ecx, dword [ebp - 0x28]
mov esi, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x2c], esi
xor ecx, esi
or ecx, eax
mov eax, dword [ebp - 0x1c]
mov ecx, 0xffffffff
cmove eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
mov edx, dword [esi + 4]
xor ecx, ecx
mov edi, dword [ebp - 0x24]
mov eax, edi
sub eax, edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x10], edx
jge 0x53949a
mov ebx, dword [esi]
sub edx, edi
xor ecx, ecx
mov eax, edi
cmp edx, 8
jb 0x53948c
mov dword [ebp - 0x18], edx
mov eax, edx
and eax, 0xfffffff8
lea ecx, [eax - 8]
mov edi, ecx
shr edi, 3
add edi, 1
mov edx, edi
and edx, 3
cmp ecx, 0x18
jae 0x5393ab
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x539427
and edi, 0xfffffffc
mov ecx, dword [ebp - 0x24]
lea ecx, [ebx + ecx*4]
add ecx, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm2, xmmword [ecx + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ecx + esi*4 - 0x50]
movdqu xmm3, xmmword [ecx + esi*4 - 0x40]
movdqu xmm4, xmmword [ecx + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ecx + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ecx + esi*4]
por xmm1, xmm2
add esi, 0x20
add edi, 0xfffffffc
jne 0x5393d0
test edx, edx
je 0x53945a
mov edi, edx
add esi, dword [ebp - 0x24]
lea ecx, [ebx + esi*4]
add ecx, 0x10
shl edi, 5
xor edx, edx
nop dword [eax + eax]
movdqu xmm2, xmmword [ecx + edx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [ecx + edx]
por xmm1, xmm2
add edx, 0x20
cmp edi, edx
jne 0x539440
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
cmp dword [ebp - 0x18], eax
jne 0x539484
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x24]
jmp 0x53949a
mov edi, dword [ebp - 0x24]
add eax, edi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
nop
or ecx, dword [ebx + eax*4]
add eax, 1
cmp edx, eax
jne 0x539490
cmp edx, edi
jge 0x5394c0
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebx]
mov eax, dword [ebp - 0x14]
cmp eax, 8
jae 0x5394d0
mov eax, dword [ebp - 0x10]
jmp 0x5395d0
mov ebx, dword [ebp - 0x28]
jmp 0x5395da
mov dword [ebp - 0x18], edx
and eax, 0xfffffff8
movd xmm0, ecx
lea ecx, [eax - 8]
mov ebx, ecx
shr ebx, 3
add ebx, 1
mov edx, ebx
and edx, 3
cmp ecx, 0x18
jae 0x5394f7
pxor xmm1, xmm1
xor esi, esi
jmp 0x539567
and ebx, 0xfffffffc
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
lea ecx, [esi + ecx*4]
add ecx, 0x70
pxor xmm1, xmm1
xor esi, esi
nop dword [eax]
movdqu xmm2, xmmword [ecx + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ecx + esi*4 - 0x50]
movdqu xmm3, xmmword [ecx + esi*4 - 0x40]
movdqu xmm4, xmmword [ecx + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ecx + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ecx + esi*4]
por xmm1, xmm2
add esi, 0x20
add ebx, 0xfffffffc
jne 0x539510
test edx, edx
je 0x53959a
mov ebx, edx
add esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx + esi*4]
add ecx, 0x10
shl ebx, 5
xor edx, edx
nop
movdqu xmm2, xmmword [ecx + edx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [ecx + edx]
por xmm1, xmm2
add edx, 0x20
cmp ebx, edx
jne 0x539580
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
cmp dword [ebp - 0x14], eax
jne 0x5395c1
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
jmp 0x5395da
add eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
nop dword [eax]
or ecx, dword [edx + eax*4]
add eax, 1
cmp edi, eax
jne 0x5395d0
mov eax, dword [ebp - 0x10]
cmp edi, eax
cmovl eax, edi
test eax, eax
jle 0x53970f
mov edx, dword [ebx]
mov dword [ebp - 0x14], edx
mov edx, dword [esi]
xor esi, esi
cmp eax, 4
jae 0x539610
mov ebx, edx
mov edx, eax
mov eax, dword [ebp - 0x14]
jmp 0x539700
mov dword [ebp - 0x10], eax
mov esi, eax
and esi, 0xfffffffc
movd xmm0, ecx
lea edi, [esi - 4]
mov ecx, edi
shr ecx, 2
add ecx, 1
mov eax, ecx
and eax, 3
xor ebx, ebx
cmp edi, 0xc
jae 0x53963a
mov edi, eax
mov eax, dword [ebp - 0x14]
jmp 0x5396a6
mov edi, eax
and ecx, 0xfffffffc
xor ebx, ebx
mov eax, dword [ebp - 0x14]
nop word cs:[eax + eax]
nop
movdqu xmm1, xmmword [eax + ebx*4]
movdqu xmm2, xmmword [eax + ebx*4 + 0x10]
movdqu xmm3, xmmword [edx + ebx*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [edx + ebx*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [eax + ebx*4 + 0x20]
movdqu xmm2, xmmword [edx + ebx*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [eax + ebx*4 + 0x30]
movdqu xmm0, xmmword [edx + ebx*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add ebx, 0x10
add ecx, 0xfffffffc
jne 0x539650
test edi, edi
je 0x5396df
mov ecx, edi
lea edi, [edx + ebx*4]
mov dword [ebp - 0x14], edi
lea edi, [eax + ebx*4]
mov dword [ebp - 0x18], edi
shl ecx, 4
xor edi, edi
nop dword [eax]
mov ebx, dword [ebp - 0x18]
movdqu xmm1, xmmword [ebx + edi]
mov ebx, dword [ebp - 0x14]
movdqu xmm2, xmmword [ebx + edi]
pxor xmm2, xmm1
por xmm0, xmm2
add edi, 0x10
cmp ecx, edi
jne 0x5396c0
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
mov ebx, edx
mov edx, dword [ebp - 0x10]
jmp 0x53970b
mov edi, dword [ebx + esi*4]
xor edi, dword [eax + esi*4]
or ecx, edi
add esi, 1
cmp edx, esi
jne 0x539700
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor edx, dword [eax + 0xc]
xor eax, eax
or edx, ecx
sete al
mov ecx, dword [ebp - 0x1c]
not ecx
test eax, ecx
je 0x539300
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
and ecx, 1
mov dword [eax], ecx
mov eax, 1
cmp byte [ebx + 0x14], 0
jne 0x539758
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 8]
lea edx, [ecx - 1]
mov dword [ebx + 8], edx
mov ecx, dword [esi + ecx*4 - 4]
mov dword [ebx + 0x10], ecx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
cmp byte [ebx + 0x14], 0
jne 0x539758
jmp 0x539745