Function at 0x140094ec0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
vmovups xmmword [rsp + 0x80], xmm6
vmovups xmmword [rsp + 0x90], xmm7
mov qword [rsp + 0xf8], rdx
mov rdi, rcx
test rcx, rcx
je 0x140095ad0
test rdx, rdx
je 0x140095ae0
mov rsi, r8
mov eax, 4
and esi, 0xf
mov r15, rsi
jne 0x140094f6d
cmp qword [rsp + 0x110], 0
je 0x140095af0
mov rax, qword [rsp + 0x110]
sub r8, 0x20
mov rdx, qword [rax]
mov qword [rax], r8
test r9, r9
je 0x140095d00
mov eax, 9
cmp rdx, r8
jb 0x140094f6d
cmp qword [rcx], 0
je 0x140095d10
mov rax, qword [rsp + 0xf8]
mov esi, dword [str.OAES]
cmp dword [rax], esi
jne 0x140094f68
cmp byte [rax + 4], 1
je 0x140094f98
mov eax, 0xa
vmovups xmm6, xmmword [rsp + 0x80]
vmovups xmm7, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rax + 5], 2
jne 0x140094f68
movzx esi, word [rax + 6]
lea eax, [rsi - 1]
cmp ax, 1
ja 0x140094f68
mov rax, qword [rsp + 0xf8]
movzx ebx, byte [rax + 8]
cmp bl, 1
ja 0x140094f68
mov rax, qword [rax + 0x10]
mov rcx, r9
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xf8]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0xf8]
lea rdx, [rax + 0x20]
call sym.memcpy
mov r9, rax
mov rax, qword [rsp + 0x110]
mov rax, qword [rax]
test rax, rax
je 0x140095b07
and esi, 2
mov byte [rsp + 0x7f], bl
xor edx, edx
lea r14, [0x1402beee0]
mov word [rsp + 0x7c], si
mov r13, r9
mov rbx, r15
mov r12, rdi
mov qword [rsp + 0x108], r9
jmp 0x140095122
test rbx, rbx
je 0x140095d20
mov rsi, qword [rsp + 0xf8]
mov rdi, qword [rsi + rbx + 0x10]
mov qword [rsp + 0x60], rdi
mov rdi, qword [rsi + rbx + 0x18]
mov qword [rsp + 0x68], rdi
test edx, edx
je 0x140095d28
mov edx, 1
mov rcx, qword [rsp + 0x60]
xor byte [r13], cl
movzx eax, ch
xor byte [r13 + 1], al
mov rax, rcx
shr rax, 0x10
xor byte [r13 + 2], al
mov rax, rcx
shr rax, 0x18
xor byte [r13 + 3], al
mov rax, rcx
shr rax, 0x20
xor byte [r13 + 4], al
mov rax, rcx
shr rax, 0x28
xor byte [r13 + 5], al
mov rax, rcx
shr rax, 0x30
xor byte [r13 + 6], al
mov rax, rcx
mov rcx, qword [rsp + 0x68]
shr rax, 0x38
xor byte [r13 + 7], al
movzx eax, ch
xor byte [r13 + 9], al
mov rax, rcx
shr rax, 0x10
xor byte [r13 + 0xa], al
mov rax, rcx
shr rax, 0x18
xor byte [r13 + 0xb], al
mov rax, rcx
shr rax, 0x20
xor byte [r13 + 0xc], al
mov rax, rcx
shr rax, 0x28
xor byte [r13 + 0xd], al
mov rax, rcx
shr rax, 0x30
xor byte [r13 + 0xe], al
mov rax, rcx
shr rax, 0x38
xor byte [r13 + 8], cl
xor byte [r13 + 0xf], al
mov rax, qword [rsp + 0x110]
mov rax, qword [rax]
add rbx, 0x10
add r13, 0x10
cmp rbx, rax
jae 0x140095afa
cmp word [rsp + 0x7c], 0
jne 0x140095030
test edx, edx
jne 0x140095111
mov rcx, rax
mov edx, 1
sub rcx, rbx
cmp rcx, 0xf
jbe 0x140095111
mov rcx, qword [r12]
test rcx, rcx
je 0x140095111
mov rax, qword [rcx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rcx + 0x18]
movzx eax, byte [rax]
xor byte [r13], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 1]
xor byte [r13 + 1], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 2]
xor byte [r13 + 2], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 3]
xor byte [r13 + 3], al
lea rax, [r13 + 4]
mov rdx, qword [r12]
mov qword [rsp + 0x48], rax
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 4]
xor byte [r13 + 4], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 5]
xor byte [r13 + 5], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 6]
xor byte [r13 + 6], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 7]
xor byte [r13 + 7], al
lea rax, [r13 + 8]
mov rdx, qword [r12]
mov qword [rsp + 0x50], rax
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 8]
xor byte [r13 + 8], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 9]
xor byte [r13 + 9], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 0xa]
xor byte [r13 + 0xa], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 0xb]
xor byte [r13 + 0xb], al
lea rax, [r13 + 0xc]
mov rdx, qword [r12]
mov qword [rsp + 0x58], rax
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 0xc]
xor byte [r13 + 0xc], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 0xd]
xor byte [r13 + 0xd], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 0xe]
xor byte [r13 + 0xe], al
mov rdx, qword [r12]
mov rax, qword [rdx + 0x20]
sub rax, 1
shl rax, 4
add rax, qword [rdx + 0x18]
movzx eax, byte [rax + 0xf]
xor al, byte [r13 + 0xf]
mov byte [r13 + 0xf], al
mov byte [rsp + 0x34], al
mov rax, qword [r12]
mov rax, qword [rax + 0x20]
mov rsi, rax
sub rsi, 2
mov qword [rsp + 0x40], rsi
je 0x14009573b
shl rax, 4
mov qword [rsp + 0x70], rbx
mov r15, rax
jmp 0x140095361
movzx eax, byte [r13 + 0xf]
mov byte [rsp + 0x34], al
movzx ebp, byte [r13 + 2]
movzx edi, byte [r13]
movzx esi, byte [r13 + 0xd]
movzx ebx, byte [r13 + 0xa]
movzx r11d, byte [r13 + 7]
movzx r10d, byte [r13 + 4]
mov byte [rsp + 0x30], bpl
movzx ebp, byte [r13 + 0xc]
movzx r9d, byte [r13 + 1]
movzx r8d, byte [r13 + 0xe]
movzx ecx, byte [r13 + 0xb]
movzx edx, byte [r13 + 8]
movzx eax, byte [r13 + 5]
mov byte [rsp + 0x38], bpl
movzx ebp, byte [r13 + 9]
mov byte [rsp + 0x3c], bpl
movzx ebp, byte [r13 + 6]
mov byte [rsp + 0x78], bpl
movzx ebp, byte [r13 + 3]
mov byte [rsp + 0x7e], bpl
mov rbp, rdi
and edi, 0xf0
add rdi, r14
and ebp, 0xf
movzx ebp, byte [rdi + rbp]
mov rdi, rsi
and esi, 0xf0
add rsi, r14
and edi, 0xf
movzx edi, byte [rsi + rdi]
mov rsi, rbx
and ebx, 0xf0
vmovd xmm0, ebp
add rbx, r14
and esi, 0xf
movzx esi, byte [rbx + rsi]
mov rbx, r11
and r11d, 0xf0
vpinsrb xmm0, xmm0, edi, 1
add r11, r14
and ebx, 0xf
movzx ebx, byte [r11 + rbx]
mov r11, r10
and r10d, 0xf0
vmovd xmm7, esi
add r10, r14
and r11d, 0xf
movzx r11d, byte [r10 + r11]
mov r10, r9
and r9d, 0xf0
vpinsrb xmm7, xmm7, ebx, 1
add r9, r14
and r10d, 0xf
vpunpcklwd xmm0, xmm0, xmm7
movzx r10d, byte [r9 + r10]
mov r9, r8
and r8d, 0xf0
vmovd xmm3, r11d
add r8, r14
and r9d, 0xf
movzx r9d, byte [r8 + r9]
mov r8, rcx
and ecx, 0xf0
vpinsrb xmm3, xmm3, r10d, 1
add rcx, r14
and r8d, 0xf
movzx r8d, byte [rcx + r8]
mov rcx, rdx
and edx, 0xf0
vmovd xmm6, r9d
add rdx, r14
and ecx, 0xf
movzx ecx, byte [rdx + rcx]
mov rdx, rax
and eax, 0xf0
vpinsrb xmm6, xmm6, r8d, 1
and edx, 0xf
add rax, r14
vpunpcklwd xmm3, xmm3, xmm6
movzx eax, byte [rax + rdx]
mov byte [rsp + 0x28], cl
vpunpckldq xmm0, xmm0, xmm3
mov byte [rsp + 0x2f], al
movzx edx, byte [rsp + 0x30]
vmovd xmm1, dword [rsp + 0x28]
vpinsrb xmm1, xmm1, byte [rsp + 0x2f], 1
mov rax, rdx
and edx, 0xf0
and eax, 0xf
add rdx, r14
movzx edx, byte [rdx + rax]
mov byte [rsp + 0x30], dl
movzx edx, byte [rsp + 0x34]
mov rax, rdx
and edx, 0xf0
add rdx, r14
and eax, 0xf
vmovd xmm5, dword [rsp + 0x30]
movzx eax, byte [rdx + rax]
movzx edx, byte [rsp + 0x38]
mov byte [rsp + 0x34], al
mov rax, rdx
and edx, 0xf0
vpinsrb xmm5, xmm5, byte [rsp + 0x34], 1
and eax, 0xf
add rdx, r14
movzx edx, byte [rdx + rax]
vpunpcklwd xmm1, xmm1, xmm5
mov byte [rsp + 0x38], dl
movzx edx, byte [rsp + 0x3c]
mov rax, rdx
and edx, 0xf0
add rdx, r14
and eax, 0xf
vmovd xmm2, dword [rsp + 0x38]
movzx eax, byte [rdx + rax]
movzx edx, byte [rsp + 0x78]
mov byte [rsp + 0x3c], al
mov rax, rdx
and edx, 0xf0
vpinsrb xmm2, xmm2, byte [rsp + 0x3c], 1
and eax, 0xf
add rdx, r14
movzx ecx, byte [rdx + rax]
movzx edx, byte [rsp + 0x7e]
mov byte [rsp + 0x78], cl
mov rax, rdx
and edx, 0xf0
and eax, 0xf
add rdx, r14
movzx edx, byte [rdx + rax]
mov rax, qword [rsp + 0x40]
vmovd xmm4, dword [rsp + 0x78]
vpinsrb xmm4, xmm4, edx, 1
shl rax, 4
vpunpcklwd xmm2, xmm2, xmm4
vpunpckldq xmm1, xmm1, xmm2
vpunpcklqdq xmm0, xmm0, xmm1
vmovdqu xmmword [r13], xmm0
mov rcx, qword [r12]
add rax, qword [rcx + 0x18]
xor bpl, byte [rax]
mov byte [r13], bpl
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor dil, byte [rax + r15 - 0x1f]
movzx ecx, byte [rsp + 0x28]
mov byte [r13 + 1], dil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor sil, byte [rax + r15 - 0x1e]
mov byte [r13 + 2], sil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor bl, byte [rax + r15 - 0x1d]
mov byte [r13 + 3], bl
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor r11b, byte [rax + r15 - 0x1c]
mov byte [r13 + 4], r11b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor r10b, byte [rax + r15 - 0x1b]
mov byte [r13 + 5], r10b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor r9b, byte [rax + r15 - 0x1a]
mov byte [r13 + 6], r9b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor r8b, byte [rax + r15 - 0x19]
mov byte [r13 + 7], r8b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor cl, byte [rax + r15 - 0x18]
mov byte [r13 + 8], cl
mov rax, qword [r12]
mov rcx, r13
mov rax, qword [rax + 0x18]
movzx ebx, byte [rsp + 0x2f]
movzx edi, byte [rsp + 0x78]
xor bl, byte [rax + r15 - 0x17]
mov byte [r13 + 9], bl
mov rax, qword [r12]
movzx ebx, byte [rsp + 0x30]
mov rax, qword [rax + 0x18]
xor bl, byte [rax + r15 - 0x16]
mov byte [r13 + 0xa], bl
mov rax, qword [r12]
movzx ebx, byte [rsp + 0x34]
mov rax, qword [rax + 0x18]
xor bl, byte [rax + r15 - 0x15]
mov byte [r13 + 0xb], bl
mov rax, qword [r12]
movzx ebx, byte [rsp + 0x38]
mov rax, qword [rax + 0x18]
xor bl, byte [rax + r15 - 0x14]
mov byte [r13 + 0xc], bl
mov rax, qword [r12]
movzx ebx, byte [rsp + 0x3c]
mov rax, qword [rax + 0x18]
xor bl, byte [rax + r15 - 0x13]
mov byte [r13 + 0xd], bl
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor dil, byte [rax + r15 - 0x12]
mov byte [r13 + 0xe], dil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor dl, byte [rax + r15 - 0x11]
sub r15, 0x10
mov byte [r13 + 0xf], dl
call sym.oaes_inv_mix_cols.isra.0
mov rcx, qword [rsp + 0x48]
call sym.oaes_inv_mix_cols.isra.0
mov rcx, qword [rsp + 0x50]
call sym.oaes_inv_mix_cols.isra.0
mov rcx, qword [rsp + 0x58]
call sym.oaes_inv_mix_cols.isra.0
sub qword [rsp + 0x40], 1
jne 0x140095358
movzx eax, byte [r13 + 0xf]
mov rbx, qword [rsp + 0x70]
mov byte [rsp + 0x34], al
movzx ebp, byte [r13 + 0xc]
movzx edi, byte [r13]
movzx esi, byte [r13 + 0xd]
movzx r11d, byte [r13 + 0xa]
movzx r10d, byte [r13 + 7]
movzx r9d, byte [r13 + 4]
mov byte [rsp + 0x38], bpl
movzx ebp, byte [r13 + 9]
movzx r8d, byte [r13 + 1]
movzx ecx, byte [r13 + 0xe]
movzx edx, byte [r13 + 0xb]
movzx eax, byte [r13 + 8]
movzx r15d, byte [r13 + 5]
mov byte [rsp + 0x3c], bpl
movzx ebp, byte [r13 + 6]
mov byte [rsp + 0x2f], r15b
movzx r15d, byte [r13 + 2]
mov byte [rsp + 0x78], bpl
movzx ebp, byte [r13 + 3]
mov byte [rsp + 0x40], bpl
mov rbp, rdi
and edi, 0xf0
and ebp, 0xf
add rdi, r14
movzx edi, byte [rdi + rbp]
mov rbp, rsi
and esi, 0xf0
and ebp, 0xf
add rsi, r14
movzx esi, byte [rsi + rbp]
mov rbp, r11
and r11d, 0xf0
vmovd xmm0, edi
and ebp, 0xf
add r11, r14
movzx r11d, byte [r11 + rbp]
mov rbp, r10
and r10d, 0xf0
vpinsrb xmm0, xmm0, esi, 1
and ebp, 0xf
add r10, r14
movzx r10d, byte [r10 + rbp]
mov rbp, r9
and r9d, 0xf0
vmovd xmm7, r11d
and ebp, 0xf
add r9, r14
movzx r9d, byte [r9 + rbp]
mov rbp, r8
and r8d, 0xf0
vpinsrb xmm7, xmm7, r10d, 1
and ebp, 0xf
add r8, r14
vpunpcklwd xmm0, xmm0, xmm7
movzx r8d, byte [r8 + rbp]
mov rbp, rcx
and ecx, 0xf0
vmovd xmm3, r9d
and ebp, 0xf
add rcx, r14
movzx ecx, byte [rcx + rbp]
mov rbp, rdx
and edx, 0xf0
vpinsrb xmm3, xmm3, r8d, 1
and ebp, 0xf
add rdx, r14
movzx edx, byte [rdx + rbp]
mov rbp, rax
and eax, 0xf0
vmovd xmm6, ecx
and ebp, 0xf
add rax, r14
movzx eax, byte [rax + rbp]
vpinsrb xmm6, xmm6, edx, 1
vpunpcklwd xmm3, xmm3, xmm6
mov byte [rsp + 0x28], al
movzx eax, byte [rsp + 0x2f]
vpunpckldq xmm0, xmm0, xmm3
mov rbp, rax
and eax, 0xf0
add rax, r14
and ebp, 0xf
movzx ebp, byte [rax + rbp]
mov byte [rsp + 0x2f], bpl
mov rbp, r15
and r15d, 0xf0
vmovd xmm1, dword [rsp + 0x28]
mov rax, r15
and ebp, 0xf
vpinsrb xmm1, xmm1, byte [rsp + 0x2f], 1
add rax, r14
movzx r15d, byte [rax + rbp]
movzx ebp, byte [rsp + 0x34]
mov rax, rbp
and ebp, 0xf0
vmovd xmm5, r15d
add rbp, r14
and eax, 0xf
movzx eax, byte [rbp + rax]
mov byte [rsp + 0x30], al
movzx eax, byte [rsp + 0x38]
vpinsrb xmm5, xmm5, byte [rsp + 0x30], 1
mov rbp, rax
and eax, 0xf0
add rax, r14
and ebp, 0xf
vpunpcklwd xmm1, xmm1, xmm5
movzx ebp, byte [rax + rbp]
movzx eax, byte [rsp + 0x3c]
mov byte [rsp + 0x34], bpl
mov rbp, rax
and eax, 0xf0
and ebp, 0xf
add rax, r14
movzx eax, byte [rax + rbp]
vmovd xmm2, dword [rsp + 0x34]
mov byte [rsp + 0x38], al
movzx eax, byte [rsp + 0x78]
vpinsrb xmm2, xmm2, byte [rsp + 0x38], 1
mov rbp, rax
and eax, 0xf0
add rax, r14
and ebp, 0xf
movzx ebp, byte [rax + rbp]
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x3c], bpl
mov rbp, rax
and eax, 0xf0
add rax, r14
and ebp, 0xf
movzx ebp, byte [rax + rbp]
vmovd xmm4, dword [rsp + 0x3c]
vpinsrb xmm4, xmm4, ebp, 1
vpunpcklwd xmm2, xmm2, xmm4
vpunpckldq xmm1, xmm1, xmm2
vpunpcklqdq xmm0, xmm0, xmm1
vmovdqu xmmword [r13], xmm0
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor dil, byte [rax]
mov byte [r13], dil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor sil, byte [rax + 1]
mov byte [r13 + 1], sil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor r11b, byte [rax + 2]
movzx esi, byte [rsp + 0x28]
mov byte [r13 + 2], r11b
mov rax, qword [r12]
movzx edi, byte [rsp + 0x2f]
mov rax, qword [rax + 0x18]
xor r10b, byte [rax + 3]
mov byte [r13 + 3], r10b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor r9b, byte [rax + 4]
mov byte [r13 + 4], r9b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor r8b, byte [rax + 5]
mov byte [r13 + 5], r8b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor cl, byte [rax + 6]
mov byte [r13 + 6], cl
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor dl, byte [rax + 7]
mov byte [r13 + 7], dl
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor sil, byte [rax + 8]
mov byte [r13 + 8], sil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor dil, byte [rax + 9]
mov byte [r13 + 9], dil
mov rax, qword [r12]
movzx esi, byte [rsp + 0x30]
movzx edi, byte [rsp + 0x34]
mov rax, qword [rax + 0x18]
xor r15b, byte [rax + 0xa]
mov byte [r13 + 0xa], r15b
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor sil, byte [rax + 0xb]
mov byte [r13 + 0xb], sil
mov rax, qword [r12]
movzx esi, byte [rsp + 0x38]
mov rax, qword [rax + 0x18]
xor dil, byte [rax + 0xc]
mov byte [r13 + 0xc], dil
mov rax, qword [r12]
movzx edi, byte [rsp + 0x3c]
mov rax, qword [rax + 0x18]
xor sil, byte [rax + 0xd]
mov byte [r13 + 0xd], sil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor dil, byte [rax + 0xe]
mov byte [r13 + 0xe], dil
mov rax, qword [r12]
mov rax, qword [rax + 0x18]
xor bpl, byte [rax + 0xf]
cmp word [rsp + 0x7c], 0
mov byte [r13 + 0xf], bpl
jne 0x140095e52
mov rax, qword [rsp + 0x110]
xor edx, edx
mov rax, qword [rax]
jmp 0x140095111
mov eax, 2
jmp 0x140094f6d
mov eax, 3
jmp 0x140094f6d
mov eax, 6
jmp 0x140094f6d
movzx ebx, byte [rsp + 0x7f]
mov r9, qword [rsp + 0x108]
test bl, bl
je 0x140095d00
movzx edx, byte [r9 + rax - 1]
lea rcx, [rdx - 1]
cmp rcx, 0xe
ja 0x140094f68
cmp rdx, 1
je 0x140095cca
movzx r8d, byte [r9 + rax - 2]
cmp rcx, r8
je 0x140095d7d
cmp rdx, 2
je 0x140094f68
xor ecx, ecx
movzx r8d, byte [r9 + rax - 3]
lea r10, [rdx - 2]
cmp r10, r8
je 0x140095da0
xor ecx, ecx
cmp rdx, 3
je 0x140094f68
movzx r8d, byte [r9 + rax - 4]
lea r10, [rdx - 3]
cmp r10, r8
je 0x140095d91
xor ecx, ecx
cmp rdx, 4
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 5]
lea r10, [rdx - 4]
cmp r10, r8
je 0x140095daf
xor ecx, ecx
cmp rdx, 5
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 6]
lea r10, [rdx - 5]
cmp r10, r8
je 0x140095dbe
xor ecx, ecx
cmp rdx, 6
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 7]
lea r10, [rdx - 6]
cmp r10, r8
je 0x140095dcd
xor ecx, ecx
cmp rdx, 7
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 8]
lea r10, [rdx - 7]
cmp r10, r8
je 0x140095ddc
xor ecx, ecx
cmp rdx, 8
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 9]
lea r10, [rdx - 8]
cmp r10, r8
je 0x140095dfa
xor ecx, ecx
cmp rdx, 9
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 0xa]
lea r10, [rdx - 9]
cmp r10, r8
je 0x140095deb
xor ecx, ecx
cmp rdx, 0xa
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 0xb]
lea r10, [rdx - 0xa]
cmp r10, r8
je 0x140095e27
xor ecx, ecx
cmp rdx, 0xb
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 0xc]
lea r10, [rdx - 0xb]
cmp r10, r8
je 0x140095e18
xor ecx, ecx
cmp rdx, 0xc
jbe 0x140094f68
movzx r10d, byte [r9 + rax - 0xd]
lea r8, [rdx - 0xc]
cmp r10, r8
je 0x140095e09
xor ecx, ecx
cmp rdx, 0xd
jbe 0x140094f68
movzx r8d, byte [r9 + rax - 0xe]
lea r10, [rdx - 0xd]
cmp r10, r8
jne 0x140094f68
cmp rdx, 0xf
jne 0x140095cc2
cmp byte [r9 + rax - 0xf], 1
jne 0x140094f68
test ecx, ecx
je 0x140094f68
sub rax, rdx
add r9, rax
cmp edx, 8
jae 0x140095d50
test dl, 4
jne 0x140095e36
test edx, edx
je 0x140095cef
mov byte [r9], 0
test dl, 2
jne 0x140095e45
mov rax, qword [rsp + 0x110]
sub qword [rax], rdx
nop word [rax + rax]
xor eax, eax
jmp 0x140094f6d
mov eax, 7
jmp 0x140094f6d
test edx, edx
jne 0x14009505d
sub rax, rbx
cmp rax, 0xf
jbe 0x14009505d
mov rcx, qword [r12]
test rcx, rcx
jne 0x14009514c
jmp 0x14009505d
lea rdi, [r9 + 8]
mov rcx, r9
xor eax, eax
mov qword [r9], 0
mov qword [rdx + r9 - 8], 0
and rdi, 0xfffffffffffffff8
sub rcx, rdi
add ecx, edx
shr ecx, 3
rep stosq qword [rdi], rax
jmp 0x140095cef
mov ecx, 1
cmp rdx, 2
jne 0x140095b48
jmp 0x140095cca
cmp rdx, 4
jne 0x140095b86
jmp 0x140095cc2
cmp rdx, 3
jne 0x140095b67
jmp 0x140095cc2
cmp rdx, 5
jne 0x140095ba5
jmp 0x140095cc2
cmp rdx, 6
jne 0x140095bc4
jmp 0x140095cc2
cmp rdx, 7
jne 0x140095be3
jmp 0x140095cc2
cmp rdx, 8
jne 0x140095c02
jmp 0x140095cc2
cmp rdx, 0xa
jne 0x140095c40
jmp 0x140095cc2
cmp rdx, 9
jne 0x140095c21
jmp 0x140095cc2
cmp rdx, 0xd
jne 0x140095c9d
jmp 0x140095cc2
cmp rdx, 0xc
jne 0x140095c7e
jmp 0x140095cc2
cmp rdx, 0xb
jne 0x140095c5f
jmp 0x140095cc2
xor eax, eax
mov dword [r9], eax
mov dword [rdx + r9 - 4], eax
jmp 0x140095cef
mov word [rdx + r9 - 2], 0
jmp 0x140095cef
xor edx, edx
jmp 0x140095062