Function at 0x10154c80
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x188
push esi
push edi
mov esi, ecx
mov dword [ebp - 0xe8], esi
mov edx, dword [ebx + 8]
mov dword [ebp - 0x40], 0x3020100
mov dword [ebp - 0x3c], 0x3020100
mov dword [ebp - 0x38], 0x3020100
mov dword [ebp - 0x34], 0x3020100
movaps xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0x4040404
mov dword [ebp - 0x88], 0x8080808
mov dword [ebp - 0x84], 0xc0c0c0c
movaps xmm0, xmmword [ebp - 0x90]
movaps xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x80], 0x3020100
mov dword [ebp - 0x7c], 0x3020100
mov dword [ebp - 0x78], 0x3020100
mov dword [ebp - 0x74], 0x3020100
movaps xmm0, xmmword [ebp - 0x80]
movaps xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0x4040404
mov dword [ebp - 0x98], 0x8080808
mov dword [ebp - 0x94], 0xc0c0c0c
movaps xmm0, xmmword [ebp - 0xa0]
movaps xmmword [ebp - 0xa0], xmm0
mov dword [ebp - 0x30], 0x3020100
mov dword [ebp - 0x2c], 0x3020100
mov dword [ebp - 0x28], 0x3020100
mov dword [ebp - 0x24], 0x3020100
movaps xmm0, xmmword [ebp - 0x30]
movaps xmmword [ebp - 0x140], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0x4040404
mov dword [ebp - 0x58], 0x8080808
mov dword [ebp - 0x54], 0xc0c0c0c
movaps xmm0, xmmword [ebp - 0x60]
movaps xmmword [ebp - 0x130], xmm0
mov dword [ebp - 0x70], 0x3020100
mov dword [ebp - 0x6c], 0x3020100
mov dword [ebp - 0x68], 0x3020100
mov dword [ebp - 0x64], 0x3020100
movaps xmm0, xmmword [ebp - 0x70]
movaps xmmword [ebp - 0x160], xmm0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0x4040404
mov dword [ebp - 0x48], 0x8080808
mov dword [ebp - 0x44], 0xc0c0c0c
movaps xmm0, xmmword [ebp - 0x50]
mov dword [ebp - 0x20], 0x3020100
mov dword [ebp - 0x1c], 0x3020100
mov dword [ebp - 0x18], 0x3020100
mov dword [ebp - 0x14], 0x3020100
movaps xmmword [ebp - 0x150], xmm0
movaps xmm0, xmmword [ebp - 0x20]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0x4040404
mov dword [ebp - 8], 0x8080808
mov dword [ebp - 4], 0xc0c0c0c
movaps xmmword [ebp - 0x180], xmm0
xor edi, edi
movaps xmm0, xmmword [ebp - 0x10]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xe0], edi
movaps xmmword [ebp - 0x170], xmm0
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [edi + eax + 0x14]
imul ecx, edx
mov edx, dword [esi + 4]
mov esi, dword [esi]
add eax, ecx
mov ecx, dword [edx + 0x10]
mov edx, dword [edi + edx + 0x14]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 4]
add eax, dword [ebp - 0xe4]
imul ecx, eax
mov edi, dword [esi + 8]
mov dword [ebp - 0xbc], edi
add edx, ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xdc], eax
mov eax, dword [ecx + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [esi]
mov dword [ebp - 0xd0], ecx
mov esi, dword [ebp - 0xd0]
lea edi, [edx + eax*4]
mov eax, ecx
neg ecx
mov dword [ebp - 0xd4], edi
shl ecx, 2
neg eax
lea edx, [ecx + edi]
shl eax, 3
mov dword [ebp - 0xec], ecx
lea ecx, [edi + esi*4]
lea esi, [edi + esi*8]
mov dword [ebp - 0x100], eax
add eax, edi
mov dword [ebp - 0xc8], edx
mov edi, dword [ebp - 0xdc]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xcc], esi
movups xmm0, xmmword [edi + 0x40]
movups xmm7, xmmword [edi]
movups xmm3, xmmword [edi + 0x30]
movups xmm5, xmmword [edi + 0x10]
movups xmm6, xmmword [edi + 0x20]
movaps xmmword [ebp - 0x70], xmm0
movups xmm0, xmmword [edi + 0x50]
mov edi, dword [ebp - 0xd4]
movaps xmmword [ebp - 0x30], xmm3
movaps xmmword [ebp - 0x60], xmm0
movaps xmmword [ebp - 0x50], xmm7
movups xmm2, xmmword [edi]
movups xmm4, xmmword [edi + 4]
movaps xmm0, xmm2
movaps xmmword [ebp - 0x20], xmm5
shufps xmm0, xmm2, 0x90
movaps xmm1, xmm2
addps xmm4, xmm0
shufps xmm2, xmm2, 0x41
movups xmm0, xmmword [edi + 8]
mulps xmm1, xmm7
addps xmm0, xmm2
movaps xmmword [ebp - 0x10], xmm6
movups xmm2, xmmword [edx]
mulps xmm4, xmm5
mulps xmm0, xmm6
addps xmm4, xmm1
movaps xmm1, xmm2
mulps xmm1, xmm7
addps xmm4, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x90
shufps xmm2, xmm2, 0x41
mulps xmm4, xmm3
movups xmm3, xmmword [edx + 4]
add edx, 8
addps xmm3, xmm0
mov edi, dword [ebp - 0xb4]
movups xmm0, xmmword [edx]
mov dword [ebp - 0xa4], 4
addps xmm0, xmm2
movups xmm2, xmmword [ecx]
mulps xmm3, xmm5
mulps xmm0, xmm6
movups xmm6, xmmword [ecx + 4]
addps xmm3, xmm1
movaps xmm1, xmm2
mulps xmm1, xmm7
addps xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x90
addps xmm6, xmm0
shufps xmm2, xmm2, 0x41
movups xmm0, xmmword [ecx + 8]
addps xmm0, xmm2
movups xmm2, xmmword [eax]
mulps xmm6, xmm5
mulps xmm0, xmmword [ebp - 0x10]
movups xmm5, xmmword [eax + 8]
addps xmm6, xmm1
movaps xmm1, xmm2
shufps xmm1, xmm2, 0x90
addps xmm6, xmm0
movups xmm0, xmmword [eax + 4]
addps xmm0, xmm1
movups xmm1, xmmword [esi + 8]
addps xmm6, xmm3
movaps xmm3, xmm2
shufps xmm2, xmm2, 0x41
mulps xmm0, xmmword [ebp - 0x20]
addps xmm5, xmm2
mulps xmm3, xmm7
mulps xmm6, xmmword [ebp - 0x70]
mulps xmm5, xmmword [ebp - 0x10]
addps xmm0, xmm3
movups xmm3, xmmword [esi]
addps xmm6, xmm4
movaps xmm2, xmm3
movaps xmm4, xmm3
addps xmm5, xmm0
shufps xmm2, xmm3, 0x90
movups xmm0, xmmword [esi + 4]
shufps xmm3, xmm3, 0x41
addps xmm0, xmm2
mulps xmm4, xmm7
addps xmm1, xmm3
mulps xmm0, xmmword [ebp - 0x20]
mulps xmm1, xmmword [ebp - 0x10]
addps xmm0, xmm4
addps xmm1, xmm0
addps xmm1, xmm5
mulps xmm1, xmmword [ebp - 0x60]
addps xmm1, xmm6
movups xmmword [edi], xmm1
mov edi, dword [ebp - 0xbc]
cmp edi, 0xa
jb 0x101552b8
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xac], edi
mov edi, dword [ebp - 0xc8]
sub dword [ebp - 0xac], edi
mov edi, dword [ebp - 0xb0]
sub edi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xf0], edi
add eax, 0x10
mov edi, dword [ebp - 0xcc]
sub edi, dword [ebp - 0xc8]
mov dword [ebp - 0xf8], edi
mov edi, dword [ebp - 0xb0]
sub edi, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], edi
mov edi, dword [ebp - 0xcc]
sub edi, dword [ebp - 0xd8]
mov dword [ebp - 0x34], edi
mov edi, dword [ebp - 0xb0]
sub edi, dword [ebp - 0xcc]
mov dword [ebp - 0xc0], eax
lea eax, [esi + 0xc]
lea esi, [ecx + 0x18]
mov dword [ebp - 0xfc], edi
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xb0]
add ecx, 0x14
sub edi, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], 8
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0x104], edi
nop
movups xmm1, xmmword [ecx]
mov eax, dword [ebp - 0xec]
movups xmm2, xmmword [ecx - 8]
mov edi, dword [ebp - 0xac]
movups xmm0, xmmword [ecx - 0xc]
movaps xmm5, xmmword [ebp - 0x20]
addps xmm2, xmm1
movups xmm3, xmmword [ecx - 4]
movups xmm4, xmmword [ecx + 4]
movups xmm1, xmmword [edx]
mulps xmm2, xmm5
addps xmm4, xmm0
movups xmm0, xmmword [ecx + eax]
mov eax, dword [ebp - 0xd0]
mulps xmm3, xmm7
mulps xmm4, xmmword [ebp - 0x10]
movups xmm6, xmmword [esi - 0xc]
addps xmm2, xmm3
movups xmm3, xmmword [edx + 4]
addps xmm3, xmm0
movups xmm0, xmmword [edx + 0x10]
addps xmm4, xmm2
movups xmm2, xmmword [edx + 8]
mulps xmm3, xmm5
addps xmm0, xmm1
movups xmm1, xmmword [edi + edx]
mov edi, dword [ebp - 0xc0]
mulps xmm2, xmm7
mulps xmm0, xmmword [ebp - 0x10]
mulps xmm4, xmmword [ebp - 0x30]
addps xmm3, xmm2
movups xmm2, xmmword [esi - 8]
mulps xmm2, xmm7
addps xmm3, xmm0
movups xmm0, xmmword [ecx + eax*4]
mov eax, dword [ebp - 0x104]
addps xmm6, xmm0
movups xmm0, xmmword [esi]
addps xmm0, xmm1
mulps xmm6, xmm5
mulps xmm0, xmmword [ebp - 0x10]
addps xmm6, xmm2
addps xmm6, xmm0
addps xmm6, xmm3
movups xmm3, xmmword [edi + eax]
mov eax, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xfc]
mulps xmm3, xmm7
mulps xmm6, xmmword [ebp - 0x70]
movups xmm1, xmmword [eax + edi]
mov edi, dword [ebp - 0x100]
addps xmm6, xmm4
movups xmm4, xmmword [eax + 4]
movups xmm2, xmmword [ecx + edi]
mov edi, dword [ebp - 0xf0]
mulps xmm4, xmm7
addps xmm2, xmm1
movups xmm0, xmmword [edi + edx]
mov edi, dword [ebp - 0xf4]
movups xmm1, xmmword [eax]
mulps xmm2, xmmword [ebp - 0x20]
movups xmm5, xmmword [edi + esi]
mov edi, dword [ebp - 0xd0]
addps xmm2, xmm3
addps xmm5, xmm0
movups xmm3, xmmword [ecx + edi*8]
mov edi, dword [ebp - 0xf8]
addps xmm3, xmm1
mulps xmm5, xmmword [ebp - 0x10]
movups xmm0, xmmword [edi + edx]
mov edi, dword [ebp - 0x34]
mulps xmm3, xmmword [ebp - 0x20]
addps xmm5, xmm2
movups xmm2, xmmword [esi + edi]
addps xmm3, xmm4
addps xmm2, xmm0
mulps xmm2, xmmword [ebp - 0x10]
addps xmm2, xmm3
addps xmm2, xmm5
mulps xmm2, xmmword [ebp - 0x60]
addps xmm2, xmm6
mov edi, dword [ebp - 0xc0]
add eax, 0x10
add dword [ebp - 0xa4], 4
add ecx, 0x10
add dword [ebp - 0xc0], 0x10
add edx, 0x10
mov dword [ebp - 0xc4], eax
add esi, 0x10
mov eax, dword [ebp - 0xb8]
add eax, 4
movups xmmword [edi], xmm2
mov edi, dword [ebp - 0xbc]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xb8], eax
xor eax, eax
add dword [ebp - 0xa8], 2
adc eax, eax
test eax, eax
jb 0x10155110
ja 0x101552ac
cmp dword [ebp - 0xa8], edi
jbe 0x10155110
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xa4]
movaps xmm1, xmmword [0x10207890]
pshufb xmm1, xmmword [ebp - 0x90]
movups xmm5, xmmword [esi + edx*4]
movups xmm3, xmmword [esi + edx*4 - 4]
movaps xmm0, xmmword [ebp - 0x120]
movups xmm4, xmmword [esi + edx*4 - 8]
mov edx, dword [ebp - 0xc8]
mulps xmm5, xmm7
movups xmm7, xmmword [esi + edi*4 - 0x10]
mov esi, dword [ebp - 0xa4]
psllw xmm1, 2
movaps xmm2, xmm7
addps xmm7, xmm3
paddb xmm0, xmm1
movaps xmm1, xmmword [0x10207890]
pshufb xmm1, xmmword [ebp - 0xa0]
mulps xmm7, xmmword [ebp - 0x20]
pshufb xmm2, xmm0
movups xmm3, xmmword [edx + edi*4 - 0x10]
movups xmm6, xmmword [edx + esi*4 - 4]
movaps xmm0, xmmword [ebp - 0x80]
addps xmm2, xmm4
movups xmm4, xmmword [edx + esi*4 - 8]
addps xmm7, xmm5
psllw xmm1, 2
movups xmm5, xmmword [edx + esi*4]
mov edx, esi
mulps xmm2, xmmword [ebp - 0x10]
addps xmm6, xmm3
mulps xmm5, xmmword [ebp - 0x50]
paddb xmm0, xmm1
movaps xmm1, xmmword [0x10207890]
mulps xmm6, xmmword [ebp - 0x20]
addps xmm7, xmm2
pshufb xmm1, xmmword [ebp - 0x130]
mulps xmm7, xmmword [ebp - 0x30]
addps xmm6, xmm5
movups xmm5, xmmword [ecx + edx*4]
movaps xmm2, xmm3
psllw xmm1, 2
movups xmm3, xmmword [ecx + edi*4 - 0x10]
pshufb xmm2, xmm0
movups xmm0, xmmword [ecx + edx*4 - 4]
addps xmm2, xmm4
mulps xmm5, xmmword [ebp - 0x50]
movups xmm4, xmmword [ecx + edx*4 - 8]
mov ecx, esi
movups xmmword [ebp - 0x30], xmm0
mulps xmm2, xmmword [ebp - 0x10]
movaps xmm0, xmmword [ebp - 0x140]
paddb xmm0, xmm1
addps xmm6, xmm2
movaps xmm2, xmm3
pshufb xmm2, xmm0
movups xmm0, xmmword [ebp - 0x30]
addps xmm2, xmm4
addps xmm0, xmm3
movups xmm3, xmmword [eax + ecx*4 - 4]
movups xmm4, xmmword [eax + ecx*4 - 8]
mulps xmm0, xmmword [ebp - 0x20]
mulps xmm2, xmmword [ebp - 0x10]
addps xmm0, xmm5
movups xmm5, xmmword [eax + ecx*4]
mulps xmm5, xmmword [ebp - 0x50]
addps xmm0, xmm2
addps xmm0, xmm6
movups xmm6, xmmword [eax + edi*4 - 0x10]
movaps xmm2, xmm6
addps xmm6, xmm3
mulps xmm0, xmmword [ebp - 0x70]
addps xmm0, xmm7
movaps xmm7, xmmword [0x10207890]
movaps xmm1, xmm7
pshufb xmm1, xmmword [ebp - 0x150]
movups xmmword [ebp - 0x30], xmm0
movaps xmm0, xmmword [ebp - 0x160]
psllw xmm1, 2
paddb xmm0, xmm1
pshufb xmm2, xmm0
mulps xmm6, xmmword [ebp - 0x20]
addps xmm2, xmm4
mov esi, dword [ebp - 0xcc]
pshufb xmm7, xmmword [ebp - 0x170]
mov eax, dword [ebp - 0xb4]
mulps xmm2, xmmword [ebp - 0x10]
addps xmm6, xmm5
movups xmm5, xmmword [esi + edi*4 - 0x10]
movaps xmm0, xmmword [ebp - 0x180]
movups xmm4, xmmword [esi + ecx*4]
movups xmm3, xmmword [esi + ecx*4 - 8]
mulps xmm4, xmmword [ebp - 0x50]
addps xmm6, xmm2
movups xmm2, xmmword [esi + ecx*4 - 4]
movaps xmm1, xmm5
psllw xmm7, 2
addps xmm5, xmm2
paddb xmm0, xmm7
pshufb xmm1, xmm0
mulps xmm5, xmmword [ebp - 0x20]
addps xmm3, xmm1
addps xmm5, xmm4
mulps xmm3, xmmword [ebp - 0x10]
addps xmm5, xmm3
addps xmm5, xmm6
mulps xmm5, xmmword [ebp - 0x60]
addps xmm5, xmmword [ebp - 0x30]
movups xmmword [eax + ecx*4], xmm5
add ecx, 4
mov dword [ebp - 0xa4], ecx
cmp ecx, edi
jae 0x101555f8
mov esi, 0xfffffffe
or eax, 0xffffffff
xorps xmm1, xmm1
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xac], eax
nop dword [eax + eax]
cdq
mov ecx, esi
imul esi, dword [ebp - 0xd0]
xor eax, edx
mov eax, dword [ebp - 0xdc]
xor ecx, edx
sub ecx, edx
add ecx, 3
add ecx, ecx
movss xmm2, dword [eax + ecx*8]
mov ecx, dword [ebp - 0xd4]
lea eax, [ecx + esi*4]
or esi, 0xffffffff
mov dword [ebp - 0x34], eax
mov eax, 0xfffffffe
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xbc], esi
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
mov eax, dword [ebp - 0xdc]
xor ecx, edx
sub ecx, edx
mov edx, dword [ebp - 0xa8]
add ecx, ecx
add edx, dword [ebp - 0xa4]
adc esi, 0
movss xmm0, dword [eax + ecx*8]
test esi, esi
jl 0x10155565
jg 0x10155541
test edx, edx
jb 0x10155565
xor ecx, ecx
cmp esi, ecx
jl 0x1015556b
jg 0x1015554d
cmp edx, edi
jb 0x1015556b
mov eax, edi
shld ecx, eax, 1
add eax, eax
sub eax, edx
sbb ecx, esi
sub eax, 1
mov edx, eax
sbb ecx, 0
mov esi, ecx
jmp 0x10155537
not edx
not esi
jmp 0x10155537
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0xbc]
mulss xmm0, dword [eax + edx*4]
mov eax, dword [ebp - 0xa8]
add eax, 1
mov dword [ebp - 0xa8], eax
mulss xmm0, xmm2
adc esi, ecx
mov dword [ebp - 0xbc], esi
addss xmm1, xmm0
js 0x10155510
jg 0x101555a9
cmp eax, 2
jbe 0x10155510
mov esi, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xac]
add esi, 1
mov dword [ebp - 0xb8], esi
adc eax, 0
mov dword [ebp - 0xac], eax
js 0x101554d0
jg 0x101555d8
cmp esi, 2
jbe 0x101554d0
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xb4]
movss dword [ecx + eax*4], xmm1
inc eax
mov dword [ebp - 0xa4], eax
cmp eax, edi
jb 0x101554b1
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe8]
add edi, 0x18
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], edi
cmp edi, 0x48
jb 0x10154e58
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8