Function at 0x18001d610
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x58]
sub rsp, 0x130
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x180067008]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov rdi, rdx
mov rsi, rcx
xor r15d, r15d
mov ebx, r15d
mov dword [rsp + 0x60], ebx
lea r12, [0x1800691e8]
mov qword [rbp - 0x10], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov qword [rbp - 0x20], r15
mov qword [rbp - 0x18], r15
call fcn.18000f420
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], r15
call fcn.18000f420
mov qword [rbp - 0x30], rax
xor eax, eax
mov qword [rbp], rax
mov dword [rbp], r15d
mov dword [rbp + 4], 0x400
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8d, 0x400
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbp - 8], rax
mov dword [rsp + 0x64], r15d
movdqa xmm0, xmmword [0x18005a170]
movdqu xmmword [rbp + 8], xmm0
mov dword [rbp + 0x18], 0xaedebfda
mov dword [rbp + 0x1c], 0xf99ab4c7
mov dword [rbp + 0x20], 0xd4d4fb96
lea r8, [rbp + 0x22]
lea r9d, [r15 + 9]
nop word [rax + rax]
movzx edx, byte [r8]
xor byte [r8 + 1], dl
movzx eax, byte [r8 - 1]
xor al, dl
mov byte [r8], al
movzx eax, byte [r8 - 2]
xor byte [r8 - 1], al
lea r8, [r8 - 3]
sub r9, 1
jne 0x18001d6f0
xor byte [rbp + 8], 0xbe
mov rax, qword [rsi + 0x28]
sub rax, qword [rsi + 0x20]
sar rax, 5
test rax, rax
je 0x18001d820
mov qword [rbp - 0x60], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x68], r15
mov byte [rbp - 0x78], r9b
xor r8d, r8d
lea rdx, [0x180057690]
lea rcx, [rbp - 0x78]
call fcn.1800020b0
nop
mov dword [rsp + 0x60], 1
mov qword [rbp - 0x80], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x78], r15
mov byte [rsp + 0x68], 0
mov r8d, 4
lea rdx, str.POST
lea rcx, [rsp + 0x68]
call fcn.1800020b0
nop
mov dword [rsp + 0x60], 3
mov qword [rbp - 0x40], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x48], r15
mov byte [rbp - 0x58], 0
cmp byte [rbp + 8], 0
jne 0x18001d7a7
mov r8, r15
jmp 0x18001d7ba
lea rax, [rbp + 8]
or r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], 0
jne 0x18001d7b0
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x58]
call fcn.1800020b0
nop
mov ebx, 7
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x50], r15d
lea rax, [rbp - 8]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x64]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x68]
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x58]
call fcn.18000b4d0
test eax, eax
jne 0x18001d820
mov r14b, 1
jmp 0x18001d823
xor r14b, r14b
test bl, 4
je 0x18001d891
and ebx, 0xfffffffb
mov rax, qword [rbp - 0x40]
cmp rax, 0x10
jb 0x18001d881
inc rax
mov rcx, qword [rbp - 0x58]
cmp rax, 0x1000
jb 0x18001d87c
test cl, 0x1f
je 0x18001d84f
call fcn.18003835c
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x18001d85e
call fcn.18003835c
int3
sub rcx, rax
cmp rcx, 8
jae 0x18001d86d
call fcn.18003835c
int3
cmp rcx, 0x27
jbe 0x18001d879
call fcn.18003835c
int3
mov rcx, rax
call fcn.180033ed0
mov qword [rbp - 0x40], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x48], r15
mov byte [rbp - 0x58], 0
test bl, 2
je 0x18001d902
and ebx, 0xfffffffd
mov rax, qword [rbp - 0x80]
cmp rax, 0x10
jb 0x18001d8f0
inc rax
mov rcx, qword [rsp + 0x68]
cmp rax, 0x1000
jb 0x18001d8eb
test cl, 0x1f
je 0x18001d8be
call fcn.18003835c
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x18001d8cd
call fcn.18003835c
int3
sub rcx, rax
cmp rcx, 8
jae 0x18001d8dc
call fcn.18003835c
int3
cmp rcx, 0x27
jbe 0x18001d8e8
call fcn.18003835c
int3
mov rcx, rax
call fcn.180033ed0
mov qword [rbp - 0x80], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x78], r15
mov byte [rsp + 0x68], 0
test bl, 1
je 0x18001d95d
mov rax, qword [rbp - 0x60]
cmp rax, 0x10
jb 0x18001d95d
inc rax
mov rcx, qword [rbp - 0x78]
cmp rax, 0x1000
jb 0x18001d958
test cl, 0x1f
je 0x18001d92b
call fcn.18003835c
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x18001d93a
call fcn.18003835c
int3
sub rcx, rax
cmp rcx, 8
jae 0x18001d949
call fcn.18003835c
int3
cmp rcx, 0x27
jbe 0x18001d955
call fcn.18003835c
int3
mov rcx, rax
call fcn.180033ed0
test r14b, r14b
je 0x18001db10
mov rbx, qword [rsi + 0x20]
cmp rbx, qword [rsi + 0x28]
je 0x18001db10
mov qword [rbp - 0x60], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x68], r15
mov byte [rbp - 0x78], 0
mov r8d, 4
lea rdx, str.POST
lea rcx, [rbp - 0x78]
call fcn.1800020b0
nop
mov qword [rbp - 0x80], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x78], r15
mov byte [rsp + 0x68], 0
cmp byte [rbp + 8], 0
jne 0x18001d9b8
mov r8, r15
jmp 0x18001d9ca
lea rax, [rbp + 8]
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x18001d9c0
lea rdx, [rbp + 8]
lea rcx, [rsp + 0x68]
call fcn.1800020b0
nop
mov dword [rsp + 0x50], r15d
lea rax, [rbp - 8]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x64]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x78]
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x68]
call fcn.18000b4d0
mov r14d, eax
mov rcx, qword [rbp - 0x80]
cmp rcx, 0x10
jb 0x18001da69
inc rcx
mov rdx, qword [rsp + 0x68]
cmp rcx, 0x1000
jb 0x18001da61
test dl, 0x1f
jne 0x18001dad9
mov rax, qword [rdx - 8]
cmp rax, rdx
jae 0x18001dad3
sub rdx, rax
cmp rdx, 8
jb 0x18001dacd
cmp rdx, 0x27
ja 0x18001dac7
mov rdx, rax
mov rcx, rdx
call fcn.180033ed0
mov qword [rbp - 0x80], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x78], r15
mov byte [rsp + 0x68], 0
mov rax, qword [rbp - 0x60]
cmp rax, 0x10
jb 0x18001dab9
inc rax
mov rcx, qword [rbp - 0x78]
cmp rax, 0x1000
jb 0x18001dab4
test cl, 0x1f
jne 0x18001daf1
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18001daeb
sub rcx, rax
cmp rcx, 8
jb 0x18001dae5
cmp rcx, 0x27
ja 0x18001dadf
mov rcx, rax
call fcn.180033ed0
test r14d, r14d
jne 0x18001daf7
add rbx, 0x20
jmp 0x18001d96a
call fcn.18003835c
int3
call fcn.18003835c
int3
call fcn.18003835c
int3
call fcn.18003835c
nop
call fcn.18003835c
int3
call fcn.18003835c
int3
call fcn.18003835c
int3
call fcn.18003835c
int3
cmp rsi, rbx
je 0x18001db26
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.1800021e0
jmp 0x18001db26
mov qword [rsi + 0x10], r15
cmp qword [rsi + 0x18], 0x10
jb 0x18001db20
mov rax, qword [rsi]
jmp 0x18001db23
mov rax, rsi
mov byte [rax], 0
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov qword [rdi + 0x10], r15
cmp qword [rdi + 0x18], 0x10
jb 0x18001db3e
mov rax, qword [rdi]
jmp 0x18001db41
mov rax, rdi
mov byte [rax], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.1800021e0
nop
mov rbx, qword [rbp - 8]
test rbx, rbx
je 0x18001db75
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov r8, qword [rbp - 0x30]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x30]
call fcn.18000e170
mov rcx, qword [rbp - 0x30]
call fcn.180033ed0
nop
mov r8, qword [rbp - 0x20]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x20]
call fcn.18000e170
mov rcx, qword [rbp - 0x20]
call fcn.180033ed0
nop
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rdi
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.180033e70
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret