Function at 0x4896b0
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x642f56
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x460
mov eax, dword [0x68e698]
push ebx
push ebp
mov dword [esp + 0x464], eax
xor ebx, ebx
push edi
mov ebp, ecx
xor eax, eax
mov cl, byte [eax + 0x688f38]
mov byte [eax + 0x941728], cl
inc eax
cmp cl, bl
jne 0x4896e0
xor eax, eax
jmp 0x489700
mov cl, byte [eax + 0x688f38]
mov byte [esp + eax + 0x15c], cl
inc eax
cmp cl, bl
jne 0x489700
lea edi, [esp + 0x15c]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x489720
mov eax, dword [str.GuildBMP.BMP]
mov ecx, dword [0x65599c]
mov edx, dword [0x6559a0]
mov dword [edi], eax
mov eax, dword [0x6559a4]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x160]
push edx
mov dword [edi + 0xc], eax
call dword [sym.imp.kernel32.dll_FindFirstFileA]
or edi, 0xffffffff
cmp eax, edi
mov dword [esp + 0x18], eax
jne 0x4897ba
push 0x66c
call fcn.00614bf2
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov dword [esp + 0x474], ebx
je 0x48978c
mov ecx, eax
call fcn.004acd40
jmp 0x48978e
xor eax, eax
push 0x43480000
push 0x43780000
push ebx
push 0x72e338
mov ecx, eax
mov dword [esp + 0x484], edi
call fcn.004ad860
mov eax, dword [ebp]
push ebx
mov ecx, ebp
call dword [eax + 0x5c]
jmp 0x489abc
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + 0x688f38]
mov byte [esp + eax + 0x15c], cl
inc eax
cmp cl, bl
jne 0x4897c0
push esi
jmp 0x4897e0
test byte [esp + 0x20], 0x10
lea edx, [esp + 0x264]
je 0x48983e
lea ecx, [esp + 0x4c]
push ecx
push str.___s__
push edx
call dword [sym.imp.user32.dll_wsprintfA]
lea eax, [esp + 0x270]
add esp, 0xc
mov edx, eax
jmp 0x489810
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x489810
lea edi, [esp + 0x160]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x489821
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x489a76
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x164]
push ecx
push str._sGuildBMP_s
push edx
call dword [sym.imp.user32.dll_wsprintfA]
push 0x110
mov dword [esp + 0x2c], ebx
call fcn.00614bf2
add esp, 0x14
cmp eax, ebx
je 0x489884
mov byte [eax], bl
mov dword [eax + 0x104], ebx
mov dword [eax + 0x108], ebx
mov dword [eax + 0x10c], ebx
mov esi, eax
jmp 0x489886
xor esi, esi
push 0x18
mov dword [esp + 0x18], esi
call fcn.00614bf2
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov dword [esp + 0x478], 1
je 0x4898b0
mov ecx, eax
call fcn.00456640
jmp 0x4898b2
xor eax, eax
push 0x28
mov dword [esp + 0x47c], edi
mov dword [esi + 0x10c], eax
call fcn.00614bf2
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov dword [esp + 0x478], 2
je 0x4898e5
mov ecx, eax
call fcn.004d5750
jmp 0x4898e7
xor eax, eax
push 0x118
mov dword [esp + 0x47c], edi
mov dword [esi + 0x104], eax
call fcn.00614bf2
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov dword [esp + 0x478], 3
je 0x48991d
mov ecx, eax
call fcn.00573f12
jmp 0x48991f
xor eax, eax
mov dword [esi + 0x108], eax
lea eax, [esp + 0x4c]
mov edx, esi
mov ecx, eax
mov dword [esp + 0x478], edi
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x489936
mov ecx, dword [esi + 0x10c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x268]
push eax
call fcn.00456660
test eax, eax
jne 0x4899d4
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x36c]
push 0x72e538
push edx
call fcn.0061660d
push 0x66c
call fcn.00614bf2
add esp, 0x10
mov dword [esp + 0x10], eax
cmp eax, ebx
mov dword [esp + 0x478], 4
je 0x48999c
mov ecx, eax
call fcn.004acd40
jmp 0x48999e
xor eax, eax
push 0x43480000
push 0x43780000
push ebx
lea ecx, [esp + 0x374]
push ecx
mov ecx, eax
mov dword [esp + 0x488], edi
call fcn.004ad860
mov ecx, esi
call fcn.004887a0
push esi
call fcn.00615a1d
add esp, 4
jmp 0x489a79
mov ecx, dword [ebp + 0x150]
mov edx, dword [ecx]
push edi
push edi
push edi
push esi
call dword [edx + 0x128]
mov ecx, dword [esi + 0x108]
push 1
push 0x17
push ebx
push 0x10
push 0x20
call fcn.0057412f
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x108]
push eax
push 0xc
push 0x12
call fcn.005741b7
mov ecx, dword [esi + 0x108]
push ecx
mov ecx, dword [esi + 0x104]
push 0xc
push 0x12
push ebx
push ebx
push 0x41
push 0xc5
call fcn.004d5780
mov eax, dword [ebp + 0x168]
cmp eax, ebx
lea ecx, [ebp + 0x164]
jne 0x489a41
xor edi, edi
jmp 0x489a49
mov edi, dword [ecx + 8]
sub edi, eax
sar edi, 2
cmp eax, ebx
je 0x489a66
mov edx, dword [ecx + 0xc]
sub edx, eax
sar edx, 2
cmp edi, edx
jae 0x489a66
mov eax, dword [ecx + 8]
mov dword [eax], esi
add eax, 4
mov dword [ecx + 8], eax
jmp 0x489a76
mov eax, dword [ecx + 8]
lea edx, [esp + 0x14]
push edx
push 1
push eax
call fcn.00489170
or edi, 0xffffffff
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
push ecx
call dword [sym.imp.kernel32.dll_FindNextFileA]
test eax, eax
jne 0x4897e0
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.kernel32.dll_FindClose]
mov ecx, dword [ebp + 0x168]
cmp ecx, ebx
pop esi
jne 0x489aab
xor eax, eax
jmp 0x489ab6
mov eax, dword [ebp + 0x16c]
sub eax, ecx
sar eax, 2
mov dword [ebp + 0x160], eax
mov ecx, dword [esp + 0x46c]
pop edi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x460]
pop ebx
call fcn.006162c0
add esp, 0x46c
ret