Function at 0x6839ca90
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
mov eax, 0x4908
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.6830cfe0
sub rsp, rax
movups xmmword [rsp + 0x48f0], xmm6
lea rdi, [0x6839af30]
lea rbx, [0x683adf40]
movq xmm0, rdi
cmp dword [rsp + 0x4970], 4
mov qword [rsp + 0x4958], rdx
lea rdx, [0x68389370]
movq xmm2, rdx
mov qword [rsp + 0x4960], r8
punpcklqdq xmm0, xmm2
mov qword [rsp + 0x4968], r9
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x48e8], rbx
mov dword [rcx + 8], 0
movups xmmword [rsp + 0x48d8], xmm0
ja 0x6839cd10
lea rbp, [rsp + 0x170]
pxor xmm1, xmm1
xor edx, edx
mov dword [rsp + 0x48cc], 0
mov rcx, rbp
movups xmmword [rsp + 0x4748], xmm1
movups xmmword [rsp + 0x47a8], xmm1
movups xmmword [rsp + 0x4808], xmm1
movups xmmword [rsp + 0x4868], xmm1
call fcn.68395ff0
test eax, eax
jne 0x6839cc18
nop word [rax + rax]
mov rsi, qword [rsp + 0x170]
mov r12d, dword [rsi + 8]
xor edi, edi
pxor xmm6, xmm6
test r12d, r12d
jle 0x6839cbf0
mov rcx, qword [rbp + 0x45d8]
test rcx, rcx
je 0x6839cb97
call fcn.68313a20
movups xmmword [rbp + 0x45d0], xmm6
mov rcx, qword [rbp + 0x45e0]
test rcx, rcx
je 0x6839cbbe
call fcn.68313a20
mov qword [rbp + 0x45e0], 0
mov qword [rbp + 0x45f0], 0
mov rcx, qword [rbp + 0x45e8]
test rcx, rcx
je 0x6839cbda
call fcn.68313a20
mov qword [rbp + 0x45e8], 0
mov rcx, qword [rsp + 0x170]
add edi, 1
add rbp, 0x60
cmp dword [rcx + 8], edi
jg 0x6839cb7f
nop
xor r13d, r13d
movups xmm6, xmmword [rsp + 0x48f0]
mov rax, r13
add rsp, 0x4908
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rsp + 0x4898]
cmp al, 0xff
je 0x6839cd30
mov byte [rsp + 0x4898], 0xff
movzx edx, al
cmp al, 0xd9
je 0x6839ce26
lea rbx, [rsp + 0x1bb8]
mov r13, rbp
mov qword [rsp + 0x58], rbx
nop dword [rax + rax]
cmp edx, 0xda
jne 0x6839cdf0
mov rdi, qword [rsp + 0x170]
mov rbp, qword [rdi + 0xb8]
mov rcx, qword [rdi + 0xc0]
cmp rbp, rcx
jae 0x6839d338
lea rsi, [rbp + 1]
mov qword [rdi + 0xb8], rsi
movzx r14d, byte [rbp]
shl r14d, 8
cmp rsi, rcx
jae 0x6839d393
lea r11, [rsi + 1]
mov qword [rdi + 0xb8], r11
movzx eax, byte [rsi]
mov rdi, qword [rsp + 0x170]
add r14d, eax
mov rbx, qword [rdi + 0xb8]
mov rsi, rdi
cmp rbx, qword [rdi + 0xc0]
jae 0x6839d2d0
lea r10, [rbx + 1]
mov qword [rdi + 0xb8], r10
movzx r9d, byte [rbx]
lea ecx, [r9 - 1]
mov dword [rsp + 0x48b8], r9d
cmp ecx, 3
ja 0x6839d7dc
mov r12d, dword [rsi + 8]
cmp r12d, r9d
jge 0x6839d760
mov rbp, r13
lea r10, str.bad_SOS_component_count
mov qword [0x683c4440], r10
jmp 0x6839cb74
lea r9, str.bad_req_comp
xor r13d, r13d
mov qword [0x683c4440], r9
jmp 0x6839cbf3
mov r12, qword [rsp + 0x170]
mov rcx, qword [r12 + 0xb8]
cmp rcx, qword [r12 + 0xc0]
jae 0x6839dae0
lea r10, [rcx + 1]
mov qword [r12 + 0xb8], r10
movzx r9d, byte [rcx]
cmp r9b, 0xff
jne 0x6839db2e
nop dword [rax + rax]
mov r14, qword [rsp + 0x170]
mov r11, qword [r14 + 0xb8]
cmp r11, qword [r14 + 0xc0]
jae 0x6839db40
lea rdx, [r11 + 1]
mov qword [r14 + 0xb8], rdx
movzx eax, byte [r11]
cmp al, 0xff
je 0x6839cd70
jmp 0x6839cc30
mov ecx, dword [rbx + 0x30]
test ecx, ecx
je 0x6839cde8
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
lea r9, [rbx + 0x39]
movq xmm3, r9
test eax, eax
jne 0x6839d818
mov dword [rbx + 0x30], 0
punpcklqdq xmm3, xmm3
mov byte [rbx + 0x38], 0
movups xmmword [rbx + 0xb8], xmm3
mov edx, 0xff
nop dword [rax]
mov rcx, r13
call fcn.683abf40
test eax, eax
je 0x6839d238
movzx eax, byte [rsp + 0x4898]
cmp al, 0xff
je 0x6839cfc0
mov byte [rsp + 0x4898], 0xff
movzx edx, al
cmp al, 0xd9
jne 0x6839cc50
mov rbp, r13
mov r12, qword [rsp + 0x170]
mov esi, dword [rsp + 0x48a0]
mov ecx, dword [r12 + 8]
mov rbx, r12
mov dword [rsp + 0x4c], ecx
test esi, esi
jne 0x6839dcc8
mov r11d, dword [rsp + 0x4970]
mov r10d, dword [rsp + 0x4c]
mov edi, dword [r12]
test r11d, r11d
mov esi, r10d
cmovne esi, dword [rsp + 0x4970]
mov dword [rsp + 0x50], esi
cmp esi, 2
jg 0x6839da60
mov dword [rsp + 0x40], 1
cmp r10d, 3
jne 0x6839da60
mov qword [rsp + 0x58], rbp
lea r13d, [rdi + 3]
mov r14, rbp
xor r15d, r15d
lea rsi, [rsp + 0xb0]
jmp 0x6839ceff
movabs r8, 0x200000001
cmp r9, r8
je 0x6839cfb0
movabs rax, 0x100000002
cmp r9, rax
je 0x6839cfa0
movabs rdx, 0x200000002
cmp r9, rdx
je 0x6839d2c0
lea r11, [0x683ad4f0]
mov qword [rsi], r11
nop dword [rax + rax]
add r15d, 1
add r14, 0x60
add rsi, 0x30
cmp r15d, dword [rsp + 0x40]
jge 0x6839d3f0
mov rcx, r13
call sub.msvcrt.dll_malloc
mov qword [r14 + 0x45e8], rax
test rax, rax
je 0x6839e66a
mov eax, dword [rsp + 0x46f8]
movsxd r11, r15d
movq xmm3, qword [r14 + 0x45d0]
mov dword [rsi + 0x28], 0
movabs rcx, 0x100000001
lea r10, [r11 + r11*2]
cdq
punpcklqdq xmm3, xmm3
shl r10, 4
idiv dword [r14 + 0x45a4]
movups xmmword [rsi + 8], xmm3
mov r8d, eax
mov dword [rsi + 0x18], eax
mov eax, dword [rsp + 0x46fc]
cdq
idiv dword [r14 + 0x45a8]
xor edx, edx
mov dword [rsi + 0x1c], eax
sar eax, 1
mov dword [rsi + 0x24], eax
lea eax, [rdi + r8 - 1]
div r8d
mov dword [rsi + 0x20], eax
mov r9, qword [rsp + r10 + 0xc8]
cmp r9, rcx
jne 0x6839cea0
lea r8, [0x68389360]
mov qword [rsi], r8
jmp 0x6839cee8
lea r9, [0x683ad8f0]
mov qword [rsi], r9
jmp 0x6839cee8
lea rcx, [0x683ae070]
mov qword [rsi], rcx
jmp 0x6839cee8
mov rbx, qword [rsp + 0x170]
mov r10, qword [rbx + 0xb8]
cmp r10, qword [rbx + 0xc0]
jae 0x6839cda8
lea rbp, [r10 + 1]
mov qword [rbx + 0xb8], rbp
movzx edx, byte [r10]
cmp dl, 0xff
jne 0x6839cde8
nop dword [rax]
mov r12, qword [rsp + 0x170]
mov r15, qword [r12 + 0xb8]
cmp r15, qword [r12 + 0xc0]
jae 0x6839d240
lea r8, [r15 + 1]
mov qword [r12 + 0xb8], r8
movzx eax, byte [r15]
cmp al, 0xff
je 0x6839cff8
jmp 0x6839ce18
test edi, edi
jne 0x6839dca0
test eax, eax
jne 0x6839dca0
test bl, bl
jne 0x6839dca0
mov eax, dword [rsp + 0x48cc]
mov dword [rsp + 0x48a8], 0x3f
mov dword [rsp + 0x489c], 0
mov dword [rsp + 0x47e8], 0
mov dword [rsp + 0x4788], 0
mov dword [rsp + 0x4728], 0
mov qword [rsp + 0x4890], 0
mov byte [rsp + 0x4898], 0xff
test eax, eax
je 0x6839e73c
mov dword [rsp + 0x48d0], eax
mov dword [rsp + 0x48b4], 0
cmp dword [rsp + 0x48b8], 1
je 0x6839e118
mov ecx, dword [rsp + 0x4704]
test ecx, ecx
jle 0x6839e028
mov dword [rsp + 0x4c], 0
mov eax, dword [rsp + 0x4700]
test eax, eax
jle 0x6839e000
lea r15, [rsp + 0x178]
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x60], r15
mov r12d, dword [rsp + 0x48b8]
lea r14, [rsp + 0xb0]
mov qword [rsp + 0x68], 0
test r12d, r12d
jle 0x6839dfc0
mov r8, qword [rsp + 0x68]
movsxd r9, dword [r13 + r8*4 + 0x474c]
lea rbp, [r9 + r9*2]
mov dword [rsp + 0x50], r9d
shl rbp, 5
mov ebx, dword [rsp + rbp + 0x4718]
test ebx, ebx
jle 0x6839dfac
mov esi, dword [rsp + rbp + 0x4714]
xor r12d, r12d
test esi, esi
jle 0x6839df97
lea rcx, [rsp + 0x48f0]
xor r15d, r15d
lea rdi, [rcx + rbp]
jmp 0x6839d1b3
mov edx, dword [rdi - 0x1bc]
movsxd rsi, esi
mov r8, r14
add r15d, 1
imul ebx, edx
lea ebx, [rbx*8]
movsxd rcx, ebx
add rcx, rsi
add rcx, qword [rdi - 0x1b0]
call qword [rsp + 0x48d8]
mov esi, dword [rdi - 0x1dc]
cmp esi, r15d
jle 0x6839df90
mov ebx, dword [rdi - 0x1d8]
movsxd r10, dword [rdi - 0x1cc]
movsxd rdx, dword [rdi - 0x1d0]
movsxd rax, dword [rdi - 0x1d4]
mov ecx, dword [rsp + 0x50]
imul r11, r10, 0x690
shl r10, 0xa
imul r8, rdx, 0x690
shl rax, 6
mov dword [rsp + 0x28], ecx
mov rdx, qword [rsp + 0x58]
imul esi, dword [rsp + 0x40]
lea r9, [r13 + rax + 0x3488]
mov rcx, r13
lea r10, [r13 + r10 + 0x3588]
mov qword [rsp + 0x30], r9
lea r9, [rdx + r11]
mov r11, qword [rsp + 0x60]
imul ebx, dword [rsp + 0x4c]
mov qword [rsp + 0x20], r10
mov rdx, r14
add esi, r15d
lea r8, [r11 + r8]
shl esi, 3
add ebx, r12d
call fcn.6839c120
test eax, eax
jne 0x6839d170
mov rbp, r13
jmp 0x6839cb68
mov edx, dword [r12 + 0x30]
test edx, edx
je 0x6839cdf0
lea r14, [r12 + 0x38]
mov rcx, qword [r12 + 0x28]
mov r8d, dword [r12 + 0x34]
lea rdi, [r12 + 0x39]
mov rdx, r14
movq xmm6, rdi
call qword [r12 + 0x10]
movsxd rdx, eax
test edx, edx
jne 0x6839d2a0
punpcklqdq xmm6, xmm6
mov byte [r12 + 0x38], 0
mov dword [r12 + 0x30], 0
movups xmmword [r12 + 0xb8], xmm6
jmp 0x6839cdf0
add rdx, r14
movzx eax, byte [r12 + 0x38]
movq xmm0, rdx
punpcklqdq xmm6, xmm0
movups xmmword [r12 + 0xb8], xmm6
jmp 0x6839d026
mov r10, qword [rsp + 0x48e8]
mov qword [rsi], r10
jmp 0x6839cee8
mov edx, dword [rdi + 0x30]
test edx, edx
je 0x6839d788
lea r15, [rdi + 0x38]
mov r8d, dword [rdi + 0x34]
mov rcx, qword [rdi + 0x28]
mov rdx, r15
call qword [rdi + 0x10]
lea r8, [rdi + 0x39]
test eax, eax
jne 0x6839d7a0
movq xmm0, r8
mov byte [rdi + 0x38], 0
mov rbp, r13
mov rsi, qword [rsp + 0x170]
punpcklqdq xmm0, xmm0
mov dword [rdi + 0x30], 0
movups xmmword [rdi + 0xb8], xmm0
mov dword [rsp + 0x48b8], 0
mov r12d, dword [rsi + 8]
jmp 0x6839ccfc
mov r14d, dword [rdi + 0x30]
test r14d, r14d
je 0x6839ccb1
lea r12, [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
mov r8d, dword [rdi + 0x34]
lea rsi, [rdi + 0x39]
mov rdx, r12
call qword [rdi + 0x10]
movsxd r14, eax
test r14d, r14d
jne 0x6839d800
mov dword [rdi + 0x30], 0
mov rcx, rsi
mov byte [rdi + 0x38], 0
movq xmm1, rsi
movq xmm3, rcx
punpcklqdq xmm1, xmm3
movups xmmword [rdi + 0xb8], xmm1
cmp rsi, rcx
jb 0x6839cc98
mov r8d, dword [rdi + 0x30]
test r8d, r8d
je 0x6839d3db
lea r15, [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
mov r8d, dword [rdi + 0x34]
mov rdx, r15
call qword [rdi + 0x10]
lea r9, [rdi + 0x39]
test eax, eax
jne 0x6839d7e8
mov dword [rdi + 0x30], 0
mov byte [rdi + 0x38], 0
mov qword [rsp + 0x40], r9
movq xmm4, r9
movhps xmm4, qword [rsp + 0x40]
movups xmmword [rdi + 0xb8], xmm4
mov rdi, qword [rsp + 0x170]
jmp 0x6839ccb1
mov r12d, dword [r12 + 4]
mov r13d, r12d
imul r13d, edi
imul r13d, dword [rsp + 0x50]
lea ecx, [r13 + 1]
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x6839f54f
test r12d, r12d
je 0x6839d600
mov ecx, dword [rsp + 0x40]
movsxd rsi, dword [rsp + 0x50]
xor r15d, r15d
lea r9, [rsp + 0x90]
mov qword [rsp + 0x70], r9
sub ecx, 1
mov dword [rsp + 0x4c], 0
mov r14, rsi
lea r8, [rsp + rcx*8 + 0x98]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], rbp
nop dword [rax + rax]
mov r12d, dword [rsp + 0x4c]
mov ebp, dword [rsp + 0x40]
imul r12d, edi
add r12, qword [rsp + 0x58]
test ebp, ebp
jle 0x6839d50a
mov rdi, qword [rsp + 0x60]
mov r13, qword [rsp + 0x70]
lea rbx, [rsp + 0xb0]
nop dword [rax]
mov r10d, dword [rbx + 0x1c]
mov rsi, qword [rbx + 0x10]
mov ebp, dword [rbx + 0x24]
mov rax, qword [rbx]
mov ecx, r10d
mov r11d, dword [rbx + 0x18]
mov r9d, dword [rbx + 0x20]
mov r8, rsi
sar ecx, 1
mov rdx, qword [rbx + 8]
cmp ebp, ecx
jl 0x6839d4c4
mov r8, rdx
mov rdx, rsi
mov rcx, qword [rdi + 0x45e8]
mov dword [rsp + 0x50], r10d
add ebp, 1
mov dword [rsp + 0x20], r11d
call rax
mov edx, dword [rsp + 0x50]
mov qword [r13], rax
cmp edx, ebp
jle 0x6839d570
mov dword [rbx + 0x24], ebp
add rbx, 0x30
add rdi, 0x60
add r13, 8
cmp qword [rsp + 0x68], r13
jne 0x6839d498
mov rbx, qword [rsp + 0x170]
mov edi, dword [rbx]
mov rdx, qword [rsp + 0x90]
cmp r14d, 2
jle 0x6839d5b0
cmp dword [rbx + 8], 3
jne 0x6839d6d0
mov dword [rsp + 0x28], r14d
mov r9, qword [rsp + 0xa0]
mov rcx, r12
mov dword [rsp + 0x20], edi
mov r8, qword [rsp + 0x98]
call qword [rsp + 0x48e0]
mov rbx, qword [rsp + 0x170]
add dword [rsp + 0x4c], r14d
add r15d, 1
cmp dword [rbx + 4], r15d
jbe 0x6839d5ed
mov edi, dword [rbx]
jmp 0x6839d468
mov r9d, dword [rbx + 0x28]
mov dword [rbx + 0x24], 0
mov qword [rbx + 8], rsi
add r9d, 1
mov dword [rbx + 0x28], r9d
cmp r9d, dword [rdi + 0x45c0]
jge 0x6839d4ed
movsxd r8, dword [rdi + 0x45c4]
add rsi, r8
mov qword [rbx + 0x10], rsi
jmp 0x6839d4ed
cmp r14d, 1
je 0x6839d710
test edi, edi
je 0x6839d551
xor edi, edi
mov r13d, edi
movzx ebp, byte [rdx + r13]
mov byte [r12 + rdi*2 + 1], 0xff
mov byte [r12 + rdi*2], bpl
add rdi, 1
cmp dword [rbx], edi
ja 0x6839d5c0
add dword [rsp + 0x4c], r14d
add r15d, 1
cmp dword [rbx + 4], r15d
ja 0x6839d564
mov r15d, dword [rbx + 8]
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov dword [rsp + 0x4c], r15d
mov r14d, dword [rsp + 0x4c]
xor r12d, r12d
pxor xmm6, xmm6
test r14d, r14d
jle 0x6839d68d
nop dword [rax]
mov rcx, qword [rbp + 0x45d8]
test rcx, rcx
je 0x6839d630
call fcn.68313a20
movups xmmword [rbp + 0x45d0], xmm6
mov rcx, qword [rbp + 0x45e0]
test rcx, rcx
je 0x6839d657
call fcn.68313a20
mov qword [rbp + 0x45e0], 0
mov qword [rbp + 0x45f0], 0
mov rcx, qword [rbp + 0x45e8]
test rcx, rcx
je 0x6839d740
call fcn.68313a20
add r12d, 1
add rbp, 0x60
mov rbx, qword [rsp + 0x170]
mov qword [rbp + 0x4588], 0
cmp r12d, dword [rbx + 8]
jl 0x6839d618
mov edx, dword [rbx]
mov r8, qword [rsp + 0x4958]
mov r10, qword [rsp + 0x4960]
cmp qword [rsp + 0x4968], 0
mov dword [r8], edx
mov ebp, dword [rbx + 4]
mov dword [r10], ebp
je 0x6839cbf3
mov eax, dword [rbx + 8]
mov r11, qword [rsp + 0x4968]
mov dword [r11], eax
jmp 0x6839cbf3
test edi, edi
je 0x6839d551
xor esi, esi
nop word [rax + rax]
mov ecx, esi
add esi, 1
movzx r9d, byte [rdx + rcx]
mov byte [r12 + 3], 0xff
mov byte [r12 + 2], r9b
mov byte [r12 + 1], r9b
mov byte [r12], r9b
add r12, qword [rsp + 0x78]
cmp dword [rbx], esi
ja 0x6839d6e0
jmp 0x6839d551
test edi, edi
je 0x6839d551
xor r10d, r10d
nop dword [rax + rax]
mov eax, r10d
add r10d, 1
movzx r11d, byte [rdx + rax]
mov byte [r12 + rax], r11b
cmp dword [rbx], r10d
ja 0x6839d720
jmp 0x6839d551
mov rbx, qword [rsp + 0x170]
add r12d, 1
add rbp, 0x60
cmp dword [rbx + 8], r12d
jg 0x6839d618
jmp 0x6839d68d
lea edi, [r9 + r9 + 6]
cmp edi, r14d
je 0x6839d840
lea rbx, str.bad_SOS_len
mov rbp, r13
mov qword [0x683c4440], rbx
jmp 0x6839cb74
mov dword [rsp + 0x48b8], 0
mov rbp, r13
mov r12d, dword [rdi + 8]
jmp 0x6839ccfc
cdqe
movzx r9d, byte [rdi + 0x38]
movq xmm6, r8
mov rsi, qword [rsp + 0x170]
add rax, r15
movq xmm5, rax
lea ecx, [r9 - 1]
punpcklqdq xmm6, xmm5
movups xmmword [rdi + 0xb8], xmm6
mov dword [rsp + 0x48b8], r9d
cmp ecx, 3
jbe 0x6839ccec
mov rbp, r13
jmp 0x6839d32a
movzx r10d, byte [rdi + 0x38]
cdqe
add rax, r15
mov qword [rsp + 0x40], rax
add r14d, r10d
jmp 0x6839d3ca
lea rcx, [r12 + r14]
movzx r14d, byte [rdi + 0x38]
shl r14d, 8
jmp 0x6839d375
cdqe
movzx edx, byte [rbx + 0x38]
add rax, rsi
movq xmm4, rax
punpcklqdq xmm3, xmm4
movups xmmword [rbx + 0xb8], xmm3
jmp 0x6839cfeb
test r9d, r9d
je 0x6839dbd8
xor r14d, r14d
jmp 0x6839d941
lea r12, [r11 + 1]
mov qword [rsi + 0xb8], r12
movzx ebx, byte [r11]
cmp r12, r15
jae 0x6839d9c4
lea rcx, [r12 + 1]
mov qword [rsi + 0xb8], rcx
movzx eax, byte [r12]
mov r8d, eax
mov r10d, dword [rsi + 8]
test r10d, r10d
jle 0x6839da80
cmp ebx, dword [rsp + 0x4710]
je 0x6839da90
cmp r10d, 1
je 0x6839daa0
cmp ebx, dword [rsp + 0x4770]
je 0x6839dab0
cmp r10d, 2
je 0x6839dac0
cmp ebx, dword [rsp + 0x47d0]
je 0x6839dad0
cmp r10d, 3
je 0x6839dbb8
cmp dword [rsp + 0x4830], ebx
je 0x6839dbc8
mov r12d, 4
cmp r10d, r12d
je 0x6839df48
movsxd r11, r12d
sar eax, 4
lea rbx, [r11 + r11*2]
shl rbx, 5
mov dword [rsp + rbx + 0x4720], eax
cmp eax, 3
jg 0x6839df50
mov ebp, r8d
and ebp, 0xf
and r8d, 0xc
mov dword [rsp + rbx + 0x4724], ebp
jne 0x6839df70
mov dword [r13 + r14*4 + 0x474c], r12d
add r14, 1
cmp dword [rsp + 0x48b8], r14d
jle 0x6839dbd8
mov r11, qword [rsi + 0xb8]
mov r15, qword [rsi + 0xc0]
cmp r11, r15
jb 0x6839d858
mov ebx, dword [rsi + 0x30]
test ebx, ebx
je 0x6839da20
lea rbp, [rsi + 0x38]
mov rcx, qword [rsi + 0x28]
mov r8d, dword [rsi + 0x34]
mov rdx, rbp
call qword [rsi + 0x10]
lea rdx, [rsi + 0x39]
movsxd rbx, eax
test ebx, ebx
jne 0x6839da30
mov dword [rsi + 0x30], 0
mov byte [rsi + 0x38], 0
mov qword [rsp + 0x40], rdx
movq xmm2, rdx
movhps xmm2, qword [rsp + 0x40]
movups xmmword [rsi + 0xb8], xmm2
mov rsi, qword [rsp + 0x170]
mov r12, qword [rsi + 0xb8]
mov r15, qword [rsi + 0xc0]
cmp r12, r15
jb 0x6839d870
mov eax, dword [rsi + 0x30]
test eax, eax
je 0x6839f5d0
lea rdi, [rsi + 0x38]
mov rcx, qword [rsi + 0x28]
mov r8d, dword [rsi + 0x34]
mov rdx, rdi
call qword [rsi + 0x10]
lea r9, [rsi + 0x39]
test eax, eax
jne 0x6839da48
mov dword [rsi + 0x30], 0
xor r8d, r8d
mov byte [rsi + 0x38], 0
mov qword [rsp + 0x40], r9
movq xmm1, r9
movhps xmm1, qword [rsp + 0x40]
movups xmmword [rsi + 0xb8], xmm1
mov rsi, qword [rsp + 0x170]
jmp 0x6839d884
xor eax, eax
xor r8d, r8d
jmp 0x6839d884
lea rax, [rbp + rbx]
movzx ebx, byte [rsi + 0x38]
mov qword [rsp + 0x40], rax
jmp 0x6839d994
cdqe
add rax, rdi
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 0x38]
mov r8d, eax
jmp 0x6839d9fc
mov r9d, dword [rsp + 0x4c]
test r9d, r9d
jle 0x6839e4b8
mov dword [rsp + 0x40], r9d
jmp 0x6839ce87
xor r12d, r12d
jmp 0x6839d8e9
xor r12d, r12d
jmp 0x6839d8f2
mov r12d, 1
jmp 0x6839d8e9
mov r12d, 1
jmp 0x6839d8f2
mov r12d, 2
jmp 0x6839d8e9
mov r12d, 2
jmp 0x6839d8f2
mov esi, dword [r12 + 0x30]
test esi, esi
je 0x6839db2e
lea r13, [r12 + 0x38]
mov r8d, dword [r12 + 0x34]
mov rcx, qword [r12 + 0x28]
mov rdx, r13
call qword [r12 + 0x10]
lea r8, [r12 + 0x39]
test eax, eax
jne 0x6839e5e0
movq xmm5, r8
mov byte [r12 + 0x38], 0
mov dword [r12 + 0x30], 0
punpcklqdq xmm5, xmm5
movups xmmword [r12 + 0xb8], xmm5
mov edx, 0xff
jmp 0x6839cc3b
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x6839cc3b
lea r15, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
lea rdi, [r14 + 0x39]
mov rdx, r15
call qword [r14 + 0x10]
movsxd rdx, eax
test edx, edx
jne 0x6839db90
movq xmm2, rdi
mov dword [r14 + 0x30], 0
punpcklqdq xmm2, xmm2
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm2
jmp 0x6839cc3b
add rdx, r15
movq xmm6, rdi
movzx eax, byte [r14 + 0x38]
movq xmm0, rdx
punpcklqdq xmm6, xmm0
movups xmmword [r14 + 0xb8], xmm6
jmp 0x6839cd9b
mov r12d, 3
jmp 0x6839d8e9
mov r12d, 3
jmp 0x6839d8f2
mov rax, qword [rsi + 0xb8]
mov r10, qword [rsi + 0xc0]
cmp rax, r10
jae 0x6839e450
lea r8, [rax + 1]
mov qword [rsi + 0xb8], r8
movzx eax, byte [rax]
mov dword [rsp + 0x48a4], eax
cmp r8, r10
jae 0x6839e3e8
lea rcx, [r8 + 1]
mov qword [rsi + 0xb8], rcx
movzx eax, byte [r8]
mov dword [rsp + 0x48a8], eax
cmp rcx, r10
jae 0x6839e38a
lea r14, [rcx + 1]
mov qword [rsi + 0xb8], r14
movzx eax, byte [rcx]
mov edx, eax
sar eax, 4
mov ebx, edx
and edx, 0xf
and ebx, 0xf
mov r12d, dword [rsp + 0x48a0]
mov dword [rsp + 0x48ac], eax
mov dword [rsp + 0x48b0], edx
mov edi, dword [rsp + 0x48a4]
test r12d, r12d
je 0x6839d030
cmp edi, 0x3f
jg 0x6839dca0
mov ebp, dword [rsp + 0x48a8]
cmp ebp, edi
setl dil
cmp ebp, 0x3f
setg sil
or edi, esi
cmp eax, 0xd
setg r12b
or dil, r12b
jne 0x6839dca0
cmp bl, 0xd
jbe 0x6839e757
nop dword [rax]
mov r11, qword [rsp + 0x170]
mov rbp, r13
lea r13, str.bad_SOS
mov qword [0x683c4440], r13
mov r12d, dword [r11 + 8]
jmp 0x6839cb74
mov edx, ecx
test ecx, ecx
jle 0x6839ce49
mov r13, rbp
xor edi, edi
pxor xmm6, xmm6
mov esi, dword [r13 + 0x45c0]
mov r9d, dword [r13 + 0x45bc]
add esi, 7
add r9d, 7
sar esi, 3
sar r9d, 3
test esi, esi
jle 0x6839df2d
test r9d, r9d
jle 0x6839df25
xor r15d, r15d
lea r12d, [r9 - 1]
nop
mov ebx, r12d
xor r14d, r14d
jmp 0x6839de0d
movdqu xmm5, xmmword [rdx]
movdqu xmm1, xmmword [r8 + 0x10]
movdqu xmm3, xmmword [r8]
movdqu xmm2, xmm5
punpcklbw xmm5, xmm6
punpckhbw xmm2, xmm6
pmullw xmm5, xmm3
movdqu xmm3, xmmword [r8 + 0x50]
pmullw xmm2, xmm1
movups xmmword [r8], xmm5
movdqu xmm5, xmmword [r8 + 0x30]
movups xmmword [r8 + 0x10], xmm2
movdqu xmm4, xmmword [rdx + 0x10]
movdqu xmm2, xmmword [r8 + 0x20]
movdqu xmm0, xmm4
punpcklbw xmm4, xmm6
punpckhbw xmm0, xmm6
pmullw xmm4, xmm2
movdqu xmm2, xmmword [r8 + 0x60]
pmullw xmm0, xmm5
movdqu xmm5, xmmword [r8 + 0x70]
movups xmmword [r8 + 0x20], xmm4
movdqu xmm4, xmmword [r8 + 0x40]
movups xmmword [r8 + 0x30], xmm0
movdqu xmm0, xmmword [rdx + 0x20]
movdqu xmm1, xmm0
punpcklbw xmm0, xmm6
punpckhbw xmm1, xmm6
pmullw xmm0, xmm4
pmullw xmm1, xmm3
movups xmmword [r8 + 0x40], xmm0
movups xmmword [r8 + 0x50], xmm1
movdqu xmm0, xmmword [rdx + 0x30]
movdqu xmm1, xmm0
punpcklbw xmm0, xmm6
punpckhbw xmm1, xmm6
pmullw xmm0, xmm2
pmullw xmm1, xmm5
movups xmmword [r8 + 0x60], xmm0
movups xmmword [r8 + 0x70], xmm1
mov edx, dword [r13 + 0x45c4]
mov eax, edx
imul eax, r15d
shl eax, 3
cdqe
lea rcx, [rax + r14*8]
add rcx, qword [r13 + 0x45d0]
call qword [rsp + 0x48d8]
lea r8, [r14 + 1]
cmp rbx, r14
je 0x6839df10
mov r14, r8
mov eax, dword [r13 + 0x45f8]
movsxd r10, dword [r13 + 0x45ac]
mov r11, qword [r13 + 0x45f0]
imul eax, r15d
add r10, 0xd2
shl r10, 6
lea rcx, [rbp + r10 + 0x48]
lea rdx, [rbp + r10 + 8]
add eax, r14d
shl eax, 6
cdqe
add rax, rax
lea r8, [r11 + rax]
cmp r8, rcx
jae 0x6839dd20
lea r9, [r11 + rax + 0x80]
cmp rdx, r9
jae 0x6839dd20
xor r11d, r11d
movzx eax, byte [rdx + r11]
imul ax, word [r8 + r11*2]
mov word [r8 + r11*2], ax
movzx r10d, byte [rdx + r11 + 1]
imul r10w, word [r8 + r11*2 + 2]
mov word [r8 + r11*2 + 2], r10w
movzx ecx, byte [rdx + r11 + 2]
imul cx, word [r8 + r11*2 + 4]
mov word [r8 + r11*2 + 4], cx
movzx r9d, byte [rdx + r11 + 3]
imul r9w, word [r8 + r11*2 + 6]
mov word [r8 + r11*2 + 6], r9w
movzx eax, byte [rdx + r11 + 4]
imul ax, word [r8 + r11*2 + 8]
mov word [r8 + r11*2 + 8], ax
movzx r10d, byte [rdx + r11 + 5]
imul r10w, word [r8 + r11*2 + 0xa]
mov word [r8 + r11*2 + 0xa], r10w
movzx ecx, byte [rdx + r11 + 6]
imul cx, word [r8 + r11*2 + 0xc]
mov word [r8 + r11*2 + 0xc], cx
movzx r9d, byte [rdx + r11 + 7]
imul r9w, word [r8 + r11*2 + 0xe]
mov word [r8 + r11*2 + 0xe], r9w
add r11, 8
cmp r11, 0x40
je 0x6839ddd9
jmp 0x6839de67
add r15d, 1
cmp esi, r15d
jne 0x6839dd10
mov r12, qword [rsp + 0x170]
mov edx, dword [r12 + 8]
mov rbx, r12
add edi, 1
add r13, 0x60
cmp edi, edx
jl 0x6839dcdb
mov dword [rsp + 0x4c], edx
jmp 0x6839ce49
mov rbp, r13
jmp 0x6839cb74
lea r14, str.bad_DC_huff
mov r12d, dword [rsi + 8]
mov rbp, r13
mov qword [0x683c4440], r14
jmp 0x6839cb74
mov rbp, r13
lea r13, str.bad_AC_huff
mov r12d, dword [rsi + 8]
mov qword [0x683c4440], r13
jmp 0x6839cb74
mov ebx, dword [rsp + rbp + 0x4718]
add r12d, 1
cmp r12d, ebx
jl 0x6839d152
mov r12d, dword [rsp + 0x48b8]
add qword [rsp + 0x68], 1
mov rbp, qword [rsp + 0x68]
cmp r12d, ebp
jg 0x6839d11f
mov r14d, dword [rsp + 0x48d0]
sub r14d, 1
mov dword [rsp + 0x48d0], r14d
test r14d, r14d
jle 0x6839e500
add dword [rsp + 0x40], 1
mov eax, dword [rsp + 0x4700]
mov r9d, dword [rsp + 0x40]
cmp eax, r9d
jg 0x6839d0fd
mov ecx, dword [rsp + 0x4704]
nop
add dword [rsp + 0x4c], 1
mov r10d, dword [rsp + 0x4c]
cmp r10d, ecx
jl 0x6839d0e0
nop dword [rax + rax]
movzx eax, byte [rsp + 0x4898]
cmp al, 0xff
jne 0x6839ce10
mov rbx, qword [rsp + 0x170]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x6839e051
mov rcx, qword [rbx + 0x28]
call qword [rbx + 0x20]
test eax, eax
je 0x6839e065
mov r8d, dword [rbx + 0x30]
test r8d, r8d
je 0x6839ce00
mov r11, qword [rbx + 0xc0]
cmp qword [rbx + 0xb8], r11
jae 0x6839ce00
mov rbx, qword [rsp + 0x170]
mov r10, qword [rbx + 0xb8]
cmp r10, qword [rbx + 0xc0]
jae 0x6839e0c0
lea rbp, [r10 + 1]
mov qword [rbx + 0xb8], rbp
movzx edx, byte [r10]
cmp edx, 0xff
je 0x6839e350
test edx, edx
je 0x6839e030
lea r12, str.junk_before_marker
mov rbp, r13
mov qword [0x683c4440], r12
mov r12d, dword [rbx + 8]
jmp 0x6839cb74
mov ecx, dword [rbx + 0x30]
mov rax, qword [rbx + 0x10]
test ecx, ecx
je 0x6839e034
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call rax
lea r9, [rbx + 0x39]
movq xmm0, r9
test eax, eax
jne 0x6839e320
punpcklqdq xmm0, xmm0
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
movups xmmword [rbx + 0xb8], xmm0
mov rbx, qword [rsp + 0x170]
jmp 0x6839e030
movsxd rdx, dword [rsp + 0x48bc]
lea r11, [rdx + rdx*2]
mov rbp, rdx
shl r11, 5
mov esi, dword [rsp + r11 + 0x472c]
mov ebx, dword [rsp + r11 + 0x4730]
lea esi, [rsi + 7]
lea r14d, [rbx + 7]
mov r12d, esi
sar r14d, 3
sar r12d, 3
mov dword [rsp + 0x60], r14d
mov dword [rsp + 0x4c], r12d
test r14d, r14d
jle 0x6839e028
lea r15d, [r12 - 1]
mov qword [rsp + 0x50], r11
lea r8, [r15*8 + 8]
mov qword [rsp + 0x40], r8
mov r9d, dword [rsp + 0x4c]
test r9d, r9d
jle 0x6839e2fd
lea rax, [rsp + 0x178]
xor ebx, ebx
lea r14, [rsp + 0x48f0]
mov r12d, 0x7fffffff
lea rsi, [rsp + 0xb0]
add r14, qword [rsp + 0x50]
mov r15, rax
jmp 0x6839e1bf
add rbx, 8
cmp qword [rsp + 0x40], rbx
je 0x6839e2fd
movsxd r10, dword [r14 - 0x1cc]
movsxd r8, dword [r14 - 0x1d4]
movsxd rcx, dword [r14 - 0x1d0]
mov dword [rsp + 0x28], ebp
imul r11, r10, 0x690
shl r8, 6
shl r10, 0xa
imul rdx, rcx, 0x690
lea r9, [r13 + r8 + 0x3488]
mov rcx, r13
lea rax, [r13 + r10 + 0x3588]
mov qword [rsp + 0x30], r9
mov r10, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r8, [r15 + rdx]
lea r9, [r10 + r11]
mov rdx, rsi
call fcn.6839c120
test eax, eax
je 0x6839d238
mov edx, dword [r14 - 0x1bc]
mov r8, rsi
mov r11d, edx
imul r11d, edi
shl r11d, 3
movsxd rcx, r11d
add rcx, rbx
add rcx, qword [r14 - 0x1b0]
call qword [rsp + 0x48d8]
mov ecx, dword [rsp + 0x48d0]
sub ecx, 1
mov dword [rsp + 0x48d0], ecx
test ecx, ecx
jg 0x6839e1b0
cmp dword [rsp + 0x4894], 0x17
jle 0x6839e310
movzx edx, byte [rsp + 0x4898]
add edx, 0x30
cmp dl, 7
ja 0x6839e018
mov r8d, dword [rsp + 0x48cc]
mov dword [rsp + 0x489c], 0
mov dword [rsp + 0x47e8], 0
test r8d, r8d
mov dword [rsp + 0x4788], 0
cmove r8d, r12d
mov byte [rsp + 0x4898], 0xff
add rbx, 8
mov dword [rsp + 0x4728], 0
mov qword [rsp + 0x4890], 0
mov dword [rsp + 0x48d0], r8d
mov dword [rsp + 0x48b4], 0
cmp qword [rsp + 0x40], rbx
jne 0x6839e1bf
add edi, 1
cmp dword [rsp + 0x60], edi
jne 0x6839e177
jmp 0x6839e018
mov rcx, r13
call fcn.68399260
jmp 0x6839e278
cdqe
movzx edx, byte [rbx + 0x38]
add rax, rsi
movq xmm5, rax
punpcklqdq xmm0, xmm5
movups xmmword [rbx + 0xb8], xmm0
mov rbx, qword [rsp + 0x170]
jmp 0x6839e08c
mov r15, qword [rbx + 0xb8]
cmp r15, qword [rbx + 0xc0]
jae 0x6839e590
lea r11, [r15 + 1]
mov qword [rbx + 0xb8], r11
movzx eax, byte [r15]
mov byte [rsp + 0x4898], al
jmp 0x6839ce08
mov dword [rsp + 0x48a8], 0
mov eax, dword [rsi + 0x30]
test eax, eax
je 0x6839e607
lea rbp, [rsi + 0x38]
mov rcx, qword [rsi + 0x28]
mov r8d, dword [rsi + 0x34]
mov rdx, rbp
call qword [rsi + 0x10]
lea r11, [rsi + 0x39]
test eax, eax
jne 0x6839e637
mov dword [rsi + 0x30], 0
xor edx, edx
xor ebx, ebx
mov byte [rsi + 0x38], 0
mov qword [rsp + 0x40], r11
movq xmm6, r11
movhps xmm6, qword [rsp + 0x40]
movups xmmword [rsi + 0xb8], xmm6
jmp 0x6839dc47
mov dword [rsp + 0x48a4], 0
mov edi, dword [rsi + 0x30]
test edi, edi
je 0x6839e37f
lea rbx, [rsi + 0x38]
mov rcx, qword [rsi + 0x28]
mov r8d, dword [rsi + 0x34]
mov rdx, rbx
call qword [rsi + 0x10]
lea r9, [rsi + 0x39]
test eax, eax
jne 0x6839e624
mov dword [rsi + 0x30], 0
mov byte [rsi + 0x38], 0
mov qword [rsp + 0x40], r9
movq xmm4, r9
movhps xmm4, qword [rsp + 0x40]
movups xmmword [rsi + 0xb8], xmm4
mov rsi, qword [rsp + 0x170]
mov rcx, qword [rsi + 0xb8]
mov r10, qword [rsi + 0xc0]
jmp 0x6839dc1c
mov edx, dword [rsi + 0x30]
test edx, edx
je 0x6839e3dd
lea r12, [rsi + 0x38]
mov rcx, qword [rsi + 0x28]
mov r8d, dword [rsi + 0x34]
lea r15, [rsi + 0x39]
mov rdx, r12
call qword [rsi + 0x10]
test eax, eax
jne 0x6839e657
mov dword [rsi + 0x30], 0
mov byte [rsi + 0x38], 0
mov qword [rsp + 0x40], r15
movq xmm3, r15
movhps xmm3, qword [rsp + 0x40]
movups xmmword [rsi + 0xb8], xmm3
mov rsi, qword [rsp + 0x170]
mov r8, qword [rsi + 0xb8]
mov r10, qword [rsi + 0xc0]
jmp 0x6839dbfd
mov r12d, dword [r12 + 4]
mov r11d, r12d
imul r11d, edi
imul r11d, dword [rsp + 0x50]
lea ecx, [r11 + 1]
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x6839e6f1
test r12d, r12d
je 0x6839d68d
mov r10d, dword [rsp + 0x4c]
mov dword [rsp + 0x40], r10d
jmp 0x6839d420
cmp dword [rsp + 0x4894], 0x17
jle 0x6839e617
movzx r15d, byte [rsp + 0x4898]
add r15d, 0x30
cmp r15b, 7
ja 0x6839e018
mov edi, dword [rsp + 0x48cc]
mov r8d, 0x7fffffff
mov dword [rsp + 0x489c], 0
mov dword [rsp + 0x47e8], 0
test edi, edi
mov dword [rsp + 0x4788], 0
cmove edi, r8d
mov byte [rsp + 0x4898], 0xff
mov dword [rsp + 0x4728], 0
mov qword [rsp + 0x4890], 0
mov dword [rsp + 0x48d0], edi
mov dword [rsp + 0x48b4], 0
jmp 0x6839dfdd
mov r14d, dword [rbx + 0x30]
test r14d, r14d
je 0x6839e610
lea rdi, [rbx + 0x38]
mov r8d, dword [rbx + 0x34]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
movsxd r8, eax
lea rax, [rbx + 0x39]
movq xmm2, rax
test r8d, r8d
jne 0x6839e720
punpcklqdq xmm2, xmm2
mov dword [rbx + 0x30], 0
xor eax, eax
mov byte [rbx + 0x38], 0
movups xmmword [rbx + 0xb8], xmm2
jmp 0x6839ce10
cdqe
movq xmm3, r8
movzx r9d, byte [r12 + 0x38]
add rax, r13
movq xmm4, rax
punpcklqdq xmm3, xmm4
movups xmmword [r12 + 0xb8], xmm3
jmp 0x6839cd5e
xor edx, edx
xor ebx, ebx
jmp 0x6839dc47
xor eax, eax
jmp 0x6839ce10
mov rcx, r13
call fcn.68399260
jmp 0x6839e50e
cdqe
add rax, rbx
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 0x38]
jmp 0x6839e41d
cdqe
add rax, rbp
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 0x38]
mov edx, eax
sar eax, 4
mov ebx, edx
and edx, 0xf
and ebx, 0xf
jmp 0x6839e3c7
cdqe
add rax, r12
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 0x38]
jmp 0x6839e485
mov r15d, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x58]
xor r14d, r14d
pxor xmm6, xmm6
test r15d, r15d
jle 0x6839e6f1
mov rcx, qword [rsi + 0x45d8]
test rcx, rcx
je 0x6839e698
call fcn.68313a20
movups xmmword [rsi + 0x45d0], xmm6
mov rcx, qword [rsi + 0x45e0]
test rcx, rcx
je 0x6839e6bf
call fcn.68313a20
mov qword [rsi + 0x45e0], 0
mov qword [rsi + 0x45f0], 0
mov rcx, qword [rsi + 0x45e8]
test rcx, rcx
je 0x6839e704
call fcn.68313a20
add r14d, 1
add rsi, 0x60
mov rdx, qword [rsp + 0x170]
mov qword [rsi + 0x4588], 0
cmp r14d, dword [rdx + 8]
jl 0x6839e680
lea r13, str.outofmem
mov qword [0x683c4440], r13
jmp 0x6839cbf0
mov rax, qword [rsp + 0x170]
add r14d, 1
add rsi, 0x60
cmp dword [rax + 8], r14d
jg 0x6839e680
jmp 0x6839e6f1
add r8, rdi
movzx eax, byte [rbx + 0x38]
movq xmm1, r8
punpcklqdq xmm2, xmm1
movups xmmword [rbx + 0xb8], xmm2
jmp 0x6839e373
mov dword [rsp + 0x48d0], 0x7fffffff
mov dword [rsp + 0x48b4], 0
jmp 0x6839d0b4
mov ebx, dword [rsp + 0x48cc]
mov dword [rsp + 0x489c], 0
mov dword [rsp + 0x47e8], 0
mov dword [rsp + 0x4788], 0
mov dword [rsp + 0x4728], 0
mov qword [rsp + 0x4890], 0
mov byte [rsp + 0x4898], 0xff
test ebx, ebx
je 0x6839f534
mov dword [rsp + 0x48d0], ebx
mov dword [rsp + 0x48b4], 0
cmp dword [rsp + 0x48b8], 1
je 0x6839e938
mov r12d, dword [rsp + 0x4704]
test r12d, r12d
jle 0x6839e028
mov r9d, dword [rsp + 0x4700]
xor ebp, ebp
test r9d, r9d
jle 0x6839e920
xor r12d, r12d
mov r8d, dword [rsp + 0x48b8]
mov qword [rsp + 0x40], 0
test r8d, r8d
jle 0x6839e8e0
mov r14, qword [rsp + 0x40]
movsxd r15, dword [r13 + r14*4 + 0x474c]
lea rdi, [r15 + r15*2]
mov r14, r15
shl rdi, 5
mov eax, dword [rsp + rdi + 0x4718]
test eax, eax
jle 0x6839e8c5
mov ecx, dword [rsp + rdi + 0x4714]
xor r15d, r15d
test ecx, ecx
jle 0x6839e8b0
lea rbx, [rsp + 0x48f0]
xor esi, esi
add rbx, rdi
jmp 0x6839e863
mov ecx, dword [rbx - 0x1dc]
add esi, 1
mov eax, dword [rbx - 0x1d8]
cmp ecx, esi
jle 0x6839e8b0
imul eax, ebp
movsxd r9, dword [rbx - 0x1d0]
mov r10, qword [rbx - 0x190]
imul ecx, r12d
imul r11, r9, 0x690
mov r9d, r14d
add eax, r15d
imul eax, dword [rbx - 0x188]
add ecx, esi
lea r8, [r13 + r11 + 8]
add eax, ecx
mov rcx, r13
shl eax, 6
cdqe
lea rdx, [r10 + rax*2]
call fcn.6839c6a0
test eax, eax
jne 0x6839e850
jmp 0x6839d238
add r15d, 1
cmp r15d, eax
jl 0x6839e838
mov r8d, dword [rsp + 0x48b8]
add qword [rsp + 0x40], 1
mov r14, qword [rsp + 0x40]
cmp r8d, r14d
jg 0x6839e807
nop dword [rax]
mov edi, dword [rsp + 0x48d0]
sub edi, 1
mov dword [rsp + 0x48d0], edi
test edi, edi
jle 0x6839f478
mov r9d, dword [rsp + 0x4700]
add r12d, 1
cmp r9d, r12d
jg 0x6839e7ed
mov r12d, dword [rsp + 0x4704]
nop word cs:[rax + rax]
add ebp, 1
cmp ebp, r12d
jl 0x6839e7e1
jmp 0x6839e018
movsxd rbp, dword [rsp + 0x48bc]
lea r11, [rbp + rbp*2]
mov dword [rsp + 0x88], ebp
shl r11, 5
mov r10d, dword [rsp + r11 + 0x472c]
mov ecx, dword [rsp + r11 + 0x4730]
lea edx, [r10 + 7]
lea eax, [rcx + 7]
sar edx, 3
sar eax, 3
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x8c], eax
test eax, eax
jle 0x6839e028
mov dword [rsp + 0x60], 0
mov r15, r13
mov qword [rsp + 0x80], r11
mov r8d, dword [rsp + 0x68]
lea r13, [rsp + 0x48f0]
add r13, qword [rsp + 0x80]
mov r14, r15
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x50], r13
test r8d, r8d
jg 0x6839ea24
jmp 0x6839f26b
movsxd r9, dword [rdi - 0x1d0]
mov rcx, r14
imul rdx, r9, 0x690
mov r9d, dword [rsp + 0x88]
lea r8, [r14 + rdx + 8]
mov rdx, r13
call fcn.6839c6a0
test eax, eax
je 0x6839f3a0
mov ebx, dword [rsp + 0x48d0]
sub ebx, 1
mov dword [rsp + 0x48d0], ebx
test ebx, ebx
jle 0x6839ec00
add dword [rsp + 0x40], 1
mov r13d, dword [rsp + 0x40]
cmp dword [rsp + 0x68], r13d
je 0x6839f268
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x60]
movsxd rbx, dword [rsp + 0x48a4]
imul eax, dword [rdi - 0x188]
add eax, dword [rsp + 0x40]
mov r15, qword [rdi - 0x190]
shl eax, 6
cdqe
lea r13, [r15 + rax*2]
test ebx, ebx
je 0x6839e9c8
mov r12d, dword [rsp + 0x48ac]
movsxd r9, dword [rdi - 0x1cc]
mov r15d, dword [rsp + 0x48b0]
mov ebp, dword [rsp + 0x48b4]
test r12d, r12d
jne 0x6839edb8
test ebp, ebp
jne 0x6839f1d8
mov r12, r9
lea rbp, [rsp + 0x48f0]
mov edi, dword [rsp + 0x4894]
shl r12, 0xa
lea rsi, [r14 + r12 + 0x3588]
imul r12, r9, 0x690
add r12, rbp
imul rbp, r9, 0x1a4
jmp 0x6839eb38
mov r10d, dword [rsp + 0x4890]
mov r11d, r10d
shr r11d, 0x17
mov ecx, r11d
movsx r9d, word [rsi + rcx*2]
mov ecx, r9d
test r9d, r9d
je 0x6839eb92
mov r8d, r9d
and ecx, 0xf
sar r9d, 8
sar r8d, 4
shl r10d, cl
sub edi, ecx
mov ecx, r15d
and r8d, 0xf
mov dword [rsp + 0x4890], r10d
lea r10, [0x683fb7c0]
shl r9d, cl
add r8d, ebx
mov dword [rsp + 0x4894], edi
movsxd r11, r8d
lea ebx, [r8 + 1]
movzx eax, byte [r10 + r11]
mov word [r13 + rax*2], r9w
cmp dword [rsp + 0x48a8], ebx
jl 0x6839e9f6
cmp edi, 0xf
jg 0x6839eac0
mov rcx, r14
call fcn.68399260
mov r10d, dword [rsp + 0x4890]
mov edi, dword [rsp + 0x4894]
mov r11d, r10d
shr r11d, 0x17
mov eax, r11d
movsx r9d, word [rsi + rax*2]
mov ecx, r9d
test r9d, r9d
jne 0x6839eae3
cmp edi, 0xf
jg 0x6839eb92
mov rcx, r14
call fcn.68399260
mov r10d, dword [rsp + 0x4890]
mov edi, dword [rsp + 0x4894]
mov r11d, r10d
shr r11d, 0x17
movsxd rdx, r11d
movzx r8d, byte [rdx + r12 - 0x2d38]
cmp r8d, 0xff
je 0x6839ed10
add r8, r12
movzx ecx, byte [r8 - 0x2838]
cmp ecx, edi
jg 0x6839f1f0
sub edi, ecx
shl r10d, cl
mov dword [rsp + 0x4894], edi
mov dword [rsp + 0x4890], r10d
movzx r10d, byte [r8 - 0x2938]
mov eax, r10d
sar eax, 4
and r10d, 0xf
jne 0x6839ec90
cmp eax, 0xf
jne 0x6839f3d8
add ebx, 0x10
jmp 0x6839eb2b
cmp dword [rsp + 0x4894], 0x17
jle 0x6839eda8
movzx eax, byte [rsp + 0x4898]
lea esi, [rax + 0x30]
cmp sil, 7
ja 0x6839f400
mov ebp, dword [rsp + 0x48cc]
mov r12d, 0x7fffffff
mov dword [rsp + 0x489c], 0
mov dword [rsp + 0x47e8], 0
test ebp, ebp
mov dword [rsp + 0x4788], 0
cmove ebp, r12d
mov byte [rsp + 0x4898], 0xff
mov dword [rsp + 0x4728], 0
mov qword [rsp + 0x4890], 0
mov dword [rsp + 0x48d0], ebp
mov dword [rsp + 0x48b4], 0
jmp 0x6839ea0f
add eax, ebx
lea rdx, [0x683fb7c0]
lea ebx, [rax + 1]
cdqe
movzx r8d, byte [rdx + rax]
cmp r10d, edi
jg 0x6839f1a8
mov eax, dword [rsp + 0x4890]
mov ecx, r10d
movsxd rdx, r10d
sub edi, r10d
lea r11, [0x683cd5a0]
lea r10, [0x683cd600]
mov dword [rsp + 0x4894], edi
mov r9d, eax
sar eax, 0x1f
rol r9d, cl
not eax
and eax, dword [r10 + rdx*4]
mov ecx, r9d
mov r9d, dword [r11 + rdx*4]
mov r11d, r9d
not r11d
and r11d, ecx
and ecx, r9d
lea edx, [rax + rcx]
mov ecx, r15d
mov dword [rsp + 0x4890], r11d
shl edx, cl
mov word [r13 + r8*2], dx
jmp 0x6839eb2b
mov r11d, r10d
shr r11d, 0x10
cmp r11d, dword [r12 - 0x270c]
jb 0x6839f2b8
cmp r11d, dword [r12 - 0x2708]
jb 0x6839f350
cmp r11d, dword [r12 - 0x2704]
jb 0x6839f370
cmp r11d, dword [r12 - 0x2700]
jb 0x6839f390
cmp r11d, dword [r12 - 0x26fc]
jb 0x6839f3c8
cmp r11d, dword [r12 - 0x26f8]
jb 0x6839f410
cmp r11d, dword [r12 - 0x26f4]
jb 0x6839f420
lea ebx, [rdi - 0x10]
mov rbp, r14
mov dword [rsp + 0x4894], ebx
mov rdi, qword [rsp + 0x170]
lea r14, str.bad_huffman_code
mov qword [0x683c4440], r14
mov r12d, dword [rdi + 8]
jmp 0x6839cb74
mov rcx, r14
call fcn.68399260
jmp 0x6839ec0e
mov r12d, 1
mov ecx, r15d
shl r12d, cl
mov word [rsp + 0x4c], r12w
test ebp, ebp
jne 0x6839f090
imul rdi, r9, 0x690
mov qword [rsp + 0x78], r13
mov r13d, dword [rsp + 0x4894]
lea r11, [rsp + 0x48f0]
imul r10, r9, 0x1a4
add rdi, r11
mov qword [rsp + 0x70], r10
cmp r13d, 0xf
jle 0x6839ef95
nop word [rax + rax]
mov r8d, dword [rsp + 0x4890]
mov edx, r8d
shr edx, 0x17
movzx eax, byte [rdx + rdi - 0x2d38]
cmp eax, 0xff
je 0x6839eff8
add rax, rdi
movzx ecx, byte [rax - 0x2838]
cmp ecx, r13d
jg 0x6839f1f0
shl r8d, cl
sub r13d, ecx
movzx r9d, byte [rax - 0x2938]
mov dword [rsp + 0x4890], r8d
mov dword [rsp + 0x4894], r13d
mov r15d, r9d
sar r15d, 4
and r9d, 0xf
mov ebp, r9d
jne 0x6839efb0
cmp r15d, 0xf
je 0x6839eeb0
mov r8d, 1
mov ecx, r15d
shl r8d, cl
sub r8d, 1
mov dword [rsp + 0x48b4], r8d
test r15d, r15d
jne 0x6839f148
mov ebp, r15d
mov r15d, 0x40
nop word cs:[rax + rax]
mov ecx, dword [rsp + 0x48a8]
cmp ebx, ecx
jg 0x6839e9f6
movsxd r13, ebx
lea r8, [0x683fb7c0]
lea r13, [r8 + r13]
jmp 0x6839ef0c
mov r10d, dword [rsp + 0x4894]
test r10d, r10d
jle 0x6839ef58
mov eax, dword [rsp + 0x4890]
sub r10d, 1
mov dword [rsp + 0x4894], r10d
lea r11d, [rax + rax]
mov dword [rsp + 0x4890], r11d
test eax, eax
js 0x6839ef30
add r13, 1
cmp ebx, ecx
jg 0x6839e9f6
movzx edx, byte [r13]
mov rsi, qword [rsp + 0x78]
add ebx, 1
lea rsi, [rsi + rdx*2]
cmp word [rsi], 0
jne 0x6839eed0
test r15d, r15d
je 0x6839ef78
sub r15d, 1
jmp 0x6839ef00
movzx r9d, word [rsi]
test word [rsp + 0x4c], r9w
jne 0x6839ef00
mov eax, r9d
lea r8d, [r9 + r12]
sub eax, r12d
test r9w, r9w
mov edx, eax
cmovg edx, r8d
mov word [rsi], dx
jmp 0x6839ef00
mov rcx, r14
call fcn.68399260
mov r10d, dword [rsp + 0x4894]
mov ecx, dword [rsp + 0x48a8]
jmp 0x6839eedd
mov word [rsi], bp
cmp ebx, ecx
jg 0x6839e9f6
mov r13d, dword [rsp + 0x4894]
cmp r13d, 0xf
jg 0x6839ee10
mov rcx, r14
call fcn.68399260
mov r13d, dword [rsp + 0x4894]
jmp 0x6839ee10
cmp ebp, 1
jne 0x6839f1f0
test r13d, r13d
je 0x6839f070
movsx ebp, word [rsp + 0x4c]
sub r13d, 1
lea r11d, [r8 + r8]
mov dword [rsp + 0x4894], r13d
mov r13d, ebp
mov dword [rsp + 0x4890], r11d
neg r13d
test r8d, r8d
cmovns ebp, r13d
jmp 0x6839eeb0
mov r15d, r8d
shr r15d, 0x10
cmp dword [rdi - 0x270c], r15d
ja 0x6839f200
cmp r15d, dword [rdi - 0x2708]
jb 0x6839f298
cmp r15d, dword [rdi - 0x2704]
jb 0x6839f2a8
cmp r15d, dword [rdi - 0x2700]
jb 0x6839f320
cmp r15d, dword [rdi - 0x26fc]
jb 0x6839f360
cmp r15d, dword [rdi - 0x26f8]
jb 0x6839f380
cmp r15d, dword [rdi - 0x26f4]
jb 0x6839f3b8
sub r13d, 0x10
mov rbp, r14
mov dword [rsp + 0x4894], r13d
jmp 0x6839ed86
mov rcx, r14
call fcn.68399260
mov r8d, dword [rsp + 0x4890]
mov r13d, dword [rsp + 0x4894]
jmp 0x6839efc2
mov r11d, dword [rsp + 0x48a8]
sub ebp, 1
mov dword [rsp + 0x48b4], ebp
cmp ebx, r11d
jg 0x6839e9f6
mov r15d, r12d
jmp 0x6839f0bd
add rbx, 1
cmp r11d, ebx
jl 0x6839e9f6
lea rbp, [0x683fb7c0]
movzx esi, byte [rbp + rbx]
lea rdi, [r13 + rsi*2]
cmp word [rdi], 0
je 0x6839f0b0
mov r10d, dword [rsp + 0x4894]
test r10d, r10d
jle 0x6839f128
mov ecx, dword [rsp + 0x4890]
sub r10d, 1
mov dword [rsp + 0x4894], r10d
lea r9d, [rcx + rcx]
mov dword [rsp + 0x4890], r9d
test ecx, ecx
jns 0x6839f0b0
movzx eax, word [rdi]
test r15w, ax
jne 0x6839f0b0
mov r8d, eax
lea edx, [rax + r12]
sub r8d, r12d
test ax, ax
cmovg r8d, edx
mov word [rdi], r8w
jmp 0x6839f0b0
mov rcx, r14
call fcn.68399260
mov r10d, dword [rsp + 0x4894]
mov r11d, dword [rsp + 0x48a8]
jmp 0x6839f0e1
cmp r15d, r13d
jg 0x6839f330
mov esi, dword [rsp + 0x4890]
movsxd r10, r15d
mov ecx, r15d
sub r13d, r15d
lea rax, [0x683cd5a0]
mov dword [rsp + 0x4894], r13d
mov r15d, 0x40
mov r11d, dword [rax + r10*4]
rol esi, cl
mov edx, esi
mov r9d, r11d
and edx, r11d
not r9d
add r8d, edx
and r9d, esi
mov dword [rsp + 0x48b4], r8d
mov dword [rsp + 0x4890], r9d
jmp 0x6839eeb0
mov rcx, r14
mov byte [rsp + 0x70], r8b
mov dword [rsp + 0x4c], r10d
call fcn.68399260
movzx r8d, byte [rsp + 0x70]
mov r10d, dword [rsp + 0x4c]
mov edi, dword [rsp + 0x4894]
jmp 0x6839ecac
sub ebp, 1
mov dword [rsp + 0x48b4], ebp
jmp 0x6839e9f6
mov rbp, r14
jmp 0x6839ed86
mov r9d, 0xa
cmp r9d, r13d
jg 0x6839f1f0
mov r10, qword [rsp + 0x70]
movsxd r11, r9d
mov ecx, 0x20
mov ebp, r8d
sub ecx, r9d
lea rsi, [0x683cd5a0]
sub r13d, r9d
lea rdx, [r11 + r10 + 0x820]
shr ebp, cl
mov ecx, r9d
and ebp, dword [rsi + r11*4]
add ebp, dword [rsp + rdx*4 + 0x184]
shl r8d, cl
mov dword [rsp + 0x4894], r13d
movsxd rax, ebp
mov dword [rsp + 0x4890], r8d
movzx r9d, byte [rdi + rax - 0x2938]
jmp 0x6839ee62
mov r15, r14
add dword [rsp + 0x60], 1
mov edi, dword [rsp + 0x60]
cmp dword [rsp + 0x8c], edi
jne 0x6839e993
movzx eax, byte [rsp + 0x4898]
mov r13, r15
jmp 0x6839e020
mov r9d, 0xb
jmp 0x6839f206
mov r9d, 0xc
jmp 0x6839f206
mov eax, 0xa
cmp eax, edi
jg 0x6839f1f0
mov ecx, 0x20
mov edx, r10d
movsxd r8, eax
sub edi, eax
sub ecx, eax
lea r9, [0x683cd5a0]
lea r11, [r8 + rbp + 0x820]
mov dword [rsp + 0x4894], edi
shr edx, cl
mov ecx, eax
and edx, dword [r9 + r8*4]
add edx, dword [rsp + r11*4 + 0x184]
shl r10d, cl
mov dword [rsp + 0x4890], r10d
movsxd r10, edx
movzx r10d, byte [r10 + r12 - 0x2938]
jmp 0x6839ebda
mov r9d, 0xd
jmp 0x6839f206
mov rcx, r14
call fcn.68399260
mov r8d, dword [rsp + 0x48b4]
mov r13d, dword [rsp + 0x4894]
jmp 0x6839f151
mov eax, 0xb
jmp 0x6839f2bd
mov r9d, 0xe
jmp 0x6839f206
mov eax, 0xc
jmp 0x6839f2bd
mov r9d, 0xf
jmp 0x6839f206
mov eax, 0xd
jmp 0x6839f2bd
mov rbp, r14
mov r14, qword [rsp + 0x170]
mov r12d, dword [r14 + 8]
jmp 0x6839cb74
mov r9d, 0x10
jmp 0x6839f206
mov eax, 0xe
jmp 0x6839f2bd
mov ebx, 1
mov ecx, eax
shl ebx, cl
mov dword [rsp + 0x48b4], ebx
test eax, eax
jne 0x6839f430
sub ebx, 1
mov dword [rsp + 0x48b4], ebx
jmp 0x6839e9f6
mov r13, r14
jmp 0x6839e020
mov eax, 0xf
jmp 0x6839f2bd
mov eax, 0x10
jmp 0x6839f2bd
cmp eax, edi
jg 0x6839f504
movsxd rbp, eax
lea r12, [0x683cd5a0]
mov ecx, eax
sub edi, eax
mov r13d, dword [r12 + rbp*4]
mov esi, dword [rsp + 0x4890]
mov dword [rsp + 0x4894], edi
mov r15d, r13d
rol esi, cl
not r15d
and r15d, esi
and esi, r13d
mov dword [rsp + 0x4890], r15d
add ebx, esi
jmp 0x6839f3ec
cmp dword [rsp + 0x4894], 0x17
jle 0x6839f527
movzx eax, byte [rsp + 0x4898]
lea r15d, [rax + 0x30]
cmp r15b, 7
ja 0x6839e020
mov esi, dword [rsp + 0x48cc]
mov ebx, 0x7fffffff
mov dword [rsp + 0x489c], 0
mov dword [rsp + 0x47e8], 0
test esi, esi
mov dword [rsp + 0x4788], 0
cmove esi, ebx
mov byte [rsp + 0x4898], 0xff
mov dword [rsp + 0x4728], 0
mov qword [rsp + 0x4890], 0
mov dword [rsp + 0x48d0], esi
mov dword [rsp + 0x48b4], 0
jmp 0x6839e8f9
mov rcx, r14
mov dword [rsp + 0x4c], eax
call fcn.68399260
mov ebx, dword [rsp + 0x48b4]
mov edi, dword [rsp + 0x4894]
mov eax, dword [rsp + 0x4c]
jmp 0x6839f438
mov rcx, r13
call fcn.68399260
jmp 0x6839f486
mov dword [rsp + 0x48d0], 0x7fffffff
mov dword [rsp + 0x48b4], 0
jmp 0x6839e7b8
mov rbx, qword [rsp + 0x58]
xor ebp, ebp
pxor xmm6, xmm6
jmp 0x6839f5be
mov rcx, qword [rbx + 0x45d8]
test rcx, rcx
je 0x6839f574
call fcn.68313a20
movups xmmword [rbx + 0x45d0], xmm6
mov rcx, qword [rbx + 0x45e0]
test rcx, rcx
je 0x6839f59b
call fcn.68313a20
mov qword [rbx + 0x45e0], 0
mov qword [rbx + 0x45f0], 0
mov rcx, qword [rbx + 0x45e8]
test rcx, rcx
je 0x6839f5b7
call fcn.68313a20
mov qword [rbx + 0x45e8], 0
add ebp, 1
add rbx, 0x60
mov rdi, qword [rsp + 0x170]
cmp dword [rdi + 8], ebp
jg 0x6839f55c
jmp 0x6839e6f1
xor r8d, r8d
jmp 0x6839d884