Function at 0x180033cb0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2c8]
sub rsp, 0x3c8
xor r14d, r14d
mov r13, rdx
mov r12, rcx
mov dword [rsp + 0x4c], r14d
cmp byte [rcx], r14b
jne 0x1800347a4
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], 0x18
mov r8, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
add r8, rax
mov qword [rsp + 0x38], r8
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
nop dword [rax + rax]
mov dword [rsp + 0x40], 0x16
mov dword [rsp + 0x48], 0x1e
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x40]
add ecx, eax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x48], 0x15
mov dword [rsp + 0x40], 0xb2
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x48]
add ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
movzx edx, al
mov eax, dword [rsp + 0x38]
movzx r8d, cl
mov rcx, qword [rsp + 0x30]
imul r8d, edx
add al, r8b
add cl, al
mov rax, qword [rsp + 0x30]
mov byte [rbp + rax + 0xf8], cl
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], 0x18
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
add rcx, rax
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
cmp rax, rcx
jb 0x180033d20
mov qword [rsp + 0x38], 0xb
mov qword [rsp + 0x30], 0xd
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
add rcx, rax
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], 0x27
mov qword [rsp + 0x30], 0x59
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
add rcx, rax
mov eax, r14d
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0x190]
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x30]
nop word [rax + rax]
mov byte [rcx], al
lea rcx, [rcx + 1]
inc eax
cmp eax, 0x100
jb 0x180033e30
mov dword [rbp + 0x290], r14d
mov rdi, r14
mov word [rbp + 0x294], 1
nop dword [rax]
nop word [rax + rax]
movzx ebx, byte [rbp + rdi + 0xf8]
lea rcx, [rbp + 0x190]
movzx edx, bl
and dl, 0xf
call fcn.180031840
shr bl, 4
lea rcx, [rbp + 0x190]
movzx edx, bl
call fcn.180031840
inc rdi
cmp rdi, rsi
jb 0x180033e60
lea rcx, [rbp + 0x190]
call fcn.180031600
lea rcx, [rbp + 0x110]
mov rsi, r12
sub rsi, rcx
mov rdi, r14
lea rbx, [rbp + 0x110]
lea rcx, [rbp + 0x190]
add rbx, rdi
call fcn.180031aa0
movzx ecx, byte [rsi + rbx + 0x59]
inc rdi
sub cl, al
mov byte [rbx], cl
cmp rdi, r15
jb 0x180033eb0
mov qword [rsp + 0x38], 0x54
mov qword [rsp + 0x30], 0xb2
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
add rcx, rax
mov rax, r14
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x30]
nop dword [rax]
nop word [rax + rax]
mov byte [rbp + rax + 0x190], r14b
inc rax
cmp rax, rcx
jb 0x180033f10
xor eax, eax
mov qword [rsp + 0x78], r14
mov byte [rbp + 0x322], al
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov word [rbp + 0x320], 0xbff6
mov qword [rsp + 0x30], r14
mov rax, qword [rsp + 0x30]
nop dword [rax]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
sub cl, 0x6d
xor cl, byte [rbp + rax + 0x321]
mov rax, qword [rsp + 0x30]
mov byte [rbp + rax + 0x321], cl
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
cmp rax, 1
jb 0x180033f50
mov r9, r14
movzx r11d, byte [rbp + 0x321]
mov byte [rbp + 0x322], r14b
cmp byte [rbp + 0x110], r14b
je 0x180033fe7
lea rcx, [rbp + 0x321]
test r11b, r11b
je 0x180033fe7
movzx r8d, byte [rbp + r9 + 0x110]
movzx eax, r11b
nop dword [rax]
movzx edx, al
cmp r8b, al
je 0x180033fd6
movzx eax, byte [rcx + 1]
inc rcx
movzx edx, al
test al, al
jne 0x180033fc0
test dl, dl
je 0x180033fe7
inc r9
cmp byte [rbp + r9 + 0x110], r14b
jne 0x180033fa3
lea r10, [rbp + 0x110]
add r10, r9
movzx r8d, byte [r10]
test r8b, r8b
je 0x18003422d
mov r9, r10
mov rbx, r14
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rbp + 0x321]
movzx ecx, r11b
cmp r11b, r8b
je 0x180034039
movzx eax, cl
movzx ecx, al
test al, al
je 0x180034039
movzx ecx, byte [rdx + 1]
inc rdx
movzx eax, cl
cmp cl, r8b
jne 0x180034023
test cl, cl
mov rax, r14
cmovne rax, rdx
inc r9
test rax, rax
jne 0x180034056
movzx r8d, byte [r9]
inc rbx
test r8b, r8b
jne 0x180034010
add rbx, r10
cmp byte [rbx], r14b
je 0x180034066
mov byte [rbx], r14b
inc rbx
jmp 0x180034070
mov rbx, r14
nop dword [rax]
mov qword [rbp - 0x70], r14
mov r8, 0xffffffffffffffff
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], r14b
inc r8
cmp byte [r10 + r8], r14b
jne 0x180034087
mov rdx, r10
lea rcx, [rbp - 0x80]
call fcn.180353890
mov rdi, qword [rsp + 0x70]
cmp qword [rsp + 0x78], rdi
je 0x1800340dd
mov r8d, 0x20
mov qword [rdi + 0x10], r14
lea rdx, [rbp - 0x80]
mov qword [rdi + 0x18], r14
mov rcx, rdi
call fcn.180362260
add rdi, 0x20
mov qword [rbp - 0x70], r14
mov qword [rsp + 0x70], rdi
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], r14b
jmp 0x1800340ee
lea r8, [rbp - 0x80]
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.180356320
lea rcx, [rbp - 0x80]
call fcn.180353810
xor eax, eax
mov word [rbp + 0x328], 0xbaac
mov byte [rbp + 0x32a], al
mov qword [rsp + 0x30], r14
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
sub cl, 0x6a
xor cl, byte [rbp + rax + 0x329]
mov rax, qword [rsp + 0x30]
mov byte [rbp + rax + 0x329], cl
mov rax, qword [rsp + 0x30]
inc rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
cmp rax, 1
jb 0x180034112
mov byte [rbp + 0x32a], r14b
test rbx, rbx
jne 0x18003415e
mov r10, r14
jmp 0x180034224
mov r9, r14
movzx r11d, byte [rbp + 0x329]
cmp byte [rbx], r14b
je 0x1800341a8
nop
lea rcx, [rbp + 0x329]
test r11b, r11b
je 0x1800341a8
movzx r8d, byte [r9 + rbx]
movzx eax, r11b
movzx edx, al
cmp r8b, al
je 0x18003419b
movzx eax, byte [rcx + 1]
inc rcx
movzx edx, al
test al, al
jne 0x180034185
test dl, dl
je 0x1800341a8
inc r9
cmp byte [r9 + rbx], r14b
jne 0x180034170
movzx eax, byte [r9 + rbx]
lea r10, [r9 + rbx]
mov rbx, r14
test al, al
jne 0x1800341bd
mov r10, r14
jmp 0x180034224
mov r9, r10
movsx edi, r11b
nop dword [rax]
nop dword [rax + rax]
movsx r8d, al
lea rcx, [rbp + 0x329]
cmp edi, r8d
je 0x1800341f4
movzx edx, r11b
test dl, dl
je 0x1800341f4
movsx edx, byte [rcx + 1]
inc rcx
cmp edx, r8d
jne 0x1800341e4
cmp byte [rcx], r14b
mov rax, r14
cmovne rax, rcx
inc r9
test rax, rax
jne 0x180034211
movzx eax, byte [r9]
inc rbx
test al, al
jne 0x1800341d0
add rbx, r10
cmp byte [rbx], r14b
je 0x180034221
mov byte [rbx], r14b
inc rbx
jmp 0x180034224
mov rbx, r14
test r10, r10
jne 0x180034070
movzx eax, byte [r12 + 0x58]
test al, al
je 0x180034615
dec al
cmp al, 4
ja 0x18003479a
mov rbx, qword [r13]
cmp rbx, qword [r13 + 8]
je 0x18003479a
lea rax, [0x18038ecb0]
mov esi, 2
lea rcx, [0x18038ecd0]
lea r15, [0x18038ee30]
nop dword [rax]
cmp qword [rbx + 0x18], 0x10
mov rdi, rbx
jb 0x18003427d
mov rdi, qword [rbx]
or dword [rsp + 0x4c], 1
lea rdx, [rbp - 0x20]
mov qword [rbp + 0x80], rcx
lea rcx, [rbp + 0x80]
mov qword [rbp - 0x30], rax
mov dword [rbp + 0x7c], 0x98
mov qword [rbp - 0x28], r14
call fcn.180354340
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x30], r15
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea r8d, [rcx - 0xb0]
mov dword [rbp + rcx - 0x34], r8d
lea rcx, [rbp - 0x20]
call fcn.180353ec0
mov r8d, 0x21
lea rcx, [rbp - 0x20]
mov rdx, rdi
call fcn.180353e10
test rax, rax
jne 0x18003430f
mov rax, qword [rbp - 0x30]
mov edx, 6
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x30]
add rcx, rax
cmp qword [rcx + 0x48], r14
cmovne edx, esi
xor r8d, r8d
or edx, dword [rcx + 0x10]
call fcn.1800034f0
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x30], r15
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x34], edx
cmp qword [rbp + 0x60], r14
je 0x18003459c
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx + 0x18]
test rcx, rcx
je 0x180034350
mov rax, qword [rcx]
call qword [rax + 8]
lea rcx, [rbp - 0x30]
call fcn.1803542d0
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x20], 6
jne 0x180034397
mov rcx, qword [rbp + rcx + 0x18]
lea rdx, [rbp - 0x60]
mov r9d, 1
mov dword [rsp + 0x20], 1
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx + 0x18]
jmp 0x1800343b2
xor ecx, ecx
mov qword [rbp - 0x60], 0xffffffffffffffff
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x50], rcx
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0x18]
test rcx, rcx
je 0x1800343bd
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x30]
lea rcx, [rbp - 0x30]
movsxd rdx, dword [rax + 4]
add rcx, rdx
mov eax, dword [rbp + rdx - 0x20]
and eax, 0xfffffffe
mov edx, eax
or edx, 4
cmp qword [rcx + 0x48], r14
cmovne edx, eax
xor r8d, r8d
call fcn.1800034f0
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx + 0x18]
test rcx, rcx
je 0x1800343ff
mov rax, qword [rcx]
call qword [rax + 8]
lea rcx, [rbp - 0x30]
call fcn.1803542d0
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x20], 6
jne 0x180034471
mov rcx, qword [rbp + rcx + 0x18]
lea rdx, [rbp + 0xe0]
mov r9d, esi
mov dword [rsp + 0x20], 1
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rcx, qword [rbp + 0xe8]
add rcx, qword [rbp + 0xe0]
cmp rcx, 0xffffffffffffffff
jne 0x180034471
mov rax, qword [rbp - 0x30]
mov edx, 6
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x30]
add rcx, rax
cmp qword [rcx + 0x48], r14
cmovne edx, esi
xor r8d, r8d
or edx, dword [rcx + 0x10]
call fcn.1800034f0
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx + 0x18]
test rcx, rcx
je 0x180034489
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx + 0x18]
test rcx, rcx
je 0x1800344a1
mov rax, qword [rcx]
call qword [rax + 8]
lea rcx, [rbp - 0x30]
call fcn.1803542d0
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x20], 6
jne 0x1800344e8
mov rcx, qword [rbp + rcx + 0x18]
lea rdx, [rbp - 0x48]
mov r9d, 1
mov dword [rsp + 0x20], 1
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx + 0x18]
jmp 0x180034503
xor ecx, ecx
mov qword [rbp - 0x48], 0xffffffffffffffff
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rcx
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax + 0x18]
test rcx, rcx
je 0x18003450e
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rsi, qword [rbp - 0x40]
lea rcx, [rbp - 0x30]
sub rsi, qword [rbp - 0x58]
xor r8d, r8d
sub rsi, qword [rbp - 0x60]
xor r15d, r15d
add rsi, qword [rbp - 0x48]
call fcn.180352e40
lea rdx, [r15 + rsi]
lea rcx, [r12 + 0xf0]
call fcn.180356080
mov rdx, qword [r12 + 0xf0]
mov r8, qword [r12 + 0xf8]
sub r8, rdx
je 0x18003455c
lea rcx, [rbp - 0x30]
call fcn.180352f20
lea rcx, [rbp - 0x20]
call fcn.180353d40
mov esi, 2
test rax, rax
jne 0x180034595
mov rax, qword [rbp - 0x30]
mov edx, 6
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x30]
add rcx, rax
cmp qword [rcx + 0x48], r14
cmovne edx, esi
xor r8d, r8d
or edx, dword [rcx + 0x10]
call fcn.1800034f0
lea r15, [0x18038ee30]
mov rcx, r12
call fcn.180033170
test al, al
jne 0x1800345e2
mov rax, qword [r12 + 0xf0]
lea rcx, [rbp - 0x30]
mov qword [r12 + 0xf8], rax
call fcn.1800347d0
add rbx, 0x20
lea rax, [0x18038ecb0]
lea rcx, [0x18038ecd0]
cmp rbx, qword [r13 + 8]
jne 0x180034270
jmp 0x18003479a
lea rcx, [r12 + 0x28]
cmp rcx, rbx
je 0x180034602
cmp qword [rbx + 0x18], 0x10
mov rdx, rbx
jb 0x1800345f9
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
call fcn.180353890
lea rcx, [rbp - 0x30]
mov byte [r12], 1
call fcn.1800347d0
jmp 0x18003479a
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
sub rax, rdx
sar rax, 5
cmp rax, 1
jb 0x18003479a
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x60], r14d
mov qword [rsp + 0x50], 0xffffffffffffffff
cmp qword [rdx + 0x18], 0x10
jb 0x18003464d
mov rdx, qword [rdx]
lea rcx, [rsp + 0x50]
call fcn.180030fe0
test al, al
je 0x180034790
lea rcx, [rsp + 0x50]
call fcn.180031480
mov r15, qword [rsp + 0x58]
lea rdi, [r12 + 0xf0]
test r15, r15
je 0x180034681
add r15, 8
jmp 0x180034684
mov r15, r14
mov esi, dword [rsp + 0x60]
mov rbx, qword [rdi]
mov r12, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
sub r12, rbx
sub rdx, rbx
lea r13, [rsi + r15]
cmp rsi, rdx
jbe 0x180034745
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
ja 0x1800347c5
mov rcx, rdx
shr rcx, 1
sub rax, rcx
cmp rdx, rax
jbe 0x1800346cc
mov r12d, esi
jmp 0x1800346d7
lea r12, [rdx + rcx]
cmp r12, rsi
cmovb r12, rsi
test rbx, rbx
je 0x180034709
cmp rdx, 0x1000
jb 0x180034701
mov rcx, qword [rbx - 8]
add rdx, 0x27
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800347bf
mov rbx, rcx
mov rcx, rbx
call fcn.180360d9c
mov rdx, r12
mov rcx, rdi
call fcn.1803536c0
mov rbx, qword [rdi]
mov r8, rsi
mov rdx, r15
mov rcx, rbx
call fcn.180362260
lea rax, [rsi + rbx]
mov rbx, qword [rbp + 0x310]
mov rcx, rbx
mov qword [rdi + 8], rax
call fcn.180033170
test al, al
je 0x180034774
mov byte [rbx], 1
jmp 0x18003477b
cmp rsi, r12
jbe 0x180034717
mov r8, r12
mov rdx, r15
mov rcx, rbx
call fcn.180362260
mov rbx, qword [rdi + 8]
lea rdx, [r12 + r15]
sub r13, rdx
mov rcx, rbx
mov r8, r13
call fcn.180362260
lea rax, [rbx + r13]
jmp 0x180034729
mov rax, qword [rdi]
mov qword [rdi + 8], rax
mov rax, qword [rsp + 0x58]
mov r13, qword [rbp + 0x318]
test rax, rax
je 0x180034790
xchg dword [rax + 4], r14d
lea rcx, [rsp + 0x50]
call fcn.180031320
lea rcx, [rsp + 0x68]
call fcn.1803535d0
mov rcx, r13
add rsp, 0x3c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
jmp fcn.1803535d0
call fcn.1803687c0
int3
call fcn.1803536a0
int3