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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x198
cmp dword [rcx + 0x6c], 0
mov rbx, rcx
mov dword [rsp + 0x74], edx
jle 0x140164706
mov edx, dword [rcx + 0x288]
mov eax, dword [rcx + 0x28c]
not edx
rol eax, 1
mov dword [rcx + 0x288], edx
xor eax, edx
cmp dword [rcx + 0x294], 1
mov dword [rcx + 0x28c], eax
jle 0x1401646fe
xor r8d, r8d
mov dword [rcx + 0x74], r8d
mov rcx, rbx
call sym.BZ2_blockSort
movsxd rax, dword [rbx + 0x6c]
add rax, qword [rbx + 0x20]
cmp dword [rbx + 0x294], 1
mov qword [rbx + 0x50], rax
jne 0x14016475f
xor ecx, ecx
mov edx, 0x42
mov qword [rbx + 0x280], rcx
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x5a
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x68
mov rcx, rbx
call sym.bsPutUChar
mov al, byte [rbx + 0x298]
mov rcx, rbx
lea edx, [rax + 0x30]
movzx edx, dl
call sym.bsPutUChar
cmp dword [rbx + 0x6c], 0
jle 0x14016601f
mov edx, 0x31
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x41
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x59
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x26
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x53
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x59
mov rcx, rbx
call sym.bsPutUChar
mov edx, dword [rbx + 0x288]
mov rcx, rbx
call sym.bsPutUInt32
xor r8d, r8d
mov edx, 1
mov rcx, rbx
call sym.bsW
mov r8d, dword [rbx + 0x30]
mov edx, 0x18
mov rcx, rbx
call sym.bsW
mov rax, qword [rbx + 0x38]
xor edx, edx
mov r13, qword [rbx + 0x40]
mov dword [rbx + 0x7c], edx
mov rsi, qword [rbx + 0x48]
mov qword [rsp + 0x38], rax
xor eax, eax
cmp byte [rbx + rax + 0x80], 0
je 0x140164817
mov edx, dword [rbx + 0x7c]
mov byte [rbx + rax + 0x180], dl
inc edx
mov dword [rbx + 0x7c], edx
inc rax
cmp rax, 0x100
jne 0x1401647fe
mov edx, dword [rbx + 0x7c]
lea r8, [rbx + 0x2a0]
mov rdi, r8
lea r11d, [rdx + 2]
cmp edx, 0xfffffffe
lea r15d, [rdx + 1]
setge bpl
xor eax, eax
mov dword [rsp + 0x48], r11d
lea rcx, [r11*4]
test bpl, bpl
cmovne rax, rcx
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x58]
xor eax, eax
rep stosb byte [rdi], al
xor eax, eax
cmp edx, eax
jle 0x140164874
mov byte [rsp + rax + 0x90], al
inc rax
jmp 0x140164864
mov edi, dword [rbx + 0x6c]
xor r8d, r8d
xor eax, eax
xor edx, edx
lea r14, [rsp + 0x90]
cmp edi, r8d
jle 0x14016495a
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + r8*4]
dec ecx
jns 0x14016489e
add ecx, edi
movsxd rcx, ecx
movzx ecx, byte [r13 + rcx]
mov r9b, byte [rbx + rcx + 0x180]
mov cl, byte [rsp + 0x90]
cmp r9b, cl
jne 0x1401648c2
inc edx
jmp 0x140164952
test edx, edx
jle 0x140164902
dec edx
cdqe
test dl, 1
je 0x1401648dd
mov word [rsi + rax*2], 1
inc dword [rbx + 0x2a4]
jmp 0x1401648e9
mov word [rsi + rax*2], 0
inc dword [rbx + 0x2a0]
cmp edx, 1
lea r10, [rax + 1]
jg 0x1401648f8
inc eax
xor edx, edx
jmp 0x140164902
sub edx, 2
mov rax, r10
sar edx, 1
jmp 0x1401648ca
mov r10b, byte [rsp + 0x91]
mov byte [rsp + 0x91], cl
lea rcx, [rsp + 0x91]
cmp r9b, r10b
je 0x14016492d
mov r12b, byte [rcx + 1]
inc rcx
mov byte [rcx], r10b
mov r10d, r12d
jmp 0x140164919
sub rcx, r14
mov byte [rsp + 0x90], r9b
movsxd r9, eax
inc eax
lea r10d, [rcx + 1]
inc ecx
movsxd rcx, ecx
mov word [rsi + r9*2], r10w
inc dword [rbx + rcx*4 + 0x2a0]
inc r8
jmp 0x140164886
test edx, edx
jle 0x140164998
dec edx
cdqe
test dl, 1
je 0x140164975
mov word [rsi + rax*2], 1
inc dword [rbx + 0x2a4]
jmp 0x140164981
mov word [rsi + rax*2], 0
inc dword [rbx + 0x2a0]
cmp edx, 1
lea rcx, [rax + 1]
jg 0x14016498e
inc eax
jmp 0x140164998
sub edx, 2
mov rax, rcx
sar edx, 1
jmp 0x140164962
lea r8d, [rax + 1]
movsxd rdx, eax
movsxd rax, r15d
mov qword [rsp + 0x38], rbx
mov word [rsi + rdx*2], r15w
lea r9, [rbx + 0x9958]
xor r10d, r10d
inc dword [rbx + rax*4 + 0x2a0]
lea rax, [rbx + 0x934c]
mov dword [rbx + 0x29c], r8d
mov qword [rsp + 0x60], rax
mov rdx, rax
mov al, 0xf
test bpl, bpl
mov rcx, r10
mov rdi, rdx
cmovne rcx, r11
add rdx, 0x102
cmp rdx, r9
rep stosb byte [rdi], al
jne 0x1401649d5
test r8d, r8d
jg 0x1401649ff
mov ecx, 0xbb9
call sym.bz_internal_error
mov ecx, dword [rbx + 0x29c]
mov ebp, 2
cmp ecx, 0xc7
jle 0x140164a3b
cmp ecx, 0x257
mov ebp, 3
jle 0x140164a3b
cmp ecx, 0x4af
mov ebp, 4
jle 0x140164a3b
xor ebp, ebp
cmp ecx, 0x95f
setg bpl
add ebp, 5
movsxd rax, ebp
mov r12d, ebp
xor r10d, r10d
imul r14, rax, 0x102
mov edi, 2
lea r11, [rbx + r14]
mov eax, ecx
xor r8d, r8d
cdq
idiv r12d
lea edx, [r10 - 1]
movsxd rdx, edx
lea r9, [rdx + 1]
cmp r15d, edx
jle 0x140164a7f
cmp eax, r8d
jle 0x140164a7f
add r8d, dword [rbx + r9*4 + 0x2a0]
mov rdx, r9
jmp 0x140164a64
cmp edx, r10d
mov r9d, edx
setg dl
cmp r12d, ebp
setne al
test dl, al
je 0x140164ab2
cmp r12d, 1
je 0x140164ab2
mov eax, ebp
sub eax, r12d
cdq
idiv edi
dec edx
jne 0x140164ab2
movsxd rax, r9d
dec r9d
sub r8d, dword [rbx + rax*4 + 0x2a0]
xor eax, eax
mov edx, dword [rsp + 0x48]
mov r13d, eax
cmp eax, edx
jge 0x140164ada
cmp r10d, eax
jg 0x140164acb
xor edx, edx
cmp r9d, r13d
jge 0x140164acd
mov dl, 0xf
mov byte [r11 + rax + 0x924a], dl
inc rax
jmp 0x140164ab4
lea r10d, [r9 + 1]
sub ecx, r8d
sub r11, 0x102
dec r12d
jne 0x140164a54
mov eax, ebp
mov dword [rsp + 0x4c], 4
add rax, rax
mov qword [rsp + 0x78], rax
lea rax, [rbx + r14 + 0x934c]
mov qword [rsp + 0x68], rax
lea rax, [rbx + 0xb188]
xor r8d, r8d
mov qword [rsp + 0x50], rax
mov rdx, rax
mov rcx, qword [rsp + 0x58]
inc r8d
mov rdi, rdx
xor eax, eax
add rdx, 0x408
cmp r8d, ebp
rep stosb byte [rdi], al
jne 0x140164b22
cmp ebp, 6
jne 0x140164b4d
lea rdx, [rbx + 0xc9b8]
xor eax, eax
jmp 0x140164b73
mov r15d, dword [rbx + 0x29c]
xor r9d, r9d
lea r10, [rsp + 0x84]
lea eax, [r15 - 1]
mov dword [rsp + 0x70], eax
xor eax, eax
mov qword [rsp + 0x40], rax
jmp 0x14016576c
cmp dword [rsp + 0x48], eax
jle 0x140164b4d
movzx ecx, byte [rbx + rax + 0x944e]
add rdx, 0x10
movzx r8d, byte [rbx + rax + 0x934c]
shl ecx, 0x10
or ecx, r8d
mov dword [rdx - 0x10], ecx
movzx ecx, byte [rbx + rax + 0x9652]
movzx r8d, byte [rbx + rax + 0x9550]
shl ecx, 0x10
or ecx, r8d
mov dword [rdx - 0xc], ecx
movzx ecx, byte [rbx + rax + 0x9856]
movzx r8d, byte [rbx + rax + 0x9754]
inc rax
shl ecx, 0x10
or ecx, r8d
mov dword [rdx - 8], ecx
jmp 0x140164b73
mov rcx, qword [rsp + 0x78]
lea r8d, [r9 + 0x31]
mov rdi, r10
cmp r15d, r8d
cmovle r8d, dword [rsp + 0x70]
xor eax, eax
cmp ebp, 6
rep stosb byte [rdi], al
movsxd rax, r9d
jne 0x140165795
mov edx, r8d
sub edx, r9d
cmp edx, 0x31
jne 0x140165795
movzx r13d, word [rsi + rax*2 + 2]
lea rcx, [rax + rax]
movzx edx, word [rsi + rax*2 + 4]
movzx edi, word [rsi + rcx]
mov r11, r13
shl r13, 4
mov rax, rdx
shl r11, 4
add r13, rbx
shl rax, 4
shl rdx, 4
mov eax, dword [rax + rbx + 0xc9b8]
add rdx, rbx
add eax, dword [rbx + r11 + 0xc9b8]
mov r11, rdi
shl rdi, 4
add rdi, rbx
shl r11, 4
add eax, dword [rbx + r11 + 0xc9b8]
mov r11d, dword [rdx + 0xc9bc]
mov edx, dword [rdx + 0xc9c0]
add r11d, dword [r13 + 0xc9bc]
add edx, dword [r13 + 0xc9c0]
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 6]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 8]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0xa]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0xc]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0xe]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x10]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x12]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x14]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x16]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x18]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x1a]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x1c]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x1e]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x20]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x22]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x24]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x26]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x28]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x2a]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x2c]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x2e]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x30]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add edx, dword [rdi + 0xc9c0]
add r11d, dword [rdi + 0xc9bc]
movzx edi, word [rsi + rcx + 0x32]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x34]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x36]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x38]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x3a]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x3c]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x3e]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x40]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x42]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x44]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x46]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x48]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x4a]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x4c]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x4e]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x50]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x52]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x54]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x56]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x58]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x5a]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x5c]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x5e]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
movzx edi, word [rsi + rcx + 0x60]
movzx ecx, word [rsi + rcx + 0x62]
mov r13, rdi
shl r13, 4
mov rdi, r13
add eax, dword [rbx + r13 + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
mov rdi, rcx
shl rcx, 4
shl rdi, 4
add eax, dword [rbx + rcx + 0xc9b8]
add rdi, rbx
add r11d, dword [rdi + 0xc9bc]
add edx, dword [rdi + 0xc9c0]
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x88], r11d
mov dword [rsp + 0x8c], edx
xor edx, edx
or rax, 0xffffffffffffffff
mov ecx, 0x3b9ac9ff
movzx r11d, word [r10 + rdx*2]
cmp r11d, ecx
jge 0x1401653da
movsxd rax, edx
mov ecx, r11d
inc rdx
cmp ebp, edx
jg 0x1401653ca
mov rdi, qword [rsp + 0x40]
cmp ebp, 6
movsxd rdx, r9d
mov byte [rbx + rdi + 0x6a8], al
jne 0x1401657a9
mov ecx, r8d
sub ecx, r9d
cmp ecx, 0x31
jne 0x1401657a9
imul rax, rax, 0x102
add rdx, rdx
movzx ecx, word [rsi + rdx]
lea rcx, [rcx + rax + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 2]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 4]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 6]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 8]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0xa]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0xc]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0xe]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x10]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x12]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x14]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x16]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x18]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x1a]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x1c]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x1e]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x20]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x22]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x24]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x26]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x28]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x2a]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x2c]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x2e]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x30]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x32]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x34]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x36]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x38]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x3a]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x3c]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x3e]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x40]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x42]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x44]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x46]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x48]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x4a]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x4c]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x4e]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x50]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x52]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x54]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x56]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x58]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x5a]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x5c]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x5e]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
movzx ecx, word [rsi + rdx + 0x60]
movzx edx, word [rsi + rdx + 0x62]
lea rcx, [rax + rcx + 0x2c60]
inc dword [rbx + rcx*4 + 8]
lea rax, [rax + rdx + 0x2c60]
inc dword [rbx + rax*4 + 8]
inc qword [rsp + 0x40]
lea r9d, [r8 + 1]
cmp r15d, r9d
jg 0x140164bd0
jmp 0x1401657ca
movzx r11d, byte [rcx + 0x934c]
add rcx, 0x102
add word [r10 + rdx*2], r11w
inc rdx
cmp ebp, edx
jg 0x140165777
inc rax
cmp r8d, eax
jl 0x1401653bf
movzx ecx, word [rsi + rax*2]
xor edx, edx
add rcx, rbx
jmp 0x140165777
imul rax, rax, 0x102
cmp r8d, edx
jl 0x140165763
movzx ecx, word [rsi + rdx*2]
inc rdx
lea rcx, [rcx + rax + 0x2c60]
inc dword [rbx + rcx*4 + 8]
jmp 0x1401657b0
mov rdi, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x48]
mov rcx, rdi
mov r9d, 0x11
add rdi, 0x102
mov rdx, qword [rsp + 0x50]
call sym.BZ2_hbMakeCodeLengths
add qword [rsp + 0x50], 0x408
cmp qword [rsp + 0x68], rdi
jne 0x1401657cf
dec dword [rsp + 0x4c]
jne 0x140164b10
xor eax, eax
mov byte [rsp + rax + 0x90], al
inc rax
cmp ebp, eax
jg 0x14016580a
mov r13d, dword [rsp + 0x40]
xor eax, eax
mov cl, byte [rsp + 0x90]
cmp r13d, eax
jle 0x140165861
mov r8b, byte [rbx + rax + 0x6a8]
xor edx, edx
lea r9, [rdx + 1]
cmp r8b, cl
je 0x140165855
mov r10b, byte [rsp + rdx + 0x91]
mov byte [rsp + rdx + 0x91], cl
mov rdx, r9
mov ecx, r10d
jmp 0x140165835
mov byte [rbx + rax + 0x4cfa], dl
inc rax
jmp 0x140165826
lea rax, [rbx + r14]
mov rdi, rbx
lea r15, [rbx + 0x9958]
mov qword [rsp + 0x50], rax
xor r9d, r9d
xor eax, eax
mov r14d, 0x20
cmp dword [rsp + 0x48], eax
jle 0x1401658a0
movzx edx, byte [rdi + rax + 0x934c]
cmp r9d, edx
cmovl r9d, edx
cmp r14d, edx
cmovg r14d, edx
inc rax
jmp 0x14016587f
cmp r9d, 0x11
jle 0x1401658ba
mov ecx, 0xbbc
mov dword [rsp + 0x58], r9d
call sym.bz_internal_error
mov r9d, dword [rsp + 0x58]
test r14d, r14d
jg 0x1401658d3
mov ecx, 0xbbd
mov dword [rsp + 0x58], r9d
call sym.bz_internal_error
mov r9d, dword [rsp + 0x58]
mov eax, dword [rsp + 0x48]
lea rdx, [rdi + 0x934c]
mov rcx, r15
mov r8d, r14d
add r15, 0x408
add rdi, 0x102
mov dword [rsp + 0x20], eax
call sym.BZ2_hbAssignCodes
cmp qword [rsp + 0x50], rdi
jne 0x140165874
lea r11, [rsp + 0x90]
mov ecx, 4
xor eax, eax
mov rdi, r11
mov rdx, r11
rep stosd dword [rdi], eax
mov rcx, rbx
xor eax, eax
cmp byte [rcx + rax + 0x80], 0
je 0x14016592f
mov byte [rdx], 1
inc rax
cmp rax, 0x10
jne 0x140165922
add dword [rsp + 0x4c], 0x10
add rcx, 0x10
inc rdx
cmp dword [rsp + 0x4c], 0x100
jne 0x140165920
xor edi, edi
cmp byte [r11 + rdi], 0
mov r8d, 1
jne 0x140165960
xor r8d, r8d
mov edx, 1
mov rcx, rbx
inc rdi
call sym.bsW
cmp rdi, 0x10
jne 0x140165950
xor r14d, r14d
cmp byte [r11 + r14], 0
jne 0x1401659b0
inc r14
cmp r14, 0x10
jne 0x140165979
mov r8d, ebp
mov edx, 3
mov rcx, rbx
call sym.bsW
mov r8d, dword [rsp + 0x40]
mov rcx, rbx
xor r11d, r11d
mov edx, 0xf
call sym.bsW
jmp 0x1401659fb
mov r15, r14
xor edi, edi
shl r15, 4
add r15, rbx
cmp byte [r15 + rdi + 0x80], 0
mov r8d, 1
jne 0x1401659d0
xor r8d, r8d
mov edx, 1
mov rcx, rbx
inc rdi
call sym.bsW
cmp rdi, 0x10
jne 0x1401659bc
jmp 0x140165980
xor r8d, r8d
mov edx, 1
mov rcx, rbx
call sym.bsW
inc r11
cmp r13d, r11d
jle 0x140165a26
xor edi, edi
movzx eax, byte [rbx + r11 + 0x4cfa]
cmp edi, eax
jge 0x1401659e8
mov r8d, 1
mov edx, 1
mov rcx, rbx
call sym.bsW
inc edi
jmp 0x140165a02
mov rax, qword [rsp + 0x38]
mov edx, 5
mov rcx, rbx
xor r15d, r15d
movzx r11d, byte [rax + 0x934c]
mov r8d, r11d
call sym.bsW
mov rdi, qword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
cmp r15d, eax
jge 0x140165ab4
movzx eax, byte [rdi + 0x934c]
cmp r11d, eax
jge 0x140165a78
mov r8d, 2
mov edx, 2
mov rcx, rbx
call sym.bsW
inc r11d
jmp 0x140165a54
movzx eax, byte [rdi + 0x934c]
cmp r11d, eax
jle 0x140165a9c
mov r8d, 3
mov edx, 2
mov rcx, rbx
call sym.bsW
dec r11d
jmp 0x140165a78
xor r8d, r8d
mov edx, 1
mov rcx, rbx
call sym.bsW
inc r15d
inc rdi
jmp 0x140165a4b
add qword [rsp + 0x38], 0x102
mov rdi, qword [rsp + 0x50]
cmp qword [rsp + 0x38], rdi
jne 0x140165a26
xor r15d, r15d
mov eax, dword [rbx + 0x29c]
cmp eax, r12d
jle 0x140166010
lea edi, [r12 + 0x31]
cmp eax, edi
jg 0x140165aeb
lea edi, [rax - 1]
movzx eax, byte [rbx + r15 + 0x6a8]
cmp eax, ebp
jl 0x140165b02
mov ecx, 0xbbe
call sym.bz_internal_error
cmp ebp, 6
movsxd r11, r12d
jne 0x140165fc5
mov eax, edi
sub eax, r12d
cmp eax, 0x31
jne 0x140165fc5
movzx eax, byte [rbx + r15 + 0x6a8]
add r11, r11
mov rcx, rbx
imul rdx, rax, 0x102
imul rax, rax, 0x408
lea r14, [rbx + rdx + 0x934c]
lea r12, [rbx + rax + 0x9958]
movzx eax, word [rsi + r11]
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 2]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 4]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 6]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 8]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0xa]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0xc]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0xe]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x10]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x12]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x14]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x16]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x18]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x1a]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x1c]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x1e]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x20]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x22]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x24]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x26]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x28]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x2a]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x2c]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x2e]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x30]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x32]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x34]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x36]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x38]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x3a]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x3c]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x3e]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x40]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x42]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x44]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x46]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x48]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x4a]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x4c]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x4e]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x50]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x52]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x54]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x56]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x58]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x5a]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x5c]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x5e]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x60]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
movzx eax, word [rsi + r11 + 0x62]
mov rcx, rbx
movzx edx, byte [r14 + rax]
mov r8d, dword [r12 + rax*4]
call sym.bsW
jmp 0x140166004
cmp edi, r11d
jl 0x140166004
movzx eax, byte [rbx + r15 + 0x6a8]
movzx edx, word [rsi + r11*2]
inc r11
imul rax, rax, 0x102
lea rcx, [rdx + rax + 0x2654]
add rax, rbx
mov r8d, dword [rbx + rcx*4 + 8]
mov rcx, rbx
movzx edx, byte [rdx + rax + 0x934c]
call sym.bsW
jmp 0x140165fc5
lea r12d, [rdi + 1]
inc r15
jmp 0x140165ad0
cmp r13d, r15d
je 0x14016601f
mov ecx, 0xbbf
call sym.bz_internal_error
cmp byte [rsp + 0x74], 0
je 0x1401660b4
mov edx, 0x17
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x72
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x45
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x38
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x50
mov rcx, rbx
call sym.bsPutUChar
mov edx, 0x90
mov rcx, rbx
call sym.bsPutUChar
mov edx, dword [rbx + 0x28c]
mov rcx, rbx
call sym.bsPutUInt32
cmp dword [rbx + 0x284], 0
jle 0x1401660b4
movsxd rax, dword [rbx + 0x74]
movzx ecx, byte [rbx + 0x283]
mov rdx, qword [rbx + 0x50]
mov byte [rdx + rax], cl
inc dword [rbx + 0x74]
shl dword [rbx + 0x280], 8
sub dword [rbx + 0x284], 8
jmp 0x140166086
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret