Function at 0x140004710
Capabilities:
Enumerate files on windows
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x740
mov rbx, rcx
mov dword [rcx + 0x35b0], 0
lea rcx, [rsp + 0x130]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edx, 0x103
lea rax, [rsp + 0x130]
nop
nop
cmp byte [rax], 0
je 0x140004761
add rax, 1
sub rdx, 1
jne 0x140004750
jmp 0x1400047b2
test rdx, rdx
je 0x1400047b2
mov eax, 0x103
sub rax, rdx
mov edx, 0x103
sub rdx, rax
lea rcx, [rsp + rax + 0x130]
je 0x1400047b2
lea rdi, str.inf_
sub rdi, rcx
nop
nop
movzx eax, byte [rdi + rcx]
test al, al
je 0x1400047a6
mov byte [rcx], al
add rcx, 1
sub rdx, 1
jne 0x140004790
jmp 0x1400047ab
test rdx, rdx
jne 0x1400047af
sub rcx, 1
mov byte [rcx], 0
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x240]
mov r8d, 0x103
call qword [sym.imp.KERNEL32.dll_lstrcpynA]
mov edx, 0x103
lea rax, [rsp + 0x240]
nop
nop
cmp byte [rax], 0
je 0x1400047f1
add rax, 1
sub rdx, 1
jne 0x1400047e0
jmp 0x140004842
test rdx, rdx
je 0x140004842
mov eax, 0x103
sub rax, rdx
mov edx, 0x103
sub rdx, rax
lea rcx, [rsp + rax + 0x240]
je 0x140004842
lea rdi, str..inf
sub rdi, rcx
nop
nop
movzx eax, byte [rdi + rcx]
test al, al
je 0x140004836
mov byte [rcx], al
add rcx, 1
sub rdx, 1
jne 0x140004820
jmp 0x14000483b
test rdx, rdx
jne 0x14000483f
sub rcx, 1
mov byte [rcx], 0
lea rdx, [rsp + 0x240]
lea rcx, str.iProDifx___InfScanAndPurge___s_
call fcn.140003770
lea rdx, [rsp + 0x350]
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
test rax, rax
mov rdi, rax
je 0x1400048bc
lea rdx, [rsp + 0x350]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x1400048bc
lea rdx, [0x14003f9f4]
lea rcx, [rsp + 0x37c]
call fcn.14001bc20
test rax, rax
je 0x140004874
lea r8, [rsp + 0x37c]
lea rdx, [rsp + 0x130]
mov rcx, rbx
call fcn.140004250
jmp 0x140004874
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
lea rcx, [rsp + 0x490]
call fcn.140001eb0
lea rcx, [rsp + 0x490]
call fcn.140001f00
test eax, eax
je 0x1400048eb
mov rcx, rbx
call fcn.140003c80
cmp dword [rbx + 0x35b0], 0
je 0x140004a61
mov qword [rsp + 0x750], rbp
mov qword [rsp + 0x758], rsi
nop
nop
add dword [rbx + 0x35b0], 0xffffffff
movsxd rax, dword [rbx + 0x35b0]
or rcx, 0xffffffffffffffff
imul rax, rax, 0x104
lea rsi, [rax + rbx + 0xd10]
xor eax, eax
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
mov rdx, rcx
mov rcx, rsi
call fcn.14001c070
test eax, eax
je 0x14000496c
movsxd rax, dword [rbx + 0x35b0]
lea rcx, str.iProDifx___InfScanAndPurge___Error_while_parsing_the_OEM_INI_file_list_element___s_
imul rax, rax, 0x104
lea rdx, [rax + rbx + 0xd10]
call fcn.140003770
lea rcx, [rsp + 0x20]
mov r8, rsi
mov edx, 0x104
call fcn.14001b970
lea rdx, [rsp + 0x20]
lea rcx, str.iProDifx___InfScanAndPurge___s_
call fcn.140003770
lea rdx, [rsp + 0x20]
lea rcx, [rbx + 0xe8]
call fcn.140002040
lea rdx, [0x14003f998]
lea rcx, [rsp + 0x20]
call fcn.14001bc20
test rax, rax
je 0x140004a44
mov byte [rax], 0
mov ecx, 0x103
lea rax, [rsp + 0x20]
cmp byte [rax], 0
je 0x1400049d8
add rax, 1
sub rcx, 1
jne 0x1400049c7
jmp 0x140004a22
test rcx, rcx
je 0x140004a22
mov eax, 0x103
mov edx, 0x103
sub rax, rcx
sub rdx, rax
lea rcx, [rsp + rax + 0x20]
je 0x140004a22
lea rdi, str..pnf
sub rdi, rcx
nop
movzx eax, byte [rdi + rcx]
test al, al
je 0x140004a16
mov byte [rcx], al
add rcx, 1
sub rdx, 1
jne 0x140004a00
jmp 0x140004a1b
test rdx, rdx
jne 0x140004a1f
sub rcx, 1
mov byte [rcx], 0
lea rdx, [rsp + 0x20]
lea rcx, str.iProDifx___InfScanAndPurge___s_
call fcn.140003770
lea rdx, [rsp + 0x20]
lea rcx, [rbx + 0xe8]
call fcn.140002040
cmp dword [rbx + 0x35b0], 0
jne 0x140004910
mov rsi, qword [rsp + 0x758]
mov rbp, qword [rsp + 0x750]
add dword [rbx + 0x35b0], 0xffffffff
mov rbx, qword [rsp + 0x760]
add rsp, 0x740
pop rdi
ret