Function at 0x180098e90
Capabilities:
Compute adler32 checksum

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rsi
push r13
push r14
sub rsp, 0x78
mov rsi, rcx
xor r13d, r13d
mov ebx, r13d
mov ecx, 0x20000
mov qword [rsp + 0x28], rbx
call fcn.1803506b8
mov qword [rsp + 0x38], rax
mov r14, rax
test rax, rax
jne 0x180098edd
add rsp, 0x78
pop r14
pop r13
pop rsi
pop rbx
ret
mov qword [rsp + 0x68], rdi
mov edx, 0xa
mov qword [rsp + 0x60], r12
xor ecx, ecx
mov qword [rsp + 0x58], r15
call fcn.1803506c0
test rax, rax
je 0x180098f0d
lea rbx, [rax + 8]
mov qword [rax], 2
mov qword [rsp + 0x28], rbx
movsxd rax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov byte [rax + rbx], 0x78
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
mov dword [rbx - 4], eax
inc eax
cmp eax, edx
jl 0x180098f52
lea eax, [rdx + rdx]
movsxd rdx, eax
lea edi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x180098f52
lea rbx, [rax + 8]
mov dword [rax], edi
mov qword [rsp + 0x28], rbx
movsxd rax, dword [rbx - 4]
mov edi, 3
xor edx, edx
mov qword [rsp + 0x70], rbp
mov r8d, 0x20000
mov dword [rsp + 0xb8], edi
mov rcx, r14
mov r15d, edi
mov byte [rax + rbx], 0x5e
inc dword [rbx - 4]
call fcn.180375960
mov r11d, dword [rsp + 0xa8]
xor r9d, r9d
mov r10d, r9d
mov dword [rsp + 0x24], r9d
mov r13d, 7
lea eax, [r11 - 3]
test eax, eax
jle 0x180099a41
nop word [rax + rax]
movsxd r13, r10d
mov qword [rsp + 0x30], r9
movzx eax, byte [rsi + r13 + 1]
movzx ecx, byte [rsi + r13 + 2]
shl eax, 8
shl ecx, 0x10
add ecx, eax
movzx eax, byte [rsi + r13]
add ecx, eax
lea eax, [rcx*8]
xor ecx, eax
mov eax, ecx
shr eax, 5
add ecx, eax
mov eax, ecx
shl eax, 4
xor ecx, eax
mov eax, ecx
shr eax, 0x11
add ecx, eax
mov eax, ecx
shl eax, 0x19
xor ecx, eax
mov eax, ecx
shr eax, 6
add eax, ecx
mov ecx, 3
and eax, 0x3fff
mov dword [rsp + 0x20], ecx
mov r15d, eax
mov qword [rsp + 0x48], r15
lea r12, [r14 + rax*8]
mov r14, qword [r14 + rax*8]
mov qword [rsp + 0x40], r12
test r14, r14
je 0x18009902d
mov eax, dword [r14 - 4]
jmp 0x180099030
mov eax, r9d
movsxd rbp, eax
mov rsi, r9
test eax, eax
jle 0x1800990ea
mov r12, qword [rsp + 0xa0]
lea eax, [r10 - 0x8000]
movsxd r15, eax
xor ebx, ebx
nop dword [rax]
nop word [rax + rax]
mov r9, qword [r14 + rsi*8]
mov rax, r9
sub rax, r12
cmp rax, r15
jle 0x1800990d3
mov eax, r11d
mov r8d, ebx
sub eax, r10d
mov rdx, rbx
test eax, eax
jle 0x1800990c2
mov r11, r13
movsxd r10, eax
sub r11, r9
add r11, r12
nop dword [rax + rax]
cmp rdx, 0x102
jge 0x1800990b1
lea rcx, [r9 + rdx]
movzx eax, byte [r11 + rcx]
cmp byte [rcx], al
jne 0x1800990b1
inc r8d
inc rdx
cmp rdx, r10
jl 0x180099090
mov ecx, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x24]
mov r11d, dword [rsp + 0xa8]
cmp r8d, ecx
jl 0x1800990d3
mov ecx, r8d
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x20], ecx
inc rsi
cmp rsi, rbp
jl 0x180099060
mov rbx, qword [rsp + 0x28]
mov r12, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
test r14, r14
je 0x180099113
cmp dword [r14 - 4], 0x10
jne 0x180099113
lea rdx, [r14 + 0x40]
mov r8d, 0x40
mov rcx, r14
call fcn.1803752c0
mov rax, qword [r12]
mov dword [rax - 4], 8
mov rax, qword [r12]
lea rcx, [rax - 8]
test rax, rax
je 0x180099144
mov eax, dword [rax - 4]
inc eax
cmp eax, dword [rcx]
jl 0x180099171
mov eax, dword [rcx]
lea esi, [rax*2 + 1]
lea eax, [rsi*8]
movsxd rdx, eax
add rdx, 8
xor ebp, ebp
jmp 0x180099152
xor ebp, ebp
mov esi, 2
mov ecx, ebp
mov edx, 0x18
call fcn.1803506c0
test rax, rax
je 0x180099171
cmp qword [r12], 0
jne 0x180099166
mov dword [rax + 4], ebp
add rax, 8
mov qword [r12], rax
mov dword [rax - 8], esi
mov r9, qword [rsp + 0x38]
movsxd r10, dword [rsp + 0x24]
mov r8, qword [rsp + 0xa0]
mov eax, r15d
lea rcx, [r8 + r10]
mov rdx, qword [r9 + rax*8]
movsxd rax, dword [rdx - 4]
mov qword [rdx + rax*8], rcx
mov eax, r15d
mov r15, qword [rsp + 0x30]
mov rcx, qword [r9 + rax*8]
inc dword [rcx - 4]
test r15, r15
je 0x180099865
movzx eax, byte [r10 + r8 + 2]
movzx edx, byte [r10 + r8 + 3]
shl eax, 8
shl edx, 0x10
add edx, eax
movzx eax, byte [r10 + r8 + 1]
add edx, eax
lea eax, [rdx*8]
xor edx, eax
mov eax, edx
shr eax, 5
add edx, eax
mov eax, edx
shl eax, 4
xor edx, eax
mov eax, edx
shr eax, 0x11
add edx, eax
mov eax, edx
shl eax, 0x19
xor edx, eax
mov eax, edx
shr eax, 6
add eax, edx
and eax, 0x3fff
mov rsi, qword [r9 + rax*8]
test rsi, rsi
je 0x1800992a9
movsxd rax, dword [rsi - 4]
xor ecx, ecx
mov r11d, ecx
test eax, eax
jle 0x1800992a9
mov r12d, dword [rsp + 0x20]
mov rbp, rax
lea eax, [r10 - 0x7fff]
movsxd r14, eax
nop dword [rax + rax]
mov r9, qword [rsi + r11*8]
mov rax, r9
sub rax, r8
cmp rax, r14
jle 0x1800992a1
mov eax, dword [rsp + 0xa8]
mov r8d, ecx
sub eax, r10d
mov rdx, rcx
dec eax
test eax, eax
jle 0x180099290
mov r15, qword [rsp + 0xa0]
movsxd r10, eax
cmp rdx, 0x102
jge 0x180099284
lea rax, [rdx + r13]
movzx ecx, byte [rax + r15 + 1]
cmp byte [r9 + rdx], cl
jne 0x180099284
inc r8d
inc rdx
cmp rdx, r10
jl 0x180099260
mov r15, qword [rsp + 0x30]
xor ecx, ecx
mov r10d, dword [rsp + 0x24]
cmp r8d, r12d
mov r8, qword [rsp + 0xa0]
jg 0x180099865
inc r11
cmp r11, rbp
jl 0x180099230
mov r13d, dword [rsp + 0x20]
xor edx, edx
mov r12d, r8d
mov ecx, edx
sub r12d, r15d
mov r14d, edx
add r12d, r10d
cmp r13d, 3
jle 0x1800992e5
lea r8, [0x180000000]
nop dword [rax + rax]
movzx eax, word [r8 + r14*2 + 0x3fa264]
inc r14
dec eax
inc ecx
cmp r13d, eax
jg 0x1800992d0
lea eax, [rcx + 0x101]
cmp eax, 0x8f
jg 0x1800993aa
add ecx, 0x131
mov r8d, 8
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x180099302
mov r15d, dword [rsp + 0xb8]
mov ecx, r15d
shl edx, cl
add r15d, 8
or edi, edx
mov qword [rsp + 0x28], rbx
cmp r15d, 8
jl 0x1800995dd
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r13d, r13d
lea r15d, [r15 + rax*8]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x180099364
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x180099391
lea esi, [rsi*2 + 1]
jmp 0x180099369
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x180099391
test rbx, rbx
jne 0x18009938a
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099347
jmp 0x1800995d3
cmp eax, 0xff
jg 0x180099469
add ecx, 0x201
mov r8d, 9
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x1800993c1
mov r15d, dword [rsp + 0xb8]
mov ecx, r15d
shl edx, cl
add r15d, 9
or edi, edx
mov qword [rsp + 0x28], rbx
cmp r15d, 8
jl 0x1800995dd
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r13d, r13d
lea r15d, [r15 + rax*8]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x180099423
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x180099450
lea esi, [rsi*2 + 1]
jmp 0x180099428
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x180099450
test rbx, rbx
jne 0x180099449
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099406
jmp 0x1800995d3
cmp eax, 0x117
jg 0x180099528
inc ecx
mov r8d, 7
nop dword [rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x180099480
mov r15d, dword [rsp + 0xb8]
mov ecx, r15d
shl edx, cl
add r15d, 7
or edi, edx
mov qword [rsp + 0x28], rbx
cmp r15d, 8
jl 0x1800995dd
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r13d, r13d
lea r15d, [r15 + rax*8]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x1800994e2
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009950f
lea esi, [rsi*2 + 1]
jmp 0x1800994e7
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x18009950f
test rbx, rbx
jne 0x180099508
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x1800994c5
jmp 0x1800995d3
add ecx, 0xa9
mov r8d, 8
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x180099534
mov r15d, dword [rsp + 0xb8]
mov ecx, r15d
shl edx, cl
add r15d, 8
or edi, edx
mov qword [rsp + 0x28], rbx
cmp r15d, 8
jl 0x1800995dd
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r13d, r13d
lea r15d, [r15 + rax*8]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x180099592
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x1800995bf
lea esi, [rsi*2 + 1]
jmp 0x180099597
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x1800995bf
test rbx, rbx
jne 0x1800995b8
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099575
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
lea rax, [0x180000000]
movzx r8d, byte [r14 + rax + 0x3fa2a0]
test r8b, r8b
je 0x180099698
movzx eax, word [rax + r14*2 + 0x3fa260]
mov ecx, r15d
mov edx, r13d
mov qword [rsp + 0x28], rbx
sub edx, eax
add r15d, r8d
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x180099698
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r13d, r13d
lea r15d, [r15 + rax*8]
nop dword [rax + rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x18009964d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009967a
lea esi, [rsi*2 + 1]
jmp 0x180099652
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x18009967a
test rbx, rbx
jne 0x180099673
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099630
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
xor edx, edx
mov ecx, edx
mov r14d, edx
cmp r12d, 1
jle 0x1800996c7
lea rdx, [0x180000000]
nop dword [rax]
movzx eax, word [rdx + r14*2 + 0x3f9e04]
inc r14
dec eax
inc ecx
cmp r12d, eax
jg 0x1800996b0
xor edx, edx
mov r8d, 5
nop dword [rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x1800996d0
mov ecx, r15d
add r15d, 5
shl edx, cl
or edi, edx
mov dword [rsp + 0xb8], r15d
cmp r15d, 8
jl 0x180099788
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r13d, r13d
lea r15d, [r15 + rax*8]
mov dword [rsp + 0xb8], r15d
nop dword [rax + rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x18009973d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009976a
lea esi, [rsi*2 + 1]
jmp 0x180099742
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x18009976a
test rbx, rbx
jne 0x180099763
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099720
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
lea rax, [0x180000000]
movzx edx, byte [r14 + rax + 0x3f9e40]
test dl, dl
je 0x180099858
movzx eax, word [rax + r14*2 + 0x3f9e00]
mov ecx, r15d
sub r12d, eax
mov qword [rsp + 0x28], rbx
shl r12d, cl
add r15d, edx
or edi, r12d
mov dword [rsp + 0xb8], r15d
cmp r15d, 8
jl 0x180099858
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r13d, r13d
lea r15d, [r15 + rax*8]
mov dword [rsp + 0xb8], r15d
nop dword [rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x18009980d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009983a
lea esi, [rsi*2 + 1]
jmp 0x180099812
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.1803506c0
test rax, rax
je 0x18009983a
test rbx, rbx
jne 0x180099833
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x1800997f0
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
mov r10d, dword [rsp + 0x24]
add r10d, r13d
jmp 0x180099a0e
movsxd rax, r10d
movzx ecx, byte [rax + r8]
cmp cl, 0x8f
ja 0x18009993a
add ecx, 0x30
mov r8d, 8
xor r14d, r14d
mov edx, r14d
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x180099885
mov r15d, dword [rsp + 0xb8]
mov ecx, r15d
shl edx, cl
add r15d, 8
or edi, edx
mov dword [rsp + 0xb8], r15d
mov qword [rsp + 0x28], rbx
cmp r15d, 8
jl 0x180099a0b
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
mov dword [rsp + 0xb8], r15d
lea rcx, [rbx - 8]
test rbx, rbx
je 0x1800998f4
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x180099921
lea esi, [rsi*2 + 1]
jmp 0x1800998f9
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r14
call fcn.1803506c0
test rax, rax
je 0x180099921
test rbx, rbx
jne 0x18009991a
mov dword [rax + 4], r14d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x1800998d7
jmp 0x180099a01
add ecx, 0x100
mov r8d, 9
xor r14d, r14d
mov edx, r14d
nop dword [rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x180099950
mov r15d, dword [rsp + 0xb8]
mov ecx, r15d
shl edx, cl
add r15d, 9
or edi, edx
mov dword [rsp + 0xb8], r15d
mov qword [rsp + 0x28], rbx
cmp r15d, 8
jl 0x180099a0b
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
mov dword [rsp + 0xb8], r15d
test rbx, rbx
je 0x1800999c6
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x1800999ed
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x1800999d3
mov esi, 2
mov edx, 0xa
mov rcx, r14
call fcn.1803506c0
test rax, rax
je 0x1800999ed
test rbx, rbx
jne 0x1800999e6
mov dword [rax + 4], r14d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x1800999a2
mov r10d, dword [rsp + 0x24]
mov qword [rsp + 0x28], rbx
inc r10d
mov r11d, dword [rsp + 0xa8]
mov r9d, 0
mov rsi, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x38]
mov dword [rsp + 0x24], r10d
lea eax, [r11 - 3]
cmp r10d, eax
jl 0x180098fb0
mov r13d, 7
movsxd r12, r11d
movsxd r14, r10d
mov qword [rsp + 0x30], r12
cmp r14, r12
jge 0x180099bd7
movzx ecx, byte [r14 + rsi]
mov edx, r9d
cmp cl, 0x8f
ja 0x180099b1b
add ecx, 0x30
mov r8d, 8
nop
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x180099a70
mov ecx, r15d
add r15d, 8
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x180099bcb
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
xor r12d, r12d
lea r15d, [r15 + rax*8]
nop dword [rax + rax]
lea rcx, [rbx - 8]
test rbx, rbx
je 0x180099acd
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x180099afa
lea esi, [rsi*2 + 1]
jmp 0x180099ad2
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r12
call fcn.1803506c0
test rax, rax
je 0x180099afa
test rbx, rbx
jne 0x180099af3
mov dword [rax + 4], r12d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099ab0
mov r12, qword [rsp + 0x30]
xor r9d, r9d
jmp 0x180099bc3
add ecx, 0x100
mov r8d, 9
nop word [rax + rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r8d, 1
jne 0x180099b30
mov ecx, r15d
add r15d, 9
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x180099bcb
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
test rbx, rbx
je 0x180099b85
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x180099baf
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x180099b92
mov esi, 2
mov edx, 0xa
mov rcx, r9
call fcn.1803506c0
xor r9d, r9d
test rax, rax
je 0x180099baf
test rbx, rbx
jne 0x180099ba8
mov dword [rax + 4], r9d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099b61
mov rsi, qword [rsp + 0xa0]
inc r14
cmp r14, r12
jl 0x180099a55
mov ecx, r9d
mov edx, r9d
nop dword [rax]
mov eax, ecx
add edx, edx
and eax, 1
sar ecx, 1
or edx, eax
sub r13d, 1
jne 0x180099be0
mov ecx, r15d
add r15d, 7
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x180099c73
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
test rbx, rbx
je 0x180099c35
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x180099c5f
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x180099c42
mov esi, 2
mov edx, 0xa
mov rcx, r9
call fcn.1803506c0
xor r9d, r9d
test rax, rax
je 0x180099c5f
test rbx, rbx
jne 0x180099c58
mov dword [rax + 4], r9d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099c11
test r15d, r15d
jne 0x180099ea4
xor r13d, r13d
mov r14, qword [rsp + 0x38]
mov esi, 0x4000
mov rdi, r14
nop dword [rax]
mov rcx, qword [rdi]
test rcx, rcx
je 0x180099ca1
add rcx, 0xfffffffffffffff8
call fcn.1803502e4
add rdi, 8
sub rsi, 1
jne 0x180099c90
mov rcx, r14
call fcn.1803502e4
mov r15d, dword [rsp + 0xa8]
mov eax, 0x80010003
lea ecx, [r15 + 0x7ffe]
imul ecx
add edx, ecx
lea ecx, [r15 + 2]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rcx + rdx*4]
add ecx, edx
cmp dword [rbx - 4], ecx
jle 0x180099f3d
mov dword [rbx - 4], 2
mov r14d, r13d
mov r13, qword [rsp + 0xa0]
test r15d, r15d
jle 0x180099f45
lea rsi, [rbx - 8]
mov eax, 0x7fff
xor r12d, r12d
nop
mov ecx, dword [rsi]
mov ebp, r15d
sub ebp, r14d
cmp ebp, eax
mov edi, ebp
cmovg edi, eax
mov eax, dword [rbx - 4]
inc eax
cmp eax, ecx
jl 0x180099d52
lea eax, [rcx + rcx]
mov rcx, rsi
movsxd rdx, eax
lea r15d, [rax + 1]
add rdx, 9
call fcn.1803506c0
test rax, rax
je 0x180099d4a
lea rbx, [rax + 8]
mov dword [rax], r15d
mov r15d, dword [rsp + 0xa8]
movsxd rax, dword [rbx - 4]
cmp ebp, edi
sete cl
mov byte [rax + rbx], cl
lea rcx, [rbx - 8]
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
cmp eax, edx
jl 0x180099d94
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r12
call fcn.1803506c0
test rax, rax
je 0x180099d94
lea rbx, [rax + 8]
mov dword [rax], esi
movsxd rax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
cmp eax, edx
jl 0x180099dd2
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r12
call fcn.1803506c0
test rax, rax
je 0x180099dd2
lea rbx, [rax + 8]
mov dword [rax], esi
movsxd rax, dword [rbx - 4]
mov ecx, edi
sar ecx, 8
mov byte [rax + rbx], cl
lea rcx, [rbx - 8]
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
cmp eax, edx
jl 0x180099e14
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r12
call fcn.1803506c0
test rax, rax
je 0x180099e14
lea rbx, [rax + 8]
mov dword [rax], esi
movsxd rax, dword [rbx - 4]
lea rsi, [rbx - 8]
movzx ecx, dil
not cl
mov byte [rax + rbx], cl
inc dword [rbx - 4]
mov eax, dword [rbx - 4]
mov ecx, dword [rsi]
inc eax
cmp eax, ecx
jl 0x180099e5d
lea eax, [rcx + rcx]
mov rcx, rsi
movsxd rdx, eax
lea ebp, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r12
call fcn.1803506c0
test rax, rax
je 0x180099e5d
lea rbx, [rax + 8]
mov dword [rax], ebp
mov rsi, rax
movsxd rax, dword [rbx - 4]
mov ecx, edi
not ecx
movsxd rdx, r14d
sar ecx, 8
add rdx, r13
movsxd r8, edi
mov byte [rax + rbx], cl
inc dword [rbx - 4]
movsxd rcx, dword [rbx - 4]
add rcx, rbx
call fcn.1803752c0
add dword [rbx - 4], edi
add r14d, edi
mov eax, 0x7fff
cmp r14d, r15d
jl 0x180099d10
mov r12, qword [rsp + 0x30]
jmp 0x180099f45
xor r9d, r9d
inc r15d
cmp r15d, 8
jl 0x180099f2c
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
jmp 0x180099ec3
xor r9d, r9d
test rbx, rbx
je 0x180099ee7
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x180099f13
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x180099ef4
mov esi, 2
mov edx, 0xa
mov rcx, r9
call fcn.1803506c0
xor r13d, r13d
test rax, rax
je 0x180099f16
test rbx, rbx
jne 0x180099f0a
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
jmp 0x180099f16
xor r13d, r13d
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x180099ec0
jmp 0x180099f2f
xor r13d, r13d
test r15d, r15d
jne 0x180099ea1
jmp 0x180099c7f
mov r13, qword [rsp + 0xa0]
xor r14d, r14d
mov edi, 1
mov esi, r14d
test r12, r12
jle 0x180099fc4
mov eax, 0x5e6ea9af
mov r9d, r14d
imul r15d
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x15b0
sub r15d, eax
movsxd r8, r15d
mov rcx, r14
test r8, r8
jle 0x180099f92
lea rdx, [r9 + r13]
movzx eax, byte [rcx + rdx]
inc rcx
add edi, eax
add esi, edi
cmp rcx, r8
jl 0x180099f82
mov eax, 0x80078071
add r9, r8
mul edi
mov r8d, 0x15b0
shr edx, 0xf
imul eax, edx, 0xffff000f
add edi, eax
mov eax, 0x80078071
mul esi
shr edx, 0xf
imul eax, edx, 0xffff000f
add esi, eax
cmp r9, r12
jl 0x180099f76
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov edx, dword [rcx]
inc eax
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
cmp eax, edx
jl 0x180099ffa
lea eax, [rdx + rdx]
movsxd rdx, eax
lea ebp, [rax + 1]
add rdx, 9
call fcn.1803506c0
test rax, rax
je 0x180099ffa
lea rbx, [rax + 8]
mov dword [rax], ebp
movsxd rax, dword [rbx - 4]
mov ecx, esi
shr ecx, 8
mov byte [rax + rbx], cl
lea rcx, [rbx - 8]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
mov dword [rbx - 4], eax
inc eax
cmp eax, edx
jl 0x18009a03e
lea eax, [rdx + rdx]
movsxd rdx, eax
lea ebp, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r14
call fcn.1803506c0
test rax, rax
je 0x18009a03e
lea rbx, [rax + 8]
mov dword [rax], ebp
movsxd rax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov rbp, qword [rsp + 0x70]
mov byte [rax + rbx], sil
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
mov dword [rbx - 4], eax
inc eax
cmp eax, edx
jl 0x18009a083
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r14
call fcn.1803506c0
test rax, rax
je 0x18009a083
lea rbx, [rax + 8]
mov dword [rax], esi
movsxd rax, dword [rbx - 4]
mov ecx, edi
shr ecx, 8
mov byte [rax + rbx], cl
lea rcx, [rbx - 8]
mov eax, dword [rbx - 4]
mov edx, dword [rcx]
inc eax
mov dword [rbx - 4], eax
inc eax
cmp eax, edx
jl 0x18009a0c7
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r14
call fcn.1803506c0
test rax, rax
je 0x18009a0c7
lea rbx, [rax + 8]
mov dword [rax], esi
movsxd rax, dword [rbx - 4]
mov rdx, rbx
mov rcx, qword [rsp + 0xb0]
mov byte [rax + rbx], dil
mov eax, dword [rbx - 4]
inc eax
mov dword [rcx], eax
lea rcx, [rbx - 8]
movsxd r8, eax
mov dword [rbx - 4], eax
call fcn.1803752c0
mov rdi, qword [rsp + 0x68]
lea rax, [rbx - 8]
add rsp, 0x78
pop r14
pop r13
pop rsi
pop rbx
ret