Function at 0x4160e0
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d8235
mov eax, dword fs:[0]
push eax
sub esp, 0x2d4
mov eax, dword [0x532d60]
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 eax, edx
mov dword [ebp - 0x2c4], eax
mov ebx, ecx
mov dword [ebp - 0x29c], ebx
and dword [ebp - 0x20], 0xfffffe00
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 1
mov esi, dword [0x537408]
mov ecx, esi
imul ecx, esi
mov eax, ecx
cdq
mov edi, 0xf
idiv edi
cmp edx, 5
jne 0x416198
imul ecx, esi
mov eax, ecx
cdq
mov ecx, 0x13
idiv ecx
cmp edx, 4
jne 0x41617a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x50
div ecx
lea esi, [edx + 1]
xor edi, edi
test esi, esi
je 0x416192
mov eax, esi
mov ecx, esi
cdq
sub eax, edx
and ecx, 1
mov esi, eax
add edi, ecx
sar esi, 1
jne 0x416180
mov dword [0x537408], edi
mov byte [ebp - 4], 2
mov al, byte [ebx + 8]
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x18], 0
test al, al
je 0x4161cf
cmp al, 7
je 0x4161cf
push 0x42b
push str...CrossRiderGeneralJsonjson_value.cpp
push str.type___nullValue__type___objectValue
call fcn.004bac2c
add esp, 0xc
cmp byte [ebx + 8], 0
jne 0x4161df
mov ecx, 0x537e88
jmp 0x416269
mov dword [ebp - 0x2b0], str.path
mov dword [ebp - 0x2ac], 0
mov edi, dword [ebx]
lea eax, [ebp - 0x2b0]
push eax
mov ecx, edi
call fcn.0044e110
mov ecx, dword [edi]
cmp eax, ecx
je 0x416245
mov esi, dword [eax + 0x10]
mov edx, str.path
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x416231
test bl, bl
je 0x41622d
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x416231
add edx, 2
add esi, 2
test bl, bl
jne 0x416211
xor edx, edx
jmp 0x416236
sbb edx, edx
or edx, 1
test edx, edx
sets dl
mov dword [ebp - 0x2a0], eax
test dl, dl
je 0x41624b
mov dword [ebp - 0x2a0], ecx
lea eax, [ebp - 0x2a0]
mov eax, dword [eax]
mov byte [ebp - 4], 2
mov ebx, dword [ebp - 0x29c]
cmp eax, ecx
mov ecx, 0x537e88
je 0x416269
lea ecx, [eax + 0x18]
sub esp, 0x18
push esp
call fcn.0044cb40
lea ecx, [ebp - 0x18]
call fcn.00433a00
add esp, 0x18
mov byte [ebp - 4], 4
mov al, byte [ebx + 8]
test al, al
je 0x4162a3
cmp al, 7
je 0x4162a3
push 0x42b
push str...CrossRiderGeneralJsonjson_value.cpp
push str.type___nullValue__type___objectValue
call fcn.004bac2c
add esp, 0xc
cmp byte [ebx + 8], 0
jne 0x4162b3
mov ecx, 0x537e88
jmp 0x416337
mov dword [ebp - 0x2b0], str.folder
mov dword [ebp - 0x2ac], 0
mov edi, dword [ebx]
lea eax, [ebp - 0x2b0]
push eax
mov ecx, edi
call fcn.0044e110
mov ecx, dword [edi]
cmp eax, ecx
je 0x416319
mov esi, dword [eax + 0x10]
mov edx, str.folder
mov bl, byte [edx]
cmp bl, byte [esi]
jne 0x416305
test bl, bl
je 0x416301
mov bl, byte [edx + 1]
cmp bl, byte [esi + 1]
jne 0x416305
add edx, 2
add esi, 2
test bl, bl
jne 0x4162e5
xor edx, edx
jmp 0x41630a
sbb edx, edx
or edx, 1
test edx, edx
sets dl
mov dword [ebp - 0x2a0], eax
test dl, dl
je 0x41631f
mov dword [ebp - 0x2a0], ecx
lea eax, [ebp - 0x2a0]
mov eax, dword [eax]
cmp eax, ecx
mov byte [ebp - 4], 4
mov ecx, 0x537e88
je 0x416337
lea ecx, [eax + 0x18]
call fcn.0044d040
push 2
test al, al
push 0x51aaac
lea ecx, [ebp - 0x18]
setne byte [ebp - 0x2a5]
call fcn.00427f00
lea eax, [ebp - 0x298]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x2a4], eax
cmp eax, 0xffffffff
jne 0x416559
mov dword [ebp - 0x29c], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x5326d0
push eax
push str.enumFileSystem_FindFirstFile__d
lea ecx, [ebp - 0x29c]
call fcn.00427e80
push str.enumFolder_
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 6
call fcn.00403ac0
mov byte [ebp - 4], 7
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2c8], esi
lea eax, [ebp - 0x29c]
push eax
lea edx, [ebp - 0x2c8]
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 8
call fcn.00433ec0
add esp, 4
mov edi, eax
push str.GlobalLog
lea ecx, [ebp - 0x2bc]
mov byte [ebp - 4], 9
call fcn.00403ac0
push 2
push edi
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x2bc]
push eax
mov ecx, 0x537920
mov byte [ebp - 4], 0xa
call fcn.004018b0
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x2bc]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x416441
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x2ac]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416464
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416481
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x2a0]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4164a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebp - 0x29c]
lea ecx, [ebp - 0x2e0]
call fcn.00433ad0
push eax
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0xb
call fcn.0044c7d0
push ecx
push str.error
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xc
call fcn.0044d470
lea ecx, [ebp - 0x2b8]
push ecx
mov ecx, eax
call fcn.0044ca80
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0xb
call fcn.0044c9c0
cmp dword [ebp - 0x2cc], 0x10
jb 0x41650b
push dword [ebp - 0x2e0]
call fcn.004b817c
add esp, 4
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x29c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41652e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41654e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2a4]
jmp 0x416ac3
mov edi, dword [ebp - 0x2b0]
or ebx, 0xffffffff
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x29c], eax
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 0xd
test eax, 0xffff0000
jne 0x4165a6
movzx esi, ax
mov ecx, esi
call fcn.00405910
test eax, eax
je 0x4165d2
push esi
push eax
lea ecx, [ebp - 0x29c]
call fcn.00404e50
jmp 0x4165d2
lea ecx, [ebp - 0x26c]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4165b0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x29c]
call fcn.00404a90
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x29c]
mov ecx, 0x51ab10
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x416607
test dx, dx
je 0x416603
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x416607
add eax, 4
add ecx, 4
test dx, dx
jne 0x4165e1
xor eax, eax
jmp 0x41660c
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x4167b4
mov eax, dword [ebp - 0x29c]
mov ecx, 0x51ab14
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41664a
test dx, dx
je 0x416646
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41664a
add eax, 4
add ecx, 4
test dx, dx
jne 0x416624
xor eax, eax
jmp 0x41664f
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x4167b4
mov esi, dword [0x537408]
mov eax, esi
imul eax, esi
cdq
mov ecx, 0xc
idiv ecx
cmp edx, 3
jne 0x4166de
test esi, esi
je 0x4166de
jmp 0x416680
mov ecx, esi
and ecx, 0x80000001
jns 0x41668f
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x41669c
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
jmp 0x4166a3
lea esi, [esi*2 + 1]
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
mov dword [0x537408], esi
sub ecx, 0
je 0x4166cd
sub ecx, 2
je 0x4166d0
dec ecx
je 0x4166d1
jmp 0x4166da
add esi, 2
inc esi
add esi, 2
mov dword [0x537408], esi
test esi, esi
jne 0x416680
cmp byte [ebp - 0x2a5], 0
je 0x4166f5
test byte [ebp - 0x298], 0x10
jne 0x416702
jmp 0x4167b4
test byte [ebp - 0x298], 0x10
jne 0x4167b4
lea edx, [ebp - 0x29c]
lea ecx, [ebp - 0x2e0]
call fcn.00433ad0
mov esi, eax
mov byte [ebp - 4], 0xf
mov eax, dword [0x538390]
and edi, 0xffffff04
or edi, 0x104
mov dword [ebp - 0x2b0], edi
mov dword [ebp - 0x2ac], 0
test al, 1
jne 0x41675d
or eax, 1
push 0x4e75e0
mov dword [0x538390], eax
mov dword [0x538314], 0x51fae8
call fcn.004b8949
add esp, 4
cmp dword [esi + 0x14], 0x10
mov edx, dword [esi + 0x10]
jb 0x416768
mov esi, dword [esi]
mov ecx, dword [0x534374]
push edx
mov eax, dword [ecx]
push esi
call dword [eax + 0xc]
mov dword [ebp - 0x2b8], eax
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x10
call fcn.0044d750
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0xf
call fcn.0044c9c0
cmp dword [ebp - 0x2cc], 0x10
jb 0x4167b4
push dword [ebp - 0x2e0]
call fcn.004b817c
add esp, 4
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x29c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4167d7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x298]
push eax
push dword [ebp - 0x2a4]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x416562
mov esi, dword [0x537408]
mov edi, 0x15
lea eax, [esi + 2]
lea ecx, [esi + 1]
imul eax, ecx
imul eax, esi
cdq
idiv edi
cmp edx, 4
jne 0x416852
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x63]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004b7950
add esp, 4
push eax
call fcn.004b8a0b
mov esi, dword [0x537408]
add esp, 4
lea eax, [esi + 1]
imul eax, esi
cdq
idiv edi
cmp edx, 3
jne 0x416868
push 0
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov eax, dword [ebp - 0x20]
test al, al
je 0x41687b
cmp al, 6
je 0x41687b
cmp al, 7
jne 0x41696f
movsx eax, al
cmp eax, 7
ja case.default.0x416883
jmp dword [eax*4 + 0x416ca8]
mov eax, dword [ebp - 0x28]
cmp dword [eax + 4], 0
je case.0x416883.0
mov eax, dword [eax]
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x2a0], eax
call fcn.0042db10
mov eax, dword [ebp - 0x2a0]
mov eax, dword [eax + 0x14]
inc eax
jmp 0x4168d3
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
jmp 0x4168d3
push 0x388
push str...CrossRiderGeneralJsonjson_value.cpp
push 0x51c678
call fcn.004bac2c
add esp, 0xc
xor eax, eax
test eax, eax
sete al
test al, al
je 0x41696f
mov eax, dword [ebp - 0x2b0]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0x2b0], eax
mov eax, dword [0x538390]
mov dword [ebp - 0x2ac], 0
test al, 1
jne 0x416928
or eax, 1
push 0x4e75e0
mov dword [0x538390], eax
mov dword [0x538314], 0x51fae8
call fcn.004b8949
add esp, 4
mov ecx, dword [0x534374]
push 0xffffffffffffffff
mov eax, dword [ecx]
push str.empty
call dword [eax + 0xc]
mov dword [ebp - 0x2b8], eax
push ecx
push str.error
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x11
call fcn.0044d470
lea ecx, [ebp - 0x2b8]
push ecx
mov ecx, eax
call fcn.0044ca80
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 4
call fcn.0044c9c0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41698f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 1
jmp 0x416ab9
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x416aca
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x48], 0x51c0cc
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x44], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0x19
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2a4], esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2e0]
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1a
call fcn.0044f670
mov edx, eax
mov byte [ebp - 4], 0x1b
cmp dword [edx + 0x14], 0x10
jb 0x416b26
mov edx, dword [edx]
sub esp, 0x18
mov edi, esp
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
cmp byte [edx], 0
jne 0x416b45
xor ecx, ecx
jmp 0x416b59
mov ecx, edx
lea ebx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416b50
sub ecx, ebx
push ecx
push edx
mov ecx, edi
call fcn.004012e0
lea ecx, [ebp - 0x2c0]
call fcn.00433a00
add esp, 0x18
mov byte [ebp - 4], 0x1c
mov edx, dword [eax]
lea edi, [esi - 0x10]
lea ecx, [edx - 0x10]
cmp ecx, edi
je 0x416bca
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x416bb5
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x416bb5
call fcn.00404b50
mov ebx, eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x416baa
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
lea esi, [ebx + 0x10]
mov dword [ebp - 0x2a4], esi
jmp 0x416bca
push dword [edx - 0xc]
lea ecx, [ebp - 0x2a4]
push edx
call fcn.00404a90
mov esi, dword [ebp - 0x2a4]
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x2c0]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416bf0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0x2cc], 0x10
jb 0x416c0b
push dword [ebp - 0x2e0]
call fcn.004b817c
add esp, 4
mov edi, dword [ebp - 0x2c4]
mov eax, 8
mov word [edi], ax
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x416c2c
call fcn.0040caf0
add esi, 0xfffffff0
mov dword [edi + 8], eax
mov byte [ebp - 4], 0x19
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x416c4a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x30], 0x10
mov dword [ebp - 0x48], 0x51c0cc
jb 0x416c62
push dword [ebp - 0x44]
call fcn.004b817c
add esp, 4
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x30], 0xf
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x44], 0
mov dword [ebp - 0x48], 0x51fca0
mov dword [ebp - 4], 0xffffffff
call fcn.0044c9c0
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.004b8181
mov esp, ebp
pop ebp
ret