Function at 0x1800473e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov rax, qword [0x1804762b8]
xor rax, rsp
mov qword [rsp + 0xe0], rax
lea eax, [rcx + 0x12]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], r9
mov rsi, r8
mov dword [rsp + 0x3c], eax
mov r13d, ecx
cmp ecx, eax
jae case.0x180047464.30
mov rbp, qword [rsp + 0x50]
lea r8, [0x180000000]
mov r15d, dword [rsp + 0x3c]
lea r9, [0x180002640]
mov r14d, dword [rsp + 0x3c]
mov r12d, 0x80
lea eax, [r13 - 0x1c]
cmp eax, 0x5e
ja case.0x180047464.45
movzx eax, byte [r8 + rax + 0x47840]
mov ecx, dword [r8 + rax*4 + 0x477f8]
add rcx, r8
jmp rcx
cmp dword [rsi], r12d
jge case.0x180047464.45
movsxd rax, dword [rsp + 0x38]
movzx eax, word [r8 + rax*2 + 0xf3280]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.1800e9340
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r10, qword [rsi + 8]
xor r9d, r9d
test r10, r10
je 0x1800477a1
xor r8d, r8d
nop dword [rax]
mov edx, 0x43
cmp edx, 0x43
je 0x180047523
cmp edx, 0x6e
jne 0x18004752a
test rbp, rbp
je 0x18004752a
mov ecx, dword [rbp + 4]
lea eax, [rcx - 7]
cmp eax, 1
jbe 0x1800474ea
cmp ecx, 2
je 0x1800474ea
cmp dword [rbp], 8
jne 0x180047518
mov eax, 0x62
nop
cmp eax, 0x62
je 0x1800474fe
cmp eax, 0x334c
je case.0x180047464.30
jmp 0x18004750c
mov ecx, dword [rsi + 0x18]
test cl, 1
jne 0x18004750c
or ecx, 1
mov dword [rsi + 0x18], ecx
add eax, 0x32ea
cmp eax, 0x65d4
jbe 0x1800474f0
mov rbp, qword [rbp + 0x30]
test rbp, rbp
jne 0x1800474d4
jmp 0x18004752a
mov rax, qword [rsi]
mov rbp, qword [r8 + rax]
add edx, 0x2b
cmp edx, 0x99
jb 0x1800474c5
inc r9
add r8, 0x18
cmp r9, r10
jb 0x1800474c0
jmp 0x180047795
mov eax, dword [rsi]
sar eax, 6
and eax, 0x1ff
mov dword [rsi], eax
and eax, 0x7f
mov dword [rsp + 0x38], eax
jmp case.0x180047464.45
mov eax, 0xde
nop word [rax + rax]
cmp eax, 0xde
je 0x1800477bb
add eax, 0x2016
cmp eax, 0x2016
jbe 0x180047570
mov rax, qword [rsp + 0x40]
cmp dword [rax], 1
jne case.0x180047464.45
mov byte [rsp + 0x30], 1
jmp case.0x180047464.30
mov rax, qword [rsp + 0x40]
mov r9d, 0xb6
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, rsi
call fcn.18008b130
test al, al
jne 0x180047595
jmp 0x180047795
xor r15d, r15d
jmp case.0x180047464.45
mov eax, 0xa1
cmp eax, 0xa1
je 0x1800477d3
add eax, 0x3f
cmp eax, 0xe0
jb 0x1800475d2
lea rax, [rsp + 0x60]
mov r8, rdx
mov qword [rsp + 0x50], rax
lea r9, [rsp + 0x50]
lea rax, [rsp + 0xdf]
mov rcx, rsi
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call qword [rsi + 0x78]
jmp 0x180047795
mov eax, dword [rsi]
cmp eax, 0x100
jl 0x1800477e0
cmp eax, 0x180
jge case.0x180047464.45
movsxd rax, dword [rsp + 0x38]
movzx eax, word [r8 + rax*2 + 0xf3280]
neg eax
jmp 0x18004747d
mov rcx, qword [rsi]
movzx eax, byte [rcx]
test al, al
je 0x18004766a
nop dword [rax]
inc rcx
imul r15d, r15d, 0xf4243
movzx eax, al
mov qword [rsi], rcx
xor r15d, eax
movzx eax, byte [rcx]
test al, al
jne 0x180047650
mov dword [rsp + 0x30], r15d
jmp case.0x180047464.45
mov qword [rsp + 0x28], 0
lea r8, str.UTF_16
mov r9d, 0xc8
mov qword [rsp + 0x20], 0
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.18007b250
test eax, eax
je 0x1800476d4
cmp dword [rsi + 0x88], 2
jne 0x1800476d4
mov ecx, 0x88
mov eax, ecx
sub eax, 0x88
je 0x1800476c5
cmp eax, 1
je case.0x180047464.30
jmp 0x1800476ca
mov qword [rsp + 0x30], rsi
inc ecx
cmp ecx, 0x8a
jb 0x1800476b1
xor edx, edx
lea rax, [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea ecx, [rdx + 0x57]
call fcn.180040b70
mov r14d, eax
jmp 0x180047795
cmp qword [rsp + 0x40], rdx
jne 0x1800477f0
mov rax, qword [rsp + 0x50]
mov byte [rax], 0
jmp case.0x180047464.45
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0x17
jne case.0x180047464.45
mov eax, 0x5d
cmp eax, 0x5d
je 0x180047731
cmp eax, 0x60
je 0x180047595
jmp 0x180047738
mov qword [rsi + 0x98], r9
add eax, 3
cmp eax, 0x63
jb 0x180047721
jmp case.0x180047464.45
cmp r14d, 0xffffffff
je 0x1800477f0
movsxd rax, r14d
mov rax, qword [r8 + rax*8 + 0xf1ce8]
mov qword [rsp + 0x30], rax
jmp case.0x180047464.45
mov edi, 0x4c
mov eax, edi
sub eax, 0x4c
je 0x180047775
cmp eax, 1
je case.0x180047464.30
jmp 0x18004778e
xor edx, edx
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 0x59]
call fcn.18004f870
mov byte [rsp + 0x30], al
inc edi
cmp edi, 0x4e
jb 0x180047763
mov rdx, qword [rsp + 0x48]
lea r8, [0x180000000]
lea r9, [0x180002640]
inc r13d
cmp r13d, dword [rsp + 0x3c]
jb 0x180047443
jmp case.0x180047464.30
sub r12d, dword [rsp + 0x38]
movsxd rax, r12d
movzx eax, word [r8 + rax*2 + 0xf3280]
neg eax
jmp 0x18004747d
mov dword [rsp + 0x30], 0
jmp case.0x180047464.30
sub r12d, dword [rsp + 0x38]
movsxd rax, r12d
jmp 0x180047474
xor eax, eax
jmp 0x180047486