Function at 0x1400329b0
Capabilities:
Check if file exists
Get file attributes
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x7b0]
sub rsp, 0x8b0
mov rax, qword [0x140077040]
xor rax, rsp
mov qword [rbp + 0x7a0], rax
xor r13d, r13d
cmp byte [0x140081a25], 1
jne 0x140032a00
movzx eax, byte [0x140081a24]
jmp 0x140032f84
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp - 0x60]
call fcn.14005af20
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
mov r8d, 0x3ff
lea rdx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x140032f74
lea rcx, [rbp - 0x60]
mov r14, 0xffffffffffffffff
mov rax, r14
inc rax
cmp word [rcx + rax*2], r13w
jne 0x140032a42
dec eax
movsxd rcx, eax
test eax, eax
jle 0x140032a71
cmp word [rbp + rcx*2 - 0x60], 0x5c
je 0x140032a69
dec eax
dec rcx
test rcx, rcx
jg 0x140032a55
jmp 0x140032a71
cdqe
mov word [rbp + rax*2 - 0x60], r13w
cmp word [rbp - 0x60], r13w
je 0x140032f74
call fcn.140002ed0
mov rcx, rax
test rax, rax
je 0x140032fbf
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
lea r9, str.prolasso.key
lea r8, [rbp - 0x60]
lea rdx, str._s_s
lea rcx, [rsp + 0x70]
call fcn.140004a60
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140032f5b
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140032f5b
mov dword [rbp - 0x70], r13d
lea rdx, [rbp - 0x70]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
mov eax, 2
mul rsi
cmovo rax, r14
mov rcx, rax
call fcn.140039d3c
mov r12, rax
mov r8d, esi
xor edx, edx
mov rcx, rax
call fcn.14005af20
mov dword [rbp - 0x6c], r13d
mov qword [rsp + 0x20], r13
lea r9, [rbp - 0x6c]
mov r8d, esi
mov rdx, r12
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x140032f44
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.140002ed0
mov rcx, rax
test rax, rax
je 0x140032fca
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
cmp r12, 0x10000
jae 0x140032ba5
movzx edx, r12w
lea rcx, [rsp + 0x68]
call fcn.140001fa0
jmp 0x140032bc9
mov r8, r14
nop dword [rax + rax]
inc r8
cmp word [r12 + r8*2], 0
jne 0x140032bb0
mov rdx, r12
lea rcx, [rsp + 0x68]
call fcn.140002210
nop
mov edx, 2
mov rcx, r12
call fcn.140039910
mov r12, r13
mov rbx, qword [rsp + 0x68]
cmp dword [rbx - 0x10], r12d
jge 0x140032be9
mov edi, r14d
jmp 0x140032c0b
lea rdx, str._customer_
mov rcx, rbx
call fcn.14003b83c
mov rdi, rax
test rax, rax
jne 0x140032c05
mov edi, r14d
jmp 0x140032c0b
sub rdi, rbx
sar rdi, 1
add edi, 0xa
cmp dword [rbx - 0x10], r12d
jge 0x140032c19
mov eax, r14d
jmp 0x140032c38
lea rdx, str.__customer_
mov rcx, rbx
call fcn.14003b83c
test rax, rax
jne 0x140032c32
mov eax, r14d
jmp 0x140032c38
sub rax, rbx
sar rax, 1
mov qword [rbp - 0x68], r13
sub eax, edi
mov r9d, eax
mov r8d, edi
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x68]
call fcn.14000d710
nop
mov rax, qword [rbp - 0x68]
cmp dword [rax - 0x10], 0
je 0x140032f05
lea r15, [rax - 0x18]
mov qword [rsp + 0x50], r15
mov rcx, r15
call fcn.140002120
mov ecx, r14d
lock xadd dword [rax + 0x10], ecx
sub ecx, 1
jg 0x140032c8c
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rdx, rax
call qword [rVariantCopy + 8]
mov ecx, 1
call fcn.140039944
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x80], r13
mov rcx, r15
call fcn.140002120
add rax, 0x18
mov qword [rsp + 0x48], rax
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x78]
call fcn.1400328d0
nop
mov rdi, qword [rsp + 0x68]
cmp dword [rbx - 0x10], 0
jge 0x140032cd6
mov esi, r14d
jmp 0x140032cf8
lea rdx, str._signature_
mov rcx, rdi
call fcn.14003b83c
mov rsi, rax
test rax, rax
jne 0x140032cf2
mov esi, r14d
jmp 0x140032cf8
sub rsi, rdi
sar rsi, 1
add esi, 0xb
cmp dword [rbx - 0x10], 0
jge 0x140032d06
mov eax, r14d
jmp 0x140032d25
lea rdx, str.__signature_
mov rcx, rdi
call fcn.14003b83c
test rax, rax
jne 0x140032d1f
mov eax, r14d
jmp 0x140032d25
sub rax, rdi
sar rax, 1
test esi, esi
js 0x140032ecf
test eax, eax
js 0x140032ecf
mov qword [rsp + 0x78], r13
sub eax, esi
mov r9d, eax
mov r8d, esi
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x68]
call fcn.14000d710
nop
mov rbx, qword [rsp + 0x78]
mov ecx, dword [rbx - 0x10]
mov dword [rsp + 0x40], ecx
mov edi, r13d
test ecx, ecx
jle 0x140032de0
test edi, edi
js 0x140032fb4
movsxd rsi, dword [rbx - 0x10]
cmp edi, esi
jg 0x140032fb4
movsxd rax, edi
lea r15, [rax + rax]
movzx r13d, word [r15 + rbx]
jge 0x140032fb4
cmp dword [rbx - 8], 1
jle 0x140032da7
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x78]
call fcn.140002a20
mov rbx, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x40]
movzx eax, di
mov edx, 0x2470
sub ax, dx
xor ax, r13w
mov word [r15 + rbx], ax
test esi, esi
js 0x140032fb4
cmp esi, dword [rbx - 0xc]
jg 0x140032fb4
mov dword [rbx - 0x10], esi
xor edx, edx
mov word [rbx + rsi*2], dx
inc edi
cmp edi, ecx
jl 0x140032d65
mov r15, qword [rsp + 0x50]
test rbx, rbx
je 0x140032fd5
mov rdx, rbx
mov rcx, qword [rbp - 0x80]
call fcn.140040c70
test eax, eax
jne 0x140032eb4
mov byte [0x140081a25], 1
mov byte [0x140081a24], 1
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140032e26
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140032e45
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov edx, 1
mov rcx, qword [rbp - 0x78]
call fcn.140039910
nop
mov eax, r14d
lock xadd dword [r15 + 0x10], eax
sub eax, 1
jg 0x140032e6f
mov rcx, qword [r15]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140032e8f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x140032ead
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov al, 1
jmp 0x140032f84
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140032ecf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140032eee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov edx, 1
mov rcx, qword [rbp - 0x78]
call fcn.140039910
mov rax, qword [rbp - 0x68]
mov r15, qword [rsp + 0x58]
lea rdx, [rax - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140032f20
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140032f3f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rbx, qword [rsp + 0x70]
mov edx, 2
mov rcx, r12
call fcn.140039910
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x140032f74
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov byte [0x140081a25], 1
mov byte [0x140081a24], 0
xor al, al
mov rcx, qword [rbp + 0x7a0]
xor rcx, rsp
call fcn.1400398f0
lea r11, [rsp + 0x8b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80070057
call fcn.140002c40
nop
mov ecx, 0x80004005
call fcn.140002c40
nop
mov ecx, 0x80004005
call fcn.140002c40
nop
mov ecx, 0x80004005
call fcn.140002c40
int3