Function at 0x180038a40
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov r14, r9
mov rsi, rdx
mov r15, rcx
xor edi, edi
mov dword [rsp + 0x38], edi
mov qword [rdx], rdi
mov qword [rdx + 0x10], rdi
mov qword [rdx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdx], dil
mov ebx, 1
mov dword [rsp + 0x38], ebx
mov rdx, r8
lea rcx, [rax - 0x80]
call fcn.1800071f4
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x90], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rsp + 0xa0], xmm1
movzx eax, word [rax + 0x18]
mov word [rsp + 0x180], ax
mov word [rsp + 0xa8], ax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov r9, r14
movzx r8d, ax
lea rdx, [rsp + 0xb0]
mov rcx, r15
call fcn.180038f80
mov rax, qword [rax]
mov r14, qword [rax + 0x28]
mov qword [rsp + 0x30], r14
mov r13, qword [rax + 0x30]
test r13, r13
je 0x180038b1e
lock xadd dword [r13 + 8], ebx
movzx eax, word [rsp + 0xa8]
mov word [rsp + 0x180], ax
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r13
lea rdx, [r14 + 0x30]
mov rcx, rsi
call fcn.18000604c
mov r12d, dword [r15 + 0xd4]
test r12b, 2
je 0x180038bc1
lea rax, [r14 + 8]
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x180038b56
mov r14, qword [rax]
mov rcx, qword [rax + 0x10]
cmp rcx, 9
jb 0x180038bbc
lea r15, [rcx + r14]
lea r8, [r15 - 8]
sub r8, r14
mov edx, 0x79
mov rcx, r14
call fcn.1800a06d0
mov rbx, rax
test rax, rax
je 0x180038bbc
mov r8d, 9
lea rdx, str.yahoo.com
mov rcx, rbx
call fcn.18009fb20
test eax, eax
je 0x180038c49
inc rbx
lea r8, [r15 - 8]
sub r8, rbx
mov edx, 0x79
mov rcx, rbx
call fcn.1800a06d0
mov rbx, rax
test rax, rax
jne 0x180038b80
mov r14, qword [rsp + 0x30]
test r12b, 4
je 0x180038d28
lea rbx, [r14 + 8]
cmp qword [r14 + 0x20], 0x10
jb 0x180038bda
mov rbx, qword [r14 + 8]
mov rcx, qword [r14 + 0x18]
cmp rcx, 4
jb 0x180038d28
lea r14, [rcx + rbx]
lea r8, [r14 - 3]
sub r8, rbx
mov edx, 0x2e
mov rcx, rbx
call fcn.1800a06d0
mov r9, rax
test rax, rax
je 0x180038d28
lea r15, str..com
nop dword [rax]
nop word [rax + rax]
mov rcx, rdi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r9 + rcx]
inc rcx
cmp al, byte [r15 + rcx - 1]
jne 0x180038c9a
cmp rcx, 4
jne 0x180038c30
mov eax, edi
jmp 0x180038c9f
sub rbx, r14
cmp rbx, 0xffffffffffffffff
je 0x180038bbc
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x180038c91
lea rax, [rcx + 2]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x180038c7e
mov rax, qword [rsi]
mov edx, 0x792f
mov word [rax + rcx], dx
mov byte [rax + rcx + 2], 0
jmp 0x180038d28
lea r9, [0x1800eb71c]
jmp 0x180038d10
sbb eax, eax
or eax, 1
test eax, eax
je 0x180038cc8
inc r9
lea r8, [r14 - 3]
sub r8, r9
mov edx, 0x2e
mov rcx, r9
call fcn.1800a06d0
mov r9, rax
test rax, rax
jne 0x180038c20
jmp 0x180038d28
sub r9, rbx
cmp r9, 0xffffffffffffffff
je 0x180038d28
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x180038d09
lea rax, [rcx + 2]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x180038cf9
mov rax, qword [rsi]
mov edx, 0x6d2f
mov word [rax + rcx], dx
mov byte [rax + rcx + 2], 0
jmp 0x180038d28
lea r9, [0x1800eb728]
mov qword [rsp + 0x20], 2
xor r8d, r8d
lea edx, [r8 + 2]
mov rcx, rsi
call fcn.1800037a0
cmp byte [0x18010a364], 0
je 0x180038e83
lea rdx, [rsp + 0xb8]
mov rcx, qword [rsp + 0x160]
call fcn.18001ea60
mov rbx, rax
mov r14, qword [rsp + 0x30]
add r14, 8
cmp qword [r14 + 0x18], 0x10
jb 0x180038d60
mov r14, qword [r14]
cmp qword [rax + 0x18], 0x10
jb 0x180038d6a
mov rbx, qword [rax]
movdqa xmm6, xmmword [0x1800ec5e0]
movdqu xmmword [rsp + 0x50], xmm6
movdqa xmm7, xmmword [0x1800ec390]
movdqu xmmword [rsp + 0x60], xmm7
movdqa xmm8, xmmword [0x1800ec560]
movdqu xmmword [rsp + 0x70], xmm8
mov dword [rsp + 0x80], 0x6fa6864e
mov dword [rsp + 0x84], 0xf9a99dde
mov word [rsp + 0x88], 0x9008
mov byte [rsp + 0x8a], 0xcf
mov rcx, qword gs:[0x58]
mov eax, dword [0x18010bb98]
mov edx, 4
mov rcx, qword [rcx + rax*8]
mov eax, dword [rdx + rcx]
cmp dword [0x18010d22c], eax
jg 0x180038ef6
lea rdx, [0x1801065e0]
cmp byte [0x18010661b], 0
je 0x180038e23
movabs r8, 0xd993efbb19cfe32d
nop
movzx ecx, dil
and cl, 7
shl cl, 3
mov rax, r8
shr rax, cl
xor byte [rdi + rdx], al
inc rdi
cmp rdi, 0x3b
jb 0x180038e00
mov byte [0x18010661b], 0
movzx r9d, word [rsp + 0x180]
mov qword [rsp + 0x20], r14
mov r8, rbx
mov ecx, 4
call fcn.18006a848
nop
mov rdx, qword [rsp + 0xd0]
cmp rdx, 0x10
jb 0x180038e83
inc rdx
mov rcx, qword [rsp + 0xb8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180038e7d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180038f6c
call fcn.18009d1f4
nop
test r13, r13
je 0x180038ec7
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [r13 + 8], eax
cmp eax, 1
jne 0x180038ec7
mov rbx, qword [rsp + 0x48]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x180038ec7
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x180038ec7
mov rax, rsi
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rcx, [0x18010d22c]
call fcn.18009d704
cmp dword [0x18010d22c], 0xffffffff
jne 0x180038de5
mov word [0x18010661a], 0x1cf
movaps xmmword [0x1801065e0], xmm6
movaps xmmword [0x1801065f0], xmm7
movaps xmmword [0x180106600], xmm8
movsd xmm0, qword [rsp + 0x80]
movsd qword [0x180106610], xmm0
movzx eax, word [rsp + 0x88]
mov word [0x180106618], ax
lea rcx, [0x1800ce5a0]
call fcn.18009d564
lea rcx, [0x18010d22c]
call fcn.18009d6a4
nop
jmp 0x180038de5
call fcn.1800a45b8
int3