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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rdi, r8
mov rbx, rdx
mov r8d, ecx
mov rax, qword [0x1404fe040]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rbp, qword [rdi + 8]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x88], r10
movapd xmm0, xmmword [0x140470090]
movupd xmmword [rsp + 0x78], xmm0
movupd xmmword [rsp + 0x68], xmm0
test r9d, r9d
je 0x1401aaaf2
movzx r14d, byte [rbx + 1]
mov dword [rsp + 0x98], r14d
mov r9d, 2
test r14b, r14b
js 0x1401aaca5
movzx r13d, byte [rbx]
cmp r14d, 0x80
jae 0x1401aac99
mov eax, r14d
lea rcx, [0x1404dd7f0]
movzx r14d, byte [rax + rcx]
add r14d, r13d
add rbp, 0x38
mov r11d, 1
lea rsi, [rdi + 0x1f]
cmp r14d, r8d
ja 0x1401aae5a
mov qword [rsp + 0x58], 0xffffffffffffffff
lea rdx, [0x1404dd7f0]
mov qword [rsp + 0x48], rdi
movzx eax, word [rbp + 0x14]
test al, 0x24
je 0x1401aabae
mov eax, r9d
movzx r15d, byte [rbx + rax]
cmp r15d, 0xa
jae 0x1401aad3e
mov r12d, 0xffffffff
test r15d, r15d
je 0x1401aaa79
mov rdi, rbp
cmp r15d, 7
je 0x1401ab07e
lea ecx, [r15 - 1]
cmp ecx, 5
ja case.default.0x1401aaa63
mov rbp, r11
mov eax, r14d
lea r11, [0x1404e6368]
movsxd rcx, dword [r11 + rcx*4]
add rcx, r11
jmp rcx
movsx rax, byte [rbx + rax]
mov r11, rbp
mov rbp, rdi
cmp rax, qword [rdi]
jge 0x1401aab2c
test r15d, r15d
sete al
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x18]
mov edx, r11d
movzx ecx, byte [rcx + rdx]
test ecx, ecx
je 0x1401aaaa2
test cl, 2
jne 0x1401aaf35
neg r12d
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
cmp rcx, qword [0x1404fe040]
je 0x1401aaacf
call fcn.140297b50
int3
movsx rcx, byte [rbx + rax]
shl rcx, 8
movzx eax, byte [rbx + rax + 1]
or rax, rcx
jmp 0x1401aaa6a
mov eax, r12d
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rbx + rax]
bswap rax
jmp 0x1401aaa6a
movzx r13d, byte [rbx]
mov dword [rsp + 0x94], r13d
test r13b, r13b
js 0x1401ab0c6
mov r9d, 1
xor r11d, r11d
mov r14d, r13d
jmp 0x1401aa9ea
lea eax, [r15 - 8]
jmp 0x1401aaa6d
mov r12d, 1
jmp 0x1401aaa79
jg 0x1401aab21
inc r11
mov rdi, qword [rsp + 0x48]
movzx eax, word [rdi + 0x1c]
cmp r11, rax
jne 0x1401aab56
mov byte [rdi + 0x22], 1
movsx r12d, byte [rdi + 0x1e]
jmp 0x1401aaaa2
mov eax, r15d
movzx eax, byte [rax + rdx]
jmp 0x1401aab65
cmp r15d, 0x80
jb 0x1401aab4d
lea eax, [r15 - 0xc]
shr eax, 1
add r14d, eax
cmp r14d, r8d
ja 0x1401aab3f
mov r12, rdx
mov eax, 1
cmp r15d, 0x80
jb 0x1401aab96
mov ecx, r15d
mov rdx, rcx
shr rdx, 7
inc eax
cmp rcx, 0x3fff
mov rcx, rdx
ja 0x1401aab84
add r9d, eax
cmp r9d, r13d
jae 0x1401aaea8
add rbp, 0x38
mov rdx, r12
jmp 0x1401aaa0c
test al, 8
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x30], r11
jne 0x1401aaf85
mov ecx, r9d
test al, 2
je 0x1401aad53
movzx r15d, byte [rbx + rcx]
test r15b, r15b
jns 0x1401aabf9
add rcx, rbx
movzx eax, byte [rcx + 1]
test al, al
js 0x1401ab0f4
and r15d, 0x7f
shl r15d, 7
or r15d, eax
cmp r15d, 0xc
jb 0x1401aacd3
test r15b, 1
je 0x1401aacde
lea eax, [r15 - 0xc]
shr eax, 1
mov dword [rsp + 0x68], eax
lea ecx, [rax + r14]
cmp ecx, r8d
ja 0x1401aae81
mov rdx, qword [rdi]
movzx ecx, word [rdx + 8]
cmp r11, rcx
jae 0x1401aae81
mov r8, qword [rdx + r11*8 + 0x20]
test r8, r8
jne 0x1401aafcf
mov ecx, dword [rbp + 0x10]
mov r12d, eax
sub r12d, ecx
cmovl ecx, eax
movsxd r8, ecx
mov rdx, qword [rbp + 8]
mov ecx, r14d
add rcx, rbx
call fcn.1402d1f20
test eax, eax
cmovne r12d, eax
test r12d, r12d
mov r8d, dword [rsp + 0x38]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov r9d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x40]
lea rdx, [0x1404dd7f0]
mov r11, qword [rsp + 0x30]
je 0x1401aab2e
jmp 0x1401aaa79
add r14d, 0xfffffff4
shr r14d, 1
jmp 0x1401aa9dd
lea rcx, [rbx + 1]
lea r15, [rsp + 0x98]
mov rdx, r15
mov esi, r8d
mov r14, r10
call fcn.1403fa330
mov r10, r14
mov r8d, esi
inc al
movzx r9d, al
mov r14d, dword [r15]
jmp 0x1401aa9bd
mov r12d, 0xffffffff
jmp 0x1401aaa79
mov r12d, 1
mov r15d, 7
jmp 0x1401aaa79
movzx ecx, byte [rbx + rax]
shl ecx, 0x18
movzx edx, byte [rbx + rax + 1]
shl edx, 0x10
movsxd rcx, ecx
or rcx, rdx
movzx edx, byte [rbx + rax + 2]
shl edx, 8
or rdx, rcx
movzx eax, byte [rbx + rax + 3]
jmp 0x1401aad2f
movsx rcx, byte [rbx + rax]
shl rcx, 0x10
movzx edx, byte [rbx + rax + 1]
shl edx, 8
or rdx, rcx
movzx eax, byte [rbx + rax + 2]
or rax, rdx
lea rdx, [0x1404dd7f0]
jmp 0x1401aaa6a
setne al
movzx eax, al
lea r12d, [rax*2 - 1]
xor eax, eax
jmp 0x1401aaa7f
movzx r15d, byte [rbx + rcx]
test al, 0x10
jne 0x1401aad95
test r15d, r15d
je 0x1401aad6b
cmp r15d, 0xa
jne 0x1401ab15e
mov r8d, dword [rsp + 0x38]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov r9d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x40]
lea rdx, [0x1404dd7f0]
mov r11, qword [rsp + 0x30]
jmp 0x1401aab2e
mov dword [rsp + 0x54], r15d
test r15b, r15b
jns 0x1401aadb2
add rcx, rbx
lea r15, [rsp + 0x54]
mov rdx, r15
call fcn.1403fa330
mov r15d, dword [r15]
mov r12d, 0xffffffff
cmp r15d, 0xc
jb 0x1401aae50
mov eax, r15d
and eax, 1
jne 0x1401aae50
lea eax, [r15 - 0xc]
mov r12d, eax
shr r12d, 1
lea ecx, [r12 + r14]
cmp ecx, dword [rsp + 0x38]
ja 0x1401aaedd
test byte [rbp + 0x15], 4
jne 0x1401aae17
mov eax, dword [rbp + 0x10]
mov esi, r12d
sub esi, eax
cmovl eax, r12d
movsxd r8, eax
mov rdx, qword [rbp + 8]
mov ecx, r14d
add rcx, rbx
call fcn.1402d1f20
test eax, eax
cmovne esi, eax
mov r12d, esi
jmp 0x1401aac66
test eax, eax
je 0x1401aae3b
mov eax, r14d
add rax, rbx
cmp r12d, 1
mov ecx, r12d
adc ecx, 0
xor edx, edx
cmp byte [rax + rdx], 0
jne 0x1401aae44
inc rdx
cmp rcx, rdx
jne 0x1401aae2d
sub r12d, dword [rbp]
jmp 0x1401aac66
mov r12d, 1
mov r15d, 7
mov r11, qword [rsp + 0x30]
jmp 0x1401aaa79
lea rax, [0x1404dd361]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ecx, ntohl
mov r9d, 0x15ded
jmp 0x1401aaecd
lea rax, [0x1404dd361]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ecx, ntohl
mov r9d, 0x15e3e
jmp 0x1401aaecd
lea rax, [0x1404dd361]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ecx, ntohl
mov r9d, 0x15e8f
call fcn.1401946f0
mov byte [rsi], 0xb
xor r12d, r12d
jmp 0x1401aaaa2
lea rax, [0x1404dd361]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ecx, ntohl
mov r9d, 0x15e5c
call fcn.1401946f0
mov rax, qword [rsp + 0x40]
mov byte [rax], 0xb
jmp 0x1401aaed5
mov ecx, dword [rbx + rax + 2]
bswap ecx
movsx edx, byte [rbx + rax]
shl edx, 8
movzx eax, byte [rbx + rax + 1]
or eax, edx
lea rdx, [0x1404dd7f0]
shl rax, 0x20
jmp 0x1401aaaca
and ecx, 1
mov edx, 1
test al, al
jne 0x1401aaf48
movzx edx, word [rbp + 0x14]
and edx, 1
cmp ecx, edx
je 0x1401aaaa2
jmp 0x1401aaa9f
setne al
movzx eax, al
lea r12d, [rax*2 - 1]
xor eax, eax
mov r11, qword [rsp + 0x30]
mov rbp, rdi
jmp 0x1401aaa7f
mov r12d, 1
mov r11, qword [rsp + 0x30]
mov rbp, rdi
jmp 0x1401aaa79
mov rdi, rbp
mov eax, r9d
movzx r15d, byte [rbx + rax]
cmp r15d, 0xa
jae 0x1401aaf55
mov r12d, 0xffffffff
cmp r15d, 7
je 0x1401ab007
test r15d, r15d
je 0x1401aaf78
mov ecx, r14d
add rcx, rbx
lea r12, [rsp + 0x58]
mov edx, r15d
mov r8, r12
call fcn.1401a87f0
mov rbp, rdi
movsd xmm1, qword [rdi]
mov rcx, qword [r12]
call fcn.1403fa4f0
jmp 0x1401aafff
mov al, byte [rdx + 4]
lea rcx, [rsp + 0x58]
mov byte [rcx + 0x16], al
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x18], rax
mov word [rcx + 0x14], 2
mov eax, r14d
add rax, rbx
mov qword [rcx + 8], rax
mov rdx, rbp
mov r9, qword [rsp + 0x40]
call fcn.1403fbba0
mov r12d, eax
jmp 0x1401aac66
mov ecx, r14d
add rcx, rbx
lea rdx, [rsp + 0x58]
call fcn.1403fe400
mov r15d, 7
test eax, eax
jne 0x1401aaf78
movsd xmm0, qword [rsp + 0x58]
mov rbp, rdi
movsd xmm1, qword [rdi]
ucomisd xmm1, xmm0
mov r11, qword [rsp + 0x30]
ja 0x1401aaa79
mov r15d, 7
ucomisd xmm0, xmm1
ja 0x1401aaf72
mov r8d, dword [rsp + 0x38]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov r9d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x40]
lea rdx, [0x1404dd7f0]
mov r11, qword [rsp + 0x30]
mov rbp, rdi
jmp 0x1401aab2e
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x3c], r9d
mov dword [rsp + 0x38], r8d
mov ecx, r14d
add rcx, rbx
lea r15, [rsp + 0x58]
mov rdx, r15
call fcn.1403fe400
movsd xmm1, qword [r15]
mov rbp, rdi
mov rcx, qword [rdi]
call fcn.1403fa4f0
mov r12d, eax
neg r12d
mov r15d, 7
jmp 0x1401aac66
lea r15, [rsp + 0x94]
mov rcx, rbx
mov rdx, r15
mov esi, r8d
mov r14, r10
call fcn.1403fa330
mov r10, r14
mov r8d, esi
movzx r9d, al
xor r11d, r11d
mov r13d, dword [r15]
jmp 0x1401aab10
mov rdi, rbp
mov rbp, r11
mov r12d, r8d
movsx edx, byte [rcx + 2]
test edx, edx
js 0x1401ab133
and r15d, 0x7f
shl r15d, 0xe
and eax, 0x7f
shl eax, 7
or eax, r15d
or eax, edx
mov r15d, eax
mov r8d, r12d
mov rsi, qword [rsp + 0x40]
mov r11, rbp
mov rbp, rdi
mov rdi, qword [rsp + 0x48]
jmp 0x1401aabf9
lea r15, [rsp + 0x98]
mov qword [r15], r10
mov rdx, r15
call fcn.1401a17a0
mov rax, qword [r15]
mov rcx, rax
shr rcx, 0x20
xor r15d, r15d
neg rcx
sbb r15d, r15d
or r15d, eax
jmp 0x1401ab11b
mov r12d, 1
cmp r15d, 7
jne 0x1401aae50
mov ecx, r14d
add rcx, rbx
lea rdx, [rsp + 0x58]
call fcn.1403fe400
mov r15d, 7
test eax, eax
mov r8d, dword [rsp + 0x38]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov r9d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x40]
lea rdx, [0x1404dd7f0]
mov r11, qword [rsp + 0x30]
jne 0x1401aab2e
jmp 0x1401aaa79