Function at 0x140277ea0
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, 0x78
mov ebx, edx
mov rsi, rcx
mov rax, qword [0x14040b018]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r12, qword [rcx + 8]
mov r13, qword [r12 + 8]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x60], rax
movaps xmm0, xmmword [0x1403df810]
movaps xmmword [rsp + 0x50], xmm0
mov al, byte [rcx]
test al, al
je 0x140278042
cmp al, 3
jb 0x140277f0a
mov dword [rsp + 0x6c], 0
cmp al, 4
jne 0x140277f39
mov ebp, dword [rsi + 4]
jmp 0x1402781b6
lea rax, [0x1403f1b90]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ebp, 0xb
mov ecx, 0xb
mov r9d, 0x1303d
jmp 0x1402781b1
mov byte [rsi], 1
mov rax, qword [0x14041b108]
test rax, rax
je 0x140277f60
mov ecx, 0x19a
call qword [case.0x1403339d6.0]
mov ebp, 0xa
test eax, eax
jne 0x1402781b6
mov rdx, qword [rsi + 0x18]
mov r8, qword [rsi + 0x48]
lea rax, [rsp + 0x6c]
mov qword [rsp + 0x20], rax
mov rcx, rsi
xor r9d, r9d
call fcn.14027b7f0
mov ebp, eax
test eax, eax
jne 0x1402781b6
mov rdi, qword [rsi + 0x18]
test rdi, rdi
je 0x140278005
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x140278729
mov rcx, qword [0x1404679b8]
test rcx, rcx
je 0x140277fb6
mov rax, qword [0x14041aff8]
call qword [case.0x1403339d6.0]
mov rax, qword [0x14041afb0]
mov rcx, rdi
call qword [case.0x1403339d6.0]
cdqe
sub qword [0x140467910], rax
dec qword [0x140467958]
mov rax, qword [0x14041afa0]
mov rcx, rdi
call qword [case.0x1403339d6.0]
mov rdi, qword [0x1404679b8]
test rdi, rdi
je 0x140278005
lea rax, [0x14041b008]
mov rax, qword [rax]
mov rcx, rdi
call qword [case.0x1403339d6.0]
mov qword [rsi + 0x18], 0
mov eax, dword [rsp + 0x6c]
test eax, eax
je 0x14027801a
mov dword [rsi + 4], eax
jmp 0x140278020
cmp dword [rsi + 4], 0
je 0x14027802f
cmp byte [rsi], 0
jne 0x140278028
mov byte [rsi], 2
xor ebp, ebp
jmp 0x1402781b6
xor ebp, ebp
cmp byte [rsi], 0
mov dword [rsp + 0x6c], 0
jne 0x1402781b6
movzx r14d, word [rsi + 0x56]
mov rdi, qword [rsi + 0x88]
cmp word [rdi + 0x18], r14w
jbe 0x140278187
movsx ebp, byte [rsi + 0x54]
movzx eax, word [rdi + 0x1a]
mov rcx, qword [rdi + 0x60]
movzx r15d, word [rcx + r14*2]
rol r15w, 8
and r15d, eax
add r15, qword [rdi + 0x50]
cmp dword [rdi + 0x14], 0
js 0x1402781d6
mov dword [rsp + 0x3c], ebp
test bl, 2
je 0x1402780dc
cmp byte [rdi + 8], 0
je 0x1402780ca
mov ebp, dword [rdi + 0x14]
mov rax, qword [rdi + 0x78]
mov rcx, rdi
mov rdx, r15
call qword [case.0x1403339d6.0]
movzx eax, ax
add eax, ebp
add eax, 2
mov ecx, dword [r13 + 0x38]
add ecx, ecx
mov edx, 0xaaaaaaab
imul rdx, rcx
shr rdx, 0x21
cmp eax, edx
jg 0x1402780ca
mov al, 1
cmp word [rdi + 0x18], 1
jne 0x1402780de
mov rcx, rsi
call fcn.14025fdf0
mov ebp, eax
test eax, eax
jne 0x1402781b6
xor eax, eax
mov dword [rsp + 0x44], eax
lea rax, [rsi + 0x88]
mov qword [rsp + 0x30], rax
cmp byte [rdi + 8], 0
je 0x140278212
mov al, byte [rsi + 1]
test al, 0x20
je 0x14027813c
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x14027812a
mov edx, dword [rsi + 0x50]
cmp rcx, rsi
je 0x140278121
test edx, edx
je 0x1402782b5
cmp dword [rcx + 0x50], edx
je 0x1402782b5
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x14027810b
test rsi, rsi
je 0x140278134
and al, 0xdf
mov byte [rsi + 1], al
mov dword [rsp + 0x6c], 0
cmp qword [rsi + 0x80], 0
je 0x140278234
mov rcx, qword [rdi + 0x70]
mov rax, qword [rcx + 0x28]
test byte [rcx + 0x34], 4
je 0x140278164
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x14027827f
mov ebp, dword [rax + 0x30]
test ebp, ebp
jne 0x1402781b6
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x1402782d0
call fcn.14025edd0
jmp 0x1402782d5
lea rax, [0x1403f1b90]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ebp, 0xb
mov ecx, 0xb
mov r9d, 0x13046
call fcn.1402487b0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140334bf0
mov eax, ebp
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rdi
call fcn.14027e3c0
test eax, eax
je 0x140278080
lea rax, [0x1403f1b90]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ebp, 0xb
mov ecx, 0xb
mov r9d, 0x1304a
jmp 0x1402781b1
and byte [rsi + 1], 0xf1
mov word [rsi + 0x46], 0
cmp byte [rsi], 0
je 0x14027828f
mov rcx, rsi
call fcn.14027dfd0
mov ebp, eax
test eax, eax
jne 0x1402781b6
jmp 0x1402780f8
cmp byte [r12 + 0x13], 0
je 0x14027814a
mov rax, qword [rsi + 0x30]
mov ecx, dword [rsi + 0x50]
mov byte [r12 + 0x13], 0
mov rdx, qword [r12 + 8]
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x14027814a
test byte [rdx + 1], 0x10
je 0x140278279
mov byte [r12 + 0x13], 1
cmp dword [rdx + 0x50], ecx
jne 0x140278279
cmp qword [rdx + 0x30], rax
jne 0x140278279
mov byte [rdx], 1
mov rdx, qword [rdx + 0x28]
jmp 0x140278256
cmp dword [rax + 0x80], 0
je 0x1402782df
call fcn.140254ba0
jmp 0x1402782d5
movzx eax, word [rsi + 0x56]
test ax, ax
je 0x140278221
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx]
cmp byte [rcx + 8], 0
je 0x140278221
dec eax
mov word [rsi + 0x56], ax
jmp 0x1402780f8
mov r8, rsi
call fcn.14025fbb0
mov ebp, eax
mov dword [rsp + 0x6c], eax
test eax, eax
jne 0x1402781b6
jmp 0x14027813c
call fcn.14025f170
mov ebp, eax
test eax, eax
jne 0x1402781b6
mov rax, qword [rdi + 0x80]
lea r12, [rsp + 0x50]
mov rcx, rdi
mov rdx, r15
mov r8, r12
call qword [case.0x1403339d6.0]
movzx ecx, word [r12 + 0x14]
xor eax, eax
cmp dword [r12 + 0x10], ecx
je 0x140278319
lea r8, [rsp + 0x50]
mov rcx, rdi
mov rdx, r15
call fcn.14027cd60
lea r15, [rsp + 0x6c]
mov dword [r15], eax
movzx r8d, word [rsp + 0x66]
mov rcx, rdi
mov edx, r14d
mov r9, r15
call fcn.14027e580
mov ebp, dword [r15]
test ebp, ebp
jne 0x1402781b6
movsxd r12, dword [rsp + 0x3c]
cmp byte [rdi + 8], 0
je 0x1402783a1
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x88]
mov ecx, dword [rcx + 0x14]
lea ecx, [rcx + rcx*2]
mov eax, dword [rax + 0x38]
add eax, eax
cmp ecx, eax
jle 0x140278377
mov rcx, rsi
call fcn.14027ea90
mov ebp, eax
test eax, eax
jne 0x1402781b6
cmp byte [rsi + 0x54], r12b
jle 0x140278574
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x14027848c
call fcn.140252fb0
jmp 0x1402784cd
mov rax, qword [rsp + 0x30]
mov r15, qword [rax]
cmp dword [r15 + 0x14], 0
js 0x140278475
movsx eax, byte [rsi + 0x54]
dec eax
cmp eax, r12d
mov qword [rsp + 0x48], r12
lea rax, [rsi + r12*8 + 0x98]
cmovle rax, qword [rsp + 0x30]
movzx ecx, word [r15 + 0x1a]
mov rdx, qword [r15 + 0x60]
movzx r8d, word [r15 + 0x18]
movzx r12d, word [rdx + r8*2 - 2]
rol r12w, 8
and r12d, ecx
cmp r12w, 3
ja 0x140278422
lea rax, [0x1403f1b90]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.database_corruption
mov ebp, 0xb
mov ecx, 0xb
mov r9d, 0x130a5
jmp 0x1402781b1
mov rax, qword [rax]
mov eax, dword [rax + 4]
mov dword [rsp + 0x40], eax
add r12, qword [r15 + 0x50]
mov rax, qword [r15 + 0x78]
mov rcx, r15
mov rdx, r12
call qword [case.0x1403339d6.0]
movzx ebp, ax
mov r13, qword [r13 + 0x68]
mov rcx, qword [r15 + 0x70]
mov rax, qword [rcx + 0x28]
test byte [rcx + 0x34], 4
je 0x140278461
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x140278660
mov edx, dword [rax + 0x30]
test edx, edx
je 0x14027864b
mov dword [rsp + 0x6c], edx
jmp 0x1402786f9
mov rcx, r15
call fcn.14027e3c0
mov ebp, eax
test eax, eax
jne 0x1402781b6
jmp 0x1402783b4
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x1403339d6.0]
mov al, byte [rsi + 0x54]
dec al
mov byte [rsi + 0x54], al
cmp al, r12b
mov ebp, dword [rsp + 0x3c]
jle 0x14027854f
lea ecx, [rax - 1]
mov byte [rsi + 0x54], cl
movsx rax, al
mov rax, qword [rsi + rax*8 + 0x90]
test rax, rax
je 0x140278547
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x140278506
call fcn.140252fb0
jmp 0x140278547
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x1403339d6.0]
mov al, byte [rsi + 0x54]
cmp al, bpl
jg 0x1402784de
movsx rax, al
mov rax, qword [rsi + rax*8 + 0x90]
mov qword [rsi + 0x88], rax
mov rcx, rsi
call fcn.14027ea90
mov ebp, eax
test eax, eax
jne 0x1402781b6
cmp byte [rsp + 0x44], 0
je 0x140278595
mov byte [rsi], 2
cmp r14w, word [rdi + 0x18]
jae 0x140278636
mov dword [rsi + 4], 1
jmp 0x140278028
mov rcx, rsi
call fcn.14027ba10
mov edi, eax
test bl, 2
je 0x1402786b8
cmp byte [rsi + 0x54], 0
js 0x1402786b5
je 0x14027861d
xor ebx, ebx
mov rax, qword [rsi + rbx*8 + 0x90]
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x1402785cf
call fcn.140252fb0
jmp 0x140278610
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x1403339d6.0]
inc rbx
movsx rax, byte [rsi + 0x54]
cmp rbx, rax
jl 0x1402785b6
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x140278670
call fcn.140252fb0
jmp 0x1402786b1
mov dword [rsi + 4], 0xffffffff
mov eax, dword [rdi + 0x18]
dec eax
mov word [rsi + 0x56], ax
jmp 0x140278028
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x1402786c5
call fcn.14025edd0
jmp 0x1402786ca
cmp dword [rax + 0x80], 0
je 0x1402786d2
call fcn.140254ba0
jmp 0x1402786ca
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x1403339d6.0]
mov byte [rsi + 0x54], 0xff
mov byte [rsi], 3
xor ebp, ebp
cmp edi, 0x10
cmovne ebp, edi
jmp 0x1402781b6
call fcn.14025f170
mov dword [rsp + 0x6c], eax
test eax, eax
jne 0x1402786f9
lea r9d, [rbp + 4]
add r12, 0xfffffffffffffffc
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov edx, r14d
mov r8, r12
call fcn.14027e6a0
mov dword [rsp + 0x6c], eax
movzx edx, word [r15 + 0x18]
dec edx
lea r12, [rsp + 0x6c]
mov rcx, r15
mov r8d, ebp
mov r9, r12
call fcn.14027e580
mov ebp, dword [r12]
test ebp, ebp
mov r12, qword [rsp + 0x48]
jne 0x1402781b6
jmp 0x14027834b
lea rax, [0x14041afa0]
jmp 0x140277ff9