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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov eax, dword [rsp + 0x110]
mov r10, rcx
imul ecx, eax, 0xa18
mov r14, rdx
mov ebx, eax
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x48], ecx
cmp eax, ecx
ja 0x18008a68c
mov eax, dword [rsp + 0x110]
mov r11, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x110]
mov r9d, dword [rsp + 0x110]
mov edx, dword [rsp + 0x110]
mov edi, dword [rsp + 0x110]
mov r15, qword [rsp + 0x50]
mov r12, qword [rsp + 0x50]
mov r13, qword [rsp + 0x50]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x78], r11
mov dword [rsp + 0x30], r8d
mov qword [rsp + 0x60], rbp
mov dword [rsp + 0x3c], r9d
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x98], rsi
nop dword [rax]
cmp ebx, 0xaf1d
ja 0x180089b15
je 0x18008a673
cmp ebx, 0x125
ja 0x180089aa8
je 0x180089a64
mov eax, ebx
sub eax, 0x44
je 0x18008a632
sub eax, 0x2c
je 0x1800899c7
sub eax, 0x43
je 0x180089998
cmp eax, 0x70
jne 0x18008a60d
xor eax, eax
mov qword [r10], rax
mov rax, qword [r14 + 0x48]
mov qword [r10 + 8], rax
mov qword [r14 + 0x48], r10
jmp 0x18008a60d
mov rsi, qword [r14 + 8]
mov r11, qword [r14 + 0x78]
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0x78], r11
mov rbp, qword [rsi + 0x20]
mov qword [rsp + 0x60], rbp
mov r8d, dword [rbp + 0x1668]
mov dword [rsp + 0x30], r8d
jmp 0x18008a60d
mov eax, dword [r10]
mov dword [r14], eax
mov rax, qword [rsp + 0x108]
mov qword [r14 + 0x10], rax
mov rax, qword [rsp + 0x100]
mov dword [r14 + 4], 0xffffffff
movsxd rax, dword [rax]
test eax, eax
jle 0x180089a55
lea rcx, [rax + rax*4]
shl rcx, 2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r14 + 0x30], rax
mov rax, qword [rsp + 0x100]
movsxd rcx, dword [rax]
shl rcx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
cmp qword [r14 + 0x30], 0
mov qword [r14 + 0x48], rax
je 0x18008a62b
test rax, rax
je 0x18008a62b
mov r10, qword [rsp + 0xf0]
xor eax, eax
mov r9d, dword [rsp + 0x3c]
mov r11, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x48]
mov dword [r14 + 0x24], eax
jmp 0x18008a60d
xor eax, eax
mov qword [r14 + 0x30], rax
mov dword [r14 + 0x24], eax
jmp 0x18008a60d
mov eax, dword [r14 + 4]
add dword [r10], eax
mov edx, dword [r10]
mov eax, dword [r14 + 0x18]
lea ecx, [rdx + 7]
sar ecx, 3
sub eax, ecx
cmp dword [r14], eax
jle 0x180089a8d
mov ecx, dword [rsp + 0x48]
mov ebx, 0xaf1d
jmp 0x18008a60d
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rcx, eax
add qword [r14 + 0x10], rcx
mov ecx, dword [rsp + 0x48]
jmp 0x18008a60d
cmp ebx, 0x42f0
je 0x180089b02
cmp ebx, 0x6afb
je 0x180089ad1
cmp ebx, 0x8570
jne 0x18008a60d
mov qword [r14 + 0x38], 1
jmp 0x18008a60d
test r10, r10
je 0x18008a66c
mov eax, dword [r14 + 0x28]
cmp dword [r14 + 0x24], eax
jle 0x180089aed
cmp eax, 0xffffffff
jne 0x18008a66c
mov eax, dword [r14 + 0x38]
mov dword [r14 + 0x34], eax
mov eax, dword [r10 + 0x2c]
mov dword [r14 + 0x38], eax
jmp 0x18008a60d
mov rax, qword [rsp + 0x100]
mov eax, dword [rax]
mov dword [r14 + 0x28], eax
jmp 0x18008a60d
cmp ebx, 0x15d15
ja 0x18008a5e0
je 0x18008a5d8
cmp ebx, 0xc7f0
je 0x18008a5c8
cmp ebx, 0xd543
je 0x18008a598
cmp ebx, 0x10a70
je 0x18008a7b6
cmp ebx, 0x13f8b
jne 0x18008a60d
mov rax, qword [r10 + 0x48]
mov qword [r14 + 0x50], rax
cmp qword [r10], 0
je 0x18008a535
lea eax, [r8 + 1]
mov ebp, 8
mov dword [rsp + 0x5c], eax
xor eax, eax
mov ebx, eax
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x50], rbp
cmp ebx, 7
ja case.default.0x180089ba6
mov eax, ebx
lea rcx, [0x180000000]
mov ecx, dword [rcx + rax*4 + 0x8a7c0]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
cmp dword [r14 + 0x28], 0xffffffff
jne 0x180089bc3
mov ecx, dword [rsp + 0x58]
mov r8d, ecx
mov dword [r14 + 0x28], ecx
mov dword [r14 + 0x24], ecx
jmp case.default.0x180089ba6
mov rcx, qword [rsp + 0x60]
mov eax, dword [rsp + 0x38]
mov dword [r14 + 0x28], eax
movsxd rax, dword [r14 + 0x38]
mov eax, dword [rcx + rax*4]
cdq
and edx, 3
lea r8d, [rdx + rax]
movsxd rax, dword [r14 + 0x34]
sar r8d, 2
mov eax, dword [rcx + rax*4]
mov ecx, dword [rsp + 0x30]
cdq
and edx, 3
add eax, edx
mov edx, dword [rsp + 0x34]
sar eax, 2
add r8d, eax
sar r8d, cl
add r8d, dword [rsp + 0x38]
mov dword [r14 + 0x24], r8d
jmp case.default.0x180089ba6
mov rcx, qword [rsp + 0x60]
movsxd rax, dword [r14 + 0x38]
mov eax, dword [rcx + rax*4]
mov ecx, dword [rsp + 0x5c]
sar eax, cl
mov dword [rsp + 0x68], eax
jmp case.default.0x180089ba6
mov rax, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x5c]
mov r9d, dword [rax]
sar r9d, cl
mov dword [rsp + 0x3c], r9d
jmp case.default.0x180089ba6
xor eax, eax
cmp dword [r14 + 0x40], eax
cmove eax, edx
mov dword [r14 + 0x40], eax
jmp case.default.0x180089ba6
movsxd rax, dword [r10 + 0x7c]
add qword [r14 + 0x60], rax
movsxd rax, dword [r10 + 0x80]
add qword [r14 + 0x68], rax
jmp case.default.0x180089ba6
mov eax, dword [r14 + 0x40]
xor ebp, ebp
test eax, eax
mov dword [rsp + 0x6c], ebp
mov ecx, ebp
movsxd rax, edx
cmove ecx, edx
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x38], ecx
mov ecx, edx
cmove ecx, ebp
cmp dword [rsi + 4], 0
mov dword [rsp + 0x58], ecx
movsxd rbp, r9d
jle 0x18008a4e4
xor ecx, ecx
movsxd rbx, edi
mov esi, ecx
mov qword [rsp + 0x80], rcx
jmp 0x180089cb6
xor ecx, ecx
cmp dword [r14 + 0x34], 0
mov eax, dword [r14 + 0x38]
je 0x180089fe5
mov qword [rsp + 0x20], rcx
lea rdx, [rsp + 0x40]
xor ecx, ecx
xor r9d, r9d
test eax, eax
je 0x180089e5d
mov eax, dword [r11 + 0xc]
sub eax, r8d
mov r8d, SHTestTokenMembership
mov dword [rsp + 0x40], eax
call fcn.180071ad0
movsxd rdx, dword [rsp + 0x38]
mov r9, rax
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + rsi]
mov rax, qword [rsp + 0xf0]
lea r14, [rcx + rdx*4]
mov rax, qword [rax]
mov r10, qword [rsi + rax]
xor eax, eax
mov edi, eax
mov rax, qword [rsp + 0x90]
cmp rax, 4
jl 0x180089e03
mov rsi, r10
lea rdx, [rax - 4]
mov rbx, r10
shr rdx, 2
mov r11, r9
lea r8, [rax - 2]
sub rsi, r9
lea rcx, [r14 + 4]
sub rbx, r14
lea r8, [r9 + r8*4]
sub r11, r14
inc rdx
lea rdi, [rdx*4]
nop dword [rax]
movss xmm1, dword [r11 + rcx - 4]
lea rax, [r11 + rcx]
mulss xmm1, dword [rbx + rcx - 4]
movss xmm0, dword [r8 + 4]
mulss xmm0, dword [rcx - 4]
addss xmm1, xmm0
movss dword [rcx - 4], xmm1
movss xmm0, dword [r8]
mulss xmm0, dword [rcx]
movss xmm2, dword [rax + rsi]
mulss xmm2, dword [rax]
addss xmm2, xmm0
movss dword [rcx], xmm2
movss xmm0, dword [r8 - 4]
mulss xmm0, dword [rcx + 4]
movss xmm1, dword [r11 + rcx + 4]
mulss xmm1, dword [rbx + rcx + 4]
addss xmm1, xmm0
movss dword [rcx + 4], xmm1
movss xmm2, dword [r11 + rcx + 8]
movss xmm0, dword [r8 - 8]
sub r8, 0x10
mulss xmm2, dword [rbx + rcx + 8]
mulss xmm0, dword [rcx + 8]
addss xmm2, xmm0
movss dword [rcx + 8], xmm2
add rcx, 0x10
sub rdx, 1
jne 0x180089d60
mov rsi, qword [rsp + 0x80]
mov rax, qword [rsp + 0x90]
cmp rdi, rax
jge 0x18008a3e9
mov r8, qword [rsp + 0x90]
lea rdx, [r9 - 4]
sub rax, rdi
lea rcx, [r14 + rdi*4]
sub r10, r9
sub r9, r14
sub r8, rdi
lea rdx, [rdx + rax*4]
movss xmm0, dword [rdx]
lea rax, [rcx + r9]
mulss xmm0, dword [rcx]
sub rdx, 4
movss xmm1, dword [rax + r10]
mulss xmm1, dword [rax]
addss xmm1, xmm0
movss dword [rcx], xmm1
add rcx, 4
sub r8, 1
jne 0x180089e2c
jmp 0x18008a3e9
mov eax, dword [r11 + 8]
sub eax, r8d
mov r8d, SHTestTokenMembership
mov dword [rsp + 0x40], eax
call fcn.180071ad0
mov r9, rax
mov eax, dword [rsp + 0x34]
cdq
sub eax, edx
sar eax, 1
movsxd r8, eax
mov eax, dword [rsp + 0x3c]
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
mov rax, qword [r14 + 0x10]
sub r8, rcx
movsxd rcx, dword [rsp + 0x38]
add r8, rcx
mov rcx, qword [rax + rsi]
mov rax, qword [rsp + 0xf0]
lea r14, [rcx + r8*4]
mov rax, qword [rax]
mov r10, qword [rsi + rax]
xor eax, eax
mov edi, eax
cmp rbp, 4
jl 0x180089f8e
mov rsi, r10
lea rdx, [rbp - 4]
mov rbx, r10
shr rdx, 2
mov r11, r9
lea r8, [r9 - 8]
sub rsi, r9
lea rcx, [r14 + 4]
sub rbx, r14
lea r8, [r8 + rbp*4]
sub r11, r14
inc rdx
lea rdi, [rdx*4]
movss xmm1, dword [rcx + r11 - 4]
lea rax, [r11 + rcx]
mulss xmm1, dword [rcx + rbx - 4]
movss xmm0, dword [r8 + 4]
mulss xmm0, dword [rcx - 4]
addss xmm1, xmm0
movss dword [rcx - 4], xmm1
movss xmm0, dword [r8]
mulss xmm0, dword [rcx]
movss xmm2, dword [rax + rsi]
mulss xmm2, dword [rax]
addss xmm2, xmm0
movss dword [rcx], xmm2
movss xmm0, dword [r8 - 4]
mulss xmm0, dword [rcx + 4]
movss xmm1, dword [r11 + rcx + 4]
mulss xmm1, dword [rbx + rcx + 4]
addss xmm1, xmm0
movss dword [rcx + 4], xmm1
movss xmm2, dword [rcx + r11 + 8]
movss xmm0, dword [r8 - 8]
sub r8, 0x10
mulss xmm2, dword [rcx + rbx + 8]
mulss xmm0, dword [rcx + 8]
addss xmm2, xmm0
movss dword [rcx + 8], xmm2
add rcx, 0x10
sub rdx, 1
jne 0x180089ef3
mov rsi, qword [rsp + 0x80]
cmp rdi, rbp
jge 0x18008a3e9
sub r10, r9
lea rcx, [r14 + rdi*4]
mov rdx, rbp
mov r8, rbp
sub rdx, rdi
dec rdx
lea rdx, [r9 + rdx*4]
sub r9, r14
sub r8, rdi
movss xmm0, dword [rcx]
lea rax, [r9 + rcx]
mulss xmm0, dword [rdx]
sub rdx, 4
movss xmm1, dword [r10 + rax]
mulss xmm1, dword [rax]
addss xmm1, xmm0
movss dword [rcx], xmm1
add rcx, 4
sub r8, 1
jne 0x180089fb4
jmp 0x18008a3e9
test eax, eax
je 0x18008a275
mov edi, 0x7c
mov eax, edi
sub eax, 0x7a
je 0x18008a1ad
sub eax, 1
je 0x18008a04f
cmp eax, 1
jne 0x18008a253
mov eax, dword [r11 + 8]
lea rdx, [rsp + 0x88]
sub eax, r8d
mov qword [rsp + 0x20], rcx
mov r8d, SHTestTokenMembership
mov dword [rsp + 0x88], eax
xor r9d, r9d
xor ecx, ecx
call fcn.180071ad0
movsxd rdx, dword [rsp + 0x38]
mov r13, rax
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + rsi]
lea r15, [rcx + rdx*4]
jmp 0x18008a248
mov eax, edx
cdq
sub eax, edx
sar eax, 1
movsxd r8, eax
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
mov rax, qword [r10]
sub r8, rcx
mov rcx, qword [rax + rsi]
lea r12, [rcx + r8*4]
xor ecx, ecx
mov ebx, ecx
cmp rbp, 4
jl 0x18008a149
lea rdx, [rbp*4 - 8]
mov r11, r13
mov r10, r13
lea r9, [rbp - 4]
mov r8, r12
shr r9, 2
add rdx, r13
lea rcx, [r15 + 4]
sub r11, r12
sub r10, r15
sub r8, r15
inc r9
lea rbx, [r9*4]
movss xmm1, dword [rcx + r8 - 4]
lea rax, [r8 + rcx]
mulss xmm1, dword [rcx + r10 - 4]
movss xmm0, dword [rdx + 4]
mulss xmm0, dword [rcx - 4]
addss xmm1, xmm0
movss dword [rcx - 4], xmm1
movss xmm0, dword [rdx]
mulss xmm0, dword [rcx]
movss xmm2, dword [rax + r11]
mulss xmm2, dword [rax]
addss xmm2, xmm0
movss dword [rcx], xmm2
movss xmm0, dword [rdx - 4]
mulss xmm0, dword [rcx + 4]
movss xmm1, dword [rcx + r8 + 4]
mulss xmm1, dword [r10 + rcx + 4]
addss xmm1, xmm0
movss dword [rcx + 4], xmm1
movss xmm2, dword [rcx + r8 + 8]
movss xmm0, dword [rdx - 8]
sub rdx, 0x10
mulss xmm2, dword [rcx + r10 + 8]
mulss xmm0, dword [rcx + 8]
addss xmm2, xmm0
movss dword [rcx + 8], xmm2
add rcx, 0x10
sub r9, 1
jne 0x18008a0b4
xor ecx, ecx
cmp rbx, rbp
jge 0x18008a24a
mov rax, rbp
lea rcx, [r15 + rbx*4]
sub rax, rbx
mov r9, r13
mov r10, r12
mov r8, rbp
sub r9, r12
sub r10, r15
sub r8, rbx
lea rdx, [rax*4 - 4]
add rdx, r13
add rbx, r8
movss xmm0, dword [rdx]
lea rax, [r10 + rcx]
mulss xmm0, dword [rcx]
sub rdx, 4
movss xmm1, dword [r9 + rax]
mulss xmm1, dword [rax]
addss xmm1, xmm0
movss dword [rcx], xmm1
add rcx, 4
sub r8, 1
jne 0x18008a17c
jmp 0x18008a248
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
add ecx, eax
movsxd r8, ecx
cmp rbx, r8
jge 0x18008a248
mov rax, r8
sub rax, rbx
cmp rax, 4
jl 0x18008a224
lea rcx, [rbx + 1]
mov r9, r8
sub r9, rbx
lea rcx, [r15 + rcx*4]
sub r9, 4
mov rdx, r12
shr r9, 2
sub rdx, r15
inc r9
lea rbx, [rbx + r9*4]
nop dword [rax + rax]
mov eax, dword [rcx + rdx - 4]
mov dword [rcx - 4], eax
mov eax, dword [rdx + rcx]
mov dword [rcx], eax
mov eax, dword [rcx + rdx + 4]
mov dword [rcx + 4], eax
mov eax, dword [rcx + rdx + 8]
mov dword [rcx + 8], eax
lea rcx, [rcx + 0x10]
sub r9, 1
jne 0x18008a200
cmp rbx, r8
jge 0x18008a248
mov rdx, r12
lea rcx, [r15 + rbx*4]
sub rdx, r15
sub r8, rbx
add rbx, r8
mov eax, dword [rdx + rcx]
mov dword [rcx], eax
lea rcx, [rcx + 4]
sub r8, 1
jne 0x18008a239
xor ecx, ecx
mov r8d, dword [rsp + 0x30]
mov edx, dword [rsp + 0x34]
mov r10, qword [rsp + 0xf0]
dec edi
mov r9d, dword [rsp + 0x3c]
mov r11, qword [rsp + 0x78]
cmp edi, 0x79
ja 0x180089ff2
jmp 0x18008a3f1
mov eax, dword [r11 + 8]
lea rdx, [rsp + 0x40]
sub eax, r8d
mov qword [rsp + 0x20], rcx
mov r8d, SHTestTokenMembership
mov dword [rsp + 0x40], eax
xor r9d, r9d
xor ecx, ecx
call fcn.180071ad0
movsxd rdx, dword [rsp + 0x38]
mov r9, rax
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + rsi]
mov rax, qword [rsp + 0xf0]
lea r14, [rcx + rdx*4]
mov rax, qword [rax]
mov r10, qword [rsi + rax]
xor eax, eax
mov edi, eax
cmp rbp, 4
jl 0x18008a39b
mov rsi, r10
lea rdx, [rbp - 4]
mov rbx, r10
shr rdx, 2
mov r11, r9
lea r8, [r9 - 8]
sub rsi, r9
lea rcx, [r14 + 4]
sub rbx, r14
lea r8, [r8 + rbp*4]
sub r11, r14
inc rdx
lea rdi, [rdx*4]
nop dword [rax]
movss xmm1, dword [r11 + rcx - 4]
lea rax, [r11 + rcx]
mulss xmm1, dword [rbx + rcx - 4]
movss xmm0, dword [r8 + 4]
mulss xmm0, dword [rcx - 4]
addss xmm1, xmm0
movss dword [rcx - 4], xmm1
movss xmm0, dword [r8]
mulss xmm0, dword [rcx]
movss xmm2, dword [rax + rsi]
mulss xmm2, dword [rax]
addss xmm2, xmm0
movss dword [rcx], xmm2
movss xmm0, dword [r8 - 4]
mulss xmm0, dword [rcx + 4]
movss xmm1, dword [r11 + rcx + 4]
mulss xmm1, dword [rbx + rcx + 4]
addss xmm1, xmm0
movss dword [rcx + 4], xmm1
movss xmm2, dword [r11 + rcx + 8]
movss xmm0, dword [r8 - 8]
sub r8, 0x10
mulss xmm2, dword [rbx + rcx + 8]
mulss xmm0, dword [rcx + 8]
addss xmm2, xmm0
movss dword [rcx + 8], xmm2
add rcx, 0x10
sub rdx, 1
jne 0x18008a300
mov rsi, qword [rsp + 0x80]
cmp rdi, rbp
jge 0x18008a3e9
sub r10, r9
lea rcx, [r14 + rdi*4]
mov rdx, rbp
mov r8, rbp
sub rdx, rdi
dec rdx
lea rdx, [r9 + rdx*4]
sub r9, r14
sub r8, rdi
movss xmm0, dword [rdx]
lea rax, [rcx + r9]
mulss xmm0, dword [rcx]
sub rdx, 4
movss xmm1, dword [r10 + rax]
mulss xmm1, dword [rax]
addss xmm1, xmm0
movss dword [rcx], xmm1
add rcx, 4
sub r8, 1
jne 0x18008a3bd
mov r14, qword [rsp + 0xf8]
mov rax, qword [r14 + 0x10]
movsxd rdx, dword [rsp + 0x58]
mov rcx, qword [rax + rsi]
mov rax, qword [rsp + 0xf0]
lea r10, [rcx + rdx*4]
mov rax, qword [rax]
mov rcx, qword [rax + rsi]
movsxd rax, dword [rsp + 0x68]
mov r11, rax
lea r9, [rcx + rax*4]
xor eax, eax
mov edi, eax
mov ebx, eax
cmp r11, 4
jl 0x18008a474
mov rdx, r9
lea r8, [r11 - 4]
sub rdx, r10
shr r8, 2
inc r8
lea rcx, [r10 + 4]
lea edi, [r8*4]
lea rbx, [r8*4]
nop
mov eax, dword [rdx + rcx - 4]
mov dword [rcx - 4], eax
mov eax, dword [rdx + rcx]
mov dword [rcx], eax
mov eax, dword [rdx + rcx + 4]
mov dword [rcx + 4], eax
mov eax, dword [rdx + rcx + 8]
mov dword [rcx + 8], eax
lea rcx, [rcx + 0x10]
sub r8, 1
jne 0x18008a450
cmp rbx, r11
jge 0x18008a49b
mov rdx, r11
lea rcx, [r10 + rbx*4]
sub rdx, rbx
sub r9, r10
add edi, edx
add rbx, rdx
mov eax, dword [rcx + r9]
mov dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x18008a48b
mov ecx, dword [rsp + 0x6c]
add rsi, 8
mov rax, qword [rsp + 0x98]
inc ecx
mov r10, qword [rsp + 0xf0]
mov edx, dword [rsp + 0x34]
mov r9d, dword [rsp + 0x3c]
mov r11, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x30]
mov dword [rsp + 0x6c], ecx
mov qword [rsp + 0x80], rsi
cmp ecx, dword [rax + 4]
jl 0x180089cb4
mov ebx, dword [rsp + 0x70]
mov rsi, rax
mov rbp, qword [rsp + 0x50]
jmp case.default.0x180089ba6
movsxd rax, dword [r10 + 0x84]
add qword [r14 + 0x70], rax
jmp case.default.0x180089ba6
mov rax, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x5c]
mov edx, dword [rax + 4]
movsxd rax, dword [r10 + 0x78]
sar edx, cl
add qword [r14 + 0x58], rax
mov dword [rsp + 0x34], edx
mov r8d, dword [rsp + 0x30]
inc ebx
sub rbp, 1
mov dword [rsp + 0x70], ebx
mov qword [rsp + 0x50], rbp
jne 0x180089b83
mov ebx, dword [rsp + 0x74]
mov rbp, qword [rsp + 0x60]
mov r8, qword [r11 + 0xc8]
cmp r8, 0xffffffffffffffff
jne 0x18008a559
mov r8d, dword [rsp + 0x30]
xor eax, eax
mov ecx, dword [rsp + 0x48]
mov qword [r11 + 0xc8], rax
jmp 0x18008a60d
movsxd rax, dword [r14 + 0x38]
mov eax, dword [rbp + rax*4]
cdq
and edx, 3
lea ecx, [rdx + rax]
movsxd rax, dword [r14 + 0x34]
sar ecx, 2
mov eax, dword [rbp + rax*4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ecx
mov ecx, dword [rsp + 0x48]
cdqe
add rax, r8
mov r8d, dword [rsp + 0x30]
mov qword [r11 + 0xc8], rax
jmp 0x18008a60d
mov rax, qword [r14 + 0x50]
mov dword [r14 + 0x3c], 0xffffffff
cmp rax, 0xffffffffffffffff
je 0x18008a5b3
inc rax
cmp rax, qword [r10 + 0x48]
je 0x18008a60d
mov qword [r14 + 0x48], 0xffffffffffffffff
mov qword [r11 + 0xc8], 0xffffffffffffffff
jmp 0x18008a60d
mov rax, qword [rsp + 0x100]
mov eax, dword [rax]
mov dword [r14 + 0x40], eax
jmp 0x18008a60d
xor eax, eax
mov qword [r14 + 0x10], rax
jmp 0x18008a60d
cmp ebx, 0x1a9d3
je 0x18008a6a7
cmp ebx, 0x20b0d
je 0x18008a606
cmp ebx, 0x2b905
jne 0x18008a60d
mov dword [r14 + 4], 1
jmp 0x18008a60d
mov eax, dword [r14 + 0x18]
mov dword [r14], eax
imul eax, dword [rsp + 0x110], 0x98
add ebx, eax
mov dword [rsp + 0x74], ebx
cmp ebx, ecx
ja 0x18008a68c
mov edx, dword [rsp + 0x34]
jmp 0x180089940
mov eax, 0xc
jmp 0x18008a693
mov r8, qword [rsp + 0x108]
xor eax, eax
mov qword [rsp + 0x28], rax
mov r9d, 0x1a
lea rax, [rsp + 0x110]
mov dword [rsp + 0x110], 1
mov rdx, r10
mov qword [rsp + 0x20], rax
mov rcx, r14
call fcn.18009b500
jmp 0x18008a693
mov eax, 0xffffff7d
jmp 0x18008a693
mov eax, dword [r10]
cdq
and edx, 7
add eax, edx
sar eax, 3
add dword [r14], eax
mov eax, dword [r10]
and eax, 7
mov dword [r14 + 4], eax
mov eax, dword [rsp + 0x110]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r8, qword [r14 + 0x48]
cmp r8, 0xffffffffffffffff
jne 0x18008a72c
mov rcx, qword [r10 + 0x40]
cmp rcx, r8
je 0x18008a7a7
mov qword [r14 + 0x48], rcx
mov rax, qword [r11 + 0xc8]
cmp rax, rcx
jle 0x18008a7a7
sub eax, dword [r10 + 0x40]
mov edx, 0
mov r9d, dword [r14 + 0x28]
mov r8d, dword [r14 + 0x24]
cmovns edx, eax
cmp dword [r10 + 0x3c], 0
mov ecx, dword [rsp + 0x30]
je 0x18008a710
mov eax, r8d
sub eax, r9d
shl eax, cl
cmp edx, eax
cmovle eax, edx
sar eax, cl
sub r8d, eax
mov dword [r14 + 0x24], r8d
jmp 0x18008a7a7
sar edx, cl
lea eax, [rdx + r9]
mov dword [r14 + 0x28], eax
cmp eax, r8d
jle 0x18008a7a7
mov dword [r14 + 0x28], r8d
jmp 0x18008a7a7
movsxd rax, dword [r14 + 0x38]
mov eax, dword [rbp + rax*4]
cdq
and edx, 3
lea ecx, [rdx + rax]
movsxd rax, dword [r14 + 0x34]
sar ecx, 2
mov eax, dword [rbp + rax*4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ecx
cdqe
add rax, r8
mov qword [r14 + 0x48], rax
mov rcx, qword [r10 + 0x40]
cmp rcx, 0xffffffffffffffff
je 0x18008a7a7
cmp rax, rcx
je 0x18008a7a7
mov rdx, rcx
jle 0x18008a7a3
sub eax, ecx
je 0x18008a7a3
cmp dword [r10 + 0x3c], 0
je 0x18008a7a3
mov r8d, dword [r14 + 0x24]
mov edx, r8d
sub edx, dword [r14 + 0x28]
mov ecx, dword [rsp + 0x30]
shl edx, cl
cmp eax, edx
cmovle edx, eax
xor eax, eax
test edx, edx
cmovns eax, edx
sar eax, cl
sub r8d, eax
mov dword [r14 + 0x24], r8d
mov rdx, qword [r10 + 0x40]
mov qword [r14 + 0x48], rdx
cmp dword [r10 + 0x3c], 0
je 0x18008a7b6
mov dword [r14 + 0x30], 1
xor eax, eax
jmp 0x18008a693