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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1d0c
call fcn.00420ff0
mov eax, dword [0x42f060]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x1d0c], ecx
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x424], 0xffffffff
xor eax, eax
mov word [ebp - 0x210], ax
push 0x206
push 0
lea ecx, [ebp - 0x20e]
push ecx
call fcn.00416110
add esp, 0xc
movzx edx, byte [ebp + 0x14]
push edx
push str.bMatchVer__ld_n
call fcn.00413880
add esp, 8
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x4038f3
mov dword [ebp - 0xeac], 0
push 0
lea ecx, [ebp - 0xeac]
push ecx
mov edx, dword [ebp - 0x1d0c]
add edx, 8
push edx
call sub.WINSPOOL.DRV_OpenPrinterW
mov dword [ebp - 0xeb0], eax
cmp dword [ebp - 0xeb0], 0
je 0x4038f3
mov dword [ebp - 0x10bc], 0
mov dword [ebp - 0x10c4], 0
mov dword [ebp - 0x10c0], 0
push 0x428e8c
lea eax, [ebp - 0x10b8]
push eax
call fcn.00415af0
add esp, 8
mov ecx, dword [ebp - 0x1d0c]
mov ecx, dword [ecx + 0x730]
call fcn.00415280
test eax, eax
je 0x40369e
push 0x428eac
lea edx, [ebp - 0x10b8]
push edx
call fcn.00415af0
add esp, 8
lea eax, [ebp - 0x10c4]
push eax
push 0
push 0
push 2
lea ecx, [ebp - 0x10b8]
push ecx
mov edx, dword [ebp - 0xeac]
push edx
call sub.WINSPOOL.DRV_GetPrinterDriverW
mov dword [ebp - 0x10c0], eax
cmp dword [ebp - 0x10c4], 0
je 0x4038e7
mov eax, dword [ebp - 0x10c4]
push eax
call fcn.00415b79
add esp, 4
mov dword [ebp - 0x1d04], eax
mov ecx, dword [ebp - 0x1d04]
mov dword [ebp - 0x10bc], ecx
lea edx, [ebp - 0x10c4]
push edx
mov eax, dword [ebp - 0x10c4]
push eax
mov ecx, dword [ebp - 0x10bc]
push ecx
push 2
lea edx, [ebp - 0x10b8]
push edx
mov eax, dword [ebp - 0xeac]
push eax
call sub.WINSPOOL.DRV_GetPrinterDriverW
mov dword [ebp - 0x10c0], eax
push 0
mov ecx, dword [ebp - 0x10bc]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x1d0c]
mov ecx, dword [eax + 0x730]
call fcn.00414de0
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0x10bc]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x424]
push eax
push str.Installed_Version__ld____s__n
call fcn.004139d0
add esp, 0xc
mov ecx, dword [ebp - 0x10bc]
mov edx, dword [ecx + 0x14]
push edx
lea eax, [ebp - 0x210]
push eax
call fcn.00415af0
add esp, 8
cmp dword [ebp - 0x424], 0
jne 0x4038c3
push 0
mov ecx, dword [ebp - 0x10bc]
mov edx, dword [ecx + 0x1c]
push edx
mov eax, dword [ebp - 0x1d0c]
mov ecx, dword [eax + 0x730]
call fcn.00414de0
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0x10bc]
mov edx, dword [ecx + 0x1c]
push edx
mov eax, dword [ebp - 0x424]
push eax
push str.Installed_Version__ld____s__n
call fcn.004139d0
add esp, 0xc
mov ecx, dword [ebp - 0x10bc]
mov edx, dword [ecx + 0x1c]
push edx
lea eax, [ebp - 0x210]
push eax
call fcn.00415af0
add esp, 8
cmp dword [ebp - 0x424], 0
jne 0x4038c3
mov ecx, dword [ebp - 0x10bc]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x10c8], edx
cmp dword [ebp - 0x10c8], 0
je 0x4038c3
mov eax, dword [ebp - 0x10c8]
movzx ecx, word [eax]
test ecx, ecx
je 0x4038c3
mov edx, dword [ebp - 0x10c8]
push edx
lea eax, [ebp - 0x12d0]
push eax
call fcn.00415af0
add esp, 8
push str..DLL
lea ecx, [ebp - 0x12d0]
push ecx
call fcn.00415bde
add esp, 4
lea edx, [ebp + eax*2 - 0x12d8]
push edx
call fcn.00415dbc
add esp, 8
test eax, eax
jne 0x40389f
push 0
lea eax, [ebp - 0x12d0]
push eax
mov ecx, dword [ebp - 0x1d0c]
mov ecx, dword [ecx + 0x730]
call fcn.00414de0
mov dword [ebp - 0x424], eax
mov edx, dword [ebp - 0x10bc]
mov eax, dword [edx + 0x1c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.00415af0
add esp, 8
cmp dword [ebp - 0x424], 0
je 0x40389f
jmp 0x4038c3
mov edx, dword [ebp - 0x10c8]
push edx
call fcn.00415bde
add esp, 4
mov ecx, dword [ebp - 0x10c8]
lea edx, [ecx + eax*2 + 2]
mov dword [ebp - 0x10c8], edx
jmp 0x40380c
cmp dword [ebp - 0x10bc], 0
je 0x4038e7
mov eax, dword [ebp - 0x10bc]
mov dword [ebp - 0x1d08], eax
mov ecx, dword [ebp - 0x1d08]
push ecx
call fcn.00415ab7
add esp, 4
mov edx, dword [ebp - 0xeac]
push edx
call sub.WINSPOOL.DRV_ClosePrinter
cmp dword [ebp - 0x424], 0
jne 0x403910
push 0x4295b4
lea eax, [ebp - 0x210]
push eax
call fcn.00415af0
add esp, 8
mov ecx, dword [ebp - 0x424]
push ecx
push str.dwInstalledVer__ld_n
call fcn.00413880
add esp, 8
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0xa48]
push eax
call fcn.00415af0
add esp, 8
movzx ecx, word [ebp - 0xa48]
test ecx, ecx
je 0x40397e
lea edx, [ebp - 0xa48]
push edx
call fcn.00415bde
add esp, 4
mov dword [ebp - 0x12d4], eax
mov eax, dword [ebp - 0x12d4]
movzx ecx, word [ebp + eax*2 - 0xa4a]
cmp ecx, 0x5c
je 0x40397e
push 0x428e14
lea edx, [ebp - 0xa48]
push edx
call fcn.00415ac2
add esp, 8
lea eax, [ebp - 0xa48]
push eax
lea ecx, [ebp - 0x420]
push ecx
call fcn.00415af0
add esp, 8
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x420]
push eax
call fcn.00415ac2
add esp, 8
lea ecx, [ebp - 0xa48]
push ecx
push str.tszFolder____s__n
call fcn.004139d0
add esp, 8
lea edx, [ebp - 0x420]
push edx
push str.tszFiles____s__n
call fcn.004139d0
add esp, 8
lea eax, [ebp - 0xea8]
push eax
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x83c], eax
xor edx, edx
cmp dword [ebp - 0x83c], 0xffffffff
setne dl
mov dword [ebp - 0xc54], edx
mov dword [ebp - 0x214], 0
xor eax, eax
mov word [ebp - 0x630], ax
push 0x206
push 0
lea ecx, [ebp - 0x62e]
push ecx
call fcn.00416110
add esp, 0xc
xor edx, edx
mov word [ebp - 0xc50], dx
push 0x206
push 0
lea eax, [ebp - 0xc4e]
push eax
call fcn.00416110
add esp, 0xc
cmp dword [ebp - 0xc54], 0
je 0x403e7d
push 0x208
push 0
lea ecx, [ebp - 0x838]
push ecx
call fcn.00416110
add esp, 0xc
lea edx, [ebp - 0xa48]
push edx
lea eax, [ebp - 0x838]
push eax
call fcn.00415af0
add esp, 8
lea ecx, [ebp - 0xe7c]
push ecx
lea edx, [ebp - 0x838]
push edx
call fcn.00415ac2
add esp, 8
push 0x429614
lea eax, [ebp - 0xe7c]
push eax
call fcn.004161c1
add esp, 8
test eax, eax
je 0x403ac2
push 0x429618
lea ecx, [ebp - 0xe7c]
push ecx
call fcn.004161c1
add esp, 8
test eax, eax
jne 0x403ac7
jmp 0x403e5e
mov edx, dword [ebp - 0xea8]
and edx, 0x10
je 0x403ad7
jmp 0x403e5e
mov eax, dword [ebp - 0x214]
add eax, 1
mov dword [ebp - 0x214], eax
push 0
lea ecx, [ebp - 0x838]
push ecx
mov edx, dword [ebp - 0x1d0c]
mov ecx, dword [edx + 0x730]
call fcn.00414de0
test eax, eax
jne 0x403cbe
xor eax, eax
mov word [ebp - 0x1d00], ax
push 0x206
push 0
lea ecx, [ebp - 0x1cfe]
push ecx
call fcn.00416110
add esp, 0xc
lea edx, [ebp - 0x838]
push edx
lea eax, [ebp - 0x1d00]
push eax
call fcn.00415af0
add esp, 8
cmp dword [ebp + 0x18], 2
jne 0x403b5f
lea ecx, [ebp - 0x1d00]
push ecx
call fcn.00415bde
add esp, 4
mov edx, 0x4c
mov word [ebp + eax*2 - 0x1d02], dx
lea eax, [ebp - 0x14e0]
push eax
push 0
lea ecx, [ebp - 0x1d00]
push ecx
mov edx, dword [ebp - 0x1d0c]
mov ecx, dword [edx + 0x730]
call fcn.004151c0
lea eax, [ebp - 0x1d00]
push eax
lea ecx, [ebp - 0x16e8]
push ecx
call fcn.00415af0
add esp, 8
lea edx, [ebp - 0x1af8]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x403bbe
push 0x104
lea eax, [ebp - 0x1af8]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea ecx, [ebp - 0x1af8]
push ecx
call fcn.00415bde
add esp, 4
movzx edx, word [ebp + eax*2 - 0x1afa]
cmp edx, 0x5c
jne 0x403bf3
lea eax, [ebp - 0x1af8]
push eax
call fcn.00415bde
add esp, 4
xor ecx, ecx
mov word [ebp + eax*2 - 0x1afa], cx
lea edx, [ebp - 0x14e0]
push edx
lea eax, [ebp - 0x1af8]
push eax
push 0x428d14
lea ecx, [ebp - 0x18f0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea edx, [ebp - 0x18f0]
push edx
push str.wszTmpFullPath____s__n
call fcn.004139d0
add esp, 8
lea eax, [ebp - 0x16e8]
push eax
push str.wszSourceFile____s__n
call fcn.004139d0
add esp, 8
push 0
lea ecx, [ebp - 0x18f0]
push ecx
lea edx, [ebp - 0x16e8]
push edx
mov eax, dword [ebp - 0x1d0c]
mov ecx, dword [eax + 0x730]
call fcn.00414510
cmp dword [ebp - 0x214], 1
jne 0x403c94
lea ecx, [ebp - 0x18f0]
push ecx
lea edx, [ebp - 0x630]
push edx
call fcn.00415af0
add esp, 8
lea eax, [ebp - 0x630]
push eax
push str.tszFile1InTemp__s_n
call fcn.004139d0
add esp, 8
jmp 0x403cbe
lea ecx, [ebp - 0x18f0]
push ecx
lea edx, [ebp - 0xc50]
push edx
call fcn.00415af0
add esp, 8
lea eax, [ebp - 0xc50]
push eax
push str.wszFile2InTemp__s_n
call fcn.004139d0
add esp, 8
cmp dword [ebp - 0x214], 1
je 0x403dcf
movzx ecx, word [ebp - 0xc50]
test ecx, ecx
jne 0x403cec
lea edx, [ebp - 0x838]
push edx
lea eax, [ebp - 0xc50]
push eax
call fcn.00415af0
add esp, 8
lea ecx, [ebp - 0xc50]
push ecx
push str.wszFile2InTemp____s__n
call fcn.004139d0
add esp, 8
lea edx, [ebp - 0x630]
push edx
push str.wszFile1InTemp____s__n
call fcn.004139d0
add esp, 8
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x403d6a
lea ecx, [ebp - 0xc50]
push ecx
lea edx, [ebp - 0x210]
push edx
mov eax, dword [ebp - 0x1d0c]
mov ecx, dword [eax + 0x730]
call fcn.00414bf0
test eax, eax
jne 0x403d68
lea ecx, [ebp - 0x838]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.00415af0
add esp, 8
mov eax, dword [ebp + 0x10]
push eax
push str.MATCH____s__n
call fcn.004139d0
add esp, 8
jmp 0x403e7d
jmp 0x403dc1
lea ecx, [ebp - 0x630]
push ecx
lea edx, [ebp - 0xc50]
push edx
mov eax, dword [ebp - 0x1d0c]
mov ecx, dword [eax + 0x730]
call fcn.00414bf0
cmp eax, 1
jne 0x403dc1
lea ecx, [ebp - 0x838]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.00415af0
add esp, 8
lea eax, [ebp - 0xc50]
push eax
lea ecx, [ebp - 0x630]
push ecx
call fcn.00415af0
add esp, 8
mov dword [ebp - 0x218], 1
xor edx, edx
mov word [ebp - 0xc50], dx
jmp 0x403e5e
movzx eax, word [ebp - 0x630]
test eax, eax
jne 0x403df0
lea ecx, [ebp - 0x838]
push ecx
lea edx, [ebp - 0x630]
push edx
call fcn.00415af0
add esp, 8
lea eax, [ebp - 0x838]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00415af0
add esp, 8
movzx edx, byte [ebp + 0x14]
test edx, edx
je 0x403e54
lea eax, [ebp - 0x630]
push eax
lea ecx, [ebp - 0x210]
push ecx
mov edx, dword [ebp - 0x1d0c]
mov ecx, dword [edx + 0x730]
call fcn.00414bf0
test eax, eax
jne 0x403e54
lea eax, [ebp - 0x838]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00415af0
add esp, 8
mov edx, dword [ebp + 0x10]
push edx
push str.MATCH____s__n
call fcn.004139d0
add esp, 8
jmp 0x403e7d
mov dword [ebp - 0x218], 1
lea eax, [ebp - 0xea8]
push eax
mov ecx, dword [ebp - 0x83c]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0xc54], eax
jmp 0x403a43
mov edx, dword [ebp - 0x83c]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp + 0x10]
push eax
push str.End_get_files___s__n
call fcn.004139d0
add esp, 8
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00415aa8
mov esp, ebp
pop ebp
ret 0x14