Function at 0x403c95
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
lea ebp, [esp - 0x1580]
mov eax, 0x1580
call fcn.0040b570
push 0xffffffffffffffff
push 0x42eca3
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x43c380]
xor eax, ebp
mov dword [ebp + 0x157c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x70]
call fcn.00402134
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], esi
mov edi, 0x206
push edi
lea eax, [ebp + 0x116e]
push esi
push eax
mov byte [ebp - 4], 2
mov word [ebp + 0x116c], si
call fcn.0040aa00
mov ecx, dword [0x43e2bc]
add esp, 0xc
push str.DictTemp_
call fcn.004018c4
mov ecx, eax
call fcn.00406326
push eax
lea eax, [ebp + 0x116c]
push 0x430638
push eax
call fcn.0040a913
lea eax, [ebp + 0x116c]
push eax
lea eax, [ebp + 0x26c]
push str._s.
push eax
call fcn.0040a913
add esp, 0x1c
lea eax, [ebp]
push eax
lea eax, [ebp + 0x26c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x403ece
mov ebx, 0x430478
lea eax, [ebp]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, esi
je 0x403ece
cmp word [ebp + 0x2c], 0x2e
je 0x403d7e
cmp word [ebp + 0x2e], si
je 0x403d7e
cmp word [ebp + 0x2e], 0x2e
jne 0x403dad
cmp word [ebp + 0x30], si
je 0x403d7e
test byte [ebp], 0x10
jne 0x403d7e
lea eax, [ebp + 0x2c]
push str..zncel
push eax
call fcn.0040b082
test eax, eax
pop ecx
pop ecx
jne 0x403ddf
lea eax, [ebp + 0x2c]
push str..dcel
push eax
call fcn.0040b082
test eax, eax
pop ecx
pop ecx
je 0x403e66
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x67c]
push ebx
push eax
call fcn.0040a913
add esp, 0xc
lea eax, [ebp + 0x67c]
push eax
lea ecx, [ebp + 0x250]
call fcn.004015f8
lea eax, [ebp + 0x250]
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.00403c40
push esi
push 1
lea ecx, [ebp + 0x250]
mov byte [ebp - 4], 2
call fcn.0040115a
lea eax, [ebp + 0x67c]
push eax
lea ecx, [ebp + 0x250]
call fcn.004015f8
lea eax, [ebp + 0x250]
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 4
call fcn.0040392e
mov ecx, dword [ebp + 0x20]
push esi
mov dword [eax], ecx
push 1
lea ecx, [ebp + 0x250]
mov byte [ebp - 4], 2
call fcn.0040115a
lea eax, [ebp + 0x2c]
push str..xml
push eax
call fcn.0040b082
test eax, eax
pop ecx
pop ecx
je 0x403d7e
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x474]
push ebx
push eax
call fcn.0040a913
add esp, 0xc
lea eax, [ebp + 0x474]
push eax
lea ecx, [ebp + 0x250]
call fcn.004015f8
lea eax, [ebp + 0x250]
push eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 5
call fcn.00403c40
push esi
push 1
lea ecx, [ebp + 0x250]
mov byte [ebp - 4], 2
call fcn.0040115a
jmp 0x403d7e
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x24]
call fcn.00401955
mov ebx, eax
cmp ebx, esi
jne 0x403f29
push 5
pop esi
lea ecx, [ebp - 0x44]
call fcn.00403250
lea ecx, [ebp - 0x24]
call fcn.00403250
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.004038b8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x157c]
xor ecx, ebp
call fcn.0040a784
add ebp, 0x1580
leave
ret
push edi
lea eax, [ebp + 0x1376]
push esi
push eax
mov word [ebp + 0x1374], si
call fcn.0040aa00
push edi
lea eax, [ebp + 0x886]
push esi
push eax
mov word [ebp + 0x884], si
call fcn.0040aa00
xor eax, eax
inc eax
add esp, 0x18
cmp ebx, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
jbe 0x403f6c
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x10], eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x20]
lea ecx, [ebp - 0x2c]
call fcn.00401dab
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x4c]
call fcn.00401dab
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00408683
test al, al
jne 0x403ee8
lea ecx, [ebp - 0x2c]
call fcn.00401981
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x7c], esp
push eax
call fcn.0040282d
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x64]
call fcn.00401dab
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x40]
lea ecx, [ebp - 0x54]
call fcn.00401dab
push dword [ebp - 0x60]
lea eax, [ebp - 0x5c]
push dword [ebp - 0x64]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push eax
call fcn.004033fe
add esp, 0x30
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x78]
call fcn.00401dab
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00408683
test al, al
je 0x404015
mov dword [ebp - 0x10], 1
jmp 0x404252
lea ecx, [ebp - 0x2c]
call fcn.00401981
cmp dword [eax + 0x18], 8
jb 0x404028
mov eax, dword [eax + 4]
jmp 0x40402b
add eax, 4
push eax
lea eax, [ebp + 0x116c]
push eax
mov ebx, 0x430638
lea eax, [ebp + 0x1374]
push ebx
push eax
call fcn.0040a913
add esp, 0x10
lea ecx, [ebp - 0x5c]
call fcn.00401981
cmp dword [eax + 0x18], 8
jb 0x40405b
mov eax, dword [eax + 4]
jmp 0x40405e
add eax, 4
push eax
lea eax, [ebp + 0x116c]
push eax
lea eax, [ebp + 0x884]
push ebx
push eax
call fcn.0040a913
add esp, 0x10
push esi
lea ecx, [ebp + 0x250]
mov dword [ebp + 0x268], 7
call fcn.00401108
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0x250]
push eax
lea eax, [ebp + 0x884]
push eax
lea eax, [ebp + 0x1374]
push eax
mov byte [ebp - 4], 6
call fcn.00402c98
cmp eax, esi
push esi
jne 0x4040be
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
push eax
jmp 0x404243
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0x1374]
push eax
call fcn.004028ee
cmp eax, 4
jne 0x4040db
xor eax, eax
inc eax
mov dword [ebp - 0x34], eax
push esi
jmp 0x4040b8
cmp eax, 5
jne 0x4040e8
xor eax, eax
inc eax
mov dword [ebp - 0x30], eax
jmp 0x4040d8
cmp eax, esi
je 0x4040f8
mov dword [ebp - 0x10], 1
jmp 0x404240
push edi
lea eax, [ebp + 0xe9e]
push esi
push eax
mov word [ebp + 0xe9c], si
call fcn.0040aa00
push edi
lea eax, [ebp + 0xa8e]
push esi
push eax
mov word [ebp + 0xa8c], si
call fcn.0040aa00
push edi
lea eax, [ebp + 0xc96]
push esi
push eax
mov word [ebp + 0xc94], si
call fcn.0040aa00
mov ecx, dword [0x43e2bc]
add esp, 0x24
lea eax, [ebp + 0xe9c]
push eax
lea eax, [ebp + 0x1374]
push eax
call fcn.004018c8
mov ecx, eax
call fcn.004017ba
lea eax, [ebp + 0xa8c]
push eax
lea eax, [ebp + 0xe9c]
push eax
call fcn.00407c79
pop ecx
pop ecx
mov ecx, dword [0x43e2bc]
push str.dict.conf
call fcn.004018c4
mov ecx, eax
call fcn.00406326
push eax
lea eax, [ebp + 0xc94]
push str._sDict_s
push eax
call fcn.0040a913
mov eax, dword [ebp + 0x254]
add esp, 0x10
cmp dword [ebp + 0x268], 8
jae 0x4041b0
lea eax, [ebp + 0x254]
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp + 0xc94]
push ecx
push eax
lea eax, [ebp + 0xa8c]
push eax
push 0x4305e4
call ebx
lea eax, [ebp + 0xe9c]
push eax
lea ecx, [ebp - 0xa0]
call fcn.004015f8
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 7
call fcn.004024e0
mov ecx, eax
call fcn.004086aa
push dword [eax + 0x1c]
lea eax, [ebp + 0x10a4]
push 0x4305dc
push eax
call fcn.0040a913
add esp, 0xc
push esi
push 1
lea ecx, [ebp - 0xa0]
call fcn.0040115a
lea eax, [ebp + 0xc94]
push eax
lea eax, [ebp + 0x10a4]
push eax
lea eax, [ebp + 0xa8c]
push eax
push str.size
call ebx
push esi
push 1
lea ecx, [ebp + 0x250]
mov byte [ebp - 4], 2
call fcn.0040115a
lea ecx, [ebp - 0x2c]
call fcn.004019a2
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x4c]
call fcn.00401dab
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00408683
test al, al
je 0x403f9e
cmp dword [ebp - 0x34], esi
je 0x404289
push 4
jmp 0x403ee7
cmp dword [ebp - 0x30], esi
jne 0x403ee5
cmp dword [ebp - 0x10], esi
je 0x403ee8
push 3
jmp 0x403ee7