Function at 0x4531b3d4
Capabilities:
Enumerate files on windows
Enumerate files recursively
Read file on windows
Write file on windows

Disassembly:
mov eax, 0x453626ae
call fcn.4534228c
sub esp, 0x158
push ebx
xor ebx, ebx
cmp dword [0x4537f6fc], ebx
push esi
push edi
mov dword [ebp - 0x14], ecx
jne 0x4531b412
push 0x4000
call fcn.45341d70
cmp eax, ebx
pop ecx
mov dword [0x4537f6f8], eax
jne 0x4531b412
mov eax, 0x8007000e
jmp 0x4531b6d7
inc dword [0x4537f6fc]
push 0x4536697c
push dword [ebp + 8]
call fcn.45321e5f
mov esi, dword [ebp + 0x10]
cmp dword [esi + 0x14], ebx
jne 0x4531b444
push dword [ebp + 0xc]
call fcn.45321df7
test eax, eax
jne 0x4531b444
dec dword [0x4537f6fc]
jmp 0x4531b6d5
lea eax, [ebp - 0x164]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x20], eax
jne 0x4531b46c
dec dword [0x4537f6fc]
mov eax, 0x80070006
jmp 0x4531b6d7
push 1
push dword [ebp + 8]
call fcn.45321e8b
mov byte [eax], bl
cmp byte [ebp - 0x138], 0x2e
je 0x4531b68f
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x138]
push eax
push dword [esi + 8]
call fcn.4531b6e8
test eax, eax
jne 0x4531b68f
lea eax, [ebp - 0x138]
push eax
push dword [ebp + 8]
call fcn.45321e5f
lea eax, [ebp - 0x138]
push eax
push dword [ebp + 0xc]
call fcn.45321e5f
test byte [ebp - 0x164], 0x10
je 0x4531b4dd
push dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.4531b3d4
jmp 0x4531b677
push ebx
push ebx
push 3
push ebx
push 1
push 0x80000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, ebx
je 0x4531b68f
mov esi, dword [esi + 0x14]
cmp esi, ebx
je 0x4531b547
push 0x110
call fcn.45342660
pop ecx
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
mov dword [ebp - 4], ebx
je 0x4531b52a
mov eax, dword [ebp - 0x14]
push dword [eax + 0x4e0]
call fcn.45322bf1
jmp 0x4531b52c
xor eax, eax
push dword [ebp + 0xc]
or dword [ebp - 4], 0xffffffff
mov ecx, eax
mov dword [ebp - 0x10], eax
call fcn.45322f67
test eax, eax
jl 0x4531b68f
jmp 0x4531b567
push ebx
push ebx
push 2
push ebx
push 2
push 0x40000000
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, ebx
mov dword [ebp - 0x1c], eax
je 0x4531b68f
lea eax, [ebp - 0x18]
push ebx
push eax
push 0x4000
push dword [0x4537f6f8]
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4531b5c3
cmp esi, ebx
je 0x4531b59c
push dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
push dword [0x4537f6f8]
call fcn.453231ff
mov dword [ebp - 0x24], eax
jmp 0x4531b5b7
lea eax, [ebp - 0x24]
push ebx
push eax
push dword [ebp - 0x18]
push dword [0x4537f6f8]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4531b5c3
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jne 0x4531b6ab
cmp dword [ebp - 0x18], 0x4000
je 0x4531b567
push dword [0x4537f6fc]
push dword [ebp + 0xc]
call fcn.45321e8b
mov ecx, dword [ebp + 0x14]
inc eax
push eax
call fcn.45311153
mov ecx, dword [ebp + 0x14]
push 0x45366978
call fcn.45311153
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x138]
push eax
push str.exe_bat_com_cmd
call fcn.4531b6e8
test eax, eax
je 0x4531b610
mov eax, 0x45363780
jmp 0x4531b632
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x138]
push eax
push str.obj_pch_pdb_sys_res
call fcn.4531b6e8
test eax, eax
mov eax, 0x45363784
jne 0x4531b632
mov eax, 0x45366950
mov ecx, dword [ebp + 0x14]
push eax
call fcn.45311153
mov ecx, dword [ebp + 0x14]
push 0x4536694c
call fcn.45311153
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
cmp esi, ebx
je 0x4531b66d
cmp dword [ebp - 0x10], ebx
je 0x4531b677
mov ecx, dword [ebp - 0x10]
call fcn.45322c07
push dword [ebp - 0x10]
call fcn.45341eb0
pop ecx
jmp 0x4531b677
cmp dword [ebp - 0x1c], ebx
je 0x4531b677
push dword [ebp - 0x1c]
call edi
push 1
push dword [ebp + 8]
call fcn.45321e8b
push 1
mov byte [eax], bl
push dword [ebp + 0xc]
call fcn.45321e8b
mov byte [eax], bl
lea eax, [ebp - 0x164]
push eax
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x4531b6b8
mov esi, dword [ebp + 0x10]
jmp 0x4531b478
dec dword [0x4537f6fc]
mov eax, 0x80004005
jmp 0x4531b6d7
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_FindClose]
dec dword [0x4537f6fc]
jne 0x4531b6d5
push dword [0x4537f6f8]
call fcn.45341e40
pop ecx
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10