Function at 0x437ad0
Capabilities:
Create thread
Resume thread
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov dword [ebp - 0x80], ecx
cmp dword [ebp + 0x10], 0xc
jne 0x437b42
mov ecx, 0x464f74
call fcn.0043c790
movzx eax, al
test eax, eax
jne 0x437b19
push 0
mov ecx, dword [0x464afc]
push ecx
mov ecx, dword [ebp - 0x80]
call fcn.00420f10
mov edx, dword [0x464b74]
mov eax, dword [edx]
mov ecx, dword [0x464b74]
mov edx, dword [eax + 8]
call edx
jmp 0x437b42
lea eax, [ebp - 4]
push eax
push 4
mov ecx, dword [ebp - 0x80]
push ecx
push 0x4377b0
push 0x1000
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.DLL_ResumeThread]
cmp dword [ebp + 0x10], 0xb
jne 0x437cb5
mov dword [ebp - 0x60], 0
push 0x54
push 0
lea eax, [ebp - 0x5c]
push eax
call fcn.00409d10
add esp, 0xc
push 0x104
call fcn.00438ba0
add esp, 4
mov dword [ebp - 0x64], eax
push str.report.txt
mov ecx, dword [ebp - 0x64]
push ecx
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
mov dword [ebp - 0x60], 0x58
mov edx, dword [ebp - 0x80]
mov eax, dword [edx + 0x50]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], str.All_Files
mov dword [ebp - 0x30], str.Save_Report
mov ecx, dword [ebp - 0x80]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0x104
lea ecx, [ebp - 0x60]
push ecx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
test eax, eax
je 0x437ca9
mov dword [ebp - 0x68], 0
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
mov edx, dword [ebp - 0x44]
push edx
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov dword [ebp - 0x6c], eax
push 0x400
call fcn.00438ba0
add esp, 4
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [0x464bd4]
jge 0x437c93
mov ecx, dword [ebp - 0x68]
shl ecx, 4
mov edx, dword [ecx + 0x463a64]
push edx
mov eax, dword [ebp - 0x68]
shl eax, 4
mov ecx, dword [eax + 0x463a60]
push ecx
mov edx, dword [ebp - 0x68]
shl edx, 4
mov eax, dword [edx + 0x463a5c]
push eax
mov ecx, dword [ebp - 0x68]
shl ecx, 4
mov edx, dword [ecx + 0x463a58]
mov eax, dword [edx*4 + 0x463a34]
push eax
push str._s_t_s_t_s_t_s_r_n
push 0x400
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.004011d0
add esp, 0x1c
mov edx, dword [ebp - 0x70]
push edx
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
shl eax, 1
mov dword [ebp - 0x74], eax
push 0
lea eax, [ebp - 0x74]
push eax
mov ecx, dword [ebp - 0x74]
push ecx
mov edx, dword [ebp - 0x70]
push edx
mov eax, dword [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov ecx, dword [ebp - 0x68]
add ecx, 1
mov dword [ebp - 0x68], ecx
jmp 0x437bfe
mov edx, dword [ebp - 0x70]
push edx
call fcn.00438b80
add esp, 4
mov eax, dword [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.00438b80
add esp, 4
cmp dword [ebp + 0x10], 0xa
jne 0x437d96
push str.SystemScan
mov ecx, dword [0x464e98]
call fcn.0043ae10
movzx edx, byte [0x464c87]
test edx, edx
jne 0x437d50
push str.Stop
mov ecx, dword [0x464e98]
call fcn.0043b1b0
push eax
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 0x14a]
call fcn.004202b0
push 0
mov ecx, dword [ebp - 0x80]
mov ecx, dword [ecx + 0x14e]
call fcn.0041fe60
push 0
mov edx, dword [ebp - 0x80]
mov ecx, dword [edx + 0x152]
call fcn.0041fe60
lea eax, [ebp - 0x78]
push eax
push 4
mov ecx, dword [ebp - 0x80]
push ecx
push 0x437290
push 0x1000
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov dword [ebp - 0x7c], eax
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
mov dword [edx + 0x120], eax
mov ecx, dword [ebp - 0x7c]
push ecx
call dword [sym.imp.KERNEL32.DLL_ResumeThread]
jmp 0x437d96
push str.Start
mov ecx, dword [0x464e98]
call fcn.0043b1b0
push eax
mov edx, dword [ebp - 0x80]
mov ecx, dword [edx + 0x14a]
call fcn.004202b0
push 1
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 0x14e]
call fcn.0041fe60
push 1
mov ecx, dword [ebp - 0x80]
mov ecx, dword [ecx + 0x152]
call fcn.0041fe60
mov byte [0x464c87], 0
mov eax, 1
mov esp, ebp
pop ebp
ret 0xc