Function at 0x14008eea0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Hash data with md5

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x240]
sub rsp, 0x340
mov r12, rcx
mov dword [rcx + 0x228], r8d
xor r15d, r15d
mov qword [rcx + 0x230], r15
mov qword [rcx + 0x238], r15
mov qword [rcx + 0x240], r15
mov qword [rcx + 0x248], 0x20000
mov qword [rcx + 0x250], r15
mov qword [rcx + 0x258], r9
test rdx, rdx
je 0x14008ef16
lea r9, [r15 - 1]
mov r8, rdx
lea edx, [r15 + 0x20]
call fcn.14003ff6c
jmp 0x14008ef19
mov byte [rcx], 0
mov word [r12 + 0x20], r15w
lea rdx, [rbp + 0x30]
mov ecx, 0x103
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14008f463
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14008f463
lea rdi, [rsp + 0x48]
xor eax, eax
mov ecx, reloc.WS2_32.dll_recv
rep stosd dword [rdi], eax
lea rdi, [rbp - 0x78]
mov ecx, 4
rep stosd dword [rdi], eax
mov byte [rbp - 0x68], al
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x30], 0x67452301
mov dword [rsp + 0x34], 0xefcdab89
mov dword [rsp + 0x38], 0x98badcfe
mov dword [rsp + 0x3c], 0x10325476
lea rcx, [rbp - 0x60]
call fcn.14000bfe0
mov r14d, 0x40
cmp byte [rbp - 0x68], 0
jne 0x14008f3c8
mov eax, dword [rsp + 0x40]
mov ecx, eax
shr ecx, 3
and ecx, 0x3f
sub eax, 0xffffff80
mov dword [rsp + 0x40], eax
cmp eax, 0x80
jae 0x14008efc1
inc dword [rsp + 0x44]
mov ebx, r14d
sub ebx, ecx
cmp ebx, 0x10
ja 0x14008f043
mov edx, ebx
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, ebx
shr rcx, 2
lea rsi, [rbp - 0x60]
mov rdi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, ebx
and ecx, 3
je 0x14008effe
and rdx, 0xfffffffffffffffc
lea rsi, [rbp - 0x60]
add rsi, rdx
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [rbx + 0x3f]
cmp eax, 0x10
jae 0x14008f03e
nop word [rax + rax]
mov eax, ebx
lea rdx, [rbp - 0x60]
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140071d80
add ebx, r14d
lea eax, [rbx + 0x3f]
cmp eax, 0x10
jb 0x14008f020
mov ecx, r15d
jmp 0x14008f046
mov ebx, r15d
mov edx, reloc.WS2_32.dll_recv
sub edx, ebx
mov eax, ebx
lea r8, [rbp - 0x60]
add r8, rax
mov eax, ecx
lea r9, [rsp + 0x48]
add r9, rax
mov ecx, edx
shr rcx, 2
mov rdi, r9
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14008f083
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
cmp byte [rbp - 0x68], 0
jne 0x14008f3c8
mov eax, dword [rsp + 0x40]
mov ecx, eax
shr ecx, 3
and ecx, 0x3f
add eax, 0x38
mov dword [rsp + 0x40], eax
cmp eax, 0x38
jae 0x14008f0a9
inc dword [rsp + 0x44]
mov ebx, r14d
sub ebx, ecx
lea r9, str.install
cmp ebx, 7
ja 0x14008f136
mov edx, ebx
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, ebx
shr rcx, 2
mov rsi, r9
mov rdi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, ebx
and ecx, 3
je 0x14008f0e9
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r9]
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [rbx + 0x3f]
cmp eax, 7
jae 0x14008f12a
lea rdi, str.install
nop word [rax + rax]
mov edx, ebx
add rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140071d80
add ebx, r14d
lea eax, [rbx + 0x3f]
cmp eax, 7
jb 0x14008f110
mov ecx, r15d
lea r9, str.install
jmp 0x14008f139
mov ebx, r15d
mov edx, 7
sub edx, ebx
mov r8d, ebx
add r8, r9
mov eax, ecx
lea r9, [rsp + 0x48]
add r9, rax
mov ecx, edx
shr rcx, 2
mov rdi, r9
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14008f173
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
cmp byte [rbp - 0x68], 0
jne 0x14008f3c8
lea rdi, [rbp + 0x288]
lea rsi, [rsp + 0x40]
mov ecx, 2
rep movsd dword [rdi], dword [rsi]
mov edx, dword [rsp + 0x40]
mov edi, edx
shr edi, 3
and edi, 0x3f
mov eax, 0x78
sub eax, edi
mov r15d, 0x38
sub r15d, edi
cmp edi, 0x38
cmovae r15d, eax
cmp r15d, 1
jb 0x14008f2a6
lea eax, [r15*8]
add edx, eax
mov dword [rsp + 0x40], edx
mov ecx, dword [rsp + 0x44]
cmp edx, eax
jae 0x14008f1d5
inc ecx
mov eax, r15d
shr eax, 0x1d
add ecx, eax
mov dword [rsp + 0x44], ecx
mov ebx, r14d
sub ebx, edi
lea r9, [0x1401f2e70]
cmp r15d, ebx
jb 0x14008f265
mov edx, ebx
mov eax, edi
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, ebx
shr rcx, 2
mov rsi, r9
mov rdi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, ebx
and ecx, 3
je 0x14008f221
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r9]
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [rbx + 0x3f]
cmp eax, r15d
jae 0x14008f25a
lea rdi, [0x1401f2e70]
nop
mov edx, ebx
add rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140071d80
add ebx, r14d
lea eax, [rbx + 0x3f]
cmp eax, r15d
jb 0x14008f240
xor edi, edi
lea r9, [0x1401f2e70]
jmp 0x14008f267
xor ebx, ebx
sub r15d, ebx
mov edx, r15d
mov r8d, ebx
add r8, r9
mov eax, edi
lea r9, [rsp + 0x48]
add r9, rax
mov ecx, r15d
shr rcx, 2
mov rdi, r9
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, r15d
and ecx, 3
je 0x14008f2a2
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
mov edx, dword [rsp + 0x40]
cmp byte [rbp - 0x68], 0
jne 0x14008f39d
mov ecx, edx
shr ecx, 3
and ecx, 0x3f
add edx, r14d
mov dword [rsp + 0x40], edx
cmp edx, r14d
jae 0x14008f2c8
inc dword [rsp + 0x44]
sub r14d, ecx
cmp r14d, 8
ja 0x14008f358
mov edx, r14d
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, r14d
shr rcx, 2
lea rsi, [rbp + 0x288]
mov rdi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14008f311
and rdx, 0xfffffffffffffffc
lea rsi, [rbp + 0x288]
add rsi, rdx
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [r14 + 0x3f]
cmp eax, 8
jae 0x14008f354
nop dword [rax]
mov eax, r14d
lea rdx, [rbp + 0x288]
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140071d80
add r14d, 0x40
lea eax, [r14 + 0x3f]
cmp eax, 8
jb 0x14008f330
xor ecx, ecx
jmp 0x14008f35b
xor r14d, r14d
mov edx, 8
sub edx, r14d
mov eax, r14d
lea r8, [rbp + 0x288]
add r8, rax
mov eax, ecx
lea r9, [rsp + 0x48]
add r9, rax
mov ecx, edx
shr rcx, 2
mov rdi, r9
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14008f39d
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
lea rdi, [rbp - 0x78]
lea rsi, [rsp + 0x30]
mov ecx, 4
rep movsd dword [rdi], dword [rsi]
lea rdi, [rsp + 0x48]
xor eax, eax
mov ecx, reloc.WS2_32.dll_recv
rep stosd dword [rdi], eax
mov byte [rbp - 0x68], 1
xor r15d, r15d
cmp byte [rbp - 0x68], r15b
je 0x14008f410
mov esi, r15d
lea rbx, [rbp - 0x78]
nop
lea ecx, [rsi + rsi]
movzx edi, byte [rbx]
mov edx, 0x3f
sub edx, ecx
mov eax, ecx
lea rcx, [rbp - 0x50]
lea rcx, [rcx + rax*2]
mov dword [rsp + 0x20], edi
lea r9, str._02X
mov r8, 0xffffffffffffffff
call fcn.140003dd0
inc esi
lea rbx, [rbx + 1]
cmp esi, 0x10
jb 0x14008f3d0
mov word [rbp - 0x10], r15w
jmp 0x14008f415
mov word [rbp - 0x50], r15w
mov word [rbp - 0x30], r15w
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, str._s_s
mov edx, 0x103
mov r8, 0xffffffffffffffff
lea rcx, [r12 + 0x20]
call fcn.140003dd0
nop
lea rdi, [rbp - 0x78]
xor eax, eax
mov ecx, 4
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x30]
mov ecx, 4
rep stosd dword [rdi], eax
mov rax, r12
mov rbx, qword [rsp + 0x390]
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret