Function at 0x14009cad0
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, 0x738
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x6b0], 0xfffffffffffffffe
mov qword [rbp + 0x628], r9
mov rbx, r8
mov r15, rdx
mov qword [rbp + 0x5b8], rcx
mov qword [rbp + 0x3a8], 0
mov qword [rbp + 0x3b0], 1
xorps xmm0, xmm0
movups xmmword [rbp + 0x3b8], xmm0
mov qword [rbp + 0x3c8], rdx
movzx r8d, byte [rdx]
test r8, r8
mov qword [rbp + 0x6a0], r8
je 0x14009cb7e
lea rcx, [rbp + 0x3a8]
xor edx, edx
call fcn.1400db3d0
mov r12, qword [rbp + 0x3b0]
mov r13, qword [rbp + 0x3b8]
lea rcx, [r12 + r13]
mov dl, 1
mov rsi, qword [rbp + 0x6a0]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rdi, qword [rbp + 0x3a8]
jmp 0x14009cb89
xor edi, edi
mov r12d, 1
xor r13d, r13d
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rax, [r15 + 1]
mov qword [rbp + 0x3c0], 1
mov qword [rbp + 0x3c8], rax
movzx ecx, byte [r15 + 1]
movzx r8d, cl
mov rax, rdi
sub rax, r13
cmp rax, r8
mov qword [rbp + 0x5f0], r8
mov byte [rbp + 0x65c], cl
jae 0x14009cbfb
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009cbff
test cl, cl
je 0x14009cc1d
lea rcx, [r12 + r13]
mov dl, 2
mov rsi, qword [rbp + 0x5f0]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 2]
mov qword [rbp + 0x3c0], 2
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 2]
movzx esi, cl
cmp rax, rsi
mov byte [rbp + 0x684], cl
jae 0x14009cc8a
lea rcx, [rbp + 0x3a8]
mov rdx, r13
mov r14, rsi
mov r8, rsi
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
mov rsi, r14
jmp 0x14009cc8e
test cl, cl
je 0x14009cca5
lea rcx, [r12 + r13]
mov dl, 3
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 3]
mov qword [rbp + 0x3c0], 3
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 3]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x5f8], r8
mov qword [rbp + 0x618], rsi
mov byte [rbp + 0x688], cl
jae 0x14009cd18
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009cd1c
test cl, cl
je 0x14009cd3a
lea rcx, [r12 + r13]
mov dl, 4
mov rsi, qword [rbp + 0x5f8]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 4]
mov qword [rbp + 0x3c0], 4
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 4]
movzx edx, cl
mov qword [rbp + 0x648], rdx
cmp rax, rdx
mov byte [rbp + 0x68c], cl
jae 0x14009cdac
lea rcx, [rbp + 0x3a8]
mov rdx, r13
mov r8, qword [rbp + 0x648]
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009cdb0
test cl, cl
je 0x14009cdce
lea rcx, [r12 + r13]
mov dl, 5
mov r14, qword [rbp + 0x648]
mov r8, r14
call sub.VCRUNTIME140.dll_memset
add r13, r14
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 5]
mov qword [rbp + 0x3c0], 5
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 5]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x600], r8
mov byte [rbp + 0x690], cl
jae 0x14009ce3a
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009ce3e
test cl, cl
je 0x14009ce5c
lea rcx, [r12 + r13]
mov dl, 6
mov rsi, qword [rbp + 0x600]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 6]
mov qword [rbp + 0x3c0], 6
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 6]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x638], r8
mov byte [rbp + 0x694], cl
jae 0x14009cec8
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009cecc
test cl, cl
je 0x14009ceea
lea rcx, [r12 + r13]
mov dl, 7
mov r14, qword [rbp + 0x638]
mov r8, r14
call sub.VCRUNTIME140.dll_memset
add r13, r14
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 7]
mov qword [rbp + 0x3c0], 7
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 7]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x608], r8
mov byte [rbp + 0x698], cl
jae 0x14009cf56
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009cf5a
test cl, cl
je 0x14009cf78
lea rcx, [r12 + r13]
mov dl, 8
mov rsi, qword [rbp + 0x608]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 8]
mov qword [rbp + 0x3c0], 8
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 8]
movzx edx, cl
mov qword [rbp + 0x650], rdx
cmp rax, rdx
mov byte [rbp + 0x660], cl
jae 0x14009cfea
lea rcx, [rbp + 0x3a8]
mov rdx, r13
mov r8, qword [rbp + 0x650]
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009cfee
test cl, cl
je 0x14009d00c
lea rcx, [r12 + r13]
mov dl, 9
mov r14, qword [rbp + 0x650]
mov r8, r14
call sub.VCRUNTIME140.dll_memset
add r13, r14
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 9]
mov qword [rbp + 0x3c0], 9
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 9]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x610], r8
mov byte [rbp + 0x664], cl
jae 0x14009d078
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009d07c
test cl, cl
je 0x14009d09a
lea rcx, [r12 + r13]
mov dl, 0xa
mov rsi, qword [rbp + 0x610]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 0xa]
mov qword [rbp + 0x3c0], 0xa
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 0xa]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x5c0], r8
mov byte [rbp + 0x668], cl
jae 0x14009d106
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009d10a
test cl, cl
je 0x14009d128
lea rcx, [r12 + r13]
mov dl, 0xb
mov rsi, qword [rbp + 0x5c0]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 0xb]
mov qword [rbp + 0x3c0], 0xb
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 0xb]
movzx esi, cl
cmp rax, rsi
mov byte [rbp + 0x66c], cl
jae 0x14009d18f
lea rcx, [rbp + 0x3a8]
mov rdx, r13
mov r8, rsi
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009d193
test cl, cl
je 0x14009d1aa
lea rcx, [r12 + r13]
mov dl, 0xc
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 0xc]
mov qword [rbp + 0x3c0], 0xc
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 0xc]
movzx r8d, cl
cmp rax, r8
mov qword [rbp + 0x5c8], r8
mov byte [rbp + 0x670], cl
jae 0x14009d216
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009d21a
test cl, cl
je 0x14009d244
lea rcx, [r12 + r13]
mov dl, 0xd
mov r14, r15
mov r15, rsi
mov rsi, qword [rbp + 0x5c8]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r13, rsi
mov rsi, r15
mov r15, r14
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 0xd]
mov qword [rbp + 0x3c0], 0xd
mov qword [rbp + 0x3c8], rcx
movzx ecx, byte [r15 + 0xd]
movzx r14d, cl
cmp rax, r14
mov byte [rbp + 0x674], cl
jae 0x14009d2ac
lea rcx, [rbp + 0x3a8]
mov rdx, r13
mov r8, r14
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009d2b3
mov rdx, r12
test cl, cl
je 0x14009d2ca
lea rcx, [r12 + r13]
mov dl, 0xe
mov r8, r14
call sub.VCRUNTIME140.dll_memset
add r13, r14
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 0xe]
mov qword [rbp + 0x3c0], 0xe
mov qword [rbp + 0x3c8], rcx
movzx r10d, byte [r15 + 0xe]
movzx r8d, r10b
cmp rax, r8
mov rcx, r8
mov qword [rbp + 0x640], r8
mov byte [rbp + 0x69e], r10b
jae 0x14009d33a
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.1400db3d0
mov r13, qword [rbp + 0x3b8]
mov rdi, qword [rbp + 0x3a8]
mov r12, qword [rbp + 0x3b0]
jmp 0x14009d345
mov r9, rdi
mov rdx, r12
test r10b, r10b
je 0x14009d37d
lea rcx, [r12 + r13]
mov dl, 0xf
mov qword [rbp + 0x6a8], r15
mov r15, rsi
mov rsi, r14
mov r14, qword [rbp + 0x640]
mov r8, r14
call sub.VCRUNTIME140.dll_memset
add r13, r14
mov r14, rsi
mov rsi, r15
mov r15, qword [rbp + 0x6a8]
mov rax, rdi
sub rax, r13
mov qword [rbp + 0x630], rdi
mov qword [rbp + 0x3a8], rdi
mov qword [rbp + 0x678], r12
mov qword [rbp + 0x3b0], r12
mov qword [rbp + 0x3b8], r13
lea rcx, [r15 + 0xf]
mov qword [rbp + 0x3c0], 0xf
mov qword [rbp + 0x3c8], rcx
movzx r12d, byte [r15 + 0xf]
movzx r15d, r12b
cmp rax, r15
mov qword [rbp + 0x5d0], rsi
mov qword [rbp + 0x620], r14
jae 0x14009d410
lea rcx, [rbp + 0x3a8]
mov rdx, r13
mov r8, r15
call fcn.1400db3d0
mov rdi, qword [rbp + 0x618]
mov r13, qword [rbp + 0x3b8]
mov rax, qword [rbp + 0x3a8]
mov qword [rbp + 0x630], rax
mov rax, qword [rbp + 0x3b0]
mov qword [rbp + 0x678], rax
jmp 0x14009d41c
mov rdi, qword [rbp + 0x618]
test r12b, r12b
je 0x14009d434
mov rax, qword [rbp + 0x678]
lea rcx, [rax + r13]
mov dl, 0x10
mov r8, r15
call sub.VCRUNTIME140.dll_memset
add r13, r15
mov byte [rbp + 0x69f], r12b
test r13, r13
mov qword [rbp + 0x5e8], r13
mov rsi, qword [rbp + 0x5f0]
je 0x14009e0c7
mov qword [rbp + 0x3a0], r15
mov rax, r13
shr rax, 0x3e
lea r12, [r13*2]
test rax, rax
jne 0x14009e0e4
mov r15d, 2
mov edx, 2
mov rcx, r12
call fcn.14005db70
mov qword [rbp + 0x6a8], rax
test rax, rax
je 0x14009e0e7
mov rdx, qword [rbp + 0x678]
lea r15, [rdx + r13]
movzx r9d, byte [rdx]
xor eax, eax
xor r8d, r8d
nop dword [rax + rax]
movzx ecx, byte [rdx]
mov r10d, r9d
sub r10b, cl
jae 0x14009d4ff
mov r11d, ecx
sub r11b, r9b
and r11b, 7
je 0x14009d4e4
neg r11b
xor r13d, r13d
nop dword [rax]
add eax, eax
dec r13b
cmp r11b, r13b
jne 0x14009d4d0
sub r9b, r13b
mov r13, qword [rbp + 0x5e8]
mov r11d, r9d
mov r9d, ecx
cmp r10b, 0xf8
ja 0x14009d4ff
shl eax, 8
add r11b, 8
cmp r11b, cl
jb 0x14009d4f0
mov r9d, ecx
mov r10d, eax
shr r10d, cl
test r10d, r10d
jne 0x14009d680
inc rdx
mov rcx, qword [rbp + 0x6a8]
mov word [rcx + r8*2], ax
inc r8
inc eax
cmp rdx, r15
jne 0x14009d4b0
mov dword [rbp + 0x5e4], 0
mov dword [rbp + 0x5e0], 0xffffffff
mov dword [rbp + 0x5d8], 0xffffffff
mov dword [rbp + 0x5dc], 0
mov r14, qword [rbp + 0x6a0]
test r14b, r14b
movzx eax, byte [rbp + 0x65c]
mov qword [rbp + 0x5b0], r12
mov r8, qword [rbp + 0x5f8]
mov r9, qword [rbp + 0x600]
mov r10, qword [rbp + 0x608]
mov r11, qword [rbp + 0x610]
mov r12, qword [rbp + 0x5c0]
je 0x14009d5b7
lea rcx, [r14 - 1]
cmp rcx, r13
jae 0x14009e090
mov rcx, qword [rbp + 0x6a8]
movzx edx, word [rcx]
neg edx
mov dword [rbp + 0x5dc], edx
movzx ecx, word [rcx + r14*2 - 2]
mov dword [rbp + 0x5d8], ecx
test al, al
je 0x14009d606
mov rax, qword [rbp + 0x6a0]
cmp r13, rax
jbe 0x14009e0ab
lea rcx, [rsi + rax]
dec rcx
cmp rcx, r13
jae 0x14009e090
add rsi, rax
movzx edx, al
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rax*2]
sub edx, eax
mov dword [rbp + 0x5e4], edx
movzx eax, word [rcx + rsi*2 - 2]
mov dword [rbp + 0x5e0], eax
mov qword [rbp + 0x6a0], rsi
movzx eax, byte [rbp + 0x684]
mov dword [rbp + 0x65c], 0
mov dword [rbp + 0x5f0], 0xffffffff
test al, al
je 0x14009d71a
mov rsi, qword [rbp + 0x6a0]
cmp rsi, r13
jae 0x14009e0ab
lea rcx, [rsi + rdi]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rcx, rdi
add rcx, rsi
mov rdx, qword [rbp + 0x6a8]
movzx eax, word [rdx + rsi*2]
sub esi, eax
movzx edi, word [rdx + rcx*2 - 2]
mov eax, esi
mov dword [rbp + 0x618], esi
mov rsi, rcx
movzx eax, byte [rbp + 0x688]
test al, al
jne 0x14009d73b
jmp 0x14009d77b
movzx eax, byte [0x140123181]
mov ecx, 0x17
mov edx, 1
call fcn.14005db40
test rax, rax
je 0x14009e0f4
mov rdi, rax
movups xmm0, xmmword [str.bad_huffman_code_length]
movups xmmword [rax], xmm0
movabs rax, 0x6874676e656c2065
mov qword [rdi + 0xf], rax
mov r8d, 2
mov rcx, qword [rbp + 0x6a8]
mov rdx, r12
call fcn.14005db50
mov rdx, qword [rbp + 0x630]
test rdx, rdx
mov rcx, qword [rbp + 0x678]
je 0x14009d6ed
mov r8d, 1
call fcn.14005db50
mov rax, qword [rbp + 0x5b8]
mov qword [rax + 8], 0x17
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0x17
movabs rcx, 0x8000000000000000
mov qword [rax], rcx
jmp 0x14009e02e
mov edi, 0xffffffff
mov dword [rbp + 0x618], 0
movzx eax, byte [rbp + 0x688]
mov rsi, qword [rbp + 0x6a0]
test al, al
je 0x14009d77b
cmp rsi, r13
jae 0x14009e0a4
lea rcx, [rsi + r8]
dec rcx
cmp rcx, r13
jae 0x14009e090
add r8, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + r8*2 - 2]
mov dword [rbp + 0x5f0], eax
mov eax, esi
mov dword [rbp + 0x65c], esi
mov rsi, r8
movzx eax, byte [rbp + 0x68c]
mov dword [rbp + 0x5f8], 0
mov dword [rbp + 0x6a0], 0xffffffff
test al, al
je 0x14009d7f4
cmp rsi, r13
jae 0x14009e0a4
mov rax, qword [rbp + 0x648]
lea rcx, [rsi + rax]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rdx, qword [rbp + 0x648]
add rdx, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + rdx*2 - 2]
mov dword [rbp + 0x684], eax
mov eax, esi
mov dword [rbp + 0x688], esi
mov rsi, rdx
movzx eax, byte [rbp + 0x690]
test al, al
jne 0x14009d813
jmp 0x14009d853
mov dword [rbp + 0x684], 0xffffffff
mov dword [rbp + 0x688], 0
movzx eax, byte [rbp + 0x690]
test al, al
je 0x14009d853
cmp rsi, r13
jae 0x14009e0a4
lea rcx, [rsi + r9]
dec rcx
cmp rcx, r13
jae 0x14009e090
add r9, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + r9*2 - 2]
mov dword [rbp + 0x6a0], eax
mov eax, esi
mov dword [rbp + 0x5f8], esi
mov rsi, r9
movzx eax, byte [rbp + 0x694]
mov dword [rbp + 0x648], 0
mov r9d, 0xffffffff
test al, al
je 0x14009d8c8
cmp rsi, r13
jae 0x14009e0a4
mov rax, qword [rbp + 0x638]
lea rcx, [rsi + rax]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rdx, qword [rbp + 0x638]
add rdx, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + rdx*2 - 2]
mov dword [rbp + 0x68c], eax
mov eax, esi
mov dword [rbp + 0x690], esi
mov rsi, rdx
movzx eax, byte [rbp + 0x698]
test al, al
jne 0x14009d8e7
jmp 0x14009d921
mov dword [rbp + 0x68c], 0xffffffff
mov dword [rbp + 0x690], 0
movzx eax, byte [rbp + 0x698]
test al, al
je 0x14009d921
cmp rsi, r13
jae 0x14009e0a4
lea rcx, [rsi + r10]
dec rcx
cmp rcx, r13
jae 0x14009e090
add r10, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx r9d, word [rcx + r10*2 - 2]
mov eax, esi
mov dword [rbp + 0x648], esi
mov rsi, r10
movzx eax, byte [rbp + 0x660]
mov dword [rbp + 0x638], 0
mov r10d, 0xffffffff
test al, al
je 0x14009d996
cmp rsi, r13
jae 0x14009e0a4
mov rax, qword [rbp + 0x650]
lea rcx, [rsi + rax]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rdx, qword [rbp + 0x650]
add rdx, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + rdx*2 - 2]
mov dword [rbp + 0x694], eax
mov eax, esi
mov dword [rbp + 0x698], esi
mov rsi, rdx
movzx eax, byte [rbp + 0x664]
test al, al
jne 0x14009d9b5
jmp 0x14009d9ef
mov dword [rbp + 0x694], 0xffffffff
mov dword [rbp + 0x698], 0
movzx eax, byte [rbp + 0x664]
test al, al
je 0x14009d9ef
cmp rsi, r13
jae 0x14009e0a4
lea rcx, [rsi + r11]
dec rcx
cmp rcx, r13
jae 0x14009e090
add r11, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx r10d, word [rcx + r11*2 - 2]
mov eax, esi
mov dword [rbp + 0x638], esi
mov rsi, r11
movzx eax, byte [rbp + 0x668]
mov dword [rbp + 0x650], 0
mov r11d, 0xffffffff
test al, al
je 0x14009da40
cmp rsi, r13
jae 0x14009e0a4
lea rcx, [rsi + r12]
dec rcx
cmp rcx, r13
jae 0x14009e090
add r12, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx ecx, word [rcx + r12*2 - 2]
mov edx, esi
mov rsi, r12
jmp 0x14009da47
mov ecx, 0xffffffff
xor edx, edx
movzx eax, byte [rbp + 0x66c]
test al, al
mov dword [rbp + 0x5c0], ecx
mov dword [rbp + 0x660], edx
je 0x14009daa6
cmp rsi, r13
jae 0x14009e0a4
mov rax, qword [rbp + 0x5d0]
lea rcx, [rsi + rax]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rdx, qword [rbp + 0x5d0]
add rdx, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx r11d, word [rcx + rdx*2 - 2]
mov eax, esi
mov dword [rbp + 0x650], esi
mov rsi, rdx
movzx eax, byte [rbp + 0x670]
movzx ecx, byte [rbp + 0x674]
mov dword [rbp + 0x608], 0
mov dword [rbp + 0x600], 0xffffffff
test al, al
je 0x14009db20
cmp rsi, r13
jae 0x14009e0a4
mov r8d, ecx
mov rdx, qword [rbp + 0x5c8]
lea rcx, [rsi + rdx]
dec rcx
cmp rcx, r13
jae 0x14009e090
add rdx, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + rdx*2 - 2]
mov r14d, esi
mov rsi, rdx
mov ecx, r8d
test cl, cl
mov dword [rbp + 0x5c8], eax
mov dword [rbp + 0x5d0], r14d
jne 0x14009db39
jmp 0x14009db86
mov eax, 0xffffffff
xor r14d, r14d
test cl, cl
mov dword [rbp + 0x5c8], eax
mov dword [rbp + 0x5d0], r14d
je 0x14009db86
cmp rsi, r13
jae 0x14009e0a4
mov rax, qword [rbp + 0x620]
lea rcx, [rsi + rax]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rdx, qword [rbp + 0x620]
add rdx, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + rdx*2 - 2]
mov dword [rbp + 0x600], eax
mov eax, esi
mov dword [rbp + 0x608], esi
mov rsi, rdx
mov dword [rbp + 0x610], 0
mov r8d, 0xffffffff
cmp byte [rbp + 0x69e], 0
mov r12, qword [rbp + 0x678]
je 0x14009dc05
cmp rsi, r13
jae 0x14009e0a4
mov rax, qword [rbp + 0x640]
lea rcx, [rsi + rax]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rdx, qword [rbp + 0x640]
add rdx, rsi
mov rcx, qword [rbp + 0x6a8]
movzx eax, word [rcx + rsi*2]
sub esi, eax
movzx eax, word [rcx + rdx*2 - 2]
mov dword [rbp + 0x640], eax
mov eax, esi
mov dword [rbp + 0x620], esi
mov rsi, rdx
mov r12, qword [rbp + 0x678]
cmp byte [rbp + 0x69f], 0
jne 0x14009dc22
jmp 0x14009dc5c
mov dword [rbp + 0x640], 0xffffffff
mov dword [rbp + 0x620], 0
cmp byte [rbp + 0x69f], 0
je 0x14009dc5c
cmp rsi, r13
jae 0x14009e0a4
mov rax, qword [rbp + 0x3a0]
lea rcx, [rax + rsi]
dec rcx
cmp rcx, r13
jae 0x14009e090
mov rdx, qword [rbp + 0x6a8]
movzx eax, word [rdx + rsi*2]
sub esi, eax
movzx r8d, word [rdx + rcx*2]
mov eax, esi
mov dword [rbp + 0x610], esi
mov dword [rbp + 0x674], r8d
mov dword [rbp + 0x670], r11d
mov dword [rbp + 0x66c], r10d
mov dword [rbp + 0x668], r9d
mov dword [rbp + 0x664], edi
xor r14d, r14d
lea rdi, [rbp + 0x3a8]
mov r8d, 0x200
mov rcx, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rdx, r12
nop dword [rax + rax]
cmp rdx, r15
je 0x14009dd41
mov rax, r14
movzx r8d, byte [rdx]
inc rdx
inc r14
cmp r8, 8
ja 0x14009dca0
cmp rax, r13
jae 0x14009e079
mov ecx, 8
sub rcx, r8
mov r9, qword [rbp + 0x6a8]
movzx r9d, word [r9 + rax*2]
shl r9d, cl
cmp rax, qword [rbp + 0x628]
jae 0x14009e05e
movzx r9d, r9w
lea r10, [rdi + r9*2]
inc r10
xor r11d, r11d
nop word [rax + rax]
lea r12, [r9 + r11]
cmp r12, 0x100
jae 0x14009e042
lea r12, [r11 + 1]
movzx r13d, byte [rbx + rax]
mov byte [r10 + r11*2 - 1], r13b
mov byte [r10 + r11*2], r8b
mov r11, r12
shr r12, cl
test r12, r12
je 0x14009dd00
mov r12, qword [rbp + 0x678]
mov r13, qword [rbp + 0x5e8]
jmp 0x14009dca0
cmp byte [rbp + 0x720], 0
je 0x14009de11
xor eax, eax
mov word [rbp + rax*4 - 0x60], 0
mov byte [rbp + rax*4 - 0x5e], 0
mov word [rbp + rax*4 - 0x5c], 0
mov byte [rbp + rax*4 - 0x5a], 0
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
add rax, 4
cmp rax, 0x100
jne 0x14009dd50
mov edx, 0x200
xor r8d, r8d
jmp 0x14009ddba
xor edi, edi
and r9b, 0xf0
add edi, r11d
or r10b, r9b
mov word [rbp + r8*4 - 0x60], di
mov byte [rbp + r8*4 - 0x5e], r10b
inc r8
add rdx, 0xfffffffffffffffe
je 0x14009de50
movzx r9d, byte [rbp + r8*2 + 0x3a8]
mov eax, r9d
and eax, 0xf
je 0x14009ddad
movzx ecx, byte [rbp + r8*2 + 0x3a9]
lea r10d, [rcx + rax]
cmp r10b, 8
ja 0x14009ddad
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 r14d, r11d
shr r14d, cl
mov edi, 0xffffffff
mov ecx, eax
shl edi, cl
test r14d, r14d
jne 0x14009dd96
or edi, 1
jmp 0x14009dd98
xor r15d, r15d
cmp qword [rbp + 0x628], 0
je 0x14009de5f
js 0x14009e113
movzx eax, byte [0x140123181]
mov r14d, 1
mov edx, 1
mov rcx, qword [rbp + 0x628]
call fcn.14005db40
test rax, rax
je 0x14009e116
mov rdi, rax
jmp 0x14009de64
mov r15w, 1
cmp qword [rbp + 0x628], 0
jne 0x14009de1e
mov edi, 1
mov rcx, rdi
mov rdx, rbx
mov rbx, qword [rbp + 0x628]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rsi, qword [rbp + 0x5b8]
lea rcx, [rsi + 0x98]
lea rdx, [rbp + 0x3a8]
mov r8d, 0x200
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsi + 0x29a]
lea rdx, [rbp - 0x60]
mov r8d, 0x400
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi], rbx
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], rbx
mov eax, dword [rbp + 0x5dc]
mov dword [rsi + 0x18], eax
mov eax, dword [rbp + 0x5e4]
mov dword [rsi + 0x1c], eax
mov eax, dword [rbp + 0x618]
mov dword [rsi + 0x20], eax
mov eax, dword [rbp + 0x65c]
mov dword [rsi + 0x24], eax
mov eax, dword [rbp + 0x688]
mov dword [rsi + 0x28], eax
mov eax, dword [rbp + 0x5f8]
mov dword [rsi + 0x2c], eax
mov eax, dword [rbp + 0x690]
mov dword [rsi + 0x30], eax
mov eax, dword [rbp + 0x648]
mov dword [rsi + 0x34], eax
mov eax, dword [rbp + 0x698]
mov dword [rsi + 0x38], eax
mov eax, dword [rbp + 0x638]
mov dword [rsi + 0x3c], eax
mov eax, dword [rbp + 0x660]
mov dword [rsi + 0x40], eax
mov eax, dword [rbp + 0x650]
mov dword [rsi + 0x44], eax
mov eax, dword [rbp + 0x5d0]
mov dword [rsi + 0x48], eax
mov eax, dword [rbp + 0x608]
mov dword [rsi + 0x4c], eax
mov eax, dword [rbp + 0x620]
mov dword [rsi + 0x50], eax
mov eax, dword [rbp + 0x610]
mov dword [rsi + 0x54], eax
mov eax, dword [rbp + 0x5d8]
mov dword [rsi + 0x58], eax
mov eax, dword [rbp + 0x5e0]
mov dword [rsi + 0x5c], eax
mov eax, dword [rbp + 0x664]
mov dword [rsi + 0x60], eax
mov eax, dword [rbp + 0x5f0]
mov dword [rsi + 0x64], eax
mov eax, dword [rbp + 0x684]
mov dword [rsi + 0x68], eax
mov eax, dword [rbp + 0x6a0]
mov dword [rsi + 0x6c], eax
mov eax, dword [rbp + 0x68c]
mov dword [rsi + 0x70], eax
mov eax, dword [rbp + 0x668]
mov dword [rsi + 0x74], eax
mov eax, dword [rbp + 0x694]
mov dword [rsi + 0x78], eax
mov eax, dword [rbp + 0x66c]
mov dword [rsi + 0x7c], eax
mov eax, dword [rbp + 0x5c0]
mov dword [rsi + 0x80], eax
mov eax, dword [rbp + 0x670]
mov dword [rsi + 0x84], eax
mov eax, dword [rbp + 0x5c8]
mov dword [rsi + 0x88], eax
mov eax, dword [rbp + 0x600]
mov dword [rsi + 0x8c], eax
mov eax, dword [rbp + 0x640]
mov dword [rsi + 0x90], eax
mov eax, dword [rbp + 0x674]
mov dword [rsi + 0x94], eax
mov word [rsi + 0x298], r15w
mov rdx, qword [rbp + 0x630]
test rdx, rdx
je 0x14009e00e
mov r8d, 1
mov rcx, r12
call fcn.14005db50
mov r8d, 2
mov rcx, qword [rbp + 0x6a8]
mov rdx, qword [rbp + 0x5b0]
call fcn.14005db50
mov rax, qword [rbp + 0x5b8]
add rsp, 0x738
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
add r9, r11
lea r8, str.C:UsersMrChick.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.1.22_srchuffman.rsX:
mov edx, 0x100
mov rcx, r9
call fcn.1400df040
jmp 0x14009e125
lea r8, str.C:UsersMrChick.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.1.22_srchuffman.rsX:
mov rcx, rax
mov rdx, qword [rbp + 0x628]
call fcn.1400df040
jmp 0x14009e125
lea r8, str.C:UsersMrChick.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.1.22_srchuffman.rsX:
mov rcx, rax
mov rdx, r13
call fcn.1400df040
jmp 0x14009e125
lea r8, str.C:UsersMrChick.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.1.22_srchuffman.rsX:
mov rdx, r13
call fcn.1400df040
jmp 0x14009e125
mov qword [rbp + 0x6a0], rsi
lea r8, str.C:UsersMrChick.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.1.22_srchuffman.rsX:
mov rcx, qword [rbp + 0x6a0]
mov rdx, qword [rbp + 0x5e8]
call fcn.1400df040
jmp 0x14009e125
mov qword [rbp + 0x5a8], 2
lea r8, str.C:UsersMrChick.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.1.22_srchuffman.rsX:
xor ecx, ecx
xor edx, edx
call fcn.1400df040
jmp 0x14009e125
xor r15d, r15d
mov rcx, r15
mov rdx, r12
call fcn.1400ded50
jmp 0x14009e125
mov rax, qword [rbp + 0x6a8]
mov qword [rbp + 0x5a8], rax
mov ecx, 1
mov edx, 0x17
call fcn.1400ded50
jmp 0x14009e125
xor r14d, r14d
mov rcx, r14
mov rdx, qword [rbp + 0x628]
call fcn.1400ded50
ud2