Function at 0x40432f
Capabilities:
Check if file exists
Enumerate files on windows
Get common file path

Disassembly:
push 0x9fc
mov eax, 0x442b6a
call fcn.0042bcc0
xor eax, eax
xor ebx, ebx
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call fcn.0042b470
add esp, 0xc
lea eax, [ebp - 0x218]
push ebx
push 0x1a
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x40437a
mov al, 1
jmp 0x4049fb
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402874
mov esi, 0x44d0e4
mov dword [ebp - 4], ebx
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24c]
call fcn.00402e83
lea eax, [ebp - 0xa04]
mov dword [ebp - 0xa04], 3
push eax
call fcn.0040297d
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x24c]
mov eax, dword [eax]
add eax, 0x60
push eax
call fcn.00402ddd
mov esi, str.Extension
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24c]
call fcn.00402e83
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x2f4]
call fcn.0040284c
mov ebx, 0x44d0c0
mov byte [ebp - 4], 1
push ebx
call fcn.0040126a
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x24c]
call fcn.00402e83
cmp dword [ebp - 0x238], 8
lea ecx, [ebp - 0x560]
lea eax, [ebp - 0x24c]
cmovae eax, dword [ebp - 0x24c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
mov dword [ebp - 0xa08], ebx
cmp ebx, 0xffffffff
je 0x4049d8
mov edi, 0x44d0d8
test byte [ebp - 0x560], 0x10
je 0x4049c2
lea ecx, [ebp - 0x534]
mov eax, str.Temp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x404490
test dx, dx
je 0x40448c
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x404490
add eax, 4
add ecx, 4
test dx, dx
jne 0x40446a
xor eax, eax
jmp 0x404495
sbb eax, eax
or eax, 1
test eax, eax
je 0x4049c2
lea ecx, [ebp - 0x534]
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4044cb
test dx, dx
je 0x4044c7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4044cb
add eax, 4
add ecx, 4
test dx, dx
jne 0x4044a5
xor eax, eax
jmp 0x4044d0
sbb eax, eax
or eax, 1
test eax, eax
je 0x4049c2
lea ecx, [ebp - 0x534]
mov eax, 0x44d0dc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x404509
test dx, dx
je 0x404505
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x404509
add eax, 4
add ecx, 4
test dx, dx
jne 0x4044e3
xor eax, eax
jmp 0x40450e
sbb eax, eax
or eax, 1
test eax, eax
je 0x4049c2
lea eax, [ebp - 0x2f4]
push eax
lea ecx, [ebp - 0x234]
call fcn.0040284c
mov esi, 0x44d0e4
mov byte [ebp - 4], 2
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x234]
call fcn.00402e83
lea eax, [ebp - 0x534]
push eax
call fcn.0040126a
pop ecx
push eax
lea eax, [ebp - 0x534]
push eax
lea ecx, [ebp - 0x234]
call fcn.00402e83
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x27c]
call fcn.0040284c
mov esi, 0x44d0c0
mov byte [ebp - 4], 3
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x27c]
call fcn.00402e83
cmp dword [ebp - 0x268], 8
lea ecx, [ebp - 0x7b0]
lea eax, [ebp - 0x27c]
cmovae eax, dword [ebp - 0x27c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
mov dword [ebp - 0xa04], esi
cmp esi, 0xffffffff
je 0x4049a0
test byte [ebp - 0x7b0], 0x10
je 0x404984
push 4
lea ecx, [ebp - 0x784]
mov eax, edi
pop ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x404603
test dx, dx
je 0x4045ff
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x404603
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x4045df
xor eax, eax
jmp 0x404608
sbb eax, eax
or eax, 1
test eax, eax
je 0x404984
lea ecx, [ebp - 0x784]
mov eax, 0x44d0dc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40463f
test dx, dx
je 0x40463b
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40463f
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x40461b
xor eax, eax
jmp 0x404644
sbb eax, eax
or eax, 1
test eax, eax
je 0x404984
push 0x44d0e4
call fcn.0040126a
pop ecx
push eax
push 0x44d0e4
lea ecx, [ebp - 0x234]
call fcn.00402e83
lea eax, [ebp - 0x784]
push eax
call fcn.0040126a
pop ecx
push eax
lea eax, [ebp - 0x784]
push eax
lea ecx, [ebp - 0x234]
call fcn.00402e83
push 0x44d0e8
call fcn.0040126a
pop ecx
push eax
push 0x44d0e8
lea ecx, [ebp - 0x234]
call fcn.00402e83
cmp dword [ebp - 0x220], 8
lea eax, [ebp - 0x234]
cmovae eax, dword [ebp - 0x234]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404984
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x294]
call fcn.0040284c
mov byte [ebp - 4], bl
mov ebx, 0x44d0c0
push ebx
call fcn.0040126a
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x294]
call fcn.00402e83
cmp dword [ebp - 0x280], 8
lea ecx, [ebp - 0xa00]
lea eax, [ebp - 0x294]
cmovae eax, dword [ebp - 0x294]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x404971
test byte [ebp - 0xa00], 0x10
je 0x404955
lea ecx, [ebp - 0x9d4]
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40475d
test dx, dx
je 0x404759
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40475d
add eax, 4
add ecx, 4
test dx, dx
jne 0x404737
xor eax, eax
jmp 0x404762
sbb eax, eax
or eax, 1
test eax, eax
je 0x404955
lea ecx, [ebp - 0x9d4]
mov eax, 0x44d0dc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40479b
test dx, dx
je 0x404797
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40479b
add eax, 4
add ecx, 4
test dx, dx
jne 0x404775
xor eax, eax
jmp 0x4047a0
sbb eax, eax
or eax, 1
test eax, eax
je 0x404955
mov esi, 0x44d0e4
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x234]
call fcn.00402e83
lea eax, [ebp - 0x9d4]
push eax
call fcn.0040126a
pop ecx
push eax
lea eax, [ebp - 0x9d4]
push eax
lea ecx, [ebp - 0x234]
call fcn.00402e83
mov esi, 0x44d0f0
push esi
call fcn.0040126a
pop ecx
push eax
push esi
lea ecx, [ebp - 0x234]
call fcn.00402e83
cmp dword [ebp - 0x220], 8
lea eax, [ebp - 0x234]
cmovae eax, dword [ebp - 0x234]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404955
and dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0xf
mov byte [ebp - 0x264], 0
mov byte [ebp - 4], 5
lea edx, [ebp - 0x234]
cmp dword [ebp - 0x220], 8
lea ecx, [ebp - 0x2c4]
cmovae edx, dword [ebp - 0x234]
call fcn.0041dd26
lea edx, [ebp - 0x264]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2c4]
call fcn.0041ae2d
mov esi, str.encode__2_
push esi
call fcn.004012d5
pop ecx
push eax
push 0
push esi
lea ecx, [ebp - 0x264]
call fcn.00402ca2
mov edi, eax
cmp edi, 0xffffffff
je 0x40492e
mov esi, 0x44d110
push esi
call fcn.004012d5
pop ecx
push eax
push edi
push esi
lea ecx, [ebp - 0x264]
call fcn.00402ca2
mov esi, eax
cmp esi, 0xffffffff
je 0x40492e
push str.encode__
lea ecx, [ebp - 0x2dc]
call fcn.0040276c
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x264]
mov eax, dword [ebp - 0x2cc]
sub esi, eax
sub esi, edi
add eax, edi
push esi
push eax
lea eax, [ebp - 0x2ac]
push eax
call fcn.0040281c
push ecx
push ecx
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 0x21c], 0x24
call fcn.00402d3b
lea ecx, [ebp - 0x2ac]
cmp eax, 0xffffffff
jne 0x404a01
push 0
push 1
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0x2dc]
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0x2c4]
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], 4
call fcn.00402d99
mov edi, 0x44d0d8
lea eax, [ebp - 0xa00]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404722
mov esi, dword [ebp - 0xa04]
push 0
push 1
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 3
call fcn.00403476
lea eax, [ebp - 0x7b0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4045c7
mov ebx, dword [ebp - 0xa08]
push 0
push 1
lea ecx, [ebp - 0x27c]
call fcn.00403476
push 0
push 1
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 1
call fcn.00403476
lea eax, [ebp - 0x560]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404452
xor bl, bl
xor esi, esi
lea ecx, [ebp - 0x2f4]
push 0
inc esi
push esi
call fcn.00403476
push 0
push esi
lea ecx, [ebp - 0x24c]
call fcn.00403476
mov al, bl
call fcn.0042bc6f
ret
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0x30c]
push eax
call fcn.0040281c
push 0xffffffffffffffff
xor ebx, ebx
mov byte [ebp - 4], 9
push ebx
lea eax, [ebp - 0x30c]
mov ecx, 0x45b704
push eax
call fcn.00402c0e
push ebx
push 1
lea ecx, [ebp - 0x30c]
mov byte [0x45cec5], 1
call fcn.00402d99
xor esi, esi
lea ecx, [ebp - 0x2ac]
push ebx
inc esi
push esi
call fcn.00402d99
push ebx
push esi
lea ecx, [ebp - 0x2dc]
call fcn.00402d99
push ebx
push esi
lea ecx, [ebp - 0x2c4]
call fcn.00402d99
push ebx
push esi
lea ecx, [ebp - 0x264]
call fcn.00402d99
push ebx
push esi
lea ecx, [ebp - 0x294]
call fcn.00403476
push ebx
push esi
lea ecx, [ebp - 0x27c]
call fcn.00403476
push ebx
push esi
lea ecx, [ebp - 0x234]
call fcn.00403476
mov bl, 1
jmp 0x4049da