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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
movaps xmmword [rsp + 0x110], xmm6
xor r15d, r15d
lea rax, [r8*8]
mov r14, rcx
mov rsi, rdx
mov rdi, r8
mov qword [rsp + 0x38], rax
mov rax, r8
shr rax, 0x3d
mov qword [rsp + 0x188], r9
setne r15b
test r8, r8
je 0x14000afd0
mov dword [rsp + 0x40], 0x69
test r15, r15
je 0x14000c10b
mov eax, dword [rsp + 0x40]
movaps xmm6, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r15d, r15d
movdqa xmm6, xmmword [0x140190d60]
nop dword [rax + rax]
mov rax, qword [rsp + 0x38]
sub rax, r15
cmp rax, 2
jbe 0x14000b3a8
mov rdx, r15
mov ecx, r15d
shr rdx, 3
and ecx, 7
lea rax, [rdx + 1]
cmp rdi, rax
jbe 0x14000b1c0
movzx eax, byte [rsi + rdx + 1]
movzx edx, byte [rsi + rdx]
shl eax, 8
or eax, edx
shr eax, cl
mov ebx, eax
and eax, 1
shr ebx, 1
mov dword [rsp + 0x78], eax
and ebx, 3
cmp ebx, 3
je 0x14000b1e2
test ebx, ebx
je 0x14000b1f8
mov rax, qword [rsp + 0x188]
mov rdx, qword [r14 + 0x10]
mov rbp, qword [rax + 8]
mov rax, qword [r14 + 8]
add rax, 0x104
cmp rax, rdx
ja 0x14000b2c0
pxor xmm0, xmm0
lea r9, [r15 + 3]
movaps xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x98], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc8], xmm0
cmp ebx, 1
je 0x14000b2f0
mov rax, qword [rsp + 0x38]
sub rax, r9
cmp rax, 0xd
jbe 0x14000b408
mov rax, r9
and r9d, 7
shr rax, 3
lea rdx, [rax + 2]
lea rcx, [rax + 1]
cmp rdi, rdx
ja 0x14000b460
xor edx, edx
cmp rdi, rax
jbe 0x14000b0c8
movzx edx, byte [rsi + rax]
cmp rdi, rcx
jbe 0x14000b0d7
movzx eax, byte [rsi + rax + 1]
shl eax, 8
or edx, eax
mov ecx, r9d
shr edx, cl
mov dword [rsp + 0x30], edx
mov ebx, edx
lea r9, [r15 + 0x11]
mov ecx, 0x4c
shr ebx, 0xa
mov qword [rsp + 0x20], r9
and ebx, 0xf
call sym.malloc
lea r12d, [rbx + 4]
mov r9, qword [rsp + 0x20]
test rax, rax
mov qword [rsp + 0x48], rax
je 0x14000c8ca
pxor xmm0, xmm0
lea eax, [r12 + r12*2]
movaps xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf8], xmm0
add rax, r9
jb 0x14000bb18
cmp qword [rsp + 0x38], rax
jb 0x14000bb18
mov eax, ebx
lea r10, [0x140190a60]
mov r11, qword [rsp + 0x48]
lea rax, [rax + rax*2]
mov rdx, r10
lea r8, [r15 + rax + 0x1d]
jmp 0x14000b18d
movzx eax, byte [rsi + r13 + 1]
movzx r13d, byte [rsi + r13]
shl eax, 8
or eax, r13d
shr eax, cl
and eax, 7
mov ecx, dword [rdx]
add r9, 3
add rdx, 4
mov dword [r11 + rcx*4], eax
cmp r9, r8
je 0x14000bbd8
mov r13, r9
mov ecx, r9d
shr r13, 3
and ecx, 7
lea rax, [r13 + 1]
cmp rdi, rax
ja 0x14000b160
xor eax, eax
cmp rdi, r13
jbe 0x14000b176
movzx eax, byte [rsi + r13]
shr eax, cl
and eax, 7
jmp 0x14000b176
cmp rdi, rdx
jbe 0x14000b1f0
movzx ebx, byte [rsi + rdx]
shr ebx, cl
mov eax, ebx
shr ebx, 1
and eax, 1
and ebx, 3
mov dword [rsp + 0x78], eax
cmp ebx, 3
jne 0x14000b033
mov dword [rsp + 0x40], 0x14
jmp 0x14000afad
mov dword [rsp + 0x78], 0
add r15, 0xa
shr r15, 3
lea rbp, [r15 + 4]
cmp rdi, rbp
jbe 0x14000b3a8
mov rcx, qword [rsp + 0x188]
movzx ebx, byte [rsi + r15 + 1]
movzx eax, byte [rsi + r15]
movzx edx, byte [rsi + r15 + 2]
mov r11d, dword [rcx + 4]
shl ebx, 8
add ebx, eax
movzx eax, byte [rsi + r15 + 3]
test r11d, r11d
jne 0x14000b24c
shl eax, 8
add eax, edx
add eax, ebx
cmp eax, 0xffff
jne 0x14000bbc0
mov rdx, qword [r14 + 8]
mov r13d, ebx
mov rax, qword [r14 + 0x10]
add rdx, r13
mov qword [r14 + 8], rdx
cmp rdx, rax
ja 0x14000b3c8
lea r12, [rbp + r13]
cmp rdi, r12
jb 0x14000b3f4
test ebx, ebx
jne 0x14000b440
lea r15, [rbp*8]
mov rax, qword [rsp + 0x188]
mov rax, qword [rax + 8]
test rax, rax
je 0x14000b2a0
cmp rax, qword [r14 + 8]
jb 0x14000c654
mov eax, dword [rsp + 0x78]
test eax, eax
je 0x14000afe0
mov dword [rsp + 0x40], 0
jmp 0x14000afad
shr rdx, 1
mov rcx, qword [r14]
lea r12, [rdx + rax]
mov rdx, r12
call sym.realloc
test rax, rax
je 0x14000b3b5
mov qword [r14 + 0x10], r12
mov qword [r14], rax
jmp 0x14000b05e
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x30], r9
call sym.generateFixedLitLenTree.constprop.0
mov r9, qword [rsp + 0x30]
test eax, eax
mov dword [rsp + 0x40], eax
je 0x14000b490
mov rbx, qword [rsp + 0x98]
mov r15, r9
xor r13d, r13d
xor ebp, ebp
mov qword [rsp + 0x30], 0
mov r12, qword [rsp + 0xa0]
xor r10d, r10d
nop word [rax + rax]
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x20], r10
call sym.free
mov rcx, qword [rsp + 0x88]
call sym.free
mov rcx, rbx
call sym.free
mov rcx, r12
call sym.free
mov rcx, qword [rsp + 0x20]
call sym.free
mov rcx, rbp
call sym.free
mov rcx, r13
call sym.free
mov rcx, qword [rsp + 0x30]
call sym.free
mov edx, dword [rsp + 0x40]
test edx, edx
je 0x14000b285
jmp 0x14000afad
mov dword [rsp + 0x40], 0x34
jmp 0x14000afad
mov dword [rsp + 0x40], 0x53
jmp 0x14000afad
shr rax, 1
mov rcx, qword [r14]
lea r12, [rax + rdx]
mov rdx, r12
call sym.realloc
test rax, rax
je 0x14000b3b5
mov qword [r14 + 0x10], r12
lea r12, [rbp + r13]
mov qword [r14], rax
cmp rdi, r12
jae 0x14000b275
mov dword [rsp + 0x40], 0x17
jmp 0x14000afad
mov dword [rsp + 0x40], 0x31
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x30], 0
mov r10, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
mov r15, r9
jmp 0x14000b340
mov rcx, qword [r14 + 8]
lea rdx, [rsi + rbp]
mov r8, r13
mov rbp, r12
sub rcx, r13
add rcx, qword [r14]
call sym.memmove
jmp 0x14000b27d
movzx edx, byte [rsi + rax + 1]
movzx ecx, byte [rsi + rax + 2]
movzx eax, byte [rsi + rax]
shl ecx, 0x10
shl edx, 8
or edx, ecx
mov ecx, r9d
or eax, edx
shr eax, cl
mov dword [rsp + 0x30], eax
mov ebx, eax
jmp 0x14000b0e2
mov ecx, pe_nt_image_headers64
call sym.malloc
mov rbx, qword [rsp + 0x98]
mov r9, qword [rsp + 0x30]
test rax, rax
mov r12, qword [rsp + 0xa0]
mov r10, rax
je 0x14000c8e8
lea rcx, [rsp + 0xb0]
mov r8d, 0x20
mov rdx, rax
movups xmmword [rax], xmm6
movups xmmword [rax + 0x10], xmm6
movups xmmword [rax + 0x20], xmm6
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x40], xmm6
movups xmmword [rax + 0x50], xmm6
movups xmmword [rax + 0x60], xmm6
movups xmmword [rax + 0x70], xmm6
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x30], rax
call sym.HuffmanTree_makeFromLengths.constprop.0
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x40], eax
call sym.free
mov rax, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x20]
mov r13, qword [rsp + 0xc8]
mov qword [rsp + 0x30], rax
mov r15, r9
mov ecx, dword [rsp + 0x40]
test ecx, ecx
jne 0x14000b421
mov qword [rsp + 0x20], r13
mov r9, qword [rsp + 0x38]
nop dword [rax + rax]
mov rdx, r15
mov r8d, r15d
shr rdx, 3
and r8d, 7
lea rax, [rdx + 4]
lea r11, [rdx + 1]
lea r10, [rdx + 2]
lea rcx, [rdx + 3]
cmp rdi, rax
jbe 0x14000b868
movzx eax, byte [rsi + rdx + 1]
movzx ecx, byte [rsi + rdx + 2]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rsi + rdx]
or eax, ecx
movzx ecx, byte [rsi + rdx + 3]
movzx edx, byte [rsi + rdx + 4]
shl ecx, 0x18
shl edx, 0x18
or eax, ecx
mov ecx, r8d
shr eax, cl
mov ecx, 8
sub ecx, r8d
shl edx, cl
or eax, edx
mov edx, eax
and edx, 0x1ff
movzx r8d, byte [rbx + rdx]
movzx edx, word [r12 + rdx*2]
mov rcx, r8
cmp r8b, 9
ja 0x14000b7d0
shr eax, cl
add r15, r8
cmp edx, 0xff
jbe 0x14000b80b
lea eax, [rdx - 0x101]
cmp eax, 0x1c
ja 0x14000b928
lea rcx, [0x140190c40]
mov r13d, dword [rcx + rax*4]
lea rcx, [0x140190bc0]
mov eax, dword [rcx + rax*4]
test eax, eax
jne 0x14000ba70
mov rdx, r15
mov r8d, r15d
shr rdx, 3
and r8d, 7
lea rax, [rdx + 4]
lea r11, [rdx + 1]
lea r10, [rdx + 2]
lea rcx, [rdx + 3]
cmp rdi, rax
jbe 0x14000b9f0
movzx eax, byte [rsi + rdx + 1]
movzx ecx, byte [rsi + rdx + 2]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [rsi + rdx]
or eax, ecx
movzx ecx, byte [rsi + rdx + 3]
movzx edx, byte [rsi + rdx + 4]
shl ecx, 0x18
shl edx, 0x18
or eax, ecx
mov ecx, r8d
shr eax, cl
mov ecx, 8
sub ecx, r8d
shl edx, cl
or eax, edx
mov rcx, qword [rsp + 0x20]
mov edx, eax
mov r11, qword [rsp + 0x30]
and edx, 0x1ff
movzx r8d, byte [rcx + rdx]
movzx edx, word [r11 + rdx*2]
mov rcx, r8
cmp r8b, 9
ja 0x14000b980
shr eax, cl
add r15, r8
cmp edx, 0x1d
ja 0x14000b9c1
mov edx, edx
lea rcx, [0x140190b40]
mov r8d, dword [rcx + rdx*4]
lea rcx, [0x140190ac0]
mov ecx, dword [rcx + rdx*4]
test ecx, ecx
je 0x14000b6c5
mov edx, ecx
add r15, rdx
mov edx, 0xffffffff
shl edx, cl
not edx
and edx, eax
add r8d, edx
mov rdx, qword [r14 + 8]
cmp rdx, r8
jb 0x14000c3e5
mov r10, rdx
lea rax, [rdx + r13]
mov rcx, qword [r14]
mov qword [r14 + 8], rax
sub r10, r8
cmp r8, r13
jae 0x14000ba40
lea rax, [rdx + r8]
mov qword [rsp + 0x48], rax
test r8, r8
je 0x14000b72a
lea r11, [rcx + r10]
add rcx, rdx
mov qword [rsp + 0x60], r9
mov rdx, r11
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x50], r8
call sym.memmove
mov rcx, qword [r14]
mov r9, qword [rsp + 0x60]
mov r10, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
movzx edx, byte [rcx + r10]
mov r11, qword [rsp + 0x48]
lea rax, [r10 + 1]
sub r10, r8
add r10, r13
mov byte [rcx + r11], dl
lea rdx, [r8 + 1]
add r8, r8
cmp r13, rdx
jbe 0x14000b76c
nop
mov rdx, qword [r14]
mov r11, rax
lea rcx, [r8 + rax]
add rax, 1
movzx r11d, byte [rdx + r11]
mov byte [rdx + rcx], r11b
cmp rax, r10
jne 0x14000b750
mov rax, qword [r14 + 8]
xor r13d, r13d
nop dword [rax + rax]
mov rdx, qword [r14 + 0x10]
mov rcx, rdx
sub rcx, rax
cmp rcx, 0x103
jbe 0x14000b8b0
cmp r9, r15
jb 0x14000b900
test rbp, rbp
je 0x14000b7a7
cmp rbp, qword [r14 + 8]
jb 0x14000c0e9
test r13d, r13d
je 0x14000b540
mov r13, qword [rsp + 0x20]
mov r10, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
jmp 0x14000b340
lea ecx, [r8 - 9]
mov r8d, 0xffffffff
shr eax, 9
shl r8d, cl
not r8d
and r8d, eax
add edx, r8d
movzx edx, dx
movzx ecx, byte [rbx + rdx]
movzx edx, word [r12 + rdx*2]
sub ecx, 9
shr eax, cl
lea r15, [r15 + rcx + 9]
cmp edx, 0xff
ja 0x14000b5d2
mov rcx, qword [r14 + 8]
mov r8, qword [r14]
lea r10, [rcx + 1]
mov qword [r14 + 8], r10
mov byte [r8 + rcx], dl
mov edx, eax
and edx, 0x1ff
movzx ecx, byte [rbx + rdx]
movzx edx, word [r12 + rdx*2]
cmp cl, 9
ja 0x14000b948
add r15, rcx
cmp edx, 0xff
ja 0x14000b5d2
mov rax, qword [r14 + 8]
mov rcx, qword [r14]
xor r13d, r13d
lea r8, [rax + 1]
mov qword [r14 + 8], r8
mov byte [rcx + rax], dl
mov rax, qword [r14 + 8]
jmp 0x14000b778
xor eax, eax
cmp rdi, rdx
jbe 0x14000b873
movzx eax, byte [rsi + rdx]
cmp rdi, r11
jbe 0x14000b885
movzx r11d, byte [rsi + rdx + 1]
shl r11d, 8
or eax, r11d
cmp rdi, r10
jbe 0x14000b897
movzx r10d, byte [rsi + rdx + 2]
shl r10d, 0x10
or eax, r10d
cmp rdi, rcx
jbe 0x14000b8a6
movzx edx, byte [rsi + rdx + 3]
shl edx, 0x18
or eax, edx
mov ecx, r8d
shr eax, cl
jmp 0x14000b5a2
add rax, 0x104
cmp rdx, rax
jae 0x14000b78f
shr rdx, 1
mov rcx, qword [r14]
mov qword [rsp + 0x50], r9
add rdx, rax
mov qword [rsp + 0x48], rdx
call sym.realloc
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
test rax, rax
je 0x14000c906
mov qword [r14 + 0x10], rdx
mov qword [r14], rax
cmp r9, r15
jae 0x14000b798
nop word [rax + rax]
mov dword [rsp + 0x40], 0x33
mov r13, qword [rsp + 0x20]
mov r10, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
jmp 0x14000b340
cmp edx, 0x100
jne 0x14000c3c3
mov rax, qword [r14 + 8]
mov r13d, 1
jmp 0x14000b778
sub ecx, 9
mov r8d, 0xffffffff
shr eax, 9
shl r8d, cl
not r8d
and r8d, eax
add edx, r8d
movzx edx, dx
movzx eax, byte [rbx + rdx]
movzx edx, word [r12 + rdx*2]
sub eax, 9
lea r15, [r15 + rax + 9]
jmp 0x14000b83b
lea ecx, [r8 - 9]
mov r10d, 0xffffffff
shr eax, 9
shl r10d, cl
mov rcx, qword [rsp + 0x20]
not r10d
and r10d, eax
add edx, r10d
movzx edx, dx
movzx ecx, byte [rcx + rdx]
sub ecx, 9
shr eax, cl
lea r15, [r15 + rcx + 9]
mov rcx, qword [rsp + 0x30]
movzx edx, word [rcx + rdx*2]
cmp edx, 0x1d
jbe 0x14000b697
cmp edx, 0x20
mov r13, qword [rsp + 0x20]
mov r10, qword [rsp + 0xb0]
sbb eax, eax
mov rbp, qword [rsp + 0xb8]
and eax, 2
add eax, 0x10
mov dword [rsp + 0x40], eax
jmp 0x14000b340
xor eax, eax
cmp rdi, rdx
jbe 0x14000b9fb
movzx eax, byte [rsi + rdx]
cmp rdi, r11
jbe 0x14000ba0d
movzx r11d, byte [rsi + rdx + 1]
shl r11d, 8
or eax, r11d
cmp rdi, r10
jbe 0x14000ba1f
movzx r10d, byte [rsi + rdx + 2]
shl r10d, 0x10
or eax, r10d
cmp rdi, rcx
jbe 0x14000ba2e
movzx edx, byte [rsi + rdx + 3]
shl edx, 0x18
or eax, edx
mov ecx, r8d
shr eax, cl
jmp 0x14000b660
test r13, r13
je 0x14000bbd0
add r10, rcx
mov r8, r13
add rcx, rdx
mov qword [rsp + 0x48], r9
mov rdx, r10
xor r13d, r13d
call sym.memmove
mov rax, qword [r14 + 8]
mov r9, qword [rsp + 0x48]
jmp 0x14000b778
mov rdx, r15
mov ecx, r15d
shr rdx, 3
and ecx, 7
lea r8, [rdx + 3]
lea r11, [rdx + 1]
lea r10, [rdx + 2]
cmp rdi, r8
jbe 0x14000bae0
movzx r8d, byte [rsi + rdx + 1]
movzx r10d, byte [rsi + rdx + 2]
shl r8d, 8
shl r10d, 0x10
or r10d, r8d
movzx r8d, byte [rsi + rdx]
movzx edx, byte [rsi + rdx + 3]
or r8d, r10d
shl edx, 0x18
or r8d, edx
shr r8d, cl
mov edx, eax
mov ecx, eax
add r15, rdx
mov edx, 0xffffffff
shl edx, cl
not edx
and edx, r8d
add r13, rdx
jmp 0x14000b5fe
xor r8d, r8d
cmp rdi, rdx
jbe 0x14000baed
movzx r8d, byte [rsi + rdx]
cmp rdi, r11
jbe 0x14000baff
movzx r11d, byte [rsi + rdx + 1]
shl r11d, 8
or r8d, r11d
cmp rdi, r10
jbe 0x14000bb0f
movzx edx, byte [rsi + rdx + 2]
shl edx, 0x10
or r8d, edx
shr r8d, cl
jmp 0x14000babb
mov qword [rsp + 0x30], 0
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x68], 0
xor r15d, r15d
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x40], 0x32
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x70], r9
call sym.free
mov rcx, qword [rsp + 0x20]
call sym.free
mov rcx, qword [rsp + 0x58]
call sym.free
mov rcx, qword [rsp + 0x50]
call sym.free
mov rcx, r15
call sym.free
mov rcx, qword [rsp + 0x60]
call sym.free
mov rcx, qword [rsp + 0x68]
call sym.free
mov r9, qword [rsp + 0x70]
mov r15, r9
jmp 0x14000b525
mov dword [rsp + 0x40], 0x15
jmp 0x14000afad
xor r13d, r13d
jmp 0x14000b778
lea eax, [rbx + 3]
lea rax, [rax + rax*2]
lea r9, [r15 + rax + 0x14]
cmp r12d, 0x13
je 0x14000bd1f
mov eax, dword [r10 + r12*4]
mov rcx, qword [rsp + 0x48]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 5]
cmp ebx, 0xe
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 6]
cmp ebx, 0xd
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 7]
cmp ebx, 0xc
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 8]
cmp ebx, 0xb
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 9]
cmp ebx, 0xa
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0xa]
cmp ebx, 9
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0xb]
cmp ebx, 8
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0xc]
cmp ebx, 7
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0xd]
cmp ebx, 6
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0xe]
cmp ebx, 5
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0xf]
cmp ebx, 4
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0x10]
cmp ebx, 3
je 0x14000bd1f
mov eax, dword [r10 + rax*4]
mov dword [rcx + rax*4], 0
lea eax, [rbx + 0x11]
cmp ebx, 2
je 0x14000bd1f
mov edx, eax
mov edx, dword [r10 + rdx*4]
mov dword [rcx + rdx*4], 0
cmp eax, 0x11
jne 0x14000bd1f
mov dword [rcx + 0x3c], 0
mov ecx, 0x4c
mov qword [rsp + 0x20], r9
call sym.malloc
mov r9, qword [rsp + 0x20]
test rax, rax
mov qword [rsp + 0xe8], rax
mov r15, rax
je 0x14000c928
mov rbx, qword [rsp + 0x48]
mov ecx, 0x4c
mov qword [rsp + 0x40], r9
movdqu xmm3, xmmword [rbx]
movdqu xmm5, xmmword [rbx + 0x10]
movdqu xmm4, xmmword [rbx + 0x20]
movups xmmword [rax], xmm3
movdqu xmm3, xmmword [rbx + 0x30]
movups xmmword [rax + 0x10], xmm5
movups xmmword [rax + 0x20], xmm4
movups xmmword [rax + 0x30], xmm3
mov rax, qword [rbx + 0x40]
movaps xmmword [rsp + 0x20], xmm3
mov qword [r15 + 0x40], rax
mov eax, dword [rbx + 0x48]
mov dword [r15 + 0x48], eax
mov rax, qword [0x140190d70]
mov qword [rsp + 0xf0], rax
call sym.malloc
mov edx, 1
mov ecx, 0x20
mov rbx, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0xe0], rax
call sym.calloc
mov edx, 1
mov ecx, 0x20
mov r12, rax
call sym.calloc
test rbx, rbx
mov r9, qword [rsp + 0x40]
mov r13, rax
je 0x14000c848
test r12, r12
je 0x14000c8a2
test rax, rax
je 0x14000c8a2
mov rax, r15
lea rcx, [r15 + 0x4c]
nop dword [rax + rax]
mov edx, dword [rax]
add rax, 4
add dword [r12 + rdx*4], 1
cmp rax, rcx
jne 0x14000be00
mov r10d, dword [r12]
mov ecx, dword [r12 + 4]
movq xmm1, qword [r12 + 4]
mov eax, dword [r12 + 8]
lea edx, [r10 + r10]
add ecx, edx
movd xmm0, edx
mov edx, dword [r12 + 0xc]
lea r8d, [rcx + rcx]
movd xmm4, ecx
movd xmm5, r8d
add eax, r8d
mov r8, qword [rsp + 0x50]
punpckldq xmm0, xmm5
lea edx, [rdx + rax*2]
movd xmm2, eax
paddd xmm0, xmm1
movq xmm1, qword [r12 + 8]
movd xmm3, edx
punpckldq xmm2, xmm3
pslld xmm0, 1
paddd xmm0, xmm1
movq xmm1, qword [r12 + 0xc]
pslld xmm0, 1
paddd xmm0, xmm1
movd xmm1, r10d
mov r10d, 0xffffffff
punpckldq xmm1, xmm4
punpcklqdq xmm1, xmm2
pslld xmm1, 1
pslld xmm0, 1
movups xmmword [r13 + 4], xmm1
movq xmm1, qword [r12 + 0x10]
paddd xmm0, xmm1
pslld xmm0, 1
pshufd xmm2, xmm0, 0xe5
movd eax, xmm2
add eax, dword [r12 + 0x18]
movq qword [r13 + 0x14], xmm0
add eax, eax
mov dword [r13 + 0x1c], eax
xor eax, eax
nop
mov ecx, dword [r15 + rax]
test ecx, ecx
je 0x14000bef6
mov edx, ecx
lea rdx, [r13 + rdx*4]
mov r11d, dword [rdx]
lea ebx, [r11 + 1]
mov dword [rdx], ebx
mov edx, r10d
shl edx, cl
not edx
and edx, r11d
mov dword [r8 + rax], edx
add rax, 4
cmp rax, 0x4c
jne 0x14000bed0
mov rcx, r12
mov qword [rsp + 0x20], r9
call sym.free
mov rcx, r13
call sym.free
lea rcx, [rsp + 0xe0]
call sym.HuffmanTree_makeTable
mov r9, qword [rsp + 0x20]
test eax, eax
mov dword [rsp + 0x40], eax
jne 0x14000c11c
mov edx, 1
mov ecx, 0x480
mov qword [rsp + 0x40], r9
call sym.calloc
mov ecx, pe_nt_image_headers64
mov edx, 1
mov r12, rax
mov qword [rsp + 0x20], rax
call sym.calloc
mov rbx, qword [rsp + 0xf8]
test r12, r12
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x58], rax
mov r11, rax
mov r9, qword [rsp + 0x40]
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rcx
mov r15, qword [rsp + 0xe8]
mov qword [rsp + 0x50], rax
je 0x14000c80c
test r11, r11
je 0x14000c80c
mov eax, dword [rsp + 0x30]
mov r13d, 0xfffffeff
mov qword [rsp + 0x40], rbp
mov rbp, rcx
mov dword [rsp + 0x30], 0
mov edx, eax
shr eax, 5
mov qword [rsp + 0x70], r15
and edx, 0x1f
and eax, 0x1f
mov qword [rsp + 0x170], r14
lea r12d, [rdx + rax + 0x102]
lea r10d, [rdx + 0x101]
sub r13d, edx
xor eax, eax
add edx, 0x102
mov dword [rsp + 0x7c], edx
jmp 0x14000c090
movzx r14d, byte [rsi + r8 + 1]
movzx edx, byte [rsi + r8 + 2]
shl r14d, 8
shl edx, 0x10
or edx, r14d
movzx r14d, byte [rsi + r8]
or r14d, edx
movzx edx, byte [rsi + r8 + 3]
shl edx, 0x18
or edx, r14d
shr edx, cl
mov r8d, edx
and r8d, 0x1ff
movzx r14d, byte [rbx + r8]
movzx r8d, word [rbp + r8*2]
mov rcx, r14
cmp r14b, 9
ja 0x14000c1e8
shr edx, cl
add r9, r14
cmp r8d, 0xf
ja 0x14000c178
cmp r10d, eax
jbe 0x14000c220
mov rcx, qword [rsp + 0x20]
mov edx, eax
mov dword [rcx + rdx*4], r8d
add eax, 1
cmp qword [rsp + 0x38], r9
jb 0x14000c5fa
cmp eax, r12d
jae 0x14000c661
mov r8, r9
mov ecx, r9d
shr r8, 3
and ecx, 7
lea rdx, [r8 + 3]
lea r15, [r8 + 1]
lea r14, [r8 + 2]
cmp rdi, rdx
ja 0x14000c008
xor edx, edx
cmp rdi, r8
jbe 0x14000c0be
movzx edx, byte [rsi + r8]
cmp rdi, r15
jbe 0x14000c0d0
movzx r15d, byte [rsi + r8 + 1]
shl r15d, 8
or edx, r15d
cmp rdi, r14
jbe 0x14000c0e2
movzx r8d, byte [rsi + r8 + 2]
shl r8d, 0x10
or edx, r8d
shr edx, cl
jmp 0x14000c034
mov dword [rsp + 0x40], 0x6d
mov r13, qword [rsp + 0x20]
mov r10, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
jmp 0x14000b340
cmp qword [rsp + 0x38], 0xffffffffffffffbf
ja 0x14000afad
jmp 0x14000afd3
mov rax, qword [rsp + 0xe0]
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x30], 0
mov r15, qword [rsp + 0xe8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x68], rax
jmp 0x14000bb61
cmp r8d, 0x10
je 0x14000c407
cmp r8d, 0x11
je 0x14000c22e
cmp r8d, 0x12
jne 0x14000c740
mov r15, qword [rsp + 0x20]
mov ecx, eax
and edx, 0x7f
add r9, 7
lea edx, [rax + rdx + 0xb]
lea rcx, [r15 + rcx*4]
jmp 0x14000c1ce
mov dword [rcx], 0
add eax, 1
cmp edx, eax
je 0x14000c07c
add rcx, 4
cmp eax, r12d
jae 0x14000c3b6
cmp r10d, eax
ja 0x14000c1b0
lea r8d, [r13 + rax]
mov dword [r11 + r8*4], 0
jmp 0x14000c1b6
lea ecx, [r14 - 9]
mov r15d, 0xffffffff
shr edx, 9
shl r15d, cl
mov ecx, r15d
not ecx
and ecx, edx
add r8d, ecx
movzx r8d, r8w
movzx ecx, byte [rbx + r8]
movzx r8d, word [rbp + r8*2]
sub ecx, 9
shr edx, cl
lea r9, [r9 + rcx + 9]
jmp 0x14000c05b
mov edx, eax
sub edx, r10d
mov dword [r11 + rdx*4], r8d
jmp 0x14000c079
and edx, 7
add r9, 3
add edx, 3
cmp r10d, eax
ja 0x14000c4f5
mov ecx, eax
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 1]
cmp r12d, ecx
jbe 0x14000c713
cmp r10d, ecx
ja 0x14000c509
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 2]
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
ja 0x14000c51b
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 3]
cmp edx, 3
je 0x14000c5a1
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
ja 0x14000c52d
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 4]
cmp edx, 4
je 0x14000c5a1
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
ja 0x14000c53f
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 5]
cmp edx, 5
je 0x14000c5a1
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
ja 0x14000c581
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 6]
cmp edx, 6
je 0x14000c5a1
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
ja 0x14000c5a8
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 7]
cmp edx, 7
je 0x14000c5a1
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
ja 0x14000c5c8
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 8]
cmp edx, 8
je 0x14000c5a1
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
ja 0x14000c5da
sub ecx, r10d
mov dword [r11 + rcx*4], 0
lea ecx, [rax + 9]
cmp edx, 0xa
jne 0x14000c5a1
cmp r12d, ecx
jbe 0x14000c551
cmp r10d, ecx
jbe 0x14000c638
mov rdx, qword [rsp + 0x20]
mov dword [rdx + rcx*4], 0
add eax, 0xa
jmp 0x14000c07c
mov dword [rsp + 0x30], 0xf
jmp 0x14000c07c
mov dword [rsp + 0x40], 0x10
mov r13, qword [rsp + 0x20]
mov r10, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
jmp 0x14000b340
mov dword [rsp + 0x40], 0x34
mov r13, qword [rsp + 0x20]
mov r10, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
jmp 0x14000b340
test eax, eax
je 0x14000c7dc
and edx, 3
add r9, 2
lea r8d, [rdx + 3]
cmp dword [rsp + 0x7c], eax
jbe 0x14000c570
mov rcx, qword [rsp + 0x20]
lea edx, [rax - 1]
mov ecx, dword [rcx + rdx*4]
cmp r10d, eax
ja 0x14000c560
mov edx, eax
sub edx, r10d
mov dword [r11 + rdx*4], ecx
lea edx, [rax + 1]
cmp edx, r12d
jae 0x14000c770
cmp edx, r10d
jb 0x14000c593
sub edx, r10d
mov dword [r11 + rdx*4], ecx
lea edx, [rax + 2]
cmp r12d, edx
jbe 0x14000c6b0
cmp r10d, edx
ja 0x14000c5ba
sub edx, r10d
mov dword [r11 + rdx*4], ecx
lea edx, [rax + 3]
cmp r8d, 3
je 0x14000c70c
cmp r12d, edx
jbe 0x14000c6b0
cmp r10d, edx
ja 0x14000c5ec
sub edx, r10d
mov dword [r11 + rdx*4], ecx
lea edx, [rax + 4]
cmp r8d, 4
je 0x14000c70c
cmp r12d, edx
jbe 0x14000c6b0
cmp r10d, edx
ja 0x14000c62a
sub edx, r10d
mov dword [r11 + rdx*4], ecx
lea edx, [rax + 5]
cmp r8d, 6
jne 0x14000c70c
cmp r12d, edx
jbe 0x14000c6b0
cmp r10d, edx
jbe 0x14000c648
mov r15, qword [rsp + 0x20]
mov dword [r15 + rdx*4], ecx
add eax, 6
jmp 0x14000c07c
mov r15, qword [rsp + 0x20]
mov ecx, eax
mov dword [r15 + rcx*4], 0
jmp 0x14000c24e
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c26e
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c28e
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c2b7
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c2e0
mov dword [rsp + 0x30], 0xe
mov eax, ecx
jmp 0x14000c07c
mov r15, qword [rsp + 0x20]
mov edx, eax
mov dword [r15 + rdx*4], ecx
jmp 0x14000c441
mov edx, eax
sub edx, r10d
sub edx, 1
mov ecx, dword [r11 + rdx*4]
jmp 0x14000c42f
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c309
mov r15, qword [rsp + 0x20]
mov dword [r15 + rdx*4], ecx
jmp 0x14000c45d
mov eax, ecx
jmp 0x14000c07c
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c332
mov r15, qword [rsp + 0x20]
mov dword [r15 + rdx*4], ecx
jmp 0x14000c479
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c35b
mov r15, qword [rsp + 0x20]
mov dword [r15 + rcx*4], 0
jmp 0x14000c384
mov r15, qword [rsp + 0x20]
mov dword [r15 + rdx*4], ecx
jmp 0x14000c49f
mov rbp, qword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x170]
mov dword [rsp + 0x40], 0x32
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x30], 0
jmp 0x14000bb61
mov r15, qword [rsp + 0x20]
mov dword [r15 + rdx*4], ecx
jmp 0x14000c4c5
sub ecx, r10d
mov dword [r11 + rcx*4], 0
jmp 0x14000c3ae
sub edx, r10d
mov dword [r11 + rdx*4], ecx
jmp 0x14000c4ed
mov dword [rsp + 0x40], 0x6d
jmp 0x14000afad
mov rbp, qword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x170]
mov r10d, dword [rsp + 0x30]
test r10d, r10d
jne 0x14000c82a
mov rax, qword [rsp + 0x20]
mov r8d, dword [rax + 0x400]
test r8d, r8d
jne 0x14000c6bf
mov dword [rsp + 0x40], 0x40
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x30], 0
jmp 0x14000bb61
mov dword [rsp + 0x30], 0xd
mov eax, edx
jmp 0x14000c07c
lea rcx, [rsp + 0x80]
mov r8d, 0x120
mov rdx, rax
mov qword [rsp + 0x30], r9
call sym.HuffmanTree_makeFromLengths.constprop.0
mov r9, qword [rsp + 0x30]
test eax, eax
mov dword [rsp + 0x40], eax
je 0x14000c78c
mov qword [rsp + 0x30], 0
mov rbx, qword [rsp + 0x98]
xor r13d, r13d
mov r12, qword [rsp + 0xa0]
jmp 0x14000bb61
mov eax, edx
jmp 0x14000c07c
mov dword [rsp + 0x30], 0xe
mov rbp, qword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x170]
cmp qword [rsp + 0x38], r9
jae 0x14000c673
jmp 0x14000c60c
mov rbp, qword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
xor r13d, r13d
xor r12d, r12d
mov qword [rsp + 0x30], 0
mov r14, qword [rsp + 0x170]
xor ebx, ebx
mov dword [rsp + 0x40], 0x10
jmp 0x14000bb61
mov dword [rsp + 0x30], 0xd
mov rbp, qword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x170]
jmp 0x14000c72d
mov rdx, qword [rsp + 0x58]
mov r8d, 0x20
mov qword [rsp + 0x70], r9
lea rcx, [rsp + 0xb0]
call sym.HuffmanTree_makeFromLengths.constprop.0
mov rbx, qword [rsp + 0x98]
mov r9, qword [rsp + 0x70]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xa0]
mov r13, qword [rsp + 0xc8]
mov qword [rsp + 0x30], rax
jmp 0x14000bb61
mov rbp, qword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
xor r13d, r13d
xor r12d, r12d
mov qword [rsp + 0x30], 0
mov r14, qword [rsp + 0x170]
xor ebx, ebx
mov dword [rsp + 0x40], 0x36
jmp 0x14000bb61
mov dword [rsp + 0x40], 0x53
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x30], 0
jmp 0x14000bb61
mov eax, dword [rsp + 0x30]
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x40], eax
jmp 0x14000bb61
mov rcx, r12
mov qword [rsp + 0x70], r9
xor r12d, r12d
call sym.free
mov rcx, r13
xor r13d, r13d
call sym.free
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x68], 0
mov r9, qword [rsp + 0x70]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x40], 0x53
jmp 0x14000bb61
mov rcx, r12
mov qword [rsp + 0x70], r9
xor r12d, r12d
xor ebx, ebx
call sym.free
mov rcx, r13
xor r13d, r13d
call sym.free
mov qword [rsp + 0x30], 0
jmp 0x14000c86c
mov dword [rsp + 0x40], 0x53
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x30], 0
jmp 0x14000b421
mov dword [rsp + 0x40], 0x53
xor r13d, r13d
xor ebp, ebp
mov r15, r9
mov qword [rsp + 0x30], 0
jmp 0x14000b340
mov dword [rsp + 0x40], 0x53
mov r13, qword [rsp + 0x20]
mov r10, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
jmp 0x14000b340
mov qword [rsp + 0x30], 0
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x40], 0x53
jmp 0x14000bb61