Function at 0x5775d0
Capabilities:
Enumerate files on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58e1ac
mov eax, dword fs:[0]
push eax
sub esp, 0x474
mov eax, dword [0x5ebfc4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x464], edi
call fcn.00407271
mov ecx, eax
test ecx, ecx
je 0x577be0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, 0x5940e4
jne 0x577bea
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
add eax, 0x10
mov dword [ebp - 0x468], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x478], 0
call fcn.00407271
mov ecx, eax
test ecx, ecx
je 0x577bf1
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, 0x5940e4
jne 0x577bfb
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
lea esi, [eax + 0x10]
mov dword [ebp - 0x470], esi
mov byte [ebp - 4], 1
lea ebx, [edi + 0x3bc]
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x577743
mov eax, dword [edi + 0x3c0]
sub eax, 0x10
push eax
call fcn.00401f10
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x47c], edi
mov eax, dword [ebp - 0x464]
add eax, 0xf8
mov byte [ebp - 4], 2
push eax
push 0x100
lea eax, [ebp - 0x210]
push eax
push edi
push 0x5c6d88
push 0x5c6d94
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x5776e0
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push ecx
push eax
mov ecx, ebx
call fcn.00402430
mov byte [ebp - 4], 1
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x577743
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x577c02
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x577c02
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [ebp - 0x464]
lea eax, [ebx + 0xf8]
push eax
push 0x100
lea eax, [ebp - 0x210]
push eax
push 0x5c6da4
push 0x5c6da8
push 0x5c6dbc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x210]
push eax
push dword [ebx + 0x388]
lea eax, [ebp - 0x468]
push 0x5c6dcc
push eax
call fcn.00404950
push 0x5c6de4
push dword [ebx + 0x388]
lea eax, [ebx + 0xd8]
push 0x5c6df4
push eax
call fcn.00404950
add esp, 0x20
lea eax, [ebp - 0x210]
mov ecx, 0x5c6e0c
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x5777e6
test dx, dx
je 0x5777e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x5777e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x5777c0
xor eax, eax
jmp 0x5777eb
sbb eax, eax
or eax, 1
test eax, eax
je 0x577874
mov edi, dword [ebp - 0x468]
lea eax, [ebp - 0x46c]
push 0x5c9250
push edi
push eax
call fcn.00543a4b
add esp, 0xc
test eax, eax
jne 0x577874
mov eax, dword [ebp - 0x46c]
test eax, eax
je 0x577874
push eax
call fcn.00543e2c
lea ecx, [ebp - 0x210]
add esp, 4
lea edx, [ebx + 0x3c8]
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x577834
sub ecx, ebx
lea eax, [ebp - 0x210]
sar ecx, 1
push ecx
push eax
mov ecx, edx
call fcn.00402430
lea eax, [ebp - 0x210]
push eax
mov eax, dword [ebp - 0x464]
push dword [eax + 0x388]
add eax, 0xd4
push 0x5c6e10
jmp 0x577b26
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
call edi
push eax
lea eax, [ebx + 0x380]
push str.0x_04X
push eax
call fcn.00404950
add esp, 0xc
call edi
push dword [ebx + 0x388]
and eax, 0x3ff
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x468]
push str._s.lang
push eax
call fcn.00404950
mov edi, dword [ebp - 0x468]
lea eax, [ebp - 0x460]
add esp, 0xc
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x46c], eax
cmp eax, 0xffffffff
je 0x577abe
xor eax, eax
lea ecx, [ecx]
cmp dword [ebp - 0x460], 0x10
je 0x577a8a
inc eax
mov dword [ebp - 0x478], eax
call fcn.00407271
mov ecx, eax
test ecx, ecx
je 0x577be0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, 0x5940e4
jne 0x577c09
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
add eax, 0x10
mov dword [ebp - 0x474], eax
lea eax, [ebp - 0x434]
mov byte [ebp - 4], 3
push eax
push dword [ebx + 0x388]
lea eax, [ebp - 0x474]
push 0x5c6e4c
push eax
call fcn.00404950
mov esi, dword [ebp - 0x474]
lea eax, [ebp - 0x210]
add esp, 0x10
push esi
push 0x100
push eax
push 0x5c6e58
push str.LOCALE_ID
push 0x5c6e70
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x434]
push 0x2e
push eax
call fcn.0053dbee
add esp, 8
test eax, eax
je 0x57798a
xor ecx, ecx
mov word [eax], cx
push dword [ebx + 0x380]
lea eax, [ebp - 0x210]
push eax
call fcn.0053dc90
add esp, 8
test eax, eax
je 0x5779f9
lea ecx, [ebp - 0x434]
lea eax, [ecx + 2]
mov dword [ebp - 0x480], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x5779b2
sub ecx, dword [ebp - 0x480]
lea eax, [ebp - 0x434]
sar ecx, 1
push ecx
push eax
lea ecx, [ebx + 0x3c8]
call fcn.00402430
lea eax, [ebp - 0x434]
push eax
push dword [ebx + 0x388]
lea eax, [ebx + 0xd4]
push 0x5c6e84
push eax
call fcn.00404950
add esp, 0x10
push 0x10
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00545784
and eax, 0x3ff
add esp, 0xc
cmp word [ebp - 0x47c], ax
jne 0x577a45
lea ecx, [ebp - 0x434]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x577a23
sub ecx, edx
lea eax, [ebp - 0x434]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x470]
call fcn.00402430
mov byte [ebp - 4], 1
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x577a8a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x577c10
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x577c10
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea eax, [ebp - 0x460]
push eax
push dword [ebp - 0x46c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x577ab2
mov eax, dword [ebp - 0x478]
cmp eax, 0xff
jle 0x5778e0
mov esi, dword [ebp - 0x470]
mov eax, dword [ebp - 0x46c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebx + 0x3c8]
cmp dword [eax - 0xc], 0
jne 0x577b2f
cmp dword [esi - 0xc], 0
lea ecx, [ebx + 0x3c8]
jne 0x577b02
push 7
push str.English
call fcn.00402430
mov ecx, dword [ebp - 0x464]
push dword [ebx + 0x3c8]
push dword [ecx + 0x388]
push 0x5c6eac
jmp 0x577b20
lea eax, [ebp - 0x470]
push eax
call fcn.00401f80
mov ecx, dword [ebp - 0x464]
push esi
push dword [ecx + 0x388]
push str._s_s.lang
lea eax, [ecx + 0xd4]
push eax
call fcn.00404950
add esp, 0x10
mov ecx, dword [ebp - 0x464]
call fcn.005764e0
or ebx, 0xffffffff
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x577b85
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x577c17
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x577c17
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [ecx + 4]
call esi
jmp 0x577b8b
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x577bc4
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, 0x5940e4
jne 0x577c1e
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x577c1e
push 0
push dword [ecx + 4]
call esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053c0f2
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00402ab0
call edx
jmp 0x57762c
push 0x80004005
call fcn.00402ab0
call edx
jmp 0x57766c
call edx
jmp 0x577743
call edx
jmp 0x57791a
call edx
jmp 0x577a8a
call edx
jmp 0x577b85
call edx
jmp 0x577bc4