Function at 0x1401200f0
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, 0x168
movups xmmword [rsp + 0x110], xmm6
movups xmmword [rsp + 0x120], xmm7
movups xmmword [rsp + 0x130], xmm8
movups xmmword [rsp + 0x140], xmm9
movups xmmword [rsp + 0x150], xmm10
mov qword [rsp + 0x58], rdx
mov rbx, rcx
mov r13, r8
mov dword [rsp + 0x6c], r9d
test r9d, r9d
jle 0x1401201af
mov rdx, qword [r8]
mov ecx, edx
mov eax, edx
imul rcx, rcx, 0x51d07eaf
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
mov ecx, edx
shr eax, 6
imul eax, eax, 0x61
sub ecx, eax
mov rsi, qword [rbx + rcx*8 + 0xc0]
test rsi, rsi
jne 0x140120181
jmp 0x1401201af
mov rsi, qword [rsi + 0x20]
test rsi, rsi
je 0x1401201af
cmp rdx, qword [rsi + 8]
jne 0x140120178
mov rdx, qword [rsi]
test rdx, rdx
je 0x140120199
sub dword [rdx + 0x10], 1
je 0x1401209d6
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x1401201a7
add dword [rax + 0x10], 1
mov rax, qword [rsp + 0x58]
mov qword [rsi], rax
mov rdi, qword [rsp + 0x58]
mov r8, r13
mov rcx, rbx
mov rdx, rdi
call sym.nodeInsertCell
test eax, eax
je 0x140120886
mov rax, qword [rdi + 0x18]
mov ecx, dword [0x14014efd4]
movzx esi, word [rax + 2]
test ecx, ecx
jne 0x140120983
call sym.sqlite3MutexInit
test eax, eax
jne 0x140120930
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x140120930
rol si, 8
movzx edi, si
mov word [rsp + 0x30], si
lea eax, [rdi + 1]
movsxd r14, eax
mov dword [rsp + 0x38], eax
lea rsi, [r14 + r14*2]
lea rcx, [r14 + rsi*4]
shl rcx, 2
call sym.sqlite3Malloc
mov rbp, rax
test rax, rax
je 0x140120930
lea rax, [r14*4]
shl rsi, 4
xor edx, edx
lea rcx, [rbp + rsi]
mov r8, rax
mov qword [rsp + 0x70], rax
call sym.memset
mov rax, qword [rsp + 0x58]
mov r12, qword [rax + 0x18]
test edi, edi
je 0x140120285
mov r11, rbp
xor r10d, r10d
movzx edx, byte [rbx + 0x27]
movzx ecx, byte [rbx + 0x25]
mov qword [rsp + 0x20], r11
mov r9d, r10d
mov r8, r12
add r10d, 1
add r11, 0x30
call sym.nodeGetCell.isra.0
cmp edi, r10d
jne 0x140120260
mov eax, dword [rbx + 0x20]
lea rcx, [r12 + 2]
xor edx, edx
lea r8d, [rax - 2]
movsxd r8, r8d
call sym.memset
mov rcx, qword [rsp + 0x58]
lea rax, [rbp + rsi - 0x30]
mov dword [rcx + 0x14], 1
movdqu xmm6, xmmword [r13]
movups xmmword [rax], xmm6
movdqu xmm6, xmmword [r13 + 0x10]
movups xmmword [rax + 0x10], xmm6
movdqu xmm6, xmmword [r13 + 0x20]
movups xmmword [rax + 0x20], xmm6
cmp qword [rcx + 8], 1
je 0x140120b9e
mov r15, qword [rsp + 0x58]
mov rcx, rbx
mov rdx, qword [r15]
call sym.nodeNew
add dword [r15 + 0x10], 1
mov qword [rsp + 0x40], r15
mov rsi, rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x140120b80
test rsi, rsi
je 0x140120b6c
mov rcx, qword [rax + 0x18]
movsxd r8, dword [rbx + 0x20]
xor edx, edx
call sym.memset
mov rcx, qword [rsi + 0x18]
movsxd r8, dword [rbx + 0x20]
xor edx, edx
call sym.memset
mov edx, dword [0x14014efd4]
movzx r12d, byte [rbx + 0x24]
test edx, edx
jne 0x1401209cb
call sym.sqlite3MutexInit
test eax, eax
jne 0x140120b2d
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x140120b2d
lea rdx, [r12 + 1]
lea rax, [r14 + 2]
imul rax, rdx
mov r12, rax
shl r12, 2
mov rcx, r12
call sym.sqlite3Malloc
mov r15, rax
test rax, rax
je 0x140120b2d
movzx edx, byte [rbx + 0x24]
mov ecx, dword [rsp + 0x38]
mov r8, r12
mov rax, rdx
imul eax, ecx
mov rcx, r15
cdqe
lea rax, [rax + rdx*2]
xor edx, edx
lea rax, [r15 + rax*4]
mov qword [rsp + 0x48], rax
call sym.memset
movzx r9d, byte [rbx + 0x24]
test r9b, r9b
je 0x140120be8
xor r10d, r10d
xor eax, eax
mov rdx, r13
movzx r12d, word [rsp + 0x30]
mov r13, rsi
movzx ecx, r9b
mov rsi, r10
mov r10, rbx
mov rbx, rax
mov rax, rdx
lea rdx, [rsi + rcx*2]
mov r9d, ebx
lea r11, [r15 + rdx*4]
xor edx, edx
mov qword [r15 + rbx*8], r11
nop dword [rax]
mov rcx, rdx
mov dword [r11 + rdx*4], edx
add rdx, 1
cmp rcx, r12
jne 0x1401203e8
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x48]
mov rcx, r10
mov rdx, r11
mov qword [rsp + 0x20], rbp
mov r8d, dword [rsp + 0x38]
add rbx, 1
add rsi, r14
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r10
call sym.SortByDimension
mov r10, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
movzx ecx, byte [r10 + 0x24]
movzx edx, cl
cmp edx, ebx
jg 0x1401203d4
mov rsi, r13
mov r9d, ecx
mov rbx, r10
mov r13, rax
test edx, edx
je 0x140120bee
mov eax, dword [r10 + 0x20]
movzx ecx, byte [r10 + 0x27]
mov dword [rsp + 0x98], 0
pxor xmm10, xmm10
mov qword [rsp + 0x80], rsi
movsd xmm6, qword [0x140176bf0]
sub eax, 4
mov byte [rsp + 0x50], r9b
cdq
mov qword [rsp + 0x88], r13
idiv ecx
mov qword [rsp + 0x90], r12
movsxd rdx, eax
sar eax, 0x1f
imul rdx, rdx, 0x55555556
shr rdx, 0x20
mov ecx, edx
mov edx, dword [rsp + 0x38]
sub ecx, eax
movzx eax, r9b
sub edx, ecx
mov dword [rsp + 0x30], ecx
xor ecx, ecx
mov dword [rsp + 0x38], edx
xor edx, edx
mov qword [rsp + 0x78], rax
mov rax, r15
mov r15, rdx
mov edx, ecx
mov r11d, dword [rsp + 0x30]
mov esi, dword [rsp + 0x38]
cmp r11d, esi
jg 0x140120b20
mov r13, qword [rax + r15*8]
mov rsi, qword [rsp + 0x70]
xor r9d, r9d
pxor xmm7, xmm7
mov dword [rsp + 0x68], r9d
movapd xmm5, xmm7
movapd xmm9, xmm7
lea r12, [rsp + 0xb0]
movsxd rcx, dword [r13]
mov dword [rsp + 0x9c], edx
lea rsi, [r13 + rsi - 4]
movapd xmm8, xmm7
mov qword [rsp + 0xa0], rax
lea r14, [rcx + rcx*2]
lea rcx, [rsp + 0xe8]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x60], rcx
shl r14, 4
lea rsi, [rsp + 0xe0]
mov qword [rsp + 0xa8], r15
add r14, rbp
movdqu xmm4, xmmword [r14]
mov rax, qword [rsp + 0x48]
mov r15d, 1
movups xmmword [r12], xmm4
movdqu xmm4, xmmword [r14 + 0x10]
movups xmmword [r12 + 0x10], xmm4
movdqu xmm4, xmmword [r14 + 0x20]
movups xmmword [r12 + 0x20], xmm4
movsxd rax, dword [rax]
lea rax, [rax + rax*2]
shl rax, 4
add rax, rbp
movdqu xmm4, xmmword [rax]
movups xmmword [rsi], xmm4
movdqu xmm4, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm4
movdqu xmm4, xmmword [rax + 0x20]
movups xmmword [rsi + 0x20], xmm4
cmp edi, 1
jg 0x1401205c4
jmp 0x1401205ed
mov rdx, r12
mov rcx, rbx
add r15, 1
call sym.cellUnion
cmp edi, r15d
jle 0x1401205ed
movsxd rax, dword [r13 + r15*4]
lea r8, [rax + rax*2]
shl r8, 4
add r8, rbp
cmp r11d, r15d
jg 0x1401205b0
mov rdx, rsi
mov rcx, rbx
add r15, 1
call sym.cellUnion
cmp edi, r15d
jg 0x1401205c4
movzx r15d, byte [rbx + 0x25]
movzx r10d, byte [rbx + 0x26]
mov r8, r12
mov edx, r10d
mov ecx, r15d
call sym.cellMargin.isra.0
mov r8, rsi
mov ecx, r15d
addsd xmm9, xmm0
call sym.cellMargin.isra.0
movapd xmm2, xmm6
addsd xmm9, xmm0
test r15b, r15b
je 0x1401206d0
movzx ecx, r15b
mov r9, qword [rsp + 0x60]
mov rax, rsi
mov rdx, r12
sub ecx, 1
shr ecx, 1
lea r9, [r9 + rcx*8]
jmp 0x140120693
movd xmm1, ecx
movd xmm0, r8d
comiss xmm1, xmm0
jbe 0x1401209e8
cvtss2sd xmm1, xmm1
pxor xmm0, xmm0
pxor xmm3, xmm3
cvtss2sd xmm0, dword [rdx + 0xc]
cvtss2sd xmm3, dword [rax + 0xc]
minsd xmm0, xmm3
comisd xmm1, xmm0
ja 0x1401206cc
subsd xmm0, xmm1
add rax, 8
add rdx, 8
mulsd xmm2, xmm0
cmp rax, r9
je 0x140120a06
mov r8d, dword [rax + 8]
mov ecx, dword [rdx + 8]
test r10b, r10b
je 0x140120648
cmp r8d, ecx
jge 0x1401209f8
pxor xmm1, xmm1
cvtsi2sd xmm1, ecx
pxor xmm0, xmm0
pxor xmm3, xmm3
cvtsi2sd xmm0, dword [rdx + 0xc]
cvtsi2sd xmm3, dword [rax + 0xc]
minsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x14012067a
pxor xmm2, xmm2
movzx ecx, byte [rsp + 0x50]
mov r8, r12
mov edx, r10d
call sym.cellArea.isra.0
mov r8, rsi
mov edx, r10d
movapd xmm3, xmm0
call sym.cellArea.isra.0
mov eax, dword [rsp + 0x30]
addsd xmm3, xmm0
cmp r11d, eax
je 0x140120710
comisd xmm5, xmm2
ja 0x140120710
ucomisd xmm5, xmm2
jp 0x14012071d
jne 0x14012071d
comisd xmm7, xmm3
jbe 0x14012071d
mov dword [rsp + 0x68], r11d
movapd xmm7, xmm3
movapd xmm5, xmm2
mov eax, dword [rsp + 0x38]
add r11d, 1
cmp r11d, eax
jle 0x140120550
mov r9d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x9c]
mov rax, qword [rsp + 0xa0]
mov r15, qword [rsp + 0xa8]
test r15, r15
je 0x140120756
comisd xmm10, xmm9
jbe 0x140120766
mov dword [rsp + 0x98], r9d
mov edx, r15d
movapd xmm10, xmm9
add r15, 1
cmp qword [rsp + 0x78], r15
jne 0x1401204ce
movsxd rcx, edx
movsxd rdx, dword [rsp + 0x98]
mov rsi, qword [rsp + 0x80]
mov r15, rax
mov r13, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
lea r10, [rax + rcx*8]
shl rdx, 2
mov rax, qword [r10]
mov qword [rsp + 0x38], r13
xor r14d, r14d
mov r13, r12
mov r12, r10
movsxd rax, dword [rax]
lea rax, [rax + rax*2]
shl rax, 4
add rax, rbp
movdqu xmm6, xmmword [rax]
movups xmmword [rsp + 0xb0], xmm6
movdqu xmm6, xmmword [rax + 0x10]
movups xmmword [rsp + 0xc0], xmm6
movdqu xmm6, xmmword [rax + 0x20]
movups xmmword [rsp + 0xd0], xmm6
mov rax, qword [r10]
movsxd rax, dword [rax + rdx]
lea rax, [rax + rax*2]
shl rax, 4
add rax, rbp
movdqu xmm6, xmmword [rax]
movups xmmword [rsp + 0xe0], xmm6
movdqu xmm6, xmmword [rax + 0x10]
movups xmmword [rsp + 0xf0], xmm6
movdqu xmm6, xmmword [rax + 0x20]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x100], xmm6
jmp 0x14012086f
mov rdx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x30]
mov rax, qword [r12]
mov rcx, rbx
movsxd rax, dword [rax + r14*4]
lea r8, [rax + rax*2]
shl r8, 4
add r8, rbp
call sym.nodeInsertCell
mov rdx, rdi
mov rcx, rbx
call sym.cellUnion
lea rax, [r14 + 1]
cmp r14, r13
je 0x140120a10
mov r14, rax
cmp dword [rsp + 0x98], r14d
jg 0x14012082f
mov rdx, rsi
lea rdi, [rsp + 0xe0]
jmp 0x140120839
mov rdi, qword [rsp + 0x58]
mov rcx, rbx
mov rdx, rdi
call sym.AdjustTree
mov r12d, eax
test eax, eax
jne 0x140120941
mov eax, dword [rsp + 0x6c]
mov rsi, qword [rdi + 8]
mov r8, qword [r13]
test eax, eax
jne 0x14012098e
mov rcx, qword [rbx + 0x90]
mov edx, 1
call sym.sqlite3_bind_int64
mov rcx, qword [rbx + 0x90]
mov r8, rsi
mov edx, 2
call sym.sqlite3_bind_int64
mov rcx, qword [rbx + 0x90]
call sym.sqlite3_step
mov rcx, qword [rbx + 0x90]
movups xmm6, xmmword [rsp + 0x110]
movups xmm7, xmmword [rsp + 0x120]
movups xmm8, xmmword [rsp + 0x130]
movups xmm9, xmmword [rsp + 0x140]
movups xmm10, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.sqlite3_reset
xor ebp, ebp
mov r12d, 7
mov rcx, rbp
call sym.sqlite3_free
nop
movups xmm6, xmmword [rsp + 0x110]
mov eax, r12d
movups xmm7, xmmword [rsp + 0x120]
movups xmm8, xmmword [rsp + 0x130]
movups xmm9, xmmword [rsp + 0x140]
movups xmm10, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lock or qword [rsp], 0
jmp 0x1401201fa
mov rcx, qword [rbx + 0xa8]
mov edx, 1
call sym.sqlite3_bind_int64
mov rcx, qword [rbx + 0xa8]
mov r8, rsi
mov edx, 2
call sym.sqlite3_bind_int64
mov rcx, qword [rbx + 0xa8]
call sym.sqlite3_step
mov rcx, qword [rbx + 0xa8]
jmp 0x1401208ed
lock or qword [rsp], 0
jmp 0x140120353
mov rcx, rbx
call sym.nodeRelease.part.0
jmp 0x140120199
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
jmp 0x14012065e
pxor xmm1, xmm1
cvtsi2sd xmm1, r8d
jmp 0x1401206b0
addsd xmm2, xmm8
jmp 0x1401206d0
mov rcx, r15
mov r13, qword [rsp + 0x38]
call sym.sqlite3_free
mov rdx, rsi
mov rcx, rbx
call sym.nodeWrite
mov r14d, eax
test eax, eax
jne 0x140120be0
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 8]
test rax, rax
je 0x140120c03
mov rdi, qword [rsp + 0x40]
mov rdx, qword [rsi + 8]
mov qword [rsp + 0xb0], rax
mov rcx, qword [rdi]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0xe0], rdx
cmp qword [rdi + 8], 1
je 0x140120c27
mov r9, qword [rcx + 0x18]
movzx edx, word [r9 + 2]
rol dx, 8
movzx edx, dx
test edx, edx
je 0x140120cee
movzx r12d, byte [rbx + 0x27]
lea r10, [r9 + 4]
mov r8, r12
jmp 0x140120aa7
add r14d, 1
add r10, r8
cmp edx, r14d
je 0x140120cee
mov r11, qword [r10]
bswap r11
cmp r11, rax
jne 0x140120a97
mov edx, r14d
bswap rax
lea r8, [rsp + 0xb0]
imul edx, r12d
add edx, 4
movsxd rdx, edx
add rdx, r9
mov qword [rdx], rax
xor eax, eax
cmp byte [rbx + 0x25], 0
je 0x140120af3
mov r9d, dword [r8 + rax*4 + 8]
bswap r9d
mov dword [rdx + rax*4 + 8], r9d
movzx r9d, byte [rbx + 0x25]
add rax, 1
cmp r9d, eax
jg 0x140120ad8
mov dword [rcx + 0x14], 1
mov rdx, rcx
mov rcx, rbx
call sym.AdjustTree
mov r12d, eax
test eax, eax
jne 0x140120b33
mov eax, dword [rsp + 0x6c]
lea r14d, [rax + 1]
jmp 0x140120c50
xor r9d, r9d
pxor xmm9, xmm9
jmp 0x14012074a
mov r12d, 7
sub dword [rsi + 0x10], 1
jne 0x140120b44
mov rdx, rsi
mov rcx, rbx
call sym.nodeRelease.part.0
mov rdi, qword [rsp + 0x40]
mov eax, dword [rdi + 0x10]
mov dword [rsp + 0x30], eax
sub eax, 1
mov dword [rdi + 0x10], eax
jne 0x140120938
mov rdx, rdi
mov rcx, rbx
call sym.nodeRelease.part.0
jmp 0x140120938
mov r12d, 7
cmp qword [rsp + 0x40], 0
je 0x140120938
jmp 0x140120b44
test rsi, rsi
je 0x140120b6c
sub dword [rsi + 0x10], 1
jne 0x140120b6c
mov r12d, 7
mov rdx, rsi
mov rcx, rbx
call sym.nodeRelease.part.0
jmp 0x140120b72
mov r15, rcx
mov rdx, rcx
mov rcx, rbx
call sym.nodeNew
mov rdx, r15
mov rcx, rbx
mov rsi, rax
call sym.nodeNew
mov rdx, qword [r15 + 0x18]
mov qword [rsp + 0x40], rax
mov eax, dword [rbx + 0x2c]
add eax, 1
mov dword [rbx + 0x2c], eax
rol ax, 8
mov dword [r15 + 0x14], 1
mov word [rdx], ax
jmp 0x1401202f1
mov r12d, eax
jmp 0x140120b33
movzx r12d, word [rsp + 0x30]
mov dword [rsp + 0x98], 0
mov r10, r15
xor edx, edx
jmp 0x1401207a3
mov rdi, qword [rsp + 0x40]
mov rcx, rbx
mov rdx, rdi
call sym.nodeWrite
mov r12d, eax
test eax, eax
jne 0x140120b33
mov rax, qword [rdi + 8]
jmp 0x140120a45
mov eax, dword [rsp + 0x6c]
mov rdx, rcx
lea r8, [rsp + 0xb0]
mov rcx, rbx
lea r14d, [rax + 1]
mov r9d, r14d
call sym.rtreeInsertCell
mov r12d, eax
test eax, eax
jne 0x140120b33
mov rdx, qword [rsi]
mov r9d, r14d
lea r8, [rsp + 0xe0]
mov rcx, rbx
call sym.rtreeInsertCell
mov r12d, eax
test eax, eax
jne 0x140120b33
mov rdx, qword [rsi + 0x18]
cmp word [rdx + 2], 0
je 0x140120cf9
xor r14d, r14d
xor r15d, r15d
jmp 0x140120ca0
mov rdx, qword [rsi + 0x18]
add r15d, 1
movzx ecx, word [rdx + 2]
rol cx, 8
movzx ecx, cx
cmp r15d, ecx
jge 0x140120de0
movzx eax, byte [rbx + 0x27]
mov r9d, dword [rsp + 0x6c]
mov r8, rsi
mov rcx, rbx
imul eax, r15d
add eax, 4
cdqe
mov rdi, qword [rdx + rax]
bswap rdi
mov rdx, rdi
call sym.updateMapping
mov r12d, eax
mov rax, qword [r13]
cmp rdi, rax
mov edi, 1
cmove r14d, edi
test r12d, r12d
je 0x140120c84
sub dword [rsi + 0x10], 1
jne 0x140120b44
jmp 0x140120b91
mov r12d, 0x10b
jmp 0x140120b33
mov rax, qword [rsp + 0x58]
cmp qword [rax + 8], 1
je 0x140120d70
mov rax, qword [r13]
mov r9d, dword [rsp + 0x6c]
mov r8, qword [rsp + 0x40]
mov rdx, rax
mov rcx, rbx
call sym.updateMapping
mov r12d, eax
test eax, eax
jne 0x140120b33
sub dword [rsi + 0x10], 1
jne 0x140120d45
mov rdx, rsi
mov rcx, rbx
call sym.nodeRelease.part.0
mov r12d, eax
test eax, eax
jne 0x140120b44
mov rdi, qword [rsp + 0x40]
mov eax, dword [rdi + 0x10]
mov dword [rsp + 0x30], eax
sub eax, 1
mov dword [rdi + 0x10], eax
jne 0x140120dd2
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call sym.nodeRelease.part.0
mov r12d, eax
jmp 0x140120938
mov rax, qword [rsp + 0x40]
xor edi, edi
mov rdx, qword [rax + 0x18]
cmp word [rdx + 2], 0
jne 0x140120d9e
jmp 0x140120d29
mov rdx, qword [r14 + 0x18]
add edi, 1
movzx eax, word [rdx + 2]
rol ax, 8
movzx eax, ax
cmp edi, eax
jge 0x140120d29
movzx eax, byte [rbx + 0x27]
mov r14, qword [rsp + 0x40]
mov rcx, rbx
mov r9d, dword [rsp + 0x6c]
imul eax, edi
mov r8, r14
add eax, 4
cdqe
mov rdx, qword [rdx + rax]
bswap rdx
call sym.updateMapping
mov r12d, eax
test eax, eax
je 0x140120d88
jmp 0x140120cdf
xor r12d, r12d
jmp 0x140120938
mov rdi, qword [rsp + 0x58]
cmp qword [rdi + 8], 1
je 0x140120d70
test r14d, r14d
jne 0x140120d29
jmp 0x140120d09