Function at 0x4011e1
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa78
mov esi, esp
mov dword [esi + 0xa60], ebp
lea eax, [esi + 0xa68]
mov dword [esi + 0x58], ecx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x436f50
mov edx, dword fs:[0]
mov dword [eax], edx
mov dword fs:[0], eax
and dword [esi + 0x7c], 0
and dword [esi + 0x84], 0
mov ebx, dword [ecx + 0x28]
mov edx, dword [ecx + 0x2c]
mov ecx, ebx
mov dword [esi + 0xc], edx
call fcn.004298b0
test eax, eax
je 0x401c04
mov edi, edx
lea ecx, [esi + 0x5c]
mov edx, eax
push edi
call fcn.00433310
pop eax
mov edx, dword [esi + 0xc]
mov ecx, ebx
call fcn.00421910
test al, al
je 0x40126d
lea ecx, [esi + 0x68]
mov edx, ebx
push dword [esi + 0xc]
call fcn.00429be0
pop eax
jmp 0x4012b1
lea ecx, [esi + 0x358]
call fcn.00420ef0
lea edi, [esi + 0x5b8]
lea edx, [esi + 0x358]
mov ecx, edi
push 0x4486bc
call fcn.00404a2b
pop eax
mov ecx, edi
mov edx, ebx
push dword [esi + 0xc]
call fcn.00427000
pop eax
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esi + 0x70], xmm1
movsd qword [esi + 0x68], xmm0
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi + 0x70]
call fcn.004285d0
mov ecx, eax
push 0x4486cc
call fcn.004049b6
pop ecx
test edx, edx
je 0x401c16
js 0x401c25
mov edi, eax
mov al, byte [0x45ca98]
mov ebx, edx
xor edx, edx
inc edx
mov ecx, ebx
call fcn.0040c370
test eax, eax
je 0x401c2a
push ebx
push edi
mov dword [esi + 0x14], eax
push eax
call fcn.004382c0
add esp, 0xc
mov al, byte [0x45ca98]
xor edx, edx
mov ecx, ebx
inc edx
mov dword [esi], edx
call fcn.0040c370
test eax, eax
je 0x401c34
mov ecx, edi
mov edi, eax
push ebx
push ecx
push eax
call fcn.004382c0
add esp, 0xc
lea ecx, [esi + 0x358]
mov dword [esi + 0xc], ebx
mov dword [esi + 0xa70], 3
mov edx, str.fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_n
mov dword [ecx], ebx
mov dword [ecx + 4], edi
mov dword [ecx + 8], ebx
mov byte [ecx + 0xc], 0
push 1
call fcn.00427000
pop eax
lea ecx, [esi + 0x358]
mov byte [esi + 0xb], 1
mov dword [esi + 0xa70], 1
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [esi + 4], eax
mov dword [esi + 0x28], edx
push edi
call fcn.0041f870
pop eax
mov eax, dword [esi + 0x358]
mov ebx, dword [esi + 0x35c]
mov ecx, dword [esi + 0x360]
cmp eax, 0x80000000
je 0x401c4e
lea edx, [esi + 0x358]
mov byte [esi + 0xb], 1
mov dword [edx], eax
mov dword [edx + 8], ecx
mov dword [edx + 4], ebx
lea ecx, [esi + 0x104]
push 1
call fcn.004267d0
pop eax
mov eax, dword [esi + 0x104]
mov ebx, dword [esi + 0x108]
cmp eax, 0x80000000
mov dword [esi + 0x48], eax
je 0x401c53
push 0x250
push 0
lea edi, [esi + 0x358]
push edi
call fcn.00438840
add esp, 0xc
push edi
push ebx
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov edi, eax
cmp eax, 0xffffffff
je 0x401467
mov dword [esi + 0x44], ebx
mov al, byte [0x45ca98]
push 0x18
pop ecx
push 4
pop edx
call fcn.0040c370
test eax, eax
je 0x401cb7
xor ecx, ecx
mov edx, dword [esi + 0xc]
mov dword [esi + 0xc], eax
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x14]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
and dword [eax + 0x14], 0
lea eax, [esi + 0x360]
mov edx, dword [eax - 8]
mov ecx, dword [eax - 4]
mov ebx, edx
mov dword [esi + 0x20], edx
shrd edx, ecx, 8
mov dword [esi + 0x18], ecx
lea ecx, [esi + 0x5b8]
mov dword [esi + 0x3c], edx
push 0x248
push eax
push ecx
call fcn.004382c0
add esp, 0xc
mov ebx, dword [esi + 0x44]
jmp 0x40147c
push 2
pop eax
mov dword [esi], eax
mov dword [esi + 0x20], 0
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [esi + 0x18], eax
cmp dword [esi + 0x48], 0
je 0x40148c
push 2
pop edx
mov ecx, ebx
call fcn.0040c3d0
cmp dword [esi + 4], 0
mov ebx, dword [esi + 0xc]
je 0x4014a0
mov ecx, dword [esi + 0x28]
xor edx, edx
inc edx
call fcn.0040c3d0
cmp edi, 0xffffffff
jne 0x4014b3
mov ecx, dword [esi + 0x14]
xor edx, edx
inc edx
call fcn.0040c3d0
xor edi, edi
dec edi
cmp dword [esi], 2
mov dword [esi + 0x40], edi
je 0x401c85
mov eax, dword [esi + 0x3c]
movzx ecx, byte [esi + 0x20]
lea edi, [esi + 0x364]
shl eax, 8
or ecx, eax
lea eax, [esi + 0x5b8]
mov dword [esi + 0x14], ecx
push 0x248
push eax
push edi
call fcn.004382c0
add esp, 0xc
mov eax, dword [esi + 0x40]
mov dword [edi + 0x248], ebx
mov ecx, dword [esi]
mov dword [edi + 0x24c], eax
mov eax, dword [esi + 0x18]
mov dword [edi - 0xc], ecx
mov dword [esi + 0x10], ecx
mov dword [edi - 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi - 8], eax
lea edi, [esi + 0x38e]
movzx eax, word [edi - 4]
movzx edx, word [edi - 2]
mov dword [esi + 0x54], eax
xor eax, 0x2e
mov word [esi + 0x52], dx
or ax, dx
movzx eax, word [edi - 6]
lea edi, [esi + 0x810]
mov edx, ecx
sete byte [esi + 0x1f]
mov word [esi + 0x32], ax
cmp word [esi + 0x54], 0
sete al
cmp word [esi + 0x32], 0x2e
sete cl
cmp edx, 1
jne 0x4015ba
or al, byte [esi + 0x1f]
and cl, al
jne 0x4015ba
lock inc dword [ebx]
jle 0x401bba
push 0x24
lea eax, [esi + 0x364]
push eax
lea eax, [esi + 0xe0]
push eax
call fcn.004382c0
add esp, 0xc
push 0x21e
lea eax, [esi + 0x38e]
push eax
push edi
call fcn.004382c0
add esp, 0xc
movzx eax, word [esi + 0x32]
mov edi, dword [esi + 0x3c]
mov edx, dword [esi + 0x18]
mov dword [esi + 0xc], ebx
mov word [esi + 0x30], ax
mov eax, dword [esi + 0x54]
mov word [esi + 0x2e], ax
movzx eax, word [esi + 0x52]
mov dword [esi + 0x14], edi
mov word [esi + 0x2c], ax
mov eax, dword [esi + 0x20]
mov ecx, eax
jmp 0x4016a5
push 0x250
push 0
lea edi, [esi + 0x104]
push edi
call fcn.00438840
add esp, 0xc
push edi
mov edi, dword [esi + 0x40]
push edi
call dword [sym.imp.kernel32.dll_FindNextFileW]
test eax, eax
je 0x40160e
cmp word [esi + 0x130], 0x2e
jne 0x40162c
movzx eax, word [esi + 0x132]
test ax, ax
je 0x401605
cmp ax, 0x2e
jne 0x40162c
cmp word [esi + 0x134], 0
jne 0x40162c
lea eax, [esi + 0x104]
push eax
jmp 0x4015d4
mov edi, dword [sym.imp.kernel32.dll_GetLastError]
call edi
cmp eax, 0x12
je 0x401b38
mov dword [esi + 0xc], ebx
xor ebx, ebx
call edi
mov edx, eax
xor ecx, ecx
jmp 0x4016a5
lock inc dword [ebx]
jle 0x401bba
mov eax, dword [esi + 0x104]
mov edi, dword [esi + 0x108]
mov dword [esi], eax
shrd eax, edi, 8
mov dword [esi + 0x14], eax
push 0x24
lea eax, [esi + 0x10c]
push eax
lea eax, [esi + 0xe0]
push eax
call fcn.004382c0
add esp, 0xc
movzx eax, word [esi + 0x130]
mov word [esi + 0x30], ax
movzx eax, word [esi + 0x132]
mov word [esi + 0x2e], ax
movzx eax, word [esi + 0x134]
mov word [esi + 0x2c], ax
push 0x21e
lea eax, [esi + 0x136]
push eax
lea eax, [esi + 0x810]
push eax
call fcn.004382c0
mov ecx, dword [esi]
mov edx, edi
add esp, 0xc
mov dword [esi + 0xc], ebx
test ebx, ebx
lea edi, [esi + 0x88]
je 0x4016fe
push 0x24
lea eax, [esi + 0xe0]
push eax
push edi
mov dword [esi + 4], edx
mov dword [esi], ecx
call fcn.004382c0
add esp, 0xc
push 0x21e
lea eax, [esi + 0x810]
push eax
lea eax, [esi + 0x104]
push eax
call fcn.004382c0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
add esp, 0xc
movzx eax, word [esi + 0x30]
mov word [esi + 0x48], ax
movzx eax, word [esi + 0x2e]
mov word [esi + 0x28], ax
movzx eax, word [esi + 0x2c]
mov word [esi + 0x44], ax
mov eax, dword [esi + 0x14]
movzx ecx, cl
mov dword [esi + 0x5bc], ebx
mov dword [esi + 0x5c4], edx
shl eax, 8
or ecx, eax
mov dword [esi + 0x5c0], ecx
push 0x24
push edi
lea eax, [esi + 0x5c8]
push eax
call fcn.004382c0
add esp, 0xc
movzx eax, word [esi + 0x48]
mov word [esi + 0x5ec], ax
movzx eax, word [esi + 0x28]
mov word [esi + 0x5ee], ax
movzx eax, word [esi + 0x44]
mov word [esi + 0x5f0], ax
push 0x21e
lea eax, [esi + 0x104]
push eax
lea eax, [esi + 0x5f2]
push eax
call fcn.004382c0
add esp, 0xc
test ebx, ebx
mov dword [esi + 0x5b8], 1
je 0x40188c
push 0x250
lea eax, [esi + 0x5c0]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.004382c0
add esp, 0xc
mov dword [esi + 0x104], ebx
lea ecx, [esi + 0xe0]
lea edx, [esi + 0x104]
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov dword [esi + 0x24], eax
call fcn.00426f10
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe8]
test edi, edi
mov ebx, 1
mov dword [esi + 4], eax
mov dword [esi], ecx
je 0x4017ef
js 0x401be7
mov al, byte [0x45ca98]
xor edx, edx
mov ecx, edi
inc edx
call fcn.0040c370
mov ebx, eax
test eax, eax
je 0x401bc5
push edi
push dword [esi + 0x24]
push ebx
call fcn.004382c0
add esp, 0xc
mov edx, dword [esi + 4]
mov dword [esi + 0x88], edi
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], edi
mov byte [esi + 0x94], 0
mov dword [esi + 0xa70], 5
lea ecx, [esi + 0x88]
push dword [esi]
call fcn.00427000
pop eax
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x8c]
mov edi, dword [esi + 0x90]
cmp dword [esi + 0xe0], 0
mov ebx, dword [esi + 0xc]
mov dword [esi + 0x24], eax
mov dword [esi], ecx
je 0x40185e
mov ecx, dword [esi + 4]
xor edx, edx
inc edx
call fcn.0040c3d0
mov edx, dword [esi]
lea ecx, [esi + 0x88]
push edi
call fcn.00428830
pop eax
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 0x94]
xor eax, 2
or eax, dword [esi + 0x8c]
jne 0x4018a1
mov eax, dword [esi + 0x90]
jmp 0x4018cb
lea eax, [esi + 0x5c0]
push eax
call fcn.0040467c
pop eax
mov ebx, dword [esi + 0xc]
jmp 0x401b0a
mov eax, dword [esi + 0xc8]
bt eax, 0xa
setae cl
bt dword [esi + 0xcc], 0x1d
setae dl
or dl, cl
test al, 0x10
sete al
and al, dl
movzx eax, al
shl eax, 8
or eax, 4
cmp al, 4
je 0x401919
cmp al, 3
jne 0x401919
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x38], edi
mov dword [esi + 0xa70], 6
mov dword [esi + 0x34], edx
push edx
mov dword [esi + 4], ecx
call dword [ecx]
add esp, 4
mov eax, dword [esi + 4]
cmp dword [eax + 4], 0
je 0x401908
mov edx, dword [eax + 8]
mov ecx, dword [esi + 0x34]
call fcn.0040c3d0
mov ecx, dword [esi + 0x38]
push 4
pop edx
call fcn.0040c3d0
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi]
mov edi, eax
call fcn.0040d2d6
mov eax, edi
cmp al, 4
jne 0x401aff
and eax, 0xff00
je 0x401aff
mov edi, dword [esi + 0x104]
push 0x250
lea eax, [esi + 0x108]
push eax
lea eax, [esi + 0x810]
push eax
call fcn.004382c0
add esp, 0xc
test edi, edi
je 0x401b0a
push 0x250
lea eax, [esi + 0x810]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.004382c0
add esp, 0xc
mov dword [esi + 0x104], edi
lea edi, [esi + 0x104]
lea ecx, [esi + 0xd0]
mov edx, edi
call fcn.00426f10
mov ecx, edi
call fcn.00404700
mov eax, dword [esi + 0xd0]
cmp eax, 0x80000000
je 0x401b38
mov edx, dword [esi + 0xd4]
mov dword [esi + 4], eax
lea ecx, [esi + 0x810]
mov dword [esi + 0x24], edx
push dword [esi + 0xd8]
call fcn.00433310
pop eax
mov edi, dword [esi + 0x818]
mov ecx, dword [esi + 0x814]
mov dword [esi], ecx
mov edx, edi
push dword [esi + 0x64]
push dword [esi + 0x60]
call fcn.00436296
pop ecx
pop edx
test al, al
je 0x401b17
mov ecx, dword [esi]
mov edx, edi
push 3
push 0x44efd0
call fcn.004122ae
pop ecx
pop edx
lea ebx, [edi - 3]
test al, al
mov dword [esi + 0x5b8], 0x4486ec
mov dword [esi + 0x5bc], 2
mov byte [esi + 0x10], al
lea eax, [esi + 0x5c]
lea ecx, [esi + 0x104]
lea edx, [esi + 0x5b8]
cmove ebx, edi
and dword [esi + 0x5c8], 0
mov dword [esi + 0x88], eax
lea eax, [esi + 0x88]
mov dword [esi + 0x8c], 0x407f01
mov dword [esi + 0x5c0], eax
mov dword [esi + 0x5c4], 1
call fcn.004077bd
mov eax, dword [esi + 0x104]
mov edi, dword [esi + 0x108]
mov ecx, dword [esi]
mov edx, ebx
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x34], eax
push eax
push edi
call fcn.00436296
pop ecx
pop edx
mov ecx, dword [esi + 0x38]
mov edx, edi
mov byte [esi + 0x4c], al
call fcn.0040d2d6
cmp byte [esi + 0x4c], 0
mov edi, dword [esi]
je 0x401ad0
mov eax, dword [esi + 0x34]
lea ecx, [esi + 0x5b8]
sub ebx, eax
lea edx, [edi + eax]
push ebx
call fcn.004117d0
pop eax
cmp byte [esi + 0x5b8], 0
jne 0x401ad0
movzx eax, byte [esi + 0x10]
mov edx, dword [esi + 0x5bc]
lea ecx, [esi + 0x7c]
push eax
call fcn.0040710d
pop eax
mov ecx, dword [esi + 0x810]
mov edx, edi
call fcn.004046dd
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x24]
call fcn.0040d2d6
mov ebx, dword [esi + 0xc]
mov dword [esi + 0x10], 0
xor edx, edx
lea edi, [esi + 0x810]
jmp 0x40153b
lea ecx, [esi + 0x104]
call fcn.00404700
xor edx, edx
lea edi, [esi + 0x810]
jmp 0x40153b
mov ecx, dword [esi + 0x810]
mov edx, dword [esi]
call fcn.004046dd
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x24]
call fcn.0040d2d6
mov dword [esi + 0x10], 0
jmp 0x401b0a
and dword [esi + 0x358], 0
lea edi, [esi + 0x5ac]
push dword [edi + 4]
call dword [sym.imp.kernel32.dll_FindClose]
mov ecx, edi
call fcn.00404700
movsd xmm0, qword [esi + 0x7c]
mov eax, dword [esi + 0x84]
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 0x6c]
movsd qword [edi - 0x254], xmm0
mov dword [edi - 0x24c], eax
call fcn.0040d2d6
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x60]
call fcn.004046dd
mov ebx, dword [esi + 0x58]
lea ecx, [ebx + 0x44]
call fcn.00404518
mov eax, dword [edi - 0x24c]
movsd xmm0, qword [edi - 0x254]
mov ecx, dword [esi + 0xa68]
mov dword [ebx + 0x4c], eax
movsd qword [ebx + 0x44], xmm0
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x10]
mov dword [esi + 0x358], eax
ud2
mov eax, dword [esi + 0x10]
xor ecx, ecx
mov edx, edi
mov dword [esi + 0xa70], 4
inc ecx
mov dword [esi + 0x358], eax
call fcn.00445bf0
jmp 0x401ccf
mov eax, dword [esi + 0x10]
mov dword [esi + 0xa70], 4
mov dword [esi + 0x358], eax
call fcn.0040c490
jmp 0x401ccf
push 0x14
pop edx
mov ecx, str.basepath.file_name__C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_file_rotate_0.7.5_src_suffix.rs
push 0x4486ac
call fcn.00446110
push 3
pop eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], 0
jmp 0x401c85
call fcn.0040c490
xor ecx, ecx
mov edx, ebx
inc ecx
call fcn.00445bf0
and dword [esi + 0xa70], 0
xor ecx, ecx
mov edx, ebx
mov byte [esi + 0xa], 1
inc ecx
call fcn.00445bf0
jmp 0x401ccf
mov dword [esi + 0x18], ecx
jmp 0x401c5c
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x18], eax
mov eax, ebx
shr eax, 8
cmp dword [esi + 4], 0
mov dword [esi + 0x3c], eax
je 0x401c75
mov ecx, dword [esi + 0x28]
xor edx, edx
inc edx
call fcn.0040c3d0
mov ecx, dword [esi + 0x14]
xor edx, edx
inc edx
call fcn.0040c3d0
mov eax, ebx
mov dword [esi + 0x20], eax
mov ecx, dword [esi + 0x3c]
movzx eax, byte [esi + 0x20]
lea edi, [esi + 0x358]
shl ecx, 8
or eax, ecx
mov ecx, dword [esi + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x4486dc
push 0x44878c
push edi
call fcn.00446090
mov dword [esi + 0x40], edi
mov dword [esi + 0xa70], 2
push 4
pop ecx
push 0x18
pop edx
call fcn.00445bf0
ud2