Function at 0x14008df20
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 0x14008df96
lea r9, [r15 - 1]
mov r8, rdx
lea edx, [r15 + 0x20]
call fcn.14003fbbc
jmp 0x14008df99
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 0x14008e4e3
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14008e4e3
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.14000c1b0
mov r14d, 0x40
cmp byte [rbp - 0x68], 0
jne 0x14008e448
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 0x14008e041
inc dword [rsp + 0x44]
mov ebx, r14d
sub ebx, ecx
cmp ebx, 0x10
ja 0x14008e0c3
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 0x14008e07e
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.140070710
lea eax, [rbx + 0x3f]
cmp eax, 0x10
jae 0x14008e0be
nop word [rax + rax]
mov eax, ebx
lea rdx, [rbp - 0x60]
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140070710
add ebx, r14d
lea eax, [rbx + 0x3f]
cmp eax, 0x10
jb 0x14008e0a0
mov ecx, r15d
jmp 0x14008e0c6
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 0x14008e103
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
cmp byte [rbp - 0x68], 0
jne 0x14008e448
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 0x14008e129
inc dword [rsp + 0x44]
mov ebx, r14d
sub ebx, ecx
lea r9, str.install
cmp ebx, 7
ja 0x14008e1b6
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 0x14008e169
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.140070710
lea eax, [rbx + 0x3f]
cmp eax, 7
jae 0x14008e1aa
lea rdi, str.install
nop word [rax + rax]
mov edx, ebx
add rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140070710
add ebx, r14d
lea eax, [rbx + 0x3f]
cmp eax, 7
jb 0x14008e190
mov ecx, r15d
lea r9, str.install
jmp 0x14008e1b9
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 0x14008e1f3
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
cmp byte [rbp - 0x68], 0
jne 0x14008e448
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 0x14008e326
lea eax, [r15*8]
add edx, eax
mov dword [rsp + 0x40], edx
mov ecx, dword [rsp + 0x44]
cmp edx, eax
jae 0x14008e255
inc ecx
mov eax, r15d
shr eax, 0x1d
add ecx, eax
mov dword [rsp + 0x44], ecx
mov ebx, r14d
sub ebx, edi
lea r9, [0x1401f1e70]
cmp r15d, ebx
jb 0x14008e2e5
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 0x14008e2a1
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.140070710
lea eax, [rbx + 0x3f]
cmp eax, r15d
jae 0x14008e2da
lea rdi, [0x1401f1e70]
nop
mov edx, ebx
add rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140070710
add ebx, r14d
lea eax, [rbx + 0x3f]
cmp eax, r15d
jb 0x14008e2c0
xor edi, edi
lea r9, [0x1401f1e70]
jmp 0x14008e2e7
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 0x14008e322
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 0x14008e41d
mov ecx, edx
shr ecx, 3
and ecx, 0x3f
add edx, r14d
mov dword [rsp + 0x40], edx
cmp edx, r14d
jae 0x14008e348
inc dword [rsp + 0x44]
sub r14d, ecx
cmp r14d, 8
ja 0x14008e3d8
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 0x14008e391
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.140070710
lea eax, [r14 + 0x3f]
cmp eax, 8
jae 0x14008e3d4
nop dword [rax]
mov eax, r14d
lea rdx, [rbp + 0x288]
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140070710
add r14d, 0x40
lea eax, [r14 + 0x3f]
cmp eax, 8
jb 0x14008e3b0
xor ecx, ecx
jmp 0x14008e3db
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 0x14008e41d
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 0x14008e490
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.140003a90
inc esi
lea rbx, [rbx + 1]
cmp esi, 0x10
jb 0x14008e450
mov word [rbp - 0x10], r15w
jmp 0x14008e495
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.140003a90
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