Function at 0x1401c1ef0
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 0x1401c1f24
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
je 0x1401c2030
movzx eax, byte [rsi + 0x10]
cmp al, 2
je 0x1401c2041
cmp al, 1
jne 0x1401c1f3d
test r12d, r12d
je 0x1401c245d
mov rdx, qword [rsi]
movzx eax, word [rbx + 0x28]
test byte [rdx + 0x33], 2
je 0x1401c1fa0
cmp byte [r14 + 0x12], 0
jne 0x1401c1fa0
and eax, 0xfffffffe
mov word [rbx + 0x28], ax
test r12d, r12d
je 0x1401c1faf
cmp byte [rbx + 0x24], 2
je 0x1401c1fb3
test al, 0x80
jne 0x1401c1fb3
cmp r12d, 1
jle 0x1401c1fcb
mov rax, qword [rbx + 0x78]
test rax, rax
jne 0x1401c1f89
jmp 0x1401c1fcb
mov rax, qword [rax + 0x10]
test rax, rax
je 0x1401c1fcb
mov rdx, qword [rax]
cmp rdx, rsi
je 0x1401c1f80
mov rax, qword [rdx]
jmp 0x1401c1fbd
mov edx, eax
and edx, 1
test dx, dx
je 0x1401c1f58
test r12d, r12d
jne 0x1401c2026
test al, 0x80
je 0x1401c1fcb
mov rax, qword [rbx + 0x80]
mov rax, qword [rax]
test rax, rax
mov edi, 0x106
jne 0x1401c21f5
mov r8d, 1
mov edx, 1
mov rcx, rsi
call fcn.140149f00
test eax, eax
mov edi, eax
jne 0x1401c21f5
movzx eax, word [rbx + 0x28]
mov r9d, dword [rbx + 0x40]
and eax, 0xffffffef
test r9d, r9d
mov word [rbx + 0x28], ax
je 0x1401c2388
mov rbp, qword [rbx + 0x18]
test rbp, rbp
je 0x1401c2070
test r12d, r12d
je 0x1401c2420
test byte [rbx + 0x28], 1
je 0x1401c2240
cmp byte [rbx + 0x24], 0
je 0x1401c2230
mov edi, 8
jmp 0x1401c21f5
call fcn.140154d30
movzx eax, byte [rsi + 0x10]
cmp al, 2
jne 0x1401c1f30
test r13, r13
je 0x1401c2057
mov rax, qword [rbx + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [r13], eax
test r12d, r12d
jne 0x1401c23f0
xor edi, edi
jmp 0x1401c21f5
mov rcx, qword [rbx]
call fcn.1401c17a0
test eax, eax
mov edi, eax
movzx r15d, al
jne 0x1401c217e
xor r9d, r9d
mov edx, 1
mov rcx, rbx
lea r8, [rsp + 0x48]
call fcn.14014a200
test eax, eax
mov edi, eax
jne 0x1401c217a
mov rbp, qword [rsp + 0x48]
mov rcx, qword [rbx]
mov r8, qword [rbp + 0x50]
mov r9d, dword [rcx + 0x20]
mov eax, dword [r8 + 0x1c]
mov r15d, r9d
test eax, eax
je 0x1401c20ce
mov edi, dword [r8 + 0x5c]
cmp dword [r8 + 0x18], edi
je 0x1401c24a0
mov rax, qword [rbx + 8]
test byte [rax + 0x33], 2
jne 0x1401c20e1
test r15d, r15d
jne 0x1401c25a8
mov edi, dword [rbx + 0x38]
xor r15d, r15d
lea ecx, [rdi - 0xc]
mov r8d, 0x80808081
mov qword [rbx + 0x18], rbp
movq xmm0, qword [0x1403b6200]
mov edx, ecx
shl ecx, 6
mov dword [rbx + 0x40], r15d
imul rcx, r8
shl edx, 5
imul rdx, r8
movzx r8d, di
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 0x1401c2004
add dword [rbp + 0x288], 1
cmp qword [rbx + 0x18], 0
je 0x1401c2070
test edi, edi
je 0x1401c2420
movzx r15d, dil
cmp byte [rbx + 0x24], 0
jne 0x1401c21b4
mov rbp, qword [rbx + 0x18]
test rbp, rbp
je 0x1401c21b4
mov rcx, qword [rbp + 0x70]
mov qword [rbx + 0x18], 0
mov rbp, qword [rcx + 0x28]
call fcn.140153720
mov rax, qword [rbp + 0x120]
cmp qword [rax + 0x18], 0
je 0x1401c2378
cmp r15d, 5
jne 0x1401c21f5
cmp byte [rbx + 0x24], 0
jne 0x1401c21f5
mov rbp, qword [rbx + 8]
mov rax, qword [rbp + 0x278]
test rax, rax
je 0x1401c21f5
mov edx, dword [rbp + 0x288]
test edx, edx
js 0x1401c21f5
mov rcx, qword [rbp + 0x280]
call rax
test eax, eax
jne 0x1401c2160
mov dword [rbp + 0x288], 0xffffffff
cmp byte [rsi + 0x11], 0
je 0x1401c2205
sub dword [rsi + 0x14], 1
je 0x1401c2480
mov eax, edi
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 0x1401c2026
mov rbp, qword [rbx + 0x18]
test rbp, rbp
je 0x1401c2026
nop
mov r15d, 8
mov edi, 8
jmp 0x1401c218d
mov edi, dword [r14 + 0x30]
mov rax, qword [rsi]
test edi, edi
movzx eax, byte [rax + 0x66]
jne 0x1401c2318
cmp al, 2
sete byte [r14 + 0x1a]
cmp byte [r14 + 0x15], 1
je 0x1401c2270
mov rcx, rbx
call fcn.1401a9360
mov edi, eax
jmp 0x1401c2172
mov rbp, qword [r14 + 0x128]
test rbp, rbp
je 0x1401c2546
cmp byte [r14 + 8], 0
je 0x1401c22dc
cmp byte [rbp + 0x3f], 0
jne 0x1401c24b0
mov edx, 4
mov rcx, r14
call fcn.140149b10
test eax, eax
mov edi, eax
jne 0x1401c2318
mov rdi, qword [r14 + 0x128]
cmp byte [rdi + 0x3f], 0
mov rbp, rdi
jne 0x1401c22d8
mov rcx, qword [rdi + 8]
mov r9d, 5
mov r8d, 1
movsx edx, word [rdi + 0x3c]
mov rax, qword [rcx]
add edx, 3
call qword [rax + 0x70]
mov rbp, qword [r14 + 0x128]
mov byte [rdi + 0x3f], 1
cmp byte [rbp + 0x42], 0
jne 0x1401c2218
cmp byte [rbp + 0x3f], 0
jne 0x1401c24ba
mov rcx, qword [rbp + 8]
xor edx, edx
mov r9d, 0xa
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x70]
test eax, eax
mov edi, eax
je 0x1401c24ba
nop word [rax + rax]
cmp edi, 0x205
jne 0x1401c217a
cmp byte [rbx + 0x24], 0
jne 0x1401c2490
mov rax, qword [rbx + 0x18]
mov edi, 5
test rax, rax
je 0x1401c21c0
mov rcx, qword [rax + 0x70]
mov qword [rbx + 0x18], 0
mov rdi, qword [rcx + 0x28]
call fcn.140153720
mov rax, qword [rdi + 0x120]
cmp qword [rax + 0x18], 0
je 0x1401c26f4
mov edi, 5
jmp 0x1401c21ba
mov rcx, rbp
call fcn.1401a8a00
jmp 0x1401c21b4
or eax, 0x10
mov word [rbx + 0x28], ax
jmp 0x1401c2000
cmp al, 1
mov byte [rsi + 0x10], 2
ja 0x1401c23a4
mov byte [rbx + 0x24], 2
movzx eax, word [rbx + 0x28]
mov qword [rbx + 0x80], rsi
mov rbp, 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 [rbp + 0x50]
mov eax, dword [rdx + 0x1c]
bswap eax
cmp dword [rbx + 0x40], eax
jne 0x1401c2508
test r13, r13
je 0x1401c23f0
mov eax, dword [rdx + 0x28]
bswap eax
mov dword [r13], eax
nop word cs:[rax + rax]
mov rax, qword [rsi]
mov edx, dword [rax + 0x2e0]
cmp edx, dword [r14 + 0x80]
jle 0x1401c2060
cmp byte [r14 + 0xa], 0
je 0x1401c2060
mov rcx, r14
call fcn.140159480
mov edi, eax
jmp 0x1401c21f5
cmp byte [rsi + 0x10], 0
jne 0x1401c2444
add dword [rbx + 0x3c], 1
cmp byte [rsi + 0x11], 0
je 0x1401c2444
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 0x1401c2398
test al, al
mov byte [rsi + 0x10], 1
jne 0x1401c245d
mov byte [rbx + 0x24], 1
test r13, r13
je 0x1401c2060
mov rax, qword [rbx + 0x18]
xor edi, edi
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [r13], eax
jmp 0x1401c21f5
mov rcx, rsi
call fcn.140149ec0
jmp 0x1401c2205
mov edi, 0x205
jmp 0x1401c21f5
bswap eax
mov r15d, eax
jmp 0x1401c20ce
cmp byte [rbp + 0x42], 0
jne 0x1401c2218
mov rax, qword [rbp + 0x30]
mov byte [rbp + 0x40], 1
lea rcx, [rbp + 0x48]
mov r8d, 0x30
mov rdx, qword [rax]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1401c257a
cmp byte [rbp + 0x3f], 0
jne 0x1401c24fa
mov rcx, qword [rbp + 8]
mov r9d, 9
mov r8d, 1
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x70]
mov byte [rbp + 0x40], 0
jmp 0x1401c2324
mov rcx, qword [rbp + 0x70]
call fcn.1401a73f0
test eax, eax
mov edi, eax
jne 0x1401c21f5
mov eax, dword [rbx + 0x40]
test r13, r13
mov rdx, qword [rbp + 0x50]
bswap eax
mov dword [rdx + 0x1c], eax
je 0x1401c23f0
mov rax, qword [rbx + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x28]
bswap eax
mov dword [r13], eax
jmp 0x1401c23f0
mov edx, 2
mov rcx, r14
call fcn.140149b10
cmp r12d, 1
mov edi, eax
jle 0x1401c2572
test eax, eax
jne 0x1401c2318
mov edx, 4
mov rcx, r14
call fcn.140157540
mov edi, eax
test edi, edi
jne 0x1401c2318
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 0x1401c2261
movabs rax, 0x66206574694c5153
cmp qword [r8], rax
je 0x1401c25ee
mov r15d, 0x1a
mov edi, 0x1a
mov rcx, qword [rbp + 0x70]
mov rbp, qword [rcx + 0x28]
call fcn.140153720
mov rax, qword [rbp + 0x120]
cmp qword [rax + 0x18], 0
je 0x1401c26e7
mov qword [rbx + 0x18], 0
jmp 0x1401c21b4
movabs rax, 0x332074616d726f
cmp qword [r8 + 8], rax
jne 0x1401c25b7
cmp byte [r8 + 0x12], 2
jbe 0x1401c260a
or word [rbx + 0x28], 1
cmp byte [r8 + 0x13], 2
ja 0x1401c25b7
jne 0x1401c261d
test byte [rbx + 0x28], 0x20
je 0x1401c2701
mov edx, 3
mov rcx, rbx
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x30], r8
call fcn.14014a270
mov r9d, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x30]
cmp word [r8 + 0x15], 0x2040
jne 0x1401c25b7
cmp byte [r8 + 0x17], 0x20
jne 0x1401c25b7
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 0x1401c25b7
lea eax, [rdx - 0x101]
cmp eax, 0xfeff
ja 0x1401c25b7
movzx eax, byte [r8 + 0x14]
mov edi, edx
sub edi, eax
cmp edx, dword [rbx + 0x34]
mov dword [rsp + 0x30], eax
jne 0x1401c273a
cmp r9d, r15d
jae 0x1401c26ba
mov rdx, qword [rbx + 8]
mov r15d, r9d
mov rdx, qword [rdx + 0x30]
and edx, 0x10000001
cmp rdx, 1
jne 0x1401c282b
cmp edi, 0x1df
jbe 0x1401c25b7
or word [rbx + 0x28], 2
mov dword [rbx + 0x38], edi
mov eax, dword [r8 + 0x34]
test eax, eax
setne byte [rbx + 0x21]
mov edx, dword [r8 + 0x40]
test edx, edx
setne byte [rbx + 0x22]
jmp 0x1401c20e7
mov rcx, rbp
call fcn.1401a8a00
jmp 0x1401c25e1
mov rcx, rdi
call fcn.1401a8a00
jmp 0x1401c2367
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x44], 0
call fcn.140160e20
mov r8, qword [rsp + 0x30]
test eax, eax
mov r9d, dword [rsp + 0x3c]
mov edi, eax
je 0x1401c27bf
movzx r15d, al
jmp 0x1401c25c2
mov rcx, qword [rbp + 0x70]
mov dword [rsp + 0x3c], edx
mov rbp, qword [rcx + 0x28]
call fcn.140153720
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rbp + 0x120]
cmp qword [rcx + 0x18], 0
je 0x1401c281a
mov rcx, qword [rbx + 0x88]
lea rbp, [rbx + 0x34]
movd xmm0, edx
movd xmm2, edi
or word [rbx + 0x28], 2
punpckldq xmm0, xmm2
movq qword [rbx + 0x34], xmm0
test rcx, rcx
je 0x1401c27a0
sub rcx, 4
mov qword [rbx + 0x88], rcx
call fcn.1401500b0
xor ecx, ecx
mov qword [rbx + 0x88], rcx
mov rcx, qword [rbx]
mov rdx, rbp
mov r8d, dword [rsp + 0x30]
call fcn.1401607d0
test eax, eax
mov edi, eax
je 0x1401c2000
jmp 0x1401c217a
mov edx, 2
mov rcx, rbx
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x30], r8
call fcn.14014a270
mov r8d, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x3c]
test r8d, r8d
mov r8, qword [rsp + 0x30]
jne 0x1401c263e
mov rcx, qword [rbp + 0x70]
mov rdi, qword [rcx + 0x28]
call fcn.140153720
mov rax, qword [rdi + 0x120]
cmp qword [rax + 0x18], 0
jne 0x1401c2000
mov rcx, rdi
call fcn.1401a8a00
jmp 0x1401c2000
mov rcx, rbp
call fcn.1401a8a00
mov edx, dword [rsp + 0x3c]
jmp 0x1401c2761
mov r9d, 0x11f05
mov ecx, 0xb
mov r15d, 0xb
lea rax, [0x1403a344c]
mov edi, 0xb
mov qword [rsp + 0x20], rax
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
call fcn.14018e940
jmp 0x1401c25c2