Function at 0x12f83f80
Capabilities:
Enumerate files on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x1306f7a0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
call fcn.13001280
push 0xa
lea ecx, [esp + 0x38]
mov ebp, 1
call fcn.12f4f1d0
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x5c]
push eax
mov dword [esp + 0x58], 0
call fcn.12f46a80
lea ecx, [esp + 0x5c]
mov byte [esp + 0x54], 1
push ecx
lea ecx, [esp + 0x38]
call fcn.12f4f890
lea ecx, [esp + 0x5c]
mov byte [esp + 0x54], 0
call fcn.12f47220
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x12f8438b
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
lea edi, [edx + 8]
mov ebx, dword [eax - 8]
lea ecx, [ebx + 0x10a]
push ecx
mov ecx, edi
call fcn.12f47ef0
mov esi, eax
call fcn.12f9c6c0
test eax, eax
jne 0x12f84054
call fcn.12f9c660
test eax, eax
jne 0x12f84054
call fcn.12f9c6e0
test eax, eax
jne 0x12f84054
push 0x130c39d8
lea edx, [esp + 0x24]
push edi
push edx
call fcn.12f47990
mov ecx, dword [esp + 0x64]
mov eax, dword [eax]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x20]
jmp 0x12f840bf
call fcn.13001280
mov eax, dword [0x131ca86c]
push 0x130c39d8
test eax, eax
push edi
je 0x12f8409f
lea edx, [esp + 0x2c]
push edx
call fcn.12f47990
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
mov eax, dword [eax]
push 2
push ecx
push 0
push edx
push 1
push eax
mov byte [esp + 0x6c], 2
call dword [0x131ca86c]
mov dword [esp + 0x14], eax
mov byte [esp + 0x54], 0
lea ecx, [esp + 0x24]
jmp 0x12f840bf
lea eax, [esp + 0x30]
push eax
call fcn.12f47990
mov ecx, dword [esp + 0x64]
mov eax, dword [eax]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x28]
call fcn.12f47220
cmp dword [esp + 0x14], 0xffffffff
je 0x12f84361
mov eax, 2
lea edx, [esi + ebx*2]
sub eax, esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x64]
mov eax, dword [edi]
add edi, 0x2c
push edi
mov dword [esp + 0x1c], eax
call fcn.12f5c44d
mov ebp, eax
add esp, 4
mov dword [esp + 0x5c], 1
lea ecx, [ebx + ebp]
cmp ecx, 0x104
jb 0x12f84153
push 4
push 0x130b9230
push esi
call fcn.12f5e2b3
add esp, 0xc
test eax, eax
je 0x12f84153
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
add edx, eax
lea ecx, [esi + 8]
push edx
push esi
push ecx
call fcn.12f5c4f0
push 4
push 0x130b9230
push esi
call fcn.12f5c4ab
mov eax, dword [esp + 0x28]
add esp, 0x18
add ebx, 4
add eax, 8
mov dword [esp + 0x10], eax
test byte [esp + 0x18], 0x10
je 0x12f84293
cmp word [edi], 0x2e
jne 0x12f84186
mov ecx, dword [esp + 0x64]
mov ax, word [ecx + 0x2e]
test ax, ax
je 0x12f84345
cmp ax, 0x2e
jne 0x12f84186
cmp word [ecx + 0x30], 0
je 0x12f84345
push edi
push esi
call fcn.12f5c865
mov al, byte [esp + 0x70]
add esp, 8
test al, 0x30
je 0x12f84212
mov edi, dword [esp + 0x78]
test edi, edi
je 0x12f841db
test esi, esi
je 0x12f84212
push 0x5c
push edi
call fcn.12f5cfc9
add esp, 8
test eax, eax
je 0x12f841b7
push edi
push esi
jmp 0x12f841cf
push 0x5c
push esi
call fcn.12f5c8b4
add esp, 8
test eax, eax
je 0x12f841cb
add eax, 2
jmp 0x12f841cd
mov eax, esi
push edi
push eax
call fcn.12f51310
add esp, 8
test eax, eax
je 0x12f84212
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
test eax, eax
mov eax, dword [esp + 0x18]
push edx
je 0x12f841f0
mov eax, dword [esp + 0x68]
lea ecx, [ebx + ebp]
push eax
push ecx
push esi
call dword [esp + 0x80]
test eax, eax
mov dword [esp + 0x5c], eax
je 0x12f8435d
cmp eax, 2
je 0x12f8433c
mov edx, dword [esp + 0x68]
test dh, 2
je 0x12f8424a
mov eax, dword [esp + 0x64]
test eax, eax
je 0x12f8424a
mov ecx, dword [eax + 0x24]
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x12f8424a
test ah, 4
je 0x12f8424a
test ecx, 0x20000000
jne 0x12f8433c
cmp ecx, 0x8000001b
je 0x12f8433c
test dl, 0x40
jne 0x12f8433c
lea eax, [ebx + ebp]
push esi
lea ecx, [esp + 0x20]
mov word [esi + eax*2], 0x5c
mov word [esi + eax*2 + 2], 0
call fcn.12f46a80
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x34]
push edx
mov byte [esp + 0x58], 3
call fcn.12f4f890
lea ecx, [esp + 0x1c]
mov byte [esp + 0x54], 0
call fcn.12f47220
jmp 0x12f8433c
test byte [esp + 0x68], 0x80
jne 0x12f84345
push edi
push esi
call fcn.12f5c865
mov eax, dword [esp + 0x80]
add esp, 8
test eax, eax
je 0x12f8430b
push 0x5c
push eax
call fcn.12f5cfc9
add esp, 8
test eax, eax
je 0x12f842c4
mov edi, esi
test edi, edi
je 0x12f8433c
mov ecx, dword [esp + 0x78]
push 0x5c
push ecx
call fcn.12f5cfc9
add esp, 8
test eax, eax
je 0x12f842e3
mov edx, dword [esp + 0x78]
push edx
push edi
jmp 0x12f842ff
push 0x5c
push edi
call fcn.12f5c8b4
add esp, 8
test eax, eax
je 0x12f842f7
add eax, 2
jmp 0x12f842f9
mov eax, edi
mov ecx, dword [esp + 0x78]
push ecx
push eax
call fcn.12f51310
add esp, 8
test eax, eax
je 0x12f8433c
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x12f8431f
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
push edx
push eax
jmp 0x12f84329
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
push ecx
push edx
add ebp, ebx
push ebp
push esi
call dword [esp + 0x80]
test eax, eax
mov dword [esp + 0x5c], eax
je 0x12f8435d
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x12f840e1
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x38]
call fcn.12f4fc20
lea ecx, [esp + 0x30]
call fcn.12f47220
test ebp, ebp
jne 0x12f83fe8
lea ecx, [esp + 0x34]
mov dword [esp + 0x54], 0xffffffff
call fcn.12f4f250
mov ecx, dword [esp + 0x4c]
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x48
ret