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

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0xb8
mov rcx, qword [rsp + 0xc0]
call fcn.180005820
test eax, eax
jne 0x180005bdc
mov rax, qword [rsp + 0xc0]
cmp qword [rax + 0x10], 0
je 0x180005bdc
mov rax, qword [rsp + 0xc0]
cmp qword [rax], 0
jne 0x180005be6
mov rax, qword [rsp + 0xc0]
cmp dword [rax + 8], 0
je 0x180005be6
mov eax, 0xfffffffe
jmp 0x180008c8e
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f3f
jne 0x180005c1a
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f40
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 8]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180005c1a
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x60], 0
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 8]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x88]
sub eax, 0x3f34
mov dword [rsp + 0x88], eax
cmp dword [rsp + 0x88], 0x1e
ja case.default.0x180005ce1
movsxd rax, dword [rsp + 0x88]
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0x8c98]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x10], 0
jne 0x180005d05
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f40
jmp 0x180008988
cmp dword [rsp + 0x4c], 0x10
jae 0x180005d63
cmp dword [rsp + 0x40], 0
jne 0x180005d18
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180005d0c
jmp 0x180005d05
xor eax, eax
test eax, eax
jne 0x180005d05
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 2
test eax, eax
je 0x180005e33
cmp dword [rsp + 0x64], 0x8b1f
jne 0x180005e33
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x30], 0
jne 0x180005daa
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x30], 0xf
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
movzx eax, byte [rsp + 0x64]
mov byte [rsp + 0x68], al
mov eax, dword [rsp + 0x64]
shr eax, 8
mov byte [rsp + 0x69], al
mov r8d, 2
lea rdx, [rsp + 0x68]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
xor eax, eax
test eax, eax
jne 0x180005dc5
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x180005e09
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f35
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x18], 0
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180005e64
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x40], 0xffffffff
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 1
test eax, eax
je 0x180005e98
mov eax, dword [rsp + 0x64]
and eax, 0xff
shl eax, 8
mov ecx, dword [rsp + 0x64]
shr ecx, 8
add eax, ecx
xor edx, edx
mov ecx, 0x1f
div ecx
test edx, edx
je 0x180005ebf
mov rcx, qword [rsp + 0xc0]
lea rax, str.incorrect_header_check
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov eax, dword [rsp + 0x64]
and eax, 0xf
cmp eax, 8
je 0x180005ef2
mov rcx, qword [rsp + 0xc0]
lea rax, str.unknown_compression_method
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov eax, dword [rsp + 0x64]
shr eax, 4
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 4
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180005ef2
mov eax, dword [rsp + 0x64]
and eax, 0xf
add eax, 8
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x30], 0
jne 0x180005f39
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x48]
mov dword [rcx + 0x30], eax
cmp dword [rsp + 0x48], 0xf
ja 0x180005f51
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x30]
cmp dword [rsp + 0x48], eax
jbe 0x180005f78
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_window_size
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov ecx, dword [rsp + 0x48]
mov eax, 1
shl eax, cl
mov ecx, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1c], ecx
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18000f350
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x20]
mov dword [rcx + 0x4c], eax
mov eax, dword [rsp + 0x64]
and eax, 0x200
test eax, eax
je 0x180005fdb
mov dword [rsp + 0x8c], 0x3f3d
jmp 0x180005fe6
mov dword [rsp + 0x8c], 0x3f3f
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x8c]
mov dword [rcx + 8], eax
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x180005ff8
jmp 0x180008988
cmp dword [rsp + 0x4c], 0x10
jae 0x180006071
cmp dword [rsp + 0x40], 0
jne 0x180006026
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000601a
jmp case.0x180005ce1.16181
xor eax, eax
test eax, eax
jne case.0x180005ce1.16181
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x64]
mov dword [rcx + 0x18], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0xff
cmp eax, 8
je 0x1800060c2
mov rcx, qword [rsp + 0xc0]
lea rax, str.unknown_compression_method
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0xe000
test eax, eax
je 0x1800060fd
mov rcx, qword [rsp + 0xc0]
lea rax, str.unknown_header_flags_set
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006124
mov ecx, dword [rsp + 0x64]
shr ecx, 8
and ecx, 1
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov dword [rax], ecx
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x18000618e
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x18000618e
movzx eax, byte [rsp + 0x64]
mov byte [rsp + 0x68], al
mov eax, dword [rsp + 0x64]
shr eax, 8
mov byte [rsp + 0x69], al
mov r8d, 2
lea rdx, [rsp + 0x68]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
xor eax, eax
test eax, eax
jne 0x18000614a
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x18000618e
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f36
cmp dword [rsp + 0x4c], 0x20
jae 0x180006211
cmp dword [rsp + 0x40], 0
jne 0x1800061c6
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800061ba
jmp case.0x180005ce1.16182
xor eax, eax
test eax, eax
jne case.0x180005ce1.16182
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006239
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x28]
mov eax, dword [rsp + 0x64]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x1800062b9
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x1800062b9
movzx eax, byte [rsp + 0x64]
mov byte [rsp + 0x68], al
mov eax, dword [rsp + 0x64]
shr eax, 8
mov byte [rsp + 0x69], al
mov eax, dword [rsp + 0x64]
shr eax, 0x10
mov byte [rsp + 0x6a], al
mov eax, dword [rsp + 0x64]
shr eax, 0x18
mov byte [rsp + 0x6b], al
mov r8d, 4
lea rdx, [rsp + 0x68]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
xor eax, eax
test eax, eax
jne 0x18000625f
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x1800062b9
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f37
cmp dword [rsp + 0x4c], 0x10
jae 0x18000633c
cmp dword [rsp + 0x40], 0
jne 0x1800062f1
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800062e5
jmp case.0x180005ce1.16183
xor eax, eax
test eax, eax
jne case.0x180005ce1.16183
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006380
mov ecx, dword [rsp + 0x64]
and ecx, 0xff
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov dword [rax + 8], ecx
mov ecx, dword [rsp + 0x64]
shr ecx, 8
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov dword [rax + 0xc], ecx
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x1800063ea
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x1800063ea
movzx eax, byte [rsp + 0x64]
mov byte [rsp + 0x68], al
mov eax, dword [rsp + 0x64]
shr eax, 8
mov byte [rsp + 0x69], al
mov r8d, 2
lea rdx, [rsp + 0x68]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
xor eax, eax
test eax, eax
jne 0x1800063a6
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x1800063ea
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f38
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x400
test eax, eax
je 0x18000653e
cmp dword [rsp + 0x4c], 0x10
jae 0x180006485
cmp dword [rsp + 0x40], 0
jne 0x18000643a
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000642e
jmp 0x180006427
xor eax, eax
test eax, eax
jne 0x180006427
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x64]
mov dword [rcx + 0x50], eax
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x1800064bc
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x28]
mov eax, dword [rsp + 0x64]
mov dword [rcx + 0x18], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x180006526
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x180006526
movzx eax, byte [rsp + 0x64]
mov byte [rsp + 0x68], al
mov eax, dword [rsp + 0x64]
shr eax, 8
mov byte [rsp + 0x69], al
mov r8d, 2
lea rdx, [rsp + 0x68]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
xor eax, eax
test eax, eax
jne 0x1800064e2
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x180006526
jmp 0x180006561
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006561
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov qword [rax + 0x10], 0
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f39
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x400
test eax, eax
je 0x180006705
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x6c], eax
jbe 0x1800065a9
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
je 0x1800066f2
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006668
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
cmp qword [rax + 0x10], 0
je 0x180006668
mov rdx, qword [rsp + 0x80]
mov rdx, qword [rdx + 0x28]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x50]
mov eax, dword [rdx + 0x18]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rsp + 0x48]
add ecx, eax
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
cmp ecx, dword [rax + 0x1c]
jbe 0x180006637
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov ecx, dword [rsp + 0x48]
mov eax, dword [rax + 0x1c]
sub eax, ecx
mov dword [rsp + 0x90], eax
jmp 0x180006642
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x90], eax
mov r8d, dword [rsp + 0x90]
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov ecx, dword [rsp + 0x48]
add rcx, qword [rax + 0x10]
mov rdx, qword [rsp + 0x58]
call fcn.18001493a
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x1800066b7
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x1800066b7
mov r8d, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x40]
sub eax, ecx
mov dword [rsp + 0x40], eax
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rcx + 0x50]
sub ecx, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x50], 0
je 0x180006705
jmp 0x18000898d
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], 0
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3a
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x800
test eax, eax
je 0x180006876
cmp dword [rsp + 0x40], 0
jne 0x180006747
jmp 0x18000898d
mov dword [rsp + 0x6c], 0
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + rcx]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x6c]
add eax, 1
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x1800067e5
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
cmp qword [rax + 0x20], 0
je 0x1800067e5
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov rcx, qword [rsp + 0x80]
mov eax, dword [rax + 0x28]
cmp dword [rcx + 0x50], eax
jae 0x1800067e5
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x50]
mov rcx, qword [rcx + 0x20]
movzx eax, byte [rsp + 0x48]
mov byte [rdx + rcx], al
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x50]
add ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
cmp dword [rsp + 0x48], 0
je 0x1800067fa
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x6c], eax
jb 0x18000674f
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x180006849
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x180006849
mov r8d, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x40]
sub eax, ecx
mov dword [rsp + 0x40], eax
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x58], rax
cmp dword [rsp + 0x48], 0
je 0x180006874
jmp 0x18000898d
jmp 0x180006899
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006899
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov qword [rax + 0x20], 0
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], 0
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3b
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x1000
test eax, eax
je 0x180006a0a
cmp dword [rsp + 0x40], 0
jne 0x1800068db
jmp 0x18000898d
mov dword [rsp + 0x6c], 0
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + rcx]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x6c]
add eax, 1
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006979
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
cmp qword [rax + 0x30], 0
je 0x180006979
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov rcx, qword [rsp + 0x80]
mov eax, dword [rax + 0x38]
cmp dword [rcx + 0x50], eax
jae 0x180006979
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x50]
mov rcx, qword [rcx + 0x30]
movzx eax, byte [rsp + 0x48]
mov byte [rdx + rcx], al
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x50]
add ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
cmp dword [rsp + 0x48], 0
je 0x18000698e
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x6c], eax
jb 0x1800068e3
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x1800069dd
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x1800069dd
mov r8d, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x40]
sub eax, ecx
mov dword [rsp + 0x40], eax
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x58], rax
cmp dword [rsp + 0x48], 0
je 0x180006a08
jmp 0x18000898d
jmp 0x180006a2d
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006a2d
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov qword [rax + 0x30], 0
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3c
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x18]
and eax, 0x200
test eax, eax
je 0x180006b1d
cmp dword [rsp + 0x4c], 0x10
jae 0x180006ab2
cmp dword [rsp + 0x40], 0
jne 0x180006a67
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006a5b
jmp 0x180006a54
xor eax, eax
test eax, eax
jne 0x180006a54
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x180006b07
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x20]
and eax, 0xffff
cmp dword [rsp + 0x64], eax
je 0x180006b07
mov rcx, qword [rsp + 0xc0]
lea rax, str.header_crc_mismatch
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x180006b07
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x28], 0
je 0x180006b5f
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x18]
sar ecx, 9
and ecx, 1
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x3c], ecx
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x40], 1
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18000f660
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x20]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3f
jmp 0x180008988
cmp dword [rsp + 0x4c], 0x20
jae 0x180006c02
cmp dword [rsp + 0x40], 0
jne 0x180006bb7
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006bab
jmp case.0x180005ce1.16189
xor eax, eax
test eax, eax
jne case.0x180005ce1.16189
mov ecx, dword [rsp + 0x64]
shr ecx, 0x18
and ecx, 0xff
mov eax, dword [rsp + 0x64]
shr eax, 8
and eax, 0xff00
add ecx, eax
mov eax, dword [rsp + 0x64]
and eax, 0xff00
shl eax, 8
add ecx, eax
mov eax, dword [rsp + 0x64]
and eax, 0xff
shl eax, 0x18
add ecx, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], ecx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x20]
mov dword [rcx + 0x4c], eax
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x180006c60
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3e
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x14], 0
jne 0x180006d00
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x30]
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0x50]
mov dword [rcx + 0x18], eax
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x58]
mov qword [rcx], rax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0x40]
mov dword [rcx + 8], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x64]
mov dword [rcx + 0x48], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x4c]
mov dword [rcx + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006c93
mov eax, 2
jmp 0x180008c8e
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18000f350
mov r11d, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x20], r11d
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x20]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3f
cmp dword [rsp + 0xc8], 5
je 0x180006d54
cmp dword [rsp + 0xc8], 6
jne case.0x180005ce1.16192
jmp 0x18000898d
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0xc], 0
je 0x180006da6
mov eax, dword [rsp + 0x4c]
and eax, 7
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
mov ecx, dword [rsp + 0x4c]
and ecx, 7
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006d67
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f4e
jmp 0x180008988
cmp dword [rsp + 0x4c], 3
jae 0x180006e04
cmp dword [rsp + 0x40], 0
jne 0x180006db9
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006dad
jmp 0x180006da6
xor eax, eax
test eax, eax
jne 0x180006da6
mov ecx, dword [rsp + 0x64]
and ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0xc], ecx
mov eax, dword [rsp + 0x64]
shr eax, 1
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 1
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006e1c
mov eax, dword [rsp + 0x64]
and eax, 3
mov dword [rsp + 0x94], eax
cmp dword [rsp + 0x94], 0
je 0x180006e72
cmp dword [rsp + 0x94], 1
je 0x180006e83
cmp dword [rsp + 0x94], 2
je 0x180006ecd
cmp dword [rsp + 0x94], 3
je 0x180006ede
jmp 0x180006f00
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f41
jmp 0x180006f00
mov rcx, qword [rsp + 0x80]
call fcn.180008d20
mov r11, qword [rsp + 0x80]
mov dword [r11 + 8], 0x3f47
cmp dword [rsp + 0xc8], 6
jne 0x180006ecb
mov eax, dword [rsp + 0x64]
shr eax, 2
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 2
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006eaa
jmp 0x18000898d
jmp 0x180006f00
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f44
jmp 0x180006f00
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_block_type
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
mov eax, dword [rsp + 0x64]
shr eax, 2
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 2
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006f00
jmp 0x180008988
mov eax, dword [rsp + 0x4c]
and eax, 7
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
mov ecx, dword [rsp + 0x4c]
and ecx, 7
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne case.0x180005ce1.16193
cmp dword [rsp + 0x4c], 0x20
jae 0x180006faa
cmp dword [rsp + 0x40], 0
jne 0x180006f5f
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180006f53
jmp 0x180006f4c
xor eax, eax
test eax, eax
jne 0x180006f4c
mov ecx, dword [rsp + 0x64]
and ecx, 0xffff
mov eax, dword [rsp + 0x64]
shr eax, 0x10
xor eax, 0xffff
cmp ecx, eax
je 0x180006ff1
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_stored_block_lengths
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov ecx, dword [rsp + 0x64]
and ecx, 0xffff
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x180007006
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f42
cmp dword [rsp + 0xc8], 6
jne case.0x180005ce1.16194
jmp 0x18000898d
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f43
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
je 0x180007108
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x6c], eax
jbe 0x180007075
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x6c], eax
jbe 0x180007087
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
jne 0x180007093
jmp 0x18000898d
mov r8d, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
call fcn.18001493a
mov r11d, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x40]
sub eax, r11d
mov dword [rsp + 0x40], eax
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x50]
sub eax, ecx
mov dword [rsp + 0x50], eax
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x30]
add rax, rcx
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rcx + 0x50]
sub ecx, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3f
jmp 0x180008988
cmp dword [rsp + 0x4c], 0xe
jae 0x18000717a
cmp dword [rsp + 0x40], 0
jne 0x18000712f
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007123
jmp case.0x180005ce1.16196
xor eax, eax
test eax, eax
jne case.0x180005ce1.16196
mov ecx, dword [rsp + 0x64]
and ecx, 0x1f
add ecx, 0x101
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x7c], ecx
mov eax, dword [rsp + 0x64]
shr eax, 5
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 5
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007198
mov ecx, dword [rsp + 0x64]
and ecx, 0x1f
add ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x80], ecx
mov eax, dword [rsp + 0x64]
shr eax, 5
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 5
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800071cc
mov ecx, dword [rsp + 0x64]
and ecx, 0xf
add ecx, 4
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x78], ecx
mov eax, dword [rsp + 0x64]
shr eax, 4
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 4
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800071fd
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x7c], 0x11e
ja 0x18000723b
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x80], 0x1e
jbe 0x180007262
mov rcx, qword [rsp + 0xc0]
lea rax, str.too_many_length_or_distance_symbols
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x84], 0
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f45
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x78]
cmp dword [rcx + 0x84], eax
jae 0x180007376
cmp dword [rsp + 0x4c], 3
jae 0x180007300
cmp dword [rsp + 0x40], 0
jne 0x1800072b5
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800072a9
jmp 0x1800072a2
xor eax, eax
test eax, eax
jne 0x1800072a2
mov edx, dword [rsp + 0x64]
and edx, 7
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x84]
lea rax, [0x180016b70]
movzx ecx, word [rax + rcx*2]
mov rax, qword [rsp + 0x80]
mov word [rax + rcx*2 + 0x90], dx
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x84]
add ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x84], ecx
mov eax, dword [rsp + 0x64]
shr eax, 3
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 3
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007355
jmp case.0x180005ce1.16197
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x84], 0x13
jae 0x1800073d3
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x84]
lea rax, [0x180016b70]
movzx edx, word [rax + rcx*2]
xor ecx, ecx
mov rax, qword [rsp + 0x80]
mov word [rax + rdx*2 + 0x90], cx
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x84]
add ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x84], ecx
jmp 0x180007376
mov rcx, qword [rsp + 0x80]
add rcx, 0x550
mov rax, qword [rsp + 0x80]
mov qword [rax + 0x88], rcx
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x88]
mov qword [rcx + 0x60], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x70], 7
mov rcx, qword [rsp + 0x80]
add rcx, 0x310
mov rax, qword [rsp + 0x80]
add rax, 0x70
mov r9, qword [rsp + 0x80]
add r9, 0x88
mov rdx, qword [rsp + 0x80]
add rdx, 0x90
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov r8d, 0x13
xor ecx, ecx
call fcn.18000e480
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
je 0x18000749d
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_code_lengths_set
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x84], 0
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f46
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x7c]
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x80]
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x84], ecx
jae 0x180007974
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x70]
mov eax, 1
shl eax, cl
mov ecx, eax
sub ecx, 1
mov eax, dword [rsp + 0x64]
and eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsp + 0x3d]
cmp eax, dword [rsp + 0x4c]
ja 0x18000752a
jmp 0x180007584
cmp dword [rsp + 0x40], 0
jne 0x180007536
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000752a
jmp 0x1800074eb
movzx eax, word [rsp + 0x3e]
cmp eax, 0x10
jge 0x1800075fc
movzx eax, byte [rsp + 0x3d]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x3d]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000758e
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x84]
mov rcx, qword [rsp + 0x80]
movzx eax, word [rsp + 0x3e]
mov word [rcx + rdx*2 + 0x90], ax
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x84]
add ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x84], ecx
jmp 0x18000796f
movzx eax, word [rsp + 0x3e]
cmp eax, 0x10
jne 0x18000772a
movzx eax, byte [rsp + 0x3d]
add eax, 2
cmp dword [rsp + 0x4c], eax
jae 0x18000766f
cmp dword [rsp + 0x40], 0
jne 0x180007624
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007618
jmp 0x18000760a
xor eax, eax
test eax, eax
jne 0x18000760a
movzx eax, byte [rsp + 0x3d]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x3d]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007675
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x84], 0
jne 0x1800076d4
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_bit_length_repeat
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180007974
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x84]
sub eax, 1
mov ecx, eax
mov rax, qword [rsp + 0x80]
movzx eax, word [rax + rcx*2 + 0x90]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x64]
and eax, 3
add eax, 3
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x64]
shr eax, 2
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 2
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007709
jmp 0x1800078c5
movzx eax, word [rsp + 0x3e]
cmp eax, 0x11
jne 0x180007801
movzx eax, byte [rsp + 0x3d]
add eax, 3
cmp dword [rsp + 0x4c], eax
jae 0x18000779d
cmp dword [rsp + 0x40], 0
jne 0x180007752
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007746
jmp 0x180007738
xor eax, eax
test eax, eax
jne 0x180007738
movzx eax, byte [rsp + 0x3d]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x3d]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800077a3
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x64]
and eax, 7
add eax, 3
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x64]
shr eax, 3
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 3
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800077e0
jmp 0x1800078c5
movzx eax, byte [rsp + 0x3d]
add eax, 7
cmp dword [rsp + 0x4c], eax
jae 0x180007866
cmp dword [rsp + 0x40], 0
jne 0x18000781b
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000780f
jmp 0x180007801
xor eax, eax
test eax, eax
jne 0x180007801
movzx eax, byte [rsp + 0x3d]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x3d]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000786c
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x64]
and eax, 0x7f
add eax, 0xb
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x64]
shr eax, 7
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x4c]
sub eax, 7
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800078a9
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x84]
add edx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x7c]
mov rcx, qword [rsp + 0x80]
add eax, dword [rcx + 0x80]
cmp edx, eax
jbe 0x180007918
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_bit_length_repeat
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180007974
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x6c]
sub eax, 1
mov dword [rsp + 0x6c], eax
test ecx, ecx
je 0x18000796f
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x84]
mov rcx, qword [rsp + 0x80]
movzx eax, word [rsp + 0x48]
mov word [rcx + rdx*2 + 0x90], ax
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x84]
add ecx, 1
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x84], ecx
jmp 0x180007918
jmp case.0x180005ce1.16198
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f51
jne 0x18000798a
jmp 0x180008988
mov rax, qword [rsp + 0x80]
movzx eax, word [rax + 0x290]
test eax, eax
jne 0x1800079c4
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_code____missing_end_of_block
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rcx, qword [rsp + 0x80]
add rcx, 0x550
mov rax, qword [rsp + 0x80]
mov qword [rax + 0x88], rcx
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x88]
mov qword [rcx + 0x60], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x70], 9
mov rcx, qword [rsp + 0x80]
add rcx, 0x310
mov rax, qword [rsp + 0x80]
add rax, 0x70
mov r9, qword [rsp + 0x80]
add r9, 0x88
mov rdx, qword [rsp + 0x80]
add rdx, 0x90
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x80]
mov r8d, dword [rax + 0x7c]
mov ecx, 1
call fcn.18000e480
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
je 0x180007a97
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_literal_lengths_set
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x88]
mov qword [rcx + 0x68], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x74], 6
mov r10, qword [rsp + 0x80]
add r10, 0x310
mov r8, qword [rsp + 0x80]
add r8, 0x74
mov r9, qword [rsp + 0x80]
add r9, 0x88
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x7c]
mov rax, qword [rsp + 0x80]
lea rdx, [rax + rcx*2 + 0x90]
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r8
mov rax, qword [rsp + 0x80]
mov r8d, dword [rax + 0x80]
mov ecx, 2
call fcn.18000e480
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
je 0x180007b5b
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_distances_set
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f47
cmp dword [rsp + 0xc8], 6
jne case.0x180005ce1.16199
jmp 0x18000898d
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f48
cmp dword [rsp + 0x40], 6
jb 0x180007ca0
cmp dword [rsp + 0x50], 0x102
jb 0x180007ca0
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x30]
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0x50]
mov dword [rcx + 0x18], eax
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x58]
mov qword [rcx], rax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0x40]
mov dword [rcx + 8], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x64]
mov dword [rcx + 0x48], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x4c]
mov dword [rcx + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007ba1
mov edx, dword [rsp + 0x78]
mov rcx, qword [rsp + 0xc0]
call fcn.18000e100
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x18]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 8]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007c15
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f3f
jne 0x180007c9b
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], 0xffffffff
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], 0
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x70]
mov eax, 1
shl eax, cl
mov ecx, eax
sub ecx, 1
mov eax, dword [rsp + 0x64]
and eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsp + 0x3d]
cmp eax, dword [rsp + 0x4c]
ja 0x180007cf1
jmp 0x180007d4b
cmp dword [rsp + 0x40], 0
jne 0x180007cfd
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007cf1
jmp 0x180007cb2
movzx eax, byte [rsp + 0x3c]
test eax, eax
je 0x180007e72
movzx eax, byte [rsp + 0x3c]
and eax, 0xf0
test eax, eax
jne 0x180007e72
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x38], eax
movzx r8d, word [rsp + 0x3a]
movzx ecx, byte [rsp + 0x39]
movzx eax, byte [rsp + 0x38]
add ecx, eax
mov eax, 1
shl eax, cl
sub eax, 1
mov edx, dword [rsp + 0x64]
and edx, eax
movzx eax, byte [rsp + 0x39]
movzx ecx, al
mov eax, edx
shr eax, cl
mov ecx, eax
mov eax, r8d
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsp + 0x39]
movzx ecx, byte [rsp + 0x3d]
add eax, ecx
cmp eax, dword [rsp + 0x4c]
ja 0x180007dd0
jmp 0x180007e2a
cmp dword [rsp + 0x40], 0
jne 0x180007ddc
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007dd0
jmp 0x180007d72
movzx eax, byte [rsp + 0x39]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x39]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007e2a
movzx ecx, byte [rsp + 0x39]
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x1be4]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], ecx
movzx eax, byte [rsp + 0x3d]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x3d]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007e72
movzx ecx, byte [rsp + 0x3d]
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x1be4]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], ecx
movzx ecx, word [rsp + 0x3e]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
movzx eax, byte [rsp + 0x3c]
test eax, eax
jne 0x180007ee7
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f4d
jmp 0x180008988
movzx eax, byte [rsp + 0x3c]
and eax, 0x20
test eax, eax
je 0x180007f19
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], 0xffffffff
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f3f
jmp 0x180008988
movzx eax, byte [rsp + 0x3c]
and eax, 0x40
test eax, eax
je 0x180007f4c
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_literal_length_code
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
movzx ecx, byte [rsp + 0x3c]
and ecx, 0xf
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x58], ecx
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f49
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x58], 0
je 0x180008079
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x58]
cmp dword [rsp + 0x4c], eax
jae 0x180007fe8
cmp dword [rsp + 0x40], 0
jne 0x180007f9d
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180007f91
jmp 0x180007f80
xor eax, eax
test eax, eax
jne 0x180007f80
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x58]
mov eax, 1
shl eax, cl
sub eax, 1
mov ecx, dword [rsp + 0x64]
and ecx, eax
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x50]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x58]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x58]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000801f
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x1be4]
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x58]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], ecx
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x50]
mov dword [rcx + 0x1be8], eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f4a
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x74]
mov eax, 1
shl eax, cl
mov ecx, eax
sub ecx, 1
mov eax, dword [rsp + 0x64]
and eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x68]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsp + 0x3d]
cmp eax, dword [rsp + 0x4c]
ja 0x1800080e0
jmp 0x18000813a
cmp dword [rsp + 0x40], 0
jne 0x1800080ec
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800080e0
jmp case.0x180005ce1.16202
movzx eax, byte [rsp + 0x3c]
and eax, 0xf0
test eax, eax
jne 0x180008254
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x38], eax
movzx r8d, word [rsp + 0x3a]
movzx ecx, byte [rsp + 0x39]
movzx eax, byte [rsp + 0x38]
add ecx, eax
mov eax, 1
shl eax, cl
sub eax, 1
mov edx, dword [rsp + 0x64]
and edx, eax
movzx eax, byte [rsp + 0x39]
movzx ecx, al
mov eax, edx
shr eax, cl
mov ecx, eax
mov eax, r8d
add eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x68]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsp + 0x39]
movzx ecx, byte [rsp + 0x3d]
add eax, ecx
cmp eax, dword [rsp + 0x4c]
ja 0x1800081b2
jmp 0x18000820c
cmp dword [rsp + 0x40], 0
jne 0x1800081be
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800081b2
jmp 0x180008154
movzx eax, byte [rsp + 0x39]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x39]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000820c
movzx ecx, byte [rsp + 0x39]
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x1be4]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], ecx
movzx eax, byte [rsp + 0x3d]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
movzx ecx, byte [rsp + 0x3d]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180008254
movzx ecx, byte [rsp + 0x3d]
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x1be4]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], ecx
movzx eax, byte [rsp + 0x3c]
and eax, 0x40
test eax, eax
je 0x1800082cf
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_distance_code
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
movzx ecx, word [rsp + 0x3e]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x54], ecx
movzx ecx, byte [rsp + 0x3c]
and ecx, 0xf
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x58], ecx
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f4b
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x58], 0
je 0x18000840c
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x58]
cmp dword [rsp + 0x4c], eax
jae 0x18000837b
cmp dword [rsp + 0x40], 0
jne 0x180008330
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180008324
jmp 0x180008313
xor eax, eax
test eax, eax
jne 0x180008313
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x58]
mov eax, 1
shl eax, cl
sub eax, 1
mov ecx, dword [rsp + 0x64]
and ecx, eax
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x54]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x54], ecx
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x58]
movzx ecx, al
mov eax, dword [rsp + 0x64]
shr eax, cl
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x58]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800083b2
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x1be4]
mov rax, qword [rsp + 0x80]
add ecx, dword [rax + 0x58]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x1be4], ecx
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f4c
cmp dword [rsp + 0x50], 0
jne 0x180008427
jmp 0x18000898d
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x78]
sub eax, ecx
mov dword [rsp + 0x6c], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x6c]
cmp dword [rcx + 0x54], eax
jbe 0x18000853a
mov rax, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rax + 0x54]
sub eax, ecx
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x38]
cmp dword [rsp + 0x6c], eax
jbe 0x1800084a8
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x1be0], 0
je 0x1800084a8
mov rcx, qword [rsp + 0xc0]
lea rax, str.invalid_distance_too_far_back
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x3c]
cmp dword [rsp + 0x6c], eax
jbe 0x1800084f4
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x3c]
mov eax, dword [rsp + 0x6c]
sub eax, ecx
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rax + 0x34]
sub eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x80]
add rax, qword [rcx + 0x40]
mov qword [rsp + 0x70], rax
jmp 0x180008518
mov rax, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rax + 0x3c]
sub eax, ecx
mov eax, eax
mov rcx, qword [rsp + 0x80]
add rax, qword [rcx + 0x40]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x50]
cmp dword [rsp + 0x6c], eax
jbe 0x180008538
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x6c], eax
jmp 0x180008561
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x54]
mov rax, qword [rsp + 0x30]
sub rax, rcx
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x6c], eax
jbe 0x180008573
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x6c], eax
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x50]
sub eax, ecx
mov dword [rsp + 0x50], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rcx + 0x50]
sub ecx, eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x50], ecx
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x70]
movzx eax, byte [rax]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
add rax, 1
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x6c]
sub eax, 1
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
jne 0x18000859d
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x50], 0
jne 0x1800085f7
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f48
jmp 0x180008988
cmp dword [rsp + 0x50], 0
jne 0x180008608
jmp 0x18000898d
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 0x50]
mov byte [rcx], al
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x50]
sub eax, 1
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f48
jmp 0x180008988
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x10], 0
je 0x18000886f
cmp dword [rsp + 0x4c], 0x20
jae 0x1800086b8
cmp dword [rsp + 0x40], 0
jne 0x18000866d
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x180008661
jmp 0x18000865a
xor eax, eax
test eax, eax
jne 0x18000865a
mov ecx, dword [rsp + 0x50]
mov eax, dword [rsp + 0x78]
sub eax, ecx
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0xc0]
mov ecx, dword [rax + 0x1c]
add ecx, dword [rsp + 0x78]
mov rax, qword [rsp + 0xc0]
mov dword [rax + 0x1c], ecx
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x24]
add ecx, dword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x24], ecx
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x1800087a5
cmp dword [rsp + 0x78], 0
je 0x1800087a5
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x18], 0
je 0x180008759
mov eax, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x30]
sub rdx, rax
mov r8d, dword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov dword [rsp + 0x98], eax
jmp 0x180008781
mov eax, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x30]
sub rdx, rax
mov r8d, dword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f350
mov dword [rsp + 0x98], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x98]
mov dword [rcx + 0x20], eax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0x98]
mov dword [rcx + 0x4c], eax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x180008859
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x18], 0
je 0x1800087de
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x9c], eax
jmp 0x18000881e
mov eax, dword [rsp + 0x64]
shr eax, 0x18
and eax, 0xff
mov ecx, dword [rsp + 0x64]
shr ecx, 8
and ecx, 0xff00
add eax, ecx
mov ecx, dword [rsp + 0x64]
and ecx, 0xff00
shl ecx, 8
add eax, ecx
mov ecx, dword [rsp + 0x64]
and ecx, 0xff
shl ecx, 0x18
add eax, ecx
mov dword [rsp + 0x9c], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x20]
cmp dword [rsp + 0x9c], eax
je 0x180008859
mov rcx, qword [rsp + 0xc0]
lea rax, str.incorrect_data_check
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x180008859
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f4f
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x10], 0
je 0x180008951
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x18], 0
je 0x180008951
cmp dword [rsp + 0x4c], 0x20
jae 0x180008900
cmp dword [rsp + 0x40], 0
jne 0x1800088b5
jmp 0x18000898d
mov eax, dword [rsp + 0x40]
sub eax, 1
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x58]
movzx edx, byte [rax]
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x58]
add rax, 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
add eax, 8
mov dword [rsp + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x1800088a9
jmp 0x1800088a2
xor eax, eax
test eax, eax
jne 0x1800088a2
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x24]
cmp dword [rsp + 0x64], eax
je 0x18000893b
mov rcx, qword [rsp + 0xc0]
lea rax, str.incorrect_length_check
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f51
jmp 0x180008988
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x4c], 0
xor eax, eax
test eax, eax
jne 0x18000893b
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f50
mov dword [rsp + 0x60], 1
jmp 0x18000898d
mov dword [rsp + 0x60], 0xfffffffd
jmp 0x18000898d
mov eax, 0xfffffffc
jmp 0x180008c8e
mov eax, 0xfffffffe
jmp 0x180008c8e
jmp 0x180005c95
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x30]
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0x50]
mov dword [rcx + 0x18], eax
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x58]
mov qword [rcx], rax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0x40]
mov dword [rcx + 8], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x64]
mov dword [rcx + 0x48], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x4c]
mov dword [rcx + 0x4c], eax
xor eax, eax
test eax, eax
jne 0x18000898d
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x34], 0
jne 0x180008a3b
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x18]
cmp dword [rsp + 0x78], eax
je 0x180008a84
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f51
jge 0x180008a84
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f4e
jl 0x180008a3b
cmp dword [rsp + 0xc8], 4
je 0x180008a84
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x18]
mov r8d, dword [rsp + 0x78]
sub r8d, eax
mov rdx, qword [rsp + 0xc0]
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rsp + 0xc0]
call fcn.180008d60
test eax, eax
je 0x180008a84
mov rax, qword [rsp + 0x80]
mov dword [rax + 8], 0x3f52
mov eax, 0xfffffffc
jmp 0x180008c8e
mov rax, qword [rsp + 0xc0]
mov ecx, dword [rax + 8]
mov eax, dword [rsp + 0x44]
sub eax, ecx
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xc0]
mov ecx, dword [rax + 0x18]
mov eax, dword [rsp + 0x78]
sub eax, ecx
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0xc0]
mov ecx, dword [rax + 0xc]
add ecx, dword [rsp + 0x44]
mov rax, qword [rsp + 0xc0]
mov dword [rax + 0xc], ecx
mov rax, qword [rsp + 0xc0]
mov ecx, dword [rax + 0x1c]
add ecx, dword [rsp + 0x78]
mov rax, qword [rsp + 0xc0]
mov dword [rax + 0x1c], ecx
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x24]
add ecx, dword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov dword [rax + 0x24], ecx
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x10]
and eax, 4
test eax, eax
je 0x180008baf
cmp dword [rsp + 0x78], 0
je 0x180008baf
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0x18], 0
je 0x180008b5c
mov eax, dword [rsp + 0x78]
mov rdx, qword [rsp + 0xc0]
mov rdx, qword [rdx + 0x10]
sub rdx, rax
mov r8d, dword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f660
mov dword [rsp + 0xa0], eax
jmp 0x180008b8b
mov eax, dword [rsp + 0x78]
mov rdx, qword [rsp + 0xc0]
mov rdx, qword [rdx + 0x10]
sub rdx, rax
mov r8d, dword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x20]
call fcn.18000f350
mov dword [rsp + 0xa0], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rsp + 0xa0]
mov dword [rcx + 0x20], eax
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0xa0]
mov dword [rcx + 0x4c], eax
mov rax, qword [rsp + 0x80]
cmp dword [rax + 0xc], 0
je 0x180008bca
mov dword [rsp + 0xa4], 0x40
jmp 0x180008bd5
mov dword [rsp + 0xa4], 0
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f3f
jne 0x180008bf3
mov dword [rsp + 0xa8], pe_nt_image_headers64
jmp 0x180008bfe
mov dword [rsp + 0xa8], 0
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f47
je 0x180008c2d
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0x3f42
je 0x180008c2d
mov dword [rsp + 0xac], 0
jmp 0x180008c38
mov dword [rsp + 0xac], 0x100
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x4c]
add ecx, dword [rsp + 0xa4]
add ecx, dword [rsp + 0xa8]
add ecx, dword [rsp + 0xac]
mov rax, qword [rsp + 0xc0]
mov dword [rax + 0x48], ecx
cmp dword [rsp + 0x44], 0
jne 0x180008c71
cmp dword [rsp + 0x78], 0
je 0x180008c7b
cmp dword [rsp + 0xc8], 4
jne 0x180008c8a
cmp dword [rsp + 0x60], 0
jne 0x180008c8a
mov dword [rsp + 0x60], 0xfffffffb
mov eax, dword [rsp + 0x60]
add rsp, 0xb8
ret