Function at 0x14025f820
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 [0x1403e4018]
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 [0x1403bc150]
movaps xmmword [rsp + 0x50], xmm0
mov al, byte [rcx]
test al, al
je 0x14025f9c2
cmp al, 3
jb 0x14025f88a
mov dword [rsp + 0x6c], 0
cmp al, 4
jne 0x14025f8b9
mov ebp, dword [rsi + 4]
jmp 0x14025fb36
lea rax, [0x1403cc120]
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 0x14025fb31
mov byte [rsi], 1
mov rax, qword [0x1403f3a88]
test rax, rax
je 0x14025f8e0
mov ecx, 0x19a
call qword [case.0x140318756.0]
mov ebp, 0xa
test eax, eax
jne 0x14025fb36
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.140263170
mov ebp, eax
test eax, eax
jne 0x14025fb36
mov rdi, qword [rsi + 0x18]
test rdi, rdi
je 0x14025f985
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x1402600a9
mov rcx, qword [0x14043f798]
test rcx, rcx
je 0x14025f936
mov rax, qword [0x1403f3978]
call qword [case.0x140318756.0]
mov rax, qword [0x1403f3930]
mov rcx, rdi
call qword [case.0x140318756.0]
cdqe
sub qword [0x14043f6f0], rax
dec qword [0x14043f738]
mov rax, qword [0x1403f3920]
mov rcx, rdi
call qword [case.0x140318756.0]
mov rdi, qword [0x14043f798]
test rdi, rdi
je 0x14025f985
lea rax, [0x1403f3988]
mov rax, qword [rax]
mov rcx, rdi
call qword [case.0x140318756.0]
mov qword [rsi + 0x18], 0
mov eax, dword [rsp + 0x6c]
test eax, eax
je 0x14025f99a
mov dword [rsi + 4], eax
jmp 0x14025f9a0
cmp dword [rsi + 4], 0
je 0x14025f9af
cmp byte [rsi], 0
jne 0x14025f9a8
mov byte [rsi], 2
xor ebp, ebp
jmp 0x14025fb36
xor ebp, ebp
cmp byte [rsi], 0
mov dword [rsp + 0x6c], 0
jne 0x14025fb36
movzx r14d, word [rsi + 0x56]
mov rdi, qword [rsi + 0x88]
cmp word [rdi + 0x18], r14w
jbe 0x14025fb07
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 0x14025fb56
mov dword [rsp + 0x3c], ebp
test bl, 2
je 0x14025fa5c
cmp byte [rdi + 8], 0
je 0x14025fa4a
mov ebp, dword [rdi + 0x14]
mov rax, qword [rdi + 0x78]
mov rcx, rdi
mov rdx, r15
call qword [case.0x140318756.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 0x14025fa4a
mov al, 1
cmp word [rdi + 0x18], 1
jne 0x14025fa5e
mov rcx, rsi
call fcn.140247770
mov ebp, eax
test eax, eax
jne 0x14025fb36
xor eax, eax
mov dword [rsp + 0x44], eax
lea rax, [rsi + 0x88]
mov qword [rsp + 0x30], rax
cmp byte [rdi + 8], 0
je 0x14025fb92
mov al, byte [rsi + 1]
test al, 0x20
je 0x14025fabc
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x14025faaa
mov edx, dword [rsi + 0x50]
cmp rcx, rsi
je 0x14025faa1
test edx, edx
je 0x14025fc35
cmp dword [rcx + 0x50], edx
je 0x14025fc35
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x14025fa8b
test rsi, rsi
je 0x14025fab4
and al, 0xdf
mov byte [rsi + 1], al
mov dword [rsp + 0x6c], 0
cmp qword [rsi + 0x80], 0
je 0x14025fbb4
mov rcx, qword [rdi + 0x70]
mov rax, qword [rcx + 0x28]
test byte [rcx + 0x34], 4
je 0x14025fae4
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x14025fbff
mov ebp, dword [rax + 0x30]
test ebp, ebp
jne 0x14025fb36
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x14025fc50
call fcn.140246750
jmp 0x14025fc55
lea rax, [0x1403cc120]
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.140230130
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140319a10
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.140265d40
test eax, eax
je 0x14025fa00
lea rax, [0x1403cc120]
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 0x14025fb31
and byte [rsi + 1], 0xf1
mov word [rsi + 0x46], 0
cmp byte [rsi], 0
je 0x14025fc0f
mov rcx, rsi
call fcn.140265950
mov ebp, eax
test eax, eax
jne 0x14025fb36
jmp 0x14025fa78
cmp byte [r12 + 0x13], 0
je 0x14025faca
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 0x14025faca
test byte [rdx + 1], 0x10
je 0x14025fbf9
mov byte [r12 + 0x13], 1
cmp dword [rdx + 0x50], ecx
jne 0x14025fbf9
cmp qword [rdx + 0x30], rax
jne 0x14025fbf9
mov byte [rdx], 1
mov rdx, qword [rdx + 0x28]
jmp 0x14025fbd6
cmp dword [rax + 0x80], 0
je 0x14025fc5f
call fcn.14023c520
jmp 0x14025fc55
movzx eax, word [rsi + 0x56]
test ax, ax
je 0x14025fba1
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx]
cmp byte [rcx + 8], 0
je 0x14025fba1
dec eax
mov word [rsi + 0x56], ax
jmp 0x14025fa78
mov r8, rsi
call fcn.140247530
mov ebp, eax
mov dword [rsp + 0x6c], eax
test eax, eax
jne 0x14025fb36
jmp 0x14025fabc
call fcn.140246af0
mov ebp, eax
test eax, eax
jne 0x14025fb36
mov rax, qword [rdi + 0x80]
lea r12, [rsp + 0x50]
mov rcx, rdi
mov rdx, r15
mov r8, r12
call qword [case.0x140318756.0]
movzx ecx, word [r12 + 0x14]
xor eax, eax
cmp dword [r12 + 0x10], ecx
je 0x14025fc99
lea r8, [rsp + 0x50]
mov rcx, rdi
mov rdx, r15
call fcn.1402646e0
lea r15, [rsp + 0x6c]
mov dword [r15], eax
movzx r8d, word [rsp + 0x66]
mov rcx, rdi
mov edx, r14d
mov r9, r15
call fcn.140265f00
mov ebp, dword [r15]
test ebp, ebp
jne 0x14025fb36
movsxd r12, dword [rsp + 0x3c]
cmp byte [rdi + 8], 0
je 0x14025fd21
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 0x14025fcf7
mov rcx, rsi
call fcn.140266410
mov ebp, eax
test eax, eax
jne 0x14025fb36
cmp byte [rsi + 0x54], r12b
jle 0x14025fef4
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x14025fe0c
call fcn.14023a930
jmp 0x14025fe4d
mov rax, qword [rsp + 0x30]
mov r15, qword [rax]
cmp dword [r15 + 0x14], 0
js 0x14025fdf5
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 0x14025fda2
lea rax, [0x1403cc120]
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 0x14025fb31
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.0x140318756.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 0x14025fde1
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x14025ffe0
mov edx, dword [rax + 0x30]
test edx, edx
je 0x14025ffcb
mov dword [rsp + 0x6c], edx
jmp 0x140260079
mov rcx, r15
call fcn.140265d40
mov ebp, eax
test eax, eax
jne 0x14025fb36
jmp 0x14025fd34
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.0x140318756.0]
mov al, byte [rsi + 0x54]
dec al
mov byte [rsi + 0x54], al
cmp al, r12b
mov ebp, dword [rsp + 0x3c]
jle 0x14025fecf
lea ecx, [rax - 1]
mov byte [rsi + 0x54], cl
movsx rax, al
mov rax, qword [rsi + rax*8 + 0x90]
test rax, rax
je 0x14025fec7
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x14025fe86
call fcn.14023a930
jmp 0x14025fec7
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.0x140318756.0]
mov al, byte [rsi + 0x54]
cmp al, bpl
jg 0x14025fe5e
movsx rax, al
mov rax, qword [rsi + rax*8 + 0x90]
mov qword [rsi + 0x88], rax
mov rcx, rsi
call fcn.140266410
mov ebp, eax
test eax, eax
jne 0x14025fb36
cmp byte [rsp + 0x44], 0
je 0x14025ff15
mov byte [rsi], 2
cmp r14w, word [rdi + 0x18]
jae 0x14025ffb6
mov dword [rsi + 4], 1
jmp 0x14025f9a8
mov rcx, rsi
call fcn.140263390
mov edi, eax
test bl, 2
je 0x140260038
cmp byte [rsi + 0x54], 0
js 0x140260035
je 0x14025ff9d
xor ebx, ebx
mov rax, qword [rsi + rbx*8 + 0x90]
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x14025ff4f
call fcn.14023a930
jmp 0x14025ff90
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.0x140318756.0]
inc rbx
movsx rax, byte [rsi + 0x54]
cmp rbx, rax
jl 0x14025ff36
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rcx, qword [rax + 0x70]
test byte [rcx + 0x34], 0x20
jne 0x14025fff0
call fcn.14023a930
jmp 0x140260031
mov dword [rsi + 4], 0xffffffff
mov eax, dword [rdi + 0x18]
dec eax
mov word [rsi + 0x56], ax
jmp 0x14025f9a8
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x140260045
call fcn.140246750
jmp 0x14026004a
cmp dword [rax + 0x80], 0
je 0x140260052
call fcn.14023c520
jmp 0x14026004a
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.0x140318756.0]
mov byte [rsi + 0x54], 0xff
mov byte [rsi], 3
xor ebp, ebp
cmp edi, 0x10
cmovne ebp, edi
jmp 0x14025fb36
call fcn.140246af0
mov dword [rsp + 0x6c], eax
test eax, eax
jne 0x140260079
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.140266020
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.140265f00
mov ebp, dword [r12]
test ebp, ebp
mov r12, qword [rsp + 0x48]
jne 0x14025fb36
jmp 0x14025fccb
lea rax, [0x1403f3920]
jmp 0x14025f979