Function at 0x22dc7d3b0
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdi, qword [0x22ddb2b80]
xor r12d, r12d
mov rax, qword [rdi]
mov rsi, rcx
mov rbx, rdx
mov rcx, rdx
call qword [rax + 0x50]
mov r13, rax
nop word [rax + rax]
cmp r12, rbx
jge 0x22dc44e20
test r12, r12
js 0x22dc44e10
mov rcx, qword [rsi + r12*8]
call fcn.22dc41560
mov r9, qword [rdi]
mov rdx, r12
mov rcx, r13
mov r8, rax
call qword [r9 + 0x68]
add r12, 1
jno 0x22dc44de0
call fcn.22dc28aa0
nop
lea rdx, [rbx - 1]
mov rcx, r12
call fcn.22dc29e70
nop dword [rax]
mov rax, r13
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rdi, qword [0x22ddb2b80]
xor r12d, r12d
mov rax, qword [rdi]
mov rsi, rcx
mov rbx, rdx
lea rbp, [rsp + 0x20]
mov rcx, rdx
call qword [rax + 0x50]
mov r13, rax
nop dword [rax]
cmp r12, rbx
jge 0x22dc44ec0
test r12, r12
js 0x22dc44eb0
lea rax, [r12 + r12*2]
mov rcx, rbp
lea rax, [rsi + rax*4]
mov rdx, qword [rax]
mov eax, dword [rax + 8]
mov qword [rsp + 0x34], rdx
mov qword [rsp + 0x20], rdx
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x28], eax
call fcn.22dc44140
mov r9, qword [rdi]
mov rdx, r12
mov rcx, r13
mov r8, rax
call qword [r9 + 0x68]
add r12, 1
jno 0x22dc44e60
call fcn.22dc28aa0
nop dword [rax]
lea rdx, [rbx - 1]
mov rcx, r12
call fcn.22dc29e70
nop dword [rax]
mov rax, r13
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, qword [0x22ddb2b80]
xor r12d, r12d
mov rax, qword [rsi]
mov rdi, rcx
mov rbx, rdx
mov rcx, rdx
call qword [rax + 0x50]
mov r13, rax
nop word [rax + rax]
cmp r12, rbx
jge 0x22dc44f48
test r12, r12
js 0x22dc44f38
mov rax, qword [rsi]
movzx ecx, byte [rdi + r12]
call qword [rax + 0x100]
mov r9, qword [rsi]
mov rdx, r12
mov rcx, r13
mov r8, rax
call qword [r9 + 0x68]
add r12, 1
jno 0x22dc44f00
call fcn.22dc28aa0
nop dword [rax + rax]
lea rdx, [rbx - 1]
mov rcx, r12
call fcn.22dc29e70
nop dword [rax]
mov rax, r13
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x60
mov r12, rcx
mov r13, rdx
mov rcx, r8
mov rsi, r9
test r8, r8
je 0x22dc7d598
mov rdx, qword [r8]
add rcx, 0x10
test rdx, rdx
js 0x22dc7d660
call fcn.22dc2cda0
mov rbx, rax
test rax, rax
je 0x22dc7d5ab
mov r9, qword [rax]
lea r14, [rax + 0x10]
xor eax, eax
mov rcx, r14
lea r8, [r14 + r9]
test r9, r9
jle case.0x22dc7d452.0
nop dword [rax + rax]
movzx edx, byte [rcx]
add rcx, 1
add rdx, rax
mov rax, rdx
shl rax, 0xa
add rax, rdx
mov rdx, rax
shr rdx, 6
xor rax, rdx
cmp r8, rcx
jne case.default.0x22dc7d452
lea rdx, [rax + rax*8]
mov rax, rdx
shr rax, 0xb
xor rax, rdx
lea rdx, [0x22dd9eac0]
and eax, 0x1f
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
cmp r9, 4
jne 0x22dc7d467
cmp dword [rbx + 0x10], 0x6c6f6f62
je 0x22dc7db21
lea rdx, [0x22dd9edf0]
mov rcx, rbx
call fcn.22dc324b0
test al, al
jne 0x22dc7d7b5
nop
mov rcx, qword [0x22ddad800]
mov edx, 0x30
lea r13, [0x22dd9eab5]
call fcn.22dc27b50
mov r12, rax
mov rax, qword [0x22ddad510]
mov qword [r12 + 0x10], r13
mov qword [r12], rax
mov rax, qword [rbx]
lea rcx, [rax + 0x13]
call fcn.22dc27b90
movabs rdx, 0x206e776f6e6b6e55
movabs rcx, 0x7079742061746164
mov rsi, rax
mov rax, qword [rax]
lea rax, [rsi + rax + 0x10]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov dword [rax + 0x10], 0x203a65
mov rax, qword [rsi]
lea rdx, [rax + 0x13]
lea rcx, [rsi + rax + 0x23]
mov qword [rsi], rdx
mov rax, qword [rbx]
mov rdx, r14
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [rsi], rax
add qword [rsi - 0x10], 8
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x22dc7d531
mov rbx, qword [rax - 0x10]
lea r14, [rax - 0x10]
lea rdx, [rbx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x22dc7d640
mov rax, qword [r12 + 8]
mov qword [r12 + 0x18], rsi
test rax, rax
je 0x22dc7d55a
mov rsi, qword [rax - 0x10]
lea r14, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x22dc7d620
mov qword [r12 + 8], 0
lea r9, [0x22dd9eaa6]
mov rdx, r13
mov rcx, r12
mov qword [rsp + 0x20], 0x83
lea r8, str.read
call fcn.22dc29b30
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
xor edx, edx
call fcn.22dc2cda0
mov rbx, rax
test rax, rax
jne 0x22dc7d3f2
mov rcx, qword [0x22ddad800]
mov edx, 0x30
lea r13, [0x22dd9eab5]
movabs rbx, 0x7079742061746164
call fcn.22dc27b50
mov ecx, 0x13
mov r12, rax
mov rax, qword [0x22ddad510]
mov qword [r12 + 0x10], r13
mov qword [r12], rax
call fcn.22dc27b90
movabs rcx, 0x206e776f6e6b6e55
mov rsi, rax
mov rax, qword [rax]
lea rax, [rsi + rax + 0x10]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov dword [rax + 0x10], 0x203a65
add qword [rsi], 0x13
jmp 0x22dc7d508
mov rcx, qword [0x22ddae200]
call fcn.22dcfcd40
mov rdx, r14
lea rcx, [rax + 0x18]
call fcn.22dc1c480
jmp 0x22dc7d55a
mov rcx, qword [0x22ddae200]
call fcn.22dcfcd40
mov rdx, r14
lea rcx, [rax + 0x18]
call fcn.22dc1c480
jmp 0x22dc7d531
lea r9, [rdx - 1]
mov r8, rdx
xor ecx, ecx
mov rdx, r9
call fcn.22dc2a130
cmp r9, 4
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x38746e69
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dc95
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc5e850
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d6b1
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d120
cmp qword [rbx], 7
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x616f6c66
jne case.0x22dc7d452.4
cmp word [r14 + 4], 0x3674
jne case.0x22dc7d452.4
cmp byte [r14 + 6], 0x34
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dc71
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc65780
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d71a
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d490
cmp r9, 4
jne 0x22dc7d73a
cmp dword [rbx + 0x10], 0x746e6975
je 0x22dc7d751
lea rdx, [0x22dd9ed10]
mov rcx, rbx
call fcn.22dc324b0
test al, al
je case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7db9f
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc5f920
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d77a
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d2d0
cmp r9, 4
jne 0x22dc7d79e
cmp dword [rbx + 0x10], 0x33636576
je 0x22dc7db5b
lea rdx, [0x22dd9ed50]
mov rcx, rbx
call fcn.22dc324b0
test al, al
je case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7db95
test rsi, rsi
js 0x22dc7dd35
mov rcx, r12
mov r8, rsi
mov rdx, r13
call fcn.22dc75c40
mov rcx, rax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3e8c0
cmp r9, 5
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x36746e69
jne case.0x22dc7d452.4
cmp byte [r14 + 4], 0x34
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dd0d
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc5f380
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d835
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d240
cmp r9, 6
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x746e6975
jne case.0x22dc7d452.4
cmp word [r14 + 4], 0x3631
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dce5
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc5feb0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d893
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d360
cmp r9, 4
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x65747962
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dcbd
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc584f0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d8e4
mov rdx, qword [rax]
add rcx, 0x10
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 0x178]
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp rax
cmp r9, 6
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x746e6975
jne case.0x22dc7d452.4
cmp word [r14 + 4], 0x3436
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dbee
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc63660
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d951
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3cff0
cmp r9, 5
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x33746e69
jne case.0x22dc7d452.4
cmp byte [r14 + 4], 0x32
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7daf0
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc5e2b0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d9ad
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d090
cmp r9, 4
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x32636576
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dc52
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc69cf0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7d9fe
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp 0x22dc44db0
cmp r9, 3
jne case.0x22dc7d452.4
cmp word [rbx + 0x10], 0x6e69
jne case.0x22dc7d452.4
cmp byte [r14 + 2], 0x74
jne case.0x22dc7d452.4
jmp 0x22dc7d984
cmp r9, 5
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x616f6c66
jne case.0x22dc7d452.4
cmp byte [r14 + 4], 0x74
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dc16
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc651e0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7da83
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d3f0
cmp r9, 5
jne case.0x22dc7d452.4
cmp dword [rbx + 0x10], 0x31746e69
jne case.0x22dc7d452.4
cmp byte [r14 + 4], 0x36
jne case.0x22dc7d452.4
cmp rsi, 1
je 0x22dc7dbc6
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc5ede0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7dadf
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc3d1b0
mov rdx, r13
mov rcx, r12
call fcn.22dc5cd10
lea rcx, [0x22dd9eaa0]
mov edx, eax
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp rax
cmp rsi, 1
je 0x22dc7dd3a
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc6a830
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7db4a
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp 0x22dc44ed0
cmp rsi, 1
je 0x22dc7dd68
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.22dc6a290
xor edx, edx
mov rcx, rax
test rax, rax
je 0x22dc7db84
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp 0x22dc44e30
mov esi, 0x1e
jmp 0x22dc7d7c8
mov rdx, r13
mov rcx, r12
call fcn.22dc5b780
lea rcx, [0x22dd9ea90]
mov edx, eax
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7db12
mov rdx, r13
mov rcx, r12
call fcn.22dc5d6f0
lea rcx, [0x22dd9eaa4]
movsx edx, ax
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7db12
mov rdx, r13
mov rcx, r12
call fcn.22dc5bc90
lea rcx, [0x22dd9ea94]
mov rdx, rax
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7d8f5
mov rdx, r13
mov rcx, r12
call fcn.22dc63bf0
mov rax, qword [0x22ddb2b80]
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
movq rdx, xmm1
mov rax, qword [rax]
mov rax, qword [rax + 8]
lea rcx, [0x22dd9ea96]
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp rax
mov rcx, r12
mov rdx, r13
call fcn.22dc674a0
mov rcx, rax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.22dc41560
mov rdx, r13
mov rcx, r12
call fcn.22dc64170
mov rax, qword [0x22ddb2b80]
movq rdx, xmm0
movapd xmm1, xmm0
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7dc3c
mov rdx, r13
mov rcx, r12
call fcn.22dc5d2a0
lea rcx, [0x22dd9eaa2]
movsx edx, al
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7db12
mov rdx, r13
mov rcx, r12
call fcn.22dc65d20
lea rcx, [0x22dd9ea98]
movzx edx, al
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7db12
mov rdx, r13
mov rcx, r12
call fcn.22dc5c330
lea rcx, [0x22dd9ea92]
movzx edx, ax
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7db12
mov rdx, r13
mov rcx, r12
call fcn.22dc5dba0
lea rcx, str.LIHKdB
mov rdx, rax
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x22dc7d8f5
call fcn.22dc29cb0
mov rcx, r12
mov rdx, r13
call fcn.22dc60440
movzx ecx, al
mov rax, qword [0x22ddb2b80]
mov rax, qword [rax]
mov rax, qword [rax + 0x100]
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp rax
lea rcx, [rsp + 0x48]
mov r8, r13
mov rdx, r12
call fcn.22dc68290
mov rax, qword [rsp + 0x48]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x38], eax
call fcn.22dc44140
jmp 0x22dc7d587