Function at 0x140059c5c
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x13c8
call fcn.14009c7c0
sub rsp, rax
movaps xmmword [rsp + 0x13b0], xmm9
movaps xmmword [rsp + 0x13a0], xmm8
movaps xmmword [rsp + 0x1390], xmm7
movdqa xmmword [rsp + 0x1380], xmm6
mov r13, r9
mov rdi, r8
mov r15, rdx
mov r12, rcx
mov bl, byte [rdx + 0x118]
mov eax, dword [r9 + 0xa8]
lea ecx, [rax - 0x1f]
cmp cx, 3
ja 0x140059cc0
cmp cx, 1
jne 0x140059cd7
add eax, 0xfffffff6
cmp ax, 0x14
ja 0x140059d58
cmp ax, 1
je 0x140059d58
lea rax, [0x1400b30e4]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 1
lea r8, [0x1400b2179]
lea rsi, [rsp + 0x210]
mov r9d, 1
mov rcx, rsi
mov rdx, r13
call fcn.140052b01
movzx edx, byte [rsi]
mov r14, qword [rsi + 8]
cmp rdx, 0x14
je 0x140059d5c
movzx eax, byte [rsp + 0x217]
shl eax, 0x10
movzx ecx, word [rsp + 0x215]
or ecx, eax
shl rcx, 0x20
mov esi, dword [rsp + 0x211]
or rsi, rcx
mov rcx, qword [rsp + 0x220]
mov rax, qword [rsp + 0x228]
shl rsi, 8
or rsi, rdx
jmp 0x14005a3ca
lea r14, [r13 + 0x18]
mov rax, qword [r14 + 0x28]
test rax, rax
je 0x140059d7d
mov rcx, qword [r14 + 0x18]
add rax, rax
xor edx, edx
cmp byte [rcx + rdx], 0
je 0x140059dc2
add rdx, 2
cmp rax, rdx
jne 0x140059d6e
mov rsi, qword [rdi]
mov bl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bl
mov esi, 0x807
jmp 0x14005a3ca
mov byte [rsp + 0x90], bl
mov qword [rsp + 0x40], r12
mov eax, dword [0x1400f5b90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x48], 0
jne 0x140059df1
xor ecx, ecx
call fcn.140066d88
mov eax, dword [0x1400f5b90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x50]
mov rdx, qword [rax + 0x58]
lea r8, [rcx + 1]
mov qword [rax + 0x50], r8
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x220], xmm0
lea rbx, [0x1400b5650]
mov qword [rsp + 0x210], rbx
mov qword [rsp + 0x218], 0
mov qword [rsp + 0x230], rcx
mov qword [rsp + 0x238], rdx
mov rax, qword [r14 + 0x40]
test rax, rax
je 0x140059ecf
mov r12, rdi
mov qword [rsp + 0x48], r14
mov rsi, qword [r14 + 0x30]
imul r14, rax, 0x38
lea rdi, [rsp + 0x210]
mov rcx, rsi
call case.0x140038f72.7
mov ecx, eax
call fcn.14003f681
mov ebp, eax
mov rcx, rdi
mov edx, eax
call fcn.14003ccc3
test al, al
jne 0x14005a199
add rsi, 0x38
mov rcx, rdi
mov edx, ebp
call fcn.14003ce21
add r14, 0xffffffffffffffc8
jne 0x140059e76
mov rdx, qword [rsp + 0x218]
test rdx, rdx
mov rdi, r12
mov r14, qword [rsp + 0x48]
je 0x140059ecf
mov rcx, qword [rsp + 0x210]
call fcn.14003c8a9
mov r12, qword [rdi]
lea rsi, [rsp + 0x210]
mov rcx, rsi
mov rdx, r12
call fcn.1400533d1
movzx edx, byte [rsi]
cmp rdx, 0x14
jne 0x14005a155
mov qword [rsp + 0xa8], r12
mov rcx, qword [r14 + 0x30]
mov rdx, qword [r14 + 0x40]
call fcn.140043388
test rax, rax
mov r12, qword [rsp + 0x40]
mov qword [rsp + 0x98], rdi
je 0x14005a272
mov rsi, rax
mov rbp, rdx
mov eax, dword [0x1400f5b90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x48], 0
jne 0x140059f46
xor ecx, ecx
call fcn.140066d88
mov eax, dword [0x1400f5b90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x50]
mov rdx, qword [rax + 0x58]
lea r8, [rcx + 1]
mov qword [rax + 0x50], r8
pxor xmm0, xmm0
lea rax, [rsp + 0x210]
movdqu xmmword [rax + 0x10], xmm0
mov qword [rax], rbx
mov qword [rax + 8], 0
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rdx
mov qword [rsp + 0x38], rbp
lea rax, [rbp*4]
add rax, rbp
lea rax, [rsi + rax*8]
xor ecx, ecx
pcmpeqd xmm6, xmm6
xor r12d, r12d
xor ebp, ebp
mov rdi, rsi
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x48], r14
cmp rdi, rax
je 0x14005a438
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x80], rsi
cmp byte [rdi + 0x20], 0
movzx esi, byte [rdi + 0x21]
cmove esi, ecx
mov r14, qword [rsp + 0x230]
mov r15, qword [rsp + 0x238]
mov rcx, r14
mov rdx, r15
mov r8d, esi
call fcn.14003aef3
mov r13, rax
test rbp, rbp
je 0x14005a0c4
add rdi, 0x28
mov rcx, r12
and rcx, r13
shr r13, 0x39
movd xmm0, r13d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor edx, edx
xor r8d, r8d
mov r15, qword [rsp + 0xb0]
mov r14, qword [rsp + 0x48]
movdqu xmm1, xmmword [rbx + rcx]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
test r9w, r9w
je 0x14005a085
bsf r10d, r9d
lea r11d, [r9 - 1]
and r11d, r9d
add r10, rcx
and r10, r12
not r10
mov r9d, r11d
cmp byte [r10 + rbx], sil
jne 0x14005a05d
jmp 0x14005a1fe
test r8, r8
mov r8d, 1
jne 0x14005a0a6
pmovmskb eax, xmm1
xor r8d, r8d
test eax, eax
setne r8b
bsf eax, eax
add rax, rcx
and rax, r12
pcmpeqb xmm1, xmm6
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x14005a0ec
add rcx, rdx
add rcx, 0x10
add rdx, 0x10
and rcx, r12
jmp 0x14005a04b
lea rcx, [rsp + 0x210]
mov rdx, r14
mov r8, r15
call fcn.1400a9b47
mov rbx, qword [rsp + 0x210]
mov r12, qword [rsp + 0x218]
jmp 0x14005a018
mov cl, byte [rbx + rax]
test cl, cl
js 0x14005a101
movdqa xmm0, xmmword [rbx]
pmovmskb eax, xmm0
bsf eax, eax
mov cl, byte [rbx + rax]
and cl, 1
movzx ecx, cl
mov rbp, qword [rsp + 0x220]
sub rbp, rcx
mov qword [rsp + 0x220], rbp
lea rcx, [rax - 0x10]
and rcx, r12
mov byte [rbx + rax], r13b
mov byte [rcx + rbx + 0x10], r13b
inc qword [rsp + 0x228]
not rax
mov byte [rax + rbx], sil
mov r13, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rax, qword [rsp + 0x50]
xor ecx, ecx
jmp 0x140059fcd
movzx eax, byte [rsp + 0x217]
shl eax, 0x10
movzx ecx, word [rsp + 0x215]
or ecx, eax
mov esi, dword [rsp + 0x211]
shl rcx, 0x28
shl rsi, 8
or rsi, rcx
mov r14, qword [rsp + 0x218]
mov rcx, qword [rsp + 0x220]
mov rax, qword [rsp + 0x228]
or rsi, rdx
jmp 0x14005a1f4
mov rdx, qword [rsp + 0x218]
test rdx, rdx
je 0x14005a1b3
mov rcx, qword [rsp + 0x210]
call fcn.14003c8a9
mov rsi, qword [r12]
mov bl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bl
mov byte [rdx + 2], 0x10
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bl
mov esi, 0x308
mov r12, qword [rsp + 0x40]
jmp 0x14005a3ca
mov rdx, qword [rsp + 0x218]
test rdx, rdx
je 0x14005a218
mov rcx, qword [rsp + 0x210]
call fcn.14003c881
mov bl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bl
mov byte [rdx + 2], 0x10
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0xa8]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bl
mov esi, 0x808
xor r14d, r14d
mov r12, qword [rsp + 0x40]
mov r13, qword [rsp + 0x88]
jmp 0x14005a3ca
mov rax, qword [rdi + 8]
cmp qword [rax + 0x48], 0
sete dl
mov al, 1
xor edi, edi
mov esi, 0x3708
test dl, dl
je 0x14005a3a8
test al, al
je 0x14005a3a8
xor edi, edi
mov rax, qword [r14 + 0x40]
test rax, rax
je 0x14005a363
mov rsi, qword [r14 + 0x30]
imul rbx, rax, 0x38
mov rcx, rsi
call case.0x140038f72.7
cmp ax, 0xd
je 0x14005a2cb
add rsi, 0x38
add rbx, 0xffffffffffffffc8
jne 0x14005a2ae
jmp 0x14005a363
cmp dword [rsi], 2
jne 0x14005a363
mov qword [rsp + 0x48], r14
mov r14, qword [rsi + 8]
mov rsi, qword [rsi + 0x18]
mov rcx, rsi
call case.0x14002f415.79
mov rbx, rdx
mov qword [rsp + 0x80], rsi
lea r8, [rsi*4]
mov qword [rsp + 0x90], rax
mov rcx, rax
mov rdx, r14
call fcn.14009d5c0
test rdi, rdi
je 0x14005a32b
test rbp, rbp
je 0x14005a32b
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
lea rsi, [rsp + 0xed0]
mov r8d, 0x120
mov rcx, rsi
mov rdx, r15
call fcn.14009d5c0
mov rcx, qword [rsi]
cmp qword [rcx + 0xb8], 0
je 0x14005a57f
cmp qword [rcx + 0x30], 0
setne dil
jmp 0x14005a581
mov bl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bl
mov byte [rdx + 2], 6
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0xa8]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bl
mov esi, 0xc07
xor r14d, r14d
test rdi, rdi
je 0x14005a3ca
test rbp, rbp
je 0x14005a3ca
mov rcx, qword [0x1400f5ae0]
xor r14d, r14d
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
mov qword [r12 + 8], r14
mov qword [r12 + 0x10], rcx
mov qword [r12 + 0x18], rax
mov qword [r12], rsi
mov rcx, r13
call fcn.140043a5b
mov rcx, r15
call fcn.14005f58b
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, r12
movaps xmm6, xmmword [rsp + 0x1380]
movaps xmm7, xmmword [rsp + 0x1390]
movaps xmm8, xmmword [rsp + 0x13a0]
movaps xmm9, xmmword [rsp + 0x13b0]
add rsp, 0x13c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x218]
test rdx, rdx
je 0x14005a452
mov rcx, qword [rsp + 0x210]
call fcn.14003c881
add rsi, 0xffffffffffffffd8
mov rax, qword [rsp + 0x38]
shl rax, 3
lea rax, [rax + rax*4]
mov r12, qword [rsp + 0x40]
mov bl, byte [rsp + 0x90]
test rax, rax
je 0x14005a5c2
lea rcx, [rsi + 0x28]
add rax, 0xffffffffffffffd8
cmp qword [rsi + 0x28], 0
mov rsi, rcx
jne 0x14005a46f
mov rsi, qword [rcx + 8]
mov rbp, qword [rcx + 0x18]
xor r13d, r13d
mov rcx, rbp
xor edx, edx
call fcn.1400210cb
mov rdi, rax
mov qword [rsp + 0x80], rdx
cmp rbp, 0x10
jb 0x14005a53e
mov r9d, 0x10
xor eax, eax
movabs rcx, 0x8080808080808080
mov rdx, rdi
mov r8, rsi
mov r13, rax
mov rax, r9
lea r9, [rsi + r13]
mov r11b, 1
xor r10d, r10d
xor ebx, ebx
or r10, qword [r9 + rbx*8]
mov ebx, 1
test r11b, 1
mov r11d, 0
jne 0x14005a4de
test r10, rcx
mov bl, byte [rsp + 0x90]
jne 0x14005a53e
xor r9d, r9d
mov r10b, byte [r8 + r9]
lea r11d, [r10 - 0x41]
cmp r11b, 0x1a
setb r11b
shl r11b, 5
or r11b, r10b
mov byte [rdx + r9], r11b
lea r10, [r9 + 1]
mov r9, r10
cmp r10, 0x10
jne 0x14005a502
lea r9, [rax + 0x10]
add r8, 0x10
add rdx, 0x10
mov r13, rax
cmp r9, rbp
jbe 0x14005a4cc
mov rax, rbp
mov qword [rsp + 0x210], rdi
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x218], rcx
mov qword [rsp + 0x220], r13
sub rax, r13
mov qword [rsp + 0x38], rax
jne 0x14005a8b1
mov r8, rbp
mov rbp, qword [rsp + 0x80]
jmp 0x14005ae89
xor edi, edi
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x40]
test rax, rax
mov qword [rsp + 0x38], rcx
je 0x14005a644
mov rcx, qword [rsp + 0x48]
mov rsi, qword [rcx + 0x30]
imul r14, rax, 0x38
mov rcx, rsi
call case.0x140038f72.7
cmp ax, 0x17
je 0x14005a60f
add rsi, 0x38
add r14, 0xffffffffffffffc8
jne 0x14005a5a5
jmp 0x14005a644
mov bl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0xa8]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bl
mov esi, 0x3808
xor r14d, r14d
jmp 0x14005a3ca
cmp dword [rsi], 6
jne 0x14005a644
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x14005b218
mov rcx, qword [rsi + 8]
shl rax, 2
xor edx, edx
cmp word [rcx + rdx], 5
je 0x14005b1ec
add rdx, 4
cmp rax, rdx
jne 0x14005a62b
jmp 0x14005b218
mov qword [rsp + 0xa8], rbx
mov rax, qword [rsp + 0x48]
movzx ecx, word [rax + 0x90]
movzx edx, word [rax + 0x92]
call case.0x140039a0d.278
mov esi, eax
mov bp, 4
mov cx, 4
call case.0x140039a0d.278
mov rcx, qword [rsp + 0x98]
mov r14, qword [rcx]
cmp si, ax
jae 0x14005a6c8
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0x13
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [r14 + 0x40], 2
sete r8b
mov rcx, r14
call fcn.140049ae8
mov byte [r14 + 0x139], bpl
mov word [r12], 0xe07
jmp 0x14005a714
test dil, dil
je 0x14005a7c0
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0x13
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [r14 + 0x40], 2
sete r8b
mov rcx, r14
call fcn.140049ae8
mov byte [r14 + 0x139], bpl
mov word [r12], 0xd07
mov dil, 1
mov rbx, qword [rsp + 0xa8]
test rbx, rbx
je 0x14005a73b
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, qword [rsp + 0x90]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0xed0]
lock dec qword [rax]
jne 0x14005a756
lea rcx, [rsp + 0xed0]
call fcn.14003bc9e
lea rsi, [rsp + 0xed8]
mov rcx, rsi
call case.0x14000e390.506
cmp qword [rsi + 0x18], 0
je 0x14005a78c
test bpl, bpl
je 0x14005a7b3
mov r8, qword [rsp + 0xfc8]
test r8, r8
je 0x14005a7b3
cmp qword [rsp + 0xfd0], 0
jne 0x14005a7a4
jmp 0x14005a7b3
test dil, dil
je 0x14005a7b3
cmp qword [rsp + 0xf00], 0
je 0x14005a7b3
mov r8, qword [rsp + 0xef8]
mov rcx, qword [0x1400f5ae0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, r13
call fcn.140043a5b
jmp 0x14005a3ed
mov qword [rsp + 0xb0], r15
xor r15d, r15d
mov qword [rsp + 0x50], r14
mov word [r14 + 0x130], bp
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 0x20]
mov rcx, qword [rcx + 0x30]
lea rdx, [rax + rcx*8]
lea rcx, [rsp + 0xb50]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov rdx, qword [rsp + 0x48]
mov qword [rcx + 0x10], rdx
call fcn.1400391eb
test rax, rax
je 0x14005af66
mov rsi, rax
mov r14, r13
mov ecx, 4
call fcn.14003958c
mov rbp, rax
mov qword [rax], rsi
lea rbx, [rsp + 0x8c0]
mov qword [rbx], rax
mov qword [rbx + 8], rdx
mov qword [rbx + 0x10], 1
mov rax, qword [rsp + 0xb60]
lea r13, [rsp + 0x210]
mov qword [r13 + 0x10], rax
movdqu xmm0, xmmword [rsp + 0xb50]
movdqa xmmword [r13], xmm0
mov esi, 1
mov rdx, qword [rsp + 0x220]
mov rcx, r13
call fcn.1400391eb
test rax, rax
je 0x14005af49
mov rdi, rax
cmp rsi, qword [rsp + 0x8c8]
je 0x14005a89c
mov qword [rbp + rsi*8], rdi
inc rsi
mov qword [rsp + 0x8d0], rsi
jmp 0x14005a864
mov rcx, rbx
mov rdx, rsi
call fcn.14002e861
mov rbp, qword [rsp + 0x8c0]
jmp 0x14005a88a
add r13, rsi
add rbp, rsi
xor edi, edi
lea r12, [0x1400ae668]
mov r15, r13
mov r14, r15
movzx esi, byte [r15]
test sil, sil
js 0x14005a8d5
lea r15, [r14 + 1]
jmp 0x14005a93a
mov eax, esi
and eax, 0x1f
movzx edx, byte [r14 + 1]
and edx, 0x3f
cmp sil, 0xdf
jbe 0x14005a922
movzx ecx, byte [r14 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp sil, 0xf0
jb 0x14005a92f
movzx esi, byte [r14 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and esi, 0x3f
or esi, ecx
or esi, eax
cmp esi, 0x110000
je 0x14005ae5f
lea r15, [r14 + 4]
jmp 0x14005a93a
lea r15, [r14 + 2]
shl eax, 6
or eax, edx
mov esi, eax
jmp 0x14005a93a
lea r15, [r14 + 3]
shl eax, 0xc
or ecx, eax
mov esi, ecx
cmp esi, 0x3a3
je 0x14005a96c
cmp esi, 0x110000
je 0x14005ae5f
cmp esi, 0x80
jae 0x14005a988
lea eax, [rsi - 0x41]
xor ecx, ecx
cmp al, 0x1a
setb cl
shl ecx, 5
or ecx, esi
mov esi, ecx
jmp 0x14005ab48
mov r12, rbp
test rdi, rdi
je 0x14005a9c4
cmp rdi, qword [rsp + 0x38]
jae 0x14005a9be
cmp byte [r13 + rdi], 0xbf
jg 0x14005a9c4
jmp 0x14005d80b
mov eax, 0x57f
xor edx, edx
mov ecx, 0x57f
shr rax, 1
add rax, rdx
cmp dword [r12 + rax*8], esi
jae 0x14005a9ab
inc rax
mov rdx, rax
mov rax, rcx
jmp 0x14005a9b4
je 0x14005aab3
mov rcx, rax
sub rax, rdx
ja 0x14005a994
jmp 0x14005ab40
jne 0x14005d80b
lea rbx, [rdi + r13]
xor eax, eax
cmp rbx, r13
je 0x14005aaa0
movzx esi, byte [rbx - 1]
test sil, sil
js 0x14005a9e1
dec rbx
jmp 0x14005aa34
movzx ecx, byte [rbx - 2]
cmp cl, 0xc0
jge 0x14005aa0c
movzx edx, byte [rbx - 3]
cmp dl, 0xc0
jge 0x14005aa15
movzx r8d, byte [rbx - 4]
add rbx, 0xfffffffffffffffc
and r8d, 7
shl r8d, 6
and edx, 0x3f
or edx, r8d
jmp 0x14005aa1c
add rbx, 0xfffffffffffffffe
and ecx, 0x1f
jmp 0x14005aa24
add rbx, 0xfffffffffffffffd
and edx, 0xf
shl edx, 6
and ecx, 0x3f
or ecx, edx
shl ecx, 6
and esi, 0x3f
or esi, ecx
cmp esi, 0x110000
je 0x14005aaa0
test al, al
jne 0x14005aa4c
mov ecx, esi
call fcn.1400253ba
test al, al
je 0x14005aa4c
mov esi, 0x110000
xor eax, eax
jmp 0x14005aa4e
mov al, 1
cmp esi, 0x110000
je 0x14005a9ca
mov ecx, esi
call fcn.14002547d
lea rdx, str.NulError
test al, al
mov bl, byte [rsp + 0x90]
je 0x14005accb
mov rsi, rdi
add rsi, 2
je 0x14005ac0e
cmp rsi, qword [rsp + 0x38]
jae 0x14005ac08
cmp byte [r13 + rsi], 0xbf
jg 0x14005ac0e
jmp 0x14005d8d7
lea rdx, str.NulError
mov bl, byte [rsp + 0x90]
jmp 0x14005accb
mov esi, dword [r12 + rax*8 + 4]
mov eax, esi
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
setb al
cmp esi, 0x110000
sete cl
or cl, al
mov eax, 0x69
cmovne esi, eax
je 0x14005ab40
cmp esi, 0x80
jae 0x14005ad4c
mov rdx, qword [rsp + 0x220]
cmp rdx, qword [rsp + 0x218]
jne 0x14005ab14
lea rcx, [rsp + 0x210]
call fcn.140020e37
mov rdx, qword [rsp + 0x220]
mov rax, qword [rsp + 0x210]
mov byte [rax + rdx], sil
inc rdx
mov qword [rsp + 0x220], rdx
lea rcx, [rsp + 0x210]
lea rsi, [rsp + 0x8c0]
jmp 0x14005ae2b
cmp esi, 0x80
jae 0x14005ab8b
mov rdx, qword [rsp + 0x220]
cmp rdx, qword [rsp + 0x218]
jne 0x14005ab6f
lea rcx, [rsp + 0x210]
call fcn.140020e37
mov rdx, qword [rsp + 0x220]
mov rax, qword [rsp + 0x210]
mov byte [rax + rdx], sil
inc rdx
mov qword [rsp + 0x220], rdx
jmp 0x14005ae50
mov dword [rsp + 0x8c0], 0
mov eax, esi
cmp esi, 0x800
jae 0x14005abc6
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x8c0], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x8c1], sil
mov eax, 2
jmp 0x14005ad2c
cmp esi, 0x10000
jae 0x14005aceb
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x8c0], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x8c1], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x8c2], sil
mov eax, 3
jmp 0x14005ad2c
jne 0x14005d8d7
add rsi, r13
xor eax, eax
cmp rsi, r12
je 0x14005acc4
movzx ebp, byte [rsi]
test bpl, bpl
js 0x14005ac29
inc rsi
jmp 0x14005ac8c
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rsi + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x14005ac73
movzx edx, byte [rsi + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x14005ac81
movzx ebp, byte [rsi + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
je 0x14005acc4
add rsi, 4
jmp 0x14005ac8c
add rsi, 2
shl ecx, 6
or ecx, r8d
mov ebp, ecx
jmp 0x14005ac8c
add rsi, 3
shl ecx, 0xc
or edx, ecx
mov ebp, edx
test al, al
jne 0x14005aca4
mov ecx, ebp
call fcn.1400253ba
test al, al
je 0x14005aca4
mov ebp, 0x110000
xor eax, eax
jmp 0x14005aca6
mov al, 1
cmp ebp, 0x110000
je 0x14005ac13
mov ecx, ebp
call fcn.14002547d
lea rdx, str.NulError
test al, al
jne 0x14005accb
lea rdx, [0x1400ad4ea]
lea r8, [rdx + 2]
lea rcx, [rsp + 0x210]
call fcn.140020e6d
mov rbp, r12
lea r12, [0x1400ae668]
jmp 0x14005ae50
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x8c0], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x8c1], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x8c2], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x8c3], sil
mov eax, 4
lea r8, [rsp + rax]
add r8, 0x8c0
lea rcx, [rsp + 0x210]
lea rdx, [rsp + 0x8c0]
jmp 0x14005ae4b
mov dword [rsp + 0x8c0], 0
mov eax, esi
cmp esi, 0x800
jae 0x14005ad84
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x8c0], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x8c1], sil
mov eax, 2
jmp 0x14005ae00
cmp esi, 0x10000
jae 0x14005adbf
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x8c0], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x8c1], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x8c2], sil
mov eax, 3
jmp 0x14005ae00
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x8c0], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x8c1], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x8c2], al
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x8c3], sil
mov eax, 4
lea r8, [rsp + rax]
add r8, 0x8c0
lea rcx, [rsp + 0x210]
lea rsi, [rsp + 0x8c0]
mov rdx, rsi
call fcn.140020e6d
lea rcx, [rsp + 0x210]
mov dword [rsp + 0x8c0], 0
mov word [rsp + 0x8c0], 0x87cc
mov rdx, rsi
lea r8, [rsp + 0x8c2]
call fcn.140020e6d
sub rdi, r14
add rdi, r15
cmp r15, rbp
jne 0x14005a8c3
mov rdi, qword [rsp + 0x210]
mov rbp, qword [rsp + 0x218]
mov r8, qword [rsp + 0x220]
mov r15, qword [rsp + 0xb0]
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
test rdi, rdi
mov r13, qword [rsp + 0x88]
je 0x14005aefa
test bl, bl
jne 0x14005aefa
mov rax, qword [rsp + 0x98]
mov rbx, qword [rax + 8]
cmp qword [rbx + 0x48], 0
jne 0x14005f0d9
mov rcx, r8
mov r12, r8
xor edx, edx
call fcn.1400210cb
mov rsi, rax
mov r14, rdx
mov rcx, rax
mov rdx, rdi
mov r8, r12
call fcn.14009d5c0
mov rcx, qword [rbx + 0x48]
mov rdx, qword [rbx + 0x50]
call fcn.14000397d
mov qword [rbx + 0x48], rsi
mov qword [rbx + 0x50], r14
mov qword [rbx + 0x58], r12
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x14005a299
mov rax, qword [rsp + 0x98]
mov r9, qword [rax + 8]
mov rcx, qword [r9 + 0x48]
test rdi, rdi
sete al
test rcx, rcx
sete dl
je 0x14005a282
test rdi, rdi
je 0x14005a282
mov esi, 0x3708
cmp qword [r9 + 0x58], r8
jne 0x14005a3a8
mov rdx, rdi
call fcn.14009e000
test eax, eax
jne 0x14005a3a8
jmp 0x14005a299
mov rax, qword [rsp + 0x8c0]
mov qword [rsp + 0x118], rax
mov rdx, qword [rsp + 0x8c8]
mov r13, r14
jmp 0x14005af77
mov eax, 8
mov qword [rsp + 0x118], rax
xor esi, esi
xor edx, edx
mov r14, qword [rsp + 0x80]
test r14, r14
mov r10, qword [rsp + 0x98]
mov qword [rsp + 0x88], r13
mov qword [rsp + 0xf8], rdx
je 0x14005afb2
xor eax, eax
mov rcx, r14
mov rdi, qword [rsp + 0x48]
test rsi, rsi
je 0x14005afbc
dec rcx
jne 0x14005afa6
jmp 0x14005b001
xor r8d, r8d
mov rdi, qword [rsp + 0x48]
jmp 0x14005afc2
mov r8d, 1
mov rcx, r14
mov rax, r14
sub rcx, r8
je 0x14005b001
mov rax, qword [rsp + 0x90]
lea rdx, [rax + r8*4]
mov rax, r8
test rsi, rsi
je 0x14005aff5
lea r8, [rax*4]
neg r8
mov r9d, dword [rdx]
mov dword [rdx + r8], r9d
jmp 0x14005aff8
inc rax
add rdx, 4
dec rcx
jne 0x14005afdc
sub r14, rax
mov rsi, qword [r10 + 8]
lea rbp, [rsi + 0x48]
mov rcx, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x40]
call fcn.1400433f1
mov r13, qword [rdi]
mov r10, qword [rdi + 0x10]
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rbx + 0x70]
mov r8, qword [rbx + 0x78]
mov rdx, qword [r8 + 0x10]
dec rdx
and rdx, 0xfffffffffffffff0
add rcx, rdx
add rcx, 0x10
lea rdx, [rsp + 0x210]
mov qword [rsp + 0x78], rbp
mov qword [rdx], rbp
mov r9, qword [rsp + 0x90]
mov qword [rdx + 8], r9
mov qword [rdx + 0x10], r14
mov qword [rdx + 0x18], r13
mov rbp, r10
mov qword [rdx + 0x20], r10
mov qword [rdx + 0x28], rax
call qword [r8 + 0x18]
test rax, rax
je 0x14005b135
mov rdi, rax
mov qword [rsp + 0xa0], rsi
mov rax, qword [rax + 0x38]
mov qword [rsp + 0xd8], rax
mov rax, qword [rdi + 0x48]
mov qword [rsp + 0x1d8], rax
mov rax, qword [rdi + 0x50]
mov qword [rsp + 0xb8], rax
mov rax, qword [rdi + 0x60]
mov qword [rsp + 0x1d0], rax
mov r12, qword [rbx + 0x20]
mov rsi, qword [rbx + 0x30]
mov rax, qword [rdi + 0x28]
mov rdx, qword [rdi + 0x30]
mov rcx, qword [rdx + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
add rcx, rax
add rcx, 0x10
call qword [rdx + 0x20]
test rsi, rsi
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0x80], r14
je 0x14005b1de
mov rdi, qword [r12]
mov ecx, 4
call fcn.14003958c
mov qword [rax], rdi
mov qword [rsp + 0x210], rax
mov qword [rsp + 0x218], rdx
mov qword [rsp + 0x220], 1
cmp rsi, 1
jne 0x14005b26d
mov esi, 1
jmp 0x14005b2c9
mov ecx, 0x24
xor edx, edx
call fcn.1400210cb
mov rsi, rax
mov rdi, rdx
movups xmm0, xmmword [str.no_server_certificate_chain_resolved]
movups xmmword [rax], xmm0
movdqu xmm0, xmmword [0x1400b30d0]
movdqu xmmword [rax + 0x10], xmm0
mov dword [rax + 0x20], 0x6465766c
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xf
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov r14, qword [rsp + 0x50]
cmp byte [r14 + 0x40], 2
sete r8b
mov rcx, r14
call fcn.140049ae8
mov byte [r14 + 0x139], bpl
mov byte [r12], 0xd
mov qword [r12 + 8], rsi
mov qword [r12 + 0x10], rdi
mov qword [r12 + 0x18], 0x24
mov dil, 1
mov r15, qword [rsp + 0xb0]
mov r13, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xa8]
jmp 0x14005b6d3
mov eax, 8
xor edx, edx
xor esi, esi
jmp 0x14005b2c9
test dil, dil
je 0x14005b218
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xb0], r15
mov rax, qword [rsp + 0x98]
mov r14, qword [rax]
mov bp, 5
mov r15b, 1
jmp 0x14005a7cb
mov rax, qword [rsp + 0x98]
mov rsi, qword [rax]
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0x13
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov word [r12], 0xf07
mov dil, 1
jmp 0x14005a71f
lea r14, [rsi*8 - 8]
mov esi, 1
mov rdi, qword [r12 + rsi*8]
cmp rsi, qword [rsp + 0x218]
je 0x14005b29f
mov qword [rax + rsi*8], rdi
inc rsi
mov qword [rsp + 0x220], rsi
add r14, 0xfffffffffffffff8
jne 0x14005b27a
jmp 0x14005b2b9
lea rcx, [rsp + 0x210]
mov rdx, rsi
call fcn.14002e861
mov rax, qword [rsp + 0x210]
jmp 0x14005b288
mov rax, qword [rsp + 0x210]
mov rdx, qword [rsp + 0x218]
lea r8, [rax + rsi*8]
lea rcx, [rsi*8 - 8]
mov r12, rax
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rdx
cmp r12, r8
je 0x14005b36c
mov r14, rcx
add r12, 8
add rcx, 0xfffffffffffffff8
test r15b, r15b
je 0x14005b2e8
test rax, rax
je 0x14005b36c
mov rsi, qword [rax]
mov ecx, 4
call fcn.14003958c
mov qword [rax], rsi
lea rdi, [rsp + 0x210]
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], 1
mov esi, 1
test r14, r14
je 0x14005b3a3
mov r15, qword [r12 + rsi*8 - 8]
cmp rsi, qword [rsp + 0x218]
je 0x14005b357
mov qword [rax + rsi*8], r15
inc rsi
mov qword [rsp + 0x220], rsi
add r14, 0xfffffffffffffff8
jmp 0x14005b32e
mov rcx, rdi
mov rdx, rsi
call fcn.14002e861
mov rax, qword [rsp + 0x210]
jmp 0x14005b342
cmp byte [rbx + 0xcc], 0
je 0x14005b42e
mov r14d, 8
xor eax, eax
mov qword [rsp + 0xf0], rax
mov r12, qword [rsp + 0x40]
mov r15, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xc0]
jmp 0x14005b520
mov rdx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0xcc], 0
mov qword [rsp + 0xe8], rdx
je 0x14005b447
lea rax, [rdx + rsi*8]
lea rcx, [rbp*4]
test rbp, rbp
je 0x14005b420
mov rdi, qword [rdx]
movzx r8d, word [rdi + 0x10]
movzx r9d, word [rdi + 0x12]
xor r10d, r10d
cmp word [r13 + r10], r8w
jne 0x14005b417
movzx r11d, r8w
cmp r11d, 0x178
jne 0x14005b4b2
cmp word [r13 + r10 + 2], r9w
je 0x14005b4b2
add r10, 4
cmp rcx, r10
jne 0x14005b3f2
add rdx, 8
cmp rdx, rax
jne 0x14005b3dd
jmp 0x14005b503
mov eax, 8
mov qword [rsp + 0xe8], rax
xor esi, esi
xor eax, eax
mov qword [rsp + 0xf0], rax
test rbp, rbp
je 0x14005b503
lea rax, [rbp*4]
add rax, r13
lea rcx, [rsi*8]
mov r14, qword [rsp + 0xe8]
test rsi, rsi
je 0x14005b4a4
movzx edx, word [r13]
movzx r8d, word [r13 + 2]
xor r9d, r9d
mov rdi, qword [r14 + r9]
cmp dx, word [rdi + 0x10]
jne 0x14005b49b
movzx r10d, dx
cmp r10d, 0x178
jne 0x14005b4b2
cmp r8w, word [rdi + 0x12]
je 0x14005b4b2
add r9, 8
cmp rcx, r9
jne 0x14005b47d
add r13, 4
cmp r13, rax
jne 0x14005b46b
jmp 0x14005b389
mov rax, qword [rsp + 0x50]
mov qword [rax + 0xd8], rdi
mov r8, qword [rdi]
mov rsi, qword [rsp + 0xef0]
test rsi, rsi
sete bpl
je 0x14005b588
mov al, byte [rsi + 0x70]
cmp al, byte [r8 + 0x70]
jne 0x14005b60f
lea rdx, [rsp + 0xef0]
lea rcx, [rsp + 0x10a0]
mov r8d, 0xf0
call fcn.14009d5c0
jmp 0x14005b59d
mov r12, qword [rsp + 0x40]
mov r15, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xe8]
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 6
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rdi, qword [rsp + 0x50]
cmp byte [rdi + 0x40], 2
sete r8b
mov rcx, rdi
call fcn.140049ae8
mov byte [rdi + 0x139], bpl
mov word [r12], 0x407
mov qword [r12 + 8], 0
mov dil, 1
mov r13, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xa8]
jmp 0x14005b686
lea rdx, [rsp + 0xef8]
lea rcx, [rsp + 0x10a0]
call fcn.140053433
mov rax, qword [rsp + 0x48]
movdqu xmm6, xmmword [rax + 0x48]
movups xmm7, xmmword [rax + 0x58]
pxor xmm0, xmm0
lea rcx, [rsp + 0x210]
movdqa xmmword [rcx + 0x10], xmm0
movdqa xmmword [rcx], xmm0
mov edx, 0x20
call fcn.14002ddfd
test eax, eax
je 0x14005b700
test rsi, rsi
setne dil
mov rax, qword [rsp + 0x40]
mov byte [rax], 0xf
mov r8, qword [rsp + 0x1178]
test r8, r8
je 0x14005b608
cmp qword [rsp + 0x1180], 0
je 0x14005b608
mov rcx, qword [0x1400f5ae0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov r12, qword [rsp + 0x40]
jmp 0x14005b65e
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov r12, qword [rsp + 0x40]
mov word [r12], 0xc08
mov dil, 1
mov r15, qword [rsp + 0xb0]
mov r13, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xe8]
cmp qword [rsp + 0xf0], 0
je 0x14005b6a3
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x1e8], 0
mov r8, qword [rsp + 0x1e0]
je 0x14005b6c5
mov rcx, qword [0x1400f5ae0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
lock dec qword [rsi]
jne 0x14005b6d3
mov rcx, rsi
call fcn.14003c11d
mov rax, qword [rsp + 0xf8]
test rax, rax
je 0x14005a71f
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, qword [rsp + 0x118]
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14005a71f
movaps xmm8, xmmword [rsp + 0x210]
movaps xmm9, xmmword [rsp + 0x220]
mov rsi, qword [rsp + 0xed0]
lea rbx, [rsp + 0x540]
lea rdx, [rsp + 0x10a0]
mov r8d, 0xf0
mov rcx, rbx
call fcn.14009d5c0
mov al, byte [rsp + 0xfe8]
mov rcx, qword [rsp + 0xfe0]
lea r8, [rsp + 0x638]
mov rdx, qword [rsp + 0xee8]
mov qword [r8 + 0x10], rdx
movdqu xmm0, xmmword [rsp + 0xed8]
movdqu xmmword [r8], xmm0
mov qword [rbx - 8], rsi
mov qword [r8 - 8], rdi
movups xmmword [r8 + 0x28], xmm7
movdqu xmmword [r8 + 0x18], xmm6
movups xmmword [r8 + 0x48], xmm9
movups xmmword [r8 + 0x38], xmm8
mov byte [r8 + 0x60], al
mov qword [r8 + 0x58], rcx
mov rax, qword [rsp + 0x48]
cmp qword [rax + 0x28], 1
jne 0x14005b7d6
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x40]
test rax, rax
je 0x14005b8a1
mov rcx, qword [rsp + 0x48]
mov rsi, qword [rcx + 0x30]
imul rdi, rax, 0x38
mov rcx, rsi
call case.0x140038f72.7
cmp ax, 0xa
je 0x14005b825
add rsi, 0x38
add rdi, 0xffffffffffffffc8
jne 0x14005b7b9
jmp 0x14005b8a1
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x2408
jmp 0x14005b8f3
cmp dword [rsi], 1
jne 0x14005b8a1
mov r13, qword [rsi + 8]
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x70], rax
cmp qword [rsp + 0x80], 0
je 0x14005ba0c
xor r15d, r15d
lea rcx, [0x1400b34d0]
xor eax, eax
mov r8, qword [rsp + 0x90]
movzx edx, word [r8 + rax*4]
movzx r8d, word [r8 + rax*4 + 2]
mov r9d, 2
cmp word [r9 + rcx - 2], dx
jne 0x14005b880
cmp dx, 0xd
jne 0x14005b88f
cmp word [r9 + rcx], r8w
je 0x14005b88f
add r9, 4
cmp r9, 0x1a
jne 0x14005b86b
jmp 0x14005ba01
inc rax
cmp rax, qword [rsp + 0x80]
jne 0x14005b852
jmp 0x14005ba82
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 6
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x207
mov qword [rax + 8], 0
mov sil, 1
cmp qword [rsp + 0xa8], 0
je 0x14005b918
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, qword [rsp + 0x90]
call qword [sym.imp.kernel32.dll_HeapFree]
test sil, sil
je 0x14005b95f
mov rax, qword [rsp + 0x538]
lock dec qword [rax]
jne 0x14005b938
lea rcx, [rsp + 0x538]
call fcn.14003bc9e
mov r8, qword [rsp + 0x618]
test r8, r8
je 0x14005b95f
cmp qword [rsp + 0x620], 0
je 0x14005b95f
mov rcx, qword [0x1400f5ae0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
test bpl, bpl
je 0x14005b971
lea rcx, [rsp + 0x638]
call case.0x14000e390.506
cmp qword [rsp + 0xf0], 0
je 0x14005b993
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, qword [rsp + 0xe8]
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x1e8], 0
je 0x14005b9b5
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, qword [rsp + 0x1e0]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0xc0]
lock dec qword [rax]
jne 0x14005b9d0
mov rcx, qword [rsp + 0xc0]
call fcn.14003c11d
cmp qword [rsp + 0xf8], 0
mov r12, qword [rsp + 0x40]
mov r15, qword [rsp + 0xb0]
mov r13, qword [rsp + 0x88]
mov r8, qword [rsp + 0x118]
jne 0x14005a7a4
jmp 0x14005a7b3
inc rax
mov r15d, 1
jmp 0x14005ba11
xor r15d, r15d
xor eax, eax
cmp rax, qword [rsp + 0x80]
je 0x14005ba82
lea rcx, [0x1400b34d0]
mov r8, qword [rsp + 0x90]
movzx edx, word [r8 + rax*4]
movzx r8d, word [r8 + rax*4 + 2]
mov r9d, 2
cmp word [r9 + rcx - 2], dx
jne 0x14005ba50
cmp dx, 0xd
jne 0x14005ba5f
cmp word [r9 + rcx], r8w
je 0x14005ba5f
add r9, 4
cmp r9, 0x1a
jne 0x14005ba3b
inc r15
jmp 0x14005ba75
mov rdx, rax
sub rdx, r15
mov r9, qword [rsp + 0x90]
mov r8d, dword [r9 + rax*4]
mov dword [r9 + rdx*4], r8d
inc rax
cmp rax, qword [rsp + 0x80]
jne 0x14005ba22
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 0x30]
mov rdi, qword [rax + 0x40]
mov r12, rcx
mov rdx, rdi
call fcn.14004343c
mov qword [rsp + 0x38], rdx
test rax, rax
je 0x14005bbdb
mov rbx, rax
mov rcx, r12
mov rdx, rdi
call fcn.14004343c
test rax, rax
je 0x14005bc62
mov rsi, rax
mov rbp, rdx
mov eax, dword [0x1400f5b90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x48], 0
jne 0x14005bae8
xor ecx, ecx
call fcn.140066d88
mov eax, dword [0x1400f5b90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x50]
mov rdx, qword [rax + 0x58]
lea r8, [rcx + 1]
mov qword [rax + 0x50], r8
pxor xmm0, xmm0
lea rdi, [rsp + 0x210]
movdqu xmmword [rdi + 0x10], xmm0
lea rax, [0x1400b5650]
mov qword [rdi], rax
mov qword [rdi + 8], 0
mov qword [rdi + 0x20], rcx
mov qword [rdi + 0x28], rdx
shl rbp, 5
test rbp, rbp
je 0x14005bc3b
lea r14, [rsi + 0x20]
movzx ecx, word [rsi + 0x18]
movzx edx, word [rsi + 0x1a]
call fcn.14003f84c
mov rcx, rdi
mov edx, eax
call fcn.14003ce21
add rbp, 0xffffffffffffffe0
mov rsi, r14
test al, al
je 0x14005bb43
mov rdx, qword [rsp + 0x218]
test rdx, rdx
je 0x14005bb8c
mov rcx, qword [rsp + 0x210]
call fcn.14003c8a9
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x2108
jmp 0x14005b8f3
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 6
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x107
mov qword [rax + 8], 0
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x10], rcx
jmp 0x14005b8f3
mov rdx, qword [rsp + 0x218]
test rdx, rdx
je 0x14005bc55
mov rcx, qword [rsp + 0x210]
call fcn.14003c8a9
mov rax, qword [rsp + 0x48]
mov r12, qword [rax + 0x30]
mov rdi, qword [rax + 0x40]
test rdi, rdi
je 0x14005bc8a
imul r14, rdi, 0x38
mov rsi, r12
mov rcx, rsi
call case.0x140038f72.7
cmp ax, 0x16
je 0x14005beae
add rsi, 0x38
add r14, 0xffffffffffffffc8
jne 0x14005bc6e
mov dword [rsp + 0x58], 0
mov rax, qword [rsp + 0x538]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x14005bd64
sub qword [rsp + 0x80], r15
mov rax, qword [rax + 0x38]
lea rcx, [rax + rcx*8]
mov rdx, qword [rsp + 0x38]
shl rdx, 5
mov r8, rax
cmp qword [rsp + 0x38], 0
je 0x14005bd05
mov r10, qword [r8]
movzx r9d, word [r10 + 8]
movzx r10d, word [r10 + 0xa]
mov r11, rdx
mov rbp, rbx
cmp word [rbp + 0x18], r9w
jne 0x14005bcfb
cmp r9w, 0xa
jne 0x14005bdec
cmp word [rbp + 0x1a], r10w
je 0x14005bdec
add rbp, 0x20
add r11, 0xffffffffffffffe0
jne 0x14005bcde
add r8, 8
cmp r8, rcx
jne 0x14005bcc3
mov rdx, qword [rsp + 0x70]
lea rdx, [rdx*4]
cmp qword [rsp + 0x70], 0
je 0x14005bd5b
mov rsi, qword [rax]
movzx r8d, word [rsi + 8]
movzx r9d, word [rsi + 0xa]
xor r10d, r10d
cmp word [r13 + r10], r8w
jne 0x14005bd52
cmp r8w, 0xa
jne 0x14005ca9a
cmp word [r13 + r10 + 2], r9w
je 0x14005ca9a
add r10, 4
cmp rdx, r10
jne 0x14005bd33
add rax, 8
cmp rax, rcx
jne 0x14005bd1b
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 0xa8]
add eax, 0xffffffe1
cmp ax, 3
ja 0x14005bd81
cmp ax, 1
jne 0x14005bd9d
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
lea rcx, [rsp + 0x540]
call fcn.140054d80
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 6
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x607
jmp 0x14005b8f3
mov word [rsp + 0x728], 0xa
lea rsi, [rsp + 0x210]
mov qword [rsi], 0
mov rax, qword [0x1400f5010]
mov rcx, rsi
call rax
mov rcx, qword [rsi]
movabs r8, 0x19db1ded53e7fff
mov rax, rcx
sub rax, r8
mov edx, 1
sub rdx, rax
movabs rax, 0xfe624e212ac18000
add rax, rcx
cmp rcx, r8
cmovle rax, rdx
movabs rdx, 0xd6bf94d5e57a42bd
mul rdx
mov qword [rsp + 0x38], rdx
cmp rcx, r8
jle 0x14005bf07
mov rax, qword [rsp + 0x48]
mov rsi, qword [rax + 0x40]
test rsi, rsi
je 0x14005c2e5
shr qword [rsp + 0x38], 0x17
mov rax, qword [rsp + 0x48]
mov r13, qword [rax + 0x30]
imul rbx, rsi, 0x38
xor eax, eax
mov qword [rsp + 0x70], rax
xor r14d, r14d
lea rcx, [r14 + r13]
mov r15, rcx
call case.0x140038f72.7
cmp ax, 0x15
je 0x14005bf22
add r14, 0x38
cmp rbx, r14
jne 0x14005be8a
jmp 0x14005c2ec
cmp byte [rsp + 0x698], 0
je 0x14005bf17
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x908
jmp 0x14005b8f3
mov rax, qword [rsp + 0x40]
mov byte [rax], 0xe
mov bpl, 1
jmp 0x14005c8de
mov al, 1
mov dword [rsp + 0x58], eax
jmp 0x14005bc92
cmp dword [r15], 9
jne 0x14005c2e5
test rdi, rdi
je 0x14005cb30
imul rax, rdi, 0x38
lea rcx, [rax + r12]
add rcx, 0xffffffffffffffc8
call case.0x140038f72.7
cmp ax, 0x15
jne 0x14005cb30
mov rcx, r13
mov rdx, rsi
call fcn.140043487
test rax, rax
je 0x14005d5f0
mov rcx, qword [r15 + 0x30]
test rcx, rcx
je 0x14005d76d
mov rax, rcx
cmp rcx, qword [r15 + 0x18]
jne 0x14005d7bc
mov rbx, qword [r15 + 8]
shl rax, 5
add rax, rbx
mov qword [rsp + 0x58], rax
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0xe0], rax
mov rdi, qword [rbx]
mov rsi, qword [rbx + 0x10]
mov r14, qword [rsp + 0x538]
mov rax, qword [r14 + 0x60]
mov rdx, qword [r14 + 0x68]
mov rcx, qword [rdx + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
add rcx, rax
add rcx, 0x10
call qword [rdx + 0x18]
test al, al
je 0x14005c008
mov rax, qword [r14 + 0x60]
mov r10, qword [r14 + 0x68]
mov rcx, qword [r10 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rcx + rax]
add rdx, 0x10
lea rcx, [rsp + 0xd90]
mov r8, rdi
mov r9, rsi
call qword [r10 + 0x30]
jmp 0x14005c035
mov rax, qword [r14 + 0x50]
mov r10, qword [r14 + 0x58]
mov rcx, qword [r10 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rcx + rax]
add rdx, 0x10
lea rcx, [rsp + 0xd90]
mov r8, rdi
mov r9, rsi
call qword [r10 + 0x28]
mov r13, qword [rsp + 0xd90]
test r13, r13
je 0x14005c146
mov r14, qword [rsp + 0xd98]
mov rax, qword [rsp + 0xda0]
mov qword [rsp + 0x730], r13
mov qword [rsp + 0x738], rax
mov qword [rsp + 0x740], 0
lea rcx, [rsp + 0x210]
lea rdx, [rsp + 0x730]
call fcn.14003fc81
mov r12w, 0xa
cmp word [rsp + 0x298], 0xa
je 0x14005c12d
mov ecx, 9
lea rdi, [rsp + 0x120]
lea rsi, [rsp + 0x210]
rep movsq qword [rdi], qword [rsi]
mov rax, qword [rsp + 0x258]
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0x260]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqa xmmword [rsp + 0x7e0], xmm0
movdqa xmmword [rsp + 0x7f0], xmm1
movdqa xmmword [rsp + 0x800], xmm2
mov eax, dword [rsp + 0x290]
mov dword [rsp + 0xcc], eax
mov rax, qword [rsp + 0x294]
mov r12, rax
shr r12, 0x20
mov qword [rsp + 0x68], rax
shr rax, 0x30
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x29c]
mov dword [rsp + 0xc8], eax
test r14, r14
je 0x14005c14b
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, r13
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14005c14b
mov r12w, 0xa
cmp r12w, 0xa
jne 0x14005c161
mov word [rsp + 0x948], 0xa
jmp 0x14005c2cc
mov ecx, 9
lea rdi, [rsp + 0x8c0]
lea rsi, [rsp + 0x120]
rep movsq qword [rdi], qword [rsi]
movdqa xmm0, xmmword [rsp + 0x7e0]
movdqa xmm1, xmmword [rsp + 0x7f0]
movdqa xmm2, xmmword [rsp + 0x800]
lea rax, [rsp + 0x910]
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
mov ecx, dword [rbx + 0x18]
mov r9d, dword [rsp + 0xcc]
sub ecx, r9d
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0xd0]
sub rdx, r8
mov eax, 0
cmovae rax, rdx
mov edx, 0x3e8
mul edx
mov edx, 0xffffffff
cmovo eax, edx
mov edx, ecx
sub edx, eax
neg edx
sub ecx, eax
movzx eax, word [rsp + 0x60]
cmovb ecx, edx
mov r10, qword [rsp + 0x68]
mov edx, r10d
shl rax, 0x30
or rax, rdx
movzx edx, r12w
shl rdx, 0x20
or rdx, rax
cmp ecx, 0xea61
mov qword [rsp + 0x908], r8
mov dword [rsp + 0x940], r9d
mov qword [rsp + 0x944], rdx
setb byte [rsp + 0x94c]
mov ecx, dword [rsp + 0xc8]
mov eax, ecx
shr eax, 8
shr ecx, 0x18
mov byte [rsp + 0x94f], cl
mov word [rsp + 0x94d], ax
mov rsi, qword [rsp + 0x630]
movzx eax, word [rsi + 0x10]
cmp r10w, ax
jne 0x14005c2bf
movzx eax, ax
cmp eax, 0x178
jne 0x14005c278
movzx eax, word [rsi + 0x12]
cmp word [rsp + 0x946], ax
jne 0x14005c2bf
mov rcx, qword [rsp + 0x8c0]
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax]
test rcx, rcx
je 0x14005c2b6
test rdx, rdx
je 0x14005c2b6
mov r8, qword [rsp + 0x8d0]
mov rax, qword [rsp + 0xa0]
cmp r8, qword [rax + 0x58]
jne 0x14005c2bf
call fcn.14009e000
test eax, eax
jne 0x14005c2bf
jmp 0x14005db16
or rcx, rdx
je 0x14005db16
lea rcx, [rsp + 0x8c0]
call fcn.14005f5f3
add rbx, 0x20
inc qword [rsp + 0xe0]
cmp rbx, qword [rsp + 0x58]
jne 0x14005bfa9
jmp 0x14005c2ec
xor eax, eax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 0x30]
mov rdx, qword [rax + 0x40]
call fcn.140043487
test rax, rax
je 0x14005c320
test rdx, rdx
je 0x14005c320
add rdx, rdx
xor ecx, ecx
cmp byte [rax + rcx], 1
je 0x14005c8ff
add rcx, 2
cmp rdx, rcx
jne 0x14005c30d
mov qword [rsp + 0x690], 0
cmp word [rsp + 0x728], 0xa
je 0x14005c344
lea rcx, [rsp + 0x6a0]
call fcn.14005f5f3
mov word [rsp + 0x728], 0xa
mov word [rsp + 0x38], 0xa
xor eax, eax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 0xa8]
add eax, 0xffffffe1
cmp ax, 3
ja 0x14005c379
cmp ax, 1
jne 0x14005c395
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
lea rcx, [rsp + 0x540]
call fcn.140054d80
mov r13, qword [rsp + 0x538]
cmp word [rsp + 0x38], 0xa
je 0x14005c3af
mov rax, qword [rsp + 0x6f0]
jmp 0x14005c3b1
xor eax, eax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x630]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x700]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x100], 8
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x108], xmm0
mov rax, qword [r13 + 0x48]
test rax, rax
je 0x14005c81d
mov rcx, qword [rsp + 0x48]
lea r15, [rcx + 0x68]
movzx r12d, word [rbp + 0x18]
movzx ebx, word [rbp + 0x1a]
mov rcx, qword [r13 + 0x38]
shl rax, 3
xor r8d, r8d
mov rdx, qword [rcx + r8]
cmp word [rdx + 8], r12w
jne 0x14005c42b
cmp r12w, 0xa
jne 0x14005c439
cmp word [rdx + 0xa], bx
je 0x14005c439
add r8, 8
cmp rax, r8
jne 0x14005c413
jmp 0x14005c81d
lea rsi, [rsp + 0x210]
mov rcx, rsi
call fcn.14004fc0c
mov rax, qword [rsi]
mov byte [rsp + 0xb50], 0xf
mov qword [rsp + 0xd0], rax
test rax, rax
je 0x14005c81d
lea rsi, [rsp + 0x268]
mov al, byte [rsi - 0x50]
mov byte [rsp + 0xcc], al
mov al, byte [rsi - 0x4f]
mov byte [rsp + 0xc8], al
movups xmm0, xmmword [rsi - 0x4e]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsi - 0x40]
movups xmmword [rsp + 0x12e], xmm0
movups xmm0, xmmword [rsi - 0x30]
movaps xmmword [rsp + 0x890], xmm0
movups xmm0, xmmword [rsi - 0x20]
movaps xmmword [rsp + 0x8a0], xmm0
mov rax, qword [rsi - 0x10]
mov qword [rsp + 0x8b0], rax
mov r14, qword [rsi - 8]
lea rdi, [rsp + 0xff0]
mov ecx, 0xd
rep movsq qword [rdi], qword [rsi]
lea rcx, [rsp + 0xb50]
call fcn.140003b0b
movaps xmm0, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x730], xmm0
movups xmm0, xmmword [rsp + 0x12e]
movups xmmword [rsp + 0x73e], xmm0
movaps xmm0, xmmword [rsp + 0x730]
movaps xmmword [rsp + 0xd40], xmm0
movdqu xmm0, xmmword [rsp + 0x73e]
movdqu xmmword [rsp + 0xd4e], xmm0
mov qword [rsp + 0x60], r14
cmp r14, 0x62
jae 0x14005f0d9
mov r14, qword [rsp + 0x60]
mov rcx, r14
xor edx, edx
call fcn.1400210cb
mov rsi, rax
mov rdi, rdx
lea rdx, [rsp + 0xff0]
mov rcx, rax
mov r8, r14
call fcn.14009d5c0
mov rax, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x110]
cmp rdx, rax
jne 0x14005c584
lea r14, [rsp + 0x100]
mov rcx, r14
call fcn.14003c442
mov rax, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsp + 0x100]
lea r8, [rdx + rdx*4]
mov word [rcx + r8*8], 5
mov qword [rcx + r8*8 + 8], rsi
mov qword [rcx + r8*8 + 0x10], rdi
mov r9, qword [rsp + 0x60]
mov qword [rcx + r8*8 + 0x18], r9
mov word [rcx + r8*8 + 0x20], r12w
mov word [rcx + r8*8 + 0x22], bx
inc rdx
mov qword [rsp + 0x110], rdx
cmp rdx, rax
jne 0x14005c5e1
lea rsi, [rsp + 0x100]
mov rcx, rsi
mov rdx, rax
call fcn.14003c442
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x10]
lea rax, [rdx + rdx*4]
mov dword [rcx + rax*8], 0x5000a
inc rdx
mov qword [rsp + 0x110], rdx
cmp qword [rsp + 0x70], 0
je 0x14005c63f
cmp rdx, qword [rsp + 0x108]
jne 0x14005c620
lea rsi, [rsp + 0x100]
mov rcx, rsi
call fcn.14003c442
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x10]
lea rax, [rdx + rdx*4]
mov word [rcx + rax*8], 6
mov rdx, qword [rsp + 0xe0]
mov word [rcx + rax*8 + 2], dx
inc qword [rsp + 0x110]
movups xmm0, xmmword [rsp + 0x670]
movdqu xmm1, xmmword [rsp + 0x680]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x10]
movdqu xmm2, xmmword [rsp + 0x100]
lea rsi, [rsp + 0x120]
movdqu xmmword [rsi + 0x48], xmm2
mov rcx, qword [rsp + 0x110]
mov qword [rsi + 0x58], rcx
mov byte [rsi + 0x98], 2
movdqu xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movups xmm0, xmmword [r15]
movups xmmword [rsi + 0x20], xmm0
movups xmm0, xmmword [r15 + 0x10]
movups xmmword [rsi + 0x30], xmm0
mov rcx, qword [r15 + 0x20]
mov qword [rsi + 0x40], rcx
mov dword [rsi + 0x60], eax
mov byte [rsi + 0x64], 0
mov bx, 4
mov word [rsi + 0x66], bx
mov word [rsi + 0x90], 0xc
lea rdi, [rsp + 0x730]
mov qword [rdi], 1
xorps xmm0, xmm0
movups xmmword [rdi + 8], xmm0
mov rcx, rsi
mov rdx, rdi
call fcn.14003dbfa
mov rax, qword [rdi + 0x10]
lea rcx, [rsp + 0x228]
mov qword [rcx - 8], rax
movdqu xmm0, xmmword [rdi]
movdqa xmmword [rcx - 0x18], xmm0
mov r8d, 0xa0
mov rdx, rsi
call fcn.14009d5c0
lea rcx, [rsp + 0xb50]
mov word [rcx + 0xb8], bx
lea rdx, [rsp + 0x210]
mov r8d, 0xb8
call fcn.14009d5c0
mov rax, qword [rsp + 0x98]
mov r15, qword [rax]
lea rsi, [rsp + 0x210]
mov rcx, rsi
mov rdx, r15
call fcn.1400533d1
mov r14b, byte [rsi]
cmp r14b, 0x14
jne 0x14005cb7f
lea r8, [0x1400b7730]
lea rcx, [rsp + 0x1058]
lea rdx, [rsp + 0x540]
xor r9d, r9d
call fcn.1400612fd
mov eax, dword [rsp + 0xbf8]
add eax, 0xffffffe1
cmp ax, 3
ja 0x14005c784
cmp ax, 1
jne 0x14005c7a1
mov rdx, qword [rsp + 0xb50]
mov r8, qword [rsp + 0xb60]
lea rcx, [rsp + 0x540]
call fcn.140054d80
lea rdx, [rsp + 0xb50]
mov rcx, r15
xor r8d, r8d
call fcn.140049ae8
cmp word [rsp + 0x38], 0xa
jne 0x14005d085
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x240], xmm0
movdqa xmmword [rsp + 0x230], xmm0
movdqa xmmword [rsp + 0x220], xmm0
movdqa xmmword [rsp + 0x210], xmm0
mov rax, qword [rsp + 0x78]
mov rax, qword [rax]
mov r9, qword [rax + 0x10]
cmp r9, 0x41
jae 0x14005f0d9
lea rcx, [rsp + 0x730]
lea r8, [rsp + 0x210]
mov rdx, qword [rsp + 0x78]
call fcn.140051c89
jmp 0x14005d0fd
mov bl, byte [rsp + 0xb51]
movups xmm0, xmmword [rsp + 0xb52]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0xb60]
movups xmmword [rsp + 0x12e], xmm0
movaps xmm0, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x730], xmm0
movups xmm0, xmmword [rsp + 0x12e]
movups xmmword [rsp + 0x73e], xmm0
movaps xmm0, xmmword [rsp + 0x730]
movaps xmmword [rsp + 0x8c0], xmm0
movdqu xmm0, xmmword [rsp + 0x73e]
movdqu xmmword [rsp + 0x8ce], xmm0
lea rcx, [rsp + 0x100]
call case.0x14000e390.506
mov r14b, 0xf
movaps xmm0, xmmword [rsp + 0x8c0]
movaps xmmword [rsp + 0x1f0], xmm0
movups xmm0, xmmword [rsp + 0x8ce]
movups xmmword [rsp + 0x1fe], xmm0
mov bpl, 1
mov rax, qword [rsp + 0x40]
mov byte [rax], r14b
mov byte [rax + 1], bl
movaps xmm0, xmmword [rsp + 0x1f0]
movups xmmword [rax + 2], xmm0
movdqu xmm0, xmmword [rsp + 0x1fe]
movdqu xmmword [rax + 0x10], xmm0
cmp word [rsp + 0x728], 0xa
je 0x14005b8f3
lea rcx, [rsp + 0x6a0]
call fcn.14005f5f3
jmp 0x14005b8f3
mov rax, qword [rsp + 0x538]
mov rax, qword [rax + 0xc0]
mov qword [rsp + 0x690], rax
mov word [rsp + 0x38], 0xa
cmp word [rsp + 0x728], 0xa
je 0x14005c35c
mov rsi, qword [rsp + 0x708]
mov rdi, qword [rsp + 0x718]
mov rcx, rdi
xor edx, edx
call fcn.1400210cb
mov r14, rax
mov r13, rdx
mov rcx, rax
mov rdx, rsi
mov r8, rdi
call fcn.14009d5c0
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsi + 0x60]
mov rdx, qword [rsi + 0x68]
call fcn.14000397d
mov qword [rsi + 0x60], r14
mov qword [rsi + 0x68], r13
mov qword [rsi + 0x70], rdi
mov rax, qword [rsp + 0x50]
lea rcx, [rax + 0xf8]
mov qword [rsp + 0x58], rcx
mov r15, qword [rax + 0xf8]
mov rax, qword [rsp + 0x6b8]
mov qword [rsp + 0x38], rax
test r15, r15
je 0x14005d05a
cmp qword [rsp + 0x38], 0
je 0x14005d05a
mov rcx, qword [rsp + 0x6c8]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rax + 0x108]
mov qword [rsp + 0x68], rdx
mov rax, rcx
mov qword [rsp + 0xd0], rcx
sub rdx, rcx
jb 0x14005ca04
mov rsi, qword [rsp + 0xd0]
lea rax, [rsi + rsi*2]
lea rcx, [r15 + rax*8]
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x108], rsi
call fcn.140003e67
mov qword [rsp + 0x68], rsi
mov rcx, qword [rsp + 0x68]
lea rax, [rcx + rcx*2]
mov rdx, qword [rsp + 0x38]
lea rax, [rdx + rax*8]
mov qword [rsp + 0x78], rax
test rcx, rcx
je 0x14005d63f
mov r12, qword [rsp + 0x68]
xor ebx, ebx
mov rax, qword [rsp + 0x38]
mov r14, qword [rax + rbx]
mov r13, qword [rax + rbx + 0x10]
mov rcx, r13
xor edx, edx
call fcn.1400210cb
mov rdi, rax
mov rsi, rdx
mov rcx, rax
mov rdx, r14
mov r8, r13
call fcn.14009d5c0
cmp qword [r15 + rbx + 8], 0
je 0x14005ca72
mov r8, qword [r15 + rbx]
mov rcx, qword [0x1400f5ae0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov qword [r15 + rbx], rdi
mov qword [r15 + rbx + 8], rsi
mov qword [r15 + rbx + 0x10], r13
add rbx, 0x18
dec r12
jne 0x14005ca2b
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x108]
jmp 0x14005d641
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 0xa8]
add eax, 0xffffffe1
cmp ax, 3
ja 0x14005cab7
cmp ax, 1
jne 0x14005cad3
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
lea rcx, [rsp + 0x540]
call fcn.140054d80
cmp byte [rsp + 0x698], 0
je 0x14005cbba
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x2708
jmp 0x14005b8f3
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x2508
jmp 0x14005c8de
mov bl, byte [rsp + 0x211]
movups xmm0, xmmword [rsp + 0x212]
movaps xmmword [rsp + 0x8c0], xmm0
movdqu xmm0, xmmword [rsp + 0x220]
movdqu xmmword [rsp + 0x8ce], xmm0
lea rcx, [rsp + 0xb50]
call fcn.140043a5b
jmp 0x14005c896
mov rax, qword [rsp + 0x630]
mov edi, dword [rsi + 8]
mov eax, dword [rax + 0x10]
lea rsi, [rsp + 0x11b8]
pxor xmm6, xmm6
movdqa xmmword [rsi + 8], xmm6
mov word [rsi + 0x1c], 4
mov rcx, qword [rsp + 0x48]
movups xmm0, xmmword [rcx + 0x68]
movups xmm1, xmmword [rcx + 0x78]
movaps xmmword [rsi - 0x28], xmm0
movaps xmmword [rsi - 0x18], xmm1
mov rcx, qword [rcx + 0x88]
mov qword [rsi - 8], rcx
mov dword [rsi + 0x18], eax
mov qword [rsi], 8
mov rcx, rsi
xor edx, edx
call fcn.140005fc1
mov rcx, qword [rsi + 0x10]
mov rax, qword [rsi]
mov rdx, qword [rsi + 8]
mov r8, rcx
shl r8, 5
mov dword [rax + r8], edi
mov word [rax + r8 + 0x18], 0x26
inc rcx
mov qword [rsi + 0x10], rcx
cmp rcx, rdx
jne 0x14005cc55
mov rcx, rsi
call fcn.140005fc1
mov rax, qword [rsp + 0x11b8]
mov rcx, qword [rsp + 0x11c8]
shl rcx, 5
mov word [rax + rcx], 5
mov word [rax + rcx + 0x18], 0x28
lea rsi, [rsp + 0x1190]
inc qword [rsi + 0x38]
lea r14, [rsp + 0x210]
mov ecx, 9
mov rdi, r14
rep movsq qword [rdi], qword [rsi]
mov byte [r14 + 0x98], 6
mov word [r14 + 0x90], 0xd
lea rdi, [rsp + 0x8c0]
mov qword [rdi], 1
movdqu xmmword [rdi + 8], xmm6
mov rcx, r14
mov rdx, rdi
call fcn.14003dbfa
mov rsi, qword [rdi]
mov rbx, qword [rdi + 8]
mov rdi, qword [rdi + 0x10]
lea rcx, [rsp + 0x8c0]
mov r8d, 0x90
mov rdx, r14
call fcn.14009d5c0
movzx r15d, word [r14 + 0x90]
mov rax, qword [r14 + 0x92]
mov qword [rsp + 0x7e0], rax
mov rax, qword [r14 + 0x98]
mov qword [rsp + 0x7e6], rax
mov r12, qword [rsp + 0x540]
movups xmm0, xmmword [r12 + 0x30]
movups xmm1, xmmword [r12 + 0x40]
movups xmm2, xmmword [r12 + 0x50]
movups xmm3, xmmword [r12 + 0x60]
movaps xmmword [rsp + 0xb50], xmm0
movaps xmmword [rsp + 0xb60], xmm1
movaps xmmword [rsp + 0xb70], xmm2
movaps xmmword [rsp + 0xb80], xmm3
mov al, byte [0x1400f5b78]
cmp al, 2
jne 0x14005d820
lea r14, [rsp + 0x210]
mov r8d, 0xd8
mov rcx, r14
lea rdx, [rsp + 0x540]
call fcn.14009d5c0
lea rcx, [rsp + 0x588]
mov qword [rcx - 0x48], r12
lea r12, [rsp + 0xb50]
movdqa xmm0, xmmword [r12]
movdqa xmm1, xmmword [r12 + 0x10]
movdqa xmm2, xmmword [r12 + 0x20]
movaps xmm3, xmmword [r12 + 0x30]
movdqu xmmword [rcx - 0x40], xmm0
movdqu xmmword [rcx - 0x30], xmm1
movdqu xmmword [rcx - 0x20], xmm2
movups xmmword [rcx - 0x10], xmm3
mov r8d, 0x90
xor edx, edx
call fcn.14009dc60
mov rcx, r12
mov rdx, r14
call fcn.140033f69
mov rax, qword [r12]
mov r12, qword [rax + 0x10]
cmp r12, 0x41
jae 0x14005f0d9
lea r14, [rsp + 0xb58]
mov rcx, r12
xor edx, edx
call fcn.1400210cb
mov rbp, rax
mov r13, rdx
mov rcx, rax
mov rdx, r14
mov r8, r12
call fcn.14009d5c0
lea rcx, [rsp + 0x210]
mov byte [rcx + 0x98], 0x12
mov qword [rcx], rbp
mov qword [rcx + 8], r13
mov qword [rcx + 0x10], r12
mov word [rcx + 0x90], 0x1d
lea r14, [rsp + 0x120]
mov qword [r14], 1
pxor xmm0, xmm0
movdqu xmmword [r14 + 8], xmm0
mov rdx, r14
call fcn.14003dbfa
mov r12, qword [r14]
mov r8, qword [r14 + 0x10]
mov r14, qword [r14 + 8]
lea rcx, [rsp + 0x540]
mov rdx, r12
call fcn.140054d80
test r14, r14
je 0x14005ce70
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapFree]
lea rcx, [rsp + 0x210]
call fcn.140039d2a
lea eax, [r15 - 0x1f]
cmp ax, 3
ja 0x14005ce8d
cmp ax, 1
jne 0x14005cea0
lea rcx, [rsp + 0x540]
mov rdx, rsi
mov r8, rdi
call fcn.140054d80
lea r14, [rsp + 0x228]
mov qword [r14 - 0x18], rsi
mov qword [r14 - 0x10], rbx
mov qword [r14 - 8], rdi
lea rsi, [rsp + 0x8c0]
mov r8d, 0x90
mov rcx, r14
mov rdx, rsi
call fcn.14009d5c0
mov word [r14 + 0x90], r15w
mov rax, qword [rsp + 0x7e0]
mov rcx, qword [rsp + 0x7e6]
mov qword [r14 + 0x92], rax
mov qword [r14 + 0x98], rcx
mov bx, 4
mov word [r14 + 0xa0], bx
mov eax, dword [rsp + 0xb50]
mov dword [r14 + 0xa2], eax
movzx eax, word [rsp + 0xb54]
mov word [r14 + 0xa6], ax
lea rdi, [rsp + 0x210]
mov r14, qword [rsp + 0x50]
mov rcx, r14
mov rdx, rdi
xor r8d, r8d
call fcn.140049ae8
mov word [rdi + 0xb8], bx
mov word [rdi + 0xa8], 0x21
lea rdx, [rsp + 0x210]
mov rcx, r14
xor r8d, r8d
call fcn.140049ae8
mov r14, qword [rsp + 0x538]
mov eax, dword [r14 + 0xc8]
test eax, eax
mov edi, 0x4000
cmovne edi, eax
lea rcx, [rsp + 0x210]
mov r8d, 0xf0
lea rdx, [rsp + 0x540]
call fcn.14009d5c0
mov rbx, qword [rsp + 0x690]
lea rax, [rsp + 0x638]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rsi], xmm0
mov rax, qword [rax + 0x10]
mov qword [rsi + 0x10], rax
mov al, byte [0x1400f5b79]
mov ecx, 0x120
mov edx, 8
call fcn.140020d10
test rax, rax
je 0x14005f562
mov rsi, rax
mov qword [rax], r14
movdqa xmm0, xmmword [rsp + 0x8c0]
movdqu xmmword [rax + 8], xmm0
mov rax, qword [rsp + 0x8d0]
mov qword [rsi + 0x18], rax
mov rcx, rsi
add rcx, 0x20
lea rdx, [rsp + 0x210]
mov r8d, 0xf0
call fcn.14009d5c0
mov qword [rsi + 0x110], rbx
mov byte [rsi + 0x118], 1
cmp byte [rsp + 0x58], 0
je 0x14005d5d0
mov al, byte [0x1400f5b79]
mov ecx, 0x10
mov edx, 8
call fcn.140020d10
test rax, rax
je 0x14005f56e
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 8], rax
lea rax, [0x1400b3118]
jmp 0x14005d5e0
cmp qword [rsp + 0x38], 0
je 0x14005d722
mov r8, qword [rsp + 0x6c8]
lea rcx, [rsp + 0x210]
mov rdx, qword [rsp + 0x38]
call fcn.14003c7bd
jmp 0x14005d72e
lea rsi, [rsp + 0x210]
mov rcx, rsi
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x68]
call fcn.140051c89
mov rax, qword [r13 + 0xa8]
mov r9, qword [r13 + 0xb0]
mov rcx, qword [r9 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea r8, [rcx + rax]
add r8, 0x10
mov qword [rsp + 0x28], r15
lea rax, [rsp + 0x650]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x1058]
mov rcx, rsi
call fcn.140051da3
lea rcx, [rsp + 0x730]
mov r8d, 0xa8
mov rdx, rsi
call fcn.14009d5c0
lea rax, [rsp + 0x268]
mov rdx, qword [rsp + 0xd0]
mov qword [rax - 0x58], rdx
mov cl, byte [rsp + 0xcc]
mov byte [rax - 0x50], cl
mov cl, byte [rsp + 0xc8]
mov byte [rax - 0x4f], cl
movaps xmm0, xmmword [rsp + 0xd40]
movups xmmword [rax - 0x4e], xmm0
movups xmm0, xmmword [rsp + 0xd4e]
movups xmmword [rax - 0x40], xmm0
movdqa xmm0, xmmword [rsp + 0x890]
movdqa xmm1, xmmword [rsp + 0x8a0]
movdqu xmmword [rax - 0x30], xmm0
movdqu xmmword [rax - 0x20], xmm1
mov rcx, qword [rsp + 0x8b0]
mov qword [rax - 0x10], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rax - 8], rcx
lea rsi, [rsp + 0xff0]
mov ecx, 0xd
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
mov rcx, qword [rdx]
mov rax, qword [rax - 0x18]
mov rcx, qword [rcx]
mov rdx, qword [rax]
mov cl, byte [rcx + 0x28]
cmp cl, byte [rdx + 0x28]
jne 0x14005d5c6
mov r9, qword [rbp]
mov rcx, qword [rbp + 0x10]
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xd80], xmm0
movdqa xmmword [rsp + 0xd70], xmm0
movdqa xmmword [rsp + 0xd60], xmm0
mov rdx, qword [rax]
mov rsi, qword [rdx + 0x20]
cmp rsi, 0x31
jae 0x14005f0d9
lea r8, [rsp + 0x218]
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0xd60]
mov rdx, rsi
call qword [rax + 8]
test al, al
jne 0x14005d5c6
lea rdi, [rsp + 0x120]
lea rdx, [rsp + 0x730]
mov r8d, 0xa8
mov rcx, rdi
call fcn.14009d5c0
lea rdx, [rsp + 0xd60]
mov rcx, rdi
mov r8, rsi
call fcn.14003b1d7
mov rbx, qword [rdi]
mov bpl, byte [rdi + 8]
mov dil, byte [rdi + 9]
lea rdx, [rsp + 0x12a]
lea rcx, [rsp + 0xd90]
mov r8d, 0x9e
call fcn.14009d5c0
test rbx, rbx
je 0x14005d5c6
lea rsi, [rsp + 0xe30]
lea rdx, [rsp + 0xd90]
mov r8d, 0x9e
mov rcx, rsi
call fcn.14009d5c0
movups xmm0, xmmword [rsi]
movdqu xmm1, xmmword [rsi + 0xe]
lea rsi, [rsp + 0x808]
movups xmmword [rsi - 0x1e], xmm0
movdqu xmmword [rsi - 0x10], xmm1
lea rdx, [rsp + 0xe4e]
mov r8d, 0x80
mov rcx, rsi
call fcn.14009d5c0
mov qword [rsi - 0x28], rbx
mov byte [rsi - 0x20], bpl
mov byte [rsi - 0x1f], dil
lea rax, [rsp + 0x590]
movups xmm0, xmmword [rax - 0x18]
lea rbp, [rsp + 0x260]
movups xmmword [rbp - 0x18], xmm0
movups xmm0, xmmword [rax - 0x28]
movups xmmword [rbp - 0x28], xmm0
movups xmm0, xmmword [rax - 0x38]
movups xmmword [rbp - 0x38], xmm0
movups xmm0, xmmword [rax - 0x48]
movups xmmword [rbp - 0x48], xmm0
mov rdx, qword [rax - 8]
mov r8, qword [rax - 0x50]
mov ecx, 0x10
mov rdi, rbp
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov rax, qword [rax + 0x80]
mov qword [rbp - 0x50], r8
mov qword [rbp - 8], rdx
mov qword [rbp + 0x80], rax
lea rsi, [rsp + 0x120]
lea rdx, [rsp + 0x210]
mov rcx, rsi
call fcn.140033f69
mov rax, qword [r13 + 0xa8]
mov rcx, qword [r13 + 0xb0]
mov rdx, qword [rcx + 0x10]
dec rdx
and rdx, 0xfffffffffffffff0
lea r9, [rdx + rax]
add r9, 0x10
lea rax, [rsp + 0x650]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rdi, [rsp + 0x210]
lea rdx, [rsp + 0x7e0]
mov rcx, rdi
mov r8, rsi
call fcn.140054013
lea rdx, [rsp + 0x358]
mov rcx, qword [rbp + 0x50]
mov r8, r15
call fcn.140054161
mov r15, qword [rdi]
mov r14b, byte [rdi + 8]
mov bl, byte [rdi + 9]
lea rdx, [rsp + 0x21a]
lea rsi, [rsp + 0x8c0]
mov r8d, 0x1de
mov rcx, rsi
call fcn.14009d5c0
movaps xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x1f0], xmm0
movups xmm0, xmmword [rsi + 0xe]
movups xmmword [rsp + 0x1fe], xmm0
test r15, r15
sete bpl
je 0x14005c8b9
lea rsi, [rsp + 0x11b8]
lea rdx, [rsp + 0x8de]
mov r8d, 0x1c0
mov rcx, rsi
call fcn.14009d5c0
mov byte [rsi - 0x20], r14b
mov byte [rsi - 0x1f], bl
movaps xmm0, xmmword [rsp + 0x1f0]
movups xmmword [rsi - 0x1e], xmm0
movups xmm0, xmmword [rsp + 0x1fe]
movups xmmword [rsi - 0x10], xmm0
mov qword [rsi - 0x28], r15
cmp byte [rsp + 0x698], 0
jne 0x14005d442
lea rdx, [rsp + 0x210]
mov word [rdx + 0xb8], 4
mov word [rdx + 0xa8], 0x21
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
call fcn.140049ae8
mov rax, qword [rsp + 0x538]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x630]
mov qword [rsp + 0x68], rax
movzx eax, word [rsp + 0x728]
mov word [rsp + 0x78], ax
lea rcx, [rsp + 0x638]
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x7f0], rax
movdqu xmm0, xmmword [rcx]
movdqa xmmword [rsp + 0x7e0], xmm0
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x128], xmm0
mov qword [rsp + 0x120], 8
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 0x30]
mov rdx, qword [rax + 0x40]
call fcn.1400433f1
test rax, rax
je 0x14005d9d2
mov r15, qword [rax]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call case.0x140038c69.174
mov qword [rsp + 0x210], rax
mov qword [rsp + 0x218], rdx
mov qword [rsp + 0x220], 0
cmp rdx, rdi
jb 0x14005f51d
mov rsi, rax
xor r12d, r12d
test rdi, rdi
je 0x14005d535
mov r14b, 8
mov bl, 0x18
jmp 0x14005c896
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 8], rsi
lea rax, fcn.14005f58b
mov qword [rcx + 0x10], rax
mov byte [rcx], 0x14
xor ebp, ebp
xor esi, esi
jmp 0x14005b8f6
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0x19
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x1f08
jmp 0x14005c8de
xor eax, eax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xd0]
lea rax, [rax + rax*2]
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + rax*8]
sub rax, qword [rsp + 0x78]
movabs rcx, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 4
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x100]
sub rax, qword [rsp + 0x60]
mov qword [rsp + 0x38], rdx
cmp rax, rdx
jb 0x14005d8ad
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0xd0]
je 0x14005d70f
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
lea rcx, [rcx + rcx*2]
lea rbx, [rax + rcx*8]
neg qword [rsp + 0x38]
mov r15d, 0x10
xor r12d, r12d
mov rax, qword [rsp + 0x78]
mov rsi, qword [rax + r15 - 0x10]
mov r14, qword [rax + r15]
mov rcx, r14
xor edx, edx
call fcn.1400210cb
mov rdi, rax
mov r13, rdx
mov rcx, rax
mov rdx, rsi
mov r8, r14
call fcn.14009d5c0
mov qword [rbx + r15 - 0x10], rdi
mov qword [rbx + r15 - 8], r13
mov qword [rbx + r15], r14
dec r12
add r15, 0x18
cmp qword [rsp + 0x38], r12
jne 0x14005d6c2
sub qword [rsp + 0x60], r12
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x108], rcx
jmp 0x14005d75b
mov qword [rsp + 0x210], 0
test r15, r15
je 0x14005d73d
mov rcx, qword [rsp + 0x58]
call case.0x14001b505.147
mov rax, qword [rsp + 0x220]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x210]
movdqu xmmword [rcx], xmm0
movzx eax, word [rsp + 0x728]
mov word [rsp + 0x38], ax
jmp 0x14005c35c
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0x10
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x1d08
jmp 0x14005c8de
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x2608
jmp 0x14005c8de
mov rcx, r13
mov rdx, qword [rsp + 0x38]
xor r8d, r8d
mov r9, rdi
call fcn.1400a8b97
ud2
call fcn.1400a8ba2
jmp 0x14005cd4b
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x38]
call fcn.1400a8da8
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x108]
mov qword [rsp + 0x60], rax
jmp 0x14005d690
mov rcx, r13
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov r9, rdx
jmp 0x14005d819
lea rdi, [rsp + 0x1190]
lea rdx, [rsp + 0x8c0]
mov r8d, 0x88
mov rcx, rdi
call fcn.14009d5c0
lea rcx, [rsp + 0x910]
mov eax, dword [rcx + 0x3a]
mov dword [rsp + 0xe30], eax
movzx eax, word [rcx + 0x3e]
mov word [rsp + 0xe34], ax
lea r14, [rsp + 0xb50]
mov r8d, 0x88
mov rcx, r14
mov rdx, rdi
call fcn.14009d5c0
mov word [r14 + 0x88], r12w
mov eax, dword [rsp + 0xe30]
mov dword [r14 + 0x8a], eax
movzx eax, word [rsp + 0xe34]
mov word [r14 + 0x8e], ax
mov rax, qword [rsp + 0xe0]
cmp qword [r15 + 0x30], rax
jbe 0x14005f0d9
mov r13, qword [rsp + 0xba0]
mov rbx, qword [rsp + 0xbb0]
mov rax, qword [r15 + 0x20]
mov rcx, qword [rsp + 0xe0]
lea rcx, [rcx + rcx*2]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0x38], rdx
mov r12, qword [rax + rcx*8 + 0x10]
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 0xa8]
add eax, 0xffffffe1
cmp ax, 3
ja 0x14005dbf2
cmp ax, 1
jne 0x14005f0d9
mov rax, qword [rsp + 0x88]
lea rdx, [rax + 0x18]
lea r14, [rsp + 0x120]
mov rcx, r14
call fcn.1400436ed
mov r8, qword [r14]
mov r9, qword [r14 + 0x10]
lea r14, [rsp + 0x1190]
mov rcx, r14
lea rdx, [rsp + 0x540]
mov r15, r8
call fcn.1400612fd
lea rdi, [rsp + 0x210]
mov rcx, rdi
mov rdx, rsi
mov r8, r13
mov r9, rbx
call fcn.140051c89
lea rsi, [rsp + 0x8c0]
mov rcx, rsi
mov rdx, rdi
mov r8, r14
call fcn.140051d04
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
cmp rax, 0x41
jae 0x14005f0d9
mov bl, 1
cmp rax, r12
jne 0x14005dc91
lea rcx, [rsp + 0x8c8]
mov rdx, qword [rsp + 0x38]
mov r8, r12
call fcn.14009a4c8
test eax, eax
setne bl
cmp qword [rsp + 0x128], 0
je 0x14005dcae
mov rcx, qword [0x1400f5ae0]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
je 0x14005f3e8
mov bpl, 1
lea rdx, [rsp + 0x210]
mov byte [rdx], bpl
mov byte [rdx + 2], 0x11
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
mov rsi, qword [rsp + 0x50]
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.140049ae8
mov byte [rsi + 0x139], bpl
mov rax, qword [rsp + 0x40]
mov word [rax], 0x1608
lea rcx, [rsp + 0xb50]
call fcn.14005f5f3
jmp 0x14005c8de
ud2
cmp word [rsp + 0x728], 0xa
je 0x14005f400
lea rcx, [rsp + 0x6a0]
call fcn.14005f5f3
lea rcx, [rsp + 0x6a0]
lea rdx, [rsp + 0xb50]
mov r8d, 0x90
call fcn.14009d5c0
mov eax, 1
mov qword [rsp + 0x70], rax
jmp 0x14005c2ec
lea r14, [rsp + 0x210]
mov rcx, r14
mov ecx, 8
mov edx, 0x120
jmp 0x14005f578
mov ecx, 8
mov edx, 0x10
call fcn.1400a8b8c
ud2