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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x108
xor edi, edi
mov rbx, rdx
cmp dword [rcx + 0x18100], edi
je 0x180025610
call fcn.180027470
mov dword [rcx + 0x18100], edi
cmp dword [rcx + 0x18744], 1
jne 0x180025627
and byte [0x180074b78], 0xfd
and byte [0x180074b7c], 0xfd
cmp dword [rcx + 0x18744], 2
mov edx, 7
mov dword [rcx + 0x19b88], 0xffffffff
mov eax, 3
cmove eax, edx
mov dword [rsp + 0xe8], eax
mov eax, dword [rbx]
mov edx, eax
shr edx, 0x17
and edx, 1
sar eax, 0x13
mov dword [rsp + 0x94], edx
and eax, 7
mov dword [rcx + 0x184ac], eax
mov eax, dword [rbx]
mov edx, eax
sar edx, 0x10
and edx, 7
mov dword [rsp + 0x160], edx
mov edx, eax
and eax, 0x3fff
and edx, 0x2000
neg edx
or edx, eax
mov dword [rsp + 0x9c], edx
mov edx, dword [rbx + 4]
mov eax, edx
sar eax, 0x10
mov r13d, edx
mov r8d, eax
and edx, 0x3fff
and eax, 0x3fff
and r8d, 0x2000
and r13d, 0x2000
neg r8d
or r8d, eax
neg r13d
mov eax, dword [rbx + 8]
or r13d, edx
mov edx, eax
mov dword [rsp + 0xdc], r8d
mov r8d, dword [rbx + 0x30]
and eax, 0xfffffff
and edx, 0x8000000
neg edx
or edx, eax
mov eax, dword [rbx + 0x10]
mov r15d, eax
mov dword [rsp + 0xf0], edx
and eax, 0xfffffff
and r15d, 0x8000000
neg r15d
or r15d, eax
mov eax, dword [rbx + 0x18]
mov r14d, eax
and eax, 0xfffffff
and r14d, 0x8000000
neg r14d
or r14d, eax
mov eax, dword [rbx + 0xc]
mov edx, eax
and eax, 0x3fffffff
and edx, 0x20000000
neg edx
or edx, eax
mov eax, dword [rbx + 0x14]
mov dword [rsp + 0xe0], edx
mov edx, eax
and eax, 0x3fffffff
and edx, 0x20000000
neg edx
or edx, eax
mov eax, dword [rbx + 0x1c]
mov r12d, eax
mov dword [rsp + 0x98], edx
and r12d, 0x20000000
and eax, 0x3fffffff
neg r12d
or r12d, eax
mov eax, r8d
sar eax, 0x10
mov edx, dword [rbx + 0x20]
mov r9d, edx
xor r9d, eax
shl edx, 0x10
and r9d, 0xffff0000
xor r9d, eax
movzx eax, r8w
or eax, edx
mov r8d, dword [rbx + 0x34]
mov edx, dword [rbx + 0x24]
mov dword [rsp + 0x78], eax
mov eax, r8d
sar eax, 0x10
mov dword [rsp + 0x74], r9d
mov r9d, edx
xor r9d, eax
shl edx, 0x10
and r9d, 0xffff0000
xor r9d, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x38]
or eax, edx
mov edx, dword [rbx + 0x28]
mov ebp, edx
mov dword [rsp + 0x80], eax
mov eax, r8d
sar eax, 0x10
xor ebp, eax
mov dword [rsp + 0x7c], r9d
shl edx, 0x10
and ebp, 0xffff0000
xor ebp, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x3c]
or eax, edx
mov edx, dword [rbx + 0x2c]
mov r9d, edx
mov dword [rsp + 0x58], eax
mov eax, r8d
sar eax, 0x10
xor r9d, eax
shl edx, 0x10
and r9d, 0xffff0000
mov dword [rsp + 0x90], ebp
xor r9d, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x50]
or eax, edx
mov edx, dword [rbx + 0x40]
mov dword [rsp + 0x60], eax
mov eax, r8d
sar eax, 0x10
mov dword [rsp + 0x5c], r9d
mov r9d, edx
xor r9d, eax
shl edx, 0x10
and r9d, 0xffff0000
xor r9d, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x54]
or eax, edx
mov edx, dword [rbx + 0x44]
mov dword [rsp + 0xc0], eax
mov eax, r8d
sar eax, 0x10
mov dword [rsp + 0xbc], r9d
mov r9d, edx
xor r9d, eax
shl edx, 0x10
and r9d, 0xffff0000
xor r9d, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x58]
or eax, edx
mov edx, dword [rbx + 0x48]
mov r10d, edx
mov dword [rsp + 0xc8], eax
mov eax, r8d
sar eax, 0x10
xor r10d, eax
mov dword [rsp + 0xc4], r9d
shl edx, 0x10
and r10d, 0xffff0000
xor r10d, eax
movzx eax, r8w
or eax, edx
mov r8d, dword [rbx + 0x5c]
mov edx, dword [rbx + 0x4c]
mov r11d, edx
mov dword [rsp + 0x38], eax
mov eax, r8d
sar eax, 0x10
xor r11d, eax
shl edx, 0x10
and r11d, 0xffff0000
mov dword [rsp + 0x44], r10d
xor r11d, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x70]
or eax, edx
mov edx, dword [rbx + 0x60]
mov r9d, edx
mov dword [rsp + 0x3c], eax
mov eax, r8d
sar eax, 0x10
xor r9d, eax
shl edx, 0x10
and r9d, 0xffff0000
mov dword [rsp + 0x40], r11d
xor r9d, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x78]
or eax, edx
mov dword [rsp + 0x6c], eax
movsx eax, word [rbx + 0x76]
mov edx, eax
mov dword [rsp + 0x68], r9d
xor edx, dword [rbx + 0x64]
and edx, 0xffff0000
xor edx, eax
mov eax, r8d
sar eax, 0x10
mov dword [rsp + 0x70], edx
mov edx, dword [rbx + 0x68]
mov edi, edx
xor edi, eax
shl edx, 0x10
and edi, 0xffff0000
xor edi, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x90]
or eax, edx
mov edx, dword [rbx + 0x80]
mov r9d, edx
mov dword [rsp + 0x54], eax
movsx eax, word [rbx + 0x7e]
mov esi, eax
shl edx, 0x10
xor esi, dword [rbx + 0x6c]
and esi, 0xffff0000
mov dword [rsp + 0x88], edi
xor esi, eax
mov eax, r8d
sar eax, 0x10
xor r9d, eax
mov dword [rsp + 0x8c], esi
and r9d, 0xffff0000
xor r9d, eax
movzx eax, r8w
mov r8d, dword [rbx + 0x98]
or eax, edx
mov dword [rsp + 0xb4], eax
movsx eax, word [rbx + 0x96]
mov edx, eax
mov dword [rsp + 0xb0], r9d
xor edx, dword [rbx + 0x84]
and edx, 0xffff0000
xor edx, eax
mov eax, r8d
mov dword [rsp + 0xb8], edx
mov edx, dword [rbx + 0x88]
sar eax, 0x10
mov r9d, edx
shl edx, 0x10
xor r9d, eax
and r9d, 0xffff0000
xor r9d, eax
movzx eax, r8w
or eax, edx
mov r8d, dword [rsp + 0x38]
mov dword [rsp + 0x34], eax
movsx eax, word [rbx + 0x9e]
mov edx, eax
sar r8d, 0xe
xor edx, dword [rbx + 0x8c]
and edx, 0xffff0000
mov dword [rsp + 0x48], r9d
xor edx, eax
mov r9d, r11d
mov eax, dword [rbx + 0xa0]
mov dword [rsp + 0x84], eax
mov eax, dword [rbx + 0xa8]
mov dword [rsp + 0xcc], eax
mov eax, dword [rbx + 0xac]
mov dword [rsp + 0x150], eax
mov eax, edi
mov r11d, dword [rsp + 0x150]
and eax, 0xffffffe0
mov edi, dword [rsp + 0x58]
mov dword [rsp + 0x30], edx
and edi, 0xffffffe0
mov edx, dword [rbx + 0xa4]
mov ebx, ebp
mov ebp, dword [rsp + 0x60]
and ebx, 0xffffffe0
mov dword [rcx + 0x18018], eax
and ebp, 0xffffffe0
mov eax, dword [rsp + 0x54]
and eax, 0xffffffe0
mov dword [rsp + 0x64], edx
mov dword [rcx + 0x1801c], eax
mov eax, esi
mov esi, dword [rsp + 0x5c]
and eax, 0xffffffe0
mov dword [rcx + 0x18020], eax
and esi, 0xffffffe0
mov dword [rcx + 0x18034], edx
mov edx, r10d
mov r10d, dword [rsp + 0x3c]
sar edx, 0xe
sar r9d, 0xe
mov eax, edx
and eax, 0x1000
sar r10d, 0xe
neg eax
sar r11d, 0xa
and edx, 0x1fff
mov dword [rcx + 0x18024], ebx
or eax, edx
mov dword [rcx + 0x18028], edi
mov dword [rcx + 0x1803c], eax
mov eax, r8d
and eax, 0x1000
mov dword [rcx + 0x1802c], esi
neg eax
mov dword [rcx + 0x18030], ebp
and r8d, 0x1fff
or eax, r8d
mov dword [rcx + 0x18040], eax
mov eax, r9d
and eax, 0x1000
and r9d, 0x1fff
neg eax
or eax, r9d
mov dword [rcx + 0x18044], eax
mov eax, r10d
and eax, 0x1000
and r10d, 0x1fff
neg eax
or eax, r10d
mov dword [rcx + 0x18048], eax
mov eax, r11d
and eax, 0x200000
neg eax
sar ebx, 0xe
and r11d, 0x3fffff
sar edi, 0xe
or eax, r11d
sar esi, 0xe
mov dword [rcx + 0x1804c], eax
mov r9d, 0x8000
mov r11d, dword [rsp + 0x64]
mov eax, ebx
and eax, 0x1000
sar ebp, 0xe
neg eax
and ebx, 0x1fff
or eax, ebx
mov edx, r11d
mov dword [rcx + 0x18050], eax
mov eax, edi
and eax, 0x1000
sar edx, 0xa
neg eax
and edi, 0x1fff
or eax, edi
mov dword [rcx + 0x18054], eax
mov eax, esi
and eax, 0x1000
and esi, 0x1fff
neg eax
or eax, esi
mov dword [rcx + 0x18058], eax
mov eax, ebp
and eax, 0x1000
and ebp, 0x1fff
neg eax
or eax, ebp
mov dword [rcx + 0x1805c], eax
mov eax, edx
and eax, 0x200000
and edx, 0x3fffff
neg eax
or eax, edx
mov dword [rcx + 0x18060], eax
mov eax, dword [rsp + 0x48]
and eax, 0xffff8000
mov dword [rcx + 0x18064], eax
mov eax, dword [rsp + 0x34]
and eax, 0xffff8000
mov dword [rcx + 0x18068], eax
mov eax, dword [rsp + 0x30]
and eax, 0xffff8000
mov dword [rcx + 0x1806c], eax
mov eax, dword [rsp + 0x150]
sar eax, 0x10
movzx r8d, ax
mov eax, r11d
sar eax, 0x10
movzx edx, ax
test r9d, r8d
je 0x180025c36
not r8d
and r8d, 0x7fff
test r9d, edx
je 0x180025c43
not edx
and edx, 0x7fff
lea eax, [rdx + r8]
mov r8d, 1
movzx edx, ax
test eax, 0xc000
jne 0x180025c85
test edx, edx
jne 0x180025c60
mov r9d, r8d
jmp 0x180025c85
cmp edx, r8d
jne 0x180025c6d
mov r9d, 3
jmp 0x180025c85
mov eax, 0x2000
test edx, eax
jne 0x180025c81
shr eax, 1
jne 0x180025c72
xor esi, esi
mov r9d, esi
jmp 0x180025c87
lea r9d, [rax + rax]
xor esi, esi
mov rbp, qword [rsp + 0x158]
and r15d, 0xfffffffe
mov ebx, dword [rsp + 0x94]
and r14d, 0xfffffffe
movzx eax, r9w
mov dword [rcx + 0x18038], eax
mov eax, dword [rsp + 0x98]
mov ebp, dword [rbp + 0x14]
sar eax, 2
sar r12d, 2
and eax, 0xfffffffe
shr ebp, 0x1f
and r12d, 0xfffffffe
mov dword [rsp + 0x98], eax
cmp ebp, ebx
jne 0x180025eb7
and dword [rsp + 0x34], 0xfffffe00
mov eax, dword [rsp + 0x48]
and dword [rsp + 0x30], 0xfffffe00
and eax, 0xfffffe00
and dword [rsp + 0x44], 0xfffffe00
and dword [rsp + 0x38], 0xfffffe00
mov edx, dword [rsp + 0xb0]
and dword [rsp + 0x40], 0xfffffe00
and edx, 0xfffffe00
mov r8d, dword [rsp + 0xb4]
mov r9d, dword [rsp + 0xb8]
and r8d, 0xfffffe00
mov r10d, dword [rsp + 0xbc]
and r9d, 0xfffffe00
and dword [rsp + 0x3c], 0xfffffe00
and r10d, 0xfffffe00
mov r11d, dword [rsp + 0xc0]
mov ebx, dword [rsp + 0xc4]
and r11d, 0xfffffe00
mov edi, dword [rsp + 0xc8]
and ebx, 0xfffffe00
mov esi, dword [rsp + 0xcc]
and edi, 0xfffffe00
and dword [rsp + 0x150], 0xfffffe00
and esi, 0xfffffe00
mov dword [rsp + 0x48], eax
sar eax, 2
mov dword [rsp + 0x168], eax
mov eax, edx
sar eax, 2
sub dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x168]
sub eax, dword [rsp + 0x48]
add eax, edx
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x34]
sar eax, 2
mov dword [rsp + 0x50], eax
mov eax, r8d
sar eax, 2
sub dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x50]
sub eax, dword [rsp + 0x34]
add eax, r8d
mov r8d, dword [rsp + 0x30]
sar r8d, 2
mov dword [rsp + 0x50], eax
mov eax, r9d
sar eax, 2
sub r8d, eax
mov eax, r10d
sub r8d, dword [rsp + 0x30]
add r8d, r9d
sar eax, 2
mov dword [rsp + 0xd0], r8d
mov r8d, dword [rsp + 0x44]
sar r8d, 2
sub r8d, eax
mov eax, r11d
sub r8d, dword [rsp + 0x44]
add r8d, r10d
sar eax, 2
mov dword [rsp + 0xd8], r8d
mov r8d, dword [rsp + 0x38]
sar r8d, 2
sub r8d, eax
mov eax, ebx
sub r8d, dword [rsp + 0x38]
add r8d, r11d
sar eax, 2
mov dword [rsp + 0xa0], r8d
mov r8d, dword [rsp + 0x40]
sar r8d, 2
sub r8d, eax
mov eax, edi
sub r8d, dword [rsp + 0x40]
add r8d, ebx
mov dword [rsp + 0xa4], r8d
mov r8d, dword [rsp + 0x3c]
sar r8d, 2
sar eax, 2
mov ebx, dword [rsp + 0x94]
sub r8d, eax
sub r8d, dword [rsp + 0x3c]
mov eax, esi
mov r11d, dword [rsp + 0x64]
add r8d, edi
mov dword [rsp + 0xa8], r8d
mov r8d, dword [rsp + 0x150]
sar r8d, 2
sar eax, 2
sub r8d, eax
sub r8d, dword [rsp + 0x150]
add r8d, esi
mov dword [rsp + 0xac], r8d
xor esi, esi
jmp 0x180025eec
mov dword [rsp + 0xac], esi
mov dword [rsp + 0xa8], esi
mov dword [rsp + 0xa4], esi
mov dword [rsp + 0xa0], esi
mov dword [rsp + 0xd8], esi
mov dword [rsp + 0xd0], esi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x168], esi
cmp dword [rcx + 0x18070], 2
je 0x180025f98
mov r8d, dword [rsp + 0x88]
mov r10d, dword [rsp + 0x54]
sar r8d, 8
and r8d, 0xfffffffe
sar r10d, 8
mov dword [rsp + 0x88], r8d
and r10d, 0xfffffffe
mov r8d, dword [rsp + 0x8c]
sar r8d, 8
and r8d, 0xfffffffe
mov dword [rsp + 0x54], r10d
mov r10d, dword [rsp + 0x58]
mov dword [rsp + 0x8c], r8d
mov r8d, dword [rsp + 0x90]
sar r8d, 8
and r8d, 0xfffffffe
sar r10d, 8
mov dword [rsp + 0x90], r8d
and r10d, 0xfffffffe
mov r8d, dword [rsp + 0x5c]
sar r8d, 8
and r8d, 0xfffffffe
sar r11d, 8
mov dword [rsp + 0x5c], r8d
mov r8d, dword [rsp + 0x60]
sar r8d, 8
and r8d, 0xfffffffe
mov dword [rsp + 0x58], r10d
and r11d, 0xfffffffe
mov dword [rsp + 0x60], r8d
mov dword [rsp + 0x64], r11d
jmp 0x180025fc1
mov dword [rsp + 0x64], esi
mov dword [rsp + 0x60], esi
mov dword [rsp + 0x5c], esi
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x90], esi
mov dword [rsp + 0x8c], esi
mov dword [rsp + 0x54], esi
mov dword [rsp + 0x88], esi
mov r9d, dword [rsp + 0x9c]
mov edi, r13d
and edi, 0xfffffffc
mov dword [rsp + 0x3c], esi
cmp ebp, ebx
mov dword [rsp + 0x30], esi
mov eax, 3
mov dword [rsp + 0x34], esi
cmovne eax, esi
mov dword [rsp + 0x38], esi
mov dword [rsp + 0xe4], eax
bt r9d, 0xd
jb 0x18002601b
bt r9d, 0xc
jb 0x180026011
movzx edx, word [rcx + 0x18756]
mov eax, r9d
and eax, 0xfff
cmp eax, edx
jb 0x18002601b
movzx r8d, word [rcx + 0x18756]
jmp 0x18002601e
mov r8d, r9d
mov r10d, r8d
mov dword [rsp + 0x48], r8d
or r10d, 3
and r9d, 0xfffffffc
mov eax, r10d
mov dword [rsp + 0x40], r10d
and eax, 0xfffffffc
cmp r9d, eax
jle 0x180026049
add r10d, 4
mov dword [rsp + 0x40], r10d
jmp 0x180026067
mov eax, r8d
sar eax, 2
cmp eax, 0x3fe
ja 0x180026067
cdqe
lea rdx, [rax + rax*2]
shl rdx, 5
mov dword [rdx + rcx + 0x84], esi
bt r13d, 0xd
jb 0x180026081
bt r13d, 0xc
jb 0x180026089
movzx eax, word [rcx + 0x1875a]
cmp r13d, eax
jge 0x180026089
movzx r13d, word [rcx + 0x1875a]
movzx eax, word [rcx + 0x18754]
mov esi, r13d
and esi, 0xfffffffc
mov dword [rsp + 0x9c], esi
lea edx, [rax + rax]
movzx eax, word [rcx + 0x18758]
mov dword [rsp + 0x44], edx
lea r11d, [rax + rax]
mov eax, 1
mov dword [rsp + 0x158], eax
mov r9d, eax
mov dword [rsp + 0x150], eax
mov ebp, eax
mov dword [rsp + 0xec], r11d
test ebx, ebx
je 0x180026629
cmp edi, r10d
jg 0x180026b81
mov eax, dword [rsp + 0x40]
cmp edi, dword [rsp + 0xdc]
jne 0x180026109
mov r14d, dword [rsp + 0xf0]
mov r12d, dword [rsp + 0xe0]
and r14d, 0xfffffffe
sar r12d, 2
and r12d, 0xfffffffe
mov r10d, edi
and r10d, 3
cmp edi, esi
jl 0x180026587
cmp edi, r13d
jl 0x18002612e
cmp edi, r8d
jge 0x18002612e
xor ebx, ebx
mov dword [rsp + 0x34], ebx
lea r8d, [rbx + 1]
jmp 0x18002613b
mov r8d, 1
xor ebx, ebx
mov dword [rsp + 0x34], r8d
mov esi, edi
sar esi, 2
test r10d, r10d
jne 0x180026160
mov eax, 0xfff
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x38], eax
mov ebp, r8d
mov r9d, r8d
mov dword [rsp + 0x150], r8d
test r15d, 0x3ffe
mov r8d, ebx
seta r8b
bt r15d, 0x1b
jb 0x1800261aa
mov eax, r15d
sar eax, 0xd
and eax, 0x1ffe
or eax, r8d
cmp eax, r11d
jae 0x18002618f
bt r15d, 0x1a
jae 0x1800261aa
mov dword [rsp + 0x30], ebx
mov ebx, r15d
sar ebx, 0xd
and ebx, 0x3ffe
or ebx, r8d
mov r8d, 1
jmp 0x1800261b8
mov r8d, 1
mov ebx, r11d
mov dword [rsp + 0x30], r8d
bt ebx, 0xd
jb 0x1800261cd
mov eax, ebx
and eax, 0x1fff
cmp eax, edx
jae 0x1800261cd
xor eax, eax
jmp 0x1800261d0
mov eax, r8d
test eax, eax
mov dword [rsp + 0x158], eax
movsxd rax, esi
cmovne ebx, edx
and dword [rsp + 0x158], r9d
and ebp, dword [rsp + 0x30]
mov r8d, ebx
and r8d, 0x1fff
test r14d, 0x3ffe
lea rdx, [rax + rax*2]
lea rdx, [r10 + rdx*8]
mov dword [rcx + rdx*4 + 0x48], r8d
mov r8d, 0
mov edx, r8d
seta dl
bt r14d, 0x1b
jb 0x180026253
mov eax, r14d
sar eax, 0xd
and eax, 0x1ffe
or eax, edx
cmp eax, r11d
jae 0x180026235
bt r14d, 0x1a
jae 0x180026253
mov r11d, r14d
mov dword [rsp + 0x4c], r8d
sar r11d, 0xd
mov r9d, 1
and r11d, 0x3ffe
or r11d, edx
jmp 0x18002625e
mov r9d, 1
mov dword [rsp + 0x4c], r9d
mov edx, dword [rsp + 0x44]
bt r11d, 0xd
jb 0x180026278
mov eax, r11d
and eax, 0x1fff
cmp eax, edx
mov eax, r8d
jb 0x18002627b
mov eax, r9d
test eax, eax
mov dword [rsp + 0x30], eax
movsxd r9, esi
cmovne r11d, edx
and ebp, dword [rsp + 0x4c]
mov r8d, r11d
and r8d, 0x1fff
lea rax, [r9 + r9*2]
lea rdx, [r10 + rax*8]
mov eax, dword [rsp + 0x30]
and eax, dword [rsp + 0x158]
mov dword [rsp + 0x158], eax
mov dword [rcx + rdx*4 + 0x58], r8d
mov r8d, eax
mov eax, r14d
mov edx, r15d
xor eax, 0xf8003fff
xor edx, 0xf8003fff
and eax, 0xfffc000
and edx, 0xfffc000
cmp eax, edx
mov eax, dword [rsp + 0x34]
mov edx, 1
cmovb eax, edx
mov dword [rsp + 0x34], eax
lea rax, [r9 + r9*2]
mov r9d, dword [rsp + 0x150]
lea rdx, [r10 + rax*8]
mov eax, dword [rsp + 0x34]
and r9d, eax
mov dword [rcx + rdx*4 + 0x68], eax
mov dword [rsp + 0x150], r9d
test eax, eax
jne 0x180026344
mov eax, dword [rsp + 0x3c]
shr r11d, 3
and r11d, 0xfff
cmp r11d, eax
cmovg eax, r11d
shr ebx, 3
and ebx, 0xfff
mov dword [rsp + 0x3c], eax
mov r11d, eax
mov eax, dword [rsp + 0x38]
cmp ebx, eax
cmovl eax, ebx
mov ebx, eax
mov dword [rsp + 0x38], eax
jmp 0x18002634d
mov r11d, dword [rsp + 0x3c]
mov ebx, dword [rsp + 0x38]
cmp r10d, dword [rsp + 0xe4]
jne 0x1800264d6
mov edx, dword [rsp + 0x68]
mov r8d, r15d
and edx, 0xfffffe00
sar r8d, 0x10
movsxd rax, esi
lea r9, [rax + rax*2]
mov eax, r8d
and eax, 0x800
shl r9, 5
neg eax
add r9, rcx
and r8d, 0xfff
or eax, r8d
mov dword [r9 + 0x20], eax
mov eax, r15d
sar eax, 8
movzx r8d, al
mov eax, dword [rsp + 0x88]
imul eax, r8d
sub edx, eax
mov eax, dword [rsp + 0x54]
add edx, dword [rsp + 0x168]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x38], edx
mov edx, dword [rsp + 0x6c]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x8c]
add edx, dword [rsp + 0x50]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x3c], edx
mov edx, dword [rsp + 0x70]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x90]
add edx, dword [rsp + 0xd0]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x40], edx
mov edx, dword [rsp + 0x74]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x58]
add edx, dword [rsp + 0xd8]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x28], edx
mov edx, dword [rsp + 0x78]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x5c]
add edx, dword [rsp + 0xa0]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x2c], edx
mov edx, dword [rsp + 0x7c]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x60]
add edx, dword [rsp + 0xa4]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x30], edx
mov edx, dword [rsp + 0x80]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x64]
add edx, dword [rsp + 0xa8]
and edx, 0xfffffc00
imul eax, r8d
mov r8d, dword [rsp + 0x158]
mov dword [r9 + 0x34], edx
mov edx, dword [rsp + 0x84]
and edx, 0xfffffe00
sub edx, eax
add edx, dword [rsp + 0xac]
and edx, 0xfffffc00
mov dword [r9 + 0x44], edx
mov r9d, dword [rsp + 0x150]
cmp r10d, 3
jne 0x1800265eb
movsxd rax, esi
lea rdx, [rax + rax*2]
shl rdx, 5
mov dword [rdx + rcx + 0x18], r11d
mov dword [rdx + rcx + 0x1c], ebx
test r9d, r9d
jne 0x180026544
test r8d, r8d
jne 0x180026544
test ebp, ebp
jne 0x180026544
cmp dword [rcx + 0x1875c], ebp
je 0x180026517
mov eax, esi
and eax, 1
cmp dword [rcx + 0x18760], eax
jne 0x180026544
mov r10d, 1
xor r9d, r9d
mov dword [rdx + rcx + 0x24], r10d
cmp dword [rcx + 0x18744], r10d
jle 0x180026550
mov eax, r11d
sub eax, ebx
cmp eax, dword [rsp + 0xe8]
jl 0x180026550
mov dword [rcx + 0x19b88], esi
jmp 0x180026550
xor r9d, r9d
mov dword [rdx + rcx + 0x24], r9d
lea r10d, [r9 + 1]
mov r8d, dword [rcx]
test r8d, r8d
je 0x180026564
xor edx, edx
mov eax, esi
div r8d
cmp edx, dword [rcx + 4]
jne 0x180026567
mov r9d, r10d
movsxd r8, esi
lea rax, [r8 + r8*2]
shl rax, 5
mov edx, dword [rax + rcx + 0x24]
lea rax, [r8 + r8*2]
and edx, r9d
shl rax, 5
mov dword [rax + rcx + 0x24], edx
jmp 0x18002658d
cmp r10d, 3
jne 0x1800265ef
mov eax, dword [rsp + 0xb0]
add dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xb4]
add dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0xb8]
add dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xbc]
add dword [rsp + 0x74], eax
mov eax, dword [rsp + 0xc0]
add dword [rsp + 0x78], eax
mov eax, dword [rsp + 0xc4]
add dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0xc8]
add dword [rsp + 0x80], eax
mov eax, dword [rsp + 0xcc]
add dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x40]
add r15d, dword [rsp + 0x98]
add r14d, r12d
mov r9d, dword [rsp + 0x158]
inc edi
mov r8d, dword [rsp + 0x48]
mov r11d, dword [rsp + 0xec]
mov edx, dword [rsp + 0x44]
mov esi, dword [rsp + 0x9c]
cmp edi, eax
jle 0x1800260e4
jmp 0x180026b7a
cmp edi, r10d
jg 0x180026b81
mov eax, dword [rsp + 0x40]
cmp edi, dword [rsp + 0xdc]
jne 0x18002665b
mov r14d, dword [rsp + 0xf0]
mov r12d, dword [rsp + 0xe0]
and r14d, 0xfffffffe
sar r12d, 2
and r12d, 0xfffffffe
mov r10d, edi
and r10d, 3
cmp edi, esi
jl 0x180026add
cmp edi, r13d
jl 0x180026680
cmp edi, r8d
jge 0x180026680
xor ebx, ebx
mov dword [rsp + 0x38], ebx
lea r8d, [rbx + 1]
jmp 0x18002668d
mov r8d, 1
xor ebx, ebx
mov dword [rsp + 0x38], r8d
mov esi, edi
sar esi, 2
test r10d, r10d
jne 0x1800266b6
mov edx, dword [rsp + 0x44]
mov eax, 0xfff
mov dword [rsp + 0x30], eax
mov ebp, r8d
mov dword [rsp + 0x34], ebx
mov r9d, r8d
mov dword [rsp + 0x150], r8d
test r15d, 0x3ffe
mov r8d, ebx
seta r8b
bt r15d, 0x1b
jb 0x180026700
mov eax, r15d
sar eax, 0xd
and eax, 0x1ffe
or eax, r8d
cmp eax, r11d
jae 0x1800266e5
bt r15d, 0x1a
jae 0x180026700
mov dword [rsp + 0x4c], ebx
mov ebx, r15d
sar ebx, 0xd
and ebx, 0x3ffe
or ebx, r8d
mov r8d, 1
jmp 0x18002670e
mov r8d, 1
mov ebx, r11d
mov dword [rsp + 0x4c], r8d
bt ebx, 0xd
jb 0x180026723
mov eax, ebx
and eax, 0x1fff
cmp eax, edx
jae 0x180026723
xor eax, eax
jmp 0x180026726
mov eax, r8d
test eax, eax
mov dword [rsp + 0x158], eax
movsxd rax, esi
cmovne ebx, edx
and dword [rsp + 0x158], r9d
and ebp, dword [rsp + 0x4c]
mov r8d, ebx
and r8d, 0x1fff
test r14d, 0x3ffe
lea rdx, [rax + rax*2]
lea rdx, [r10 + rdx*8]
mov dword [rcx + rdx*4 + 0x48], r8d
mov r8d, 0
mov edx, r8d
seta dl
bt r14d, 0x1b
jb 0x1800267a9
mov eax, r14d
sar eax, 0xd
and eax, 0x1ffe
or eax, edx
cmp eax, r11d
jae 0x18002678b
bt r14d, 0x1a
jae 0x1800267a9
mov r11d, r14d
mov dword [rsp + 0x3c], r8d
sar r11d, 0xd
mov r9d, 1
and r11d, 0x3ffe
or r11d, edx
jmp 0x1800267b4
mov r9d, 1
mov dword [rsp + 0x3c], r9d
mov edx, dword [rsp + 0x44]
bt r11d, 0xd
jb 0x1800267ce
mov eax, r11d
and eax, 0x1fff
cmp eax, edx
mov eax, r8d
jb 0x1800267d1
mov eax, r9d
test eax, eax
mov dword [rsp + 0x4c], eax
movsxd r9, esi
cmovne r11d, edx
and ebp, dword [rsp + 0x3c]
mov r8d, r11d
and r8d, 0x1fff
lea rax, [r9 + r9*2]
lea rdx, [r10 + rax*8]
mov eax, dword [rsp + 0x4c]
and eax, dword [rsp + 0x158]
mov dword [rsp + 0x158], eax
mov dword [rcx + rdx*4 + 0x58], r8d
mov r8d, eax
mov eax, r14d
mov edx, r15d
xor eax, 0xf8003fff
xor edx, 0xf8003fff
and eax, 0xfffc000
and edx, 0xfffc000
cmp edx, eax
mov eax, dword [rsp + 0x38]
mov edx, 1
cmovb eax, edx
mov dword [rsp + 0x38], eax
lea rax, [r9 + r9*2]
mov r9d, dword [rsp + 0x150]
lea rdx, [r10 + rax*8]
mov eax, dword [rsp + 0x38]
and r9d, eax
mov dword [rcx + rdx*4 + 0x68], eax
mov dword [rsp + 0x150], r9d
test eax, eax
jne 0x18002689a
mov eax, dword [rsp + 0x30]
shr r11d, 3
and r11d, 0xfff
cmp r11d, eax
cmovl eax, r11d
shr ebx, 3
and ebx, 0xfff
mov dword [rsp + 0x30], eax
mov r11d, eax
mov eax, dword [rsp + 0x34]
cmp ebx, eax
cmovg eax, ebx
mov ebx, eax
mov dword [rsp + 0x34], eax
jmp 0x1800268a3
mov r11d, dword [rsp + 0x30]
mov ebx, dword [rsp + 0x34]
cmp r10d, dword [rsp + 0xe4]
jne 0x180026a2c
mov edx, dword [rsp + 0x68]
mov r8d, r15d
and edx, 0xfffffe00
sar r8d, 0x10
movsxd rax, esi
lea r9, [rax + rax*2]
mov eax, r8d
and eax, 0x800
shl r9, 5
neg eax
add r9, rcx
and r8d, 0xfff
or eax, r8d
mov dword [r9 + 0x20], eax
mov eax, r15d
sar eax, 8
movzx r8d, al
mov eax, dword [rsp + 0x88]
imul eax, r8d
sub edx, eax
mov eax, dword [rsp + 0x54]
add edx, dword [rsp + 0x168]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x38], edx
mov edx, dword [rsp + 0x6c]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x8c]
add edx, dword [rsp + 0x50]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x3c], edx
mov edx, dword [rsp + 0x70]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x90]
add edx, dword [rsp + 0xd0]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x40], edx
mov edx, dword [rsp + 0x74]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x58]
add edx, dword [rsp + 0xd8]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x28], edx
mov edx, dword [rsp + 0x78]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x5c]
add edx, dword [rsp + 0xa0]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x2c], edx
mov edx, dword [rsp + 0x7c]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x60]
add edx, dword [rsp + 0xa4]
and edx, 0xfffffc00
imul eax, r8d
mov dword [r9 + 0x30], edx
mov edx, dword [rsp + 0x80]
and edx, 0xfffffe00
sub edx, eax
mov eax, dword [rsp + 0x64]
add edx, dword [rsp + 0xa8]
and edx, 0xfffffc00
imul eax, r8d
mov r8d, dword [rsp + 0x158]
mov dword [r9 + 0x34], edx
mov edx, dword [rsp + 0x84]
and edx, 0xfffffe00
sub edx, eax
add edx, dword [rsp + 0xac]
and edx, 0xfffffc00
mov dword [r9 + 0x44], edx
mov r9d, dword [rsp + 0x150]
cmp r10d, 3
jne 0x180026b41
movsxd rax, esi
lea rdx, [rax + rax*2]
shl rdx, 5
mov dword [rdx + rcx + 0x18], r11d
mov dword [rdx + rcx + 0x1c], ebx
test r9d, r9d
jne 0x180026a9a
test r8d, r8d
jne 0x180026a9a
test ebp, ebp
jne 0x180026a9a
cmp dword [rcx + 0x1875c], ebp
je 0x180026a6d
mov eax, esi
and eax, 1
cmp dword [rcx + 0x18760], eax
jne 0x180026a9a
mov r10d, 1
xor r9d, r9d
mov dword [rdx + rcx + 0x24], r10d
cmp dword [rcx + 0x18744], r10d
jle 0x180026aa6
mov eax, ebx
sub eax, r11d
cmp eax, dword [rsp + 0xe8]
jl 0x180026aa6
mov dword [rcx + 0x19b88], esi
jmp 0x180026aa6
xor r9d, r9d
mov dword [rdx + rcx + 0x24], r9d
lea r10d, [r9 + 1]
mov r8d, dword [rcx]
test r8d, r8d
je 0x180026aba
xor edx, edx
mov eax, esi
div r8d
cmp edx, dword [rcx + 4]
jne 0x180026abd
mov r9d, r10d
movsxd r8, esi
lea rax, [r8 + r8*2]
shl rax, 5
mov edx, dword [rax + rcx + 0x24]
lea rax, [r8 + r8*2]
and edx, r9d
shl rax, 5
mov dword [rax + rcx + 0x24], edx
jmp 0x180026ae3
cmp r10d, 3
jne 0x180026b45
mov eax, dword [rsp + 0xb0]
add dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xb4]
add dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0xb8]
add dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xbc]
add dword [rsp + 0x74], eax
mov eax, dword [rsp + 0xc0]
add dword [rsp + 0x78], eax
mov eax, dword [rsp + 0xc4]
add dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0xc8]
add dword [rsp + 0x80], eax
mov eax, dword [rsp + 0xcc]
add dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x40]
add r15d, dword [rsp + 0x98]
add r14d, r12d
mov r9d, dword [rsp + 0x158]
inc edi
mov r8d, dword [rsp + 0x48]
mov r11d, dword [rsp + 0xec]
mov edx, dword [rsp + 0x44]
mov esi, dword [rsp + 0x9c]
cmp edi, eax
jle 0x180026636
mov ebx, dword [rsp + 0x94]
mov edx, dword [rcx + 0x18070]
mov r9d, edx
test edx, edx
je 0x180026c3e
sub r9d, 1
je 0x180026be1
sub r9d, 1
je 0x180026bc0
cmp r9d, 1
jne 0x180026c8e
sar r13d, 2
mov r9d, ebx
mov edx, r13d
sar r8d, 2
call fcn.180024950
jmp 0x180026c7a
mov r9d, dword [rsp + 0x160]
sar r13d, 2
mov edx, r13d
sar r8d, 2
mov dword [rsp + 0x20], ebx
call fcn.180024ba0
jmp 0x180026c7a
mov edx, dword [rcx + 0x18124]
mov r9d, dword [rsp + 0x160]
mov dword [rsp + 0x20], ebx
test edx, edx
je 0x180026c2c
sub edx, 1
je 0x180026c1a
sar r13d, 2
sar r8d, 2
cmp edx, 1
mov edx, r13d
je 0x180026c13
call fcn.180022350
jmp 0x180026c7a
call fcn.18001e280
jmp 0x180026c7a
sar r13d, 2
mov edx, r13d
sar r8d, 2
call fcn.180018540
jmp 0x180026c7a
sar r13d, 2
mov edx, r13d
sar r8d, 2
call fcn.180010e90
jmp 0x180026c7a
mov edx, dword [rcx + 0x18120]
mov r9d, dword [rsp + 0x160]
sar r8d, 2
sar r13d, 2
mov dword [rsp + 0x20], ebx
test edx, edx
je 0x180026c72
cmp edx, 1
mov edx, r13d
je 0x180026c6b
call fcn.18000f5a0
jmp 0x180026c7a
call fcn.18000cfd0
jmp 0x180026c7a
mov edx, r13d
call fcn.180009ab0
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rcx, str.cycle_type__d
call fcn.1800027e0
int3