Function at 0x405cf0
Capabilities:
Encode data using xor
Terminate process

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, 0x48
push esi
push edi
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
cmp byte [0x40da5f], 0
movq xmm0, qword [0x40da54]
mov eax, dword [str.DX___AFS__O_XL]
mov esi, dword [0x410470]
movaps xmm4, xmmword [0x40ddc0]
movaps xmm3, xmmword [0x40de10]
movaps xmm5, xmmword [0x40ddb0]
movaps xmm6, xmmword [0x40ddf0]
movaps xmm2, xmmword [0x40dd70]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
je 0x405e64
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x405e33
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 8
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
mov dword [ebp - 4], edx
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, dword [0x40da54]
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm6
xorps xmm2, xmm0
movd dword [ebp - 0x1c], xmm2
movaps xmm2, xmmword [0x40dd80]
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, dword [ebp - 0x18]
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm6
xorps xmm2, xmm0
movd dword [ebp - 0x18], xmm2
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, 0x33
xor byte [ebp + edx - 0x1c], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xc
jl 0x405e33
lea ecx, [ebp - 0x1c]
call fcn.00405c10
test al, al
jne 0x4066d7
mov ax, word [0x40d864]
xor edx, edx
movq xmm0, qword [0x40d85c]
mov word [ebp - 0x14], ax
mov al, byte [0x40d866]
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0x12], al
mov dword [ebp - 4], edx
nop dword [eax + 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, 0x33
xor byte [ebp + edx - 0x1c], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xb
jl 0x405ea0
lea ecx, [ebp - 0x1c]
call fcn.00405c10
test al, al
jne 0x4066d7
mov ecx, dword [0x40dad8]
mov edi, dword [str.R_:_Z_r_IVTNXL]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edi
cmp byte [0x40dadf], al
je 0x406021
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x405fe7
movaps xmm2, xmmword [0x40dd70]
mov edx, 8
movaps xmm3, xmmword [0x40de10]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
mov eax, dword [0x40ddf0]
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
mov dword [ebp - 4], edx
psrad xmm1, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x40ddb0]
psubd xmm2, xmm0
movd xmm0, eax
andps xmm2, xmmword [0x40ddc0]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, ecx
xorps xmm2, xmm0
movd dword [ebp - 0x18], xmm2
movaps xmm2, xmmword [0x40dd80]
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x40ddb0]
psubd xmm2, xmm0
movd xmm0, eax
andps xmm2, xmmword [0x40ddc0]
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, edi
xorps xmm2, xmm0
movd dword [ebp - 0x14], xmm2
cmp edx, 8
jae 0x406021
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, 0x33
xor byte [ebp + edx - 0x18], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 8
jl 0x405ff0
lea ecx, [ebp - 0x18]
call fcn.00405c10
test al, al
jne 0x4066d7
mov ax, word [0x40d97c]
xor edx, edx
mov word [ebp - 0x30], ax
mov al, byte [0x40d97e]
mov byte [ebp - 0x2e], al
mov dword [ebp - 4], edx
movups xmm0, xmmword [0x40d96c]
movups xmmword [ebp - 0x40], xmm0
cmp esi, 2
jl 0x406174
movaps xmm0, xmmword [0x40ddf0]
movaps xmm3, xmmword [0x40de10]
movaps xmm4, xmmword [0x40dd70]
movaps xmm5, xmmword [0x40ddc0]
movaps xmm6, xmmword [0x40ddb0]
movaps xmmword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x20]
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x40]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + edx - 0x40], xmm2
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x3c]
xorps xmm2, xmm0
movd dword [ebp + edx - 0x3c], xmm2
add edx, 8
cmp edx, 0x10
jl 0x406090
mov dword [ebp - 4], edx
cmp edx, 0x13
jge 0x4061b1
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, 0x33
xor byte [ebp + edx - 0x40], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x13
jl 0x406180
lea ecx, [ebp - 0x40]
call fcn.00405c10
test al, al
jne 0x4066d7
cmp byte [0x40d91d], 0
movups xmm0, xmmword [0x40d90c]
mov ax, word [0x40d91c]
mov word [ebp - 0x30], ax
movups xmmword [ebp - 0x40], xmm0
je 0x406341
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x406304
movaps xmm0, xmmword [0x40ddf0]
movaps xmm3, xmmword [0x40de10]
movaps xmm4, xmmword [0x40dd70]
movaps xmm5, xmmword [0x40ddc0]
movaps xmm6, xmmword [0x40ddb0]
movaps xmmword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x20]
nop dword [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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x40]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + edx - 0x40], xmm2
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x3c]
xorps xmm2, xmm0
movd dword [ebp + edx - 0x3c], xmm2
add edx, 8
cmp edx, 0x10
jl 0x406220
mov dword [ebp - 4], edx
cmp edx, 0x12
jge 0x406341
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, 0x33
xor byte [ebp + edx - 0x40], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x12
jl 0x406310
lea ecx, [ebp - 0x40]
call fcn.00405c10
test al, al
jne 0x4066d7
mov ax, word [0x40dabc]
xor edx, edx
movq xmm0, qword [str.ZPTG]
mov word [ebp - 0x14], ax
mov al, byte [0x40dabe]
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0x12], 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, 0x33
xor byte [ebp + edx - 0x1c], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0xb
jl 0x406375
lea ecx, [ebp - 0x1c]
call fcn.00405c10
test al, al
jne 0x4066d7
movups xmm0, xmmword [0x40da60]
mov al, byte [0x40da70]
xor edx, edx
mov byte [ebp - 0x30], al
mov dword [ebp - 4], edx
movups xmmword [ebp - 0x40], xmm0
cmp esi, 2
jl 0x4064e4
movaps xmm0, xmmword [0x40ddf0]
movaps xmm3, xmmword [0x40de10]
movaps xmm4, xmmword [0x40dd70]
movaps xmm5, xmmword [0x40ddc0]
movaps xmm6, xmmword [0x40ddb0]
movaps xmmword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x20]
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x40]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + edx - 0x40], xmm2
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x3c]
xorps xmm2, xmm0
movd dword [ebp + edx - 0x3c], xmm2
add edx, 8
cmp edx, 0x10
jl 0x406400
mov dword [ebp - 4], edx
cmp edx, 0x11
jge 0x406521
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, 0x33
xor byte [ebp + edx - 0x40], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x11
jl 0x4064f0
lea ecx, [ebp - 0x40]
call fcn.00405c10
test al, al
jne 0x4066d7
cmp byte [0x40db45], 0
movups xmm0, xmmword [str.D__RXOK_U_P_Mn_:D]
mov ax, word [0x40db44]
mov word [ebp - 0x30], ax
movups xmmword [ebp - 0x40], xmm0
je 0x4066b1
xor edx, edx
mov dword [ebp - 4], edx
cmp esi, 2
jl 0x406674
movaps xmm0, xmmword [0x40ddf0]
movaps xmm3, xmmword [0x40de10]
movaps xmm4, xmmword [0x40dd70]
movaps xmm5, xmmword [0x40ddc0]
movaps xmm6, xmmword [0x40ddb0]
movaps xmmword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x20]
nop dword [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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x40]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + edx - 0x40], xmm2
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, 5
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + edx - 0x3c]
xorps xmm2, xmm0
movd dword [ebp + edx - 0x3c], xmm2
add edx, 8
cmp edx, 0x10
jl 0x406590
mov dword [ebp - 4], edx
cmp edx, 0x12
jge 0x4066b1
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, 0x33
xor byte [ebp + edx - 0x40], cl
inc edx
mov dword [ebp - 4], edx
cmp edx, 0x12
jl 0x406680
lea ecx, [ebp - 0x40]
call fcn.00405c10
test al, al
jne 0x4066d7
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0040b090
call fcn.0040a3c0
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3