Function at 0x40fb17
Capabilities:
Enumerate files on windows
Move file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1850
call fcn.0042dee0
mov eax, dword [0x470824]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x590]
push ecx
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x183c], eax
push ecx
lea ecx, [ebp - 0x278]
push ecx
lea ecx, [ebp - 0x380]
push ecx
push eax
call fcn.00433ea5
lea ecx, [ebp - 0x170]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fb65
sub ecx, edx
push ebx
push esi
push edi
lea eax, [ecx + 0x10]
movzx ebx, ax
lea edi, [ebp - 0x170]
mov dword [ebp - 0x1830], ebx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40fb84
mov ax, word [0x4553a0]
mov word [edi], ax
lea eax, [ebp - 0x590]
push eax
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x698]
push eax
call fcn.00433c37
add esp, 0x14
lea eax, [ebp - 0x182c]
xor esi, esi
push eax
lea eax, [ebp - 0x698]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40fe11
test byte [ebp - 0x182c], 0x10
jne 0x40fc1e
lea ecx, [ebp - 0x1800]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fbf3
sub ecx, edx
movzx eax, cx
cmp bx, ax
jne 0x40fc1e
xor ecx, ecx
mov al, byte [ebp + ecx - 0x1800]
mov byte [ebp + ecx - 0x16ec], al
inc ecx
test al, al
jne 0x40fc06
xor eax, eax
lea esi, [eax + 1]
mov ebx, dword [sym.imp.KERNEL32.dll_FindNextFileA]
jmp 0x40fc79
test byte [ebp - 0x182c], 0x10
jne 0x40fc79
lea ecx, [ebp - 0x1800]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fc38
sub ecx, edx
movzx eax, cx
cmp word [ebp - 0x1830], ax
jne 0x40fc79
movsx eax, si
lea ecx, [ebp - 0x1800]
imul eax, eax, 0x105
mov edx, ecx
sub eax, edx
lea edx, [ebp - 0x16ec]
add edx, eax
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40fc68
inc esi
cmp si, 0xe
jg 0x40fc87
lea eax, [ebp - 0x182c]
push eax
push edi
call ebx
test eax, eax
jne 0x40fc26
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp si, 9
jle 0x40fe11
movsx ecx, si
mov dword [ebp - 0x1848], ecx
mov ebx, ecx
mov eax, ebx
shl eax, 3
push 0xb
pop esi
cdq
idiv esi
push 1
mov ebx, eax
mov edx, ecx
test ebx, ebx
pop esi
cmove ebx, esi
mov ax, si
sub edx, ebx
mov dword [ebp - 0x1844], ebx
mov dword [0x47c048], ebx
mov dword [ebp - 0x1830], eax
mov word [0x47c04c], ax
mov dword [ebp - 0x1838], edx
test edx, edx
jle 0x40fdb3
imul eax, ebx, 0x105
lea edi, [ebp - 0x16ec]
lea esi, [ebp - 0x16ec]
lea ecx, [ebp - 0x488]
mov edx, esi
add edi, eax
sub eax, ecx
add eax, edx
mov edx, ecx
mov dword [ebp - 0x1834], eax
mov eax, esi
sub edx, eax
mov ebx, edx
mov ecx, edi
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40fd37
test dl, dl
je 0x40fd33
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40fd37
add eax, 2
add ecx, 2
test dl, dl
jne 0x40fd17
xor eax, eax
jmp 0x40fd3c
sbb eax, eax
or eax, 1
test eax, eax
jle 0x40fd80
xor eax, eax
mov ecx, esi
mov dword [ebp - 0x1830], eax
mov word [0x47c04c], ax
mov al, byte [ecx]
mov byte [ecx + ebx], al
inc ecx
test al, al
jne 0x40fd50
mov edx, esi
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x40fd60
mov edx, dword [ebp - 0x1834]
lea ecx, [ebp - 0x488]
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x40fd76
mov eax, 0x105
add dword [ebp - 0x1834], eax
add edi, eax
sub ebx, eax
add esi, eax
sub dword [ebp - 0x1838], 1
jne 0x40fd13
mov ebx, dword [ebp - 0x1844]
xor esi, esi
mov ecx, dword [ebp - 0x1848]
inc esi
mov eax, dword [ebp - 0x1830]
cmp ebx, esi
jne 0x40fca3
cmp ax, si
jne 0x40fca3
lea edi, [ecx - 9]
xor esi, esi
test edi, edi
jle 0x40fe11
xor eax, eax
imul eax, eax, 0x105
lea ecx, [ebp - 0x16ec]
push 0
add eax, ecx
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x488]
push eax
call fcn.00433c37
lea eax, [ebp - 0x488]
push eax
call fcn.0043ab0b
add esp, 0x18
inc esi
movsx eax, si
cmp eax, edi
jl 0x40fdcf
lea eax, [ebp - 0x590]
push eax
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x380]
push eax
push dword [ebp - 0x183c]
call fcn.00433ea5
lea eax, [ebp - 0x1850]
push eax
call fcn.00436b34
lea eax, [ebp - 0x1850]
push eax
call fcn.0043a131
mov ebx, eax
lea eax, [ebp - 0x68]
push 0xa
push eax
mov ecx, dword [ebx + 0x14]
add ecx, 0x76c
push ecx
call fcn.00433a7c
lea edx, [ebp - 0x68]
add esp, 0x28
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x40fe6f
lea edi, [ebp - 0x170]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40fe7f
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]
mov ecx, dword [ebx + 0x10]
inc ecx
cmp ecx, 0xa
jge 0x40feb6
lea edi, [ebp - 0x170]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40fea5
mov ax, word [str.0000_]
mov word [edi], ax
push 0xa
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.00433a7c
lea edx, [ebp - 0x68]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x40feca
lea edi, [ebp - 0x170]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40feda
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]
mov ecx, dword [ebx + 0xc]
cmp ecx, 0xa
jge 0x40ff10
lea edi, [ebp - 0x170]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40feff
mov ax, word [0x4553d0]
mov word [edi], ax
push 0xa
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.00433a7c
lea edx, [ebp - 0x68]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x40ff24
lea edi, [ebp - 0x170]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ff34
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]
mov ecx, dword [ebx + 8]
cmp ecx, 0xa
jge 0x40ff6a
lea edi, [ebp - 0x170]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ff59
mov ax, word [0x4553d4]
mov word [edi], ax
push 0xa
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.00433a7c
lea edx, [ebp - 0x68]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x40ff7e
lea edi, [ebp - 0x170]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ff8e
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]
mov ecx, dword [ebx + 4]
cmp ecx, 0xa
jge 0x40ffc4
lea edi, [ebp - 0x170]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ffb3
mov ax, word [0x4553d8]
mov word [edi], ax
push 0xa
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.00433a7c
lea edx, [ebp - 0x68]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x40ffd8
lea edi, [ebp - 0x170]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ffe8
mov ecx, edx
lea eax, [ebp - 0x590]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push eax
lea eax, [ebp - 0x170]
mov ecx, edx
push eax
lea eax, [ebp - 0x278]
and ecx, 3
push eax
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x7a0]
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.00433c37
lea eax, [ebp - 0x7a0]
push eax
push dword [ebp - 0x183c]
call fcn.0043ab75
mov ecx, dword [ebp - 4]
add esp, 0x1c
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.0042dc3d
leave
ret