Function at 0x140044ac0
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1f8
movapd xmmword [rsp + 0x1e0], xmm9
movapd xmmword [rsp + 0x1d0], xmm8
movapd xmmword [rsp + 0x1c0], xmm7
movapd xmmword [rsp + 0x1b0], xmm6
mov rdi, rdx
mov rax, rcx
mov rcx, qword [0x140516758]
xor rcx, rsp
mov qword [rsp + 0x1a8], rcx
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov r8d, 4
call rax
test rax, rax
je 0x140045fbc
mov rsi, rax
mov dword [rsp + 0x8c], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x78], 0
movsd xmm1, qword [rsp + 0x78]
movsd xmm0, qword [0x1404d7ac0]
ucomisd xmm0, xmm1
jbe 0x140044c82
movabs rax, 0x8000000000000000
movapd xmm1, xmmword [0x1404d7ad0]
movapd xmm2, xmmword [0x1404d7ae0]
movsd xmm3, qword [0x1404d7af0]
movsd xmm4, qword [0x1404d7af8]
movsd xmm5, qword [0x1404d7b00]
jmp 0x140044be0
movsd xmm6, qword [rsp + 0x78]
addsd xmm6, xmm5
movsd qword [rsp + 0x78], xmm6
movsd xmm6, qword [rsp + 0x78]
ucomisd xmm0, xmm6
jbe 0x140044c82
movsd xmm6, qword [rsp + 0x78]
movsd xmm7, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x78]
xor rcx, rax
movq xmm8, rcx
movsd xmm9, qword [rsp + 0x78]
mulsd xmm9, xmm8
shufpd xmm9, xmm2, 2
movsd xmm8, qword [rsp + 0x78]
unpcklpd xmm6, xmm8
movsd xmm8, qword [rsp + 0x78]
unpcklpd xmm7, xmm8
mulpd xmm6, xmm1
mulpd xmm6, xmm7
addpd xmm6, xmm9
movapd xmm7, xmm6
unpckhpd xmm7, xmm6
divsd xmm6, xmm7
addsd xmm6, qword [rsp + 0x80]
movsd qword [rsp + 0x80], xmm6
movsd xmm6, qword [rsp + 0x80]
ucomisd xmm6, xmm3
jbe 0x140044bc0
movsd xmm6, qword [rsp + 0x78]
mulsd xmm6, xmm4
addsd xmm6, qword [rsp + 0x80]
movsd qword [rsp + 0x80], xmm6
jmp 0x140044bc0
movsd xmm0, qword [rsp + 0x80]
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x140044ca4
call fcn.14049e9a8
call 0x14049e980
jmp 0x140045d87
movaps xmm0, xmmword [0x1404d7900]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm0, xmmword [0x1404d7910]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [0x1404d7920]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmm0, xmmword [0x1404d7930]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [0x1404d7940]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [0x1404d7950]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [0x1404d7960]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [0x1404d7970]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [0x1404d7980]
movaps xmmword [rsp + 0x110], xmm0
movaps xmm0, xmmword [0x1404d7990]
movaps xmmword [rsp + 0x120], xmm0
movaps xmm0, xmmword [0x1404d79a0]
movaps xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [0x1404d79b0]
movaps xmmword [rsp + 0x140], xmm0
movaps xmm0, xmmword [0x1404d79c0]
movaps xmmword [rsp + 0x150], xmm0
movaps xmm0, xmmword [0x1404d79d0]
movaps xmmword [rsp + 0x160], xmm0
movaps xmm0, xmmword [0x1404d79e0]
movaps xmmword [rsp + 0x170], xmm0
movapd xmm0, xmmword [0x1404d79f0]
movapd xmmword [rsp + 0x180], xmm0
xor ecx, ecx
mov r8d, 0xff
lea r9, [fcn.14049e9a8]
lea r10, [0x140046004]
xor ebx, ebx
xor r11d, r11d
jmp 0x140044dc9
dec r8
je 0x140044f15
mov edx, 1
cmp r8, 2
jb 0x140044de9
mov edx, 1
nop dword [rax]
add edx, edx
inc edx
cmp r8, rdx
ja 0x140044de0
mov ebp, ntohs
nop
cmp r11d, 3
ja case.default.0x140044e00
mov eax, r11d
movsxd rax, dword [r10 + rax*4]
add rax, r10
jmp rax
movzx ebx, bl
movsd xmm0, qword [rsp + 0x80]
cvttsd2si rax, xmm0
jmp 0x140044e90
movzx ebx, bl
lea eax, [r11 - 4]
movzx eax, byte [rax + r9]
jmp 0x140044e90
movsd xmm0, qword [rsp + 0x80]
cvttsd2si rax, xmm0
movzx ebx, bl
shr eax, 8
jmp 0x140044e90
movsd xmm0, qword [rsp + 0x80]
cvttsd2si rax, xmm0
movzx ebx, bl
shr eax, 0x10
jmp 0x140044e90
movsd xmm0, qword [rsp + 0x80]
cvttsd2si rax, xmm0
movzx ebx, bl
shr eax, 0x18
nop word cs:[rax + rax]
add al, byte [rsp + rbx + 0x90]
inc r11d
lea ebx, [rax + 0x1b]
cmp r11d, 0x1b
cmovae r11d, ecx
movzx eax, al
movzx ebx, bl
cmovb ebx, eax
mov eax, ebx
and eax, edx
movzx eax, al
dec ebp
je 0x140044ed0
mov r14d, eax
cmp r8, r14
jb 0x140044df0
jmp 0x140044ed7
xor edx, edx
div r8d
mov eax, edx
mov eax, eax
cmp r8, rax
je 0x140044dc0
movzx edx, byte [rsp + r8 + 0x90]
xor dl, byte [rsp + rax + 0x90]
mov byte [rsp + r8 + 0x90], dl
xor dl, byte [rsp + rax + 0x90]
mov byte [rsp + rax + 0x90], dl
xor byte [rsp + r8 + 0x90], dl
jmp 0x140044dc0
movzx edx, byte [rsp + 0x91]
movzx r9d, byte [rsp + 0x95]
movzx r10d, byte [rsp + 0x97]
movzx eax, bl
movzx r11d, byte [rsp + rax + 0x90]
movzx ecx, byte [0x14049e980]
movzx eax, byte [fcn.14049e981]
add al, 0x71
shl cl, 4
add cl, 0xf0
or cl, al
movzx eax, byte [rsp + r11 + 0x90]
movzx ebx, al
movzx r8d, byte [rsp + rdx + 0x90]
add r8b, byte [rsp + 0x93]
lea ebp, [rdx + 1]
movabs r14, 0x40d0590000000000
mov qword [rsp + 0x190], r14
movabs r14, 0x40ca280000000000
mov qword [rsp + 0x50], r14
movabs r14, 0x40c39e0000000000
mov qword [rsp + 0x48], r14
movabs r14, 0x40ba280000000000
mov qword [rsp + 0x60], r14
movabs r14, 0x40aa280000000000
mov qword [rsp + 0x58], r14
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x48]
subsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x48]
mulsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x48]
ucomisd xmm0, xmm1
movzx r14d, r8b
jbe 0x1400450b3
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x190]
subsd xmm1, xmm0
movsd qword [rsp + 0x190], xmm1
movsd xmm0, qword [rsp + 0x48]
addsd xmm0, qword [rsp + 0x190]
movsd qword [rsp + 0x190], xmm0
movsd xmm0, qword [rsp + 0x190]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x190]
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
jmp 0x14004512e
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x58]
subsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x58]
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movzx r15d, byte [rsp + r14 + 0x90]
mov byte [rsp + r11 + 0x90], r15b
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x58]
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
subsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x48]
movsd qword [rsp + 0x48], xmm0
mov qword [rsp + 0x70], rdi
movzx r15d, byte [rsp + r10 + 0x90]
mov byte [rsp + r14 + 0x90], r15b
movzx r15d, bpl
movzx ebp, byte [rsp + r15 + 0x90]
mov byte [rsp + r10 + 0x90], bpl
mov byte [rsp + r15 + 0x90], al
movzx ebp, byte [rsp + r14 + 0x90]
add bpl, al
movzx r14d, bpl
movzx r11d, byte [rsp + r11 + 0x90]
add r11b, byte [rsp + r10 + 0x90]
add r9b, byte [rsp + rbx + 0x90]
movzx ebx, byte [rsp + r14 + 0x90]
movzx r9d, r9b
add r11b, byte [rsp + r9 + 0x90]
movzx r10d, r11b
movzx r10d, byte [rsp + r10 + 0x90]
xor bl, byte [rsp + r10 + 0x90]
xor bl, cl
movzx r10d, byte [0x14049e982]
movzx r11d, byte [0x14049e983]
add r11b, 0x71
shl r10b, 4
add r10b, 0xf0
or r10b, r11b
movzx ecx, cl
movzx r11d, byte [rsp + rcx + 0x90]
lea ebp, [rdx + 2]
add r8b, al
movzx eax, r8b
movzx r8d, byte [rsp + rax + 0x90]
mov byte [rsp + rcx + 0x90], r8b
movzx ebx, bl
movzx r8d, byte [rsp + rbx + 0x90]
mov byte [rsp + rax + 0x90], r8b
movzx r8d, bpl
movzx ebp, byte [rsp + r8 + 0x90]
mov byte [rsp + rbx + 0x90], bpl
mov byte [rsp + r8 + 0x90], r11b
add r9b, byte [rsp + r11 + 0x90]
movzx r8d, byte [rsp + rax + 0x90]
add r8b, r11b
movzx r8d, r8b
movzx r8d, byte [rsp + r8 + 0x90]
movzx ebp, byte [rsp + rcx + 0x90]
add bpl, byte [rsp + rbx + 0x90]
movzx ecx, r9b
add bpl, byte [rsp + rcx + 0x90]
movzx r9d, bpl
movzx r9d, byte [rsp + r9 + 0x90]
xor r8b, byte [rsp + r9 + 0x90]
xor r8b, r10b
mov byte [rsp + 0x190], r8b
movzx r9d, byte [0x14049e984]
movzx ebx, byte [0x14049e985]
add bl, 0x71
shl r9b, 4
add r9b, 0xf0
or r9b, bl
movzx r10d, r10b
movzx ebx, byte [rsp + r10 + 0x90]
lea ebp, [rdx + 3]
add al, r11b
movzx r11d, al
movzx r14d, byte [rsp + r11 + 0x90]
mov byte [rsp + r10 + 0x90], r14b
movzx r8d, r8b
movzx r14d, byte [rsp + r8 + 0x90]
mov byte [rsp + r11 + 0x90], r14b
movzx r14d, bpl
movzx ebp, byte [rsp + r14 + 0x90]
mov byte [rsp + r8 + 0x90], bpl
mov byte [rsp + r14 + 0x90], bl
add cl, byte [rsp + rbx + 0x90]
movzx r11d, byte [rsp + r11 + 0x90]
add r11b, bl
movzx r11d, r11b
movzx r10d, byte [rsp + r10 + 0x90]
add r10b, byte [rsp + r8 + 0x90]
movzx ebp, byte [rsp + r11 + 0x90]
movzx r8d, cl
add r10b, byte [rsp + r8 + 0x90]
movzx r8d, r10b
movzx r8d, byte [rsp + r8 + 0x90]
xor bpl, byte [rsp + r8 + 0x90]
xor bpl, r9b
mov byte [rsp + 0x191], bpl
xor r11d, r11d
lea r8, [0x14049e980]
nop dword [rax + rax]
add al, bl
movzx r10d, r9b
movzx r9d, byte [r8 + r11*2 + 6]
movzx ebx, byte [r8 + r11*2 + 7]
add bl, 0x71
shl r9b, 4
add r9b, 0xf0
or r9b, bl
movzx ebx, byte [rsp + r10 + 0x90]
lea r14d, [rdx + r11]
add r14d, 4
movzx r15d, al
movzx r12d, byte [rsp + r15 + 0x90]
mov byte [rsp + r10 + 0x90], r12b
movzx r12d, bpl
movzx ebp, byte [rsp + r12 + 0x90]
mov byte [rsp + r15 + 0x90], bpl
movzx r14d, r14b
movzx ebp, byte [rsp + r14 + 0x90]
mov byte [rsp + r12 + 0x90], bpl
mov byte [rsp + r14 + 0x90], bl
add cl, byte [rsp + rbx + 0x90]
movzx ebp, byte [rsp + r15 + 0x90]
add bpl, bl
movzx r14d, bpl
movzx r10d, byte [rsp + r10 + 0x90]
add r10b, byte [rsp + r12 + 0x90]
movzx ebp, byte [rsp + r14 + 0x90]
movzx r14d, cl
add r10b, byte [rsp + r14 + 0x90]
movzx r10d, r10b
movzx r10d, byte [rsp + r10 + 0x90]
xor bpl, byte [rsp + r10 + 0x90]
xor bpl, r9b
mov byte [rsp + r11 + 0x192], bpl
inc r11
cmp r11, 6
jne 0x140045370
movzx r10d, byte [0x14049e992]
movzx r15d, r9b
movzx r12d, byte [rsp + r15 + 0x90]
lea r14d, [rdx + r11]
add r14d, 4
add al, bl
movzx ebx, al
movzx r13d, byte [rsp + rbx + 0x90]
mov byte [rsp + r15 + 0x90], r13b
movzx r13d, bpl
movzx ebp, byte [rsp + r13 + 0x90]
mov byte [rsp + rbx + 0x90], bpl
movzx r14d, r14b
movzx ebp, byte [rsp + r14 + 0x90]
mov byte [rsp + r13 + 0x90], bpl
movzx edi, byte [reloc.WS2_32.dll___WSAFDIsSet]
add dil, 0x71
shl r10b, 4
add r10b, 0xf0
mov byte [rsp + r14 + 0x90], r12b
add cl, byte [rsp + r12 + 0x90]
movzx ebx, byte [rsp + rbx + 0x90]
add bl, r12b
movzx ebx, bl
movzx ebp, byte [rsp + r15 + 0x90]
add bpl, byte [rsp + r13 + 0x90]
movzx r15d, cl
add bpl, byte [rsp + r15 + 0x90]
movzx r15d, bpl
movzx ebp, byte [rsp + rbx + 0x90]
movzx ebx, byte [rsp + r15 + 0x90]
xor bpl, byte [rsp + rbx + 0x90]
or r10b, dil
xor bpl, r10b
movabs rdi, 0x40dffe0000000000
mov qword [rsp + 0x50], rdi
movabs rdi, 0x40d9980000000000
mov qword [rsp + 0x48], rdi
movabs rdi, 0x40d3320000000000
mov qword [rsp + 0x60], rdi
movabs rdi, 0x40c9980000000000
mov qword [rsp + 0x58], rdi
movabs rdi, 0x40b9980000000000
mov qword [rsp + 0x68], rdi
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x48]
subsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x48]
movsd qword [rsp + 0x48], xmm0
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x68]
ucomisd xmm0, xmm1
jbe 0x14004564e
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x68]
mulsd xmm1, xmm0
movsd qword [rsp + 0x68], xmm1
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x68]
subsd xmm1, xmm0
movsd qword [rsp + 0x68], xmm1
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x48]
mulsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x58]
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x58]
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
mov r9d, r10d
jmp 0x1400456b8
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x58]
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x58]
subsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x58]
divsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x60]
mulsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
lea rbx, [rdx + r11]
add rbx, 6
mov byte [rsp + 0x198], bpl
movzx r12d, byte [0x14049e994]
movzx r15d, byte [0x14049e995]
movabs rdi, 0x40d52e8000000000
mov qword [rsp + 0x50], rdi
movabs rdi, 0x40d0f20000000000
mov qword [rsp + 0x48], rdi
movabs rdi, 0x40c96b0000000000
mov qword [rsp + 0x60], rdi
movabs rdi, 0x40c0f20000000000
mov qword [rsp + 0x58], rdi
movabs rdi, 0x40b0f20000000000
mov qword [rsp + 0x68], rdi
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x60]
mulsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x48]
movsd qword [rsp + 0x48], xmm0
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x48]
subsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x50]
ucomisd xmm1, xmm0
jbe 0x140045815
shl r12b, 4
add r12b, 0xf0
add r15b, 0x71
or r15b, r12b
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x48]
movsd qword [rsp + 0x48], xmm0
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
subsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x50]
addsd xmm0, qword [rsp + 0x58]
movsd qword [rsp + 0x58], xmm0
movsd xmm0, qword [rsp + 0x50]
addsd xmm0, qword [rsp + 0x58]
movsd qword [rsp + 0x58], xmm0
movsd xmm0, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
mov r10d, r15d
jmp 0x140045873
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, qword [rsp + 0x48]
movsd qword [rsp + 0x48], xmm0
movsd xmm0, qword [rsp + 0x48]
addsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x58]
movsd qword [rsp + 0x58], xmm0
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x50]
divsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movzx r15d, r9b
movzx r9d, byte [rsp + r15 + 0x90]
add edx, r11d
add edx, 5
add al, byte [rsp + r14 + 0x90]
movzx r11d, al
movzx edi, byte [rsp + r11 + 0x90]
mov byte [rsp + r15 + 0x90], dil
movzx edi, bpl
movzx ebp, byte [rsp + rdi + 0x90]
mov byte [rsp + r11 + 0x90], bpl
movzx edx, dl
movzx ebp, byte [rsp + rdx + 0x90]
mov byte [rsp + rdi + 0x90], bpl
mov byte [rsp + rdx + 0x90], r9b
add cl, byte [rsp + r9 + 0x90]
movzx edx, byte [rsp + r11 + 0x90]
add dl, r9b
movzx edx, dl
movzx r11d, byte [rsp + r15 + 0x90]
add r11b, byte [rsp + rdi + 0x90]
movzx edx, byte [rsp + rdx + 0x90]
movzx edi, cl
add r11b, byte [rsp + rdi + 0x90]
movzx r11d, r11b
movzx r11d, byte [rsp + r11 + 0x90]
xor dl, byte [rsp + r11 + 0x90]
xor dl, r10b
mov byte [rsp + 0x199], dl
xor r11d, r11d
nop
add al, r9b
movzx edi, r10b
movzx r10d, byte [r8 + r11*2 + 0x16]
movzx r9d, byte [rsp + rdi + 0x90]
movzx r14d, al
movzx ebp, byte [rsp + r14 + 0x90]
mov byte [rsp + rdi + 0x90], bpl
movzx r15d, dl
movzx edx, byte [rsp + r15 + 0x90]
mov byte [rsp + r14 + 0x90], dl
movzx ebx, bl
movzx edx, byte [rsp + rbx + 0x90]
mov byte [rsp + r15 + 0x90], dl
movzx edx, byte [r8 + r11*2 + 0x17]
add dl, 0x71
shl r10b, 4
add r10b, 0xf0
mov byte [rsp + rbx + 0x90], r9b
add cl, byte [rsp + r9 + 0x90]
or r10b, dl
movzx edx, byte [rsp + r14 + 0x90]
add dl, r9b
movzx edx, dl
movzx edx, byte [rsp + rdx + 0x90]
movzx edi, byte [rsp + rdi + 0x90]
add dil, byte [rsp + r15 + 0x90]
movzx r14d, cl
add dil, byte [rsp + r14 + 0x90]
movzx edi, dil
movzx edi, byte [rsp + rdi + 0x90]
xor dl, byte [rsp + rdi + 0x90]
xor dl, r10b
mov byte [rsp + r11 + 0x19a], dl
inc r11
inc bl
cmp r11, 8
jne 0x140045930
movzx r8d, byte [0x14049e9a6]
movzx r9d, byte [0x14049e9a7]
add r9b, 0x71
shl r8b, 4
add r8b, 0xf0
or r8b, r9b
movzx r10d, r10b
movzx r9d, byte [rsp + r10 + 0x90]
movzx r11d, r9b
movabs rdi, 0x40d8c88000000000
mov qword [rsp + 0x50], rdi
movabs rdi, 0x40d085c000000000
mov qword [rsp + 0x48], rdi
movabs rdi, 0x40c0860000000000
mov qword [rsp + 0x60], rdi
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x48]
subsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x48]
lea ebp, [rbx - 1]
ucomisd xmm1, xmm0
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x48]
jbe 0x140045afb
mulsd xmm0, xmm1
movsd qword [rsp + 0x48], xmm0
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x50]
subsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x48]
divsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
jmp 0x140045b3e
subsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movzx edi, bpl
add al, byte [rsp + rdi + 0x90]
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x48]
mulsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
mov ebp, ebx
movzx ebx, al
movzx eax, byte [rsp + rbx + 0x90]
mov byte [rsp + r10 + 0x90], al
movzx edi, dl
movzx eax, byte [rsp + rdi + 0x90]
mov byte [rsp + rbx + 0x90], al
movzx eax, bpl
movzx edx, byte [rsp + rax + 0x90]
mov byte [rsp + rdi + 0x90], dl
mov byte [rsp + rax + 0x90], r9b
add cl, byte [rsp + r11 + 0x90]
movzx edx, byte [rsp + rbx + 0x90]
add dl, r9b
movzx edx, dl
movzx edx, byte [rsp + rdx + 0x90]
movzx r10d, byte [rsp + r10 + 0x90]
add r10b, byte [rsp + rdi + 0x90]
movzx ecx, cl
add r10b, byte [rsp + rcx + 0x90]
movzx ecx, r10b
movzx ecx, byte [rsp + rcx + 0x90]
xor dl, byte [rsp + rcx + 0x90]
xor dl, r8b
mov byte [rsp + 0x1a2], dl
movzx r10d, r8b
movzx ecx, byte [rsp + r10 + 0x90]
inc al
add bl, r9b
movzx r8d, bl
movzx r9d, byte [rsp + r8 + 0x90]
mov byte [rsp + r10 + 0x90], r9b
movabs r9, 0x40dc11c000000000
mov qword [rsp + 0x50], r9
movabs r9, 0x40d50d8000000000
mov qword [rsp + 0x48], r9
movabs r9, 0x40cc128000000000
mov qword [rsp + 0x60], r9
movabs r9, 0x40bc140000000000
mov qword [rsp + 0x58], r9
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x48]
mulsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x58]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x58]
ucomisd xmm1, xmm0
jbe 0x140045cf3
movsd xmm0, qword [rsp + 0x58]
movsd xmm1, qword [rsp + 0x48]
subsd xmm1, xmm0
movsd qword [rsp + 0x48], xmm1
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x58]
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x50]
addsd xmm0, qword [rsp + 0x60]
movsd qword [rsp + 0x60], xmm0
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
subsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movzx edx, dl
jmp 0x140045d5f
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
subsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movzx edx, dl
movzx r9d, byte [rsp + rdx + 0x90]
mov byte [rsp + r8 + 0x90], r9b
movsd xmm0, qword [rsp + 0x60]
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [rsp + 0x48]
movsd xmm1, qword [rsp + 0x58]
subsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm0, qword [rsp + 0x50]
movsd xmm1, qword [rsp + 0x60]
subsd xmm1, xmm0
movsd qword [rsp + 0x60], xmm1
mov rdi, qword [rsp + 0x70]
movzx eax, al
movzx r8d, byte [rsp + rax + 0x90]
mov byte [rsp + rdx + 0x90], r8b
mov byte [rsp + rax + 0x90], cl
mov byte [rsp + 0x1a3], 0
lea rdx, [rsp + 0x190]
mov rcx, rdi
call fcn.14005b020
mov rbx, rax
lea r15, [rsp + 0x8c]
mov qword [rsp + 0x38], r15
lea r12, [rsp + 0x78]
mov qword [rsp + 0x30], r12
lea r13, [rsp + 0x80]
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], 0x30
lea r9, [rsp + 0x90]
mov rcx, rsi
mov edx, ntohs
mov r8d, 3
call rax
test eax, eax
je 0x140045def
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x140045e39
mov r14d, dword [rsp + 0x80]
add r14d, 0x30
mov rcx, r14
call fcn.1404baf0c
mov rdi, rax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], r14d
mov rcx, rsi
mov edx, ntohs
mov r8d, 3
mov r9, rax
call rbx
cmp dword [rsp + 0x78], 0
jne 0x140045e46
jmp 0x140045fa5
xor edi, edi
cmp dword [rsp + 0x78], 0
je 0x140045fa5
xor r14d, r14d
lea r15, [0x1404d7a20]
mov r12d, 0x80078071
lea r13, [r14 + r14*2]
shl r13, 4
mov rcx, qword [rdi + r13]
call fcn.1404b5fe4
mov rbx, rax
mov rcx, qword [rdi + r13]
call fcn.1404bc040
lea rdx, [rax + 1]
mov rcx, rbx
call fcn.1404b605c
mov rcx, rbx
call fcn.1404bc040
mov rcx, rax
and rcx, 0xfffffffffffffffe
xor edx, edx
mov r8d, dword [r15 + rdx*4]
mov r10d, 1
test rax, rax
je 0x140045f83
xor r9d, r9d
mov r11, rbx
cmp rax, 1
je 0x140045f41
mov r10d, 1
xor r9d, r9d
mov r13, rcx
mov r11, rbx
nop word cs:[rax + rax]
movsx ebp, byte [r11]
add ebp, r10d
mov r10, rbp
imul r10, r12
shr r10, 0x2f
imul r10d, r10d, 0xfff1
sub ebp, r10d
add r9d, ebp
mov r10, r9
imul r10, r12
shr r10, 0x2f
imul r10d, r10d, 0xfff1
sub r9d, r10d
movsx r10d, byte [r11 + 1]
add r11, 2
add r10d, ebp
mov rbp, r10
imul rbp, r12
shr rbp, 0x2f
imul ebp, ebp, 0xfff1
sub r10d, ebp
add r9d, r10d
imul rbp, r9, 0x2001f
shr rbp, 0x21
imul ebp, ebp, 0xfff1
sub r9d, ebp
add r13, 0xfffffffffffffffe
jne 0x140045ed0
test al, 1
je 0x140045f79
movsx r11d, byte [r11]
add r10d, r11d
mov r11, r10
imul r11, r12
shr r11, 0x2f
imul r11d, r11d, 0xfff1
sub r10d, r11d
add r9d, r10d
mov r11, r9
imul r11, r12
shr r11, 0x2f
imul r11d, r11d, 0xfff1
sub r9d, r11d
shl r9d, 0x10
or r9d, r10d
mov r10d, r9d
cmp r10d, r8d
je 0x140045fba
inc rdx
cmp rdx, 7
jne 0x140045e90
inc r14
mov eax, dword [rsp + 0x78]
cmp r14, rax
jb 0x140045e56
mov rcx, rdi
call fcn.1404ba1dc
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor ebx, ebx
jmp 0x140045fbc
mov bl, 1
mov rcx, qword [rsp + 0x1a8]
xor rcx, rsp
call fcn.14049f400
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x1b0]
movaps xmm7, xmmword [rsp + 0x1c0]
movaps xmm8, xmmword [rsp + 0x1d0]
movaps xmm9, xmmword [rsp + 0x1e0]
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret