Function at 0x402a60
Capabilities:
Encode data using xor
Set console window title
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
push 0xffffffffffffffff
push 0x47c674
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xc8
mov eax, dword [0x496400]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x506db4], 0xf
lea ecx, [ebp - 0x90]
mov eax, 0x506da0
mov dword [0x506db0], 0
cmova eax, dword [0x506da0]
xorps xmm0, xmm0
push 0xd
push str.DigiDoom_beta
mov byte [eax], 0
mov eax, 0x506b74
cmp dword [0x506b88], 0xf
mov dword [0x506b84], 0
cmova eax, dword [0x506b74]
mov byte [eax], 0
mov eax, 0x506db8
cmp dword [0x506dcc], 0xf
mov dword [0x506dc8], 0
cmova eax, dword [0x506db8]
mov byte [eax], 0
mov eax, 0x506b5c
cmp dword [0x506b70], 0xf
mov dword [0x506b6c], 0
cmova eax, dword [0x506b5c]
mov byte [eax], 0
mov eax, 0x506b8c
cmp dword [0x506ba0], 0xf
mov dword [0x506b9c], 0
cmova eax, dword [0x506b8c]
mov byte [eax], 0
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
call fcn.00404e20
mov dword [ebp - 4], 0
lea eax, [ebp - 0x90]
cmp dword [ebp - 0x7c], 0xf
cmova eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
movups xmm0, xmmword [0x48d97c]
mov esi, dword [0x5067b0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm6, xmmword [0x48f630]
movups xmmword [ebp - 0xa8], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
movaps xmm0, xmmword [0x48f740]
test al, al
je 0x402d1c
xor ecx, ecx
mov dword [ebp - 0x94], ecx
cmp esi, 2
jl 0x402ce0
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa8]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0xa8], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa4]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa4], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x402bf0
jmp 0x402d1c
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0xa8], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x10
jl 0x402ce0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xa8]
call fcn.00404a20
mov ecx, 0x506ba8
call fcn.00408f40
cmp byte [0x506d40], 0
jne 0x402dd9
mov eax, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00403ce0
mov edi, eax
cmp byte [edi + 0xa], 0
je 0x402dad
xor ecx, ecx
mov dword [ebp - 0x94], ecx
nop dword [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 - 0x94]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
add al, 0x38
inc ecx
xor byte [esi], al
mov dword [ebp - 0x94], ecx
cmp ecx, 0xb
jl 0x402d70
mov ecx, dword [ebp - 0xc0]
mov edx, edi
call fcn.00404a20
mov edx, 0x506d44
mov ecx, eax
call fcn.00404c00
push 0x5dc
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
movups xmm0, xmmword [0x48d93c]
mov eax, dword [0x48d964]
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov al, byte [0x48d968]
mov byte [ebp - 0x4c], al
mov dword [ebp - 0x94], ecx
movups xmmword [ebp - 0x78], xmm0
movups xmm0, xmmword [0x48d94c]
movups xmmword [ebp - 0x68], xmm0
movq xmm0, qword [0x48d95c]
movq qword [ebp - 0x58], xmm0
cmp esi, 2
jl 0x402f40
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0x78]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0x78], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0x74]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0x74], xmm2
add ecx, 8
cmp ecx, 0x28
jl 0x402e50
mov dword [ebp - 0x94], ecx
cmp ecx, 0x2d
jge 0x402f79
nop dword [eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0x78], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x2d
jl 0x402f40
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0x78]
call fcn.00404a20
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0
mov edi, 0xf
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x48], 0
mov esi, edi
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1c], esi
mov byte [ebp - 0x30], 0
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], edi
mov byte [ebp - 0x64], 0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 3
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::operator___int__]
mov eax, dword [ebp - 0x18]
sub eax, 1
je 0x40379b
sub eax, 1
je 0x4031cd
movups xmm0, xmmword [0x48d840]
mov eax, dword [0x48d860]
xor ecx, ecx
cmp dword [0x5067b0], 2
movups xmmword [ebp - 0xbc], xmm0
mov dword [ebp - 0x9c], eax
movups xmm0, xmmword [0x48d850]
mov ax, word [0x48d864]
mov word [ebp - 0x98], ax
movups xmmword [ebp - 0xac], xmm0
mov dword [ebp - 0x94], ecx
jl 0x403170
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xbc]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0xbc], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xb8]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xb8], xmm2
add ecx, 8
cmp ecx, 0x20
jl 0x403070
mov dword [ebp - 0x94], ecx
cmp ecx, 0x26
jge 0x4031ac
nop dword [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0xbc], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x26
jl 0x403170
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xbc]
call fcn.00404a20
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x403b75
cmp byte [0x48d90f], 0
movups xmm0, xmmword [0x48d8fc]
mov eax, dword [0x48d90c]
mov esi, dword [0x5067b0]
movups xmmword [ebp - 0xac], xmm0
mov dword [ebp - 0x9c], eax
je 0x40337c
xor ecx, ecx
mov dword [ebp - 0x94], ecx
cmp esi, 2
jl 0x403340
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xac]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0xac], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa8]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa8], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x403240
mov dword [ebp - 0x94], ecx
cmp ecx, 0x14
jge 0x40337c
nop dword [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0xac], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x14
jl 0x403340
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xac]
call fcn.00404a20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [ebp - 0x48]
call fcn.00404c20
mov ax, word [0x48d8b4]
xor ecx, ecx
mov word [ebp - 0x9c], ax
mov al, byte [0x48d8b6]
mov byte [ebp - 0x9a], al
mov dword [ebp - 0x94], ecx
movups xmm0, xmmword [0x48d8a4]
movups xmmword [ebp - 0xac], xmm0
cmp esi, 2
jl 0x403500
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xac]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0xac], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa8]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa8], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x403402
mov dword [ebp - 0x94], ecx
cmp ecx, 0x13
jge 0x40353c
nop word [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0xac], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x13
jl 0x403500
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xac]
call fcn.00404a20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [ebp - 0x30]
call fcn.00404c20
cmp byte [0x48d889], 0
movups xmm0, xmmword [0x48d878]
mov ax, word [0x48d888]
mov word [ebp - 0x98], ax
movups xmmword [ebp - 0xa8], xmm0
je 0x4036fc
xor ecx, ecx
mov dword [ebp - 0x94], ecx
cmp esi, 2
jl 0x4036c0
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa8]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0xa8], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa4]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa4], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x4035c4
mov dword [ebp - 0x94], ecx
cmp ecx, 0x12
jge 0x4036fc
nop dword [eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0xa8], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x12
jl 0x4036c0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xa8]
call fcn.00404a20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [ebp - 0x64]
call fcn.00404c20
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
mov dword [ebp - 0xc0], esp
push 0
movups xmmword [ecx], xmm0
push 0x48d7b9
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00404e20
sub esp, 0x18
mov byte [ebp - 4], 5
lea eax, [ebp - 0x64]
mov dword [ebp - 0x94], esp
mov ecx, esp
push eax
call fcn.00403f40
sub esp, 0x18
mov byte [ebp - 4], 6
lea eax, [ebp - 0x30]
mov dword [ebp - 0xd4], esp
mov ecx, esp
push eax
call fcn.00403f40
sub esp, 0x18
mov byte [ebp - 4], 7
lea eax, [ebp - 0x48]
mov ecx, esp
push eax
call fcn.00403f40
mov ecx, 0x506ba8
mov byte [ebp - 4], 3
call fcn.0040d3d0
jmp 0x403b6f
cmp byte [0x48d90f], 0
movups xmm0, xmmword [0x48d8fc]
mov eax, dword [0x48d90c]
mov dword [ebp - 0x9c], eax
movups xmmword [ebp - 0xac], xmm0
je 0x40394c
xor ecx, ecx
cmp dword [0x5067b0], 2
mov dword [ebp - 0x94], ecx
jl 0x403910
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xac]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0xac], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa8]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa8], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x403810
mov dword [ebp - 0x94], ecx
cmp ecx, 0x14
jge 0x40394c
nop dword [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0xac], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x14
jl 0x403910
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xac]
call fcn.00404a20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [ebp - 0x48]
call fcn.00404c20
mov ax, word [0x48d8b4]
xor ecx, ecx
cmp dword [0x5067b0], 2
movups xmm0, xmmword [0x48d8a4]
mov word [ebp - 0x9c], ax
mov al, byte [0x48d8b6]
movups xmmword [ebp - 0xac], xmm0
mov byte [ebp - 0x9a], al
mov dword [ebp - 0x94], ecx
jl 0x403ae0
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f7d0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xac]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + ecx - 0xac], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
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, edx
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + ecx - 0xa8]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa8], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x4039e0
mov dword [ebp - 0x94], ecx
cmp ecx, 0x13
jge 0x403b1c
nop dword [eax + eax]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov cl, 1
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov al, cl
shl al, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
shl al, 3
add al, cl
xor byte [ebp + ecx - 0xac], al
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, 0x13
jl 0x403ae0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xac]
call fcn.00404a20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [ebp - 0x30]
call fcn.00404c20
sub esp, 0x18
lea eax, [ebp - 0x30]
mov ecx, esp
mov dword [ebp - 0xd8], esp
push eax
call fcn.00403f40
sub esp, 0x18
mov byte [ebp - 4], 4
lea eax, [ebp - 0x48]
mov ecx, esp
push eax
call fcn.00403f40
mov ecx, 0x506ba8
mov byte [ebp - 4], 3
call fcn.0040c190
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
cmp byte [0x506d40], 0
jne 0x403bef
mov eax, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00403ce0
mov edi, eax
cmp byte [edi + 0xa], 0
je 0x403be2
xor ecx, ecx
mov dword [ebp - 0x94], ecx
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 - 0x94]
shl cl, 3
sub al, cl
mov ecx, dword [ebp - 0x94]
add al, 0x38
inc ecx
xor byte [esi], al
mov dword [ebp - 0x94], ecx
cmp ecx, 0xb
jl 0x403ba5
mov ecx, dword [ebp - 0xc0]
mov edx, edi
jmp 0x402db5
call fcn.004027e0
mov ecx, dword [ebp - 0x50]
cmp ecx, 0xf
jbe 0x403c28
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403c1e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403caf
push ecx
push edx
call fcn.0047b1a1
add esp, 8
cmp esi, 0xf
jbe 0x403c57
mov edx, dword [ebp - 0x30]
lea ecx, [esi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x403c4d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403caf
push ecx
push edx
call fcn.0047b1a1
add esp, 8
cmp edi, 0xf
jbe 0x403c86
mov edx, dword [ebp - 0x48]
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x403c7c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403caf
push ecx
push edx
call fcn.0047b1a1
add esp, 8
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0xf
jbe 0x403cbf
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403cb5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x403cb5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0047b1a1
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047af12
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret