Function at 0x18009c2b0
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.18035ba58
mov qword [rsp + 0x38], rax
mov r14, rax
test rax, rax
jne 0x18009c2fd
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.18035ba60
test rax, rax
je 0x18009c32d
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 0x18009c372
lea eax, [rdx + rdx]
movsxd rdx, eax
lea edi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009c372
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.180381cd0
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 0x18009ce61
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 0x18009c44d
mov eax, dword [r14 - 4]
jmp 0x18009c450
mov eax, r9d
movsxd rbp, eax
mov rsi, r9
test eax, eax
jle 0x18009c50a
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 0x18009c4f3
mov eax, r11d
mov r8d, ebx
sub eax, r10d
mov rdx, rbx
test eax, eax
jle 0x18009c4e2
mov r11, r13
movsxd r10, eax
sub r11, r9
add r11, r12
nop dword [rax + rax]
cmp rdx, 0x102
jge 0x18009c4d1
lea rcx, [r9 + rdx]
movzx eax, byte [r11 + rcx]
cmp byte [rcx], al
jne 0x18009c4d1
inc r8d
inc rdx
cmp rdx, r10
jl 0x18009c4b0
mov ecx, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x24]
mov r11d, dword [rsp + 0xa8]
cmp r8d, ecx
jl 0x18009c4f3
mov ecx, r8d
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x20], ecx
inc rsi
cmp rsi, rbp
jl 0x18009c480
mov rbx, qword [rsp + 0x28]
mov r12, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
test r14, r14
je 0x18009c533
cmp dword [r14 - 4], 0x10
jne 0x18009c533
lea rdx, [r14 + 0x40]
mov r8d, 0x40
mov rcx, r14
call fcn.180381630
mov rax, qword [r12]
mov dword [rax - 4], 8
mov rax, qword [r12]
lea rcx, [rax - 8]
test rax, rax
je 0x18009c564
mov eax, dword [rax - 4]
inc eax
cmp eax, dword [rcx]
jl 0x18009c591
mov eax, dword [rcx]
lea esi, [rax*2 + 1]
lea eax, [rsi*8]
movsxd rdx, eax
add rdx, 8
xor ebp, ebp
jmp 0x18009c572
xor ebp, ebp
mov esi, 2
mov ecx, ebp
mov edx, 0x18
call fcn.18035ba60
test rax, rax
je 0x18009c591
cmp qword [r12], 0
jne 0x18009c586
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 0x18009cc85
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 0x18009c6c9
movsxd rax, dword [rsi - 4]
xor ecx, ecx
mov r11d, ecx
test eax, eax
jle 0x18009c6c9
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 0x18009c6c1
mov eax, dword [rsp + 0xa8]
mov r8d, ecx
sub eax, r10d
mov rdx, rcx
dec eax
test eax, eax
jle 0x18009c6b0
mov r15, qword [rsp + 0xa0]
movsxd r10, eax
cmp rdx, 0x102
jge 0x18009c6a4
lea rax, [rdx + r13]
movzx ecx, byte [rax + r15 + 1]
cmp byte [r9 + rdx], cl
jne 0x18009c6a4
inc r8d
inc rdx
cmp rdx, r10
jl 0x18009c680
mov r15, qword [rsp + 0x30]
xor ecx, ecx
mov r10d, dword [rsp + 0x24]
cmp r8d, r12d
mov r8, qword [rsp + 0xa0]
jg 0x18009cc85
inc r11
cmp r11, rbp
jl 0x18009c650
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 0x18009c705
lea r8, [0x180000000]
nop dword [rax + rax]
movzx eax, word [r8 + r14*2 + 0x407404]
inc r14
dec eax
inc ecx
cmp r13d, eax
jg 0x18009c6f0
lea eax, [rcx + 0x101]
cmp eax, 0x8f
jg 0x18009c7ca
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 0x18009c722
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 0x18009c9fd
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 0x18009c784
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009c7b1
lea esi, [rsi*2 + 1]
jmp 0x18009c789
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009c7b1
test rbx, rbx
jne 0x18009c7aa
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 0x18009c767
jmp 0x18009c9f3
cmp eax, 0xff
jg 0x18009c889
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 0x18009c7e1
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 0x18009c9fd
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 0x18009c843
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009c870
lea esi, [rsi*2 + 1]
jmp 0x18009c848
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009c870
test rbx, rbx
jne 0x18009c869
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 0x18009c826
jmp 0x18009c9f3
cmp eax, 0x117
jg 0x18009c948
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 0x18009c8a0
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 0x18009c9fd
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 0x18009c902
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009c92f
lea esi, [rsi*2 + 1]
jmp 0x18009c907
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009c92f
test rbx, rbx
jne 0x18009c928
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 0x18009c8e5
jmp 0x18009c9f3
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 0x18009c954
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 0x18009c9fd
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 0x18009c9b2
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009c9df
lea esi, [rsi*2 + 1]
jmp 0x18009c9b7
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009c9df
test rbx, rbx
jne 0x18009c9d8
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 0x18009c995
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
lea rax, [0x180000000]
movzx r8d, byte [r14 + rax + 0x407440]
test r8b, r8b
je 0x18009cab8
movzx eax, word [rax + r14*2 + 0x407400]
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 0x18009cab8
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 0x18009ca6d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009ca9a
lea esi, [rsi*2 + 1]
jmp 0x18009ca72
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009ca9a
test rbx, rbx
jne 0x18009ca93
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 0x18009ca50
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
xor edx, edx
mov ecx, edx
mov r14d, edx
cmp r12d, 1
jle 0x18009cae7
lea rdx, [0x180000000]
nop dword [rax]
movzx eax, word [rdx + r14*2 + 0x406fa4]
inc r14
dec eax
inc ecx
cmp r12d, eax
jg 0x18009cad0
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 0x18009caf0
mov ecx, r15d
add r15d, 5
shl edx, cl
or edi, edx
mov dword [rsp + 0xb8], r15d
cmp r15d, 8
jl 0x18009cba8
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 0x18009cb5d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009cb8a
lea esi, [rsi*2 + 1]
jmp 0x18009cb62
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009cb8a
test rbx, rbx
jne 0x18009cb83
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 0x18009cb40
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
lea rax, [0x180000000]
movzx edx, byte [r14 + rax + 0x406fe0]
test dl, dl
je 0x18009cc78
movzx eax, word [rax + r14*2 + 0x406fa0]
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 0x18009cc78
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 0x18009cc2d
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009cc5a
lea esi, [rsi*2 + 1]
jmp 0x18009cc32
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r13
call fcn.18035ba60
test rax, rax
je 0x18009cc5a
test rbx, rbx
jne 0x18009cc53
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 0x18009cc10
mov r13d, dword [rsp + 0x20]
mov qword [rsp + 0x28], rbx
mov r10d, dword [rsp + 0x24]
add r10d, r13d
jmp 0x18009ce2e
movsxd rax, r10d
movzx ecx, byte [rax + r8]
cmp cl, 0x8f
ja 0x18009cd5a
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 0x18009cca5
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 0x18009ce2b
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 0x18009cd14
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009cd41
lea esi, [rsi*2 + 1]
jmp 0x18009cd19
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r14
call fcn.18035ba60
test rax, rax
je 0x18009cd41
test rbx, rbx
jne 0x18009cd3a
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 0x18009ccf7
jmp 0x18009ce21
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 0x18009cd70
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 0x18009ce2b
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 0x18009cde6
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009ce0d
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x18009cdf3
mov esi, 2
mov edx, 0xa
mov rcx, r14
call fcn.18035ba60
test rax, rax
je 0x18009ce0d
test rbx, rbx
jne 0x18009ce06
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 0x18009cdc2
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 0x18009c3d0
mov r13d, 7
movsxd r12, r11d
movsxd r14, r10d
mov qword [rsp + 0x30], r12
cmp r14, r12
jge 0x18009cff7
movzx ecx, byte [r14 + rsi]
mov edx, r9d
cmp cl, 0x8f
ja 0x18009cf3b
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 0x18009ce90
mov ecx, r15d
add r15d, 8
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x18009cfeb
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 0x18009ceed
mov eax, dword [rbx - 4]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009cf1a
lea esi, [rsi*2 + 1]
jmp 0x18009cef2
mov esi, 2
movsxd rdx, esi
add rdx, 8
test rbx, rbx
cmove rcx, r12
call fcn.18035ba60
test rax, rax
je 0x18009cf1a
test rbx, rbx
jne 0x18009cf13
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 0x18009ced0
mov r12, qword [rsp + 0x30]
xor r9d, r9d
jmp 0x18009cfe3
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 0x18009cf50
mov ecx, r15d
add r15d, 9
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x18009cfeb
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
test rbx, rbx
je 0x18009cfa5
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009cfcf
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x18009cfb2
mov esi, 2
mov edx, 0xa
mov rcx, r9
call fcn.18035ba60
xor r9d, r9d
test rax, rax
je 0x18009cfcf
test rbx, rbx
jne 0x18009cfc8
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 0x18009cf81
mov rsi, qword [rsp + 0xa0]
inc r14
cmp r14, r12
jl 0x18009ce75
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 0x18009d000
mov ecx, r15d
add r15d, 7
shl edx, cl
or edi, edx
cmp r15d, 8
jl 0x18009d093
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
test rbx, rbx
je 0x18009d055
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009d07f
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x18009d062
mov esi, 2
mov edx, 0xa
mov rcx, r9
call fcn.18035ba60
xor r9d, r9d
test rax, rax
je 0x18009d07f
test rbx, rbx
jne 0x18009d078
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 0x18009d031
test r15d, r15d
jne 0x18009d2c4
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 0x18009d0c1
add rcx, 0xfffffffffffffff8
call fcn.18035b684
add rdi, 8
sub rsi, 1
jne 0x18009d0b0
mov rcx, r14
call fcn.18035b684
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 0x18009d35d
mov dword [rbx - 4], 2
mov r14d, r13d
mov r13, qword [rsp + 0xa0]
test r15d, r15d
jle 0x18009d365
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 0x18009d172
lea eax, [rcx + rcx]
mov rcx, rsi
movsxd rdx, eax
lea r15d, [rax + 1]
add rdx, 9
call fcn.18035ba60
test rax, rax
je 0x18009d16a
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 0x18009d1b4
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r12
call fcn.18035ba60
test rax, rax
je 0x18009d1b4
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 0x18009d1f2
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r12
call fcn.18035ba60
test rax, rax
je 0x18009d1f2
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 0x18009d234
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r12
call fcn.18035ba60
test rax, rax
je 0x18009d234
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 0x18009d27d
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.18035ba60
test rax, rax
je 0x18009d27d
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.180381630
add dword [rbx - 4], edi
add r14d, edi
mov eax, 0x7fff
cmp r14d, r15d
jl 0x18009d130
mov r12, qword [rsp + 0x30]
jmp 0x18009d365
xor r9d, r9d
inc r15d
cmp r15d, 8
jl 0x18009d34c
mov ebp, r15d
shr rbp, 3
mov eax, ebp
neg eax
lea r15d, [r15 + rax*8]
jmp 0x18009d2e3
xor r9d, r9d
test rbx, rbx
je 0x18009d307
mov eax, dword [rbx - 4]
lea rcx, [rbx - 8]
mov esi, dword [rcx]
inc eax
cmp eax, esi
jl 0x18009d333
lea esi, [rsi*2 + 1]
movsxd rdx, esi
add rdx, 8
jmp 0x18009d314
mov esi, 2
mov edx, 0xa
mov rcx, r9
call fcn.18035ba60
xor r13d, r13d
test rax, rax
je 0x18009d336
test rbx, rbx
jne 0x18009d32a
mov dword [rax + 4], r13d
lea rbx, [rax + 8]
mov dword [rbx - 8], esi
jmp 0x18009d336
xor r13d, r13d
movsxd rax, dword [rbx - 4]
mov byte [rax + rbx], dil
inc dword [rbx - 4]
shr edi, 8
sub rbp, 1
jne 0x18009d2e0
jmp 0x18009d34f
xor r13d, r13d
test r15d, r15d
jne 0x18009d2c1
jmp 0x18009d09f
mov r13, qword [rsp + 0xa0]
xor r14d, r14d
mov edi, 1
mov esi, r14d
test r12, r12
jle 0x18009d3e4
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 0x18009d3b2
lea rdx, [r9 + r13]
movzx eax, byte [rcx + rdx]
inc rcx
add edi, eax
add esi, edi
cmp rcx, r8
jl 0x18009d3a2
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 0x18009d396
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 0x18009d41a
lea eax, [rdx + rdx]
movsxd rdx, eax
lea ebp, [rax + 1]
add rdx, 9
call fcn.18035ba60
test rax, rax
je 0x18009d41a
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 0x18009d45e
lea eax, [rdx + rdx]
movsxd rdx, eax
lea ebp, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r14
call fcn.18035ba60
test rax, rax
je 0x18009d45e
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 0x18009d4a3
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r14
call fcn.18035ba60
test rax, rax
je 0x18009d4a3
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 0x18009d4e7
lea eax, [rdx + rdx]
movsxd rdx, eax
lea esi, [rax + 1]
add rdx, 9
test rbx, rbx
cmove rcx, r14
call fcn.18035ba60
test rax, rax
je 0x18009d4e7
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.180381630
mov rdi, qword [rsp + 0x68]
lea rax, [rbx - 8]
add rsp, 0x78
pop r14
pop r13
pop rsi
pop rbx
ret