Function at 0x1402d6750
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, 0x58
mov rbx, qword [rcx + 8]
cmp byte [rcx + 0x11], 0
mov r14, qword [rbx]
mov rsi, rcx
mov r12d, edx
mov r13, r8
je 0x1402d6784
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
je 0x1402d68a0
movzx eax, byte [rsi + 0x10]
cmp al, 2
je 0x1402d68b1
cmp al, 1
jne 0x1402d679d
test r12d, r12d
je 0x1402d6cd1
mov rax, qword [rsi]
movzx edx, word [rbx + 0x28]
test byte [rax + 0x33], 2
je 0x1402d6800
cmp byte [r14 + 0x12], 0
jne 0x1402d6800
and edx, 0xfffffffe
mov word [rbx + 0x28], dx
test r12d, r12d
je 0x1402d6813
cmp byte [rbx + 0x24], 2
je 0x1402d6818
test dl, 0x80
jne 0x1402d6818
cmp r12d, 1
jle 0x1402d682b
mov rax, qword [rbx + 0x78]
test rax, rax
jne 0x1402d67e9
jmp 0x1402d682b
mov rax, qword [rax + 0x10]
test rax, rax
je 0x1402d682b
mov rcx, qword [rax]
cmp rcx, rsi
je 0x1402d67e0
mov rax, qword [rcx]
jmp 0x1402d6822
mov eax, edx
and eax, 1
test ax, ax
je 0x1402d67b8
test r12d, r12d
jne 0x1402d692a
test dl, 0x80
je 0x1402d682b
mov rax, qword [rbx + 0x80]
mov rax, qword [rax]
test rax, rax
jne 0x1402d6cf8
cmp byte [rsi + 0x11], 0
mov rax, qword [rsi + 8]
je 0x1402d68f0
cmp rsi, qword [rax + 0x80]
je 0x1402d6848
test byte [rax + 0x28], 0x40
jne 0x1402d687e
mov rax, qword [rax + 0x78]
test rax, rax
jne 0x1402d686d
jmp 0x1402d68f0
mov rax, qword [rax + 0x10]
test rax, rax
je 0x1402d68f0
cmp rsi, qword [rax]
je 0x1402d6860
cmp dword [rax + 8], 1
jne 0x1402d6860
cmp byte [rax + 0xc], 1
je 0x1402d6860
mov ebp, 0x106
sub dword [rsi + 0x14], 1
jne 0x1402d6acf
mov rcx, rsi
call fcn.1403716f0
jmp 0x1402d6acf
call fcn.140237c60
movzx eax, byte [rsi + 0x10]
cmp al, 2
jne 0x1402d6790
test r13, r13
je 0x1402d68c7
mov rax, qword [rbx + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [r13], eax
test r12d, r12d
je 0x1402d68e9
mov rax, qword [rsi]
mov edx, dword [rax + 0x2f0]
cmp edx, dword [r14 + 0x80]
jle 0x1402d68e9
cmp byte [r14 + 0xa], 0
jne 0x1402d6d70
xor ebp, ebp
jmp 0x1402d6ac5
mov r11d, dword [rbx + 0x40]
and edx, 0xffffffef
mov word [rbx + 0x28], dx
test r11d, r11d
je 0x1402d6c88
mov rdi, qword [rbx + 0x18]
test rdi, rdi
je 0x1402d6938
test r12d, r12d
je 0x1402d6c98
test byte [rbx + 0x28], 1
je 0x1402d6b10
cmp byte [rbx + 0x24], 0
je 0x1402d6b00
mov ebp, 8
jmp 0x1402d6ac5
mov rcx, qword [rbx]
call fcn.1403152c0
test eax, eax
mov ebp, eax
movzx r15d, al
jne 0x1402d6a4e
xor r9d, r9d
mov edx, 1
mov rcx, rbx
lea r8, [rsp + 0x48]
call fcn.140237470
test eax, eax
mov ebp, eax
jne 0x1402d6a4a
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rbx]
mov r8, qword [rdi + 0x50]
mov r9d, dword [rcx + 0x20]
mov eax, dword [r8 + 0x1c]
mov r15d, r9d
test eax, eax
je 0x1402d6996
mov edx, dword [r8 + 0x18]
cmp dword [r8 + 0x5c], edx
je 0x1402d6d80
mov rax, qword [rbx + 8]
test byte [rax + 0x33], 2
jne 0x1402d69a9
test r15d, r15d
jne 0x1402d6e28
mov eax, dword [rbx + 0x38]
xor r15d, r15d
lea ecx, [rax - 0xc]
mov r8d, 0x80808081
mov qword [rbx + 0x18], rdi
movq xmm0, qword [0x140475a80]
mov edx, ecx
shl ecx, 6
mov dword [rbx + 0x40], r15d
imul rcx, r8
shl edx, 5
imul rdx, r8
movzx r8d, ax
shr rcx, 0x27
shr rdx, 0x27
movzx ecx, cx
movzx edx, dx
mov rax, rdx
shl rax, 0x10
or rax, r8
shl rax, 0x10
or rax, rdx
mov edx, 0x7f
shl rax, 0x10
or rax, rcx
movq xmm1, rax
paddw xmm0, xmm1
pextrw eax, xmm0, 0
cmp ax, dx
movq qword [rbx + 0x2a], xmm0
cmova eax, edx
mov byte [rbx + 0x25], al
jmp 0x1402d6908
add dword [rdi + 0x298], 1
cmp qword [rbx + 0x18], 0
je 0x1402d6938
test ebp, ebp
je 0x1402d6c98
movzx r15d, bpl
cmp byte [rbx + 0x24], 0
jne 0x1402d6a84
mov rdi, qword [rbx + 0x18]
test rdi, rdi
je 0x1402d6a84
mov rcx, qword [rdi + 0x70]
mov qword [rbx + 0x18], 0
mov rdi, qword [rcx + 0x28]
call fcn.140316d20
mov rax, qword [rdi + 0x120]
cmp qword [rax + 0x18], 0
je 0x1402d6c40
cmp r15d, 5
jne 0x1402d6ac5
cmp byte [rbx + 0x24], 0
jne 0x1402d6ac5
mov rdi, qword [rbx + 8]
mov rax, qword [rdi + 0x288]
test rax, rax
je 0x1402d6ac5
mov edx, dword [rdi + 0x298]
test edx, edx
js 0x1402d6ac5
mov rcx, qword [rdi + 0x290]
call rax
test eax, eax
jne 0x1402d6a30
mov dword [rdi + 0x298], 0xffffffff
cmp byte [rsi + 0x11], 0
jne 0x1402d6883
mov eax, ebp
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rbx + 0x24], 0
jne 0x1402d692a
mov rdi, qword [rbx + 0x18]
test rdi, rdi
je 0x1402d692a
nop dword [rax]
mov r15d, 8
mov ebp, 8
jmp 0x1402d6a5d
mov ebp, dword [r14 + 0x30]
mov rax, qword [rsi]
test ebp, ebp
movzx eax, byte [rax + 0x66]
jne 0x1402d6bd8
cmp al, 2
sete byte [r14 + 0x1a]
cmp byte [r14 + 0x15], 1
je 0x1402d6b40
mov rcx, rbx
call fcn.1402aa110
mov ebp, eax
jmp 0x1402d6a42
mov rdi, qword [r14 + 0x128]
test rdi, rdi
je 0x1402d6e7c
cmp byte [r14 + 8], 0
je 0x1402d6b9f
cmp byte [rdi + 0x3f], 0
jne 0x1402d6d90
mov edx, 4
mov rcx, r14
call fcn.1402acd30
test eax, eax
mov ebp, eax
jne 0x1402d6bd8
mov rbp, qword [r14 + 0x128]
cmp byte [rbp + 0x3f], 0
mov rdi, rbp
jne 0x1402d6b9b
movsx edx, word [rbp + 0x3c]
mov rcx, qword [rbp + 8]
add edx, 3
call fcn.14037b770
mov rdi, qword [r14 + 0x128]
mov byte [rbp + 0x3f], 1
cmp byte [rdi + 0x42], 0
jne 0x1402d6ae2
cmp byte [rdi + 0x3f], 0
jne 0x1402d6d9a
mov rcx, qword [rdi + 8]
xor edx, edx
mov r9d, 0xa
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x70]
test eax, eax
mov ebp, eax
je 0x1402d6d9a
nop dword [rax]
cmp ebp, 0x205
jne 0x1402d6a4a
cmp byte [rbx + 0x24], 0
jne 0x1402d6d60
mov rax, qword [rbx + 0x18]
mov ebp, 5
test rax, rax
je 0x1402d6a90
mov rcx, qword [rax + 0x70]
mov qword [rbx + 0x18], 0
mov ebp, 5
mov rdi, qword [rcx + 0x28]
call fcn.140316d20
mov rax, qword [rdi + 0x120]
cmp qword [rax + 0x18], 0
jne 0x1402d6a8a
mov r15d, 5
mov ebp, 5
nop word [rax + rax]
movzx eax, byte [rdi + 0x15]
cmp al, 6
je 0x1402d6c78
test al, al
je 0x1402d6c78
cmp al, 1
je 0x1402d6e60
mov rax, qword [0x1403982c0]
test rax, rax
je 0x1402d6c62
call rax
mov rcx, rdi
call fcn.140314d10
mov rax, qword [0x1403982c8]
test rax, rax
je 0x1402d6c78
call rax
mov rcx, rdi
call fcn.1402b08e0
jmp 0x1402d6a84
or edx, 0x10
mov word [rbx + 0x28], dx
jmp 0x1402d6904
cmp byte [rsi + 0x10], 0
jne 0x1402d6cbc
add dword [rbx + 0x3c], 1
cmp byte [rsi + 0x11], 0
je 0x1402d6cbc
mov byte [rsi + 0x3c], 1
mov rax, qword [rbx + 0x78]
mov qword [rsi + 0x40], rax
lea rax, [rsi + 0x30]
mov qword [rbx + 0x78], rax
test r12d, r12d
movzx eax, byte [rbx + 0x24]
jne 0x1402d6d08
test al, al
mov byte [rsi + 0x10], 1
jne 0x1402d6cd1
mov byte [rbx + 0x24], 1
test r13, r13
je 0x1402d68e9
mov rax, qword [rbx + 0x18]
xor ebp, ebp
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [r13], eax
jmp 0x1402d6ac5
mov ebp, 0x106
jmp 0x1402d6ac5
cmp al, 1
mov byte [rsi + 0x10], 2
ja 0x1402d6d14
mov byte [rbx + 0x24], 2
movzx eax, word [rbx + 0x28]
mov qword [rbx + 0x80], rsi
mov rdi, qword [rbx + 0x18]
mov edx, eax
or eax, 0x40
and edx, 0xffffffbf
cmp r12d, 1
cmovg edx, eax
mov word [rbx + 0x28], dx
mov rdx, qword [rdi + 0x50]
mov eax, dword [rdx + 0x1c]
bswap eax
cmp dword [rbx + 0x40], eax
jne 0x1402d6de5
test r13, r13
je 0x1402d68cc
mov eax, dword [rdx + 0x28]
bswap eax
mov dword [r13], eax
jmp 0x1402d68cc
mov ebp, 0x205
jmp 0x1402d6ac5
mov rcx, r14
call fcn.1402acd80
mov ebp, eax
jmp 0x1402d6ac5
bswap eax
mov r15d, eax
jmp 0x1402d6996
cmp byte [rdi + 0x42], 0
jne 0x1402d6ae2
mov rax, qword [rdi + 0x30]
mov byte [rdi + 0x40], 1
lea rcx, [rdi + 0x48]
mov r8d, 0x30
mov rdx, qword [rax]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1402d6ef5
movd xmm0, dword [r14 + 0x20]
mov byte [r14 + 0x15], 2
mov qword [r14 + 0x60], 0
movd dword [r14 + 0x2c], xmm0
pshufd xmm0, xmm0, 0xe0
movq qword [r14 + 0x24], xmm0
jmp 0x1402d6b31
mov rcx, qword [rdi + 0x70]
call fcn.140315c70
test eax, eax
mov ebp, eax
jne 0x1402d6ac5
mov eax, dword [rbx + 0x40]
test r13, r13
mov rdx, qword [rdi + 0x50]
bswap eax
mov dword [rdx + 0x1c], eax
je 0x1402d68cc
mov rax, qword [rbx + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [r13], eax
jmp 0x1402d68cc
movabs rax, 0x66206574694c5153
cmp qword [r8], rax
je 0x1402d6f1c
mov r15d, 0x1a
mov ebp, 0x1a
mov rcx, qword [rdi + 0x70]
call fcn.140315be0
mov qword [rbx + 0x18], 0
jmp 0x1402d6a84
cmp byte [rdi + 8], 0
jne 0x1402d6c78
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1402af440
jmp 0x1402d6c78
mov edx, 2
mov rcx, r14
call fcn.1402acd30
cmp r12d, 1
mov ebp, eax
jle 0x1402d70ff
test eax, eax
jne 0x1402d6bd8
jmp 0x1402d6ed3
mov rcx, qword [r14 + 0x48]
mov edx, 4
mov rax, qword [rcx]
call qword [rax + 0x38]
test eax, eax
mov ebp, eax
je 0x1402d6eeb
cmp eax, 5
jne 0x1402d6bd8
mov rcx, qword [r14 + 0xf0]
call qword [r14 + 0xe8]
test eax, eax
je 0x1402d6a4a
movzx eax, byte [r14 + 0x16]
cmp al, 5
je 0x1402d6ee4
cmp al, 3
ja 0x1402d6dbc
cmp byte [r14 + 0x11], 0
je 0x1402d6e9f
mov byte [r14 + 0x16], 4
jmp 0x1402d6dbc
cmp byte [rdi + 0x3f], 0
jne 0x1402d6f13
mov rcx, qword [rdi + 8]
mov r9d, 9
mov r8d, 1
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x70]
mov byte [rdi + 0x40], 0
jmp 0x1402d6be4
movabs rax, 0x332074616d726f
cmp qword [r8 + 8], rax
jne 0x1402d6e3b
cmp byte [r8 + 0x12], 2
jbe 0x1402d6f3c
or word [rbx + 0x28], 1
cmp byte [r8 + 0x13], 2
ja 0x1402d6e3b
je 0x1402d6ff1
cmp word [r8 + 0x15], 0x2040
jne 0x1402d6e3b
cmp byte [r8 + 0x17], 0x20
jne 0x1402d6e3b
movzx edx, byte [r8 + 0x10]
movzx eax, byte [r8 + 0x11]
shl edx, 8
shl eax, 0x10
or edx, eax
lea eax, [rdx - 1]
test eax, edx
jne 0x1402d6e3b
lea eax, [rdx - 0x101]
cmp eax, 0xfeff
ja 0x1402d6e3b
or word [rbx + 0x28], 2
mov eax, edx
movzx ebp, byte [r8 + 0x14]
sub eax, ebp
cmp edx, dword [rbx + 0x34]
jne 0x1402d704b
cmp r9d, r15d
jae 0x1402d6fca
mov rdx, qword [rbx + 8]
mov r15d, r9d
mov rdx, qword [rdx + 0x30]
and edx, 0x10000001
cmp rdx, 1
jne 0x1402d70c5
cmp eax, 0x1df
jbe 0x1402d6e3b
mov dword [rbx + 0x38], eax
mov edx, dword [r8 + 0x34]
test edx, edx
setne byte [rbx + 0x21]
mov ecx, dword [r8 + 0x40]
test ecx, ecx
setne byte [rbx + 0x22]
jmp 0x1402d69af
test byte [rbx + 0x28], 0x20
jne 0x1402d6f4d
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x44], 0
call fcn.140314c80
mov r8, qword [rsp + 0x30]
test eax, eax
mov r9d, dword [rsp + 0x3c]
mov ebp, eax
jne 0x1402d70bc
mov r10d, dword [rsp + 0x44]
test r10d, r10d
jne 0x1402d6f4d
mov rcx, qword [rdi + 0x70]
call fcn.140315be0
mov rdi, qword [rbx + 0x18]
jmp 0x1402d6908
mov rcx, qword [rdi + 0x70]
mov dword [rsp + 0x3c], eax
lea rdi, [rbx + 0x34]
mov dword [rsp + 0x30], edx
call fcn.140315be0
mov edx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rbx + 0x88]
movd xmm0, edx
movd xmm2, eax
test rcx, rcx
punpckldq xmm0, xmm2
movq qword [rbx + 0x34], xmm0
je 0x1402d709f
sub rcx, 4
mov qword [rbx + 0x88], rcx
call fcn.1402b2a20
xor r8d, r8d
mov qword [rbx + 0x88], r8
mov rcx, qword [rbx]
mov r8d, ebp
mov rdx, rdi
call fcn.140315090
test eax, eax
mov ebp, eax
je 0x1402d6904
jmp 0x1402d6a4a
movzx r15d, al
jmp 0x1402d6e46
mov r9d, 0x1182e
mov ecx, 0xb
mov r15d, 0xb
lea rax, [0x1404693fc]
mov ebp, 0xb
mov qword [rsp + 0x20], rax
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
call fcn.14035c5b0
jmp 0x1402d6e46
test eax, eax
je 0x1402d6dbc
jmp 0x1402d6bd8