Function at 0x402a10
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 0x47c464
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xd8
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 [0x5947b4], 0xf
lea ecx, [ebp - 0x90]
mov eax, 0x5947a0
mov dword [0x5947b0], 0
cmova eax, dword [0x5947a0]
xorps xmm0, xmm0
push 0xd
push str.DigiDoom_beta
mov byte [eax], 0
mov eax, 0x594574
cmp dword [0x594588], 0xf
mov dword [0x594584], 0
cmova eax, dword [0x594574]
mov byte [eax], 0
mov eax, 0x5947b8
cmp dword [0x5947cc], 0xf
mov dword [0x5947c8], 0
cmova eax, dword [0x5947b8]
mov byte [eax], 0
mov eax, 0x59455c
cmp dword [0x594570], 0xf
mov dword [0x59456c], 0
cmova eax, dword [0x59455c]
mov byte [eax], 0
mov eax, 0x59458c
cmp dword [0x5945a0], 0xf
mov dword [0x59459c], 0
cmova eax, dword [0x59458c]
mov byte [eax], 0
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
call fcn.00404c50
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 [0x48d834]
mov esi, dword [0x5941b0]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm3, xmmword [0x48f750]
movaps xmm6, xmmword [0x48f630]
movups xmmword [ebp - 0xa4], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
movaps xmm0, xmmword [0x48f740]
test al, al
je 0x402cbb
xor ecx, ecx
cmp esi, 2
jl 0x402c90
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
psrad xmm1, 4
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 xmm0, eax
movd dword [ebp + ecx - 0xa4], 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
psrad xmm1, 4
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 - 0xa0]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa0], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x402ba0
jmp 0x402cbb
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0xa4], dl
inc ecx
cmp ecx, 0x10
jl 0x402c90
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xa4]
call fcn.00404850
mov ecx, 0x5945a8
call fcn.00408d70
cmp byte [0x594740], 0
jne 0x402d4e
mov eax, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00403b10
mov edi, eax
cmp byte [edi + 0xa], 0
je 0x402d22
xor ecx, ecx
mov eax, 0x51eb851f
lea esi, [edi + ecx]
mul ecx
shr edx, 4
movsx eax, dl
mov dl, cl
imul eax, eax, 0x32
inc ecx
sub dl, al
add dl, 0x37
xor byte [esi], dl
cmp ecx, 0xb
jl 0x402d00
mov ecx, dword [ebp - 0xbc]
mov edx, edi
call fcn.00404850
mov edx, 0x594744
mov ecx, eax
call fcn.00404a30
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 [0x48d948]
mov eax, dword [0x48d970]
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov al, byte [0x48d974]
mov byte [ebp - 0x4c], al
movups xmmword [ebp - 0x78], xmm0
movups xmm0, xmmword [0x48d958]
movups xmmword [ebp - 0x68], xmm0
movq xmm0, qword [0x48d968]
movq qword [ebp - 0x58], xmm0
cmp esi, 2
jl 0x402ea0
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f750]
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
psrad xmm1, 4
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
psrad xmm1, 4
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 0x402dc0
cmp ecx, 0x2d
jge 0x402ec8
nop
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0x78], dl
inc ecx
cmp ecx, 0x2d
jl 0x402ea0
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.00404850
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 0x40364a
sub eax, 1
je 0x4030ec
movups xmm0, xmmword [0x48d8e8]
mov eax, dword [0x48d908]
xor ecx, ecx
cmp dword [0x5941b0], 2
movups xmmword [ebp - 0xb8], xmm0
mov dword [ebp - 0x98], eax
movups xmm0, xmmword [0x48d8f8]
mov ax, word [0x48d90c]
mov word [ebp - 0x94], ax
movups xmmword [ebp - 0xa8], xmm0
jl 0x4030a0
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f750]
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
psrad xmm1, 4
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 xmm0, eax
movd dword [ebp + ecx - 0xb8], 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
psrad xmm1, 4
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 - 0xb4]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xb4], xmm2
add ecx, 8
cmp ecx, 0x20
jl 0x402fb2
cmp ecx, 0x26
jge 0x4030cb
nop dword [eax]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0xb8], dl
inc ecx
cmp ecx, 0x26
jl 0x4030a0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xb8]
call fcn.00404850
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4039c4
cmp byte [0x48d8cb], 0
movups xmm0, xmmword [0x48d8b8]
mov eax, dword [0x48d8c8]
mov esi, dword [0x5941b0]
movups xmmword [ebp - 0xa8], xmm0
mov dword [ebp - 0x98], eax
je 0x40326b
xor ecx, ecx
cmp esi, 2
jl 0x403240
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f750]
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
psrad xmm1, 4
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
psrad xmm1, 4
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 0x403153
cmp ecx, 0x14
jge 0x40326b
nop dword [eax]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0xa8], dl
inc ecx
cmp ecx, 0x14
jl 0x403240
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.00404850
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.00404a50
mov ax, word [0x48d860]
xor ecx, ecx
mov word [ebp - 0x98], ax
mov al, byte [0x48d862]
mov byte [ebp - 0x96], al
movups xmm0, xmmword [0x48d850]
movups xmmword [ebp - 0xa8], xmm0
cmp esi, 2
jl 0x4033e0
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f750]
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 + 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
psrad xmm1, 4
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
psrad xmm1, 4
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 0x4032f0
cmp ecx, 0x13
jge 0x40340b
nop word [eax + eax]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0xa8], dl
inc ecx
cmp ecx, 0x13
jl 0x4033e0
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.00404850
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.00404a50
cmp byte [0x48d989], 0
movups xmm0, xmmword [0x48d978]
mov ax, word [0x48d988]
mov word [ebp - 0x94], ax
movups xmmword [ebp - 0xa4], xmm0
je 0x4035ab
xor ecx, ecx
cmp esi, 2
jl 0x403580
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f750]
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
psrad xmm1, 4
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 xmm0, eax
movd dword [ebp + ecx - 0xa4], 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
psrad xmm1, 4
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 - 0xa0]
xorps xmm2, xmm0
movd dword [ebp + ecx - 0xa0], xmm2
add ecx, 8
cmp ecx, 0x10
jl 0x403490
cmp ecx, 0x12
jge 0x4035ab
nop word [eax + eax]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0xa4], dl
inc ecx
cmp ecx, 0x12
jl 0x403580
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0xa4]
call fcn.00404850
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.00404a50
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
mov dword [ebp - 0xbc], esp
push 0
movups xmmword [ecx], xmm0
push 0x48d7b9
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00404c50
sub esp, 0x18
mov byte [ebp - 4], 5
lea eax, [ebp - 0x64]
mov dword [ebp - 0xdc], esp
mov ecx, esp
push eax
call fcn.00403d70
sub esp, 0x18
mov byte [ebp - 4], 6
lea eax, [ebp - 0x30]
mov dword [ebp - 0xd4], esp
mov ecx, esp
push eax
call fcn.00403d70
sub esp, 0x18
mov byte [ebp - 4], 7
lea eax, [ebp - 0x48]
mov ecx, esp
push eax
call fcn.00403d70
mov ecx, 0x5945a8
mov byte [ebp - 4], 3
call fcn.0040d200
jmp 0x4039be
cmp byte [0x48d8cb], 0
movups xmm0, xmmword [0x48d8b8]
mov eax, dword [0x48d8c8]
mov dword [ebp - 0x98], eax
movups xmmword [ebp - 0xa8], xmm0
je 0x4037cb
xor ecx, ecx
cmp dword [0x5941b0], 2
jl 0x4037a0
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f750]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
nop
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
psrad xmm1, 4
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
psrad xmm1, 4
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 0x4036b0
cmp ecx, 0x14
jge 0x4037cb
nop word [eax + eax]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0xa8], dl
inc ecx
cmp ecx, 0x14
jl 0x4037a0
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.00404850
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.00404a50
mov ax, word [0x48d860]
xor ecx, ecx
cmp dword [0x5941b0], 2
movups xmm0, xmmword [0x48d850]
mov word [ebp - 0x98], ax
mov al, byte [0x48d862]
movups xmmword [ebp - 0xa8], xmm0
mov byte [ebp - 0x96], al
jl 0x403940
movaps xmm0, xmmword [0x48f740]
movaps xmm3, xmmword [0x48f750]
movaps xmm4, xmmword [0x48f6d0]
movaps xmm5, xmmword [0x48f610]
movaps xmm6, xmmword [0x48f630]
movaps xmmword [ebp - 0xd0], xmm0
mov edx, dword [ebp - 0xd0]
nop
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
psrad xmm1, 4
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
psrad xmm1, 4
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 0x403850
cmp ecx, 0x13
jge 0x40396b
nop word [eax + eax]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x37
xor byte [ebp + ecx - 0xa8], dl
inc ecx
cmp ecx, 0x13
jl 0x403940
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.00404850
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.00404a50
sub esp, 0x18
lea eax, [ebp - 0x30]
mov ecx, esp
mov dword [ebp - 0xd8], esp
push eax
call fcn.00403d70
sub esp, 0x18
mov byte [ebp - 4], 4
lea eax, [ebp - 0x48]
mov ecx, esp
push eax
call fcn.00403d70
mov ecx, 0x5945a8
mov byte [ebp - 4], 3
call fcn.0040bfc0
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
cmp byte [0x594740], 0
jne 0x403a1f
mov eax, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xcc]
push eax
call fcn.00403b10
mov edi, eax
cmp byte [edi + 0xa], 0
je 0x403a12
xor ecx, ecx
nop
mov eax, 0x51eb851f
lea esi, [ecx + edi]
mul ecx
shr edx, 4
movsx eax, dl
mov dl, cl
imul eax, eax, 0x32
inc ecx
sub dl, al
add dl, 0x37
xor byte [esi], dl
cmp ecx, 0xb
jl 0x4039f0
mov ecx, dword [ebp - 0xbc]
mov edx, edi
jmp 0x402d2a
call fcn.00402790
mov ecx, dword [ebp - 0x50]
cmp ecx, 0xf
jbe 0x403a58
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403a4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403adf
push ecx
push edx
call fcn.0047af91
add esp, 8
cmp esi, 0xf
jbe 0x403a87
mov edx, dword [ebp - 0x30]
lea ecx, [esi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x403a7d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403adf
push ecx
push edx
call fcn.0047af91
add esp, 8
cmp edi, 0xf
jbe 0x403ab6
mov edx, dword [ebp - 0x48]
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x403aac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403adf
push ecx
push edx
call fcn.0047af91
add esp, 8
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0xf
jbe 0x403aef
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403ae5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x403ae5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0047af91
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.0047ad02
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret