Function at 0x405864
Capabilities:
Enumerate files on windows

Disassembly:
sub esp, 0x58c
mov eax, dword [0x518450]
xor eax, esp
mov dword [esp + 0x584], eax
push ebx
push ebp
push esi
mov ebx, ecx
mov edx, 0xbff199fe
push edi
push ebx
push 0x6d5acc3e
mov ecx, 0x928e5b06
call fcn.00401210
mov ebp, dword [sym.imp.USER32.dll_wsprintfW]
pop ecx
push eax
lea eax, [esp + 0x390]
push eax
call ebp
add esp, 0xc
mov edx, 0xb9f790e3
mov ecx, 0x94885237
push ebx
push 0x6b5cc509
call fcn.004011e6
pop ecx
push eax
xor esi, esi
push esi
call fcn.00405109
add esp, 0xc
lea eax, [esp + 0x388]
push eax
call fcn.0041fc1e
pop ecx
test al, al
jne 0x405903
push 0x2e6e85cd
mov edx, 0xfcc5d021
mov ecx, 0xd1ba1291
call fcn.004011e6
pop ecx
push eax
push 0xff
call fcn.00405109
xor eax, eax
jmp 0x405d36
push 0x104
lea eax, [esp + 0x38]
mov dword [esp + 0x34], esi
push esi
push eax
call fcn.004bf040
add esp, 0xc
mov edx, 0xdddf6183
mov ecx, 0xf0a0a30d
mov edi, esi
push esi
push ebx
push 0xf743453
call fcn.00401210
pop ecx
push eax
lea eax, [esp + 0x394]
push eax
call ebp
lea eax, [esp + 0x398]
push eax
call fcn.0041fe91
add esp, 0x14
test al, al
je 0x405a32
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x38c]
push eax
call fcn.004201a7
pop ecx
pop ecx
push edi
push ebx
push 0x60623f41
mov edx, 0xb2c96a95
mov dword [esp + 0x20], eax
mov ecx, 0x9fb6a8bf
call fcn.00401210
pop ecx
push eax
lea eax, [esp + 0x394]
push eax
call ebp
lea eax, [esp + 0x398]
push eax
call fcn.0041fe91
add esp, 0x14
test al, al
je 0x405a30
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x38c]
push eax
call fcn.004201a7
mov esi, eax
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
test eax, eax
je 0x4059ea
test esi, esi
je 0x4059e3
lea ecx, [edi + 1]
mov edx, eax
push ecx
push ecx
push esi
push ecx
lea ecx, [esp + 0x40]
call fcn.0040520a
mov eax, dword [esp + 0x24]
add esp, 0x10
push eax
call fcn.0040507c
pop ecx
test esi, esi
je 0x4059f5
push esi
call fcn.0040507c
pop ecx
inc edi
mov edx, 0xdddf6183
push edi
push ebx
push 0xf743453
mov ecx, 0xf0a0a30d
call fcn.00401210
pop ecx
push eax
lea eax, [esp + 0x394]
push eax
call ebp
lea eax, [esp + 0x398]
push eax
call fcn.0041fe91
add esp, 0x14
test al, al
jne 0x405956
xor esi, esi
cmp dword [esp + 0x30], 0
je 0x405d13
cmp dword [esp + 0x38], 0
je 0x405d13
push 0x30000
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esp + 0x20], eax
test eax, eax
je 0x405d38
and dword [esp + 0x18], 0
xor edi, edi
and dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ebx
push 0xb09cce90
mov edx, 0x62379b42
mov dword [esp + 0x2c], eax
mov ecx, 0x4f485818
call fcn.00401210
pop ecx
push eax
lea eax, [esp + 0x390]
push eax
call ebp
add esp, 0xc
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x38c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x28], eax
cmp eax, 0xffffffff
je 0x405ba2
lea eax, [esp + 0x164]
mov edx, 0x3880f84b
push eax
push ebx
push 0xea2bad91
mov ecx, 0x15ff3b6b
call fcn.00401210
pop ecx
push eax
lea eax, [esp + 0x394]
push eax
call ebp
lea eax, [esp + 0x174]
push eax
call fcn.004badc0
mov ecx, dword [esp + 0x168]
add esp, 0x14
xor edx, edx
add edx, dword [esp + 0x158]
adc ecx, 0
push ecx
push edx
push dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x3c]
push eax
lea eax, [esp + 0x174]
push eax
lea eax, [esp + 0x39c]
push eax
call fcn.004054e6
add esp, 0x18
cmp eax, 0x4c
je 0x405b80
cmp eax, 0xffffffff
jne 0x405b4f
inc esi
mov dword [esp + 0x2c], esi
jmp 0x405b60
test eax, eax
jne 0x405b59
inc dword [esp + 0x18]
jmp 0x405b60
jle 0x405b60
inc edi
add dword [esp + 0x14], eax
inc dword [esp + 0x1c]
lea eax, [esp + 0x138]
push eax
push dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x405acb
jmp 0x405ba2
push 0xb1736af7
mov edx, 0x63d83f32
mov ecx, 0x4ea7fbcc
call fcn.004011e6
pop ecx
push eax
push 0x90ff
call fcn.00405109
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
sub esi, dword [esp + 0x24]
test edi, edi
jne 0x405bc3
push 0x9f00f4ca
mov edx, 0x4daba10a
mov ecx, 0x60d4659c
jmp 0x405bd2
push 0x1a008d36
mov edx, 0xc8abd8f7
mov ecx, 0xe5d41c7f
call fcn.004011e6
pop ecx
push eax
push 0xce8ead95
mov edx, 0x1c25f845
mov ecx, 0x315a3ce9
call fcn.004011e6
pop ecx
push eax
xor ebx, ebx
push ebx
call fcn.00405109
add esp, 0xc
mov edx, 0x36403856
mov ecx, 0x1b3ffc2a
push dword [esp + 0x1c]
push 0xe4eb6d86
call fcn.004011e6
pop ecx
push eax
push ebx
call fcn.00405109
add esp, 0xc
mov edx, 0x178b040b
mov ecx, 0x3af4c06d
push dword [esp + 0x18]
push 0xc52051db
call fcn.004011e6
pop ecx
push eax
push ebx
call fcn.00405109
add esp, 0xc
test edi, edi
je 0x405c64
push edi
push 0xca610899
mov edx, 0x18ca5d49
mov ecx, 0x35b59901
call fcn.004011e6
pop ecx
push eax
push ebx
call fcn.00405109
add esp, 0xc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x405c8c
push eax
push 0x49603629
mov edx, 0x9bcb63f9
mov ecx, 0xb6b4a7cb
call fcn.004011e6
pop ecx
push eax
push ebx
call fcn.00405109
add esp, 0xc
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x405cb4
push eax
push 0xf4e92bdd
mov edx, 0x26427e0d
mov ecx, 0xb3dba19
call fcn.004011e6
pop ecx
push eax
push ebx
call fcn.00405109
add esp, 0xc
movd xmm0, esi
mov edx, 0x454ebf59
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
push ecx
push ecx
mov ecx, 0x68317aa7
addsd xmm0, qword [esi*8 + 0x4efd60]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4efd44]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x97e5ea8d
call fcn.004011e6
pop ecx
push eax
push ebx
call fcn.00405109
push dword [esp + 0x30]
call fcn.0040507c
add esp, 0x14
lea ecx, [esp + 0x30]
call fcn.004050db
mov eax, edi
jmp 0x405d38
push 0xc706ec31
mov edx, 0x15adb9be
mov ecx, 0x38d27a1e
call fcn.004011e6
pop ecx
push eax
push 0xff
call fcn.00405109
xor eax, eax
inc eax
pop ecx
pop ecx
mov ecx, dword [esp + 0x594]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b9a6c
add esp, 0x58c
ret