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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb08
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0xf0], r8
mov r13, rdx
mov rsi, rcx
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x118], xmm0
mov qword [rsp + 0x128], rdx
movzx r12d, byte [rdx]
test r12, r12
jne 0x14003bb2e
xor ebp, ebp
mov r14d, 1
xor r15d, r15d
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rax, [r13 + 1]
mov qword [rsp + 0x120], 1
mov qword [rsp + 0x128], rax
movzx ecx, byte [r13 + 1]
movzx edx, cl
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x68], rdx
cmp rax, rdx
mov byte [rsp + 0x5c], cl
jb 0x14003bb6e
test cl, cl
je 0x14003a6ee
lea rcx, [r14 + r15]
mov dl, 2
mov rdi, qword [rsp + 0x68]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r15, rdi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 2]
mov qword [rsp + 0x120], 2
mov qword [rsp + 0x128], rcx
movzx ecx, byte [r13 + 2]
movzx edx, cl
mov qword [rsp + 0xa8], rdx
cmp rax, rdx
mov qword [rsp + 0xe0], rsi
mov byte [rsp + 0x58], cl
jb 0x14003bba0
test cl, cl
je 0x14003a766
lea rcx, [r14 + r15]
mov dl, 3
mov rsi, qword [rsp + 0xa8]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r15, rsi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 3]
mov qword [rsp + 0x120], 3
mov qword [rsp + 0x128], rcx
movzx edi, byte [r13 + 3]
movzx edx, dil
mov rcx, rdx
mov qword [rsp + 0x98], rdx
cmp rax, rdx
jb 0x14003bbd5
test dil, dil
je 0x14003a7d7
lea rcx, [r14 + r15]
mov dl, 4
mov rbx, qword [rsp + 0x98]
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
add r15, rbx
mov rax, rbp
sub rax, r15
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 4]
mov qword [rsp + 0x120], 4
mov qword [rsp + 0x128], rcx
movzx ecx, byte [r13 + 4]
movzx edi, cl
cmp rax, rdi
mov byte [rsp + 0x54], cl
jb 0x14003bc0a
test cl, cl
je 0x14003a83c
lea rcx, [r14 + r15]
mov dl, 5
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r15, rdi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 5]
mov qword [rsp + 0x120], 5
mov qword [rsp + 0x128], rcx
movzx r8d, byte [r13 + 5]
movzx edx, r8b
mov rcx, rdx
mov qword [rsp + 0x90], rdx
cmp rax, rdx
mov byte [rsp + 0x30], r8b
jb 0x14003bc3a
test r8b, r8b
je 0x14003a8b2
lea rcx, [r14 + r15]
mov dl, 6
mov rsi, qword [rsp + 0x90]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r15, rsi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 6]
mov qword [rsp + 0x120], 6
mov qword [rsp + 0x128], rcx
movzx ecx, byte [r13 + 6]
movzx esi, cl
cmp rax, rsi
mov byte [rsp + 0x40], cl
jb 0x14003bc6f
test cl, cl
je 0x14003a912
lea rcx, [r14 + r15]
mov dl, 7
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r15, rsi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 7]
mov qword [rsp + 0x120], 7
mov qword [rsp + 0x128], rcx
movzx r8d, byte [r13 + 7]
movzx edx, r8b
mov rcx, rdx
mov qword [rsp + 0x88], rdx
cmp rax, rdx
mov byte [rsp + 0x4c], r8b
jb 0x14003bc9f
test r8b, r8b
je 0x14003a990
lea rcx, [r14 + r15]
mov dl, 8
mov rdi, qword [rsp + 0x88]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r15, rdi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 8]
mov qword [rsp + 0x120], 8
mov qword [rsp + 0x128], rcx
movzx ecx, byte [r13 + 8]
movzx edi, cl
cmp rax, rdi
mov byte [rsp + 0x3c], cl
jb 0x14003bcd4
test cl, cl
je 0x14003a9f0
lea rcx, [r14 + r15]
mov dl, 9
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r15, rdi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 9]
mov qword [rsp + 0x120], 9
mov qword [rsp + 0x128], rcx
movzx r8d, byte [r13 + 9]
movzx edx, r8b
mov rcx, rdx
mov qword [rsp + 0x80], rdx
cmp rax, rdx
mov byte [rsp + 0x2c], r8b
jb 0x14003bd04
test r8b, r8b
je 0x14003aa66
lea rcx, [r14 + r15]
mov dl, 0xa
mov rbx, qword [rsp + 0x80]
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
add r15, rbx
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 0xa]
mov qword [rsp + 0x120], 0xa
mov qword [rsp + 0x128], rcx
movzx ecx, byte [r13 + 0xa]
movzx ebx, cl
cmp rax, rbx
mov byte [rsp + 0x38], cl
jb 0x14003bd39
test cl, cl
je 0x14003aac6
lea rcx, [r14 + r15]
mov dl, 0xb
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
add r15, rbx
mov rax, rbp
sub rax, r15
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 0xb]
mov qword [rsp + 0x120], 0xb
mov qword [rsp + 0x128], rcx
movzx r8d, byte [r13 + 0xb]
movzx edx, r8b
mov rcx, rdx
mov qword [rsp + 0x78], rdx
cmp rax, rdx
mov byte [rsp + 0x28], r8b
jb 0x14003bd69
test r8b, r8b
je 0x14003ab3e
lea rcx, [r14 + r15]
mov dl, 0xc
mov rsi, qword [rsp + 0x78]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r15, rsi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 0xc]
mov qword [rsp + 0x120], 0xc
mov qword [rsp + 0x128], rcx
movzx ecx, byte [r13 + 0xc]
movzx esi, cl
cmp rax, rsi
mov byte [rsp + 0x34], cl
jb 0x14003bd9b
test cl, cl
je 0x14003ab9e
lea rcx, [r14 + r15]
mov dl, 0xd
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r15, rsi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 0xd]
mov qword [rsp + 0x120], 0xd
mov qword [rsp + 0x128], rcx
movzx r8d, byte [r13 + 0xd]
movzx edx, r8b
mov rcx, rdx
mov qword [rsp + 0x60], rdx
cmp rax, rdx
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xb0], rsi
mov byte [rsp + 0x48], r8b
jb 0x14003bdcb
test r8b, r8b
je 0x14003ac1e
lea rcx, [r14 + r15]
mov dl, 0xe
mov rsi, qword [rsp + 0x60]
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
add r15, rsi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0xc0], rdi
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 0xe]
mov qword [rsp + 0x120], 0xe
mov qword [rsp + 0x128], rcx
movzx r8d, byte [r13 + 0xe]
movzx edx, r8b
mov rcx, rdx
mov qword [rsp + 0x70], rdx
cmp rax, rdx
mov byte [rsp + 0x44], r8b
jb 0x14003bdfd
mov rsi, qword [rsp + 0x68]
test r8b, r8b
je 0x14003aca3
lea rcx, [r14 + r15]
mov dl, 0xf
mov rdi, qword [rsp + 0x70]
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r15, rdi
mov rax, rbp
sub rax, r15
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r15
lea rcx, [r13 + 0xf]
mov qword [rsp + 0x120], 0xf
mov qword [rsp + 0x128], rcx
movzx r13d, byte [r13 + 0xf]
movzx edi, r13b
cmp rax, rdi
jb 0x14003be34
test r13b, r13b
je 0x14003acfb
lea rcx, [r14 + r15]
mov dl, 0x10
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add r15, rdi
test r15, r15
je 0x14003bed1
mov byte [rsp + 0xa4], r13b
mov qword [rsp + 0x68], rbp
mov rax, r15
shr rax, 0x3e
jne 0x14003becc
lea rbp, [r15 + r15]
mov ecx, 8
mov rdx, rbp
call fcn.1400a8e60
test rax, rax
je 0x14003bee1
mov r13, rax
lea rbp, [r14 + r15]
movzx r9d, byte [r14]
xor eax, eax
mov rdx, r14
xor r8d, r8d
nop dword [rax + rax]
movzx ecx, byte [rdx]
mov r10d, ecx
sub r10b, r9b
jbe 0x14003adaf
and r10b, 7
je 0x14003ad82
neg r10b
xor r11d, r11d
nop word [rax + rax]
add eax, eax
dec r11b
cmp r10b, r11b
jne 0x14003ad70
mov r10d, r9d
sub r10b, r11b
jmp 0x14003ad85
mov r10d, r9d
not r9b
add r9b, cl
cmp r9b, 7
mov r9d, ecx
jb 0x14003adaf
nop word cs:[rax + rax]
shl eax, 8
add r10b, 8
cmp r10b, cl
jb 0x14003ada0
mov r9d, ecx
mov r10d, eax
shr r10d, cl
test r10d, r10d
jne 0x14003adf2
inc rdx
mov word [r13 + r8*2], ax
inc r8
inc eax
cmp rdx, rbp
jne 0x14003ad50
movabs rax, 0x8000000000000000
cmp r15, rax
jne 0x14003ae85
mov rdi, r13
mov rsi, qword [rsp + 0xe0]
mov rax, qword [rsp + 0x68]
jmp 0x14003ae67
movzx eax, byte [0x14019b098]
mov edi, 0x17
mov edx, 0x17
xor ecx, ecx
call fcn.1400a8e60
test rax, rax
je 0x14003beee
mov r15, rax
movups xmm0, xmmword [str.bad_huffman_code_length]
movups xmmword [rax], xmm0
movabs rax, 0x6874676e656c2065
mov qword [r15 + 0xf], rax
mov rcx, qword [0x14019b1c8]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x68], 0
mov rsi, qword [rsp + 0xe0]
je 0x14003ae62
mov rcx, qword [0x14019b1c8]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 0x17
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], rax
movabs rax, 0x8000000000000000
mov qword [rsi], rax
jmp 0x14003bb19
xor eax, eax
mov qword [rsp + 0x100], rax
mov r10d, 0xffffffff
test r12b, r12b
je 0x14003af36
lea rcx, [r12 - 1]
cmp rcx, r15
jae 0x14003be76
movzx r11d, word [r13]
neg r11d
movzx r9d, word [r13 + r12*2 - 2]
cmp byte [rsp + 0x5c], 0
movzx edx, byte [rsp + 0x58]
movzx eax, byte [rsp + 0x54]
jne 0x14003af57
mov dword [rsp + 0x5c], 0
mov r8d, 0xffffffff
test dl, dl
je 0x14003afa9
cmp r12, r15
jae 0x14003be85
lea rcx, [r12 + rbx]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov edx, eax
add rbx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rbx*2 - 2]
mov dword [rsp + 0x58], eax
mov eax, r12d
mov dword [rsp + 0xdc], r12d
mov r12, rbx
mov eax, edx
cmp byte [rsp + 0x50], 0
jne 0x14003afc3
jmp 0x14003b00d
mov r9d, 0xffffffff
xor r11d, r11d
xor r12d, r12d
cmp byte [rsp + 0x5c], 0
movzx edx, byte [rsp + 0x58]
movzx eax, byte [rsp + 0x54]
je 0x14003aecf
cmp r12, r15
jae 0x14003be85
lea rcx, [r12 + rsi]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov r8d, eax
add rsi, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx r10d, word [r13 + rsi*2 - 2]
mov qword [rsp + 0x100], r12
mov r12, rsi
mov eax, r8d
mov dword [rsp + 0x5c], 0
mov r8d, 0xffffffff
test dl, dl
jne 0x14003aee5
mov dword [rsp + 0x58], 0xffffffff
mov dword [rsp + 0xdc], 0
cmp byte [rsp + 0x50], 0
je 0x14003b00d
cmp r12, r15
jae 0x14003be85
mov edx, eax
mov rax, qword [rsp + 0x98]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0x98]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx r8d, word [r13 + rcx*2 - 2]
mov eax, r12d
mov dword [rsp + 0x5c], r12d
mov r12, rcx
mov eax, edx
movzx ecx, byte [rsp + 0x30]
mov dword [rsp + 0x98], 0
mov dword [rsp + 0xa8], 0xffffffff
test al, al
je 0x14003b081
cmp r12, r15
jae 0x14003be85
mov rax, qword [rsp + 0xd0]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0xd0]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0x54], eax
mov eax, r12d
mov dword [rsp + 0x50], r12d
mov r12, rcx
movzx ecx, byte [rsp + 0x30]
test cl, cl
jne 0x14003b095
jmp 0x14003b0e5
mov dword [rsp + 0x54], 0xffffffff
mov dword [rsp + 0x50], 0
test cl, cl
je 0x14003b0e5
cmp r12, r15
jae 0x14003be85
mov rax, qword [rsp + 0x90]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0x90]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0xa8], eax
mov eax, r12d
mov dword [rsp + 0x98], r12d
mov r12, rcx
movzx eax, byte [rsp + 0x40]
movzx ecx, byte [rsp + 0x3c]
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x90], 0xffffffff
test al, al
je 0x14003b160
cmp r12, r15
jae 0x14003be85
mov edx, ecx
mov rax, qword [rsp + 0xc8]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0xc8]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0xc8], eax
mov eax, r12d
mov dword [rsp + 0x40], r12d
mov r12, rcx
mov ecx, edx
cmp byte [rsp + 0x4c], 0
jne 0x14003b17a
jmp 0x14003b1cb
mov dword [rsp + 0xc8], 0xffffffff
mov dword [rsp + 0x40], 0
cmp byte [rsp + 0x4c], 0
je 0x14003b1cb
cmp r12, r15
jae 0x14003be85
mov edx, ecx
mov rax, qword [rsp + 0x88]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0x88]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0x90], eax
mov eax, r12d
mov dword [rsp + 0x30], r12d
mov r12, rcx
mov ecx, edx
movzx eax, byte [rsp + 0x2c]
mov dword [rsp + 0xd0], 0
mov dword [rsp + 0x88], 0xffffffff
test cl, cl
je 0x14003b247
cmp r12, r15
jae 0x14003be85
mov rax, qword [rsp + 0xc0]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0xc0]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0xc0], eax
mov eax, r12d
mov dword [rsp + 0x3c], r12d
mov r12, rcx
movzx eax, byte [rsp + 0x2c]
movzx ecx, byte [rsp + 0x38]
test al, al
jne 0x14003b263
jmp 0x14003b2b7
mov dword [rsp + 0xc0], 0xffffffff
mov dword [rsp + 0x3c], 0
movzx ecx, byte [rsp + 0x38]
test al, al
je 0x14003b2b7
cmp r12, r15
jae 0x14003be85
mov edx, ecx
mov rax, qword [rsp + 0x80]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0x80]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0x88], eax
mov eax, r12d
mov dword [rsp + 0xd0], r12d
mov r12, rcx
mov ecx, edx
movzx eax, byte [rsp + 0x28]
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x80], 0xffffffff
test cl, cl
je 0x14003b421
cmp r12, r15
jae 0x14003be85
mov rax, qword [rsp + 0xb8]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0xb8]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0xb8], eax
mov eax, r12d
mov dword [rsp + 0x4c], r12d
mov r12, rcx
movzx eax, byte [rsp + 0x28]
movzx ecx, byte [rsp + 0x34]
test al, al
jne 0x14003b441
mov dword [rsp + 0x78], 0
mov edx, 0xffffffff
test cl, cl
je 0x14003b4a1
cmp r12, r15
jae 0x14003be85
mov rax, qword [rsp + 0xb0]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0xb0]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0xb0], eax
mov eax, r12d
mov dword [rsp + 0x38], r12d
mov r12, rcx
movzx eax, byte [rsp + 0x48]
test al, al
jne 0x14003b4c1
movzx eax, byte [rsp + 0x44]
test al, al
je 0x14003b50e
cmp r12, r15
jae 0x14003be85
mov rax, qword [rsp + 0x70]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x60], 0xffffffff
mov rcx, qword [rsp + 0x70]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0x70], eax
mov eax, r12d
mov dword [rsp + 0x34], r12d
mov r12, rcx
cmp byte [rsp + 0xa4], 0
mov rbx, qword [rsp + 0xe8]
jne 0x14003b540
jmp 0x14003b577
mov dword [rsp + 0xb8], 0xffffffff
mov dword [rsp + 0x4c], 0
movzx ecx, byte [rsp + 0x34]
test al, al
je 0x14003b336
cmp r12, r15
jae 0x14003be85
mov edx, ecx
mov rax, qword [rsp + 0x78]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0x78]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rcx*2 - 2]
mov dword [rsp + 0x80], eax
mov eax, r12d
mov dword [rsp + 0x2c], r12d
mov r12, rcx
mov ecx, edx
mov dword [rsp + 0x78], 0
mov edx, 0xffffffff
test cl, cl
jne 0x14003b34b
mov dword [rsp + 0xb0], 0xffffffff
mov dword [rsp + 0x38], 0
movzx eax, byte [rsp + 0x48]
test al, al
je 0x14003b3a5
cmp r12, r15
jae 0x14003be85
mov rax, qword [rsp + 0x60]
lea rcx, [r12 + rax]
dec rcx
cmp rcx, r15
jae 0x14003be76
mov rcx, qword [rsp + 0x60]
add rcx, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx edx, word [r13 + rcx*2 - 2]
mov eax, r12d
mov dword [rsp + 0x78], r12d
mov r12, rcx
movzx eax, byte [rsp + 0x44]
test al, al
jne 0x14003b3b2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x60], 0xffffffff
mov dword [rsp + 0x70], 0xffffffff
mov dword [rsp + 0x34], 0
cmp byte [rsp + 0xa4], 0
mov rbx, qword [rsp + 0xe8]
je 0x14003b577
cmp r12, r15
jae 0x14003be85
lea rcx, [r12 + rdi]
dec rcx
cmp rcx, r15
jae 0x14003be76
add rdi, r12
movzx eax, word [r13 + r12*2]
sub r12d, eax
movzx eax, word [r13 + rdi*2 - 2]
mov dword [rsp + 0x60], eax
mov eax, r12d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0xf8], edx
mov dword [rsp + 0xfc], r8d
mov dword [rsp + 0xa4], r11d
mov dword [rsp + 0x44], r10d
mov dword [rsp + 0x48], r9d
lea rcx, [rsp + 0x508]
mov r8d, 0x200
xor edx, edx
call sub.VCRUNTIME140.dll_memset
xor r11d, r11d
mov r8, r14
cmp r15, rbx
jbe 0x14003b6f0
nop dword [rax]
cmp r8, rbp
je 0x14003b814
mov r9, r11
movzx r12d, byte [r8]
inc r8
inc r11
cmp r12, 8
ja 0x14003b5c0
cmp r9, r15
jae 0x14003be64
mov ecx, 8
sub rcx, r12
movzx eax, word [r13 + r9*2]
shl eax, cl
cmp r9, rbx
jae 0x14003beba
movzx r10d, ax
cmp r10d, 0x100
ja 0x14003be97
mov edx, pe_nt_image_headers64
sub rdx, r10
mov eax, 1
shl rax, cl
cmp rax, rdx
ja 0x14003beab
mov rdx, qword [rsp + 0xf0]
movzx edx, byte [rdx + r9]
mov edi, 2
shl rdi, cl
lea r9, [rsp + r10*2]
add r9, 0x508
add rdi, 0xfffffffffffffffe
mov rcx, r9
cmp rdi, 0x1e
jb 0x14003b6c7
shr rdi, 1
inc rdi
mov rsi, rdi
and rsi, 0xfffffffffffffff0
lea rcx, [r9 + rsi*2]
movzx ebx, r12b
movd xmm0, ebx
punpcklbw xmm0, xmm0
pshuflw xmm1, xmm0, 0
movzx ebx, dl
movd xmm0, ebx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
punpcklbw xmm0, xmm1
lea rbx, [rsp + 0x508]
lea r10, [rbx + r10*2]
add r10, 0x10
xor ebx, ebx
nop dword [rax]
movdqu xmmword [r10 + rbx*2 - 0x10], xmm0
movdqu xmmword [r10 + rbx*2], xmm0
add rbx, 0x10
cmp rsi, rbx
jne 0x14003b6a0
cmp rdi, rsi
mov rbx, qword [rsp + 0xe8]
je 0x14003b5c0
lea rax, [r9 + rax*2]
nop dword [rax + rax]
mov byte [rcx], dl
mov byte [rcx + 1], r12b
add rcx, 2
cmp rcx, rax
jne 0x14003b6d0
jmp 0x14003b5c0
cmp r8, rbp
je 0x14003b814
mov r9, r11
movzx r12d, byte [r8]
inc r8
inc r11
cmp r12, 8
ja 0x14003b6f0
cmp r9, r15
jae 0x14003be64
mov ecx, 8
sub rcx, r12
movzx eax, word [r13 + r9*2]
shl eax, cl
movzx r10d, ax
cmp r10d, 0x100
ja 0x14003be97
mov edx, pe_nt_image_headers64
sub rdx, r10
mov eax, 1
shl rax, cl
cmp rax, rdx
ja 0x14003beab
mov rdx, qword [rsp + 0xf0]
movzx edx, byte [rdx + r9]
mov esi, 2
shl rsi, cl
lea r9, [rsp + r10*2]
add r9, 0x508
add rsi, 0xfffffffffffffffe
mov rcx, r9
cmp rsi, 0x1e
jb 0x14003b7f7
shr rsi, 1
inc rsi
mov rdi, rsi
and rdi, 0xfffffffffffffff0
lea rcx, [r9 + rdi*2]
movzx ebx, r12b
movd xmm0, ebx
punpcklbw xmm0, xmm0
pshuflw xmm1, xmm0, 0
movzx ebx, dl
movd xmm0, ebx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
punpcklbw xmm0, xmm1
lea rbx, [rsp + 0x508]
lea r10, [rbx + r10*2]
add r10, 0x10
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmmword [r10 + rbx*2 - 0x10], xmm0
movdqu xmmword [r10 + rbx*2], xmm0
add rbx, 0x10
cmp rdi, rbx
jne 0x14003b7d0
cmp rsi, rdi
mov rbx, qword [rsp + 0xe8]
je 0x14003b6f0
lea rax, [r9 + rax*2]
nop dword [rax + rax]
mov byte [rcx], dl
mov byte [rcx + 1], r12b
add rcx, 2
cmp rcx, rax
jne 0x14003b800
jmp 0x14003b6f0
cmp byte [rsp + 0xb70], 0
je 0x14003b910
mov eax, 0xe
nop word [rax + rax]
mov word [rsp + rax + 0xfa], 0
mov byte [rsp + rax + 0xfc], 0
mov word [rsp + rax + 0xfe], 0
mov byte [rsp + rax + 0x100], 0
mov word [rsp + rax + 0x102], 0
mov byte [rsp + rax + 0x104], 0
mov word [rsp + rax + 0x106], 0
mov byte [rsp + rax + 0x108], 0
add rax, 0x10
cmp rax, 0x40e
jne 0x14003b830
xor edx, edx
jmp 0x14003b8b6
xor r11d, r11d
and r8b, 0xf0
add r11d, r10d
or r9b, r8b
mov word [rsp + rdx*4 + 0x108], r11w
mov byte [rsp + rdx*4 + 0x10a], r9b
inc rdx
cmp rdx, 0x100
je 0x14003b943
movzx r8d, byte [rsp + rdx*2 + 0x508]
mov eax, r8d
and eax, 0xf
je 0x14003b8a6
movzx ecx, byte [rsp + rdx*2 + 0x509]
lea r9d, [rcx + rax]
cmp r9b, 8
ja 0x14003b8a6
movzx ecx, cl
mov r10, rdx
shl r10, cl
movzx r10d, r10b
mov cl, 8
sub cl, al
shr r10, cl
lea ecx, [rax - 1]
and cl, 0xf
mov esi, r10d
shr esi, cl
mov r11d, 0xffffffff
mov ecx, eax
shl r11d, cl
test esi, esi
jne 0x14003b888
or r11d, 1
jmp 0x14003b88b
xor ebp, ebp
test rbx, rbx
je 0x14003b967
js 0x14003becc
movzx eax, byte [0x14019b098]
xor ecx, ecx
mov rdx, rbx
call fcn.1400a8e60
mov rdi, rax
test rax, rax
jne 0x14003b96c
mov ecx, 1
mov rdx, rbx
call fcn.1400daf80
lea rcx, [rsp + 0x708]
lea rdx, [rsp + 0x108]
mov r8d, 0x400
call sub.VCRUNTIME140.dll_memcpy
mov bp, 1
test rbx, rbx
jne 0x14003b917
mov edi, 1
mov rcx, rdi
mov rdx, qword [rsp + 0xf0]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rsi, qword [rsp + 0xe0]
lea rcx, [rsi + 0x98]
lea rdx, [rsp + 0x508]
mov r8d, 0x200
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsi + 0x29a]
lea rdx, [rsp + 0x708]
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 [rsp + 0xa4]
mov dword [rsi + 0x18], eax
mov rax, qword [rsp + 0x100]
mov dword [rsi + 0x1c], eax
mov eax, dword [rsp + 0xdc]
mov dword [rsi + 0x20], eax
mov eax, dword [rsp + 0x5c]
mov dword [rsi + 0x24], eax
mov eax, dword [rsp + 0x50]
mov dword [rsi + 0x28], eax
mov eax, dword [rsp + 0x98]
mov dword [rsi + 0x2c], eax
mov eax, dword [rsp + 0x40]
mov dword [rsi + 0x30], eax
mov eax, dword [rsp + 0x30]
mov dword [rsi + 0x34], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsi + 0x38], eax
mov eax, dword [rsp + 0xd0]
mov dword [rsi + 0x3c], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsi + 0x40], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsi + 0x44], eax
mov eax, dword [rsp + 0x38]
mov dword [rsi + 0x48], eax
mov eax, dword [rsp + 0x78]
mov dword [rsi + 0x4c], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + 0x50], eax
mov eax, dword [rsp + 0x28]
mov dword [rsi + 0x54], eax
mov eax, dword [rsp + 0x48]
mov dword [rsi + 0x58], eax
mov eax, dword [rsp + 0x44]
mov dword [rsi + 0x5c], eax
mov eax, dword [rsp + 0x58]
mov dword [rsi + 0x60], eax
mov eax, dword [rsp + 0xfc]
mov dword [rsi + 0x64], eax
mov eax, dword [rsp + 0x54]
mov dword [rsi + 0x68], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsi + 0x6c], eax
mov eax, dword [rsp + 0xc8]
mov dword [rsi + 0x70], eax
mov eax, dword [rsp + 0x90]
mov dword [rsi + 0x74], eax
mov eax, dword [rsp + 0xc0]
mov dword [rsi + 0x78], eax
mov eax, dword [rsp + 0x88]
mov dword [rsi + 0x7c], eax
mov eax, dword [rsp + 0xb8]
mov dword [rsi + 0x80], eax
mov eax, dword [rsp + 0x80]
mov dword [rsi + 0x84], eax
mov eax, dword [rsp + 0xb0]
mov dword [rsi + 0x88], eax
mov eax, dword [rsp + 0xf8]
mov dword [rsi + 0x8c], eax
mov eax, dword [rsp + 0x70]
mov dword [rsi + 0x90], eax
mov eax, dword [rsp + 0x60]
mov dword [rsi + 0x94], eax
mov word [rsi + 0x298], bp
cmp qword [rsp + 0x68], 0
je 0x14003bb07
mov rcx, qword [0x14019b1c8]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x14019b1c8]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
add rsp, 0xb08
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x108]
xor edx, edx
mov r8, r12
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
lea rcx, [r14 + r15]
mov dl, 1
mov r8, r12
call sub.VCRUNTIME140.dll_memset
add r15, r12
jmp 0x14003a67e
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x68]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a6d2
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0xa8]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a747
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x98]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a7b8
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, rdi
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a825
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x90]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a893
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, rsi
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a8fb
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x88]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a971
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, rdi
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003a9d9
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x80]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003aa47
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, rbx
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003aaaf
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x78]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003ab22
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, rsi
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003ab87
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x60]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003ac02
mov rsi, qword [rsp + 0x68]
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, qword [rsp + 0x70]
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003ac87
lea rcx, [rsp + 0x108]
mov rdx, r15
mov r8, rdi
call fcn.1400e1240
mov r15, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x108]
mov r14, qword [rsp + 0x110]
jmp 0x14003acea
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.3.1_srchuffman.rsfailed_to_decode_huffman_code
mov rcx, r9
mov rdx, r15
call fcn.1400db190
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.3.1_srchuffman.rsfailed_to_decode_huffman_code
mov rdx, r15
call fcn.1400db190
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.3.1_srchuffman.rsfailed_to_decode_huffman_code
mov rcx, r12
mov rdx, r15
call fcn.1400db190
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.3.1_srchuffman.rsfailed_to_decode_huffman_code
mov edx, pe_nt_image_headers64
mov rcx, r10
call fcn.1400db110
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.3.1_srchuffman.rsfailed_to_decode_huffman_code
mov rcx, rax
call fcn.1400db210
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.3.1_srchuffman.rsfailed_to_decode_huffman_code
mov rcx, r9
mov rdx, rbx
call fcn.1400db190
call fcn.140002630
lea r8, str.F:Compilers_Stuff.cargo_registry_srcindex.crates.io_6f17d22bba15001fjpeg_decoder_0.3.1_srchuffman.rsfailed_to_decode_huffman_code
xor ecx, ecx
xor edx, edx
call fcn.1400db190
mov ecx, 2
mov rdx, rbp
call fcn.1400daf80
mov ecx, 1
mov edx, 0x17
call fcn.1400daf80
int3