Function at 0x2e3ddbad0
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rsi
push rbx
sub rsp, 0x28
mov rax, qword [0x2e3f56d00]
xor r12d, r12d
mov rsi, rcx
mov rbx, rdx
mov rcx, rdx
call qword [rax + 0x50]
mov r13, rax
nop dword [rax + rax]
cmp r12, rbx
jge 0x2e3d9ccc8
test r12, r12
js 0x2e3d9ccb8
mov rax, qword [0x2e3f56d00]
movzx ecx, byte [rsi + r12]
call qword [rax + 0x100]
mov rdx, r12
mov rcx, r13
mov r8, rax
mov rax, qword [0x2e3f56d00]
call qword [rax + 0x68]
add r12, 1
jno 0x2e3d9cc78
call fcn.2e3d8b730
nop word [rax + rax]
lea rdx, [rbx - 1]
mov rcx, r12
call fcn.2e3d8b130
nop dword [rax]
mov rax, r13
add rsp, 0x28
pop rbx
pop rsi
pop r12
pop r13
ret
push r13
push r12
push rsi
push rbx
sub rsp, 0x28
mov rax, qword [0x2e3f56d00]
xor r12d, r12d
mov rsi, rcx
mov rbx, rdx
mov rcx, rdx
call qword [rax + 0x50]
mov r13, rax
nop dword [rax + rax]
cmp r12, rbx
jge 0x2e3d9e760
test r12, r12
js 0x2e3d9e750
mov rcx, qword [rsi + r12*8]
call fcn.2e3d9e550
mov rdx, r12
mov rcx, r13
mov r8, rax
mov rax, qword [0x2e3f56d00]
call qword [rax + 0x68]
add r12, 1
jno 0x2e3d9e718
call fcn.2e3d8b730
nop dword [rax]
lea rdx, [rbx - 1]
mov rcx, r12
call fcn.2e3d8b130
nop dword [rax]
mov rax, r13
add rsp, 0x28
pop rbx
pop rsi
pop r12
pop r13
ret
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rax, qword [0x2e3f56d00]
xor r12d, r12d
mov rsi, rcx
mov rbx, rdx
lea rdi, [rsp + 0x20]
mov rcx, rdx
call qword [rax + 0x50]
mov r13, rax
nop dword [rax]
cmp r12, rbx
jge 0x2e3d9ea80
test r12, r12
js 0x2e3d9ea70
lea rax, [r12 + r12*2]
mov rcx, rdi
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.2e3d9e7e0
mov rdx, r12
mov rcx, r13
mov r8, rax
mov rax, qword [0x2e3f56d00]
call qword [rax + 0x68]
add r12, 1
jno 0x2e3d9ea20
call fcn.2e3d8b730
lea rdx, [rbx - 1]
mov rcx, r12
call fcn.2e3d8b130
nop dword [rax]
mov rax, r13
add rsp, 0x40
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 0x2e3ddbb78
mov rdx, qword [r8]
add rcx, 0x10
test rdx, rdx
js 0x2e3ddc0c8
call fcn.2e3d90650
mov rbx, rax
test rax, rax
je 0x2e3ddbb87
mov r9, qword [rax]
lea r14, [rax + 0x10]
xor eax, eax
mov rcx, r14
lea r8, [r14 + r9]
test r9, r9
jle case.0x2e3ddbb72.0
nop word [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.0x2e3ddbb72
lea rdx, [rax + rax*8]
mov rax, rdx
shr rax, 0xb
xor rax, rdx
lea rdx, [0x2e3efbb1c]
and eax, 0xf
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
xor edx, edx
call fcn.2e3d90650
mov rbx, rax
test rax, rax
jne 0x2e3ddbb0e
mov rcx, qword [0x2e3f0a5b0]
mov edx, 0x30
lea r13, [0x2e3efbb13]
movabs rbx, 0x7079742061746164
call fcn.2e3d88b70
mov ecx, 0x13
mov r12, rax
mov rax, qword [0x2e3f0a340]
mov qword [r12 + 0x10], r13
mov qword [r12], rax
call fcn.2e3d88bb0
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 0x2e3ddbc88
cmp r9, 4
je 0x2e3ddc131
nop dword [rax]
mov rcx, qword [0x2e3f0a5b0]
mov edx, 0x30
lea r13, [0x2e3efbb13]
call fcn.2e3d88b70
mov r12, rax
mov rax, qword [0x2e3f0a340]
mov qword [r12 + 0x10], r13
mov qword [r12], rax
mov rax, qword [rbx]
lea rcx, [rax + 0x13]
call fcn.2e3d88bb0
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 0x2e3ddbcc5
mov rbx, qword [rax - 0x10]
lea r14, [rax - 0x10]
lea rdx, [rbx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x2e3ddbcc5
mov rcx, qword [0x2e3f0af50]
call fcn.2e3e59960
mov rdx, r14
lea rcx, [rax + 0x18]
call fcn.2e3d7eda0
mov rax, qword [r12 + 8]
mov qword [r12 + 0x18], rsi
test rax, rax
je 0x2e3ddbd02
mov rsi, qword [rax - 0x10]
lea r14, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x2e3ddbd02
mov rcx, qword [0x2e3f0af50]
call fcn.2e3e59960
mov rdx, r14
lea rcx, [rax + 0x18]
call fcn.2e3d7eda0
mov qword [r12 + 8], 0
lea r9, [0x2e3efbb04]
mov rdx, r13
mov rcx, r12
mov qword [rsp + 0x20], 0x7c
lea r8, str.read
call fcn.2e3d8aee0
xor eax, eax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
cmp r9, 4
jne 0x2e3ddc1d1
cmp dword [rbx + 0x10], 0x38746e69
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc3ad
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dbd560
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbd7c
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9c8e0
cmp r9, 3
je 0x2e3ddc0d9
cmp r9, 4
jne 0x2e3ddc0e5
cmp dword [rbx + 0x10], 0x6c6f6f62
jne 0x2e3ddc0e5
cmp rsi, 1
je 0x2e3ddc416
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dc6d40
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbdd7
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp 0x2e3d9cc50
cmp r9, 5
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x33746e69
jne case.0x2e3ddbb72.4
cmp byte [r14 + 4], 0x32
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc22d
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dbcfc0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbe33
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9c850
cmp r9, 6
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x746e6975
jne case.0x2e3ddbb72.4
cmp word [r14 + 4], 0x3436
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc2b1
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dbed70
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbe91
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9c7b0
cmp r9, 4
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x65747962
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc28c
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3db6130
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbee2
mov rdx, qword [rax]
add rcx, 0x10
mov rax, qword [0x2e3f0f9c0]
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, 5
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x31746e69
jne case.0x2e3ddbb72.4
cmp byte [r14 + 4], 0x36
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc2d9
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dbdca0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbf4d
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9c970
cmp r9, 5
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x36746e69
jne case.0x2e3ddbb72.4
cmp byte [r14 + 4], 0x34
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc320
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dbe240
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbfa9
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9ca00
cmp r9, 4
jne 0x2e3ddc1a8
cmp dword [rbx + 0x10], 0x33636576
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc3d5
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dc67a0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddbffa
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp 0x2e3d9e9f0
cmp r9, 4
jne 0x2e3ddc178
cmp dword [rbx + 0x10], 0x746e6975
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc25e
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dbe7e0
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddc04b
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9ca90
cmp qword [rbx], 7
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x616f6c66
jne case.0x2e3ddbb72.4
cmp word [r14 + 4], 0x3674
jne case.0x2e3ddbb72.4
cmp byte [r14 + 6], 0x34
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc348
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dc0700
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddc0b4
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9cbc0
lea r9, [rdx - 1]
mov r8, rdx
xor ecx, ecx
mov rdx, r9
call fcn.2e3d91820
cmp word [rbx + 0x10], 0x6e69
je 0x2e3ddc406
lea rdx, [0x2e3efbf70]
mov rcx, rbx
call fcn.2e3d92ea0
test al, al
je case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc282
test rsi, rsi
js 0x2e3ddc3a8
mov rcx, r12
mov r8, rsi
mov rdx, r13
call fcn.2e3dd5420
mov rcx, rax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9cf30
cmp dword [rbx + 0x10], 0x32636576
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc301
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dc6200
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddc167
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp 0x2e3d9e6f0
cmp r9, 6
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x746e6975
jne case.0x2e3ddbb72.4
cmp word [r14 + 4], 0x3233
jne case.0x2e3ddbb72.4
jmp 0x2e3ddc022
cmp r9, 6
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x69727473
jne case.0x2e3ddbb72.4
cmp word [r14 + 4], 0x676e
jne case.0x2e3ddbb72.4
jmp 0x2e3ddc0fc
cmp r9, 5
jne case.0x2e3ddbb72.4
cmp dword [rbx + 0x10], 0x616f6c66
jne case.0x2e3ddbb72.4
cmp byte [r14 + 4], 0x74
jne case.0x2e3ddbb72.4
cmp rsi, 1
je 0x2e3ddc380
mov rdx, r13
mov rcx, r12
mov r8, rsi
call fcn.2e3dc0160
xor edx, edx
mov rcx, rax
test rax, rax
je 0x2e3ddc21c
mov rdx, qword [rax]
add rcx, 0x10
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9cb20
mov rdx, r13
mov rcx, r12
call fcn.2e3dbba20
lea rcx, str.ibhLIK
mov edx, eax
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp rax
mov rdx, r13
mov rcx, r12
call fcn.2e3db9870
lea rcx, [0x2e3efbb00]
mov edx, eax
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x2e3ddc24f
mov esi, 0x1e
jmp 0x2e3ddc10f
mov rdx, r13
mov rcx, r12
call fcn.2e3dbab70
lea rcx, [0x2e3efbaf0]
movzx edx, al
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x2e3ddc24f
mov rdx, r13
mov rcx, r12
call fcn.2e3dba130
lea rcx, [0x2e3efbb02]
mov rdx, rax
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x2e3ddbef3
mov rdx, r13
mov rcx, r12
call fcn.2e3dbc400
lea rcx, [0x2e3efbafc]
movsx edx, ax
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x2e3ddc24f
mov rcx, r12
mov rdx, r13
call fcn.2e3dc0ca0
mov rcx, rax
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.2e3d9e550
mov rdx, r13
mov rcx, r12
call fcn.2e3dbc8b0
lea rcx, [0x2e3efbafe]
mov rdx, rax
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x2e3ddbef3
mov rdx, r13
mov rcx, r12
call fcn.2e3dbfa30
mov rax, qword [0x2e3f0f9c0]
movq rdx, xmm0
movapd xmm1, xmm0
mov rax, qword [rax]
mov rax, qword [rax + 8]
lea rcx, [0x2e3efbae9]
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp rax
mov rdx, r13
mov rcx, r12
call fcn.2e3dbf300
mov rax, qword [0x2e3f0f9c0]
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
movq rdx, xmm1
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x2e3ddc36a
call fcn.2e3d8b060
mov rdx, r13
mov rcx, r12
call fcn.2e3dbbfb0
lea rcx, [0x2e3efbafa]
movsx edx, al
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 8]
jmp 0x2e3ddc24f
lea rcx, [rsp + 0x48]
mov r8, r13
mov rdx, r12
call fcn.2e3dc13a0
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.2e3d9e7e0
jmp 0x2e3ddbd2f
cmp byte [r14 + 2], 0x74
jne 0x2e3ddc0e5
jmp 0x2e3ddbe0a
mov rcx, r12
mov rdx, r13
call fcn.2e3dc2fa0
movzx ecx, al
mov rax, qword [0x2e3f0f9c0]
mov rax, qword [rax]
mov rax, qword [rax + 0x100]
add rsp, 0x60
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp rax