Function at 0x14008a180
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1e8
vmovdqa xmmword [rsp + 0x1d0], xmm7
vmovdqa xmmword [rsp + 0x1c0], xmm6
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov r15, rcx
mov rax, qword [0x140206880]
xor rax, rsp
mov qword [rsp + 0x1b8], rax
mov ecx, 1
mov edx, 0x4888
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
test rax, rax
je 0x14008a287
mov r11, rax
mov qword [rax], r15
lea rax, [0x14009b290]
mov qword [r11 + 0x4870], rax
lea rax, [0x14009b720]
mov qword [r11 + 0x4878], rax
lea rax, [0x14009b830]
mov qword [r11 + 0x4880], rax
mov eax, 1
xor ecx, ecx
xchg rbx, r8
cpuid
xchg rbx, r8
test edx, 0x4000000
je 0x14008a24d
lea rax, [0x14009bbe0]
mov qword [r11 + 0x4870], rax
lea rax, [0x14009c290]
mov qword [r11 + 0x4878], rax
lea rax, [0x14009c500]
mov qword [r11 + 0x4880], rax
mov rax, qword [r11]
mov dword [rax + 8], 0
cmp dword [rsp + 0x250], 5
jb 0x14008a2b0
mov eax, dword [0x140210b70]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rcx, str.bad_req_comp
mov qword [rax + 8], rcx
jmp 0x14008c807
mov eax, dword [0x140210b70]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rcx, str.outofmem
mov qword [rax + 8], rcx
xor r15d, r15d
jmp 0x14008c813
mov qword [rsp + 0xb8], r14
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xc8], rdi
mov dword [r11 + 0x4868], 0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [r11 + 0x46d8], xmm0
vmovdqu xmmword [r11 + 0x4738], xmm0
vmovdqu xmmword [r11 + 0x4798], xmm0
vmovdqu xmmword [r11 + 0x47f8], xmm0
mov rcx, r11
xor edx, edx
mov qword [rsp + 0x40], r11
call fcn.14009b130
mov r11, qword [rsp + 0x40]
test eax, eax
je 0x14008c77b
mov rcx, r11
call fcn.14009cb00
mov r11, qword [rsp + 0x40]
lea rcx, [r11 + 0x1a48]
mov qword [rsp + 0x60], rcx
lea rcx, [r11 + 8]
mov qword [rsp + 0x80], rcx
lea rcx, [r11 + 0x46a0]
mov qword [rsp + 0x88], rcx
lea r14, [r11 + 0x20b8]
lea rbx, str.bad_SOS_component_count
lea r15, str.bad_SOS_len
lea r13, str.bad_DNL_len
cmp al, 0xda
je 0x14008a398
movzx edx, al
cmp edx, 0xdc
je 0x14008a3cd
cmp edx, 0xd9
je 0x14008ba19
mov rcx, r11
call fcn.14009cc60
mov r11, qword [rsp + 0x40]
test eax, eax
jne 0x14008a3fa
jmp 0x14008bbf8
mov rcx, qword [r11]
call fcn.140095790
mov r11, qword [rsp + 0x40]
mov ebp, eax
mov rdi, qword [r11]
mov rax, qword [rdi + 0xc0]
cmp rax, qword [rdi + 0xc8]
jae 0x14008a40c
lea rcx, [rax + 1]
mov qword [rdi + 0xc0], rcx
movzx eax, byte [rax]
jmp 0x14008a473
mov rcx, qword [r11]
mov rsi, r11
call fcn.140095790
mov ebp, eax
mov rcx, qword [rsi]
call fcn.140095790
cmp ebp, 4
jne 0x14008bda8
mov rcx, qword [rsi]
cmp eax, dword [rcx + 4]
mov r11, rsi
jne 0x14008bdb3
mov rcx, r11
call fcn.14009cb00
mov r11, qword [rsp + 0x40]
jmp 0x14008a367
cmp dword [rdi + 0x30], 0
je 0x14008c042
mov r8d, dword [rdi + 0x34]
lea r12, [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
mov rdx, r12
call qword [rdi + 0x10]
mov ecx, dword [rdi + 0xc0]
sub ecx, dword [rdi + 0xd0]
add dword [rdi + 0xb8], ecx
test eax, eax
je 0x14008a44b
movsxd rcx, eax
add rcx, r12
movzx eax, byte [r12]
jmp 0x14008a45c
mov dword [rdi + 0x30], 0
lea rcx, [rdi + 0x39]
mov byte [rdi + 0x38], 0
xor eax, eax
mov qword [rdi + 0xc8], rcx
lea rcx, [rdi + 0x39]
mov qword [rdi + 0xc0], rcx
mov r11, qword [rsp + 0x40]
movzx eax, al
mov dword [r11 + 0x4854], eax
lea ecx, [rax - 5]
cmp cl, 0xfc
jb 0x14008c761
mov r13, qword [r11]
cmp dword [r13 + 8], eax
jl 0x14008c761
lea eax, [rax*2 + 6]
cmp ebp, eax
jne 0x14008bdbf
mov qword [rsp + 0x70], r14
xor r15d, r15d
mov rax, qword [r13 + 0xc0]
cmp rax, qword [r13 + 0xc8]
jae 0x14008a4d0
lea rcx, [rax + 1]
mov qword [r13 + 0xc0], rcx
movzx edi, byte [rax]
jmp 0x14008a53d
cmp dword [r13 + 0x30], 0
je 0x14008a50f
mov r8d, dword [r13 + 0x34]
lea r12, [r13 + 0x38]
mov rcx, qword [r13 + 0x28]
mov rdx, r12
call qword [r13 + 0x10]
mov ecx, dword [r13 + 0xc0]
sub ecx, dword [r13 + 0xd0]
add dword [r13 + 0xb8], ecx
test eax, eax
je 0x14008a513
cdqe
add rax, r12
movzx edi, byte [r12]
jmp 0x14008a526
xor edi, edi
jmp 0x14008a53d
mov dword [r13 + 0x30], 0
lea rax, [r13 + 0x39]
mov byte [r13 + 0x38], 0
xor edi, edi
mov r11, qword [rsp + 0x40]
mov qword [r13 + 0xc8], rax
lea rax, [r13 + 0x39]
mov qword [r13 + 0xc0], rax
mov rbx, qword [r11]
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x14008a560
lea rcx, [rax + 1]
mov qword [rbx + 0xc0], rcx
movzx eax, byte [rax]
jmp 0x14008a5c7
cmp dword [rbx + 0x30], 0
je 0x14008a59b
mov r8d, dword [rbx + 0x34]
lea r12, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, r12
call qword [rbx + 0x10]
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [rbx + 0xd0]
add dword [rbx + 0xb8], ecx
test eax, eax
je 0x14008a59f
movsxd rcx, eax
add rcx, r12
movzx eax, byte [r12]
jmp 0x14008a5b0
xor eax, eax
jmp 0x14008a5c7
mov dword [rbx + 0x30], 0
lea rcx, [rbx + 0x39]
mov byte [rbx + 0x38], 0
xor eax, eax
mov r11, qword [rsp + 0x40]
mov qword [rbx + 0xc8], rcx
lea rcx, [rbx + 0x39]
mov qword [rbx + 0xc0], rcx
mov r13, qword [r11]
mov edx, dword [r13 + 8]
test edx, edx
jle 0x14008a5f6
movzx r8d, dil
mov r9, qword [rsp + 0x88]
xor ecx, ecx
cmp dword [r9], r8d
je 0x14008a5f8
inc rcx
add r9, 0x60
cmp rdx, rcx
jne 0x14008a5e0
jmp 0x14008c77b
xor ecx, ecx
cmp ecx, edx
je 0x14008c77b
movzx eax, al
mov r8d, eax
shr r8d, 4
mov edx, ecx
lea rdx, [rdx + rdx*2]
shl rdx, 5
mov dword [r11 + rdx + 0x46b0], r8d
cmp al, 0x3f
ja 0x14008ba01
and eax, 0xf
mov dword [r11 + rdx + 0x46b4], eax
cmp eax, 3
ja 0x14008ba0d
mov dword [r11 + r15*4 + 0x4858], ecx
inc r15
movsxd rax, dword [r11 + 0x4854]
cmp r15, rax
jl 0x14008a4ad
mov rax, qword [r13 + 0xc0]
cmp rax, qword [r13 + 0xc8]
jae 0x14008a67a
lea rcx, [rax + 1]
mov qword [r13 + 0xc0], rcx
movzx eax, byte [rax]
lea rbx, str.bad_SOS
jmp 0x14008a6ef
cmp dword [r13 + 0x30], 0
lea rbx, str.bad_SOS
je 0x14008a6c1
mov r8d, dword [r13 + 0x34]
lea r12, [r13 + 0x38]
mov rcx, qword [r13 + 0x28]
mov rdx, r12
call qword [r13 + 0x10]
mov ecx, dword [r13 + 0xc0]
sub ecx, dword [r13 + 0xd0]
add dword [r13 + 0xb8], ecx
test eax, eax
je 0x14008a6c5
movsxd rcx, eax
add rcx, r12
movzx eax, byte [r12]
jmp 0x14008a6d8
xor eax, eax
jmp 0x14008a6ef
mov dword [r13 + 0x30], 0
lea rcx, [r13 + 0x39]
mov byte [r13 + 0x38], 0
xor eax, eax
mov r11, qword [rsp + 0x40]
mov qword [r13 + 0xc8], rcx
lea rcx, [r13 + 0x39]
mov qword [r13 + 0xc0], rcx
movzx eax, al
mov dword [r11 + 0x4834], eax
mov rdi, qword [r11]
mov rax, qword [rdi + 0xc0]
cmp rax, qword [rdi + 0xc8]
jae 0x14008a71c
lea rcx, [rax + 1]
mov qword [rdi + 0xc0], rcx
movzx eax, byte [rax]
jmp 0x14008a783
cmp dword [rdi + 0x30], 0
je 0x14008a757
mov r8d, dword [rdi + 0x34]
lea r12, [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
mov rdx, r12
call qword [rdi + 0x10]
mov ecx, dword [rdi + 0xc0]
sub ecx, dword [rdi + 0xd0]
add dword [rdi + 0xb8], ecx
test eax, eax
je 0x14008a75b
movsxd rcx, eax
add rcx, r12
movzx eax, byte [r12]
jmp 0x14008a76c
xor eax, eax
jmp 0x14008a783
mov dword [rdi + 0x30], 0
lea rcx, [rdi + 0x39]
mov byte [rdi + 0x38], 0
xor eax, eax
mov r11, qword [rsp + 0x40]
mov qword [rdi + 0xc8], rcx
lea rcx, [rdi + 0x39]
mov qword [rdi + 0xc0], rcx
movzx eax, al
mov dword [r11 + 0x4838], eax
mov rdi, qword [r11]
mov rax, qword [rdi + 0xc0]
cmp rax, qword [rdi + 0xc8]
jae 0x14008a7b0
lea rcx, [rax + 1]
mov qword [rdi + 0xc0], rcx
movzx eax, byte [rax]
jmp 0x14008a817
cmp dword [rdi + 0x30], 0
je 0x14008a7eb
mov r8d, dword [rdi + 0x34]
lea r12, [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
mov rdx, r12
call qword [rdi + 0x10]
mov ecx, dword [rdi + 0xc0]
sub ecx, dword [rdi + 0xd0]
add dword [rdi + 0xb8], ecx
test eax, eax
je 0x14008a7ef
movsxd rcx, eax
add rcx, r12
movzx eax, byte [r12]
jmp 0x14008a800
xor eax, eax
jmp 0x14008a817
mov dword [rdi + 0x30], 0
lea rcx, [rdi + 0x39]
mov byte [rdi + 0x38], 0
xor eax, eax
mov r11, qword [rsp + 0x40]
mov qword [rdi + 0xc8], rcx
lea rcx, [rdi + 0x39]
mov qword [rdi + 0xc0], rcx
movzx edx, al
mov ecx, edx
shr ecx, 4
mov dword [r11 + 0x483c], ecx
and edx, 0xf
mov dword [r11 + 0x4840], edx
mov ecx, dword [r11 + 0x4830]
mov r8d, dword [r11 + 0x4834]
test ecx, ecx
je 0x14008a878
cmp r8d, 0x3f
jg 0x14008c761
mov r9d, dword [r11 + 0x4838]
cmp r9d, 0x3f
jg 0x14008c761
cmp r8d, r9d
jg 0x14008c761
cmp al, 0xdf
ja 0x14008c761
cmp edx, 0xd
jbe 0x14008a89c
jmp 0x14008c761
test r8d, r8d
jne 0x14008c761
cmp al, 0xf
ja 0x14008c761
test edx, edx
jne 0x14008c761
mov dword [r11 + 0x4838], 0x3f
mov edx, dword [r11 + 0x4854]
mov eax, dword [r11 + 0x4868]
test eax, eax
mov r8d, 0x7fffffff
cmove eax, r8d
mov qword [r11 + 0x4820], 0
mov dword [r11 + 0x482c], 0
mov dword [r11 + 0x47d8], 0
mov dword [r11 + 0x4778], 0
mov dword [r11 + 0x4718], 0
mov dword [r11 + 0x46b8], 0
mov byte [r11 + 0x4828], 0xff
mov dword [r11 + 0x486c], eax
mov dword [r11 + 0x4844], 0
test ecx, ecx
je 0x14008b1da
cmp edx, 1
jne 0x14008b24c
movsxd rax, dword [r11 + 0x4858]
mov qword [rsp + 0xb0], rax
lea rax, [rax + rax*2]
shl rax, 5
mov edx, dword [r11 + rax + 0x46c0]
test edx, edx
jle 0x14008b7f4
mov ecx, edx
add ecx, 7
shr ecx, 3
mov dword [rsp + 0xa0], ecx
mov ecx, dword [r11 + rax + 0x46bc]
mov qword [rsp + 0xa8], rcx
add ecx, 7
sar ecx, 3
add rax, r11
add rax, 0x46f0
mov qword [rsp + 0x78], rax
cmp ecx, 2
mov eax, 1
cmovl ecx, eax
mov dword [rsp + 0x98], ecx
mov dword [rsp + 0x68], 0
cmp dword [rsp + 0xa8], 0
mov rcx, qword [rsp + 0x78]
jle 0x14008b1be
xor edi, edi
jmp 0x14008aa48
movzx eax, byte [r11 + 0x4828]
mov ecx, eax
and cl, 0xf8
cmp cl, 0xd0
jne 0x14008b7fc
mov qword [r11 + 0x4820], 0
mov dword [r11 + 0x482c], 0
mov dword [r11 + 0x47d8], 0
mov dword [r11 + 0x4778], 0
mov dword [r11 + 0x4718], 0
mov dword [r11 + 0x46b8], 0
mov byte [r11 + 0x4828], 0xff
mov eax, dword [r11 + 0x4868]
test eax, eax
mov ecx, 0x7fffffff
cmove eax, ecx
mov dword [r11 + 0x486c], eax
mov dword [r11 + 0x4844], 0
inc edi
cmp edi, dword [rsp + 0x98]
mov rcx, qword [rsp + 0x78]
je 0x14008b1be
mov eax, dword [rcx + 8]
imul eax, dword [rsp + 0x68]
add eax, edi
shl eax, 6
movsxd r13, eax
add r13, r13
add r13, qword [rcx]
movsxd r12, dword [r11 + 0x4834]
test r12, r12
mov dword [rsp + 0x48], edi
je 0x14008ab62
movsxd rax, dword [rcx - 0x3c]
imul rbx, rax, 0x690
lea r14, [r11 + rbx]
add r14, 0x1a48
cmp dword [r11 + 0x483c], 0
mov ebp, dword [r11 + 0x4840]
mov edx, dword [r11 + 0x4844]
je 0x14008ab96
test edx, edx
je 0x14008abe5
dec edx
mov dword [r11 + 0x4844], edx
cmp r12d, dword [r11 + 0x4838]
jg 0x14008aba7
mov eax, 0x10000
shlx edi, eax, ebp
sar edi, 0x10
mov ebx, edi
neg ebx
jmp 0x14008aaed
lea rax, [r12 + 1]
movsxd rcx, dword [r11 + 0x4838]
cmp r12, rcx
mov r12, rax
jge 0x14008aba7
lea rax, [0x14011a7e0]
movzx r14d, byte [r12 + rax]
cmp word [r13 + r14*2], 0
je 0x14008aad5
mov eax, dword [r11 + 0x4824]
test eax, eax
jg 0x14008ab25
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov eax, dword [r11 + 0x4824]
test eax, eax
jle 0x14008aad5
mov ecx, dword [r11 + 0x4820]
lea edx, [rcx + rcx]
mov dword [r11 + 0x4820], edx
dec eax
mov dword [r11 + 0x4824], eax
test ecx, ecx
jns 0x14008aad5
movsx eax, word [r13 + r14*2]
test edi, eax
jne 0x14008aad5
test ax, ax
mov ecx, ebx
cmovg ecx, edi
add ecx, eax
mov word [r13 + r14*2], cx
jmp 0x14008aad5
movsxd rax, dword [rcx - 0x40]
imul rax, rax, 0x690
lea r8, [r11 + rax]
add r8, 8
mov rcx, r11
mov rdx, r13
mov r9, qword [rsp + 0xb0]
call fcn.14009f470
mov r11, qword [rsp + 0x40]
test eax, eax
jne 0x14008aba7
jmp 0x14008c77b
test edx, edx
je 0x14008aedc
dec edx
mov dword [r11 + 0x4844], edx
mov eax, dword [r11 + 0x486c]
lea ecx, [rax - 1]
mov dword [r11 + 0x486c], ecx
cmp eax, 1
mov edi, dword [rsp + 0x48]
jg 0x14008aa34
cmp dword [r11 + 0x4824], 0x17
jg 0x14008a9b1
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
jmp 0x14008a9b1
mov eax, 0x10000
shlx eax, eax, ebp
sar eax, 0x10
mov dword [rsp + 0x50], eax
neg eax
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x70]
lea r15, [rax + rbx]
mov qword [rsp + 0x90], r14
jmp 0x14008ac3a
inc r12d
mov eax, dword [rsp + 0x58]
mov word [r13 + rbx*2], ax
mov eax, dword [r11 + 0x4838]
mov rbx, rbp
mov r14, qword [rsp + 0x90]
cmp r12d, eax
jg 0x14008aba7
cmp dword [r11 + 0x4824], 0xf
jg 0x14008ac51
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov ecx, dword [r11 + 0x4820]
mov eax, ecx
shr eax, 0x17
movzx edx, byte [r14 + rax]
cmp rdx, 0xff
je 0x14008ac9d
lea rax, [r11 + rbx]
movzx r8d, byte [rdx + rax + 0x1f48]
mov eax, dword [r11 + 0x4824]
sub eax, r8d
jl 0x14008c75a
shlx ecx, ecx, r8d
mov dword [r11 + 0x4820], ecx
mov dword [r11 + 0x4824], eax
jmp 0x14008ad11
mov eax, ecx
shr eax, 0x10
xor edx, edx
mov r8, rdx
inc rdx
cmp eax, dword [r15 + r8*4 - 0x44]
jae 0x14008aca4
mov eax, dword [r11 + 0x4824]
cmp edx, 8
je 0x14008c750
lea r8, [rdx + 9]
cmp eax, r8d
jl 0x14008c75a
mov r9b, 0x17
sub r9b, dl
shrx r9d, ecx, r9d
lea r10, [0x14011a840]
and r9d, dword [r10 + rdx*4 + 0x24]
add r9d, dword [r15 + rdx*4]
cmp r9d, 0xff
ja 0x14008c75a
sub eax, edx
add eax, 0xfffffff7
mov dword [r11 + 0x4824], eax
shlx ecx, ecx, r8d
mov dword [r11 + 0x4820], ecx
mov edx, r9d
lea r8, [r11 + rbx]
movzx edx, byte [rdx + r8 + 0x1e48]
mov r8d, edx
and r8d, 0xf
mov ebp, edx
shr ebp, 4
cmp r8d, 1
je 0x14008add0
test r8d, r8d
jne 0x14008c75a
mov dword [rsp + 0x58], 0
mov edi, 0xf
cmp dl, 0xef
ja 0x14008ae1f
mov ecx, 0xffffffff
shlx ecx, ecx, ebp
not ecx
mov dword [r11 + 0x4844], ecx
mov edi, 0x40
cmp dl, 0x10
jb 0x14008ae1f
cmp eax, ebp
jge 0x14008ad8c
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov eax, dword [r11 + 0x4824]
mov dword [rsp + 0x58], 0
mov edx, 0
sub eax, ebp
jl 0x14008adc7
mov edx, dword [r11 + 0x4820]
mov ecx, ebp
rol edx, cl
lea rcx, [0x14011a840]
mov ecx, dword [rcx + rbp*4]
andn r8d, ecx, edx
mov dword [r11 + 0x4820], r8d
and edx, ecx
mov dword [r11 + 0x4824], eax
add dword [r11 + 0x4844], edx
jmp 0x14008ae1f
test eax, eax
jg 0x14008adf3
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov eax, dword [r11 + 0x4824]
test eax, eax
jle 0x14008ae0a
mov ecx, dword [r11 + 0x4820]
lea edx, [rcx + rcx]
mov dword [r11 + 0x4820], edx
dec eax
mov dword [r11 + 0x4824], eax
test ecx, ecx
js 0x14008ae15
mov edi, ebp
mov eax, dword [rsp + 0xa4]
jmp 0x14008ae1b
mov edi, ebp
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x58], eax
mov eax, dword [r11 + 0x4838]
cmp r12d, eax
jg 0x14008ac31
mov rbp, rbx
movsxd r12, r12d
lea r14, [0x14011a7e0]
jmp 0x14008ae60
sub eax, dword [rsp + 0x50]
mov word [r13 + rbx*2], ax
inc r12
movsxd rax, dword [r11 + 0x4838]
lea rcx, [r12 - 1]
cmp rcx, rax
jge 0x14008ac26
movzx ebx, byte [r12 + r14]
cmp word [r13 + rbx*2], 0
je 0x14008aecd
mov eax, dword [r11 + 0x4824]
test eax, eax
jg 0x14008ae91
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov eax, dword [r11 + 0x4824]
test eax, eax
jle 0x14008ae48
mov ecx, dword [r11 + 0x4820]
lea edx, [rcx + rcx]
mov dword [r11 + 0x4820], edx
dec eax
mov dword [r11 + 0x4824], eax
test ecx, ecx
jns 0x14008ae48
movsx eax, word [r13 + rbx*2]
test dword [rsp + 0x50], eax
jne 0x14008ae48
test ax, ax
jle 0x14008ae3e
add eax, dword [rsp + 0x50]
jmp 0x14008ae42
test edi, edi
je 0x14008ac12
dec edi
jmp 0x14008ae48
shl rax, 0xa
lea rdi, [r11 + rax]
add rdi, 0x3688
mov rax, qword [rsp + 0x70]
lea r15, [rax + rbx]
mov dword [rsp + 0x50], ebp
mov qword [rsp + 0x58], rdi
jmp 0x14008af23
inc r12d
mov ebp, dword [rsp + 0x50]
shlx eax, edx, ebp
mov word [r13 + rdi*2], ax
mov rdi, qword [rsp + 0x58]
cmp r12d, dword [r11 + 0x4838]
jg 0x14008aba7
cmp dword [r11 + 0x4824], 0xf
jg 0x14008af3a
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov ecx, dword [r11 + 0x4820]
mov edx, ecx
shr edx, 0x17
movsx eax, word [rdi + rdx*2]
test eax, eax
je 0x14008afbd
mov r8d, eax
and r8d, 0xf
mov edx, dword [r11 + 0x4824]
sub edx, r8d
mov rsi, r11
lea r11, [0x14011a7e0]
jl 0x14008c744
mov r9d, eax
shr r9d, 4
and r9d, 0xf
movsxd r10, r12d
add r10, r9
shlx ecx, ecx, r8d
mov dword [rsi + 0x4820], ecx
mov dword [rsi + 0x4824], edx
lea r12d, [r10 + 1]
movzx ecx, byte [r11 + r10]
shr eax, 8
shlx eax, eax, ebp
mov word [r13 + rcx*2], ax
mov r11, rsi
cmp r12d, dword [r11 + 0x4838]
jle 0x14008af23
jmp 0x14008aba7
cmp dword [r11 + 0x4824], 0xf
lea rdi, [0x14011a7e0]
jg 0x14008afe7
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov ecx, dword [r11 + 0x4820]
mov edx, ecx
shr edx, 0x17
movzx edx, byte [r14 + rdx]
cmp rdx, 0xff
je 0x14008b027
lea rax, [r11 + rbx]
movzx r8d, byte [rdx + rax + 0x1f48]
mov eax, dword [r11 + 0x4824]
sub eax, r8d
jl 0x14008c75a
shlx ecx, ecx, r8d
mov dword [r11 + 0x4820], ecx
mov dword [r11 + 0x4824], eax
jmp 0x14008b09b
mov eax, ecx
shr eax, 0x10
xor edx, edx
mov r8, rdx
inc rdx
cmp eax, dword [r15 + r8*4 - 0x44]
jae 0x14008b02e
mov eax, dword [r11 + 0x4824]
cmp edx, 8
je 0x14008c750
lea r8, [rdx + 9]
cmp eax, r8d
jl 0x14008c75a
mov r9b, 0x17
sub r9b, dl
shrx r9d, ecx, r9d
lea r10, [0x14011a840]
and r9d, dword [r10 + rdx*4 + 0x24]
add r9d, dword [r15 + rdx*4]
cmp r9d, 0xff
ja 0x14008c75a
sub eax, edx
add eax, 0xfffffff7
mov dword [r11 + 0x4824], eax
shlx ecx, ecx, r8d
mov dword [r11 + 0x4820], ecx
mov edx, r9d
lea rcx, [r11 + rbx]
movzx ecx, byte [rdx + rcx + 0x1e48]
mov ebp, ecx
and ebp, 0xf
mov r8d, ecx
shr r8d, 4
test rbp, rbp
je 0x14008b12e
mov ecx, r8d
movsxd r12, r12d
add r12, rcx
movzx edi, byte [rdi + r12]
cmp eax, ebp
jge 0x14008b0de
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
mov eax, dword [r11 + 0x4824]
xor edx, edx
sub eax, ebp
jl 0x14008aeff
mov r8d, dword [r11 + 0x4820]
mov edx, r8d
shr edx, 0x1f
mov ecx, ebp
rol r8d, cl
lea rcx, [0x14011a840]
mov ecx, dword [rcx + rbp*4]
andn r9d, ecx, r8d
mov dword [r11 + 0x4820], r9d
and r8d, ecx
mov dword [r11 + 0x4824], eax
dec edx
lea rax, [0x14011a890]
and edx, dword [rax + rbp*4]
add edx, r8d
jmp 0x14008aeff
cmp cl, 0xef
jbe 0x14008b140
add r12d, 0x10
mov ebp, dword [rsp + 0x50]
jmp 0x14008af11
mov edx, 1
shlx edx, edx, r8d
mov dword [r11 + 0x4844], edx
cmp cl, 0x10
jb 0x14008ab9e
mov rdi, r8
cmp eax, edi
jge 0x14008b174
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
call fcn.14009f2a0
mov eax, dword [rsi + 0x4824]
xor edx, edx
sub eax, edi
jl 0x14008b1ad
mov r9, qword [rsp + 0x40]
mov edx, dword [r9 + 0x4820]
mov r8, rdi
mov ecx, r8d
rol edx, cl
lea rcx, [0x14011a840]
mov ecx, dword [rcx + rdi*4]
andn r8d, ecx, edx
mov dword [r9 + 0x4820], r8d
and edx, ecx
mov dword [r9 + 0x4824], eax
mov r11, qword [rsp + 0x40]
add edx, dword [r11 + 0x4844]
jmp 0x14008ab9e
mov eax, dword [rsp + 0x68]
inc eax
mov dword [rsp + 0x68], eax
cmp eax, dword [rsp + 0xa0]
jne 0x14008a997
jmp 0x14008b7f4
cmp edx, 1
jne 0x14008b418
movsxd rdi, dword [r11 + 0x4858]
lea rax, [rdi + rdi*2]
shl rax, 5
mov ecx, dword [r11 + rax + 0x46c0]
mov ebx, 1
test ecx, ecx
jle 0x14008b7ec
add ecx, 7
shr ecx, 3
mov dword [rsp + 0x50], ecx
mov edx, dword [r11 + rax + 0x46bc]
lea r13d, [rdx + 7]
sar r13d, 3
cmp r13d, 2
mov ecx, 1
cmovl r13d, ecx
lea rbx, [r11 + rax]
add rbx, 0x46b4
shl r13, 3
xor r14d, r14d
xor ebp, ebp
mov qword [rsp + 0x48], rdx
jmp 0x14008b68f
mov edx, dword [r11 + 0x4694]
test edx, edx
jle 0x14008b7f4
mov ecx, dword [r11 + 0x4690]
xor ebp, ebp
test ecx, ecx
jle 0x14008b409
xor r15d, r15d
mov edx, dword [r11 + 0x4854]
test edx, edx
jle 0x14008b340
xor edi, edi
movsxd r12, dword [r11 + rdi*4 + 0x4858]
lea rax, [r12 + r12*2]
shl rax, 5
mov ecx, dword [r11 + rax + 0x46a8]
test ecx, ecx
jle 0x14008b32a
lea rbx, [r11 + rax]
add rbx, 0x46a8
mov eax, dword [r11 + rax + 0x46a4]
xor r14d, r14d
jmp 0x14008b2c0
inc r14d
cmp r14d, ecx
jge 0x14008b323
test eax, eax
jle 0x14008b2b8
xor r13d, r13d
mov ecx, dword [rbx]
imul ecx, ebp
add ecx, r14d
imul ecx, dword [rbx + 0x50]
imul eax, r15d
add eax, r13d
add eax, ecx
shl eax, 6
movsxd rdx, eax
add rdx, rdx
add rdx, qword [rbx + 0x48]
movsxd rax, dword [rbx + 8]
imul rax, rax, 0x690
lea r8, [r11 + rax]
add r8, 8
mov rcx, r11
mov r9d, r12d
call fcn.14009f470
mov r11, qword [rsp + 0x40]
test eax, eax
je 0x14008c77b
inc r13d
mov eax, dword [rbx - 4]
cmp r13d, eax
jl 0x14008b2c7
mov ecx, dword [rbx]
jmp 0x14008b2b8
mov edx, dword [r11 + 0x4854]
inc rdi
movsxd rax, edx
cmp rdi, rax
jl 0x14008b280
mov eax, dword [r11 + 0x486c]
lea ecx, [rax - 1]
mov dword [r11 + 0x486c], ecx
cmp eax, 1
mov eax, ecx
jg 0x14008b3ef
cmp dword [r11 + 0x4824], 0x17
jg 0x14008b36c
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
movzx eax, byte [r11 + 0x4828]
mov ecx, eax
and cl, 0xf8
cmp cl, 0xd0
jne 0x14008b7fc
mov qword [r11 + 0x4820], 0
mov dword [r11 + 0x482c], 0
mov dword [r11 + 0x47d8], 0
mov dword [r11 + 0x4778], 0
mov dword [r11 + 0x4718], 0
mov dword [r11 + 0x46b8], 0
mov byte [r11 + 0x4828], 0xff
mov eax, dword [r11 + 0x4868]
test eax, eax
mov ecx, 0x7fffffff
cmove eax, ecx
mov dword [r11 + 0x486c], eax
mov dword [r11 + 0x4844], 0
inc r15d
mov ecx, dword [r11 + 0x4690]
cmp r15d, ecx
jl 0x14008b26f
mov edx, dword [r11 + 0x4694]
inc ebp
cmp ebp, edx
jl 0x14008b264
jmp 0x14008b7f4
mov edx, dword [r11 + 0x4694]
mov ebx, 1
test edx, edx
jle 0x14008b7ec
mov ecx, dword [r11 + 0x4690]
mov dword [rsp + 0x50], 0
test ecx, ecx
jle 0x14008b65f
mov dword [rsp + 0x48], 0
mov ecx, dword [r11 + 0x4854]
test ecx, ecx
jle 0x14008b594
xor r8d, r8d
movsxd rbx, dword [r11 + r8*4 + 0x4858]
lea rdx, [rbx + rbx*2]
shl rdx, 5
mov eax, dword [r11 + rdx + 0x46a8]
test eax, eax
jle 0x14008b579
mov qword [rsp + 0x58], r8
lea r14, [r11 + rdx]
add r14, 0x46a8
mov r13d, dword [r11 + rdx + 0x46a4]
xor ebp, ebp
jmp 0x14008b4a3
inc ebp
cmp ebp, eax
jge 0x14008b56d
test r13d, r13d
jle 0x14008b499
xor edi, edi
lea r12, [rsp + 0xd0]
mov r15d, dword [r14]
movsxd rax, dword [r14 + 0xc]
movsxd rcx, dword [r14 + 4]
shl rcx, 7
add rcx, r11
add rcx, 0x3488
imul r9, rax, 0x690
shl rax, 0xa
add rax, r11
add rax, 0x3688
add r9, qword [rsp + 0x60]
movsxd rdx, dword [r14 + 8]
imul r8, rdx, 0x690
add r8, qword [rsp + 0x80]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
mov rcx, r11
mov rdx, r12
mov rsi, r11
call fcn.14009ed80
test eax, eax
je 0x14008b7e7
imul r15d, dword [rsp + 0x50]
add r15d, ebp
imul r13d, dword [rsp + 0x48]
add r13d, edi
shl r13d, 3
mov edx, dword [r14 + 0x1c]
imul r15d, edx
shl r15d, 3
movsxd rax, r15d
add rax, qword [r14 + 0x28]
movsxd rcx, r13d
add rcx, rax
mov r8, r12
call qword [rsi + 0x4870]
inc edi
mov r13d, dword [r14 - 4]
cmp edi, r13d
mov r11, rsi
jl 0x14008b4b2
mov eax, dword [r14]
jmp 0x14008b499
mov ecx, dword [r11 + 0x4854]
mov r8, qword [rsp + 0x58]
inc r8
movsxd rax, ecx
cmp r8, rax
jl 0x14008b45d
mov eax, dword [r11 + 0x486c]
mov ebx, 1
lea ecx, [rax - 1]
mov dword [r11 + 0x486c], ecx
cmp eax, 1
mov eax, ecx
jg 0x14008b63f
cmp dword [r11 + 0x4824], 0x17
jg 0x14008b5c0
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
movzx eax, byte [r11 + 0x4828]
and al, 0xf8
cmp al, 0xd0
jne 0x14008b7ec
mov qword [r11 + 0x4820], 0
mov dword [r11 + 0x482c], 0
mov dword [r11 + 0x47d8], 0
mov dword [r11 + 0x4778], 0
mov dword [r11 + 0x4718], 0
mov dword [r11 + 0x46b8], 0
mov byte [r11 + 0x4828], 0xff
mov eax, dword [r11 + 0x4868]
test eax, eax
mov ecx, 0x7fffffff
cmove eax, ecx
mov dword [r11 + 0x486c], eax
mov dword [r11 + 0x4844], 0
mov edx, dword [rsp + 0x48]
inc edx
mov ecx, dword [r11 + 0x4690]
mov dword [rsp + 0x48], edx
cmp edx, ecx
jl 0x14008b44b
mov edx, dword [r11 + 0x4694]
mov r8d, dword [rsp + 0x50]
inc r8d
mov dword [rsp + 0x50], r8d
cmp r8d, edx
jl 0x14008b43b
jmp 0x14008b7ec
inc ebp
add r14d, 8
cmp ebp, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
je 0x14008b9ef
test edx, edx
jle 0x14008b67a
xor r12d, r12d
jmp 0x14008b727
movzx eax, byte [r11 + 0x4828]
and al, 0xf8
cmp al, 0xd0
jne 0x14008b9ef
mov qword [r11 + 0x4820], 0
mov dword [r11 + 0x482c], 0
mov dword [r11 + 0x47d8], 0
mov dword [r11 + 0x4778], 0
mov dword [r11 + 0x4718], 0
mov dword [r11 + 0x46b8], 0
mov byte [r11 + 0x4828], 0xff
mov eax, dword [r11 + 0x4868]
test eax, eax
mov ecx, 0x7fffffff
cmove eax, ecx
mov dword [r11 + 0x486c], eax
mov dword [r11 + 0x4844], 0
add r12, 8
cmp r13, r12
je 0x14008b67a
movsxd rax, dword [rbx]
movsxd rcx, dword [rbx - 8]
shl rcx, 7
add rcx, r11
add rcx, 0x3488
imul r9, rax, 0x690
shl rax, 0xa
add rax, r11
add rax, 0x3688
add r9, qword [rsp + 0x60]
movsxd rdx, dword [rbx - 4]
imul r8, rdx, 0x690
add r8, qword [rsp + 0x80]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
mov rcx, r11
lea r15, [rsp + 0xd0]
mov rdx, r15
mov rsi, r11
call fcn.14009ed80
test eax, eax
je 0x14008b7e7
mov edx, dword [rbx + 0x10]
mov eax, r14d
imul eax, edx
movsxd rcx, eax
add rcx, qword [rbx + 0x1c]
add rcx, r12
mov r8, r15
call qword [rsi + 0x4870]
mov eax, dword [rsi + 0x486c]
lea ecx, [rax - 1]
mov dword [rsi + 0x486c], ecx
cmp eax, 1
mov r11, rsi
jg 0x14008b71a
cmp dword [r11 + 0x4824], 0x17
jg 0x14008b69b
mov rcx, r11
call fcn.14009f2a0
mov r11, qword [rsp + 0x40]
jmp 0x14008b69b
xor ebx, ebx
mov r11, rsi
test ebx, ebx
je 0x14008c77b
movzx eax, byte [r11 + 0x4828]
cmp al, 0xff
lea rbx, str.bad_SOS_component_count
mov r14, qword [rsp + 0x70]
lea r15, str.bad_SOS_len
lea r13, str.bad_DNL_len
jne 0x14008b9cf
jmp 0x14008b98e
mov rdi, qword [r11]
mov rax, qword [rdi + 0xc0]
cmp rax, qword [rdi + 0xc8]
jae 0x14008b849
lea rcx, [rax + 1]
mov qword [rdi + 0xc0], rcx
movzx eax, byte [rax]
jmp 0x14008b8cc
cmp dword [rdi + 0x30], 0
je 0x14008b884
mov r8d, dword [rdi + 0x34]
lea r12, [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
mov rdx, r12
call qword [rdi + 0x10]
mov ecx, dword [rdi + 0xc0]
sub ecx, dword [rdi + 0xd0]
add dword [rdi + 0xb8], ecx
test eax, eax
je 0x14008b888
movsxd rcx, eax
add rcx, r12
movzx eax, byte [r12]
jmp 0x14008b899
xor eax, eax
jmp 0x14008b8cc
mov dword [rdi + 0x30], 0
lea rcx, [rdi + 0x39]
mov byte [rdi + 0x38], 0
xor eax, eax
mov qword [rdi + 0xc8], rcx
lea rcx, [rdi + 0x39]
mov qword [rdi + 0xc0], rcx
mov r11, qword [rsp + 0x40]
jmp 0x14008b8cc
lea rcx, [rax + 1]
mov qword [rdi + 0xc0], rcx
movzx eax, byte [rax]
lea ecx, [rax - 1]
cmp cl, 0xfd
jbe 0x14008b9c8
cmp al, 0xff
jne 0x14008b98e
mov rdi, qword [r11]
cmp qword [rdi + 0x10], 0
je 0x14008b8f8
mov rcx, qword [rdi + 0x28]
call qword [rdi + 0x20]
mov r11, qword [rsp + 0x40]
test eax, eax
je 0x14008b90c
cmp dword [rdi + 0x30], 0
je 0x14008b9c6
mov rax, qword [rdi + 0xc0]
cmp rax, qword [rdi + 0xc8]
jae 0x14008b9c6
mov rdi, qword [r11]
mov rax, qword [rdi + 0xc0]
cmp rax, qword [rdi + 0xc8]
jb 0x14008b8b2
cmp dword [rdi + 0x30], 0
je 0x14008b95a
mov r8d, dword [rdi + 0x34]
lea r12, [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
mov rdx, r12
call qword [rdi + 0x10]
mov ecx, dword [rdi + 0xc0]
sub ecx, dword [rdi + 0xd0]
add dword [rdi + 0xb8], ecx
test eax, eax
je 0x14008b961
movsxd rcx, eax
add rcx, r12
movzx eax, byte [r12]
jmp 0x14008b972
xor eax, eax
jmp 0x14008b8c0
mov dword [rdi + 0x30], 0
lea rcx, [rdi + 0x39]
mov byte [rdi + 0x38], 0
xor eax, eax
mov qword [rdi + 0xc8], rcx
lea rcx, [rdi + 0x39]
mov qword [rdi + 0xc0], rcx
mov r11, qword [rsp + 0x40]
jmp 0x14008b8c0
mov rdi, qword [r11]
cmp qword [rdi + 0x10], 0
je 0x14008b9b2
mov rcx, qword [rdi + 0x28]
call qword [rdi + 0x20]
mov r11, qword [rsp + 0x40]
test eax, eax
je 0x14008b823
cmp dword [rdi + 0x30], 0
je 0x14008b9c6
mov rax, qword [rdi + 0xc0]
cmp rax, qword [rdi + 0xc8]
jb 0x14008b823
mov al, 0xff
mov byte [r11 + 0x4828], al
mov rcx, r11
call fcn.14009cb00
mov r11, qword [rsp + 0x40]
mov ecx, eax
and cl, 0xf8
cmp cl, 0xd0
jne 0x14008a367
jmp 0x14008a3fa
mov ebx, 1
test ebx, ebx
jne 0x14008b7f4
jmp 0x14008c77b
lea rbx, str.bad_DC_huff
jmp 0x14008c761
lea rbx, str.bad_AC_huff
jmp 0x14008c761
cmp dword [r11 + 0x4830], 0
mov r13, qword [r11]
je 0x14008bbfb
cmp dword [r13 + 8], 0
jle 0x14008bbfb
lea r15, [r11 + 0x3508]
lea rdi, [r11 + 0x348e]
xor ecx, ecx
jmp 0x14008ba5f
mov r13, qword [r11]
mov rcx, qword [rsp + 0x60]
inc rcx
movsxd rax, dword [r13 + 8]
cmp rcx, rax
jge 0x14008bbfb
lea rax, [rcx + rcx*2]
shl rax, 5
mov esi, dword [r11 + rax + 0x46c0]
test esi, esi
jle 0x14008ba4f
mov qword [rsp + 0x60], rcx
add esi, 7
shr esi, 3
mov ecx, dword [r11 + rax + 0x46bc]
mov qword [rsp + 0x88], rcx
lea ebx, [rcx + 7]
sar ebx, 3
lea r14, [r11 + rax]
add r14, 0x46f0
cmp ebx, 2
mov eax, 1
cmovl ebx, eax
xor r12d, r12d
jmp 0x14008bab8
inc r12d
cmp r12d, esi
je 0x14008ba47
cmp dword [rsp + 0x88], 0
jle 0x14008bab0
lea r13d, [r12*8]
xor ebp, ebp
jmp 0x14008bb44
vmovdqu ymm0, ymmword [r8]
vmovdqu ymm1, ymmword [r8 + 0x20]
vmovdqu ymm2, ymmword [r8 + 0x40]
vpmullw ymm0, ymm0, ymmword [rdx]
vmovdqu ymm3, ymmword [r8 + 0x60]
vmovdqu ymmword [r8], ymm0
vpmullw ymm0, ymm1, ymmword [rdx + 0x20]
vmovdqu ymmword [r8 + 0x20], ymm0
vpmullw ymm0, ymm2, ymmword [rdx + 0x40]
vmovdqu ymmword [r8 + 0x40], ymm0
vpmullw ymm0, ymm3, ymmword [rdx + 0x60]
vmovdqu ymmword [r8 + 0x60], ymm0
mov edx, dword [r14 - 0x2c]
mov eax, r13d
imul eax, edx
cdqe
add rax, qword [r14 - 0x20]
lea rcx, [rax + rbp*8]
mov rax, qword [rsp + 0x40]
vzeroupper
call qword [rax + 0x4870]
mov r11, qword [rsp + 0x40]
inc rbp
cmp rbp, rbx
je 0x14008bab0
mov rcx, qword [r14]
mov eax, dword [r14 + 8]
imul eax, r12d
add eax, ebp
shl eax, 6
movsxd r9, eax
lea r8, [rcx + r9*2]
movsxd rax, dword [r14 - 0x44]
shl rax, 7
lea rdx, [r11 + rax]
add rdx, 0x3488
lea r10, [r15 + rax]
cmp r8, r10
jae 0x14008bad0
lea r10, [rcx + r9*2]
add r10, 0x80
cmp rdx, r10
jae 0x14008bad0
add rax, rdi
lea rcx, [rcx + r9*2]
add rcx, 6
xor edx, edx
nop dword [rax]
movzx r9d, word [rcx + rdx*2 - 6]
imul r9w, word [rax + rdx*2 - 6]
movzx r10d, word [rcx + rdx*2 - 4]
mov word [rcx + rdx*2 - 6], r9w
imul r10w, word [rax + rdx*2 - 4]
mov word [rcx + rdx*2 - 4], r10w
movzx r9d, word [rcx + rdx*2 - 2]
imul r9w, word [rax + rdx*2 - 2]
mov word [rcx + rdx*2 - 2], r9w
movzx r9d, word [rcx + rdx*2]
imul r9w, word [rax + rdx*2]
mov word [rcx + rdx*2], r9w
add rdx, 4
cmp rdx, 0x40
jne 0x14008bba0
jmp 0x14008bb11
mov r13, qword [r11]
mov eax, dword [r13 + 8]
xor ecx, ecx
cmp eax, 3
setge cl
mov edx, dword [rsp + 0x250]
test edx, edx
lea r8d, [rcx + rcx + 1]
cmovne r8d, edx
cmp eax, 3
jne 0x14008bc38
mov dl, 1
cmp dword [r11 + 0x4850], 3
je 0x14008bc3a
cmp dword [r11 + 0x484c], 0
je 0x14008c071
xor edx, edx
test dl, dl
mov ecx, 1
cmovne ecx, eax
cmp r8d, 3
cmovge ecx, eax
cmp rax, 3
cmovne ecx, eax
test ecx, ecx
jle 0x14008bdc7
mov dword [rsp + 0x80], edx
mov dword [rsp + 0x60], r8d
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [rsp + 0x190], ymm0
mov eax, ecx
mov ecx, dword [r13]
mov qword [rsp + 0x88], rax
shl rax, 4
lea rdi, [rax + rax*2]
xor ebx, ebx
mov r14, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea rsi, [0x14009e800]
lea r12, [0x14009ebd0]
lea rbp, [0x14009e600]
lea r15, [0x14009e5f0]
jmp 0x14008bcc8
mov rax, r12
mov qword [rsp + rbx + 0xd0], rax
add rbx, 0x30
cmp rdi, rbx
je 0x14008bed5
add ecx, 3
vzeroupper
call r14
mov r11, qword [rsp + 0x40]
mov qword [r11 + rbx*2 + 0x46e8], rax
test rax, rax
je 0x14008be50
mov eax, dword [r11 + 0x4688]
cdq
idiv dword [r11 + rbx*2 + 0x46a4]
mov r9d, eax
mov dword [rsp + rbx + 0xe8], eax
mov eax, dword [r11 + 0x468c]
cdq
idiv dword [r11 + rbx*2 + 0x46a8]
mov r8d, eax
mov dword [rsp + rbx + 0xec], eax
sar eax, 1
mov dword [rsp + rbx + 0xf4], eax
mov ecx, dword [r13]
lea eax, [r9 + rcx]
dec eax
xor edx, edx
div r9d
mov dword [rsp + rbx + 0xf0], eax
mov dword [rsp + rbx + 0xf8], 0
mov rax, qword [r11 + rbx*2 + 0x46d0]
mov qword [rsp + rbx + 0xe0], rax
mov qword [rsp + rbx + 0xd8], rax
cmp r9d, 2
je 0x14008bd85
cmp r9d, 1
jne 0x14008bcb0
cmp r8d, 2
mov rax, r12
cmove rax, rbp
cmp r8d, 1
cmove rax, r15
jmp 0x14008bcb3
mov rax, rsi
cmp r8d, 1
je 0x14008bcb3
cmp r8d, 2
jne 0x14008bcb0
mov rax, qword [r11 + 0x4880]
jmp 0x14008bcb3
mov rbx, r13
mov r11, rsi
jmp 0x14008c761
lea rbx, str.bad_DNL_height
jmp 0x14008c761
mov rbx, r15
jmp 0x14008c761
test eax, eax
jle 0x14008c807
shl rax, 5
lea rdi, [rax + rax*2]
mov rbx, r11
add rbx, 0x46f0
xor r15d, r15d
mov r14, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
vpxor xmm6, xmm6, xmm6
xor r12d, r12d
jmp 0x14008be06
add r12, 0x60
cmp rdi, r12
mov r11, qword [rsp + 0x40]
je 0x14008c80a
mov rcx, qword [rbx + r12 - 0x18]
test rcx, rcx
je 0x14008be1a
call r14
vmovdqu xmmword [rbx + r12 - 0x20], xmm6
mov rcx, qword [rbx + r12 - 0x10]
test rcx, rcx
je 0x14008be38
call r14
mov qword [rbx + r12 - 0x10], 0
mov qword [rbx + r12], 0
mov rcx, qword [rbx + r12 - 8]
test rcx, rcx
je 0x14008bdf4
call r14
mov qword [rbx + r12 - 8], 0
jmp 0x14008bdf4
mov eax, dword [r13 + 8]
test eax, eax
jle 0x14008c052
shl rax, 5
lea rdi, [rax + rax*2]
mov rbx, r11
add rbx, 0x46f0
xor r14d, r14d
mov r15, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
vpxor xmm6, xmm6, xmm6
jmp 0x14008be8b
add r14, 0x60
cmp rdi, r14
je 0x14008c014
mov rcx, qword [rbx + r14 - 0x18]
test rcx, rcx
je 0x14008be9f
call r15
vmovdqu xmmword [rbx + r14 - 0x20], xmm6
mov rcx, qword [rbx + r14 - 0x10]
test rcx, rcx
je 0x14008bebd
call r15
mov qword [rbx + r14 - 0x10], 0
mov qword [rbx + r14], 0
mov rcx, qword [rbx + r14 - 8]
test rcx, rcx
je 0x14008be7e
call r15
mov qword [rbx + r14 - 8], 0
jmp 0x14008be7e
mov eax, ecx
mov ebp, dword [rsp + 0x60]
or eax, ebp
js 0x14008bf95
mov edi, dword [r13 + 4]
test ecx, ecx
je 0x14008befc
mov eax, 0x7fffffff
xor edx, edx
div ecx
cmp eax, ebp
jl 0x14008bf95
imul ecx, ebp
mov eax, edi
or eax, ecx
js 0x14008bf95
test edi, edi
je 0x14008bf1a
mov eax, 0x7fffffff
xor edx, edx
div edi
cmp eax, ecx
jl 0x14008bf95
imul ecx, edi
cmp ecx, 0x7fffffff
je 0x14008bf95
inc ecx
movsxd rcx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x14008bf95
mov r15, rax
test edi, edi
je 0x14008c84c
mov r14d, ebp
mov rax, qword [rsp + 0x40]
add rax, 0x46c0
mov qword [rsp + 0x58], rax
lea rax, [r15 + 1]
mov qword [rsp + 0x98], rax
lea rax, [r15 + 2]
mov qword [rsp + 0x90], rax
lea rax, [r15 + 3]
mov qword [rsp + 0x78], rax
xor r12d, r12d
vpbroadcastb xmm6, byte [0x14011a6a0]
vpbroadcastd xmm7, dword [0x14011acd0]
xor eax, eax
mov qword [rsp + 0x68], r14
jmp 0x14008c0cb
mov eax, dword [r13 + 8]
test eax, eax
jle 0x14008c014
shl rax, 5
lea rdi, [rax + rax*2]
mov rbx, qword [rsp + 0x40]
add rbx, 0x46f0
xor r14d, r14d
mov r15, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
vpxor xmm6, xmm6, xmm6
jmp 0x14008bfca
add r14, 0x60
cmp rdi, r14
je 0x14008c014
mov rcx, qword [rbx + r14 - 0x18]
test rcx, rcx
je 0x14008bfde
call r15
vmovdqu xmmword [rbx + r14 - 0x20], xmm6
mov rcx, qword [rbx + r14 - 0x10]
test rcx, rcx
je 0x14008bffc
call r15
mov qword [rbx + r14 - 0x10], 0
mov qword [rbx + r14], 0
mov rcx, qword [rbx + r14 - 8]
test rcx, rcx
je 0x14008bfc1
call r15
mov qword [rbx + r14 - 8], 0
jmp 0x14008bfc1
mov eax, dword [0x140210b70]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rcx, str.outofmem
mov qword [rax + 8], rcx
xor r15d, r15d
mov r11, qword [rsp + 0x40]
jmp 0x14008c80a
mov dword [r11 + 0x4854], 0
jmp 0x14008c761
mov eax, dword [0x140210b70]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rcx, str.outofmem
jmp 0x14008a27b
cmp dword [r11 + 0x4848], 0
sete dl
jmp 0x14008bc3a
mov eax, dword [r13]
mov r8, qword [rsp + 0x198]
mov r9, qword [rsp + 0x1a0]
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], eax
mov rcx, r12
mov rax, qword [rsp + 0x40]
call qword [rax + 0x4878]
mov r11, qword [rsp + 0x40]
mov r13, qword [r11]
mov r12, qword [rsp + 0x50]
mov eax, dword [rsp + 0x48]
inc eax
add r12d, ebp
cmp eax, dword [r13 + 4]
jae 0x14008c851
mov qword [rsp + 0x50], r12
mov ecx, dword [r13]
mov dword [rsp + 0x48], eax
mov r12d, eax
imul r12d, ebp
mov qword [rsp + 0x70], rcx
imul r12d, ecx
lea rdi, [rsp + 0xf8]
mov rbx, qword [rsp + 0x58]
xor r14d, r14d
jmp 0x14008c113
inc r14
add rbx, 0x60
add rdi, 0x30
cmp qword [rsp + 0x88], r14
je 0x14008c197
mov r13d, dword [rdi - 4]
mov eax, dword [rdi - 0x10]
mov ebp, dword [rdi - 0xc]
mov ecx, ebp
sar ecx, 1
xor edx, edx
xor r8d, r8d
cmp r13d, ecx
setge dl
setl r8b
mov r9d, dword [rdi - 8]
shl r8d, 3
or r8, 0xffffffffffffffe0
mov r8, qword [rdi + r8]
shl edx, 3
or rdx, 0xffffffffffffffe0
mov rdx, qword [rdi + rdx]
mov rcx, qword [rbx + 0x28]
mov dword [rsp + 0x20], eax
call qword [rdi - 0x28]
mov qword [rsp + r14*8 + 0x190], rax
inc r13d
mov dword [rdi - 4], r13d
cmp r13d, ebp
jl 0x14008c0fa
mov dword [rdi - 4], 0
mov rax, qword [rdi - 0x18]
mov qword [rdi - 0x20], rax
mov ecx, dword [rdi]
inc ecx
mov dword [rdi], ecx
cmp ecx, dword [rbx]
jge 0x14008c0fa
movsxd rcx, dword [rbx + 4]
add rax, rcx
mov qword [rdi - 0x18], rax
jmp 0x14008c0fa
mov ebp, dword [rsp + 0x60]
cmp ebp, 3
jl 0x14008c2b4
add r12, r15
mov rdx, qword [rsp + 0x190]
mov r11, qword [rsp + 0x40]
mov r13, qword [r11]
mov eax, dword [r13 + 8]
cmp eax, 3
mov r14, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
je 0x14008c463
cmp eax, 4
jne 0x14008c4cf
mov eax, dword [r11 + 0x484c]
cmp eax, 2
je 0x14008c5ef
test eax, eax
jne 0x14008c081
cmp dword [r13], 0
je 0x14008c0b3
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x198]
mov r8, qword [rsp + 0x1a0]
mov r12, qword [rsp + 0x50]
imul edi, r12d
add rdi, qword [rsp + 0x78]
xor r9d, r9d
movzx r10d, byte [rax + r9]
movzx r11d, byte [rdx + r9]
imul r11d, r10d
mov rbp, rdi
lea edi, [r11 + 0x80]
shr edi, 8
lea ebx, [rdi + r11]
add ebx, 0x80
mov byte [rbp - 3], bh
movzx r11d, byte [rcx + r9]
imul r11d, r10d
lea edi, [r11 + 0x80]
shr edi, 8
lea ebx, [rdi + r11]
add ebx, 0x80
mov rdi, rbp
mov byte [rbp - 2], bh
movzx r11d, byte [r8 + r9]
imul r11d, r10d
lea r10d, [r11 + 0x80]
shr r10d, 8
lea ebx, [r10 + r11]
add ebx, 0x80
mov byte [rbp - 1], bh
mov byte [rbp], 0xff
inc r9
mov r10d, dword [r13]
add rdi, r14
cmp r9, r10
jb 0x14008c223
mov eax, dword [rsp + 0x48]
mov ebp, dword [rsp + 0x60]
mov r11, qword [rsp + 0x40]
jmp 0x14008c0bc
mov r11, qword [rsp + 0x40]
mov r13, qword [r11]
cmp byte [rsp + 0x80], 0
mov r14, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
je 0x14008c356
mov eax, dword [r13]
cmp ebp, 1
mov r12, qword [rsp + 0x50]
jne 0x14008c540
test eax, eax
je 0x14008c0b8
mov r11d, ebp
mov rax, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0x198]
imul edi, r12d
add rdi, r15
mov rbp, rdi
xor edi, edi
movzx ebx, byte [rax + rdi]
movzx r8d, byte [rdx + rdi]
movzx r9d, byte [rcx + rdi]
imul r9d, r9d, 0x4d
imul r8d, r8d, 0x96
lea r10d, [rbx + rbx*8]
lea r10d, [r10 + r10*2]
add ebx, ebx
add ebx, r10d
add ebx, r8d
add ebx, r9d
mov byte [rbp + rdi], bh
inc rdi
mov r8d, dword [r13]
cmp rdi, r8
jb 0x14008c315
jmp 0x14008c5b0
cmp dword [r13 + 8], 4
mov r12, qword [rsp + 0x50]
jne 0x14008c502
mov eax, dword [r11 + 0x484c]
cmp eax, 2
je 0x14008c6d7
test eax, eax
jne 0x14008c502
cmp dword [r13], 0
je 0x14008c0b8
mov rsi, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0x198]
mov r8, qword [rsp + 0x1a0]
imul edi, r12d
add rdi, qword [rsp + 0x98]
xor r9d, r9d
mov rax, rdi
movzx r10d, byte [rsi + r9]
movzx r11d, byte [rcx + r9]
imul r11d, r10d
lea edi, [r11 + 0x80]
shr edi, 8
add r11d, edi
add r11d, 0x80
shr r11d, 8
movzx edi, byte [rdx + r9]
imul edi, r10d
lea ebx, [rdi + 0x80]
shr ebx, 8
add edi, ebx
add edi, 0x80
shr edi, 8
movzx ebx, byte [r8 + r9]
imul ebx, r10d
lea r10d, [rbx + 0x80]
shr r10d, 8
add ebx, r10d
add ebx, 0x80
shr ebx, 8
imul r10d, r11d, 0x4d
imul r11d, edi, 0x96
add r11d, r10d
lea r10d, [rbx + rbx*8]
lea r10d, [r10 + r10*2]
add ebx, ebx
add ebx, r10d
add ebx, r11d
mov byte [rax - 1], bh
mov byte [rax], 0xff
inc r9
mov r10d, dword [r13]
add rax, r14
cmp r9, r10
jb 0x14008c3bb
mov eax, dword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
jmp 0x14008c0bc
cmp byte [rsp + 0x80], 0
je 0x14008c081
cmp dword [r13], 0
je 0x14008c0b3
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x1a0]
mov r12, qword [rsp + 0x50]
imul edi, r12d
add rdi, qword [rsp + 0x78]
xor r8d, r8d
movzx r9d, byte [rdx + r8]
mov byte [rdi - 3], r9b
movzx r9d, byte [rax + r8]
mov byte [rdi - 2], r9b
movzx r9d, byte [rcx + r8]
mov byte [rdi - 1], r9b
mov byte [rdi], 0xff
inc r8
mov r9d, dword [r13]
add rdi, r14
cmp r8, r9
jb 0x14008c49d
jmp 0x14008c0b8
cmp dword [r13], 0
je 0x14008c0b3
xor eax, eax
vpinsrb xmm0, xmm6, byte [rdx + rax], 0
vpshufb xmm0, xmm0, xmm7
vmovd dword [r12], xmm0
add r12, r14
inc rax
mov ecx, dword [r13]
cmp rax, rcx
jb 0x14008c4dc
jmp 0x14008c0b3
mov rax, qword [rsp + 0x190]
mov ecx, dword [r13]
cmp ebp, 1
jne 0x14008c5c1
test ecx, ecx
je 0x14008c0b8
imul edi, r12d
add rdi, r15
xor ecx, ecx
movzx edx, byte [rax + rcx]
mov byte [rdi + rcx], dl
inc rcx
mov edx, dword [r13]
cmp rcx, rdx
jb 0x14008c528
jmp 0x14008c0b8
test eax, eax
je 0x14008c0b8
mov r11d, ebp
mov rax, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0x198]
imul edi, r12d
add rdi, r15
mov rbp, rdi
xor edi, edi
movzx ebx, byte [rax + rdi]
movzx r8d, byte [rdx + rdi]
movzx r9d, byte [rcx + rdi]
imul r9d, r9d, 0x4d
imul r8d, r8d, 0x96
lea r10d, [rbx + rbx*8]
lea r10d, [r10 + r10*2]
add ebx, ebx
add ebx, r10d
add ebx, r8d
add ebx, r9d
mov byte [rbp + rdi*2], bh
mov byte [rbp + rdi*2 + 1], 0xff
inc rdi
mov r8d, dword [r13]
cmp rdi, r8
jb 0x14008c56f
mov eax, dword [rsp + 0x48]
mov ebp, r11d
mov r11, qword [rsp + 0x40]
jmp 0x14008c0bc
test ecx, ecx
je 0x14008c0b8
imul edi, r12d
add rdi, r15
xor ecx, ecx
movzx edx, byte [rax + rcx]
mov byte [rdi + rcx*2], dl
mov byte [rdi + rcx*2 + 1], 0xff
inc rcx
mov edx, dword [r13]
cmp rcx, rdx
jb 0x14008c5d2
jmp 0x14008c0b8
mov eax, dword [r13]
mov r8, qword [rsp + 0x198]
mov r9, qword [rsp + 0x1a0]
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], eax
mov rcx, r12
mov rax, qword [rsp + 0x40]
call qword [rax + 0x4878]
mov r11, qword [rsp + 0x40]
mov r13, qword [r11]
cmp dword [r13], 0
je 0x14008c0b3
mov rax, qword [rsp + 0x1a8]
mov r12, qword [rsp + 0x50]
imul edi, r12d
add rdi, qword [rsp + 0x90]
xor ecx, ecx
movzx edx, byte [rax + rcx]
movzx r8d, byte [rdi - 2]
xor r8d, 0xff
imul r8d, edx
lea r9d, [r8 + 0x80]
shr r9d, 8
lea ebx, [r9 + r8]
add ebx, 0x80
mov byte [rdi - 2], bh
movzx r8d, byte [rdi - 1]
xor r8d, 0xff
imul r8d, edx
lea r9d, [r8 + 0x80]
shr r9d, 8
lea ebx, [r9 + r8]
add ebx, 0x80
mov byte [rdi - 1], bh
movzx r8d, byte [rdi]
xor r8d, 0xff
imul r8d, edx
lea edx, [r8 + 0x80]
shr edx, 8
add edx, r8d
add edx, 0x80
mov byte [rdi], dh
inc rcx
mov edx, dword [r13]
add rdi, r14
cmp rcx, rdx
jb 0x14008c647
jmp 0x14008c0b8
cmp dword [r13], 0
je 0x14008c0b8
mov rax, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x1a8]
imul edi, r12d
add rdi, qword [rsp + 0x98]
xor edx, edx
movzx r8d, byte [rcx + rdx]
movzx r9d, byte [rax + rdx]
xor r9d, 0xff
imul r9d, r8d
lea r8d, [r9 + 0x80]
shr r8d, 8
lea ebx, [r8 + r9]
add ebx, 0x80
mov byte [rdi - 1], bh
mov byte [rdi], 0xff
inc rdx
mov r8d, dword [r13]
add rdi, r14
cmp rdx, r8
jb 0x14008c700
jmp 0x14008c0b8
lea rbx, str.bad_huffman_code
mov r11, rsi
jmp 0x14008c761
add eax, 0xfffffff0
mov dword [r11 + 0x4824], eax
lea rbx, str.bad_huffman_code
mov eax, dword [0x140210b70]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 8], rbx
mov rax, qword [r11]
mov eax, dword [rax + 8]
test eax, eax
jle 0x14008c807
shl rax, 5
lea rdi, [rax + rax*2]
mov rbx, r11
add rbx, 0x46f0
xor r15d, r15d
mov r14, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
vpxor xmm6, xmm6, xmm6
xor r12d, r12d
jmp 0x14008c7bd
add r12, 0x60
cmp rdi, r12
je 0x14008c038
mov rcx, qword [rbx + r12 - 0x18]
test rcx, rcx
je 0x14008c7d1
call r14
vmovdqu xmmword [rbx + r12 - 0x20], xmm6
mov rcx, qword [rbx + r12 - 0x10]
test rcx, rcx
je 0x14008c7ef
call r14
mov qword [rbx + r12 - 0x10], 0
mov qword [rbx + r12], 0
mov rcx, qword [rbx + r12 - 8]
test rcx, rcx
je 0x14008c7b0
call r14
mov qword [rbx + r12 - 8], 0
jmp 0x14008c7b0
xor r15d, r15d
mov rcx, r11
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rsp + 0x1b8]
xor rcx, rsp
call fcn.1400f4f10
mov rax, r15
vmovaps xmm6, xmmword [rsp + 0x1c0]
vmovaps xmm7, xmmword [rsp + 0x1d0]
add rsp, 0x1e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r11, qword [rsp + 0x40]
mov eax, dword [r13 + 8]
test eax, eax
jle 0x14008c8ef
shl rax, 5
lea rdi, [rax + rax*2]
xor ebx, ebx
mov r14, qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
vpxor xmm6, xmm6, xmm6
jmp 0x14008c87d
add rbx, 0x60
cmp rdi, rbx
je 0x14008c8ec
mov rcx, qword [r11 + rbx + 0x46d8]
test rcx, rcx
je 0x14008c89c
call r14
mov r11, qword [rsp + 0x40]
vmovdqu xmmword [r11 + rbx + 0x46d0], xmm6
mov rcx, qword [r11 + rbx + 0x46e0]
test rcx, rcx
je 0x14008c8c9
call r14
mov r11, qword [rsp + 0x40]
mov qword [r11 + rbx + 0x46e0], 0
mov qword [r11 + rbx + 0x46f0], 0
mov rcx, qword [r11 + rbx + 0x46e8]
test rcx, rcx
je 0x14008c874
call r14
mov r11, qword [rsp + 0x40]
mov qword [r11 + rbx + 0x46e8], 0
jmp 0x14008c874
mov r13, qword [r11]
mov eax, dword [r13]
mov rcx, qword [rsp + 0xb8]
mov dword [rcx], eax
mov eax, dword [r13 + 4]
mov rcx, qword [rsp + 0xc0]
mov dword [rcx], eax
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x14008c80a
xor eax, eax
cmp dword [r13 + 8], 3
setge al
lea eax, [rax*2 + 1]
mov dword [rcx], eax
jmp 0x14008c80a