Function at 0x140045de0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x150
mov rax, qword [0x1400a45f8]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov r12, qword [rsp + 0x1c0]
mov r14, rcx
mov r13, qword [rsp + 0x1b0]
mov ebp, r8d
mov rcx, qword [rsp + 0x1a0]
xor r8d, r8d
mov ebx, dword [rsp + 0x1a8]
mov esi, edx
mov dword [r12], r8d
lea rdi, [r14 + 0x18]
movzx eax, byte [r14]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x20], r12
test al, 2
jne 0x140045e58
lea eax, [r8 + 0x3c]
jmp 0x1400462e8
mov qword [rsp + 0x188], r15
cmp ebx, 0x50
ja case.0x1400461f9.136
mov r15d, dword [rsp + 0x1b8]
cmp r15d, 0x50
ja case.0x1400461f9.136
test ebx, ebx
lea rdx, [rsp + 0xf0]
cmovne rdx, rcx
test al, 4
mov eax, 0x18
mov word [rdi + 0x30], ax
je 0x14004626b
mov eax, esi
mov dword [rdi + 0x38], r8d
and eax, 0xffffff00
lea r15, [rdi + 0x40]
add eax, 0xc8000f
mov dword [rdi + 0x34], eax
cmp ebx, 0xc
jbe 0x140045efa
movsd xmm0, qword [rdx]
movsd qword [r15], xmm0
mov eax, dword [rdx + 8]
mov dword [r15 + 8], eax
cmp ebx, 0x4c
ja case.0x1400461f9.136
lea r13, [rdi + 0x50]
add rdx, 0xc
mov rcx, r13
lea r8d, [rbx - 0xc]
call sub.VCRUNTIME140.dll_memcpy
mov edx, gethostname
sub edx, ebx
test edx, edx
jle 0x140045f16
lea ecx, [rbx + 4]
add rcx, 0x40
add rcx, rdi
jmp 0x140045f11
mov r8, rbx
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
lea r13, [rdi + 0x50]
mov edx, 0x2c
mov rcx, r13
call fcn.14004e230
mov edx, 2
mov byte [rdi + 0x4c], bl
lea rcx, [rdi + 0x4e]
mov byte [rdi + 0x4d], bpl
call fcn.14004e230
movzx eax, byte [rdi + 0x4e]
lea rdx, [0x1400a7330]
not al
shr ebp, 8
mov byte [rdi + 0x7e], al
lea rcx, [rsp + 0x40]
movzx eax, byte [rdi + 0x4f]
not al
mov byte [rdi + 0x7c], bpl
mov byte [rdi + 0x7f], al
mov byte [rdi + 0x7d], sil
call fcn.140054780
movups xmm0, xmmword [r14 + 8]
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm0
call fcn.1400545d0
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x40]
call fcn.140054780
lea rdx, [rdi + 0x70]
lea rcx, [rsp + 0x40]
call fcn.140054400
mov rbx, r15
lea rsi, [rdi + 0x61]
sub rbx, rdi
mov ebp, 4
mov qword [rsp + 0x28], rbx
mov rcx, rsi
mov edx, ebp
movzx eax, byte [rcx - 1]
xor byte [rbx + rcx - 0x31], al
movzx eax, byte [rcx]
xor byte [rbx + rcx - 0x30], al
movzx eax, byte [rcx + 1]
xor byte [rbx + rcx - 0x2f], al
movzx eax, byte [rcx + 2]
xor byte [rbx + rcx - 0x2e], al
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140045fb1
lea rdx, [rdi + 0x60]
lea rcx, [rsp + 0x40]
call fcn.140054400
lea r14, [rdi + 0x51]
mov rdx, rbp
mov rcx, r14
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx - 1]
xor byte [rbx + rcx - 0x31], al
movzx eax, byte [rcx]
xor byte [rbx + rcx - 0x30], al
movzx eax, byte [rcx + 1]
xor byte [rbx + rcx - 0x2f], al
movzx eax, byte [rcx + 2]
xor byte [rbx + rcx - 0x2e], al
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140046000
mov rdx, r13
lea rcx, [rsp + 0x40]
call fcn.140054400
lea rbx, [rdi + 0x41]
mov r8, rbp
mov rdx, rbx
lea rcx, [r15 + 0x11]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx - 1]
lea rdx, [rdx + 4]
xor byte [rcx - 1], al
lea rcx, [rcx + 4]
movzx eax, byte [rdx - 4]
xor byte [rcx - 4], al
movzx eax, byte [rdx - 3]
xor byte [rcx - 3], al
movzx eax, byte [rdx - 2]
xor byte [rcx - 2], al
sub r8, 1
jne 0x140046050
mov rdx, r15
lea rcx, [rsp + 0x40]
call fcn.140054400
mov rcx, rdi
mov dword [rdi + 0x3c], 0x400040
call fcn.140029460
mov ecx, 0x103
cmp ax, cx
jne 0x1400460cc
lea ebp, [rcx + 0xf]
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.140054780
cmp bp, 0xc
je 0x1400462bc
cmp bp, 9
je 0x1400462bc
movzx eax, bp
jmp 0x1400462e0
mov r12d, 0xff
and ax, r12w
movzx ebp, ax
jne 0x1400460a3
mov rdx, r15
lea rcx, [rsp + 0x40]
call fcn.140054400
mov ebp, 4
mov ecx, ebp
nop
movzx eax, byte [r14 - 1]
lea r14, [r14 + 4]
xor byte [rbx - 1], al
lea rbx, [rbx + 4]
movzx eax, byte [r14 - 4]
xor byte [rbx - 4], al
movzx eax, byte [r14 - 3]
xor byte [rbx - 3], al
movzx eax, byte [r14 - 2]
xor byte [rbx - 2], al
sub rcx, 1
jne 0x1400460f0
mov rdx, r13
lea rcx, [rsp + 0x40]
call fcn.140054400
mov rbx, qword [rsp + 0x28]
mov rcx, rbp
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsi - 1]
xor byte [rbx + rsi - 0x51], al
movzx eax, byte [rsi]
xor byte [rbx + rsi - 0x50], al
movzx eax, byte [rsi + 1]
xor byte [rbx + rsi - 0x4f], al
movzx eax, byte [rsi + 2]
xor byte [rbx + rsi - 0x4e], al
lea rsi, [rsi + 4]
sub rcx, 1
jne 0x140046140
lea rdx, [rdi + 0x60]
lea rcx, [rsp + 0x40]
call fcn.140054400
lea rcx, [rdi + 0x71]
mov r8, rbp
nop
movzx eax, byte [rcx - 1]
xor byte [rcx + rbx - 0x51], al
movzx eax, byte [rcx]
xor byte [rcx + rbx - 0x50], al
movzx eax, byte [rcx + 1]
xor byte [rcx + rbx - 0x4f], al
movzx eax, byte [rcx + 2]
xor byte [rcx + rbx - 0x4e], al
lea rcx, [rcx + 4]
sub r8, 1
jne 0x140046180
lea rdx, [rdi + 0x70]
lea rcx, [rsp + 0x40]
call fcn.140054400
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.140054780
cmp byte [rdi + 0x7d], 0x53
jne case.0x1400461f9.132
movzx eax, byte [rdi + 0x7c]
test al, al
jns 0x140046236
movzx eax, al
and eax, 0x9f
add eax, 0xffffff80
cmp eax, 8
ja case.default.0x1400461f9
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x46314]
add rcx, rdx
jmp rcx
mov eax, 0x41
jmp 0x1400462e0
mov eax, 0xa
jmp 0x1400462e0
mov eax, 0x15
jmp 0x1400462e0
mov eax, 0x4a
jmp 0x1400462e0
mov eax, 0x3f
jmp 0x1400462e0
movzx eax, r12w
jmp 0x1400462e0
cmp al, 0x3c
ja case.0x1400461f9.132
movzx edx, al
cmp edx, dword [rsp + 0x1b8]
ja case.0x1400461f9.132
mov r8, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
mov dword [r8], edx
mov rdx, r15
movzx r8d, byte [rdi + 0x7c]
call sub.VCRUNTIME140.dll_memcpy
xor eax, eax
jmp 0x1400462e0
mov eax, 2
jmp 0x1400462e0
mov r8, rbx
mov dword [rdi + 0x34], esi
lea rcx, [rdi + 0x40]
mov word [rdi + 0x38], bp
mov word [rdi + 0x3a], r9w
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
mov word [rdi + 0x3c], bx
mov word [rdi + 0x3e], r15w
call fcn.140029460
mov ecx, 0x103
cmp ax, cx
jne 0x1400462a3
lea ebp, [rcx + 0xf]
jmp 0x1400462ab
mov ebp, 0xff
and bp, ax
movzx eax, bp
test eax, eax
je 0x1400462c3
cmp eax, 9
je 0x1400462bc
cmp eax, 0xc
jne case.0x1400461f9.129
mov eax, 3
jmp 0x1400462e0
mov r8, r15
mov dword [r12], r15d
lea rdx, [rdi + 0x40]
mov rcx, r13
call sub.VCRUNTIME140.dll_memcpy
movzx eax, bp
jmp 0x1400462e0
mov eax, reloc.WSOCK32.dll_recv
mov r15, qword [rsp + 0x188]
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140077b10
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret