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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
mov r11, qword [rcx + 0xc8]
test r11, r11
mov rsi, rdx
mov rdi, r9
mov qword [rsp + 0x100], rcx
mov dword [rsp + 0x110], r8d
mov qword [rsp + 0x40], 0
jne 0x14022a005
jmp 0x14022a561
mov r11, qword [r11 + 0x20]
test r11, r11
je 0x14022a561
cmp qword [r11 + 8], 1
jne 0x140229ff8
add dword [r11 + 0x10], 1
mov qword [rsp + 0x40], r11
mov rax, qword [rsp + 0x100]
mov dword [rsp + 0x34], 0
lea rbx, [rsp + 0x50]
lea r14, [rsp + 0x80]
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x118], rdi
mov eax, dword [rax + 0x2c]
mov dword [rsp + 0x38], eax
nop word [rax + rax]
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x34]
sub eax, dword [rsp + 0x110]
cmp eax, ecx
jle 0x14022a54c
mov qword [rsp + 0x48], 0
mov rax, qword [rsp + 0x28]
mov r9, qword [rax + 0x18]
movzx r8d, word [r9 + 2]
rol r8w, 8
movzx r15d, r8w
test r15d, r15d
je 0x14022a542
pxor xmm5, xmm5
mov rax, qword [rsp + 0x100]
add r9, 0xc
movapd xmm4, xmm5
xor r11d, r11d
xor ebp, ebp
movzx ecx, byte [rax + 0x24]
movzx r12d, byte [rax + 0x26]
movzx r10d, byte [rax + 0x25]
movzx r13d, byte [rax + 0x27]
nop dword [rax]
mov rdi, qword [r9 - 8]
xor eax, eax
bswap rdi
mov qword [rsp + 0x50], rdi
nop
mov edx, dword [r9 + rax*4]
mov r8d, dword [r9 + rax*4 + 4]
bswap edx
movd xmm0, edx
bswap r8d
movd xmm1, r8d
punpckldq xmm0, xmm1
movq qword [rbx + rax*4 + 8], xmm0
add rax, 2
cmp r10d, eax
jg 0x14022a0d0
mov rax, qword [rsp + 0x50]
mov r8, r14
mov edx, r12d
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa8], rax
call sym.cellArea.isra.0
test r12b, r12b
movapd xmm3, xmm0
jne 0x14022a368
movss xmm0, dword [rsp + 0x88]
cmp r10d, 2
minss xmm0, dword [rsi + 8]
movss dword [rsp + 0x88], xmm0
movss xmm0, dword [rsp + 0x8c]
maxss xmm0, dword [rsi + 0xc]
movss dword [rsp + 0x8c], xmm0
jle 0x14022a266
movss xmm0, dword [rsp + 0x90]
cmp r10d, 4
minss xmm0, dword [rsi + 0x10]
movss dword [rsp + 0x90], xmm0
movss xmm0, dword [rsp + 0x94]
maxss xmm0, dword [rsi + 0x14]
movss dword [rsp + 0x94], xmm0
jle 0x14022a266
movss xmm0, dword [rsp + 0x98]
cmp r10d, 6
minss xmm0, dword [rsi + 0x18]
movss dword [rsp + 0x98], xmm0
movss xmm0, dword [rsp + 0x9c]
maxss xmm0, dword [rsi + 0x1c]
movss dword [rsp + 0x9c], xmm0
jle 0x14022a266
movss xmm0, dword [rsp + 0xa0]
cmp r10d, 8
minss xmm0, dword [rsi + 0x20]
movss dword [rsp + 0xa0], xmm0
movss xmm0, dword [rsp + 0xa4]
maxss xmm0, dword [rsi + 0x24]
movss dword [rsp + 0xa4], xmm0
jle 0x14022a266
movss xmm0, dword [rsp + 0xa8]
minss xmm0, dword [rsi + 0x28]
movss dword [rsp + 0xa8], xmm0
movss xmm0, dword [rsp + 0xac]
maxss xmm0, dword [rsi + 0x2c]
movss dword [rsp + 0xac], xmm0
mov r8, r14
mov edx, r12d
call sym.cellArea.isra.0
mov r8, rbx
mov edx, r12d
movapd xmm2, xmm0
call sym.cellArea.isra.0
test ebp, ebp
subsd xmm2, xmm3
je 0x14022a2a0
comisd xmm4, xmm2
ja 0x14022a2a0
ucomisd xmm4, xmm2
jp 0x14022a2ab
jne 0x14022a2ab
comisd xmm5, xmm0
jbe 0x14022a2ab
nop dword [rax]
movapd xmm5, xmm0
movapd xmm4, xmm2
mov r11, rdi
add ebp, 1
add r9, r13
cmp ebp, r15d
jne 0x14022a0c0
mov edx, r11d
mov eax, r11d
imul rdx, rdx, 0x51d07eaf
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 6
imul edx, eax, 0x61
mov eax, r11d
sub eax, edx
mov rcx, qword [rsp + 0x100]
mov rdi, qword [rcx + rax*8 + 0xc0]
test rdi, rdi
jne 0x14022a30d
jmp 0x14022a4cb
mov rdi, qword [rdi + 0x20]
test rdi, rdi
je 0x14022a4cb
cmp r11, qword [rdi + 8]
jne 0x14022a300
mov rax, qword [rsp + 0x28]
cmp qword [rdi], rax
je 0x14022a49a
sub dword [rax + 0x10], 1
mov rdi, qword [rsp + 0x118]
jne 0x14022a33f
mov rcx, qword [rsp + 0x100]
mov rdx, rax
call sym.nodeRelease.part.0
xor r11d, r11d
mov r13d, 0x10b
mov eax, r13d
mov qword [rdi], r11
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x88]
mov edx, dword [rsi + 8]
cmp eax, edx
cmovle edx, eax
mov eax, dword [rsp + 0x8c]
movd xmm0, edx
mov edx, dword [rsi + 0xc]
cmp eax, edx
cmovl eax, edx
cmp r10d, 2
movd xmm2, eax
punpckldq xmm0, xmm2
movq qword [rsp + 0x88], xmm0
jle 0x14022a266
mov eax, dword [rsp + 0x90]
mov edx, dword [rsi + 0x10]
cmp eax, edx
cmovle edx, eax
mov eax, dword [rsp + 0x94]
movd xmm0, edx
mov edx, dword [rsi + 0x14]
cmp eax, edx
cmovl eax, edx
cmp r10d, 4
movd xmm2, eax
punpckldq xmm0, xmm2
movq qword [rsp + 0x90], xmm0
jle 0x14022a266
mov eax, dword [rsi + 0x18]
mov edx, dword [rsp + 0x98]
cmp eax, edx
cmovle edx, eax
mov eax, dword [rsi + 0x1c]
movd xmm0, edx
mov edx, dword [rsp + 0x9c]
cmp eax, edx
cmovl eax, edx
cmp r10d, 6
movd xmm2, eax
punpckldq xmm0, xmm2
movq qword [rsp + 0x98], xmm0
jle 0x14022a266
mov edx, dword [rsp + 0xa0]
mov eax, dword [rsi + 0x20]
mov r8d, dword [rsp + 0xa4]
cmp eax, edx
cmovle edx, eax
movd xmm0, edx
mov edx, dword [rsi + 0x24]
cmp edx, r8d
cmovl edx, r8d
cmp r10d, 8
movd xmm2, edx
punpckldq xmm0, xmm2
movq qword [rsp + 0xa0], xmm0
jle 0x14022a266
mov edx, dword [rsp + 0xa8]
mov eax, dword [rsi + 0x28]
mov r8d, dword [rsp + 0xac]
cmp eax, edx
cmovle edx, eax
movd xmm0, edx
mov edx, dword [rsi + 0x2c]
cmp edx, r8d
cmovl edx, r8d
movd xmm2, edx
punpckldq xmm0, xmm2
movq qword [rsp + 0xa8], xmm0
jmp 0x14022a266
add dword [rdi + 0x10], 1
mov qword [rsp + 0x48], rdi
mov ecx, dword [rax + 0x10]
lea r13d, [rcx - 1]
mov dword [rsp + 0x3c], ecx
test r13d, r13d
mov dword [rax + 0x10], r13d
je 0x14022a529
add dword [rsp + 0x34], 1
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x28], rdi
jmp 0x14022a050
mov r15, qword [rsp + 0x28]
lea r9, [rsp + 0x48]
mov rdx, r11
mov rcx, qword [rsp + 0x100]
mov r8, r15
call sym.nodeAcquire.part.0
mov rdi, qword [rsp + 0x48]
mov r13d, eax
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x38], eax
sub eax, 1
mov dword [r15 + 0x10], eax
je 0x14022a529
mov qword [rsp + 0x28], rdi
add dword [rsp + 0x34], 1
test r13d, r13d
mov qword [rsp + 0x40], rdi
jne 0x14022a590
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0x2c]
mov dword [rsp + 0x38], eax
jmp 0x14022a050
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x100]
call sym.nodeRelease.part.0
mov qword [rsp + 0x28], rdi
jmp 0x14022a506
xor eax, eax
xor r11d, r11d
jmp 0x14022a2dc
mov r11, qword [rsp + 0x28]
xor r13d, r13d
mov rdi, qword [rsp + 0x118]
jmp 0x14022a348
mov rcx, qword [rsp + 0x100]
xor r8d, r8d
mov edx, 1
lea r9, [rsp + 0x40]
call sym.nodeAcquire.part.0
mov r11, qword [rsp + 0x40]
test eax, eax
mov r13d, eax
je 0x14022a016
jmp 0x14022a348
mov r11, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x118]
jmp 0x14022a348