Function at 0x140197310
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x728
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x6a0], 0xfffffffffffffffe
mov qword [rbp + 0x620], r9
mov qword [rbp + 0x5a8], r8
mov rbx, rdx
mov qword [rbp + 0x5c0], rcx
mov qword [rbp + 0x3a8], 0
mov qword [rbp + 0x3b0], 1
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x3b8], xmm0
mov qword [rbp + 0x3c8], rdx
movzx r15d, byte [rdx]
test r15, r15
je 0x1401973c8
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
xor edx, edx
mov r8, r15
call fcn.1402921d0
mov r12, qword [rbp + 0x3b0]
mov r14, qword [rbp + 0x3b8]
lea rcx, [r12 + r14]
mov dl, 1
mov r8, r15
call sub.VCRUNTIME140.dll_memset
add r14, r15
mov rsi, qword [rbp + 0x3a8]
jmp 0x1401973d3
xor esi, esi
mov r12d, 1
xor r14d, r14d
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rax, [rbx + 1]
mov qword [rbp + 0x3c0], 1
mov qword [rbp + 0x3c8], rax
movzx ecx, byte [rbx + 1]
movzx r8d, cl
mov rax, rsi
sub rax, r14
cmp rax, r8
mov qword [rbp + 0x5d8], r8
mov byte [rbp + 0x664], cl
jae 0x140197453
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197457
test cl, cl
je 0x140197475
lea rcx, [r12 + r14]
mov dl, 2
mov rdi, qword [rbp + 0x5d8]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 2]
mov qword [rbp + 0x3c0], 2
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 2]
movzx r13d, cl
cmp rax, r13
mov byte [rbp + 0x678], cl
jae 0x1401974eb
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
mov r8, r13
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x1401974ef
test cl, cl
je 0x140197506
lea rcx, [r12 + r14]
mov dl, 3
mov r8, r13
call sub.VCRUNTIME140.dll_memset
add r14, r13
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 3]
mov qword [rbp + 0x3c0], 3
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 3]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x5e0], r8
mov byte [rbp + 0x67c], cl
jae 0x140197580
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197584
test cl, cl
je 0x1401975a2
lea rcx, [r12 + r14]
mov dl, 4
mov rdi, qword [rbp + 0x5e0]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 4]
mov qword [rbp + 0x3c0], 4
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 4]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x5e8], r8
mov byte [rbp + 0x680], cl
jae 0x14019761c
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197620
test cl, cl
je 0x14019763e
lea rcx, [r12 + r14]
mov dl, 5
mov rdi, qword [rbp + 0x5e8]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 5]
mov qword [rbp + 0x3c0], 5
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 5]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x5f0], r8
mov byte [rbp + 0x684], cl
jae 0x1401976b8
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x1401976bc
test cl, cl
je 0x1401976da
lea rcx, [r12 + r14]
mov dl, 6
mov rdi, qword [rbp + 0x5f0]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 6]
mov qword [rbp + 0x3c0], 6
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 6]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x5f8], r8
mov byte [rbp + 0x688], cl
jae 0x140197754
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197758
test cl, cl
je 0x140197776
lea rcx, [r12 + r14]
mov dl, 7
mov rdi, qword [rbp + 0x5f8]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 7]
mov qword [rbp + 0x3c0], 7
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 7]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x600], r8
mov byte [rbp + 0x68c], cl
jae 0x1401977f0
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x1401977f4
test cl, cl
je 0x140197812
lea rcx, [r12 + r14]
mov dl, 8
mov rdi, qword [rbp + 0x600]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 8]
mov qword [rbp + 0x3c0], 8
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 8]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x698], r8
mov byte [rbp + 0x690], cl
jae 0x14019788c
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197890
test cl, cl
je 0x1401978ae
lea rcx, [r12 + r14]
mov dl, 9
mov rdi, qword [rbp + 0x698]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 9]
mov qword [rbp + 0x3c0], 9
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 9]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x628], r8
mov byte [rbp + 0x694], cl
jae 0x140197928
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14019792c
test cl, cl
je 0x14019794a
lea rcx, [r12 + r14]
mov dl, 0xa
mov rdi, qword [rbp + 0x628]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 0xa]
mov qword [rbp + 0x3c0], 0xa
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 0xa]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x650], r8
mov byte [rbp + 0x668], cl
jae 0x1401979c4
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x1401979c8
test cl, cl
je 0x1401979e6
lea rcx, [r12 + r14]
mov dl, 0xb
mov rdi, qword [rbp + 0x650]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 0xb]
mov qword [rbp + 0x3c0], 0xb
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 0xb]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x640], r8
mov byte [rbp + 0x66c], cl
jae 0x140197a60
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197a64
test cl, cl
je 0x140197a82
lea rcx, [r12 + r14]
mov dl, 0xc
mov rdi, qword [rbp + 0x640]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 0xc]
mov qword [rbp + 0x3c0], 0xc
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 0xc]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x638], r8
mov byte [rbp + 0x670], cl
jae 0x140197afc
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197b00
test cl, cl
je 0x140197b1e
lea rcx, [r12 + r14]
mov dl, 0xd
mov rdi, qword [rbp + 0x638]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 0xd]
mov qword [rbp + 0x3c0], 0xd
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 0xd]
movzx edi, cl
cmp rax, rdi
mov qword [rbp + 0x608], r13
mov byte [rbp + 0x630], cl
jae 0x140197b9a
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
mov r8, rdi
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x140197b9e
test cl, cl
je 0x140197bb5
lea rcx, [r12 + r14]
mov dl, 0xe
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r14, rdi
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov r13, r12
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 0xe]
mov qword [rbp + 0x3c0], 0xe
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [rbx + 0xe]
movzx r12d, cl
cmp rax, r12
mov byte [rbp + 0x674], cl
jae 0x140197c2e
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
mov r8, r12
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov r13, qword [rbp + 0x3b0]
jmp 0x140197c32
test cl, cl
je 0x140197c49
lea rcx, [r14 + r13]
mov dl, 0xf
mov r8, r12
call sub.VCRUNTIME140.dll_memset
add r14, r12
mov rax, rsi
sub rax, r14
mov qword [rbp + 0x3a8], rsi
mov qword [rbp + 0x648], r13
mov qword [rbp + 0x3b0], r13
mov qword [rbp + 0x3b8], r14
lea rcx, [rbx + 0xf]
mov qword [rbp + 0x3c0], 0xf
mov qword [rbp + 0x3c8], rcx
movzx r13d, byte [rbx + 0xf]
movzx ebx, r13b
cmp rax, rbx
mov byte [rbp + 0x634], r13b
jae 0x140197ccf
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x3a8]
mov r9d, 1
mov rdx, r14
mov r8, rbx
call fcn.1402921d0
mov r14, qword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3a8]
mov rax, qword [rbp + 0x3b0]
mov qword [rbp + 0x648], rax
jmp 0x140197cd4
test r13b, r13b
je 0x140197cec
mov rax, qword [rbp + 0x648]
lea rcx, [rax + r14]
mov dl, 0x10
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
add r14, rbx
mov qword [rbp + 0x5b8], rbx
lea r13, [r14 + r14]
xor ebx, ebx
test r14, r14
mov qword [rbp + 0x610], rsi
js 0x140198ad2
movabs rax, 0x7ffffffffffffffe
cmp r13, rax
ja 0x140198ad2
test r13, r13
je 0x140197eaf
mov ebx, 2
mov edx, 2
mov rcx, r13
call fcn.1400fcbf0
test rax, rax
je 0x140198ad2
mov qword [rbp + 0x658], r14
mov r13, rax
test r14, r14
mov qword [rbp + 0x618], r13
je 0x140197ed0
mov rdx, qword [rbp + 0x648]
lea rbx, [rdx + r14]
movzx r9d, byte [rdx]
xor eax, eax
xor r8d, r8d
nop
movzx ecx, byte [rdx]
mov r10d, r9d
sub r10b, cl
jae 0x140197dbf
mov r11d, ecx
sub r11b, r9b
and r11b, 7
je 0x140197da4
neg r11b
xor r13d, r13d
nop dword [rax]
add eax, eax
dec r13b
cmp r11b, r13b
jne 0x140197d90
sub r9b, r13b
mov r13, qword [rbp + 0x618]
mov r11d, r9d
mov r9d, ecx
cmp r10b, 0xf8
ja 0x140197dbf
shl eax, 8
add r11b, 8
cmp r11b, cl
jb 0x140197db0
mov r9d, ecx
mov r10d, eax
shr r10d, cl
test r10d, r10d
jne 0x140197df9
inc rdx
mov word [r13 + r8*2], ax
inc r8
inc eax
cmp rdx, rbx
jne 0x140197d70
mov rax, qword [rbp + 0x658]
neg rax
jno 0x140197ee5
mov r15, qword [rbp + 0x5c0]
jmp 0x140197e7f
movzx eax, byte [0x1403d2ea1]
mov ecx, 0x17
mov edx, 1
call fcn.1400fcbc0
test rax, rax
je 0x140198adf
mov r14, rax
movups xmm0, xmmword [str.bad_huffman_code_length]
movups xmmword [rax], xmm0
movabs rax, 0x6874676e656c2065
mov qword [r14 + 0xf], rax
mov rdx, qword [rbp + 0x658]
test rdx, rdx
mov r15, qword [rbp + 0x5c0]
mov rdi, qword [rbp + 0x648]
je 0x140197e5e
add rdx, rdx
mov r8d, 2
mov rcx, r13
call fcn.1400fcbd0
mov r13d, 0x17
test rsi, rsi
je 0x140197e7a
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.1400fcbd0
mov esi, 0x17
mov qword [r15 + 8], r13
mov qword [r15 + 0x10], r14
mov qword [r15 + 0x18], rsi
movabs rax, 0x8000000000000000
mov qword [r15], rax
mov rax, r15
add rsp, 0x728
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r13d, 2
mov qword [rbp + 0x658], 0
test r14, r14
mov qword [rbp + 0x618], r13
jne 0x140197d5a
lea r8, [0x14036c610]
xor ecx, ecx
xor edx, edx
call fcn.14029d940
jmp 0x140198b01
mov dword [rbp + 0x5d4], 0
mov dword [rbp + 0x5d0], 0xffffffff
mov ecx, 0xffffffff
mov dword [rbp + 0x5cc], 0
test r15b, r15b
mov rdx, qword [rbp + 0x5d8]
movzx eax, byte [rbp + 0x664]
mov r8, qword [rbp + 0x5e0]
mov r9, qword [rbp + 0x5e8]
mov r10, qword [rbp + 0x5f0]
mov r11, qword [rbp + 0x5f8]
mov rsi, qword [rbp + 0x600]
je 0x140197f5e
lea rcx, [r15 - 1]
cmp rcx, r14
jae 0x140198aad
movzx ecx, word [r13]
neg ecx
mov dword [rbp + 0x5cc], ecx
movzx ecx, word [r13 + r15*2 - 2]
test al, al
mov dword [rbp + 0x5b4], ecx
je 0x140197fa5
cmp r14, r15
jbe 0x140198abe
lea rcx, [rdx + r15]
dec rcx
cmp rcx, r14
jae 0x140198aad
add rdx, r15
movzx ecx, r15b
movzx eax, word [r13 + r15*2]
sub ecx, eax
mov dword [rbp + 0x5d4], ecx
movzx eax, word [r13 + rdx*2 - 2]
mov dword [rbp + 0x5d0], eax
mov r15, rdx
movzx eax, byte [rbp + 0x678]
mov dword [rbp + 0x664], 0
mov dword [rbp + 0x5d8], 0xffffffff
test al, al
mov rcx, qword [rbp + 0x698]
je 0x14019818b
cmp r15, r14
jae 0x140198abe
mov rax, qword [rbp + 0x608]
lea rcx, [r15 + rax]
dec rcx
cmp rcx, r14
jae 0x140198aad
mov rcx, qword [rbp + 0x608]
add rcx, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rbp + 0x608], eax
mov dword [rbp + 0x678], r15d
mov r15, rcx
movzx eax, byte [rbp + 0x67c]
mov rcx, qword [rbp + 0x698]
test al, al
je 0x1401981ae
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + r8]
dec rcx
cmp rcx, r14
jae 0x140198aad
add r8, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + r8*2 - 2]
mov dword [rbp + 0x5d8], eax
mov dword [rbp + 0x664], r15d
mov r15, r8
movzx eax, byte [rbp + 0x680]
mov rcx, qword [rbp + 0x698]
mov dword [rbp + 0x5e0], 0
mov r8d, 0xffffffff
test al, al
je 0x1401981cd
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + r9]
dec rcx
cmp rcx, r14
jae 0x140198aad
add r9, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + r9*2 - 2]
mov dword [rbp + 0x67c], eax
mov dword [rbp + 0x680], r15d
mov r15, r9
movzx eax, byte [rbp + 0x684]
mov rcx, qword [rbp + 0x698]
test al, al
je 0x1401981f0
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + r10]
dec rcx
cmp rcx, r14
jae 0x140198aad
add r10, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx r8d, word [r13 + r10*2 - 2]
mov dword [rbp + 0x5e0], r15d
mov r15, r10
movzx eax, byte [rbp + 0x688]
mov rcx, qword [rbp + 0x698]
mov dword [rbp + 0x5e8], 0
mov r9d, 0xffffffff
test al, al
je 0x14019820f
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + r11]
dec rcx
cmp rcx, r14
jae 0x140198aad
add r11, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx r10d, word [r13 + r11*2 - 2]
mov dword [rbp + 0x5f8], r15d
mov r15, r11
movzx eax, byte [rbp + 0x68c]
mov rcx, qword [rbp + 0x698]
test al, al
jne 0x14019822a
jmp 0x140198266
mov dword [rbp + 0x608], 0xffffffff
mov dword [rbp + 0x678], 0
movzx eax, byte [rbp + 0x67c]
test al, al
jne 0x14019802e
movzx eax, byte [rbp + 0x680]
mov dword [rbp + 0x5e0], 0
mov r8d, 0xffffffff
test al, al
jne 0x14019808f
mov dword [rbp + 0x67c], 0xffffffff
mov dword [rbp + 0x680], 0
movzx eax, byte [rbp + 0x684]
test al, al
jne 0x1401980e0
movzx eax, byte [rbp + 0x688]
mov dword [rbp + 0x5e8], 0
mov r9d, 0xffffffff
test al, al
jne 0x14019813b
mov r10d, 0xffffffff
mov dword [rbp + 0x5f8], 0
movzx eax, byte [rbp + 0x68c]
test al, al
je 0x140198266
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + rsi]
dec rcx
cmp rcx, r14
jae 0x140198aad
add rsi, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx r9d, word [r13 + rsi*2 - 2]
mov dword [rbp + 0x5e8], r15d
mov r15, rsi
mov rcx, qword [rbp + 0x698]
movzx eax, byte [rbp + 0x690]
mov dword [rbp + 0x5f0], 0
mov r11d, 0xffffffff
test al, al
je 0x1401982c4
cmp r15, r14
jae 0x140198abe
add rcx, r15
dec rcx
cmp rcx, r14
jae 0x140198aad
mov rcx, qword [rbp + 0x698]
add rcx, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rbp + 0x600], eax
mov dword [rbp + 0x684], r15d
mov r15, rcx
jmp 0x1401982d8
mov dword [rbp + 0x600], 0xffffffff
mov dword [rbp + 0x684], 0
movzx eax, byte [rbp + 0x694]
movzx edx, byte [rbp + 0x668]
test al, al
mov rax, qword [rbp + 0x628]
mov rcx, qword [rbp + 0x650]
je 0x14019833b
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + rax]
dec rcx
cmp rcx, r14
jae 0x140198aad
mov rcx, qword [rbp + 0x628]
add rcx, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx r11d, word [r13 + rcx*2 - 2]
mov dword [rbp + 0x5f0], r15d
mov r15, rcx
mov rcx, qword [rbp + 0x650]
movzx eax, byte [rbp + 0x66c]
mov dword [rbp + 0x628], 0
mov dword [rbp + 0x698], 0xffffffff
test dl, dl
je 0x1401983a1
cmp r15, r14
jae 0x140198abe
add rcx, r15
dec rcx
cmp rcx, r14
jae 0x140198aad
mov edx, eax
mov rcx, qword [rbp + 0x650]
add rcx, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rbp + 0x688], eax
mov dword [rbp + 0x68c], r15d
mov r15, rcx
mov eax, edx
jmp 0x1401983b5
mov dword [rbp + 0x688], 0xffffffff
mov dword [rbp + 0x68c], 0
movzx edx, byte [rbp + 0x670]
test al, al
mov rax, qword [rbp + 0x640]
mov rcx, qword [rbp + 0x638]
je 0x140198417
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + rax]
dec rcx
cmp rcx, r14
jae 0x140198aad
mov rcx, qword [rbp + 0x640]
add rcx, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rbp + 0x698], eax
mov dword [rbp + 0x628], r15d
mov r15, rcx
mov rcx, qword [rbp + 0x638]
test dl, dl
movzx edx, byte [rbp + 0x630]
je 0x1401984e7
cmp r15, r14
jae 0x140198abe
mov dword [rbp + 0x640], 0
mov dword [rbp + 0x650], 0xffffffff
add rcx, r15
dec rcx
cmp rcx, r14
jae 0x140198aad
mov rcx, qword [rbp + 0x638]
add rcx, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rbp + 0x638], eax
mov dword [rbp + 0x690], r15d
mov r15, rcx
movzx eax, byte [rbp + 0x674]
test dl, dl
jne 0x14019851e
xor edi, edi
mov edx, 0xffffffff
test al, al
je 0x14019856c
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + r12]
dec rcx
cmp rcx, r14
jae 0x140198aad
add r12, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx esi, word [r13 + r12*2 - 2]
mov dword [rbp + 0x694], r15d
mov r15, r12
cmp byte [rbp + 0x634], 0
mov r12, qword [rbp + 0x648]
jne 0x14019858b
jmp 0x1401985bd
mov dword [rbp + 0x640], 0
mov dword [rbp + 0x650], 0xffffffff
mov dword [rbp + 0x638], 0xffffffff
mov dword [rbp + 0x690], 0
movzx eax, byte [rbp + 0x674]
test dl, dl
je 0x14019848a
cmp r15, r14
jae 0x140198abe
lea rcx, [r15 + rdi]
dec rcx
cmp rcx, r14
jae 0x140198aad
mov edx, eax
add rdi, r15
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx eax, word [r13 + rdi*2 - 2]
mov dword [rbp + 0x650], eax
mov dword [rbp + 0x640], r15d
mov r15, rdi
mov eax, edx
xor edi, edi
mov edx, 0xffffffff
test al, al
jne 0x140198499
mov esi, 0xffffffff
mov dword [rbp + 0x694], 0
cmp byte [rbp + 0x634], 0
mov r12, qword [rbp + 0x648]
je 0x1401985bd
cmp r15, r14
jae 0x140198abe
mov rax, qword [rbp + 0x5b8]
lea rcx, [rax + r15]
dec rcx
cmp rcx, r14
jae 0x140198aad
movzx eax, word [r13 + r15*2]
sub r15d, eax
movzx edx, word [r13 + rcx*2]
mov edi, r15d
mov dword [rbp + 0x5b8], edi
mov dword [rbp + 0x634], esi
mov dword [rbp + 0x674], edx
mov dword [rbp + 0x630], r11d
mov dword [rbp + 0x670], r10d
mov dword [rbp + 0x66c], r9d
mov dword [rbp + 0x668], r8d
xor r15d, r15d
lea rdi, [rbp + 0x3a8]
mov r8d, 0x200
mov rcx, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r8, r12
nop dword [rax + rax]
cmp r8, rbx
je 0x140198738
mov r9, r15
movzx r11d, byte [r8]
inc r8
inc r15
cmp r11, 8
ja 0x140198610
cmp r9, r14
jae 0x140198a99
mov ecx, 8
sub rcx, r11
mov rax, qword [rbp + 0x618]
movzx eax, word [rax + r9*2]
shl eax, cl
cmp r9, qword [rbp + 0x620]
jae 0x140198a70
movzx r10d, ax
cmp r10d, 0x100
ja 0x140198a57
mov edx, 0x100
sub rdx, r10
mov eax, 1
shl rax, cl
cmp rax, rdx
ja 0x140198a88
mov rdx, qword [rbp + 0x5a8]
movzx edx, byte [rdx + r9]
mov r13d, 2
shl r13, cl
lea rcx, [r10*2 + 0x3a8]
add rcx, rbp
add r13, 0xfffffffffffffffe
mov r9, rcx
cmp r13, 0x1e
jb 0x140198716
shr r13, 1
inc r13
mov r12, r13
and r12, 0xfffffffffffffff0
lea r9, [rcx + r12*2]
movzx esi, r11b
movd xmm0, esi
punpcklbw xmm0, xmm0
pshuflw xmm1, xmm0, 0
movzx esi, dl
movd xmm0, esi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
punpcklbw xmm0, xmm1
lea r10, [rdi + r10*2]
add r10, 0x10
xor esi, esi
nop
movdqu xmmword [r10 + rsi*2 - 0x10], xmm0
movdqu xmmword [r10 + rsi*2], xmm0
add rsi, 0x10
cmp r12, rsi
jne 0x1401986f0
cmp r13, r12
mov r12, qword [rbp + 0x648]
je 0x140198610
lea rax, [rcx + rax*2]
nop word [rax + rax]
mov byte [r9], dl
mov byte [r9 + 1], r11b
lea rcx, [r9 + 2]
mov r9, rcx
cmp rcx, rax
jne 0x140198720
jmp 0x140198610
cmp byte [rbp + 0x710], 0
je 0x140198812
xor eax, eax
mov r15, qword [rbp + 0x5c0]
nop
mov word [rbp + rax*4 - 0x58], 0
mov byte [rbp + rax*4 - 0x56], 0
mov word [rbp + rax*4 - 0x54], 0
mov byte [rbp + rax*4 - 0x52], 0
mov word [rbp + rax*4 - 0x50], 0
mov byte [rbp + rax*4 - 0x4e], 0
mov word [rbp + rax*4 - 0x4c], 0
mov byte [rbp + rax*4 - 0x4a], 0
add rax, 4
cmp rax, 0x100
jne 0x140198750
mov edx, 0x200
xor r8d, r8d
mov r13, qword [rbp + 0x618]
jmp 0x1401987bd
xor edi, edi
and r9b, 0xf0
add edi, r11d
or r10b, r9b
mov word [rbp + r8*4 - 0x58], di
mov byte [rbp + r8*4 - 0x56], r10b
inc r8
add rdx, 0xfffffffffffffffe
je 0x140198825
movzx r9d, byte [rbp + r8*2 + 0x3a8]
mov eax, r9d
and eax, 0xf
je 0x1401987b4
movzx ecx, byte [rbp + r8*2 + 0x3a9]
lea r10d, [rcx + rax]
cmp r10b, 8
ja 0x1401987b4
movzx ecx, cl
mov r11, r8
shl r11, cl
movzx r11d, r11b
mov cl, 8
sub cl, al
shr r11, cl
lea ecx, [rax - 1]
and cl, 0xf
mov esi, r11d
shr esi, cl
mov edi, 0xffffffff
mov ecx, eax
shl edi, cl
test esi, esi
jne 0x14019879d
or edi, 1
jmp 0x14019879f
xor r14d, r14d
mov r15, qword [rbp + 0x5c0]
mov r13, qword [rbp + 0x618]
jmp 0x14019882a
mov r14w, 1
cmp qword [rbp + 0x620], 0
js 0x140198af0
je 0x140198865
movzx eax, byte [0x1403d2ea1]
mov ebx, 1
mov edx, 1
mov rcx, qword [rbp + 0x620]
call fcn.1400fcbc0
test rax, rax
je 0x140198af2
mov rdi, rax
jmp 0x14019886a
mov edi, 1
mov rcx, rdi
mov rdx, qword [rbp + 0x5a8]
mov rsi, qword [rbp + 0x620]
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [r15 + 0x98]
lea rdx, [rbp + 0x3a8]
mov r8d, 0x200
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [r15 + 0x29a]
lea rdx, [rbp - 0x58]
mov r8d, 0x400
call sub.VCRUNTIME140.dll_memcpy
mov qword [r15], rsi
mov qword [r15 + 8], rdi
mov qword [r15 + 0x10], rsi
mov eax, dword [rbp + 0x5cc]
mov dword [r15 + 0x18], eax
mov eax, dword [rbp + 0x5d4]
mov dword [r15 + 0x1c], eax
mov eax, dword [rbp + 0x678]
mov dword [r15 + 0x20], eax
mov eax, dword [rbp + 0x664]
mov dword [r15 + 0x24], eax
mov eax, dword [rbp + 0x680]
mov dword [r15 + 0x28], eax
mov eax, dword [rbp + 0x5e0]
mov dword [r15 + 0x2c], eax
mov eax, dword [rbp + 0x5f8]
mov dword [r15 + 0x30], eax
mov eax, dword [rbp + 0x5e8]
mov dword [r15 + 0x34], eax
mov eax, dword [rbp + 0x684]
mov dword [r15 + 0x38], eax
mov eax, dword [rbp + 0x5f0]
mov dword [r15 + 0x3c], eax
mov eax, dword [rbp + 0x68c]
mov dword [r15 + 0x40], eax
mov eax, dword [rbp + 0x628]
mov dword [r15 + 0x44], eax
mov eax, dword [rbp + 0x690]
mov dword [r15 + 0x48], eax
mov eax, dword [rbp + 0x640]
mov dword [r15 + 0x4c], eax
mov eax, dword [rbp + 0x694]
mov dword [r15 + 0x50], eax
mov eax, dword [rbp + 0x5b8]
mov dword [r15 + 0x54], eax
mov eax, dword [rbp + 0x5b4]
mov dword [r15 + 0x58], eax
mov eax, dword [rbp + 0x5d0]
mov dword [r15 + 0x5c], eax
mov eax, dword [rbp + 0x608]
mov dword [r15 + 0x60], eax
mov eax, dword [rbp + 0x5d8]
mov dword [r15 + 0x64], eax
mov eax, dword [rbp + 0x67c]
mov dword [r15 + 0x68], eax
mov eax, dword [rbp + 0x668]
mov dword [r15 + 0x6c], eax
mov eax, dword [rbp + 0x670]
mov dword [r15 + 0x70], eax
mov eax, dword [rbp + 0x66c]
mov dword [r15 + 0x74], eax
mov eax, dword [rbp + 0x600]
mov dword [r15 + 0x78], eax
mov eax, dword [rbp + 0x630]
mov dword [r15 + 0x7c], eax
mov eax, dword [rbp + 0x688]
mov dword [r15 + 0x80], eax
mov eax, dword [rbp + 0x698]
mov dword [r15 + 0x84], eax
mov eax, dword [rbp + 0x638]
mov dword [r15 + 0x88], eax
mov eax, dword [rbp + 0x650]
mov dword [r15 + 0x8c], eax
mov eax, dword [rbp + 0x634]
mov dword [r15 + 0x90], eax
mov eax, dword [rbp + 0x674]
mov dword [r15 + 0x94], eax
mov word [r15 + 0x298], r14w
mov rdx, qword [rbp + 0x610]
test rdx, rdx
je 0x140198a31
mov r8d, 1
mov rcx, r12
call fcn.1400fcbd0
mov rdx, qword [rbp + 0x658]
test rdx, rdx
je 0x140197e98
add rdx, rdx
mov r8d, 2
mov rcx, r13
call fcn.1400fcbd0
jmp 0x140197e98
lea r8, [0x14036c5c8]
mov edx, 0x100
mov rcx, r10
call fcn.14029dcb0
jmp 0x140198b01
lea r8, [0x14036c598]
mov rcx, r9
mov rdx, qword [rbp + 0x620]
call fcn.14029d940
jmp 0x140198b01
lea r8, [0x14036c5b0]
mov rcx, rax
call fcn.14029dd20
jmp 0x140198b01
lea r8, [0x14036c580]
mov rcx, r9
mov rdx, r14
call fcn.14029d940
jmp 0x140198b01
lea r8, [0x14036c5f8]
mov rdx, r14
call fcn.14029d940
jmp 0x140198b01
lea r8, [0x14036c5e0]
mov rcx, r15
mov rdx, r14
call fcn.14029d940
jmp 0x140198b01
mov rcx, rbx
mov rdx, r13
call fcn.14029d590
jmp 0x140198b01
mov ecx, 1
mov edx, 0x17
call fcn.14029d590
jmp 0x140198b01
xor ebx, ebx
mov rcx, rbx
mov rdx, qword [rbp + 0x620]
call fcn.14029d590
ud2