Function at 0x40ff90
Capabilities:
Create thread
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
push 0xffffffffffffffff
push 0x46315b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x458
mov eax, dword [0x47b040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push dword [0x53db6c]
mov ecx, dword [0x53dbfc]
lea eax, [ebp - 0x158]
push eax
call fcn.004097d0
mov edi, dword [ebp - 0x154]
cmp edi, 0x400
jae 0x4101ee
lea eax, [ebp - 0x158]
push eax
call fcn.00410520
mov dword [ebp - 0x14c], eax
cmp byte [eax + 0xa], 0
je 0x410052
xor ecx, ecx
mov dword [ebp - 0x164], ecx
nop dword [eax + eax]
lea esi, [eax + ecx]
mov eax, 0x8d3dcb09
mul ecx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
sub cl, al
mov eax, dword [ebp - 0x14c]
add cl, 0x33
xor byte [esi], cl
mov ecx, dword [ebp - 0x164]
inc ecx
mov dword [ebp - 0x164], ecx
cmp ecx, 0xb
jl 0x410020
lea eax, [ebp - 0x1c4]
push eax
call fcn.00410500
mov edi, eax
cmp byte [edi + 0x3e], 0
je 0x4101d5
xor ecx, ecx
cmp dword [0x53d9f0], 2
mov dword [ebp - 0x164], ecx
jl 0x4101a0
movaps xmm0, xmmword [0x4751d0]
lea eax, [ecx + 4]
movaps xmm4, xmmword [0x4750c0]
movaps xmm3, xmmword [0x475500]
movaps xmm5, xmmword [0x475110]
movaps xmm6, xmmword [0x475170]
movaps xmmword [ebp - 0x170], xmm0
mov edx, dword [ebp - 0x170]
movd xmm0, ecx
add ecx, 8
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, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [eax + edi - 4]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [eax + edi - 4], 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, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [edi + eax]
xorps xmm2, xmm0
movd dword [edi + eax], xmm2
add eax, 8
cmp eax, 0x3c
jl 0x4100b2
mov dword [ebp - 0x164], ecx
cmp ecx, 0x3f
jge 0x4101d5
nop dword [eax]
mov eax, 0x8d3dcb09
lea esi, [edi + ecx]
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, 0x33
xor byte [esi], cl
mov ecx, dword [ebp - 0x164]
inc ecx
mov dword [ebp - 0x164], ecx
cmp ecx, 0x3f
jl 0x4101a0
push 0
push dword [ebp - 0x14c]
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
cmp dword [0x53db6c], 3
jne 0x4102f4
push 0x47b0f8
lea eax, [ebp - 0x148]
push str._sBinariesWin32_sf2.exe
push eax
call fcn.00413e90
mov ecx, 0x2d
lea edi, [ebp - 0x280]
mov esi, str.__languageEUR__STARTFROMLAUNCHER__multilanguageEUR__ServerIP135.125.173.51__ServerPort27932__ClanServerIP135.125.173.49__ClanServerPort8383__MessengerServerIP135.125.173.48
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x4b
lea esi, [ebp - 0x148]
lea edi, [ebp - 0x460]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x2d
lea esi, [ebp - 0x280]
lea edi, [ebp - 0x334]
rep movsd dword es:[edi], dword [esi]
push 0x1e0
call fcn.00461797
mov ecx, 0x78
mov dword [ebp - 0x14c], eax
lea esi, [ebp - 0x460]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x164]
mov dword [ebp - 4], 0
push ecx
push 0
push eax
push 0x41d210
push 0
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
add esp, 0x28
mov dword [ebp - 0x168], eax
test eax, eax
je 0x4104ea
mov dword [ebp - 4], 1
cmp dword [ebp - 0x164], 0
jne 0x4102b1
push 1
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
call dword [sym.imp.MSVCP140.dll__Thrd_id]
mov ecx, dword [ebp - 0x164]
cmp ecx, eax
jne 0x4102c9
push 5
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
push 0
push ecx
push dword [ebp - 0x168]
call dword [sym.imp.MSVCP140.dll__Thrd_join]
add esp, 0xc
test eax, eax
je 0x4102e7
push 2
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x154]
movups xmm0, xmmword [str.zZ_STLPT_]
mov eax, dword [0x46d4ac]
xor ecx, ecx
cmp dword [0x53d9f0], 2
movups xmmword [ebp - 0x184], xmm0
mov dword [ebp - 0x174], eax
jl 0x410442
movaps xmm0, xmmword [0x4751d0]
lea eax, [ecx + 4]
movaps xmm4, xmmword [0x4750c0]
movaps xmm3, xmmword [0x475500]
movaps xmm5, xmmword [0x475110]
movaps xmm6, xmmword [0x475170]
movaps xmmword [ebp - 0x170], xmm0
mov edx, dword [ebp - 0x170]
nop
movd xmm0, ecx
add ecx, 8
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, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + eax - 0x188]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [ebp + eax - 0x188], 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, xmm5
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [ebp + eax - 0x184]
xorps xmm2, xmm0
movd dword [ebp + eax - 0x184], xmm2
add eax, 8
cmp eax, 0x14
jl 0x410350
cmp ecx, 0x14
jge 0x41046f
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x3a
sub dl, al
add dl, 0x33
xor byte [ebp + ecx - 0x184], dl
inc ecx
cmp ecx, 0x14
jl 0x410442
lea eax, [ebp - 0x184]
push eax
call fcn.00404fa0
mov eax, dword [0x53db44]
add esp, 4
mov ecx, dword [0x53db48]
mov esi, dword [0x53db6c]
cmp eax, ecx
je 0x4104a0
cmp dword [eax], esi
je 0x4104a0
add eax, 0xc4
cmp eax, ecx
jne 0x410493
sub esp, 0x18
add eax, 0x94
mov ecx, esp
push eax
call fcn.00412010
mov ecx, dword [ebp - 0x150]
mov edx, edi
push esi
push dword [ebp - 0x158]
call fcn.0045f8f0
add esp, 0x20
mov byte [0x53db94], al
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.00461666
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 6
mov dword [ebp - 0x164], 0
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3