Function at 0x140048200
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1c8
mov rdi, rdx
mov rsi, rcx
movzx eax, byte [rdi]
mov rcx, rax
sub rcx, 0xe
ja 0x140048235
lea rcx, [0x1400c5a44]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, dword [0x1400e69e0]
or eax, dword [0x1400e69e4]
mov ecx, 0x3bfa7c8a
xor edx, edx
div ecx
sub eax, 0x57e44ac6
and eax, 0x7f94ca05
cmp eax, 0xf363f16f
jae 0x140048a98
jmp 0x140048261
mov eax, dword [0x1400e69e8]
sub eax, dword [0x1400e69ec]
xor eax, 0xef260da3
imul eax, eax, 0xc13b09b3
imul ebx, eax, 0xc2783e1f
mov qword [rsp + 0xc8], rdi
lea rax, [fcn.140048fe0]
mov qword [rsp + 0xd0], rax
lea rax, [0x1400c5790]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], 1
mov qword [rsp + 0x150], 0
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], 1
lea rcx, [rsp + 0xd8]
lea rdx, [rsp + 0x130]
call fcn.1400a0870
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x80], rax
mov byte [rsi + 8], 0x11
mov rax, qword [rsp + 0x69]
mov qword [rsi + 9], rax
mov rax, qword [rsp + 0x71]
mov qword [rsi + 0x11], rax
mov rax, qword [rsp + 0x79]
mov qword [rsi + 0x19], rax
mov eax, dword [rsp + 0x81]
mov dword [rsi + 0x21], eax
mov ax, word [rsp + 0x85]
mov word [rsi + 0x25], ax
mov al, byte [rsp + 0x87]
mov byte [rsi + 0x27], al
mov qword [rsi], 1
cmp ebx, 0xf45bbaa8
jae 0x140048261
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov byte [rsi + 8], 1
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov byte [rsi + 8], 1
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov rax, qword [rdi + 8]
mov qword [rsp + 0xf9], rax
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x101], rax
mov rax, qword [rdi + 0x18]
mov qword [rsp + 0x109], rax
mov byte [rsi + 8], 2
mov rax, qword [rsp + 0xf2]
mov qword [rsi + 9], rax
mov rax, qword [rsp + 0xfa]
mov qword [rsi + 0x11], rax
mov rax, qword [rsp + 0x102]
mov qword [rsi + 0x19], rax
mov eax, dword [rsp + 0x10a]
mov dword [rsi + 0x21], eax
mov ax, word [rsp + 0x10e]
mov word [rsi + 0x25], ax
mov al, byte [rsp + 0x110]
mov byte [rsi + 0x27], al
mov qword [rsi], 0
xor eax, eax
mov cl, 1
jmp 0x140048a0e
mov al, byte [rdi + 1]
mov byte [rsi + 8], 3
mov byte [rsi + 9], al
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov ax, word [rdi + 2]
mov byte [rsi + 8], 4
mov word [rsi + 0xa], ax
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov eax, dword [rdi + 4]
mov byte [rsi + 8], 5
mov dword [rsi + 0xc], eax
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov rax, qword [rdi + 8]
mov byte [rsi + 8], 6
mov qword [rsi + 0x10], rax
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
movss xmm0, dword [rdi + 4]
mov byte [rsi + 8], 7
movss dword [rsi + 0xc], xmm0
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
movsd xmm0, qword [rdi + 8]
mov byte [rsi + 8], 8
movsd qword [rsi + 0x10], xmm0
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov al, byte [rdi + 1]
mov byte [rsi + 8], 9
mov byte [rsi + 9], al
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov al, byte [rdi + 1]
mov byte [rsi + 8], 0xa
mov byte [rsi + 9], al
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov ax, word [rdi + 2]
mov byte [rsi + 8], 0xb
mov word [rsi + 0xa], ax
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov eax, dword [rdi + 4]
mov byte [rsi + 8], 0xc
mov dword [rsi + 0xc], eax
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov rax, qword [rdi + 8]
mov byte [rsi + 8], 0xd
mov qword [rsi + 0x10], rax
mov qword [rsi], 0
mov al, 1
mov cl, 1
jmp 0x140048a0e
mov rbx, qword [rdi + 0x10]
mov rax, qword [rdi + 8]
mov rcx, qword [rdi + 0x18]
mov rdx, rcx
shl rdx, 5
mov r12, rbx
add r12, rdx
mov qword [rsp + 0x160], rbx
lea r13, [rsp + 0x160]
add r13, 8
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], r12
mov qword [rsp + 0x88], 0
lea rdx, [rsp + 0x88]
add rdx, 8
mov eax, 8
mov qword [rsp + 0x90], rax
lea r8, [rsp + 0x88]
add r8, 0x10
mov qword [rsp + 0x98], 0
cmp rcx, 0
jne 0x1400485c9
jmp 0x1400486e2
lea r15, [rsp + 0x180]
add r15, 1
lea rax, [rsp + 0x1a0]
add rax, 8
mov qword [rsp + 0xb0], rax
lea rbp, [rsp + 0x1a0]
add rbp, 9
mov rax, rbx
add rax, 0x20
mov r14b, byte [rbx]
cmp r14b, 0x11
jne 0x14004860a
jmp 0x1400486df
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], r13
mov eax, dword [0x1400e69f0]
imul eax, dword [0x1400e69f4]
or eax, 0x315c1e3
mov ecx, 0x14d42d6e
xor edx, edx
div ecx
xor eax, 0xb092ce94
cmp eax, 0xe84b4fb7
je 0x140048b84
mov eax, dword [0x1400e69f8]
xor eax, dword [0x1400e69fc]
add eax, 0xdcf0c1f0
and eax, 0x8a3265a9
imul r13d, eax, 0xfadfaf5f
mov byte [rsp + 0x180], r14b
mov rax, qword [rbx + 1]
mov qword [r15], rax
mov rax, qword [rbx + 9]
mov qword [r15 + 8], rax
mov rax, qword [rbx + 0x11]
mov qword [r15 + 0x10], rax
mov eax, dword [rbx + 0x19]
mov dword [r15 + 0x18], eax
mov ax, word [rbx + 0x1d]
mov word [r15 + 0x1c], ax
mov al, byte [rbx + 0x1f]
mov byte [r15 + 0x1e], al
lea rcx, [rsp + 0x1a0]
lea rdx, [rsp + 0x180]
call fcn.140048200
cmp qword [rsp + 0x1a0], 0
sete al
cmp r13d, 0x4d3c1ba8
jb 0x140048b84
test al, 1
jne 0x1400486eb
jmp 0x140048775
mov rbx, rax
mov qword [r13], rbx
jmp 0x1400488fe
mov rax, qword [rsp + 0xb0]
mov bl, byte [rax]
mov rax, qword [rbp]
mov qword [rsp + 0x4a], rax
mov rax, qword [rbp + 8]
mov qword [rsp + 0x52], rax
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x5a], rax
mov eax, dword [rbp + 0x18]
mov dword [rsp + 0x62], eax
mov ax, word [rbp + 0x1c]
mov word [rsp + 0x66], ax
mov al, byte [rbp + 0x1e]
mov byte [rsp + 0x68], al
mov rax, qword [rsp + 0x4a]
mov qword [rsp + 0x2b], rax
mov rax, qword [rsp + 0x52]
mov qword [rsp + 0x33], rax
mov rax, qword [rsp + 0x5a]
mov qword [rsp + 0x3b], rax
mov eax, dword [rsp + 0x62]
mov dword [rsp + 0x43], eax
mov ax, word [rsp + 0x66]
mov word [rsp + 0x47], ax
mov al, byte [rsp + 0x68]
mov byte [rsp + 0x49], al
cmp bl, 0x11
mov r13, qword [rsp + 0xc0]
je 0x1400488f2
jmp 0x1400488d4
mov eax, dword [0x1400e6a00]
and eax, dword [0x1400e6a04]
add eax, 0x3d06d3b4
mov ecx, 0xb64c7fdb
xor edx, edx
div ecx
imul eax, eax, 0x19822d83
cmp eax, 0x4886c994
mov r14, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xb0]
jae 0x140048be0
mov eax, dword [0x1400e6a08]
xor edx, edx
div dword [0x1400e6a0c]
mov ebx, eax
sub ebx, 0xd3beaff3
sub ebx, 0x5ec50034
or ebx, 0x27dbc8cf
mov qword [r14], r15
mov al, byte [r12]
mov rcx, qword [rbp]
mov qword [rsp + 0x4a], rcx
mov rcx, qword [rbp + 8]
mov qword [rsp + 0x52], rcx
mov rcx, qword [rbp + 0x10]
mov qword [rsp + 0x5a], rcx
mov ecx, dword [rbp + 0x18]
mov dword [rsp + 0x62], ecx
mov cx, word [rbp + 0x1c]
mov word [rsp + 0x66], cx
mov cl, byte [rbp + 0x1e]
mov byte [rsp + 0x68], cl
mov rcx, qword [rsp + 0x4a]
mov qword [rsp + 0x2b], rcx
mov rcx, qword [rsp + 0x52]
mov qword [rsp + 0x33], rcx
mov rcx, qword [rsp + 0x5a]
mov qword [rsp + 0x3b], rcx
mov ecx, dword [rsp + 0x62]
mov dword [rsp + 0x43], ecx
mov cx, word [rsp + 0x66]
mov word [rsp + 0x47], cx
mov cl, byte [rsp + 0x68]
mov byte [rsp + 0x49], cl
mov rcx, qword [rsp + 0x2b]
mov qword [rsi + 9], rcx
mov rcx, qword [rsp + 0x33]
mov qword [rsi + 0x11], rcx
mov rcx, qword [rsp + 0x3b]
mov qword [rsi + 0x19], rcx
mov ecx, dword [rsp + 0x43]
mov dword [rsi + 0x21], ecx
mov cx, word [rsp + 0x47]
mov word [rsi + 0x25], cx
mov cl, byte [rsp + 0x49]
mov byte [rsi + 0x27], cl
mov byte [rsi + 8], al
mov qword [rsi], 1
lea rcx, [rsp + 0x88]
call fcn.1400548f0
mov rdx, qword [rsp + 0x88]
cmp rdx, 0
sete al
cmp ebx, 0x5d6d61f6
jbe 0x140048be0
test al, 1
jne 0x1400488cf
jmp 0x1400488b5
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax]
shl rdx, 5
mov r8d, 8
call fcn.140063a00
jmp 0x1400489fd
mov r8, qword [rsp + 0xa8]
mov r14, qword [r8]
cmp r14, qword [rsp + 0x88]
je 0x14004897f
jmp 0x140048994
mov rax, qword [rsp + 0xa0]
mov qword [r13], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x120], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x128], rax
mov byte [rsi + 8], 0xe
mov rax, qword [rsp + 0x111]
mov qword [rsi + 9], rax
mov rax, qword [rsp + 0x119]
mov qword [rsi + 0x11], rax
mov rax, qword [rsp + 0x121]
mov qword [rsi + 0x19], rax
mov eax, dword [rsp + 0x129]
mov dword [rsi + 0x21], eax
mov ax, word [rsp + 0x12d]
mov word [rsi + 0x25], ax
mov al, byte [rsp + 0x12f]
mov byte [rsi + 0x27], al
mov qword [rsi], 0
jmp 0x1400489fd
lea rcx, [rsp + 0x88]
call fcn.140062390
mov r8, qword [rsp + 0xa8]
mov rax, r14
shl rax, 5
mov rdx, qword [rsp + 0xb8]
add rax, qword [rdx]
mov byte [rax], bl
mov rcx, qword [rsp + 0x2b]
mov qword [rax + 1], rcx
mov rcx, qword [rsp + 0x33]
mov qword [rax + 9], rcx
mov rcx, qword [rsp + 0x3b]
mov qword [rax + 0x11], rcx
mov ecx, dword [rsp + 0x43]
mov dword [rax + 0x19], ecx
mov cx, word [rsp + 0x47]
mov word [rax + 0x1d], cx
mov cl, byte [rsp + 0x49]
mov byte [rax + 0x1f], cl
add r14, 1
mov qword [r8], r14
mov rax, qword [rsp + 0xa0]
cmp rax, r12
mov rbx, rax
jne 0x1400485f8
mov rax, r12
jmp 0x1400486df
lea rcx, [rsp + 0x160]
call case.0x1400587e2.25
mov al, 1
xor ecx, ecx
movzx edx, byte [rdi]
mov r8, rdx
sub r8, 2
je 0x140048a2e
jmp 0x140048a1c
sub rdx, 0xe
je 0x140048a34
jmp 0x140048a24
mov rcx, rdi
call fcn.140048ee0
jmp 0x140048a3b
test al, 1
jne 0x140048a52
jmp 0x140048a3b
test cl, 1
jne 0x140048a6d
jmp 0x140048a3b
mov rax, rsi
add rsp, 0x1c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rdi + 8]
cmp rdx, 0
je 0x140048a3b
mov rcx, qword [rdi + 0x10]
mov r8d, 1
call fcn.140063a00
jmp 0x140048a3b
mov rcx, rdi
add rcx, 8
call fcn.1400548f0
mov rdx, qword [rdi + 8]
cmp rdx, 0
je 0x140048a3b
mov rcx, qword [rdi + 0x10]
shl rdx, 5
mov r8d, 8
call fcn.140063a00
jmp 0x140048a3b
retf
jns 0x140048b9d
mov dword [rsi + 0x19], eax
mov eax, dword [rsp + 0x81]
mov dword [rsi + 0x21], eax
mov ax, word [rsp + 0x85]
mov word [rsi + 0x25], ax
mov al, byte [rsp + 0x87]
mov byte [rsi + 0x27], al
mov qword [rsi], 1
jmp 0x14004825f
div ch
loope 0x140048b53
out 0x36, eax
invalid
mov dword [rdi], eax
mov rax, qword [rbx + 9]
mov qword [r15 + 8], rax
mov rax, qword [rbx + 0x11]
mov qword [r15 + 0x10], rax
mov eax, dword [rbx + 0x19]
mov dword [r15 + 0x18], eax
mov ax, word [rbx + 0x1d]
mov word [r15 + 0x1c], ax
mov al, byte [rbx + 0x1f]
mov byte [r15 + 0x1e], al
lea rcx, [rsp + 0x1a0]
lea rdx, [rsp + 0x180]
call fcn.140048200
jmp 0x140048655
mov esp, 0xf917272e
fmul qword [rbx + 0x4d]
mov dword [rsi], edi
mov al, byte [r12]
mov rcx, qword [rbp]
mov qword [rsp + 0x4a], rcx
mov rcx, qword [rbp + 8]
mov qword [rsp + 0x52], rcx
mov rcx, qword [rbp + 0x10]
mov qword [rsp + 0x5a], rcx
mov ecx, dword [rbp + 0x18]
mov dword [rsp + 0x62], ecx
mov cx, word [rbp + 0x1c]
mov word [rsp + 0x66], cx
mov cl, byte [rbp + 0x1e]
mov byte [rsp + 0x68], cl
mov rcx, qword [rsp + 0x4a]
mov qword [rsp + 0x2b], rcx
mov rcx, qword [rsp + 0x52]
mov qword [rsp + 0x33], rcx
mov rcx, qword [rsp + 0x5a]
mov qword [rsp + 0x3b], rcx
mov ecx, dword [rsp + 0x62]
mov dword [rsp + 0x43], ecx
mov cx, word [rsp + 0x66]
mov word [rsp + 0x47], cx
mov cl, byte [rsp + 0x68]
mov byte [rsp + 0x49], cl
mov rcx, qword [rsp + 0x2b]
mov qword [rsi + 9], rcx
mov rcx, qword [rsp + 0x33]
mov qword [rsi + 0x11], rcx
mov rcx, qword [rsp + 0x3b]
mov qword [rsi + 0x19], rcx
mov ecx, dword [rsp + 0x43]
mov dword [rsi + 0x21], ecx
mov cx, word [rsp + 0x47]
mov word [rsi + 0x25], cx
mov cl, byte [rsp + 0x49]
mov byte [rsi + 0x27], cl
mov byte [rsi + 8], al
mov qword [rsi], 1
lea rcx, [rsp + 0x88]
call fcn.1400548f0
jmp 0x1400487b8