Function at 0x404620
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc6c
mov eax, dword [0x5b0040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
lea edx, [ebp - 0xc60]
push edi
sub edx, ecx
mov edi, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x404640
lea eax, [ebp - 0xc60]
mov dword [ebp - 0xa60], 0
mov esi, eax
mov dword [0x5bcdc0], eax
mov dword [ebp - 0xc64], esi
lea ecx, [ecx]
mov eax, dword [esi + 0x200]
mov dword [0x5bcdc8], eax
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x608], ax
lea eax, [ebp - 0x606]
push eax
call fcn.00532a40
add esp, 0xc
xor eax, eax
mov word [ebp - 0x808], ax
push 0x1fe
push eax
lea eax, [ebp - 0x806]
push eax
call fcn.00532a40
add esp, 0xc
xor eax, eax
mov word [ebp - 0x208], ax
push 0x1fe
push eax
lea eax, [ebp - 0x206]
push eax
call fcn.00532a40
add esp, 0xc
xor eax, eax
mov word [ebp - 0x408], ax
push 0x1fe
push eax
lea eax, [ebp - 0x406]
push eax
call fcn.00532a40
mov edi, esi
lea edx, [ebp - 0x608]
neg edi
add esp, 0xc
mov ecx, esi
mov dword [ebp - 0xc68], edi
add edx, edi
jmp 0x404710
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x404710
lea edx, [ebp - 0x808]
mov ecx, esi
add edx, edi
lea ebx, [ebx]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x404730
lea ecx, [ebp - 0x808]
add ecx, 0xfffffffe
lea esp, [esp]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x404750
mov eax, dword [0x5907f8]
mov dword [ecx], eax
mov eax, dword [0x5907fc]
mov dword [ecx + 4], eax
mov ax, word [0x590800]
mov word [ecx + 8], ax
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4048cb
jmp 0x4047a0
cmp word [ebp - 0xa2c], 0x2e
je 0x4048ae
test byte [ebp - 0xa58], 0x10
je 0x4048ae
lea edx, [ebp - 0x408]
mov ecx, esi
add edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4047c5
lea edi, [ebp - 0x408]
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4047e0
mov eax, dword [0x590824]
lea edx, [ebp - 0xa2c]
mov dword [edi], eax
mov esi, edx
jmp 0x404800
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x404800
lea edi, [ebp - 0x408]
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x404816
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x204
call fcn.004057f1
lea edx, [ebp - 0x408]
mov esi, eax
mov ecx, edx
mov dword [0x5bcdc4], esi
add esp, 4
sub eax, ecx
nop
movzx ecx, word [edx]
lea edx, [edx + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x404850
cmp dword [0x5bcdc8], 0
mov dword [esi + 0x200], 0
jne 0x40487b
mov dword [0x5bcdc8], esi
jmp 0x404886
mov eax, dword [0x5bcdc0]
mov dword [eax + 0x200], esi
push 0x100
lea eax, [ebp - 0x408]
mov dword [0x5bcdc0], esi
push 0
push eax
call fcn.00532a40
mov esi, dword [ebp - 0xc64]
add esp, 0xc
mov edi, dword [ebp - 0xc68]
lea eax, [ebp - 0xa58]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4047a0
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea edi, [ebp - 0x608]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4048d4
mov eax, dword [0x590824]
lea ecx, [ebp - 0x608]
mov dword [edi], eax
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4048f0
mov eax, dword [0x590758]
mov dword [ecx], eax
mov eax, dword [0x59075c]
mov dword [ecx + 4], eax
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0x608]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x404a49
lea ebx, [ebx]
cmp word [ebp - 0xa2c], 0x2e
je 0x404a26
test byte [ebp - 0xa58], 0x10
jne 0x404a26
lea edx, [ebp - 0x208]
mov eax, esi
add edx, dword [ebp - 0xc68]
lea esp, [esp]
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [edx + eax - 2], cx
test cx, cx
jne 0x404960
lea edi, [ebp - 0x208]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x404980
mov eax, dword [0x590824]
lea edx, [ebp - 0xa2c]
mov dword [edi], eax
mov esi, edx
jmp 0x4049a0
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4049a0
lea edi, [ebp - 0x208]
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4049b6
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp - 0xc6c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x208]
call fcn.00401b80
mov ecx, dword [0x5bcdd0]
lea eax, [ebp - 0x208]
inc dword [0x5bcdd8]
push eax
lea ecx, [ecx + 0x138]
call fcn.0042117f
mov eax, dword [0x5bcdd0]
push dword [eax + 0x158]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0x100
lea eax, [ebp - 0x208]
push 0
push eax
call fcn.00532a40
add esp, 0xc
lea eax, [ebp - 0xa58]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov esi, dword [ebp - 0xc64]
test eax, eax
jne 0x404930
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [0x5bcdc8]
mov dword [ebp - 0xc64], esi
test esi, esi
jne 0x404670
push 0x590804
call fcn.00401b10
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.0053059c
mov esp, ebp
pop ebp
ret