Function at 0x4ae380
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e3c7e
mov eax, dword fs:[0]
push eax
sub esp, 0x2b0
mov eax, dword [0x65f810]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edx, ecx
mov eax, dword [edx + 0xa0]
xor edi, edi
mov dword [ebp - 0x2a8], edx
cmp eax, edi
jne 0x4ae737
mov esi, dword [edx + 0x54]
sub esi, dword [edx + 0x50]
mov eax, dword [ebp + 8]
lea ecx, [edx + 0x44]
sar esi, 5
cmp eax, esi
jg 0x4ae737
push eax
mov dword [edx + 0xa0], 1
mov dword [ebp - 4], edi
call fcn.004ab160
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [0x66dd30]
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2b4], edx
mov edx, dword [eax + 0xc]
mov ecx, 0x66dd30
call edx
lea ebx, [eax + 0x10]
mov dword [ebp - 0x2a4], ebx
mov ecx, dword [0x66d460]
mov byte [ebp - 4], 1
call fcn.00454410
add eax, 0x20
push str.InterfaceAddOns.
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0043bbd0
add esp, 0xc
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 2
mov dword [ebp - 0x2b8], edi
jae 0x4ae456
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x29c]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov esi, dword [ebp - 0x1c]
push 0x5f16a8
mov dword [ebp - 0x2a0], eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
sub esi, eax
push esi
push edi
lea edx, [ebp - 0x4c]
push edx
lea ecx, [ebp - 0x30]
call fcn.0043b3d0
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.00439be0
cmp dword [ebp - 0x34], 8
mov byte [ebp - 4], 2
jb 0x4ae4ae
mov eax, dword [ebp - 0x48]
push eax
call fcn.00506f70
add esp, 4
mov esi, dword [ebp - 0x2a0]
cmp esi, 0xffffffff
jne 0x4ae4f0
lea ecx, [ebp - 0x30]
call fcn.00495410
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ae737
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4ae737
cmp word [ebp - 0x270], 0x2e
je 0x4ae622
test byte [ebp - 0x29c], 0x10
je 0x4ae622
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x4ae517
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x270]
push ecx
mov edx, ecx
push edx
push eax
lea eax, [ebp - 0x2a4]
push str._s_s_s.toc
push eax
call fcn.00455ab0
mov ebx, dword [ebp - 0x2a4]
add esp, 0x14
push 2
push ebx
call fcn.0045b820
add esp, 8
cmp eax, edi
je 0x4ae622
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x4ae55b
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x270]
push ecx
push eax
lea edx, [ebp - 0x2a4]
push 0x5f683c
push edx
call fcn.00455ab0
mov ebx, dword [ebp - 0x2a4]
add esp, 0x10
push str.X_WoWBox_ID
push ebx
call fcn.00453ab0
add esp, 8
push eax
lea ecx, [ebp - 0x2a0]
call fcn.00455d90
mov eax, dword [ebp - 0x2a0]
cmp dword [eax - 0xc], edi
je 0x4ae602
mov dword [ebp - 0x34], 0xf
mov dword [ebp - 0x38], edi
mov byte [ebp - 0x48], 0
push edi
lea ecx, [ebp - 0x4c]
push ecx
push eax
mov byte [ebp - 4], 5
call fcn.0045c890
mov eax, dword [ebp - 0x48]
add esp, 0xc
cmp dword [ebp - 0x34], 0x10
jae 0x4ae5ce
lea eax, [ebp - 0x48]
push eax
call fcn.0057ded1
add esp, 4
cmp dword [ebp - 0x2ac], eax
jne 0x4ae5f4
push 0x10
push ebx
mov dword [ebp - 0x2b8], 1
call fcn.0045bbf0
add esp, 8
lea ecx, [ebp - 0x4c]
call fcn.00436170
mov eax, dword [ebp - 0x2a0]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ae622
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x29c]
push ecx
push esi
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x4ae4f0
push esi
call dword [sym.imp.KERNEL32.DLL_FindClose]
cmp dword [ebp - 0x2b8], edi
je 0x4ae6e0
mov esi, dword [ebp - 0x2a8]
mov edi, dword [esi + 0x50]
add esi, 0x44
cmp edi, dword [esi + 0x10]
jbe 0x4ae661
call fcn.00579468
mov eax, dword [ebp + 8]
mov edx, dword [esi]
push eax
lea ecx, [ebp - 0x2bc]
push ecx
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x2b0], edx
mov dword [ebp - 0x2ac], edi
call fcn.004a7720
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, esi
call fcn.004ace10
mov esi, dword [ebp - 0x2a8]
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov edi, dword [ebp - 0x2b4]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4ae6c6
call fcn.00579468
mov edx, dword [esi + 0xc]
lea ecx, [edi + edi*4]
shl ecx, 4
mov dword [ecx + edx + 0x40], 0
mov ecx, esi
call fcn.004a7a70
xor edi, edi
cmp dword [ebp - 0x18], 8
jb 0x4ae6f2
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00506f70
add esp, 4
xor ecx, ecx
lea eax, [ebx - 0x10]
mov word [ebp - 0x2c], cx
mov byte [ebp - 4], cl
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], edi
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ae72b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4ae72b
mov ecx, dword [ebp - 0x2a8]
mov dword [ecx + 0xa0], edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005792fc
mov esp, ebp
pop ebp
ret 4