Function at 0x180012760
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x58]
sub rsp, 0x118
mov edi, dword [rbp + 0x80]
xor r13d, r13d
movaps xmmword [rax - 0x58], xmm6
mov rsi, rcx
movaps xmmword [rax - 0x68], xmm7
mov r15, r8
movss xmm7, dword [0x18005804c]
movabs r14, 0xffff000000000000
movaps xmmword [rax - 0x78], xmm8
lea rcx, [r13 - 1]
movss xmm8, dword [0x18005803c]
lea eax, [rdi + rdi*2]
add eax, eax
mov dword [rsp + 0x3c], 0
movsxd rbx, eax
mov qword [rbp - 0x28], rbx
mov dword [rsp + 0x34], r13d
mov byte [rsp + 0x40], r13b
nop dword [rax]
nop word [rax + rax]
mov eax, 0x10
mul rbx
cmovo rax, rcx
add rax, 8
cmovb rax, rcx
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x180012864
mov qword [rax], rbx
lea r12, [rax + 8]
mov qword [rsp + 0x50], r12
mov r8, r12
mov r9, rbx
test rbx, rbx
je 0x18001286c
mov word [rsp + 0x7e], 0x152
lea rdx, [r12 + 8]
movzx eax, word [rsp + 0x7e]
nop word [rax + rax]
mov rcx, rdx
xor rcx, qword [r8]
lea r8, [r8 + 0x10]
and rcx, r14
xor rcx, rdx
mov qword [r8 - 0x10], rcx
mov word [rdx - 2], ax
add rdx, 0x10
sub r9, 1
jne 0x180012840
jmp 0x18001286c
xor r12d, r12d
mov qword [rsp + 0x50], r12
xor eax, eax
mov byte [rbp - 0x2c], 0x52
xor ebx, ebx
mov dword [rbp - 0x58], eax
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x38], rbx
mov dword [rbp - 0x30], eax
mov dword [rbp - 0x48], eax
test edi, edi
jle 0x180013983
mov rcx, qword [rbp + 0x60]
lea rsi, [rcx + 0x18]
mov qword [rbp - 0x40], rsi
mov r14, rsi
mov qword [rbp - 0x50], rsi
jmp 0x1800128b4
mov rcx, qword [rbp + 0x60]
mov r9, qword [rbp + 0x70]
xor r15d, r15d
mov qword [rsp + 0x58], r15
movzx eax, byte [r9 + 7]
test al, al
jne 0x1800128cf
mov edi, dword [r9 + 8]
jmp 0x1800128d4
dec al
movzx edi, al
movd xmm6, edi
cvtdq2ps xmm6, xmm6
cmp byte [rcx + 0x1c], r15b
je 0x180012902
mov r8, qword [rbp + 0x78]
mov rdx, r9
call fcn.180014030
mov rcx, qword [rbp + 0x60]
mov edx, eax
movss xmm1, dword [r14]
mov r9, qword [rbp + 0x70]
mov byte [rcx + 0x1c], r15b
jmp 0x18001291d
movss xmm1, dword [r14]
movaps xmm0, xmm6
subss xmm0, xmm7
mov qword [rbp - 0x40], r14
mov rsi, r14
mulss xmm0, xmm1
cvttss2si edx, xmm0
cmp edx, 0xffffffff
jne 0x18001292e
subss xmm6, xmm7
mulss xmm6, xmm1
cvttss2si edx, xmm6
mov r10, qword [r9]
movsxd rcx, edx
movsxd r8, edi
mov r11, rcx
movabs rdi, 0xffffffffffff
and r10, rdi
mov rax, qword [r10 + rcx*8]
cmp dword [rax + 0xc], r15d
jl 0x18001297e
lea rax, [rcx + 1]
xor ecx, ecx
cmp rax, r8
lea r9d, [rdx + 1]
cmovl rcx, rax
cmp rcx, r11
je 0x180012990
xor edx, edx
cmp rax, r8
mov rax, qword [r10 + rcx*8]
cmovl edx, r9d
cmp dword [rax + 0xc], r15d
jge 0x180012951
mov r9, qword [rbp + 0x70]
mov rax, qword [r9]
and rax, rdi
movsxd rcx, edx
mov r15, qword [rax + rcx*8]
mov qword [rsp + 0x58], r15
movss xmm0, dword [rsi]
addss xmm0, xmm8
comiss xmm0, xmm7
movss dword [rsi], xmm0
jbe 0x1800129a8
mov dword [rsi], 0x3d4ccccd
test r15, r15
je 0x180013973
xor ecx, ecx
mov rax, rbx
test rbx, rbx
je 0x1800129e6
nop dword [rax + rax]
cmp qword [rax - 8], r15
jae 0x1800129cc
mov rax, qword [rax + 0x10]
jmp 0x1800129d2
mov rcx, rax
mov rax, qword [rax]
test rax, rax
jne 0x1800129c0
test rcx, rcx
je 0x1800129e6
cmp r15, qword [rcx - 8]
jae 0x180013958
xor edi, edi
xor sil, sil
test rbx, rbx
je 0x180012a0b
cmp r15, qword [rbx - 8]
mov rdi, rbx
setb sil
jae 0x180012a02
mov rbx, qword [rbx]
jmp 0x180012a06
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x1800129f0
mov rax, rdi
test sil, sil
je 0x180012a1b
mov rcx, rdi
call fcn.18004dec0
test rax, rax
je 0x180012a26
cmp qword [rax - 8], r15
jae 0x180012a4b
mov ecx, 0x28
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rdi
lea rcx, [rbp - 0x38]
movzx r8d, sil
mov qword [rax], r15
lea rdx, [rax + 8]
inc dword [rbp - 0x30]
call fcn.18004cc10
mov rax, qword [rbp + 0x78]
movabs rdi, 0xffffffffffff
movsxd r8, dword [r15]
mov edx, dword [r15 + 4]
mov rax, qword [rax]
and rax, rdi
mov rbx, qword [rax + r8*8]
test rbx, rbx
je 0x180012a90
nop
mov eax, dword [rbx + 0x18]
cmp eax, r8d
jne 0x180012a83
cmp dword [rbx + 0x1c], edx
je 0x180012a92
mov rbx, qword [rbx + 0x20]
jmp 0x180012a8b
cmp eax, edx
je 0x180012a92
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180012a70
xor ebx, ebx
mov ecx, 0x38
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x180012b21
mov eax, dword [rsp + 0x3c]
mov edx, r13d
mov r8d, eax
mov qword [rbp - 0x70], r15
inc eax
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rbp - 0x70]
mov dword [rsp + 0x3c], eax
inc r13d
lea rax, [r14 + 0x20]
mov byte [rbp - 0x60], 1
movsd xmm1, qword [rbp - 0x60]
mov rcx, rax
movups xmmword [r14], xmm0
movabs r9, 0xffff000000000000
mov word [rbp - 0x80], 0x152
movsd qword [r14 + 0x10], xmm1
xor rcx, qword [r14 + 0x18]
and rcx, r9
mov dword [rsp + 0x34], r13d
xor rcx, rax
movzx eax, word [rbp - 0x80]
mov qword [r14 + 0x18], rcx
mov word [r14 + 0x1e], ax
mov dword [r14 + 0x28], edx
mov dword [r14 + 0x2c], r8d
mov byte [r14 + 0x30], 0
mov dword [r14 + 0x34], 0
jmp 0x180012b24
xor r14d, r14d
mov rdi, qword [rsp + 0x48]
mov rsi, rdi
shl rsi, 4
add rsi, r12
movzx ebx, word [rsi + 6]
movzx ecx, bx
shr cx, 8
test cl, cl
jne 0x180012b51
mov eax, dword [rsi + 8]
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, dword [rsi + 0xc]
jmp 0x180012b63
lea eax, [rcx - 1]
movzx eax, al
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, 1
mov r12d, edx
mov r15d, edx
cmp edx, eax
jbe 0x180012c73
test cl, cl
jne 0x180012bd4
mov eax, dword [rsi + 0xc]
mov word [rsp + 0x30], bx
lea ecx, [rax*2 + 1]
add ecx, eax
movabs rax, 0xffffffffffff
shr ecx, 1
cmp edx, ecx
cmovbe r12d, ecx
mov rcx, qword [rsi]
mov edx, r12d
and rcx, rax
shl rdx, 3
mov edi, r12d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rcx, rax
movabs r12, 0xffff000000000000
xor rcx, qword [rsi]
and rcx, r12
xor rcx, rax
mov qword [rsi], rcx
mov dword [rsi + 0xc], edi
mov rdi, qword [rsp + 0x48]
jmp 0x180012c7d
mov eax, 2
movzx r13d, bx
cmp edx, eax
cmovbe r12d, eax
movzx eax, bx
shr ax, 8
shr r13w, 8
mov word [rsp + 0x30], ax
cmp r12d, 1
jbe 0x180012c6e
mov edx, r12d
xor ecx, ecx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rdx, qword [rsi]
mov rdi, rax
movzx eax, word [rsp + 0x30]
mov rcx, rdi
dec al
movzx r8d, al
movabs rax, 0xffffffffffff
and rdx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
movabs rax, 0xffff000000000000
mov byte [rbp - 0x7e], bl
mov rcx, rdi
mov byte [rbp - 0x7d], 0
xor rcx, qword [rsi]
and rcx, rax
mov dword [rsi + 0xc], r12d
movzx eax, word [rbp - 0x7e]
xor rcx, rdi
mov rdi, qword [rsp + 0x48]
dec r13b
mov qword [rsi], rcx
mov word [rsi + 6], ax
movzx eax, r13b
mov dword [rsi + 8], eax
mov r13d, dword [rsp + 0x34]
movabs r12, 0xffff000000000000
mov rax, qword [rsi]
movabs r9, 0xffffffffffff
mov ecx, dword [rsp + 0x38]
and rax, r9
mov qword [rax + rcx*8], r14
movzx eax, word [rsi + 6]
movzx ecx, ax
shr cx, 8
test cl, cl
jne 0x180012caa
mov dword [rsi + 8], r15d
jmp 0x180012cbc
inc r15b
mov byte [rbp - 0x7c], al
mov byte [rbp - 0x7b], r15b
movzx eax, word [rbp - 0x7c]
mov word [rsi + 6], ax
mov rsi, qword [rsp + 0x58]
mov rax, qword [rbp + 0x78]
movsxd r8, dword [rsi]
mov rax, qword [rax]
mov edx, dword [rsi + 4]
and rax, r9
mov rbx, qword [rax + r8*8]
test rbx, rbx
je 0x180012d00
nop word [rax + rax]
mov eax, dword [rbx + 0x18]
cmp eax, r8d
jne 0x180012cf3
cmp dword [rbx + 0x1c], edx
je 0x180012d02
mov rbx, qword [rbx + 0x20]
jmp 0x180012cfb
cmp eax, edx
je 0x180012d02
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180012ce0
xor ebx, ebx
mov ecx, 0x38
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x180012d87
mov eax, dword [rsp + 0x3c]
mov edx, r13d
mov r8d, eax
mov qword [rbp - 0x70], rsi
inc eax
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rbp - 0x70]
mov dword [rsp + 0x3c], eax
inc r13d
lea rax, [r14 + 0x20]
mov byte [rbp - 0x60], 0
movsd xmm1, qword [rbp - 0x60]
mov rcx, rax
movups xmmword [r14], xmm0
mov word [rbp - 0x7a], 0x152
movsd qword [r14 + 0x10], xmm1
xor rcx, qword [r14 + 0x18]
and rcx, r12
mov dword [rsp + 0x34], r13d
xor rcx, rax
movzx eax, word [rbp - 0x7a]
mov qword [r14 + 0x18], rcx
mov word [r14 + 0x1e], ax
mov dword [r14 + 0x28], edx
mov dword [r14 + 0x2c], r8d
mov byte [r14 + 0x30], 0
mov dword [r14 + 0x34], 0
jmp 0x180012d8a
xor r14d, r14d
mov r8, qword [rsp + 0x50]
lea rsi, [rdi + 1]
add rsi, rsi
add rdi, 2
mov qword [rsp + 0x48], rdi
movzx ebx, word [r8 + rsi*8 + 6]
movzx ecx, bx
shr cx, 8
test cl, cl
jne 0x180012dc3
mov eax, dword [r8 + rsi*8 + 8]
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, dword [r8 + rsi*8 + 0xc]
jmp 0x180012dd5
lea eax, [rcx - 1]
movzx eax, al
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, 1
mov r12d, edx
mov r15d, edx
cmp edx, eax
jbe 0x180012f02
test cl, cl
jne 0x180012e52
mov eax, dword [r8 + rsi*8 + 0xc]
mov word [rsp + 0x30], bx
lea ecx, [rax*2 + 1]
add ecx, eax
movabs rax, 0xffffffffffff
shr ecx, 1
cmp edx, ecx
cmovbe r12d, ecx
mov rcx, qword [r8 + rsi*8]
mov edx, r12d
and rcx, rax
shl rdx, 3
mov edi, r12d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov r8, qword [rsp + 0x50]
movabs r12, 0xffff000000000000
mov rcx, rax
xor rcx, qword [r8 + rsi*8]
and rcx, r12
xor rcx, rax
mov qword [r8 + rsi*8], rcx
mov dword [r8 + rsi*8 + 0xc], edi
mov rdi, qword [rsp + 0x48]
jmp 0x180012f0c
mov eax, 2
movzx r13d, bx
cmp edx, eax
cmovbe r12d, eax
movzx eax, bx
shr ax, 8
shr r13w, 8
mov word [rsp + 0x30], ax
cmp r12d, 1
jbe 0x180012f02
mov edx, r12d
xor ecx, ecx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rcx, qword [rsp + 0x50]
mov rdi, rax
movzx eax, word [rsp + 0x30]
dec al
movzx r8d, al
movabs rax, 0xffffffffffff
mov rdx, qword [rcx + rsi*8]
mov rcx, rdi
and rdx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov r8, qword [rsp + 0x50]
movabs rax, 0xffff000000000000
mov rcx, rdi
mov byte [rbp - 0x78], bl
mov byte [rbp - 0x77], 0
xor rcx, qword [r8 + rsi*8]
and rcx, rax
mov dword [r8 + rsi*8 + 0xc], r12d
movzx eax, word [rbp - 0x78]
xor rcx, rdi
mov rdi, qword [rsp + 0x48]
dec r13b
mov qword [r8 + rsi*8], rcx
mov word [r8 + rsi*8 + 6], ax
movzx eax, r13b
mov dword [r8 + rsi*8 + 8], eax
movabs r12, 0xffff000000000000
mov rax, qword [r8 + rsi*8]
movabs r9, 0xffffffffffff
mov ecx, dword [rsp + 0x38]
and rax, r9
mov qword [rax + rcx*8], r14
movzx eax, word [r8 + rsi*8 + 6]
movzx ecx, ax
shr cx, 8
test cl, cl
jne 0x180012f3d
mov dword [r8 + rsi*8 + 8], r15d
jmp 0x180012f51
inc r15b
mov byte [rbp - 0x76], al
mov byte [rbp - 0x75], r15b
movzx eax, word [rbp - 0x76]
mov word [r8 + rsi*8 + 6], ax
mov r13, qword [rsp + 0x58]
mov rax, qword [rbp + 0x78]
movsxd r8, dword [r13 + 4]
mov rax, qword [rax]
mov edx, dword [r13 + 8]
and rax, r9
mov rbx, qword [rax + r8*8]
test rbx, rbx
je 0x180012f91
mov eax, dword [rbx + 0x18]
cmp eax, r8d
jne 0x180012f84
cmp dword [rbx + 0x1c], edx
je 0x180012f93
mov rbx, qword [rbx + 0x20]
jmp 0x180012f8c
cmp eax, edx
je 0x180012f93
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180012f71
xor ebx, ebx
mov ecx, 0x38
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x18001301b
mov eax, dword [rsp + 0x3c]
mov r8d, eax
inc eax
mov qword [rbp - 0x70], r13
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x34]
mov edx, eax
inc eax
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rbp - 0x70]
mov dword [rsp + 0x34], eax
lea rax, [r14 + 0x20]
mov rcx, rax
mov byte [rbp - 0x60], 1
movsd xmm1, qword [rbp - 0x60]
movups xmmword [r14], xmm0
mov word [rsp + 0x60], 0x152
movsd qword [r14 + 0x10], xmm1
xor rcx, qword [r14 + 0x18]
and rcx, r12
xor rcx, rax
movzx eax, word [rsp + 0x60]
mov qword [r14 + 0x18], rcx
mov word [r14 + 0x1e], ax
mov dword [r14 + 0x28], edx
mov dword [r14 + 0x2c], r8d
mov byte [r14 + 0x30], 0
mov dword [r14 + 0x34], 0
jmp 0x18001301e
xor r14d, r14d
mov rsi, rdi
shl rsi, 4
add rsi, qword [rsp + 0x50]
movzx ebx, word [rsi + 6]
movzx ecx, bx
shr cx, 8
test cl, cl
jne 0x180013048
mov eax, dword [rsi + 8]
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, dword [rsi + 0xc]
jmp 0x18001305a
lea eax, [rcx - 1]
movzx eax, al
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, 1
mov r12d, edx
mov r15d, edx
cmp edx, eax
jbe 0x18001316d
test cl, cl
jne 0x1800130cb
mov eax, dword [rsi + 0xc]
mov word [rsp + 0x30], bx
lea ecx, [rax*2 + 1]
add ecx, eax
movabs rax, 0xffffffffffff
shr ecx, 1
cmp edx, ecx
cmovbe r12d, ecx
mov rcx, qword [rsi]
mov edx, r12d
and rcx, rax
shl rdx, 3
mov edi, r12d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rcx, rax
movabs r12, 0xffff000000000000
xor rcx, qword [rsi]
and rcx, r12
xor rcx, rax
mov qword [rsi], rcx
mov dword [rsi + 0xc], edi
mov rdi, qword [rsp + 0x48]
jmp 0x180013177
mov eax, 2
movzx r13d, bx
cmp edx, eax
cmovbe r12d, eax
movzx eax, bx
shr ax, 8
shr r13w, 8
mov word [rsp + 0x30], ax
cmp r12d, 1
jbe 0x180013168
mov edx, r12d
xor ecx, ecx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rdx, qword [rsi]
mov rdi, rax
movzx eax, word [rsp + 0x30]
mov rcx, rdi
dec al
movzx r8d, al
movabs rax, 0xffffffffffff
and rdx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
movabs rax, 0xffff000000000000
mov byte [rsp + 0x62], bl
mov rcx, rdi
mov byte [rsp + 0x63], 0
xor rcx, qword [rsi]
and rcx, rax
mov dword [rsi + 0xc], r12d
movzx eax, word [rsp + 0x62]
xor rcx, rdi
mov rdi, qword [rsp + 0x48]
dec r13b
mov qword [rsi], rcx
mov word [rsi + 6], ax
movzx eax, r13b
mov dword [rsi + 8], eax
mov r13, qword [rsp + 0x58]
movabs r12, 0xffff000000000000
mov rax, qword [rsi]
movabs r9, 0xffffffffffff
mov ecx, dword [rsp + 0x38]
and rax, r9
mov qword [rax + rcx*8], r14
movzx eax, word [rsi + 6]
movzx ecx, ax
shr cx, 8
test cl, cl
jne 0x1800131a4
mov dword [rsi + 8], r15d
jmp 0x1800131b9
inc r15b
mov byte [rsp + 0x64], al
mov byte [rsp + 0x65], r15b
movzx eax, word [rsp + 0x64]
mov word [rsi + 6], ax
mov rax, qword [rbp + 0x78]
movsxd r8, dword [r13 + 4]
mov edx, dword [r13 + 8]
mov rax, qword [rax]
and rax, r9
mov rbx, qword [rax + r8*8]
test rbx, rbx
je 0x1800131f4
mov eax, dword [rbx + 0x18]
cmp eax, r8d
jne 0x1800131e7
cmp dword [rbx + 0x1c], edx
je 0x1800131f6
mov rbx, qword [rbx + 0x20]
jmp 0x1800131ef
cmp eax, edx
je 0x1800131f6
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x1800131d4
xor ebx, ebx
mov ecx, 0x38
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x18001327e
mov eax, dword [rsp + 0x3c]
mov r8d, eax
inc eax
mov qword [rbp - 0x70], r13
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x34]
mov edx, eax
inc eax
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rbp - 0x70]
mov dword [rsp + 0x34], eax
lea rax, [r14 + 0x20]
mov rcx, rax
mov byte [rbp - 0x60], 0
movsd xmm1, qword [rbp - 0x60]
movups xmmword [r14], xmm0
mov word [rsp + 0x66], 0x152
movsd qword [r14 + 0x10], xmm1
xor rcx, qword [r14 + 0x18]
and rcx, r12
xor rcx, rax
movzx eax, word [rsp + 0x66]
mov qword [r14 + 0x18], rcx
mov word [r14 + 0x1e], ax
mov dword [r14 + 0x28], edx
mov dword [r14 + 0x2c], r8d
mov byte [r14 + 0x30], 0
mov dword [r14 + 0x34], 0
jmp 0x180013281
xor r14d, r14d
mov r8, qword [rsp + 0x50]
lea rsi, [rdi + 1]
add rsi, rsi
add rdi, 2
mov qword [rsp + 0x48], rdi
movzx ebx, word [r8 + rsi*8 + 6]
movzx ecx, bx
shr cx, 8
test cl, cl
jne 0x1800132ba
mov eax, dword [r8 + rsi*8 + 8]
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, dword [r8 + rsi*8 + 0xc]
jmp 0x1800132cc
lea eax, [rcx - 1]
movzx eax, al
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, 1
mov r12d, edx
mov r15d, edx
cmp edx, eax
jbe 0x180013401
test cl, cl
jne 0x180013349
mov eax, dword [r8 + rsi*8 + 0xc]
mov word [rsp + 0x30], bx
lea ecx, [rax*2 + 1]
add ecx, eax
movabs rax, 0xffffffffffff
shr ecx, 1
cmp edx, ecx
cmovbe r12d, ecx
mov rcx, qword [r8 + rsi*8]
mov edx, r12d
and rcx, rax
shl rdx, 3
mov edi, r12d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov r8, qword [rsp + 0x50]
movabs r12, 0xffff000000000000
mov rcx, rax
xor rcx, qword [r8 + rsi*8]
and rcx, r12
xor rcx, rax
mov qword [r8 + rsi*8], rcx
mov dword [r8 + rsi*8 + 0xc], edi
mov rdi, qword [rsp + 0x48]
jmp 0x18001340b
mov eax, 2
movzx r13d, bx
cmp edx, eax
cmovbe r12d, eax
movzx eax, bx
shr ax, 8
shr r13w, 8
mov word [rsp + 0x30], ax
cmp r12d, 1
jbe 0x1800133fc
mov edx, r12d
xor ecx, ecx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rcx, qword [rsp + 0x50]
mov rdi, rax
movzx eax, word [rsp + 0x30]
dec al
movzx r8d, al
movabs rax, 0xffffffffffff
mov rdx, qword [rcx + rsi*8]
mov rcx, rdi
and rdx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov r8, qword [rsp + 0x50]
movabs rax, 0xffff000000000000
mov rcx, rdi
mov byte [rsp + 0x68], bl
mov byte [rsp + 0x69], 0
xor rcx, qword [r8 + rsi*8]
and rcx, rax
mov dword [r8 + rsi*8 + 0xc], r12d
movzx eax, word [rsp + 0x68]
xor rcx, rdi
mov rdi, qword [rsp + 0x48]
dec r13b
mov qword [r8 + rsi*8], rcx
mov word [r8 + rsi*8 + 6], ax
movzx eax, r13b
mov dword [r8 + rsi*8 + 8], eax
mov r13, qword [rsp + 0x58]
movabs r12, 0xffff000000000000
mov rax, qword [r8 + rsi*8]
movabs r9, 0xffffffffffff
mov ecx, dword [rsp + 0x38]
and rax, r9
mov qword [rax + rcx*8], r14
movzx eax, word [r8 + rsi*8 + 6]
movzx ecx, ax
shr cx, 8
test cl, cl
jne 0x18001343c
mov dword [r8 + rsi*8 + 8], r15d
jmp 0x180013453
inc r15b
mov byte [rsp + 0x6a], al
mov byte [rsp + 0x6b], r15b
movzx eax, word [rsp + 0x6a]
mov word [r8 + rsi*8 + 6], ax
mov rax, qword [rbp + 0x78]
movsxd r8, dword [r13 + 8]
mov edx, dword [r13]
mov rax, qword [rax]
and rax, r9
mov rbx, qword [rax + r8*8]
test rbx, rbx
je 0x180013490
nop
mov eax, dword [rbx + 0x18]
cmp eax, r8d
jne 0x180013483
cmp dword [rbx + 0x1c], edx
je 0x180013492
mov rbx, qword [rbx + 0x20]
jmp 0x18001348b
cmp eax, edx
je 0x180013492
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180013470
xor ebx, ebx
mov ecx, 0x38
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x18001351a
mov eax, dword [rsp + 0x3c]
mov r8d, eax
inc eax
mov qword [rbp - 0x70], r13
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x34]
mov edx, eax
inc eax
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rbp - 0x70]
mov dword [rsp + 0x34], eax
lea rax, [r14 + 0x20]
mov rcx, rax
mov byte [rbp - 0x60], 1
movsd xmm1, qword [rbp - 0x60]
movups xmmword [r14], xmm0
mov word [rsp + 0x6c], 0x152
movsd qword [r14 + 0x10], xmm1
xor rcx, qword [r14 + 0x18]
and rcx, r12
xor rcx, rax
movzx eax, word [rsp + 0x6c]
mov qword [r14 + 0x18], rcx
mov word [r14 + 0x1e], ax
mov dword [r14 + 0x28], edx
mov dword [r14 + 0x2c], r8d
mov byte [r14 + 0x30], 0
mov dword [r14 + 0x34], 0
jmp 0x18001351d
xor r14d, r14d
mov rsi, rdi
shl rsi, 4
add rsi, qword [rsp + 0x50]
movzx ebx, word [rsi + 6]
movzx ecx, bx
shr cx, 8
test cl, cl
jne 0x180013547
mov eax, dword [rsi + 8]
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, dword [rsi + 0xc]
jmp 0x180013559
lea eax, [rcx - 1]
movzx eax, al
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, 1
mov r12d, edx
mov r15d, edx
cmp edx, eax
jbe 0x18001366c
test cl, cl
jne 0x1800135ca
mov eax, dword [rsi + 0xc]
mov word [rsp + 0x30], bx
lea ecx, [rax*2 + 1]
add ecx, eax
movabs rax, 0xffffffffffff
shr ecx, 1
cmp edx, ecx
cmovbe r12d, ecx
mov rcx, qword [rsi]
mov edx, r12d
and rcx, rax
shl rdx, 3
mov edi, r12d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rcx, rax
movabs r12, 0xffff000000000000
xor rcx, qword [rsi]
and rcx, r12
xor rcx, rax
mov qword [rsi], rcx
mov dword [rsi + 0xc], edi
mov rdi, qword [rsp + 0x48]
jmp 0x180013676
mov eax, 2
movzx r13d, bx
cmp edx, eax
cmovbe r12d, eax
movzx eax, bx
shr ax, 8
shr r13w, 8
mov word [rsp + 0x30], ax
cmp r12d, 1
jbe 0x180013667
mov edx, r12d
xor ecx, ecx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rdx, qword [rsi]
mov rdi, rax
movzx eax, word [rsp + 0x30]
mov rcx, rdi
dec al
movzx r8d, al
movabs rax, 0xffffffffffff
and rdx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
movabs rax, 0xffff000000000000
mov byte [rsp + 0x6e], bl
mov rcx, rdi
mov byte [rsp + 0x6f], 0
xor rcx, qword [rsi]
and rcx, rax
mov dword [rsi + 0xc], r12d
movzx eax, word [rsp + 0x6e]
xor rcx, rdi
mov rdi, qword [rsp + 0x48]
dec r13b
mov qword [rsi], rcx
mov word [rsi + 6], ax
movzx eax, r13b
mov dword [rsi + 8], eax
mov r13, qword [rsp + 0x58]
movabs r12, 0xffff000000000000
mov rax, qword [rsi]
movabs r9, 0xffffffffffff
mov ecx, dword [rsp + 0x38]
and rax, r9
mov qword [rax + rcx*8], r14
movzx eax, word [rsi + 6]
movzx ecx, ax
shr cx, 8
test cl, cl
jne 0x1800136a3
mov dword [rsi + 8], r15d
jmp 0x1800136b8
inc r15b
mov byte [rsp + 0x70], al
mov byte [rsp + 0x71], r15b
movzx eax, word [rsp + 0x70]
mov word [rsi + 6], ax
mov rax, qword [rbp + 0x78]
movsxd r8, dword [r13 + 8]
mov edx, dword [r13]
mov rax, qword [rax]
and rax, r9
mov rbx, qword [rax + r8*8]
test rbx, rbx
je 0x1800136f3
mov eax, dword [rbx + 0x18]
cmp eax, r8d
jne 0x1800136e6
cmp dword [rbx + 0x1c], edx
je 0x1800136f5
mov rbx, qword [rbx + 0x20]
jmp 0x1800136ee
cmp eax, edx
je 0x1800136f5
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x1800136d3
xor ebx, ebx
mov ecx, 0x38
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x18001377d
mov eax, dword [rsp + 0x3c]
mov r8d, eax
inc eax
mov qword [rbp - 0x70], r13
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x34]
mov edx, eax
inc eax
mov qword [rbp - 0x68], rbx
movups xmm0, xmmword [rbp - 0x70]
mov dword [rsp + 0x34], eax
lea rax, [r14 + 0x20]
mov rcx, rax
mov byte [rbp - 0x60], 0
movsd xmm1, qword [rbp - 0x60]
movups xmmword [r14], xmm0
mov word [rsp + 0x72], 0x152
movsd qword [r14 + 0x10], xmm1
xor rcx, qword [r14 + 0x18]
and rcx, r12
xor rcx, rax
movzx eax, word [rsp + 0x72]
mov qword [r14 + 0x18], rcx
mov word [r14 + 0x1e], ax
mov dword [r14 + 0x28], edx
mov dword [r14 + 0x2c], r8d
mov byte [r14 + 0x30], 0
mov dword [r14 + 0x34], 0
jmp 0x180013780
xor r14d, r14d
mov r10, qword [rsp + 0x50]
lea rsi, [rdi + 1]
add dword [rbp - 0x58], 6
lea r8, [rdi + 2]
add rsi, rsi
mov qword [rsp + 0x48], r8
movzx ebx, word [r10 + rsi*8 + 6]
movzx ecx, bx
shr cx, 8
test cl, cl
jne 0x1800137bd
mov eax, dword [r10 + rsi*8 + 8]
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, dword [r10 + rsi*8 + 0xc]
jmp 0x1800137cf
lea eax, [rcx - 1]
movzx eax, al
mov dword [rsp + 0x38], eax
lea edx, [rax + 1]
mov eax, 1
mov r15d, edx
mov r12d, edx
cmp edx, eax
jbe 0x1800138fa
test cl, cl
jne 0x180013847
mov eax, dword [r10 + rsi*8 + 0xc]
mov word [rsp + 0x30], bx
lea ecx, [rax*2 + 1]
add ecx, eax
movabs rax, 0xffffffffffff
shr ecx, 1
cmp edx, ecx
cmovbe r15d, ecx
mov rcx, qword [r10 + rsi*8]
mov edx, r15d
and rcx, rax
shl rdx, 3
mov edi, r15d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov r10, qword [rsp + 0x50]
movabs rdx, 0xffff000000000000
mov rcx, rax
xor rcx, qword [r10 + rsi*8]
and rcx, rdx
xor rcx, rax
mov qword [r10 + rsi*8], rcx
mov dword [r10 + rsi*8 + 0xc], edi
jmp 0x1800138f5
mov eax, 2
movzx r13d, bx
cmp edx, eax
cmovbe r15d, eax
movzx eax, bx
shr ax, 8
shr r13w, 8
mov word [rsp + 0x30], ax
cmp r15d, 1
jbe 0x1800138fa
mov edx, r15d
xor ecx, ecx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rcx, qword [rsp + 0x50]
mov rdi, rax
movzx eax, word [rsp + 0x30]
dec al
movzx r8d, al
movabs rax, 0xffffffffffff
mov rdx, qword [rcx + rsi*8]
mov rcx, rdi
and rdx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov r10, qword [rsp + 0x50]
movabs rax, 0xffff000000000000
mov rcx, rdi
mov byte [rsp + 0x74], bl
mov byte [rsp + 0x75], 0
xor rcx, qword [r10 + rsi*8]
and rcx, rax
mov dword [r10 + rsi*8 + 0xc], r15d
movzx eax, word [rsp + 0x74]
xor rcx, rdi
mov qword [r10 + rsi*8], rcx
dec r13b
mov word [r10 + rsi*8 + 6], ax
movzx eax, r13b
mov dword [r10 + rsi*8 + 8], eax
mov r8, qword [rsp + 0x48]
mov rax, qword [r10 + rsi*8]
movabs rdi, 0xffffffffffff
mov ecx, dword [rsp + 0x38]
and rax, rdi
mov r13d, dword [rsp + 0x34]
mov qword [rax + rcx*8], r14
movzx eax, word [r10 + rsi*8 + 6]
mov r14, qword [rbp - 0x50]
movzx ecx, ax
shr cx, 8
test cl, cl
jne 0x180013934
mov dword [r10 + rsi*8 + 8], r12d
jmp 0x180013950
inc r12b
mov byte [rsp + 0x76], al
mov byte [rsp + 0x77], r12b
movzx eax, word [rsp + 0x76]
mov word [r10 + rsi*8 + 6], ax
mov qword [rsp + 0x48], r8
mov rsi, qword [rbp - 0x40]
mov rbx, qword [rbp - 0x38]
mov ecx, dword [rbp - 0x48]
mov r12, qword [rsp + 0x50]
inc ecx
mov dword [rbp - 0x48], ecx
cmp ecx, dword [rbp + 0x80]
jl 0x1800128b0
jmp 0x180013978
mov byte [rsp + 0x40], 1
mov rsi, qword [rbp + 0x60]
mov r15, qword [rbp + 0x70]
mov eax, dword [rbp - 0x58]
mov r14, qword [rsp + 0x50]
cdqe
mov qword [rsp + 0x48], rax
test rax, rax
jle 0x180013e68
mov r12, qword [rbp + 0x78]
add r14, 0xc
mov rdi, rax
mov qword [rbp - 0x50], rax
nop word [rax + rax]
mov rcx, qword [r14 - 0xc]
movabs rbx, 0xffffffffffff
and rcx, rbx
mov r8, r15
mov rdx, r12
mov rcx, qword [rcx]
call fcn.180009cf0
mov rax, qword [r14 - 0xc]
xorps xmm0, xmm0
and rax, rbx
mov byte [rbp - 0x60], 0
mov r8, r12
mov rdx, r15
mov rcx, rsi
movdqu xmmword [rbp - 0x70], xmm0
mov r9, qword [rax]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov ebx, dword [r9 + 0x2c]
mov dword [rsp + 0x38], ebx
call fcn.1800141d0
test al, al
je 0x180013c66
movabs rdi, 0xffffffffffff
nop word [rax + rax]
mov ecx, 0x38
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
je 0x180013a91
movups xmm0, xmmword [rbp - 0x70]
mov edx, r13d
inc r13d
movsd xmm1, qword [rbp - 0x60]
movups xmmword [rax], xmm0
mov dword [rsp + 0x34], r13d
movabs r13, 0xffff000000000000
movsd qword [rax + 0x10], xmm1
add rax, 0x20
mov rcx, rax
mov word [rsp + 0x78], 0x152
xor rcx, qword [rsi + 0x18]
and rcx, r13
xor rcx, rax
movzx eax, word [rsp + 0x78]
mov qword [rsi + 0x18], rcx
mov word [rsi + 0x1e], ax
mov dword [rsi + 0x28], edx
mov dword [rsi + 0x2c], ebx
mov byte [rsi + 0x30], 0
mov dword [rsi + 0x34], 0
jmp 0x180013a9d
xor esi, esi
movabs r13, 0xffff000000000000
mov r8, r15
mov rdx, r12
mov rcx, rsi
call fcn.180009cf0
movzx ebx, word [r14 - 6]
movzx ecx, bx
shr cx, 8
test cl, cl
jne 0x180013aca
mov eax, dword [r14 - 4]
mov dword [rbp - 0x48], eax
lea edx, [rax + 1]
mov eax, dword [r14]
jmp 0x180013adb
lea eax, [rcx - 1]
movzx eax, al
mov dword [rbp - 0x48], eax
lea edx, [rax + 1]
mov eax, 1
mov r15d, edx
cmp edx, eax
jbe 0x180013bf5
test cl, cl
jne 0x180013b44
mov eax, dword [r14]
mov edi, edx
mov word [rsp + 0x30], bx
lea ecx, [rax*2 + 1]
add ecx, eax
movabs rax, 0xffffffffffff
shr ecx, 1
cmp edx, ecx
cmovbe edi, ecx
mov rcx, qword [r14 - 0xc]
mov edx, edi
and rcx, rax
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rcx, rax
xor rcx, qword [r14 - 0xc]
and rcx, r13
xor rcx, rax
mov qword [r14 - 0xc], rcx
mov dword [r14], edi
movabs rdi, 0xffffffffffff
jmp 0x180013bf5
mov eax, 2
mov r12d, r15d
cmp edx, eax
movzx r13d, bx
cmovbe r12d, eax
movzx eax, bx
shr ax, 8
shr r13w, 8
mov word [rsp + 0x30], ax
cmp r12d, 1
jbe 0x180013bf1
mov edx, r12d
xor ecx, ecx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rdx, qword [r14 - 0xc]
mov rdi, rax
movzx eax, word [rsp + 0x30]
mov rcx, rdi
dec al
movzx r8d, al
movabs rax, 0xffffffffffff
and rdx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
movabs rax, 0xffff000000000000
mov byte [rsp + 0x7a], bl
mov rcx, rdi
mov byte [rsp + 0x7b], 0
xor rcx, qword [r14 - 0xc]
and rcx, rax
mov dword [r14], r12d
movzx eax, word [rsp + 0x7a]
xor rcx, rdi
mov qword [r14 - 0xc], rcx
dec r13b
mov word [r14 - 6], ax
movabs rdi, 0xffffffffffff
movzx eax, r13b
mov dword [r14 - 4], eax
mov r12, qword [rbp + 0x78]
mov rax, qword [r14 - 0xc]
mov ecx, dword [rbp - 0x48]
and rax, rdi
mov qword [rax + rcx*8], rsi
movzx eax, word [r14 - 6]
movzx ecx, ax
shr cx, 8
test cl, cl
jne 0x180013c19
mov dword [r14 - 4], r15d
jmp 0x180013c2f
inc r15b
mov byte [rsp + 0x7c], al
mov byte [rsp + 0x7d], r15b
movzx eax, word [rsp + 0x7c]
mov word [r14 - 6], ax
mov r15, qword [rbp + 0x70]
lea rax, [rbp - 0x70]
mov r9, rsi
mov qword [rsp + 0x20], rax
mov rsi, qword [rbp + 0x60]
mov r8, r12
mov rcx, rsi
mov rdx, r15
call fcn.1800141d0
mov r13d, dword [rsp + 0x34]
mov ebx, dword [rsp + 0x38]
test al, al
jne 0x180013a20
mov rdi, qword [rbp - 0x50]
mov r13d, dword [rsp + 0x34]
add r14, 0x10
sub rdi, 1
mov qword [rbp - 0x50], rdi
jne 0x1800139b0
mov r14, qword [rsp + 0x50]
xor edi, edi
mov rsi, qword [rsp + 0x48]
xorps xmm3, xmm3
xor ebx, ebx
mov dword [rsp + 0x34], r13d
lea r10, [r14 + 8]
nop word [rax + rax]
movzx eax, byte [r10 - 1]
xor r9d, r9d
test al, al
jne 0x180013cb1
mov r11d, dword [r10]
jmp 0x180013cb7
dec al
movzx r11d, al
movsxd r8, r11d
movabs r15, 0xffffffffffff
test r11d, r11d
jle 0x180013cf5
mov rdx, qword [r10 - 8]
and rdx, r15
mov rcx, qword [rdx]
movzx eax, byte [rcx + 0x1f]
test al, al
jne 0x180013ce0
mov eax, dword [rcx + 0x20]
jmp 0x180013ce5
dec al
movzx eax, al
sub eax, dword [rcx + 0x34]
add rdx, 8
add r9d, eax
sub r8, 1
jne 0x180013cd0
movd xmm1, r9d
mov eax, ebx
cvtdq2ps xmm1, xmm1
movd xmm0, r11d
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtps2pd xmm2, xmm1
comisd xmm2, xmm3
maxsd xmm2, xmm3
cmovbe eax, edi
inc ebx
add r10, 0x10
movsxd rdi, eax
movaps xmm3, xmm2
sub rsi, 1
jne 0x180013ca0
mov rdx, qword [rbp + 0x68]
mov r8, rdi
mov rcx, qword [rbp + 0x60]
mov rbx, rdi
shl r8, 4
add r8, r14
call fcn.18000e490
mov rax, qword [rsp + 0x48]
xor ecx, ecx
mov qword [rbp - 0x40], rcx
mov rsi, r14
mov qword [rsp + 0x58], r14
nop dword [rax]
cmp rcx, rbx
je 0x180013e48
movzx eax, byte [rsi + 7]
test al, al
jne 0x180013d76
mov eax, dword [rsi + 8]
jmp 0x180013d7b
dec al
movzx eax, al
xor r12d, r12d
cdqe
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], rax
test rax, rax
jle 0x180013e43
mov rax, qword [rsi]
and rax, r15
xor edi, edi
mov r14, qword [rax + r12*8]
movabs r12, 0xffffffffffff
movzx eax, byte [r14 + 0x1f]
test al, al
jne 0x180013db6
mov eax, dword [r14 + 0x20]
jmp 0x180013dbb
dec al
movzx eax, al
cmp edi, eax
jae 0x180013ded
mov rax, qword [r14 + 0x18]
and rax, r12
mov rcx, qword [rax + rdi*8]
cmp byte [rcx + 0x18], 0
je 0x180013de9
mov edx, 0x1c
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rax, qword [r14 + 0x18]
and rax, r12
mov qword [rax + rdi*8], 0
inc edi
jmp 0x180013da7
mov r12, qword [rbp - 0x50]
test r14, r14
je 0x180013e0c
lea rcx, [r14 + 0x18]
call fcn.1800060b0
mov edx, 0x38
mov rcx, r14
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rsi, qword [rsp + 0x58]
movabs r15, 0xffffffffffff
mov rax, qword [rsi]
and rax, r15
mov qword [rax + r12*8], 0
inc r12
mov qword [rbp - 0x50], r12
cmp r12, qword [rbp - 0x48]
jl 0x180013d91
mov rcx, qword [rbp - 0x40]
mov dword [rsp + 0x34], r13d
mov rax, qword [rsp + 0x48]
inc rcx
add rsi, 0x10
mov qword [rbp - 0x40], rcx
mov qword [rsp + 0x58], rsi
cmp rcx, rax
jl 0x180013d60
mov r14, qword [rsp + 0x50]
jmp 0x180013e7c
mov rdx, qword [rbp + 0x68]
mov r8, r14
mov rcx, rsi
call fcn.18000e490
mov dword [rsp + 0x34], r13d
test r14, r14
je 0x180013ebb
mov rdi, qword [r14 - 8]
mov rbx, rdi
shl rbx, 4
add rbx, r14
test rdi, rdi
je 0x180013ea6
sub rbx, 0x10
mov rcx, rbx
call fcn.1800060b0
sub rdi, 1
jne 0x180013e94
mov rdx, qword [r14 - 8]
lea rcx, [r14 - 8]
shl rdx, 4
add rdx, 8
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rdi, qword [rbp - 0x38]
test rdi, rdi
je 0x180013ef2
mov rbx, rdi
nop word [rax + rax]
mov rdx, qword [rbx + 0x10]
lea rcx, [rbp - 0x38]
call fcn.1800264a0
mov rbx, qword [rbx]
lea rcx, [rdi - 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rdi, rbx
test rbx, rbx
jne 0x180013ed0
mov r15, qword [rbp + 0x70]
xor eax, eax
movabs r14, 0xffff000000000000
mov rsi, qword [rbp + 0x60]
mov edi, dword [rbp + 0x80]
mov rbx, qword [rbp - 0x28]
lea rcx, [rax - 1]
mov qword [rbp - 0x38], rax
mov dword [rbp - 0x30], eax
cmp byte [rsp + 0x40], al
je 0x1800127f0
lea r11, [rsp + 0x118]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret