Function at 0x140090a80
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants
Resolve function by parsing pe exports

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x90
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x28], r9
test rcx, rcx
je 0x1400917e0
test rdx, rdx
je 0x1400917f0
mov rbx, r8
mov eax, 4
and ebx, 0xf
mov qword [rsp + 0x88], rbx
jne 0x140090b20
cmp qword [rbp + 0x30], 0
je 0x140091800
mov rax, qword [rbp + 0x30]
sub r8, 0x20
mov rdx, qword [rax]
mov qword [rax], r8
test r9, r9
je 0x1400917d0
mov eax, 9
cmp r8, rdx
ja 0x140090b20
cmp qword [rcx], 0xf
mov rsi, rcx
mov eax, 7
jbe 0x140090b20
mov rax, qword [rbp + 0x18]
mov eax, dword [rax]
cmp dword [0x1400cec60], eax
jne 0x140090b1b
mov rax, qword [rbp + 0x18]
cmp byte [rax + 4], 1
je 0x140090b38
mov eax, 0xa
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp byte [rax + 5], 2
jne 0x140090b1b
movzx ebx, word [rax + 6]
cmp bx, 3
sete al
test bx, bx
sete dl
or al, dl
jne 0x140090b1b
test ebx, 0xfffc
jne 0x140090b1b
mov rax, qword [rbp + 0x18]
movzx eax, byte [rax + 8]
mov byte [rsp + 0x3d], al
test al, 0xfe
jne 0x140090b1b
mov rax, qword [rbp + 0x18]
mov rcx, r9
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x18]
lea rdx, [rax + 0x20]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp + 0x30]
mov rax, qword [rax]
test rax, rax
je 0x14009159f
and ebx, 2
mov r13, qword [rbp + 0x28]
mov qword [rbp + 0x10], rsi
xor edx, edx
mov word [rsp + 0x3e], bx
lea r14, [0x140105060]
mov r15, r13
nop dword [rax]
cmp word [rsp + 0x3e], 0
je 0x140091810
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140091840
mov rdi, qword [rbp + 0x18]
mov rdi, qword [rdi + rcx + 0x10]
mov qword [rsp + 0x30], rdi
mov rdi, qword [rbp + 0x18]
mov rbx, qword [rdi + rcx + 0x18]
mov qword [rsp + 0x28], rbx
test edx, edx
jne 0x140091850
sub rax, qword [rsp + 0x88]
cmp rax, 0xf
jbe 0x140091850
mov rax, qword [rbp + 0x10]
mov rdi, qword [rbp + 0x10]
mov rax, qword [rax + 0x120]
mov rbx, rdi
shl rax, 4
movzx eax, byte [rax + rdi + 0x20]
xor byte [r15], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x21]
xor byte [r15 + 1], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x22]
xor byte [r15 + 2], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x23]
xor byte [r15 + 3], al
lea rax, [r15 + 4]
mov qword [rsp + 0x58], rax
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x24]
xor byte [r15 + 4], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x25]
xor byte [r15 + 5], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x26]
xor byte [r15 + 6], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x27]
xor byte [r15 + 7], al
lea rax, [r15 + 8]
mov qword [rsp + 0x40], rax
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x28]
xor byte [r15 + 8], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x29]
xor byte [r15 + 9], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x2a]
xor byte [r15 + 0xa], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x2b]
xor byte [r15 + 0xb], al
lea rax, [r15 + 0xc]
mov qword [rsp + 0x48], rax
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x2c]
xor byte [r15 + 0xc], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x2d]
xor byte [r15 + 0xd], al
mov rax, qword [rdi + 0x120]
shl rax, 4
movzx eax, byte [rax + rdi + 0x2e]
xor byte [r15 + 0xe], al
mov rax, qword [rdi + 0x120]
mov qword [rsp + 0x70], rax
shl rax, 4
movzx eax, byte [rax + rdi + 0x2f]
xor al, byte [r15 + 0xf]
mov byte [rsp + 0x70], al
mov byte [r15 + 0xf], al
mov rax, qword [rdi + 0x120]
mov rdi, rax
sub rdi, 2
mov qword [rsp + 0x50], rdi
je 0x1400911c8
shl rax, 4
add rax, rbx
mov r12, rax
movzx eax, byte [r15 + 5]
movzx edi, byte [r15]
movzx esi, byte [r15 + 0xd]
movzx ebx, byte [r15 + 0xa]
mov byte [rsp + 0x83], al
movzx eax, byte [r15 + 9]
movzx r11d, byte [r15 + 7]
movzx r10d, byte [r15 + 4]
movzx r9d, byte [r15 + 1]
movzx r8d, byte [r15 + 0xe]
mov byte [rsp + 0x68], al
movzx eax, byte [r15 + 6]
movzx ecx, byte [r15 + 0xb]
movzx edx, byte [r15 + 8]
movzx r13d, byte [r15 + 2]
mov byte [rsp + 0x60], al
movzx eax, byte [r15 + 3]
mov byte [rsp + 0x82], r13b
movzx r13d, byte [r15 + 0xc]
mov byte [rsp + 0x80], al
mov rax, rdi
and edi, 0xf0
and eax, 0xf
add rdi, r14
movzx edi, byte [rdi + rax]
mov byte [rsp + 0x87], dil
mov rdi, rsi
and esi, 0xf0
add rsi, r14
and edi, 0xf
movzx edi, byte [rsi + rdi]
mov rsi, rbx
and ebx, 0xf0
add rbx, r14
and esi, 0xf
movzx esi, byte [rbx + rsi]
mov byte [rsp + 0x86], sil
mov rsi, r11
and r11d, 0xf0
and esi, 0xf
add r11, r14
movzx ebx, byte [r11 + rsi]
mov r11, r10
and r10d, 0xf0
and r11d, 0xf
add r10, r14
movzx r10d, byte [r10 + r11]
mov byte [rsp + 0x85], bl
mov byte [rsp + 0x84], r10b
mov r10, r9
and r9d, 0xf0
add r9, r14
and r10d, 0xf
movzx r10d, byte [r9 + r10]
mov r9, r8
and r8d, 0xf0
add r8, r14
and r9d, 0xf
movzx r9d, byte [r8 + r9]
mov r8, rcx
and ecx, 0xf0
add rcx, r14
and r8d, 0xf
movzx r8d, byte [rcx + r8]
mov rcx, rdx
and edx, 0xf0
add rdx, r14
and ecx, 0xf
movzx ecx, byte [rdx + rcx]
movzx ebx, byte [rsp + 0x83]
movzx r11d, byte [rsp + 0x82]
mov rsi, rbx
mov rdx, rbx
movzx ebx, byte [rsp + 0x68]
mov byte [rsp + 0x68], dil
and esi, 0xf0
and edx, 0xf
mov rax, rsi
mov rsi, r11
and r11d, 0xf0
add rax, r14
and esi, 0xf
movzx edx, byte [rax + rdx]
mov byte [rsp + 0x83], dl
mov rdx, r11
add rdx, r14
movzx r11d, byte [rdx + rsi]
mov byte [rsp + 0x82], r11b
movzx r11d, byte [rsp + 0x70]
mov rsi, r11
and esi, 0xf
mov rax, rsi
mov rsi, r11
mov r11, r13
and r13d, 0xf0
and esi, 0xf0
and r11d, 0xf
mov rdx, rsi
add rdx, r14
movzx esi, byte [rdx + rax]
mov rdx, r13
movzx eax, r9b
add rdx, r14
movzx r13d, byte [rdx + r11]
mov rdx, rbx
mov r11, rbx
movzx ebx, byte [rsp + 0x60]
and edx, 0xf0
and r11d, 0xf
mov byte [rsp + 0x81], sil
add rdx, r14
movzx esi, byte [rdx + r11]
mov r11, rbx
and ebx, 0xf0
mov rdx, rbx
and r11d, 0xf
add rdx, r14
movzx ebx, byte [rdx + r11]
movzx edx, byte [rsp + 0x80]
mov r11, rdx
and edx, 0xf0
add rdx, r14
and r11d, 0xf
movzx r11d, byte [rdx + r11]
movzx edx, r8b
shl rdx, 8
or rdx, rax
movzx eax, r10b
shl rdx, 8
or rdx, rax
movzx eax, byte [rsp + 0x84]
shl rdx, 8
or rdx, rax
movzx eax, byte [rsp + 0x85]
shl rdx, 8
or rdx, rax
movzx eax, byte [rsp + 0x86]
shl rdx, 8
or rdx, rax
movzx eax, dil
movzx edi, byte [rsp + 0x87]
shl rdx, 8
or rdx, rax
movzx eax, r11b
mov qword [rsp + 0x60], rdi
movzx edi, bl
shl rax, 8
shl rdx, 8
or rax, rdi
movzx edi, sil
shl rax, 8
or rax, rdi
movzx edi, r13b
or rdx, qword [rsp + 0x60]
shl rax, 8
mov qword [rsp + 0x70], rdx
or rax, rdi
movzx edi, byte [rsp + 0x81]
shl rax, 8
or rax, rdi
movzx edi, byte [rsp + 0x82]
shl rax, 8
or rax, rdi
movzx edi, byte [rsp + 0x83]
shl rax, 8
or rax, rdi
movzx edi, cl
shl rax, 8
mov rdx, rax
or rdx, rdi
mov qword [rsp + 0x78], rdx
movdqa xmm0, xmmword [rsp + 0x70]
movups xmmword [r15], xmm0
movzx eax, byte [rsp + 0x87]
xor al, byte [r12 + 0x10]
mov byte [r15], al
movzx eax, byte [rsp + 0x68]
xor al, byte [r12 + 0x11]
mov byte [r15 + 1], al
movzx eax, byte [rsp + 0x86]
xor al, byte [r12 + 0x12]
mov byte [r15 + 2], al
movzx eax, byte [rsp + 0x85]
xor al, byte [r12 + 0x13]
mov byte [r15 + 3], al
movzx eax, byte [rsp + 0x84]
xor al, byte [r12 + 0x14]
mov byte [r15 + 4], al
xor r10b, byte [r12 + 0x15]
mov byte [r15 + 5], r10b
xor r9b, byte [r12 + 0x16]
mov byte [r15 + 6], r9b
xor r8b, byte [r12 + 0x17]
mov byte [r15 + 7], r8b
xor cl, byte [r12 + 0x18]
mov byte [r15 + 8], cl
movzx eax, byte [rsp + 0x83]
mov rcx, r15
xor al, byte [r12 + 0x19]
mov byte [r15 + 9], al
movzx eax, byte [rsp + 0x82]
xor al, byte [r12 + 0x1a]
mov byte [r15 + 0xa], al
movzx eax, byte [rsp + 0x81]
xor al, byte [r12 + 0x1b]
mov byte [r15 + 0xb], al
movzx eax, byte [r12 + 0x1c]
xor eax, r13d
mov byte [r15 + 0xc], al
xor sil, byte [r12 + 0x1d]
mov byte [r15 + 0xd], sil
xor bl, byte [r12 + 0x1e]
mov byte [r15 + 0xe], bl
xor r11b, byte [r12 + 0x1f]
mov byte [r15 + 0xf], r11b
call fcn.1400928c0
mov rcx, qword [rsp + 0x58]
call fcn.1400928c0
mov rcx, qword [rsp + 0x40]
call fcn.1400928c0
mov rcx, qword [rsp + 0x48]
call fcn.1400928c0
sub r12, 0x10
sub qword [rsp + 0x50], 1
movzx eax, byte [r15 + 0xf]
mov byte [rsp + 0x70], al
jne 0x140090db0
movzx esi, byte [r15 + 0xc]
movzx ebx, byte [r15]
movzx r11d, byte [r15 + 0xd]
movzx r10d, byte [r15 + 0xa]
mov byte [rsp + 0x82], sil
movzx esi, byte [r15 + 9]
movzx r9d, byte [r15 + 7]
movzx r8d, byte [r15 + 4]
mov byte [rsp + 0x81], sil
movzx esi, byte [r15 + 6]
movzx ecx, byte [r15 + 1]
movzx edx, byte [r15 + 0xe]
movzx eax, byte [r15 + 0xb]
movzx edi, byte [r15 + 8]
mov byte [rsp + 0x68], sil
movzx esi, byte [r15 + 3]
movzx r12d, byte [r15 + 5]
movzx r13d, byte [r15 + 2]
mov byte [rsp + 0x60], sil
mov rsi, rbx
and ebx, 0xf0
add rbx, r14
and esi, 0xf
movzx esi, byte [rbx + rsi]
mov rbx, r11
and r11d, 0xf0
add r11, r14
and ebx, 0xf
movzx ebx, byte [r11 + rbx]
mov r11, r10
and r10d, 0xf0
add r10, r14
and r11d, 0xf
movzx r11d, byte [r10 + r11]
mov r10, r9
and r9d, 0xf0
add r9, r14
and r10d, 0xf
movzx r10d, byte [r9 + r10]
mov r9, r8
and r8d, 0xf0
add r8, r14
and r9d, 0xf
movzx r9d, byte [r8 + r9]
mov r8, rcx
and ecx, 0xf0
mov byte [rsp + 0x87], r10b
and r8d, 0xf
add rcx, r14
movzx ecx, byte [rcx + r8]
mov byte [rsp + 0x86], cl
mov rcx, rdx
and edx, 0xf0
and ecx, 0xf
add rdx, r14
movzx edx, byte [rdx + rcx]
mov rcx, rax
and eax, 0xf0
and ecx, 0xf
add rax, r14
movzx r8d, byte [rax + rcx]
mov rcx, rdi
and edi, 0xf0
mov byte [rsp + 0x85], dl
and ecx, 0xf
lea rdx, [r14 + rdi]
movzx edi, byte [rdx + rcx]
mov rcx, r12
and r12d, 0xf0
mov byte [rsp + 0x84], r8b
and ecx, 0xf
lea rdx, [r14 + r12]
movzx r12d, byte [rdx + rcx]
movzx r10d, byte [rsp + 0x70]
mov rcx, r13
and r13d, 0xf0
movzx r8d, byte [rsp + 0x81]
and ecx, 0xf
lea rdx, [r14 + r13]
mov byte [rsp + 0x81], r9b
movzx r13d, byte [rdx + rcx]
mov rcx, r10
and ecx, 0xf
mov rax, rcx
mov rcx, r10
movzx r10d, byte [rsp + 0x82]
and ecx, 0xf0
mov rdx, rcx
add rdx, r14
movzx ecx, byte [rdx + rax]
mov rax, r10
and r10d, 0xf0
mov rdx, r10
and eax, 0xf
add rdx, r14
mov byte [rsp + 0x83], cl
movzx r10d, byte [rdx + rax]
mov rdx, r8
mov rax, r8
movzx r8d, byte [rsp + 0x68]
and edx, 0xf0
and eax, 0xf
add rdx, r14
mov byte [rsp + 0x82], r10b
movzx r10d, byte [rdx + rax]
mov rax, r8
and r8d, 0xf0
mov rdx, r8
and eax, 0xf
add rdx, r14
movzx r8d, byte [rdx + rax]
movzx edx, byte [rsp + 0x60]
mov rax, rdx
and edx, 0xf0
and eax, 0xf
add rdx, r14
movzx ecx, byte [rdx + rax]
movzx edx, byte [rsp + 0x84]
movzx eax, byte [rsp + 0x85]
shl rdx, 8
or rdx, rax
movzx eax, byte [rsp + 0x86]
shl rdx, 8
or rdx, rax
movzx eax, r9b
movzx r9d, sil
shl rdx, 8
mov qword [rsp + 0x68], r9
movzx r9d, r8b
or rdx, rax
movzx eax, byte [rsp + 0x87]
shl rdx, 8
or rdx, rax
movzx eax, r11b
shl rdx, 8
or rdx, rax
movzx eax, bl
shl rdx, 8
or rdx, rax
movzx eax, cl
shl rax, 8
shl rdx, 8
or rax, r9
movzx r9d, r10b
shl rax, 8
or rax, r9
movzx r9d, byte [rsp + 0x82]
shl rax, 8
or rax, r9
movzx r9d, byte [rsp + 0x83]
shl rax, 8
or rdx, qword [rsp + 0x68]
or rax, r9
movzx r9d, r13b
mov qword [rsp + 0x70], rdx
shl rax, 8
or rax, r9
movzx r9d, r12b
shl rax, 8
or rax, r9
movzx r9d, dil
shl rax, 8
mov rdx, rax
or rdx, r9
mov qword [rsp + 0x78], rdx
mov rdx, qword [rbp + 0x10]
movdqa xmm1, xmmword [rsp + 0x70]
movups xmmword [r15], xmm1
xor sil, byte [rdx + 0x30]
mov byte [r15], sil
xor bl, byte [rdx + 0x31]
mov byte [r15 + 1], bl
xor r11b, byte [rdx + 0x32]
mov byte [r15 + 2], r11b
movzx eax, byte [rsp + 0x87]
xor al, byte [rdx + 0x33]
mov byte [r15 + 3], al
movzx eax, byte [rsp + 0x81]
xor al, byte [rdx + 0x34]
mov byte [r15 + 4], al
movzx eax, byte [rsp + 0x86]
xor al, byte [rdx + 0x35]
mov byte [r15 + 5], al
movzx eax, byte [rsp + 0x85]
xor al, byte [rdx + 0x36]
mov byte [r15 + 6], al
movzx eax, byte [rsp + 0x84]
xor al, byte [rdx + 0x37]
mov byte [r15 + 7], al
xor dil, byte [rdx + 0x38]
mov byte [r15 + 8], dil
xor r12b, byte [rdx + 0x39]
mov byte [r15 + 9], r12b
xor r13b, byte [rdx + 0x3a]
mov byte [r15 + 0xa], r13b
movzx eax, byte [rsp + 0x83]
xor al, byte [rdx + 0x3b]
mov byte [r15 + 0xb], al
movzx eax, byte [rsp + 0x82]
xor al, byte [rdx + 0x3c]
mov byte [r15 + 0xc], al
movzx eax, byte [rdx + 0x3d]
xor eax, r10d
mov byte [r15 + 0xd], al
xor r8b, byte [rdx + 0x3e]
mov byte [r15 + 0xe], r8b
xor cl, byte [rdx + 0x3f]
xor edx, edx
cmp word [rsp + 0x3e], 0
mov byte [r15 + 0xf], cl
jne 0x140091855
mov rax, qword [rbp + 0x30]
mov rax, qword [rax]
add qword [rsp + 0x88], 0x10
add r15, 0x10
mov rcx, qword [rsp + 0x88]
cmp rcx, rax
jb 0x140090bc8
cmp byte [rsp + 0x3d], 0
je 0x1400917d0
mov rdi, qword [rbp + 0x28]
movzx edx, byte [rdi + rax - 1]
lea rcx, [rdx - 1]
cmp rcx, 0xe
ja 0x140090b1b
cmp rdx, 1
je 0x14009179b
movzx r8d, byte [rdi + rax - 2]
cmp rcx, r8
je 0x140091936
cmp rdx, 2
je 0x140090b1b
xor ecx, ecx
mov rsi, rdi
movzx r8d, byte [rsi + rax - 3]
lea r9, [rdx - 2]
cmp r9, r8
je 0x140091927
cmp rdx, 3
je 0x140090b1b
xor ecx, ecx
movzx r8d, byte [rsi + rax - 4]
lea r9, [rdx - 3]
mov rdi, rsi
cmp r9, r8
je 0x14009195c
cmp rdx, 4
je 0x140090b1b
xor ecx, ecx
movzx r8d, byte [rdi + rax - 5]
lea r9, [rdx - 4]
mov rsi, rdi
cmp r9, r8
je 0x14009194d
cmp rdx, 5
je 0x140090b1b
xor ecx, ecx
movzx r8d, byte [rsi + rax - 6]
lea r9, [rdx - 5]
cmp r9, r8
je 0x14009196b
xor ecx, ecx
cmp rdx, 6
je 0x140090b1b
mov rsi, qword [rbp + 0x28]
lea r9, [rdx - 6]
movzx r8d, byte [rsi + rax - 7]
cmp r9, r8
je 0x14009197a
xor ecx, ecx
cmp rdx, 7
je 0x140090b1b
mov rdi, qword [rbp + 0x28]
lea r9, [rdx - 7]
movzx r8d, byte [rdi + rax - 8]
cmp r9, r8
je 0x140091998
xor ecx, ecx
cmp rdx, 8
je 0x140090b1b
mov rsi, qword [rbp + 0x28]
lea r9, [rdx - 8]
movzx r8d, byte [rsi + rax - 9]
cmp r9, r8
je 0x140091989
xor ecx, ecx
cmp rdx, 9
je 0x140090b1b
mov rdi, qword [rbp + 0x28]
lea r8, [rdx - 9]
movzx r9d, byte [rdi + rax - 0xa]
cmp r9, r8
je 0x1400919a7
xor ecx, ecx
cmp rdx, 0xa
je 0x140090b1b
mov rsi, qword [rbp + 0x28]
lea r9, [rdx - 0xa]
movzx r8d, byte [rsi + rax - 0xb]
cmp r9, r8
je 0x1400919b6
xor ecx, ecx
cmp rdx, 0xb
je 0x140090b1b
mov rdi, qword [rbp + 0x28]
lea r9, [rdx - 0xb]
movzx r8d, byte [rdi + rax - 0xc]
cmp r9, r8
je 0x1400919e7
xor ecx, ecx
cmp rdx, 0xc
je 0x140090b1b
mov rbx, qword [rbp + 0x28]
lea r9, [rdx - 0xc]
movzx r8d, byte [rbx + rax - 0xd]
cmp r9, r8
je 0x1400919d8
xor ecx, ecx
cmp rdx, 0xd
je 0x140090b1b
mov rsi, qword [rbp + 0x28]
xor r8d, r8d
cmp rdx, 0xe
setne r8b
movzx r9d, byte [rsi + rax - 0xe]
add r8, 1
cmp r8, r9
jne 0x140090b1b
cmp rdx, 0xf
jne 0x140091793
cmp byte [rsi + rax - 0xf], 1
jne 0x140090b1b
test ecx, ecx
je 0x140090b1b
sub rax, rdx
add rax, qword [rbp + 0x28]
cmp edx, 8
jae 0x1400918fa
test dl, 4
jne 0x1400919c5
test edx, edx
je 0x1400917c4
mov byte [rax], 0
test dl, 2
jne 0x1400919f6
mov rax, qword [rbp + 0x30]
sub qword [rax], rdx
nop dword [rax + rax]
xor eax, eax
jmp 0x140090b20
mov eax, 2
jmp 0x140090b20
mov eax, 3
jmp 0x140090b20
mov eax, 6
jmp 0x140090b20
test edx, edx
jne 0x140091581
mov rdx, rax
sub rdx, qword [rsp + 0x88]
cmp rdx, 0xf
ja 0x140090c1b
mov edx, 1
jmp 0x140091581
test edx, edx
jne 0x140091850
cmp rax, 0xf
ja 0x140090c1b
nop
mov edx, 1
mov rbx, qword [rsp + 0x30]
xor byte [r15], bl
movzx eax, bh
xor byte [r15 + 1], al
mov rax, rbx
shr rax, 0x10
xor byte [r15 + 2], al
mov rax, rbx
shr rax, 0x18
xor byte [r15 + 3], al
mov rax, rbx
shr rax, 0x20
xor byte [r15 + 4], al
mov rax, rbx
shr rax, 0x28
xor byte [r15 + 5], al
mov rax, rbx
shr rax, 0x30
xor byte [r15 + 6], al
mov rax, rbx
mov rbx, qword [rsp + 0x28]
shr rax, 0x38
xor byte [r15 + 7], al
movzx eax, bh
xor byte [r15 + 9], al
mov rax, rbx
shr rax, 0x10
xor byte [r15 + 0xa], al
mov rax, rbx
shr rax, 0x18
xor byte [r15 + 0xb], al
mov rax, rbx
shr rax, 0x20
xor byte [r15 + 0xc], al
mov rax, rbx
shr rax, 0x28
xor byte [r15 + 0xd], al
mov rax, rbx
xor byte [r15 + 8], bl
shr rax, 0x30
shr rbx, 0x38
xor byte [r15 + 0xe], al
xor byte [r15 + 0xf], bl
jmp 0x14009157a
lea rdi, [rax + 8]
mov qword [rax], 0
mov qword [rdx + rax - 8], 0
and rdi, 0xfffffffffffffff8
sub rax, rdi
mov rcx, rax
xor eax, eax
add ecx, edx
shr ecx, 3
rep stosq qword [rdi], rax
jmp 0x1400917c4
cmp rdx, 3
je 0x140091793
jmp 0x140091608
cmp rdx, 2
je 0x14009179b
mov ecx, 1
mov rsi, rdi
jmp 0x1400915e9
cmp rdx, 5
je 0x140091793
jmp 0x14009164c
cmp rdx, 4
je 0x140091793
jmp 0x14009162a
cmp rdx, 6
jne 0x14009166b
jmp 0x140091793
cmp rdx, 7
jne 0x14009168e
jmp 0x140091793
cmp rdx, 9
jne 0x1400916d4
jmp 0x140091793
cmp rdx, 8
jne 0x1400916b1
jmp 0x140091793
cmp rdx, 0xa
jne 0x1400916f7
jmp 0x140091793
cmp rdx, 0xb
jne 0x14009171a
jmp 0x140091793
mov dword [rax], 0
mov dword [rdx + rax - 4], 0
jmp 0x1400917c4
cmp rdx, 0xd
jne 0x140091760
jmp 0x140091793
cmp rdx, 0xc
jne 0x14009173d
jmp 0x140091793
mov word [rdx + rax - 2], 0
jmp 0x1400917c4