Function at 0x45b480
Capabilities:
Enumerate files on windows

Disassembly:
sub esp, 0x24c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x260]
mov bl, cl
test edi, edi
mov ebp, edx
mov byte [esp + 0x13], bl
jne 0x45b4af
mov eax, 0xff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24c
ret 8
mov al, byte [0x640df0]
test al, al
jne 0x45b4eb
mov ecx, 0x1c
call fcn.00457cc0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x640df0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x260]
mov eax, dword [0x640cc0]
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
mov esi, ecx
test esi, esi
je 0x45b516
call fcn.0049a2c0
push 0
push 0xfffffffffffffffe
push str.._AULISTENTRY__
push esi
call sub.storm.dll_Ordinal_403
jmp 0x45b4eb
test bl, 0x10
je 0x45b525
call fcn.0045bd80
jmp 0x45b692
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x45b573
cmp byte [esp + ecx + 0x17], 0x5c
je 0x45b573
push 0x104
lea ecx, [esp + 0x1c]
push 0x4f15bc
push ecx
call sub.storm.dll_Ordinal_503
push 0x104
lea edx, [esp + 0x1c]
push 0x4f18c0
push edx
call sub.storm.dll_Ordinal_503
call fcn.0049a920
mov edi, eax
lea eax, [esp + 0x11c]
lea ecx, [esp + 0x18]
push eax
push ecx
inc edi
and bl, 0xf0
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
je 0x45b68b
mov al, byte [esp + 0x11c]
test al, 0x10
je 0x45b5db
test byte [esp + 0x13], 8
je 0x45b669
lea edx, [esp + 0x148]
mov ecx, ebp
call fcn.0045b7c0
jmp 0x45b669
test al, 2
jne 0x45b669
lea edx, [esp + 0x148]
push 0x2e
push edx
call fcn.004c5e20
mov esi, eax
add esp, 8
inc esi
test eax, eax
je 0x45b669
mov al, byte [0x50f1a8]
test al, al
je 0x45b619
mov ecx, dword [0x4e5df8]
push ecx
push esi
call fcn.004c5fc0
add esp, 8
test eax, eax
je 0x45b62d
mov edx, dword [0x4e5df4]
push edx
push esi
call fcn.004c5fc0
add esp, 8
test eax, eax
jne 0x45b63e
lea eax, [esp + 0x148]
mov cl, bl
push eax
mov edx, ebp
or cl, 4
jmp 0x45b664
mov al, byte [0x650bdc]
test al, al
je 0x45b669
push edi
push esi
call fcn.004c5fc0
add esp, 8
test eax, eax
jne 0x45b669
lea ecx, [esp + 0x148]
mov edx, ebp
push ecx
mov cl, bl
or cl, 1
call fcn.0045bab0
mov esi, dword [esp + 0x14]
lea edx, [esp + 0x11c]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x45b5b2
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [esp + 0x260]
mov eax, dword [0x640cc0]
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
mov esi, ecx
test esi, esi
jle 0x45b6d0
mov dl, byte [esi + 0x268]
lea eax, [esi + 8]
push edx
push eax
push esi
call edi
test esi, esi
mov dword [esi + 0x254], eax
jne 0x45b6c4
mov esi, 0x640cbc
mov esi, dword [esi + 4]
test esi, esi
jg 0x45b6a7
mov eax, dword [0x640cc0]
mov ebx, dword [esp + 0x264]
test ebx, ebx
je 0x45b725
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
mov esi, ecx
test esi, esi
jle 0x45b725
lea edi, [esi + 8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esi + 9]
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xfffffffc
push ecx
push edx
push ebx
call fcn.004c5c40
add esp, 0xc
test eax, eax
je 0x45b7ac
test esi, esi
jne 0x45b719
mov esi, 0x640cbc
mov esi, dword [esi + 4]
test esi, esi
jg 0x45b6eb
mov eax, dword [0x640cc0]
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
mov esi, ecx
test esi, esi
jle 0x45b78a
lea edx, [esi + 0x269]
push 0x2e
push edx
call fcn.004c5e20
mov edi, eax
add esp, 8
inc edi
test eax, eax
je 0x45b775
mov ecx, dword [0x4e5df8]
push ecx
push edi
call fcn.004c5fc0
add esp, 8
test eax, eax
je 0x45b7ac
mov edx, dword [0x4e5df4]
push edx
push edi
call fcn.004c5fc0
add esp, 8
test eax, eax
je 0x45b7ac
test esi, esi
jne 0x45b77e
mov esi, 0x640cbc
mov esi, dword [esi + 4]
test esi, esi
jg 0x45b735
mov eax, dword [0x640cc0]
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and eax, ecx
neg eax
sbb eax, eax
and al, 1
add eax, 0xff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24c
ret 8
mov eax, dword [esi + 0x254]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24c
ret 8