Function at 0x1401c5240
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 [0x140430040]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rbp, qword [rdi + 8]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x88], r10
movapd xmm0, xmmword [0x1403d4b30]
movupd xmmword [rsp + 0x78], xmm0
movupd xmmword [rsp + 0x68], xmm0
test r9d, r9d
je 0x1401c53f1
movzx r14d, byte [rbx + 1]
mov dword [rsp + 0x98], r14d
mov r9d, 2
test r14b, r14b
js 0x1401c55a4
movzx r13d, byte [rbx]
cmp r14d, 0x80
jae 0x1401c5598
mov eax, r14d
lea rcx, [0x14040fca0]
movzx r14d, byte [rax + rcx]
add r14d, r13d
add rbp, 0x38
mov r11d, 1
lea rsi, [rdi + 0x1f]
cmp r14d, r8d
ja 0x1401c5780
mov qword [rsp + 0x58], 0xffffffffffffffff
lea rdx, [0x14040fca0]
mov qword [rsp + 0x48], rdi
movzx eax, word [rbp + 0x14]
test al, 0x24
je 0x1401c54ad
mov eax, r9d
movzx r15d, byte [rbx + rax]
cmp r15d, 0xa
jae 0x1401c563d
mov r12d, 0xffffffff
test r15d, r15d
je 0x1401c5379
mov rdi, rbp
cmp r15d, 7
je 0x1401c5984
lea ecx, [r15 - 1]
cmp ecx, 5
ja case.default.0x1401c5363
mov rbp, r11
mov eax, r14d
lea r11, [0x140418818]
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 0x1401c542b
test r15d, r15d
sete al
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x18]
mov edx, r11d
mov cl, byte [rcx + rdx]
test cl, cl
je 0x1401c53a1
test cl, 2
jne 0x1401c595d
neg r12d
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
cmp rcx, qword [0x140430040]
je 0x1401c53ce
call fcn.140278ca0
int3
movsx rcx, byte [rbx + rax]
shl rcx, 8
movzx eax, byte [rbx + rax + 1]
or rax, rcx
jmp 0x1401c536a
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 0x1401c536a
movzx r13d, byte [rbx]
mov dword [rsp + 0x94], r13d
test r13b, r13b
js 0x1401c59cc
mov r9d, 1
xor r11d, r11d
mov r14d, r13d
jmp 0x1401c52ea
lea eax, [r15 - 8]
jmp 0x1401c536d
mov r12d, 1
jmp 0x1401c5379
jg 0x1401c5420
inc r11
mov rdi, qword [rsp + 0x48]
movzx eax, word [rdi + 0x1c]
cmp r11, rax
jne 0x1401c5455
mov byte [rdi + 0x22], 1
movsx r12d, byte [rdi + 0x1e]
jmp 0x1401c53a1
mov eax, r15d
movzx eax, byte [rax + rdx]
jmp 0x1401c5464
cmp r15d, 0x80
jb 0x1401c544c
lea eax, [r15 - 0xc]
shr eax, 1
add r14d, eax
cmp r14d, r8d
ja 0x1401c543e
mov r12, rdx
mov eax, 1
cmp r15d, 0x80
jb 0x1401c5495
mov ecx, r15d
mov rdx, rcx
shr rdx, 7
inc eax
cmp rcx, 0x3fff
mov rcx, rdx
ja 0x1401c5483
add r9d, eax
cmp r9d, r13d
jae 0x1401c57a7
add rbp, 0x38
mov rdx, r12
jmp 0x1401c530c
test al, 8
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x30], r11
jne 0x1401c5864
mov ecx, r9d
test al, 2
je 0x1401c5652
movzx r15d, byte [rbx + rcx]
test r15b, r15b
jns 0x1401c54f8
add rcx, rbx
movzx eax, byte [rcx + 1]
test al, al
js 0x1401c59fa
and r15d, 0x7f
shl r15d, 7
or r15d, eax
cmp r15d, 0xc
jb 0x1401c55d2
test r15b, 1
je 0x1401c55dd
lea eax, [r15 - 0xc]
shr eax, 1
mov dword [rsp + 0x68], eax
lea ecx, [rax + r14]
cmp ecx, r8d
ja 0x1401c5759
mov rdx, qword [rdi]
movzx ecx, word [rdx + 8]
cmp r11, rcx
jae 0x1401c5759
mov r8, qword [rdx + r11*8 + 0x20]
test r8, r8
jne 0x1401c58ae
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.1402b6270
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, [0x14040fca0]
mov r11, qword [rsp + 0x30]
je 0x1401c542d
jmp 0x1401c5379
add r14d, 0xfffffff4
shr r14d, 1
jmp 0x1401c52dd
lea rcx, [rbx + 1]
lea r15, [rsp + 0x98]
mov rdx, r15
mov esi, r8d
mov r14, r10
call fcn.14035ea40
mov r10, r14
mov r8d, esi
inc al
movzx r9d, al
mov r14d, dword [r15]
jmp 0x1401c52bd
mov r12d, 0xffffffff
jmp 0x1401c5379
mov r12d, 1
mov r15d, 7
jmp 0x1401c5379
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 0x1401c562e
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, [0x14040fca0]
jmp 0x1401c536a
setne al
movzx eax, al
lea r12d, [rax*2 - 1]
xor eax, eax
jmp 0x1401c537f
movzx r15d, byte [rbx + rcx]
test al, 0x10
jne 0x1401c5694
test r15d, r15d
je 0x1401c566a
cmp r15d, 0xa
jne 0x1401c5a64
mov r8d, dword [rsp + 0x38]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov r9d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x40]
lea rdx, [0x14040fca0]
mov r11, qword [rsp + 0x30]
jmp 0x1401c542d
mov dword [rsp + 0x54], r15d
test r15b, r15b
jns 0x1401c56b1
add rcx, rbx
lea r15, [rsp + 0x54]
mov rdx, r15
call fcn.14035ea40
mov r15d, dword [r15]
mov r12d, 0xffffffff
cmp r15d, 0xc
jb 0x1401c574f
mov eax, r15d
and eax, 1
jne 0x1401c574f
lea eax, [r15 - 0xc]
mov r12d, eax
shr r12d, 1
lea ecx, [r12 + r14]
cmp ecx, dword [rsp + 0x38]
ja 0x1401c57dc
test byte [rbp + 0x15], 4
jne 0x1401c5716
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.1402b6270
test eax, eax
cmovne esi, eax
mov r12d, esi
jmp 0x1401c5565
test eax, eax
je 0x1401c573a
mov eax, r14d
add rax, rbx
cmp r12d, 1
mov ecx, r12d
adc ecx, 0
xor edx, edx
cmp byte [rax + rdx], 0
jne 0x1401c5743
inc rdx
cmp rcx, rdx
jne 0x1401c572c
sub r12d, dword [rbp]
jmp 0x1401c5565
mov r12d, 1
mov r15d, 7
mov r11, qword [rsp + 0x30]
jmp 0x1401c5379
lea rax, [0x14040f811]
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 0x1401c57cc
lea rax, [0x14040f811]
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 0x1401c57cc
lea rax, [0x14040f811]
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.1401aeb90
mov byte [rsi], listen
xor r12d, r12d
jmp 0x1401c53a1
lea rax, [0x14040f811]
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.1401aeb90
mov rax, qword [rsp + 0x40]
mov byte [rax], listen
jmp 0x1401c57d4
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, [0x14040fca0]
shl rax, 0x20
jmp 0x1401c53c9
setne al
movzx eax, al
lea r12d, [rax*2 - 1]
xor eax, eax
mov r11, qword [rsp + 0x30]
mov rbp, rdi
jmp 0x1401c537f
mov r12d, 1
mov r11, qword [rsp + 0x30]
mov rbp, rdi
jmp 0x1401c5379
mov rdi, rbp
mov eax, r9d
movzx r15d, byte [rbx + rax]
cmp r15d, 0xa
jae 0x1401c5834
mov r12d, 0xffffffff
cmp r15d, 7
je 0x1401c58e6
test r15d, r15d
je 0x1401c5857
mov ecx, r14d
add rcx, rbx
lea r12, [rsp + 0x58]
mov edx, r15d
mov r8, r12
call fcn.1401c30c0
mov rbp, rdi
movsd xmm1, qword [rdi]
mov rcx, qword [r12]
call fcn.14035ec00
jmp 0x1401c58de
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.1403602c0
mov r12d, eax
jmp 0x1401c5565
mov ecx, r14d
add rcx, rbx
lea rdx, [rsp + 0x58]
call fcn.140362b40
mov r15d, 7
test eax, eax
jne 0x1401c5857
movsd xmm0, qword [rsp + 0x58]
mov rbp, rdi
movsd xmm1, qword [rdi]
ucomisd xmm1, xmm0
mov r11, qword [rsp + 0x30]
ja 0x1401c5379
mov r15d, 7
ucomisd xmm0, xmm1
ja 0x1401c5851
mov r8d, dword [rsp + 0x38]
movabs r10, 0xaaaaaaaaaaaaaaaa
mov r9d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x40]
lea rdx, [0x14040fca0]
mov r11, qword [rsp + 0x30]
mov rbp, rdi
jmp 0x1401c542d
test al, al
je 0x1401c596f
test cl, 1
jne 0x1401c53a1
jmp 0x1401c539e
mov al, byte [rbp + 0x14]
and al, 1
and cl, 1
cmp al, cl
je 0x1401c53a1
jmp 0x1401c539e
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.140362b40
movsd xmm1, qword [r15]
mov rbp, rdi
mov rcx, qword [rdi]
call fcn.14035ec00
mov r12d, eax
neg r12d
mov r15d, 7
jmp 0x1401c5565
lea r15, [rsp + 0x94]
mov rcx, rbx
mov rdx, r15
mov esi, r8d
mov r14, r10
call fcn.14035ea40
mov r10, r14
mov r8d, esi
movzx r9d, al
xor r11d, r11d
mov r13d, dword [r15]
jmp 0x1401c540f
mov rdi, rbp
mov rbp, r11
mov r12d, r8d
movsx edx, byte [rcx + 2]
test edx, edx
js 0x1401c5a39
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 0x1401c54f8
lea r15, [rsp + 0x98]
mov qword [r15], r10
mov rdx, r15
call fcn.1401bbe90
mov rax, qword [r15]
mov rcx, rax
shr rcx, 0x20
xor r15d, r15d
neg rcx
sbb r15d, r15d
or r15d, eax
jmp 0x1401c5a21
mov r12d, 1
cmp r15d, 7
jne 0x1401c574f
mov ecx, r14d
add rcx, rbx
lea rdx, [rsp + 0x58]
call fcn.140362b40
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, [0x14040fca0]
mov r11, qword [rsp + 0x30]
jne 0x1401c542d
jmp 0x1401c5379