Function at 0x140015820
Capabilities:
Compute adler32 checksum

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x130
mov rax, qword [0x140079008]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov rbx, qword [rsp + 0x190]
mov rsi, r8
mov rbp, qword [rsp + 0x198]
mov r13, rcx
mov eax, dword [rsp + 0x1a0]
mov r14, rdx
mov qword [rsp + 0x70], r8
mov r15, rbx
mov rdi, qword [rsi]
mov r8, 0xffffffffffffffff
mov rcx, qword [rbp]
add rdi, rdx
and eax, 4
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x78], rbx
lea r11, [rbx + rcx]
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x38], eax
je 0x1400158ba
mov rax, r8
jmp 0x1400158c6
mov rax, rbx
sub rax, r9
dec rax
add rax, rcx
lea r10, [rax + 1]
mov qword [rsp + 0x58], rax
test rax, r10
jne 0x140016c91
cmp rbx, r9
jb 0x140016c91
mov rax, qword [r13 + 0x40]
mov r9d, dword [r13 + 0x20]
mov edx, dword [r13 + 0x28]
mov ebx, dword [r13 + 4]
mov rsi, qword [r13 + 0x38]
mov ebp, dword [r13 + 0x24]
mov qword [rsp + 0x48], rax
mov eax, dword [r13]
mov qword [rsp + 0x188], r12
mov r12d, 1
mov dword [rsp + 0x28], r9d
mov dword [rsp + 0x2c], edx
cmp eax, 0x35
ja case.default.0x14001593a
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x16cc8]
lea rax, [0x140000000]
add rcx, rax
jmp rcx
mov eax, dword [rsp + 0x1a0]
xor ebp, ebp
xor ebx, ebx
mov qword [r13 + 8], 0
xor esi, esi
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x28], ebp
mov dword [r13 + 0x1c], r12d
mov dword [r13 + 0x10], r12d
test r12b, al
je 0x140015f69
jmp 0x140015977
mov eax, dword [rsp + 0x1a0]
cmp r14, rdi
jb 0x140015987
test al, 2
mov dword [r13], r12d
jmp 0x140016a86
movzx eax, byte [r14]
inc r14
mov dword [r13 + 8], eax
cmp r14, rdi
jb 0x1400159ab
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 2
jmp 0x140016a83
movzx r9d, byte [r14]
mov eax, 0x8421085
mov r8d, dword [r13 + 8]
inc r14
mov ecx, r8d
mov dword [r13 + 0xc], r9d
shl ecx, 8
add ecx, r9d
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
cmp ecx, eax
jne 0x1400159ef
test r9b, 0x20
jne 0x1400159ef
mov eax, r8d
and al, 0xf
cmp al, 8
jne 0x1400159ef
xor ebp, ebp
jmp 0x1400159f2
mov ebp, r12d
cmp dword [rsp + 0x38], 0
jne 0x140015a1b
shr r8d, 4
mov eax, r12d
lea ecx, [r8 + 8]
shl eax, cl
cmp eax, 0x8000
ja 0x140015a16
cmp r10, rax
jb 0x140015a16
xor eax, eax
jmp 0x140015a19
mov eax, r12d
or ebp, eax
test ebp, ebp
je 0x140015f69
mov r8, 0xffffffffffffffff
mov dword [r13], 0x24
jmp 0x140016aae
mov rdx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x60]
jmp 0x140015c47
cmp r14, rdi
jae 0x140016964
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, edx
jb case.0x14001593a.25
mov ecx, edx
mov eax, r12d
shl eax, cl
sub ebx, edx
dec eax
and eax, esi
shr rsi, cl
add ebp, eax
cmp ebx, 0xf
jae 0x140015b40
mov rax, rdi
sub rax, r14
cmp rax, 2
jge 0x140015b1f
mov rax, rsi
and eax, 0x3ff
movsx r8d, word [r13 + rax*2 + 0xf08]
test r8d, r8d
js 0x140015aba
sar r8d, 9
test r8d, r8d
je case.0x14001593a.26
cmp ebx, r8d
jae 0x140015b40
jmp case.0x14001593a.26
cmp ebx, 0xa
jbe case.0x14001593a.26
mov ecx, 0xa
nop dword [rax]
nop dword [rax + rax]
not r8d
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, r8d
add rdx, rax
movsx r8d, word [r13 + rdx*2 + 0x1708]
test r8d, r8d
jns 0x140015b40
lea eax, [rcx + 1]
cmp ebx, eax
jae 0x140015ad0
cmp r14, rdi
jae 0x14001678e
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 0xf
jb 0x140015a90
jmp 0x140015b40
movzx edx, byte [r14 + 1]
lea ecx, [rbx + 8]
movzx eax, byte [r14]
add r14, 2
shl rdx, cl
mov ecx, ebx
shl rax, cl
or rdx, rax
or rsi, rdx
add ebx, 0x10
mov rax, rsi
and eax, 0x3ff
movsx r8d, word [r13 + rax*2 + 0xf08]
test r8d, r8d
js 0x140015b65
mov ecx, r8d
sar ecx, 9
and r8d, 0x1ff
jmp 0x140015b92
mov ecx, 0xa
nop word [rax + rax]
not r8d
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, r8d
add rdx, rax
movsx r8d, word [r13 + rdx*2 + 0x1708]
test r8d, r8d
js 0x140015b70
shr rsi, cl
sub ebx, ecx
lea rcx, [0x140000000]
mov edx, dword [rcx + r8*4 + 0x67f40]
mov r9d, dword [rcx + r8*4 + 0x67ec0]
mov dword [rsp + 0x2c], edx
mov dword [rsp + 0x28], r9d
test edx, edx
je 0x140015bf6
cmp ebx, edx
jae 0x140015bde
cmp r14, rdi
jae 0x1400167a2
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, edx
jb case.0x14001593a.27
mov ecx, edx
mov eax, r12d
shl eax, cl
sub ebx, edx
dec eax
and eax, esi
shr rsi, cl
add r9d, eax
mov dword [rsp + 0x28], r9d
mov r10, qword [rsp + 0x60]
mov rdx, r15
sub rdx, r10
mov eax, r9d
mov qword [rsp + 0x48], rdx
cmp rax, rdx
jbe 0x140015c19
cmp dword [rsp + 0x38], 0
jne 0x1400169e4
mov r8, rdx
mov ecx, ebp
sub r8, rax
and r8, qword [rsp + 0x58]
add r8, r10
cmp r15, r8
mov rax, r8
cmova rax, r15
add rax, rcx
cmp rax, r11
jbe 0x140015c78
mov eax, ebp
dec ebp
test eax, eax
je 0x140015d22
cmp r15, r11
jae 0x1400167b6
mov eax, r9d
mov rcx, rdx
sub rcx, rax
and rcx, qword [rsp + 0x58]
movzx eax, byte [rcx + r10]
mov byte [r15], al
inc r15
inc rdx
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x48], rdx
jmp 0x140015c3b
cmp ebp, 9
jb 0x140015cb0
cmp ebp, r9d
ja 0x140015cb0
mov edx, 0xfffffff8
and rcx, rdx
add rcx, r8
nop dword [rax]
mov rax, qword [r8]
add r8, 8
mov qword [r15], rax
add r15, 8
cmp r8, rcx
jb 0x140015c90
and ebp, 7
mov qword [rsp + 0x30], r15
cmp ebp, 3
jb 0x140015cff
cmp ebp, 2
jbe 0x140015cff
lea ecx, [rbp - 3]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea ecx, [rdx + 1]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8]
add ebp, 0xfffffffd
mov byte [r15], al
movzx eax, byte [r8 + 1]
mov byte [r15 + 1], al
movzx eax, byte [r8 + 2]
add r8, 3
mov byte [r15 + 2], al
add r15, 3
sub rcx, 1
jne 0x140015cd0
mov qword [rsp + 0x30], r15
test ebp, ebp
je 0x140015d22
movzx eax, byte [r8]
mov byte [r15], al
cmp ebp, 1
jbe 0x140015d18
movzx eax, byte [r8 + 1]
mov byte [r15 + 1], al
mov eax, ebp
add r15, rax
mov qword [rsp + 0x30], r15
mov rcx, rdi
sub rcx, r14
cmp rcx, 4
jl 0x140015e17
mov rax, r11
sub rax, r15
cmp rax, 2
jl 0x140015e17
cmp ebx, 0x1e
jae 0x140015d59
mov eax, dword [r14]
mov ecx, ebx
shl rax, cl
add r14, 4
or rsi, rax
add ebx, 0x20
mov rax, rsi
and eax, 0x3ff
movsx ebp, word [r13 + rax*2 + 0x168]
test ebp, ebp
js 0x140015d75
mov ecx, ebp
sar ecx, 9
jmp 0x140015da0
mov ecx, 0xa
nop word [rax + rax]
not ebp
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, ebp
add rdx, rax
movsx ebp, word [r13 + rdx*2 + 0x968]
test ebp, ebp
js 0x140015d80
shr rsi, cl
sub ebx, ecx
bt ebp, 8
jb 0x140015f4c
mov rax, rsi
and eax, 0x3ff
movsx r8d, word [r13 + rax*2 + 0x168]
test r8d, r8d
js 0x140015dcd
mov ecx, r8d
sar ecx, 9
jmp 0x140015df4
mov ecx, 0xa
not r8d
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, r8d
add rdx, rax
movsx r8d, word [r13 + rdx*2 + 0x968]
test r8d, r8d
js 0x140015dd2
shr rsi, cl
lea rax, [r15 + 1]
sub ebx, ecx
mov byte [r15], bpl
bt r8d, 8
jb 0x140015f41
mov byte [rax], r8b
add r15, 2
jmp 0x140015d1d
cmp ebx, 0xf
jae 0x140015ed0
cmp rcx, 2
jge 0x140015eaf
mov rax, rsi
and eax, 0x3ff
movsx r8d, word [r13 + rax*2 + 0x168]
test r8d, r8d
js 0x140015e54
sar r8d, 9
test r8d, r8d
je case.0x14001593a.23
cmp ebx, r8d
jae 0x140015ed0
jmp case.0x14001593a.23
cmp ebx, 0xa
jbe case.0x14001593a.23
mov ecx, 0xa
nop
not r8d
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, r8d
add rdx, rax
movsx r8d, word [r13 + rdx*2 + 0x968]
test r8d, r8d
jns 0x140015ed0
lea eax, [rcx + 1]
cmp ebx, eax
jae 0x140015e60
cmp r14, rdi
jae 0x1400167c9
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 0xf
jb 0x140015e2a
jmp 0x140015ed0
movzx edx, byte [r14 + 1]
lea ecx, [rbx + 8]
movzx eax, byte [r14]
add r14, 2
shl rdx, cl
mov ecx, ebx
shl rax, cl
or rdx, rax
or rsi, rdx
add ebx, 0x10
mov rax, rsi
and eax, 0x3ff
movsx ebp, word [r13 + rax*2 + 0x168]
test ebp, ebp
js 0x140015ef2
mov ecx, ebp
sar ecx, 9
and ebp, 0x1ff
jmp 0x140015f20
mov ecx, 0xa
nop word [rax + rax]
not ebp
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, ebp
add rdx, rax
movsx ebp, word [r13 + rdx*2 + 0x968]
test ebp, ebp
js 0x140015f00
shr rsi, cl
sub ebx, ecx
cmp ebp, 0x100
jae 0x140015f4c
cmp r15, r11
jae 0x1400167dd
mov byte [r15], bpl
inc r15
jmp 0x140015d1d
mov r15, rax
mov qword [rsp + 0x30], rax
mov ebp, r8d
and ebp, 0x1ff
cmp ebp, 0x100
jne 0x14001675a
test byte [r13 + 0x14], 1
jne 0x1400168ea
cmp ebx, 3
jae 0x140015f8e
cmp r14, rdi
jae 0x1400167f0
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 3
jb case.0x14001593a.3
mov ecx, esi
add ebx, 0xfffffffd
and ecx, 7
shr rsi, 3
mov dword [r13 + 0x14], ecx
shr ecx, 1
mov dword [r13 + 0x18], ecx
jne 0x14001613f
mov eax, ebx
and eax, 7
cmp ebx, eax
jae 0x140015fd7
cmp r14, rdi
jae 0x140016804
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
add ebx, 8
or rsi, rax
inc r14
mov eax, ebx
and eax, 7
cmp ebx, eax
jb case.0x14001593a.5
mov ecx, ebx
mov eax, 0xfffffff8
and cl, 7
and ebx, eax
shr rsi, cl
xor ebp, ebp
cmp ebp, 4
jae 0x14001604d
test ebx, ebx
je case.0x14001593a.7
cmp ebx, 8
jae 0x140016016
cmp r14, rdi
jae 0x140016818
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 8
jb case.0x14001593a.6
mov eax, ebp
mov byte [rax + r13 + 0x2928], sil
mov eax, 0xfffffff8
add ebx, eax
shr rsi, 8
inc ebp
jmp 0x140015fe8
cmp r14, rdi
jae 0x14001682c
movzx eax, byte [r14]
inc r14
mov ecx, ebp
inc ebp
mov byte [rcx + r13 + 0x2928], al
jmp 0x140015fe8
movzx eax, byte [r13 + 0x2928]
movzx ebp, byte [r13 + 0x2929]
movzx ecx, byte [r13 + 0x292b]
shl ecx, 8
shl ebp, 8
or ebp, eax
movzx eax, byte [r13 + 0x292a]
or ecx, eax
xor ecx, 0xffff
cmp ebp, ecx
jne 0x140016978
test ebp, ebp
je 0x140015f5e
test ebx, ebx
je 0x1400160e2
cmp ebx, 8
jae 0x1400160b6
cmp r14, rdi
jae 0x140016840
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 8
jb case.0x14001593a.51
movzx r9d, sil
mov eax, 0xfffffff8
shr rsi, 8
add ebx, eax
mov dword [rsp + 0x28], r9d
cmp r15, r11
jae 0x140016854
mov byte [r15], r9b
inc r15
mov qword [rsp + 0x30], r15
dec ebp
jmp 0x140016085
test ebp, ebp
je 0x140015f5e
cmp r15, r11
jae 0x14001687b
cmp r14, rdi
jae 0x140016867
mov rax, rdi
mov rcx, r11
sub rcx, r15
mov edi, ebp
sub rax, r14
mov rdx, r14
cmp rcx, rax
cmovae rcx, rax
cmp rcx, rdi
cmovb rdi, rcx
mov rcx, r15
mov r8, rdi
call fcn.14004e150
mov r11, qword [rsp + 0x68]
add r15, rdi
add r14, rdi
mov qword [rsp + 0x30], r15
sub ebp, edi
mov rdi, qword [rsp + 0x40]
jmp 0x1400160e2
cmp ecx, 3
je 0x14001698c
cmp ecx, 1
jne 0x1400161e9
movdqa xmm0, xmmword [0x140072520]
lea rdi, [r13 + 0x48]
mov dword [r13 + 0x2c], 0x120
mov rcx, rdi
mov dword [r13 + 0x30], 0x20
mov r8d, 0x90
movups xmmword [r13 + 0xde8], xmm0
mov dl, 8
movups xmmword [r13 + 0xdf8], xmm0
call fcn.14004d760
movdqa xmm0, xmmword [0x140072540]
add rdi, 0x90
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x50], xmm0
movups xmmword [rdi + 0x60], xmm0
movdqa xmm0, xmmword [str._a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t]
movups xmmword [rdi + 0x70], xmm0
movq qword [rdi + 0x80], xmm0
mov dword [rdi + 0x88], 0x8080808
mov dword [rdi + 0x8c], 0x8080808
mov rdi, qword [rsp + 0x40]
jmp 0x1400162ee
xor ebp, ebp
lea r9, [0x140000000]
cmp ebp, 3
jae 0x140016272
movsx eax, byte [rbp + r9 + 0x6f6b0]
cmp ebx, eax
jae 0x140016237
jmp 0x14001620d
lea r9, [0x140000000]
cmp r14, rdi
jae 0x14001688e
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
mov eax, ebp
movsx eax, byte [rax + r9 + 0x6f6b0]
cmp ebx, eax
jb 0x14001620d
mov r8d, ebp
mov edx, r12d
movzx ecx, byte [r8 + r9 + 0x6f6b0]
shl edx, cl
dec edx
and edx, esi
mov dword [r13 + r8*4 + 0x2c], edx
movsx ecx, byte [r8 + r9 + 0x6f6b0]
shr rsi, cl
sub ebx, ecx
mov ecx, dword [r9 + r8*4 + 0x677b8]
add ecx, edx
mov dword [r13 + r8*4 + 0x2c], ecx
inc ebp
jmp 0x1400161f2
lea rcx, [r13 + 0x1b88]
xor edx, edx
mov r8d, 0x120
call fcn.14004d760
xor ebp, ebp
lea rdx, [0x140000000]
cmp ebp, dword [r13 + 0x34]
jae 0x1400162e6
cmp ebx, 3
jae 0x1400162c3
jmp 0x1400162a3
lea rdx, [0x140000000]
cmp r14, rdi
jae 0x1400168a2
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 3
jb 0x1400162a3
mov eax, ebp
mov rcx, rsi
and cl, 7
shr rsi, 3
add ebx, 0xfffffffd
inc ebp
movzx eax, byte [rax + rdx + 0x675d8]
mov byte [rax + r13 + 0x1b88], cl
jmp 0x14001628f
mov dword [r13 + 0x34], 0x13
mov eax, dword [r13 + 0x18]
test eax, eax
js 0x14001674b
xorps xmm0, xmm0
lea rcx, [r13 + 0x168]
imul rdi, rax, 0xda0
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf0], xmm0
xor edx, edx
mov r8d, 0x800
add rcx, rdi
movups xmmword [rsp + 0x100], xmm0
lea r12, [rdi + r13]
movups xmmword [rsp + 0x110], xmm0
call fcn.14004d760
lea rcx, [r13 + 0x968]
xor edx, edx
add rcx, rdi
mov r8d, 0x480
call fcn.14004d760
mov r10d, dword [r13 + 0x18]
mov r11d, dword [r13 + r10*4 + 0x2c]
test r11d, r11d
je 0x140016384
lea rcx, [r12 + 0x48]
mov edx, r11d
nop dword [rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
inc dword [rsp + rax*4 + 0xe0]
sub rdx, 1
jne 0x140016370
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x90], rcx
xor edx, edx
lea r9d, [r8 + 0xf]
nop word [rax + rax]
mov eax, dword [rsp + rdx + 0xe4]
lea rdx, [rdx + 4]
add ecx, eax
add r8d, eax
add ecx, ecx
mov dword [rsp + rdx + 0x94], ecx
sub r9, 1
jne 0x1400163a0
cmp ecx, 0x10000
je 0x1400163d1
cmp r8d, 1
ja 0x1400169a0
xor r15d, r15d
mov rdi, 0xffffffffffffffff
test r11d, r11d
je 0x1400164f8
movzx r8d, byte [r15 + r12 + 0x48]
xor edx, edx
test r8d, r8d
je 0x1400164e3
lea rcx, [rsp + 0x90]
mov r10d, r8d
mov r9d, dword [rcx + r8*4]
lea rcx, [rcx + r8*4]
lea eax, [r9 + 1]
mov dword [rcx], eax
nop
mov ecx, r9d
lea eax, [rdx + rdx]
and ecx, 1
shr r9d, 1
mov edx, ecx
or edx, eax
add r10d, 0xffffffff
jne 0x140016410
cmp r8d, 0xa
ja 0x14001646a
movzx r9d, r8w
shl r9w, 9
or r9w, r15w
cmp edx, 0x400
jae 0x1400164e3
mov ecx, r8d
mov r8d, 1
shl r8d, cl
mov word [r12 + rdx*2 + 0x168], r9w
add edx, r8d
cmp edx, 0x400
jb 0x140016451
jmp 0x1400164e3
mov eax, edx
and eax, 0x3ff
movsx ecx, word [r12 + rax*2 + 0x168]
test ecx, ecx
jne 0x14001648c
mov word [r12 + rax*2 + 0x168], di
mov ecx, edi
sub edi, 2
shr edx, 9
cmp r8d, 0xb
jbe 0x1400164d0
add r8d, 0xfffffff5
nop dword [rax]
shr edx, 1
mov eax, edx
and eax, 1
sub ecx, eax
not ecx
movsxd rax, ecx
movsx ecx, word [r12 + rax*2 + 0x968]
test cx, cx
jne 0x1400164ca
mov word [r12 + rax*2 + 0x968], di
mov ecx, edi
sub edi, 2
sub r8, 1
jne 0x1400164a0
shr edx, 1
and edx, 1
sub edx, ecx
movsxd rax, edx
mov word [r12 + rax*2 + 0x966], r15w
mov eax, dword [r13 + 0x18]
inc r15d
cmp r15d, dword [r13 + rax*4 + 0x2c]
jb 0x1400163e4
mov r10d, eax
cmp r10d, 2
jne 0x140016733
xor ebp, ebp
mov r12d, 1
mov edx, dword [r13 + 0x2c]
mov ecx, dword [r13 + 0x30]
add ecx, edx
cmp ebp, ecx
jae 0x1400166f8
cmp ebx, 0xf
jae 0x1400165dc
mov rdi, qword [rsp + 0x40]
mov rax, rdi
sub rax, r14
cmp rax, 2
jge 0x1400165bb
mov rax, rsi
and eax, 0x3ff
movsx r8d, word [r13 + rax*2 + 0x1ca8]
test r8d, r8d
js 0x140016564
sar r8d, 9
test r8d, r8d
je case.0x14001593a.16
cmp ebx, r8d
jae 0x1400165dc
jmp case.0x14001593a.16
cmp ebx, 0xa
jbe case.0x14001593a.16
mov ecx, 0xa
nop
not r8d
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, r8d
add rdx, rax
movsx r8d, word [r13 + rdx*2 + 0x24a8]
test r8d, r8d
jns 0x1400165dc
lea eax, [rcx + 1]
cmp ebx, eax
jae 0x140016570
cmp r14, rdi
jae 0x1400168b6
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 0xf
jb 0x14001653a
jmp 0x1400165dc
movzx edx, byte [r14 + 1]
lea ecx, [rbx + 8]
movzx eax, byte [r14]
add r14, 2
shl rdx, cl
mov ecx, ebx
shl rax, cl
or rdx, rax
or rsi, rdx
add ebx, 0x10
mov rax, rsi
and eax, 0x3ff
movsx r9d, word [r13 + rax*2 + 0x1ca8]
test r9d, r9d
js 0x140016601
mov ecx, r9d
sar ecx, 9
and r9d, 0x1ff
jmp 0x140016632
mov ecx, 0xa
nop word [rax + rax]
not r9d
mov rdx, rsi
shr rdx, cl
inc ecx
and edx, 1
movsxd rax, r9d
add rdx, rax
movsx r9d, word [r13 + rdx*2 + 0x24a8]
test r9d, r9d
js 0x140016610
shr rsi, cl
sub ebx, ecx
mov dword [rsp + 0x28], r9d
cmp r9d, 0x10
jae 0x140016653
mov eax, ebp
inc ebp
mov byte [rax + r13 + 0x292c], r9b
jmp 0x140016504
jne 0x14001665d
test ebp, ebp
je 0x1400169b8
lea ecx, [r9 - 0x10]
lea rax, [0x140000000]
movsx edx, byte [rcx + rax + 0x6f6ac]
mov dword [rsp + 0x2c], edx
cmp ebx, edx
jae 0x14001669c
mov rdi, qword [rsp + 0x40]
cmp r14, rdi
jae 0x1400168d0
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, edx
jb case.0x14001593a.18
mov ecx, edx
lea rax, [0x140000000]
mov r12d, 1
sub ebx, edx
mov edi, r12d
shl edi, cl
dec edi
and edi, esi
shr rsi, cl
lea ecx, [r9 - 0x10]
movsx eax, byte [rcx + rax + 0x6f6b4]
add edi, eax
cmp r9d, 0x10
jne 0x1400166db
lea eax, [rbp - 1]
movzx edx, byte [rax + r13 + 0x292c]
jmp 0x1400166dd
xor edx, edx
mov eax, ebp
lea rcx, [r13 + 0x292c]
add rcx, rax
mov r8d, edi
call fcn.14004d760
add ebp, edi
jmp 0x14001650a
jne 0x1400169d0
mov r8, rdx
lea rcx, [r13 + 0x48]
lea rdx, [r13 + 0x292c]
call fcn.14004e150
mov eax, dword [r13 + 0x2c]
lea rdx, [r13 + 0x292c]
mov r8d, dword [r13 + 0x30]
lea rcx, [r13 + 0xde8]
add rdx, rax
call fcn.14004e150
mov r10d, dword [r13 + 0x18]
mov rdi, qword [rsp + 0x40]
lea eax, [r10 - 1]
mov dword [r13 + 0x18], eax
mov r12d, 1
jmp 0x1400162ee
mov r15, qword [rsp + 0x30]
mov r11, qword [rsp + 0x68]
jmp 0x140015d22
lea ecx, [rbp - 0x101]
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x68040]
mov ebp, dword [rax + rcx*4 + 0x67e40]
mov dword [rsp + 0x2c], edx
test edx, edx
je 0x140015a77
cmp ebx, edx
jae 0x140015a65
jmp case.0x14001593a.25
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0x1a
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0x1b
jmp 0x140016a83
mov r8d, 2
mov dword [r13], 0x35
jmp 0x140016aae
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0x17
jmp 0x140016a83
mov r8d, 2
mov dword [r13], 0x18
jmp 0x140016aae
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 3
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 5
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 6
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 7
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0x33
jmp 0x140016a83
mov r8d, 2
mov dword [r13], 0x34
jmp 0x140016aae
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0x26
jmp 0x140016a83
mov r8d, 2
mov dword [r13], 9
jmp 0x140016aae
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0xb
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0xe
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov r12d, 1
mov dword [r13], 0x10
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
mov r12d, 1
mov dword [r13], 0x12
jmp 0x140016a83
mov eax, ebx
and eax, 7
cmp ebx, eax
jae 0x140016917
cmp r14, rdi
jae 0x1400169f8
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
add ebx, 8
or rsi, rax
inc r14
mov eax, ebx
and eax, 7
cmp ebx, eax
jb case.0x14001593a.32
mov rax, qword [rsp + 0x50]
mov ecx, ebx
and cl, 7
shr rsi, cl
mov ecx, 0xfffffff8
and ebx, ecx
cmp r14, rax
jbe 0x14001693f
cmp ebx, 8
jb 0x14001693f
dec r14
add ebx, ecx
cmp r14, rax
ja 0x140016930
mov edx, dword [rsp + 0x1a0]
mov ecx, ebx
mov rax, r12
shl rax, cl
dec rax
and rsi, rax
test dl, 1
je case.0x14001593a.34
xor ebp, ebp
jmp 0x140016a53
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0x19
jmp 0x140016a83
mov r8, 0xffffffffffffffff
mov dword [r13], 0x27
jmp 0x140016aae
mov r8, 0xffffffffffffffff
mov dword [r13], 0xa
jmp 0x140016aae
mov r12d, 1
lea r8, [r12 - 2]
mov dword [r13], 0x23
jmp 0x140016aae
mov r12d, 1
lea r8, [r12 - 2]
mov dword [r13], 0x11
jmp 0x140016aae
mov r8, 0xffffffffffffffff
mov dword [r13], 0x15
jmp 0x140016aae
mov r8, 0xffffffffffffffff
mov dword [r13], 0x25
jmp 0x140016aae
mov edx, dword [rsp + 0x1a0]
mov dword [r13], 0x20
jmp 0x140016a83
mov edx, dword [rsp + 0x1a0]
jmp 0x140016a5c
mov edx, dword [rsp + 0x1a0]
cmp r14, rdi
jae 0x140016a7b
movzx eax, byte [r14]
mov ecx, ebx
shl rax, cl
inc r14
or rsi, rax
add ebx, 8
cmp ebx, 8
jb 0x140016a19
movzx ecx, sil
mov eax, 0xfffffff8
shr rsi, 8
add ebx, eax
mov eax, dword [r13 + 0x10]
shl eax, 8
or eax, ecx
mov dword [r13 + 0x10], eax
inc ebp
cmp ebp, 4
jae case.0x14001593a.34
test ebx, ebx
jne 0x140016a6a
cmp r14, rdi
jae 0x140016a71
movzx ecx, byte [r14]
inc r14
jmp 0x140016a44
cmp ebx, 8
jae 0x140016a35
jmp 0x140016a19
mov dword [r13], 0x2a
jmp 0x140016a83
mov dword [r13], 0x29
test dl, 2
mov r8d, 0xfffffffc
cmovne r8d, r12d
mov qword [rsp + 0x20], r8
cmp r8d, 1
je 0x140016ad1
cmp r8d, 0xfffffffc
je 0x140016ad1
jmp case.0x14001593a.4
xor r8d, r8d
mov dword [r13], 0x22
mov qword [rsp + 0x20], r8
mov rax, qword [rsp + 0x50]
cmp r14, rax
jbe 0x140016ad1
mov edx, 0xfffffff8
cmp ebx, 8
jb 0x140016ad1
dec r14
add ebx, edx
cmp r14, rax
ja 0x140016ac2
mov edx, dword [rsp + 0x2c]
mov r9d, dword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov ecx, ebx
sub r14, qword [rsp + 0x50]
mov r11, qword [rsp + 0x78]
mov r10d, dword [rsp + 0x1a0]
sub r15, r11
shl r12, cl
mov qword [r13 + 0x40], rax
dec r12
mov rax, qword [rsp + 0x70]
and r12, rsi
mov qword [r13 + 0x38], r12
mov r12, qword [rsp + 0x188]
mov dword [r13 + 4], ebx
mov dword [r13 + 0x20], r9d
mov dword [r13 + 0x24], ebp
mov dword [r13 + 0x28], edx
mov qword [rax], r14
mov rax, qword [rsp + 0x80]
mov qword [rax], r15
test r10b, 9
je 0x140016c8a
test r8d, r8d
js 0x140016c8a
mov r8d, dword [r13 + 0x1c]
movabs rax, 0x79baa6bb6398b6f7
mul r15
mov rax, r15
movzx ecx, r8w
sub rax, rdx
shr r8d, 0x10
shr rax, 1
mov r9, r15
add rax, rdx
shr rax, 0xc
imul rax, rax, 0x15b0
sub r9, rax
test r15, r15
je 0x140016c62
nop dword [rax]
xor edx, edx
cmp r9, 7
jbe 0x140016c02
lea r10d, [rdx + 7]
nop dword [rax]
movzx eax, byte [r11]
add r10d, 8
add ecx, eax
add edx, 8
movzx eax, byte [r11 + 1]
add r8d, ecx
add ecx, eax
movzx eax, byte [r11 + 2]
add r8d, ecx
add ecx, eax
movzx eax, byte [r11 + 3]
add r8d, ecx
add ecx, eax
movzx eax, byte [r11 + 4]
add r8d, ecx
add ecx, eax
movzx eax, byte [r11 + 5]
add r8d, ecx
add ecx, eax
movzx eax, byte [r11 + 6]
add r8d, ecx
add ecx, eax
movzx eax, byte [r11 + 7]
add r8d, ecx
add ecx, eax
add r11, 8
add r8d, ecx
mov eax, r10d
cmp rax, r9
jb 0x140016ba0
mov eax, edx
cmp rax, r9
jae 0x140016c25
nop dword [rax]
movzx eax, byte [r11]
inc edx
add ecx, eax
inc r11
add r8d, ecx
mov eax, edx
cmp rax, r9
jb 0x140016c10
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
mov eax, 0x80078071
mul r8d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r8d, eax
sub r15, r9
mov r9d, 0x15b0
jne 0x140016b90
mov r10d, dword [rsp + 0x1a0]
mov rax, qword [rsp + 0x20]
shl r8d, 0x10
add r8d, ecx
mov dword [r13 + 0x1c], r8d
test eax, eax
jne 0x140016ca5
test r10b, 1
je 0x140016ca5
cmp r8d, dword [r13 + 0x10]
mov ecx, 0xfffffffe
cmovne eax, ecx
jmp 0x140016ca5
mov rax, qword [rsp + 0x20]
jmp 0x140016ca5
mov qword [rbp], 0
mov eax, 0xfffffffd
mov qword [rsi], 0
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.14004c9e0
add rsp, 0x130
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret