Function at 0x692df6f0
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.6924cfe0
sub rsp, rax
movups xmmword [rsp + 0x48f0], xmm6
lea rdi, [0x692ddb90]
lea rbx, [0x692f0ba0]
movq xmm0, rdi
cmp dword [rsp + 0x4970], 4
mov qword [rsp + 0x4958], rdx
lea rdx, [0x692cbfd0]
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 0x692df970
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.692d8c50
test eax, eax
jne 0x692df878
nop word [rax + rax]
mov rsi, qword [rsp + 0x170]
mov r12d, dword [rsi + 8]
xor edi, edi
pxor xmm6, xmm6
test r12d, r12d
jle 0x692df850
mov rcx, qword [rbp + 0x45d8]
test rcx, rcx
je 0x692df7f7
call fcn.69253a20
movups xmmword [rbp + 0x45d0], xmm6
mov rcx, qword [rbp + 0x45e0]
test rcx, rcx
je 0x692df81e
call fcn.69253a20
mov qword [rbp + 0x45e0], 0
mov qword [rbp + 0x45f0], 0
mov rcx, qword [rbp + 0x45e8]
test rcx, rcx
je 0x692df83a
call fcn.69253a20
mov qword [rbp + 0x45e8], 0
mov rcx, qword [rsp + 0x170]
add edi, 1
add rbp, 0x60
cmp dword [rcx + 8], edi
jg 0x692df7df
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 0x692df990
mov byte [rsp + 0x4898], 0xff
movzx edx, al
cmp al, 0xd9
je 0x692dfa86
lea rbx, [rsp + 0x1bb8]
mov r13, rbp
mov qword [rsp + 0x58], rbx
nop dword [rax + rax]
cmp edx, 0xda
jne 0x692dfa50
mov rdi, qword [rsp + 0x170]
mov rbp, qword [rdi + 0xb8]
mov rcx, qword [rdi + 0xc0]
cmp rbp, rcx
jae 0x692dff98
lea rsi, [rbp + 1]
mov qword [rdi + 0xb8], rsi
movzx r14d, byte [rbp]
shl r14d, 8
cmp rsi, rcx
jae 0x692dfff3
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 0x692dff30
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 0x692e043c
mov r12d, dword [rsi + 8]
cmp r12d, r9d
jge 0x692e03c0
mov rbp, r13
lea r10, str.bad_SOS_component_count
mov qword [0x69306440], r10
jmp 0x692df7d4
lea r9, str.bad_req_comp
xor r13d, r13d
mov qword [0x69306440], r9
jmp 0x692df853
mov r12, qword [rsp + 0x170]
mov rcx, qword [r12 + 0xb8]
cmp rcx, qword [r12 + 0xc0]
jae 0x692e0740
lea r10, [rcx + 1]
mov qword [r12 + 0xb8], r10
movzx r9d, byte [rcx]
cmp r9b, 0xff
jne 0x692e078e
nop dword [rax + rax]
mov r14, qword [rsp + 0x170]
mov r11, qword [r14 + 0xb8]
cmp r11, qword [r14 + 0xc0]
jae 0x692e07a0
lea rdx, [r11 + 1]
mov qword [r14 + 0xb8], rdx
movzx eax, byte [r11]
cmp al, 0xff
je 0x692df9d0
jmp 0x692df890
mov ecx, dword [rbx + 0x30]
test ecx, ecx
je 0x692dfa48
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 0x692e0478
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.692eeba0
test eax, eax
je 0x692dfe98
movzx eax, byte [rsp + 0x4898]
cmp al, 0xff
je 0x692dfc20
mov byte [rsp + 0x4898], 0xff
movzx edx, al
cmp al, 0xd9
jne 0x692df8b0
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 0x692e0928
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 0x692e06c0
mov dword [rsp + 0x40], 1
cmp r10d, 3
jne 0x692e06c0
mov qword [rsp + 0x58], rbp
lea r13d, [rdi + 3]
mov r14, rbp
xor r15d, r15d
lea rsi, [rsp + 0xb0]
jmp 0x692dfb5f
movabs r8, 0x200000001
cmp r9, r8
je 0x692dfc10
movabs rax, 0x100000002
cmp r9, rax
je 0x692dfc00
movabs rdx, 0x200000002
cmp r9, rdx
je 0x692dff20
lea r11, [0x692f0150]
mov qword [rsi], r11
nop dword [rax + rax]
add r15d, 1
add r14, 0x60
add rsi, 0x30
cmp r15d, dword [rsp + 0x40]
jge 0x692e0050
mov rcx, r13
call sub.msvcrt.dll_malloc
mov qword [r14 + 0x45e8], rax
test rax, rax
je 0x692e12ca
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 0x692dfb00
lea r8, [0x692cbfc0]
mov qword [rsi], r8
jmp 0x692dfb48
lea r9, [0x692f0550]
mov qword [rsi], r9
jmp 0x692dfb48
lea rcx, [0x692f0cd0]
mov qword [rsi], rcx
jmp 0x692dfb48
mov rbx, qword [rsp + 0x170]
mov r10, qword [rbx + 0xb8]
cmp r10, qword [rbx + 0xc0]
jae 0x692dfa08
lea rbp, [r10 + 1]
mov qword [rbx + 0xb8], rbp
movzx edx, byte [r10]
cmp dl, 0xff
jne 0x692dfa48
nop dword [rax]
mov r12, qword [rsp + 0x170]
mov r15, qword [r12 + 0xb8]
cmp r15, qword [r12 + 0xc0]
jae 0x692dfea0
lea r8, [r15 + 1]
mov qword [r12 + 0xb8], r8
movzx eax, byte [r15]
cmp al, 0xff
je 0x692dfc58
jmp 0x692dfa78
test edi, edi
jne 0x692e0900
test eax, eax
jne 0x692e0900
test bl, bl
jne 0x692e0900
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 0x692e139c
mov dword [rsp + 0x48d0], eax
mov dword [rsp + 0x48b4], 0
cmp dword [rsp + 0x48b8], 1
je 0x692e0d78
mov ecx, dword [rsp + 0x4704]
test ecx, ecx
jle 0x692e0c88
mov dword [rsp + 0x4c], 0
mov eax, dword [rsp + 0x4700]
test eax, eax
jle 0x692e0c60
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 0x692e0c20
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 0x692e0c0c
mov esi, dword [rsp + rbp + 0x4714]
xor r12d, r12d
test esi, esi
jle 0x692e0bf7
lea rcx, [rsp + 0x48f0]
xor r15d, r15d
lea rdi, [rcx + rbp]
jmp 0x692dfe13
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 0x692e0bf0
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.692ded80
test eax, eax
jne 0x692dfdd0
mov rbp, r13
jmp 0x692df7c8
mov edx, dword [r12 + 0x30]
test edx, edx
je 0x692dfa50
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 0x692dff00
punpcklqdq xmm6, xmm6
mov byte [r12 + 0x38], 0
mov dword [r12 + 0x30], 0
movups xmmword [r12 + 0xb8], xmm6
jmp 0x692dfa50
add rdx, r14
movzx eax, byte [r12 + 0x38]
movq xmm0, rdx
punpcklqdq xmm6, xmm0
movups xmmword [r12 + 0xb8], xmm6
jmp 0x692dfc86
mov r10, qword [rsp + 0x48e8]
mov qword [rsi], r10
jmp 0x692dfb48
mov edx, dword [rdi + 0x30]
test edx, edx
je 0x692e03e8
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 0x692e0400
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 0x692df95c
mov r14d, dword [rdi + 0x30]
test r14d, r14d
je 0x692df911
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 0x692e0460
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 0x692df8f8
mov r8d, dword [rdi + 0x30]
test r8d, r8d
je 0x692e003b
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 0x692e0448
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 0x692df911
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 0x692e21af
test r12d, r12d
je 0x692e0260
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 0x692e016a
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 0x692e0124
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 0x692e01d0
mov dword [rbx + 0x24], ebp
add rbx, 0x30
add rdi, 0x60
add r13, 8
cmp qword [rsp + 0x68], r13
jne 0x692e00f8
mov rbx, qword [rsp + 0x170]
mov edi, dword [rbx]
mov rdx, qword [rsp + 0x90]
cmp r14d, 2
jle 0x692e0210
cmp dword [rbx + 8], 3
jne 0x692e0330
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 0x692e024d
mov edi, dword [rbx]
jmp 0x692e00c8
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 0x692e014d
movsxd r8, dword [rdi + 0x45c4]
add rsi, r8
mov qword [rbx + 0x10], rsi
jmp 0x692e014d
cmp r14d, 1
je 0x692e0370
test edi, edi
je 0x692e01b1
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 0x692e0220
add dword [rsp + 0x4c], r14d
add r15d, 1
cmp dword [rbx + 4], r15d
ja 0x692e01c4
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 0x692e02ed
nop dword [rax]
mov rcx, qword [rbp + 0x45d8]
test rcx, rcx
je 0x692e0290
call fcn.69253a20
movups xmmword [rbp + 0x45d0], xmm6
mov rcx, qword [rbp + 0x45e0]
test rcx, rcx
je 0x692e02b7
call fcn.69253a20
mov qword [rbp + 0x45e0], 0
mov qword [rbp + 0x45f0], 0
mov rcx, qword [rbp + 0x45e8]
test rcx, rcx
je 0x692e03a0
call fcn.69253a20
add r12d, 1
add rbp, 0x60
mov rbx, qword [rsp + 0x170]
mov qword [rbp + 0x4588], 0
cmp r12d, dword [rbx + 8]
jl 0x692e0278
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 0x692df853
mov eax, dword [rbx + 8]
mov r11, qword [rsp + 0x4968]
mov dword [r11], eax
jmp 0x692df853
test edi, edi
je 0x692e01b1
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 0x692e0340
jmp 0x692e01b1
test edi, edi
je 0x692e01b1
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 0x692e0380
jmp 0x692e01b1
mov rbx, qword [rsp + 0x170]
add r12d, 1
add rbp, 0x60
cmp dword [rbx + 8], r12d
jg 0x692e0278
jmp 0x692e02ed
lea edi, [r9 + r9 + 6]
cmp edi, r14d
je 0x692e04a0
lea rbx, str.bad_SOS_len
mov rbp, r13
mov qword [0x69306440], rbx
jmp 0x692df7d4
mov dword [rsp + 0x48b8], 0
mov rbp, r13
mov r12d, dword [rdi + 8]
jmp 0x692df95c
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 0x692df94c
mov rbp, r13
jmp 0x692dff8a
movzx r10d, byte [rdi + 0x38]
cdqe
add rax, r15
mov qword [rsp + 0x40], rax
add r14d, r10d
jmp 0x692e002a
lea rcx, [r12 + r14]
movzx r14d, byte [rdi + 0x38]
shl r14d, 8
jmp 0x692dffd5
cdqe
movzx edx, byte [rbx + 0x38]
add rax, rsi
movq xmm4, rax
punpcklqdq xmm3, xmm4
movups xmmword [rbx + 0xb8], xmm3
jmp 0x692dfc4b
test r9d, r9d
je 0x692e0838
xor r14d, r14d
jmp 0x692e05a1
lea r12, [r11 + 1]
mov qword [rsi + 0xb8], r12
movzx ebx, byte [r11]
cmp r12, r15
jae 0x692e0624
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 0x692e06e0
cmp ebx, dword [rsp + 0x4710]
je 0x692e06f0
cmp r10d, 1
je 0x692e0700
cmp ebx, dword [rsp + 0x4770]
je 0x692e0710
cmp r10d, 2
je 0x692e0720
cmp ebx, dword [rsp + 0x47d0]
je 0x692e0730
cmp r10d, 3
je 0x692e0818
cmp dword [rsp + 0x4830], ebx
je 0x692e0828
mov r12d, 4
cmp r10d, r12d
je 0x692e0ba8
movsxd r11, r12d
sar eax, 4
lea rbx, [r11 + r11*2]
shl rbx, 5
mov dword [rsp + rbx + 0x4720], eax
cmp eax, 3
jg 0x692e0bb0
mov ebp, r8d
and ebp, 0xf
and r8d, 0xc
mov dword [rsp + rbx + 0x4724], ebp
jne 0x692e0bd0
mov dword [r13 + r14*4 + 0x474c], r12d
add r14, 1
cmp dword [rsp + 0x48b8], r14d
jle 0x692e0838
mov r11, qword [rsi + 0xb8]
mov r15, qword [rsi + 0xc0]
cmp r11, r15
jb 0x692e04b8
mov ebx, dword [rsi + 0x30]
test ebx, ebx
je 0x692e0680
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 0x692e0690
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 0x692e04d0
mov eax, dword [rsi + 0x30]
test eax, eax
je 0x692e2230
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 0x692e06a8
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 0x692e04e4
xor eax, eax
xor r8d, r8d
jmp 0x692e04e4
lea rax, [rbp + rbx]
movzx ebx, byte [rsi + 0x38]
mov qword [rsp + 0x40], rax
jmp 0x692e05f4
cdqe
add rax, rdi
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 0x38]
mov r8d, eax
jmp 0x692e065c
mov r9d, dword [rsp + 0x4c]
test r9d, r9d
jle 0x692e1118
mov dword [rsp + 0x40], r9d
jmp 0x692dfae7
xor r12d, r12d
jmp 0x692e0549
xor r12d, r12d
jmp 0x692e0552
mov r12d, 1
jmp 0x692e0549
mov r12d, 1
jmp 0x692e0552
mov r12d, 2
jmp 0x692e0549
mov r12d, 2
jmp 0x692e0552
mov esi, dword [r12 + 0x30]
test esi, esi
je 0x692e078e
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 0x692e1240
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 0x692df89b
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x692df89b
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 0x692e07f0
movq xmm2, rdi
mov dword [r14 + 0x30], 0
punpcklqdq xmm2, xmm2
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm2
jmp 0x692df89b
add rdx, r15
movq xmm6, rdi
movzx eax, byte [r14 + 0x38]
movq xmm0, rdx
punpcklqdq xmm6, xmm0
movups xmmword [r14 + 0xb8], xmm6
jmp 0x692df9fb
mov r12d, 3
jmp 0x692e0549
mov r12d, 3
jmp 0x692e0552
mov rax, qword [rsi + 0xb8]
mov r10, qword [rsi + 0xc0]
cmp rax, r10
jae 0x692e10b0
lea r8, [rax + 1]
mov qword [rsi + 0xb8], r8
movzx eax, byte [rax]
mov dword [rsp + 0x48a4], eax
cmp r8, r10
jae 0x692e1048
lea rcx, [r8 + 1]
mov qword [rsi + 0xb8], rcx
movzx eax, byte [r8]
mov dword [rsp + 0x48a8], eax
cmp rcx, r10
jae 0x692e0fea
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 0x692dfc90
cmp edi, 0x3f
jg 0x692e0900
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 0x692e0900
cmp bl, 0xd
jbe 0x692e13b7
nop dword [rax]
mov r11, qword [rsp + 0x170]
mov rbp, r13
lea r13, str.bad_SOS
mov qword [0x69306440], r13
mov r12d, dword [r11 + 8]
jmp 0x692df7d4
mov edx, ecx
test ecx, ecx
jle 0x692dfaa9
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 0x692e0b8d
test r9d, r9d
jle 0x692e0b85
xor r15d, r15d
lea r12d, [r9 - 1]
nop
mov ebx, r12d
xor r14d, r14d
jmp 0x692e0a6d
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 0x692e0b70
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 0x692e0980
lea r9, [r11 + rax + 0x80]
cmp rdx, r9
jae 0x692e0980
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 0x692e0a39
jmp 0x692e0ac7
add r15d, 1
cmp esi, r15d
jne 0x692e0970
mov r12, qword [rsp + 0x170]
mov edx, dword [r12 + 8]
mov rbx, r12
add edi, 1
add r13, 0x60
cmp edi, edx
jl 0x692e093b
mov dword [rsp + 0x4c], edx
jmp 0x692dfaa9
mov rbp, r13
jmp 0x692df7d4
lea r14, str.bad_DC_huff
mov r12d, dword [rsi + 8]
mov rbp, r13
mov qword [0x69306440], r14
jmp 0x692df7d4
mov rbp, r13
lea r13, str.bad_AC_huff
mov r12d, dword [rsi + 8]
mov qword [0x69306440], r13
jmp 0x692df7d4
mov ebx, dword [rsp + rbp + 0x4718]
add r12d, 1
cmp r12d, ebx
jl 0x692dfdb2
mov r12d, dword [rsp + 0x48b8]
add qword [rsp + 0x68], 1
mov rbp, qword [rsp + 0x68]
cmp r12d, ebp
jg 0x692dfd7f
mov r14d, dword [rsp + 0x48d0]
sub r14d, 1
mov dword [rsp + 0x48d0], r14d
test r14d, r14d
jle 0x692e1160
add dword [rsp + 0x40], 1
mov eax, dword [rsp + 0x4700]
mov r9d, dword [rsp + 0x40]
cmp eax, r9d
jg 0x692dfd5d
mov ecx, dword [rsp + 0x4704]
nop
add dword [rsp + 0x4c], 1
mov r10d, dword [rsp + 0x4c]
cmp r10d, ecx
jl 0x692dfd40
nop dword [rax + rax]
movzx eax, byte [rsp + 0x4898]
cmp al, 0xff
jne 0x692dfa70
mov rbx, qword [rsp + 0x170]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x692e0cb1
mov rcx, qword [rbx + 0x28]
call qword [rbx + 0x20]
test eax, eax
je 0x692e0cc5
mov r8d, dword [rbx + 0x30]
test r8d, r8d
je 0x692dfa60
mov r11, qword [rbx + 0xc0]
cmp qword [rbx + 0xb8], r11
jae 0x692dfa60
mov rbx, qword [rsp + 0x170]
mov r10, qword [rbx + 0xb8]
cmp r10, qword [rbx + 0xc0]
jae 0x692e0d20
lea rbp, [r10 + 1]
mov qword [rbx + 0xb8], rbp
movzx edx, byte [r10]
cmp edx, 0xff
je 0x692e0fb0
test edx, edx
je 0x692e0c90
lea r12, str.junk_before_marker
mov rbp, r13
mov qword [0x69306440], r12
mov r12d, dword [rbx + 8]
jmp 0x692df7d4
mov ecx, dword [rbx + 0x30]
mov rax, qword [rbx + 0x10]
test ecx, ecx
je 0x692e0c94
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 0x692e0f80
punpcklqdq xmm0, xmm0
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
movups xmmword [rbx + 0xb8], xmm0
mov rbx, qword [rsp + 0x170]
jmp 0x692e0c90
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 0x692e0c88
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 0x692e0f5d
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 0x692e0e1f
add rbx, 8
cmp qword [rsp + 0x40], rbx
je 0x692e0f5d
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.692ded80
test eax, eax
je 0x692dfe98
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 0x692e0e10
cmp dword [rsp + 0x4894], 0x17
jle 0x692e0f70
movzx edx, byte [rsp + 0x4898]
add edx, 0x30
cmp dl, 7
ja 0x692e0c78
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 0x692e0e1f
add edi, 1
cmp dword [rsp + 0x60], edi
jne 0x692e0dd7
jmp 0x692e0c78
mov rcx, r13
call fcn.692dbec0
jmp 0x692e0ed8
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 0x692e0cec
mov r15, qword [rbx + 0xb8]
cmp r15, qword [rbx + 0xc0]
jae 0x692e11f0
lea r11, [r15 + 1]
mov qword [rbx + 0xb8], r11
movzx eax, byte [r15]
mov byte [rsp + 0x4898], al
jmp 0x692dfa68
mov dword [rsp + 0x48a8], 0
mov eax, dword [rsi + 0x30]
test eax, eax
je 0x692e1267
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 0x692e1297
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 0x692e08a7
mov dword [rsp + 0x48a4], 0
mov edi, dword [rsi + 0x30]
test edi, edi
je 0x692e0fdf
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 0x692e1284
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 0x692e087c
mov edx, dword [rsi + 0x30]
test edx, edx
je 0x692e103d
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 0x692e12b7
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 0x692e085d
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 0x692e1351
test r12d, r12d
je 0x692e02ed
mov r10d, dword [rsp + 0x4c]
mov dword [rsp + 0x40], r10d
jmp 0x692e0080
cmp dword [rsp + 0x4894], 0x17
jle 0x692e1277
movzx r15d, byte [rsp + 0x4898]
add r15d, 0x30
cmp r15b, 7
ja 0x692e0c78
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 0x692e0c3d
mov r14d, dword [rbx + 0x30]
test r14d, r14d
je 0x692e1270
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 0x692e1380
punpcklqdq xmm2, xmm2
mov dword [rbx + 0x30], 0
xor eax, eax
mov byte [rbx + 0x38], 0
movups xmmword [rbx + 0xb8], xmm2
jmp 0x692dfa70
cdqe
movq xmm3, r8
movzx r9d, byte [r12 + 0x38]
add rax, r13
movq xmm4, rax
punpcklqdq xmm3, xmm4
movups xmmword [r12 + 0xb8], xmm3
jmp 0x692df9be
xor edx, edx
xor ebx, ebx
jmp 0x692e08a7
xor eax, eax
jmp 0x692dfa70
mov rcx, r13
call fcn.692dbec0
jmp 0x692e116e
cdqe
add rax, rbx
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 0x38]
jmp 0x692e107d
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 0x692e1027
cdqe
add rax, r12
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 0x38]
jmp 0x692e10e5
mov r15d, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x58]
xor r14d, r14d
pxor xmm6, xmm6
test r15d, r15d
jle 0x692e1351
mov rcx, qword [rsi + 0x45d8]
test rcx, rcx
je 0x692e12f8
call fcn.69253a20
movups xmmword [rsi + 0x45d0], xmm6
mov rcx, qword [rsi + 0x45e0]
test rcx, rcx
je 0x692e131f
call fcn.69253a20
mov qword [rsi + 0x45e0], 0
mov qword [rsi + 0x45f0], 0
mov rcx, qword [rsi + 0x45e8]
test rcx, rcx
je 0x692e1364
call fcn.69253a20
add r14d, 1
add rsi, 0x60
mov rdx, qword [rsp + 0x170]
mov qword [rsi + 0x4588], 0
cmp r14d, dword [rdx + 8]
jl 0x692e12e0
lea r13, str.outofmem
mov qword [0x69306440], r13
jmp 0x692df850
mov rax, qword [rsp + 0x170]
add r14d, 1
add rsi, 0x60
cmp dword [rax + 8], r14d
jg 0x692e12e0
jmp 0x692e1351
add r8, rdi
movzx eax, byte [rbx + 0x38]
movq xmm1, r8
punpcklqdq xmm2, xmm1
movups xmmword [rbx + 0xb8], xmm2
jmp 0x692e0fd3
mov dword [rsp + 0x48d0], 0x7fffffff
mov dword [rsp + 0x48b4], 0
jmp 0x692dfd14
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 0x692e2194
mov dword [rsp + 0x48d0], ebx
mov dword [rsp + 0x48b4], 0
cmp dword [rsp + 0x48b8], 1
je 0x692e1598
mov r12d, dword [rsp + 0x4704]
test r12d, r12d
jle 0x692e0c88
mov r9d, dword [rsp + 0x4700]
xor ebp, ebp
test r9d, r9d
jle 0x692e1580
xor r12d, r12d
mov r8d, dword [rsp + 0x48b8]
mov qword [rsp + 0x40], 0
test r8d, r8d
jle 0x692e1540
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 0x692e1525
mov ecx, dword [rsp + rdi + 0x4714]
xor r15d, r15d
test ecx, ecx
jle 0x692e1510
lea rbx, [rsp + 0x48f0]
xor esi, esi
add rbx, rdi
jmp 0x692e14c3
mov ecx, dword [rbx - 0x1dc]
add esi, 1
mov eax, dword [rbx - 0x1d8]
cmp ecx, esi
jle 0x692e1510
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.692df300
test eax, eax
jne 0x692e14b0
jmp 0x692dfe98
add r15d, 1
cmp r15d, eax
jl 0x692e1498
mov r8d, dword [rsp + 0x48b8]
add qword [rsp + 0x40], 1
mov r14, qword [rsp + 0x40]
cmp r8d, r14d
jg 0x692e1467
nop dword [rax]
mov edi, dword [rsp + 0x48d0]
sub edi, 1
mov dword [rsp + 0x48d0], edi
test edi, edi
jle 0x692e20d8
mov r9d, dword [rsp + 0x4700]
add r12d, 1
cmp r9d, r12d
jg 0x692e144d
mov r12d, dword [rsp + 0x4704]
nop word cs:[rax + rax]
add ebp, 1
cmp ebp, r12d
jl 0x692e1441
jmp 0x692e0c78
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 0x692e0c88
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 0x692e1684
jmp 0x692e1ecb
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.692df300
test eax, eax
je 0x692e2000
mov ebx, dword [rsp + 0x48d0]
sub ebx, 1
mov dword [rsp + 0x48d0], ebx
test ebx, ebx
jle 0x692e1860
add dword [rsp + 0x40], 1
mov r13d, dword [rsp + 0x40]
cmp dword [rsp + 0x68], r13d
je 0x692e1ec8
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 0x692e1628
mov r12d, dword [rsp + 0x48ac]
movsxd r9, dword [rdi - 0x1cc]
mov r15d, dword [rsp + 0x48b0]
mov ebp, dword [rsp + 0x48b4]
test r12d, r12d
jne 0x692e1a18
test ebp, ebp
jne 0x692e1e38
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 0x692e1798
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 0x692e17f2
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, [0x69350cc0]
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 0x692e1656
cmp edi, 0xf
jg 0x692e1720
mov rcx, r14
call fcn.692dbec0
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 0x692e1743
cmp edi, 0xf
jg 0x692e17f2
mov rcx, r14
call fcn.692dbec0
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 0x692e1970
add r8, r12
movzx ecx, byte [r8 - 0x2838]
cmp ecx, edi
jg 0x692e1e50
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 0x692e18f0
cmp eax, 0xf
jne 0x692e2038
add ebx, 0x10
jmp 0x692e178b
cmp dword [rsp + 0x4894], 0x17
jle 0x692e1a08
movzx eax, byte [rsp + 0x4898]
lea esi, [rax + 0x30]
cmp sil, 7
ja 0x692e2060
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 0x692e166f
add eax, ebx
lea rdx, [0x69350cc0]
lea ebx, [rax + 1]
cdqe
movzx r8d, byte [rdx + rax]
cmp r10d, edi
jg 0x692e1e08
mov eax, dword [rsp + 0x4890]
mov ecx, r10d
movsxd rdx, r10d
sub edi, r10d
lea r11, [0x6930f6c0]
lea r10, [0x6930f720]
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 0x692e178b
mov r11d, r10d
shr r11d, 0x10
cmp r11d, dword [r12 - 0x270c]
jb 0x692e1f18
cmp r11d, dword [r12 - 0x2708]
jb 0x692e1fb0
cmp r11d, dword [r12 - 0x2704]
jb 0x692e1fd0
cmp r11d, dword [r12 - 0x2700]
jb 0x692e1ff0
cmp r11d, dword [r12 - 0x26fc]
jb 0x692e2028
cmp r11d, dword [r12 - 0x26f8]
jb 0x692e2070
cmp r11d, dword [r12 - 0x26f4]
jb 0x692e2080
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 [0x69306440], r14
mov r12d, dword [rdi + 8]
jmp 0x692df7d4
mov rcx, r14
call fcn.692dbec0
jmp 0x692e186e
mov r12d, 1
mov ecx, r15d
shl r12d, cl
mov word [rsp + 0x4c], r12w
test ebp, ebp
jne 0x692e1cf0
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 0x692e1bf5
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 0x692e1c58
add rax, rdi
movzx ecx, byte [rax - 0x2838]
cmp ecx, r13d
jg 0x692e1e50
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 0x692e1c10
cmp r15d, 0xf
je 0x692e1b10
mov r8d, 1
mov ecx, r15d
shl r8d, cl
sub r8d, 1
mov dword [rsp + 0x48b4], r8d
test r15d, r15d
jne 0x692e1da8
mov ebp, r15d
mov r15d, 0x40
nop word cs:[rax + rax]
mov ecx, dword [rsp + 0x48a8]
cmp ebx, ecx
jg 0x692e1656
movsxd r13, ebx
lea r8, [0x69350cc0]
lea r13, [r8 + r13]
jmp 0x692e1b6c
mov r10d, dword [rsp + 0x4894]
test r10d, r10d
jle 0x692e1bb8
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 0x692e1b90
add r13, 1
cmp ebx, ecx
jg 0x692e1656
movzx edx, byte [r13]
mov rsi, qword [rsp + 0x78]
add ebx, 1
lea rsi, [rsi + rdx*2]
cmp word [rsi], 0
jne 0x692e1b30
test r15d, r15d
je 0x692e1bd8
sub r15d, 1
jmp 0x692e1b60
movzx r9d, word [rsi]
test word [rsp + 0x4c], r9w
jne 0x692e1b60
mov eax, r9d
lea r8d, [r9 + r12]
sub eax, r12d
test r9w, r9w
mov edx, eax
cmovg edx, r8d
mov word [rsi], dx
jmp 0x692e1b60
mov rcx, r14
call fcn.692dbec0
mov r10d, dword [rsp + 0x4894]
mov ecx, dword [rsp + 0x48a8]
jmp 0x692e1b3d
mov word [rsi], bp
cmp ebx, ecx
jg 0x692e1656
mov r13d, dword [rsp + 0x4894]
cmp r13d, 0xf
jg 0x692e1a70
mov rcx, r14
call fcn.692dbec0
mov r13d, dword [rsp + 0x4894]
jmp 0x692e1a70
cmp ebp, 1
jne 0x692e1e50
test r13d, r13d
je 0x692e1cd0
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 0x692e1b10
mov r15d, r8d
shr r15d, 0x10
cmp dword [rdi - 0x270c], r15d
ja 0x692e1e60
cmp r15d, dword [rdi - 0x2708]
jb 0x692e1ef8
cmp r15d, dword [rdi - 0x2704]
jb 0x692e1f08
cmp r15d, dword [rdi - 0x2700]
jb 0x692e1f80
cmp r15d, dword [rdi - 0x26fc]
jb 0x692e1fc0
cmp r15d, dword [rdi - 0x26f8]
jb 0x692e1fe0
cmp r15d, dword [rdi - 0x26f4]
jb 0x692e2018
sub r13d, 0x10
mov rbp, r14
mov dword [rsp + 0x4894], r13d
jmp 0x692e19e6
mov rcx, r14
call fcn.692dbec0
mov r8d, dword [rsp + 0x4890]
mov r13d, dword [rsp + 0x4894]
jmp 0x692e1c22
mov r11d, dword [rsp + 0x48a8]
sub ebp, 1
mov dword [rsp + 0x48b4], ebp
cmp ebx, r11d
jg 0x692e1656
mov r15d, r12d
jmp 0x692e1d1d
add rbx, 1
cmp r11d, ebx
jl 0x692e1656
lea rbp, [0x69350cc0]
movzx esi, byte [rbp + rbx]
lea rdi, [r13 + rsi*2]
cmp word [rdi], 0
je 0x692e1d10
mov r10d, dword [rsp + 0x4894]
test r10d, r10d
jle 0x692e1d88
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 0x692e1d10
movzx eax, word [rdi]
test r15w, ax
jne 0x692e1d10
mov r8d, eax
lea edx, [rax + r12]
sub r8d, r12d
test ax, ax
cmovg r8d, edx
mov word [rdi], r8w
jmp 0x692e1d10
mov rcx, r14
call fcn.692dbec0
mov r10d, dword [rsp + 0x4894]
mov r11d, dword [rsp + 0x48a8]
jmp 0x692e1d41
cmp r15d, r13d
jg 0x692e1f90
mov esi, dword [rsp + 0x4890]
movsxd r10, r15d
mov ecx, r15d
sub r13d, r15d
lea rax, [0x6930f6c0]
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 0x692e1b10
mov rcx, r14
mov byte [rsp + 0x70], r8b
mov dword [rsp + 0x4c], r10d
call fcn.692dbec0
movzx r8d, byte [rsp + 0x70]
mov r10d, dword [rsp + 0x4c]
mov edi, dword [rsp + 0x4894]
jmp 0x692e190c
sub ebp, 1
mov dword [rsp + 0x48b4], ebp
jmp 0x692e1656
mov rbp, r14
jmp 0x692e19e6
mov r9d, 0xa
cmp r9d, r13d
jg 0x692e1e50
mov r10, qword [rsp + 0x70]
movsxd r11, r9d
mov ecx, 0x20
mov ebp, r8d
sub ecx, r9d
lea rsi, [0x6930f6c0]
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 0x692e1ac2
mov r15, r14
add dword [rsp + 0x60], 1
mov edi, dword [rsp + 0x60]
cmp dword [rsp + 0x8c], edi
jne 0x692e15f3
movzx eax, byte [rsp + 0x4898]
mov r13, r15
jmp 0x692e0c80
mov r9d, 0xb
jmp 0x692e1e66
mov r9d, 0xc
jmp 0x692e1e66
mov eax, 0xa
cmp eax, edi
jg 0x692e1e50
mov ecx, 0x20
mov edx, r10d
movsxd r8, eax
sub edi, eax
sub ecx, eax
lea r9, [0x6930f6c0]
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 0x692e183a
mov r9d, 0xd
jmp 0x692e1e66
mov rcx, r14
call fcn.692dbec0
mov r8d, dword [rsp + 0x48b4]
mov r13d, dword [rsp + 0x4894]
jmp 0x692e1db1
mov eax, 0xb
jmp 0x692e1f1d
mov r9d, 0xe
jmp 0x692e1e66
mov eax, 0xc
jmp 0x692e1f1d
mov r9d, 0xf
jmp 0x692e1e66
mov eax, 0xd
jmp 0x692e1f1d
mov rbp, r14
mov r14, qword [rsp + 0x170]
mov r12d, dword [r14 + 8]
jmp 0x692df7d4
mov r9d, 0x10
jmp 0x692e1e66
mov eax, 0xe
jmp 0x692e1f1d
mov ebx, 1
mov ecx, eax
shl ebx, cl
mov dword [rsp + 0x48b4], ebx
test eax, eax
jne 0x692e2090
sub ebx, 1
mov dword [rsp + 0x48b4], ebx
jmp 0x692e1656
mov r13, r14
jmp 0x692e0c80
mov eax, 0xf
jmp 0x692e1f1d
mov eax, 0x10
jmp 0x692e1f1d
cmp eax, edi
jg 0x692e2164
movsxd rbp, eax
lea r12, [0x6930f6c0]
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 0x692e204c
cmp dword [rsp + 0x4894], 0x17
jle 0x692e2187
movzx eax, byte [rsp + 0x4898]
lea r15d, [rax + 0x30]
cmp r15b, 7
ja 0x692e0c80
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 0x692e1559
mov rcx, r14
mov dword [rsp + 0x4c], eax
call fcn.692dbec0
mov ebx, dword [rsp + 0x48b4]
mov edi, dword [rsp + 0x4894]
mov eax, dword [rsp + 0x4c]
jmp 0x692e2098
mov rcx, r13
call fcn.692dbec0
jmp 0x692e20e6
mov dword [rsp + 0x48d0], 0x7fffffff
mov dword [rsp + 0x48b4], 0
jmp 0x692e1418
mov rbx, qword [rsp + 0x58]
xor ebp, ebp
pxor xmm6, xmm6
jmp 0x692e221e
mov rcx, qword [rbx + 0x45d8]
test rcx, rcx
je 0x692e21d4
call fcn.69253a20
movups xmmword [rbx + 0x45d0], xmm6
mov rcx, qword [rbx + 0x45e0]
test rcx, rcx
je 0x692e21fb
call fcn.69253a20
mov qword [rbx + 0x45e0], 0
mov qword [rbx + 0x45f0], 0
mov rcx, qword [rbx + 0x45e8]
test rcx, rcx
je 0x692e2217
call fcn.69253a20
mov qword [rbx + 0x45e8], 0
add ebp, 1
add rbx, 0x60
mov rdi, qword [rsp + 0x170]
cmp dword [rdi + 8], ebp
jg 0x692e21bc
jmp 0x692e1351
xor r8d, r8d
jmp 0x692e04e4