Function at 0x4114a0
Capabilities:
Enumerate files on windows
Enumerate files recursively
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2184
call fcn.004453d0
mov dword [ebp - 0x94c], 0
lea eax, [ebp - 0xd50]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00411440
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
movsx eax, byte [edx]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 4], eax
cmp dword [0x4812ac], 1
jle 0x411502
push 0x103
movsx ecx, byte [ebp - 0xd50]
push ecx
call fcn.004453ff
add esp, 8
mov dword [ebp - 0x2180], eax
jmp 0x411520
movsx edx, byte [ebp - 0xd50]
mov eax, dword [str.________________________________H]
xor ecx, ecx
mov cx, word [eax + edx*2]
and ecx, 0x103
mov dword [ebp - 0x2180], ecx
cmp dword [ebp - 0x2180], 0
je 0x4115ce
movsx edx, byte [ebp - 0xd4f]
cmp edx, 0x3a
jne 0x4115ce
movsx eax, byte [ebp - 0xd4e]
test eax, eax
jne 0x4115ce
mov byte [ebp - 0xd4e], 0x5c
mov byte [ebp - 0xd4d], 0
lea ecx, [ebp - 0xd50]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea edx, [ebp - 0xd50]
push edx
lea eax, [ebp - 0x408]
push eax
call fcn.004452e0
add esp, 8
lea ecx, [ebp - 0x808]
push ecx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edx, [ebp - 0x408]
push edx
push 0x485505
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 8]
add ecx, 1
push ecx
call fcn.004114a0
add esp, 0x10
mov edx, dword [ebp - 0x94c]
add edx, eax
mov dword [ebp - 0x94c], edx
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x412024
cmp dword [0x4812ac], 1
jle 0x4115f4
push 0x103
movsx ecx, byte [ebp - 0xd50]
push ecx
call fcn.004453ff
add esp, 8
mov dword [ebp - 0x2184], eax
jmp 0x411612
movsx edx, byte [ebp - 0xd50]
mov eax, dword [str.________________________________H]
xor ecx, ecx
mov cx, word [eax + edx*2]
and ecx, 0x103
mov dword [ebp - 0x2184], ecx
cmp dword [ebp - 0x2184], 0
je 0x4116cd
movsx edx, byte [ebp - 0xd4f]
cmp edx, 0x3a
jne 0x4116cd
movsx eax, byte [ebp - 0xd4e]
test eax, eax
je 0x4116cd
lea ecx, [ebp - 0xd4e]
push ecx
call fcn.004462d0
add esp, 4
mov edx, dword [ebp - 8]
sub edx, eax
mov dword [ebp - 8], edx
mov byte [ebp - 0xd4e], 0
lea eax, [ebp - 0xd50]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [ebp - 0xd50]
push ecx
lea edx, [ebp - 0x408]
push edx
call fcn.004452e0
add esp, 8
lea eax, [ebp - 0x808]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [ebp - 0x408]
push ecx
push 0x485506
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004114a0
add esp, 0x10
mov ecx, dword [ebp - 0x94c]
add ecx, eax
mov dword [ebp - 0x94c], ecx
lea edx, [ebp - 0x808]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x412024
movsx eax, byte [ebp - 0xd50]
test eax, eax
jne 0x4117f3
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
cmp edx, 0x5c
jne 0x4117f3
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 1]
cmp ecx, 0x5c
jne 0x4117f3
mov dword [ebp - 0x115c], 0
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x1158]
push eax
call fcn.004452e0
add esp, 8
mov ecx, dword [ebp + 8]
push ecx
call fcn.004462d0
add esp, 4
mov dword [ebp - 0x115c], eax
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x115c]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x5c
je 0x41175b
mov edx, dword [ebp - 8]
sub edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x115c]
sub eax, 1
mov dword [ebp - 0x115c], eax
jmp 0x411736
mov ecx, dword [ebp - 0x115c]
add ecx, 1
mov dword [ebp - 0x115c], ecx
mov edx, dword [ebp - 0x115c]
push edx
lea eax, [ebp - 0x1158]
push eax
lea ecx, [ebp - 0x408]
push ecx
call fcn.004451e0
add esp, 0xc
mov edx, dword [ebp - 0x115c]
mov byte [ebp + edx - 0x408], 0
lea eax, [ebp - 0x408]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [ebp - 0x808]
push ecx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edx, [ebp - 0x408]
push edx
push 0x485507
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 8]
add ecx, 1
push ecx
call fcn.004114a0
add esp, 0x10
mov edx, dword [ebp - 0x94c]
add edx, eax
mov dword [ebp - 0x94c], edx
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x412024
movsx ecx, byte [ebp - 0xd50]
test ecx, ecx
jne 0x411898
lea edx, [ebp - 0x808]
push edx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x808]
push eax
lea ecx, [ebp - 0xd50]
push ecx
call fcn.004452e0
add esp, 8
mov byte [ebp - 0xd4e], 0x5c
mov byte [ebp - 0xd4d], 0
lea edx, [ebp - 0xd50]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x46caaa
lea eax, [ebp - 0x408]
push eax
call fcn.004452e0
add esp, 8
lea ecx, [ebp - 0x408]
push ecx
push 0x485508
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 8]
add eax, 1
push eax
call fcn.004114a0
add esp, 0x10
mov ecx, dword [ebp - 0x94c]
add ecx, eax
mov dword [ebp - 0x94c], ecx
lea edx, [ebp - 0x808]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x412024
lea eax, [ebp - 0x948]
push eax
push 0x46caac
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0xd54], eax
cmp dword [ebp - 0xd54], 0xffffffff
je 0x412024
lea ecx, [ebp - 0xd50]
push ecx
call fcn.0040b750
add esp, 4
mov byte [ebp - 0x115d], al
push 0x400
call fcn.00414f65
mov dword [ebp - 0x1574], eax
push 0x400
call fcn.00414f65
mov dword [ebp - 0x1570], eax
mov edx, dword [ebp + 0xc]
mov byte [edx + 9], 0
movsx eax, byte [ebp - 0x818]
test eax, eax
jne 0x41191a
lea ecx, [ebp - 0x91c]
push ecx
lea edx, [ebp - 0x818]
push edx
call fcn.004452e0
add esp, 8
cmp dword [ebp - 4], 0
je 0x411bc3
lea eax, [ebp - 0x91c]
push eax
lea ecx, [ebp - 0x1560]
push ecx
call fcn.004452e0
add esp, 8
lea edx, [ebp - 0x818]
push edx
lea eax, [ebp - 0x1d78]
push eax
call fcn.004452e0
add esp, 8
push 0x46cab0
lea ecx, [ebp - 0x1560]
push ecx
call fcn.004450c0
add esp, 8
test eax, eax
jne 0x411984
push 0x46cab4
lea edx, [ebp - 0xd50]
push edx
call fcn.004450c0
add esp, 8
test eax, eax
jne 0x411bbe
push 0x46cab8
lea eax, [ebp - 0x1560]
push eax
call fcn.004450c0
add esp, 8
test eax, eax
jne 0x4119b8
push 0x46caba
lea ecx, [ebp - 0xd50]
push ecx
call fcn.004450c0
add esp, 8
test eax, eax
jne 0x411bbe
mov edx, dword [ebp - 0x948]
and edx, 0x10
test edx, edx
je 0x411bbe
push 0x46cabc
lea eax, [ebp - 0x1560]
push eax
call fcn.004450c0
add esp, 8
test eax, eax
jne 0x4119f5
lea ecx, [ebp - 0x2178]
push ecx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
jmp 0x411a37
push 0x46cac0
lea edx, [ebp - 0x1560]
push edx
call fcn.004450c0
add esp, 8
test eax, eax
jne 0x411a23
push 0x46cac2
lea eax, [ebp - 0x2178]
push eax
call fcn.004452e0
add esp, 8
jmp 0x411a37
push 0x46cac4
lea ecx, [ebp - 0x2178]
push ecx
call fcn.004452e0
add esp, 8
push 0x485509
lea edx, [ebp - 0xd50]
push edx
lea eax, [ebp - 0x1560]
push eax
lea ecx, [ebp - 0x1978]
push ecx
call dword [0x46bfb4]
add esp, 0x10
test eax, eax
je 0x411afd
lea edx, [ebp - 0x91c]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp dword [0x48549c], 0
je 0x411a99
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push 0x46cac8
lea edx, [ebp - 0x408]
push edx
call fcn.0044634b
add esp, 0x10
jmp 0x411ab8
lea eax, [ebp - 0x91c]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push 0x46cad0
lea edx, [ebp - 0x408]
push edx
call fcn.0044634b
add esp, 0x10
lea eax, [ebp - 0x408]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 8]
add eax, 1
push eax
call fcn.004114a0
add esp, 0x10
mov ecx, dword [ebp - 0x94c]
add ecx, eax
mov dword [ebp - 0x94c], ecx
lea edx, [ebp - 0x2178]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [ebp + 0xc]
mov byte [eax + 9], 1
jmp 0x411bbe
push 0x48550a
lea ecx, [ebp - 0xd50]
push ecx
lea edx, [ebp - 0x1d78]
push edx
lea eax, [ebp - 0x1978]
push eax
call dword [0x46bfb4]
add esp, 0x10
test eax, eax
je 0x411bbe
lea ecx, [ebp - 0x818]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp dword [0x4854a0], 0
je 0x411b5f
lea edx, [ebp - 0x91c]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 0x46cad8
lea ecx, [ebp - 0x408]
push ecx
call fcn.0044634b
add esp, 0x10
jmp 0x411b7e
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebp + 0x14]
push eax
push str._s_s_
lea ecx, [ebp - 0x408]
push ecx
call fcn.0044634b
add esp, 0x10
lea edx, [ebp - 0x408]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 8]
add edx, 1
push edx
call fcn.004114a0
add esp, 0x10
mov ecx, dword [ebp - 0x94c]
add ecx, eax
mov dword [ebp - 0x94c], ecx
lea edx, [ebp - 0x2178]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [ebp + 0xc]
mov byte [eax + 9], 1
jmp 0x411fc9
push 0x46cae6
lea ecx, [ebp - 0x91c]
push ecx
call fcn.004450c0
add esp, 8
test eax, eax
je 0x411fc9
push 0x46cae8
lea edx, [ebp - 0x91c]
push edx
call fcn.004450c0
add esp, 8
test eax, eax
je 0x411fc9
cmp dword [0x46bfc8], 0
je 0x411c11
mov eax, dword [ebp - 0x948]
and eax, 0x10
test eax, eax
jne 0x411c60
cmp dword [0x46bfc0], 0
je 0x411c27
mov ecx, dword [ebp - 0x948]
and ecx, 1
test ecx, ecx
jne 0x411c60
cmp dword [0x46bfcc], 0
je 0x411c3d
mov edx, dword [ebp - 0x948]
and edx, 4
test edx, edx
jne 0x411c60
cmp dword [0x46bfc4], 0
je 0x411c53
mov eax, dword [ebp - 0x948]
and eax, 2
test eax, eax
jne 0x411c60
cmp dword [0x46bfbc], 0
je 0x411fc9
cmp dword [0x46bfc0], 0
jne 0x411c7a
mov ecx, dword [ebp - 0x948]
and ecx, 1
test ecx, ecx
jne 0x411fc9
cmp dword [0x46bfcc], 0
jne 0x411c94
mov edx, dword [ebp - 0x948]
and edx, 4
test edx, edx
jne 0x411fc9
cmp dword [0x46bfc4], 0
jne 0x411cae
mov eax, dword [ebp - 0x948]
and eax, 2
test eax, eax
jne 0x411fc9
cmp dword [0x46bfc8], 0
jne 0x411cc8
mov ecx, dword [ebp - 0x948]
and ecx, 0x10
test ecx, ecx
jne 0x411fc9
lea edx, [ebp - 0x91c]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 0x46caec
lea ecx, [ebp - 0x1560]
push ecx
call fcn.0044634b
add esp, 0x10
lea edx, [ebp - 0x818]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 0x46caf4
lea ecx, [ebp - 0x1d78]
push ecx
call fcn.0044634b
add esp, 0x10
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push edx
lea eax, [ebp - 0x1560]
push eax
lea ecx, [ebp - 0x1978]
push ecx
call dword [0x46bfb4]
add esp, 0x10
test eax, eax
je 0x411d80
mov edx, dword [ebp + 0xc]
mov byte [edx + 9], 1
cmp dword [0x48549c], 0
je 0x411d5f
lea eax, [ebp - 0x818]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push 0x46cafc
lea edx, [ebp - 0x408]
push edx
call fcn.0044634b
add esp, 0x10
jmp 0x411d7e
lea eax, [ebp - 0x91c]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push 0x46cb04
lea edx, [ebp - 0x408]
push edx
call fcn.0044634b
add esp, 0x10
jmp 0x411df8
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push eax
lea ecx, [ebp - 0x1d78]
push ecx
lea edx, [ebp - 0x1978]
push edx
call dword [0x46bfb4]
add esp, 0x10
test eax, eax
je 0x411df8
mov eax, dword [ebp + 0xc]
mov byte [eax + 9], 1
cmp dword [0x4854a0], 0
je 0x411dd9
lea ecx, [ebp - 0x91c]
push ecx
mov edx, dword [ebp + 0x14]
push edx
push 0x46cb0c
lea eax, [ebp - 0x408]
push eax
call fcn.0044634b
add esp, 0x10
jmp 0x411df8
lea ecx, [ebp - 0x818]
push ecx
mov edx, dword [ebp + 0x14]
push edx
push 0x46cb14
lea eax, [ebp - 0x408]
push eax
call fcn.0044634b
add esp, 0x10
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + 9]
test edx, edx
je 0x411fc9
mov eax, dword [ebp - 0x94c]
add eax, 1
mov dword [ebp - 0x94c], eax
cmp dword [0x485494], 0
je 0x411e34
mov ecx, dword [ebp - 0x92c]
imul ecx, ecx, 0xffffffff
add ecx, dword [ebp - 0x928]
mov dword [ebp - 0x156c], ecx
cmp dword [0x485490], 0
je 0x411e52
lea edx, [ebp - 0x948]
push edx
call section..text
add esp, 4
mov dword [ebp - 0x1568], eax
cmp dword [0x485498], 0
je 0x411e70
lea eax, [ebp - 0x948]
push eax
call fcn.00412ec5
add esp, 4
mov byte [ebp - 0x1564], al
mov ecx, dword [ebp + 0x10]
movsx edx, byte [ecx]
test edx, edx
je 0x411f8a
mov eax, dword [ebp + 0x10]
push eax
call fcn.004462d0
add esp, 4
sub eax, 1
mov dword [ebp - 0x217c], eax
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x217c]
movsx edx, byte [ecx]
cmp edx, 0x5c
je 0x411eb5
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x217c]
movsx ecx, byte [eax]
cmp ecx, 0x2f
jne 0x411ef5
lea edx, [ebp - 0x408]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x46cb1c
mov ecx, dword [ebp - 0x1574]
push ecx
call fcn.0044634b
add esp, 0x10
lea edx, [ebp - 0x1978]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x46cb24
mov ecx, dword [ebp - 0x1570]
push ecx
call fcn.0044634b
add esp, 0x10
jmp 0x411f33
lea edx, [ebp - 0x408]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x46cb2c
mov ecx, dword [ebp - 0x1574]
push ecx
call fcn.0044634b
add esp, 0x10
lea edx, [ebp - 0x1978]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x46cb34
mov ecx, dword [ebp - 0x1570]
push ecx
call fcn.0044634b
add esp, 0x10
lea edx, [ebp - 0x1978]
push edx
call fcn.00413c3a
add esp, 4
movsx eax, al
cmp eax, 2
je 0x411f5f
lea ecx, [ebp - 0x1574]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00413d4d
add esp, 8
jmp 0x411f88
lea eax, [ebp - 0x1978]
push eax
mov ecx, dword [ebp - 0x1570]
push ecx
call fcn.004452e0
add esp, 8
lea edx, [ebp - 0x1574]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00413d4d
add esp, 8
jmp 0x411fc9
lea ecx, [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x1574]
push edx
call fcn.004452e0
add esp, 8
lea eax, [ebp - 0x1978]
push eax
mov ecx, dword [ebp - 0x1570]
push ecx
call fcn.004452e0
add esp, 8
lea edx, [ebp - 0x1574]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00413d4d
add esp, 8
lea ecx, [ebp - 0x948]
push ecx
mov edx, dword [ebp - 0xd54]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x411fff
movsx eax, byte [ebp - 0x115d]
test eax, eax
jne 0x4118f2
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + 9]
test edx, edx
je 0x4118f2
mov eax, dword [ebp - 0xd54]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0x1574]
push ecx
call fcn.00415008
mov edx, dword [ebp - 0x1570]
push edx
call fcn.00415008
mov eax, dword [ebp - 0x94c]
mov esp, ebp
pop ebp
ret