Function at 0x40b020
Capabilities:
Create process on windows
Delete file
Get common file path
Get graphical window text

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x411567
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4d0
mov eax, dword [0x417040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 0x66
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
xorps xmm0, xmm0
mov dword [ebp - 0x4d4], eax
movups xmmword [ebp - 0x47c], xmm0
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x468], 0xf
mov byte [ebp - 0x47c], 0
push eax
mov dword [ebp - 4], 0
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea esi, [eax + 1]
cmp esi, 1
jne 0x40b0c5
push 0x10
push str.Error
push str.OFX_Text_is_empty._Nothing_to_Import_
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40b572
push ecx
xorps xmm0, xmm0
mov dword [ebp - 0x444], 0
push esi
lea ecx, [ebp - 0x44c]
movq qword [ebp - 0x44c], xmm0
call fcn.0040d3b0
push esi
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x44c]
push esi
push dword [ebp - 0x4d4]
call dword [sym.imp.USER32.dll_GetWindowTextW]
push esi
lea ecx, [ebp - 0x464]
call fcn.0040d880
mov byte [ebp - 4], 2
mov edx, str.OFX_Output_will_appear_here_after_input_is_converted.
mov esi, dword [ebp - 0x448]
mov ecx, dword [ebp - 0x44c]
sub esi, ecx
sub esi, 4
jb 0x40b138
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40b13d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40b127
cmp esi, 0xfffffffc
je 0x40b16e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x40b16a
cmp esi, 0xfffffffd
je 0x40b16e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40b16a
cmp esi, 0xfffffffe
je 0x40b16e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40b16a
cmp esi, 0xffffffff
je 0x40b16e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x40b16e
xor al, al
jmp 0x40b170
mov al, 1
test al, al
je 0x40b18c
push 0x10
push str.Error
push str.OFX_Text_is_not_valid._The_right_text_pane_needs_to_be_updated_
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40b4da
cmp dword [ebp - 0x450], 7
lea ecx, [ebp - 0x464]
mov eax, dword [ebp - 0x454]
cmova ecx, dword [ebp - 0x464]
lea eax, [ecx + eax*2]
lea ecx, [ebp - 0x464]
cmova ecx, dword [ebp - 0x464]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x494]
call fcn.0040e380
lea eax, [ebp - 0x428]
mov byte [ebp - 4], 3
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, 0x104
ja 0x40b48d
test eax, eax
je 0x40b48d
lea eax, [ebp - 0x220]
push eax
push 0
push 0x41389c
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x40b21d
push 0x10
push str.Error
push str.Unable_to_get_Temporary_File_Name._Alternatively__you_should_save_the_OFX_data_and_open_that_file_with_the_Money_Import_Handler
jmp 0x40b499
mov edx, edi
lea ecx, [ebp - 0x220]
call fcn.0040ad30
cmp dword [0x417978], 7
mov eax, 0x417964
mov dword [ebp - 0x4d0], 0x3c
cmova eax, dword [0x417964]
mov dword [ebp - 0x4c0], eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x4bc], eax
lea eax, [ebp - 0x4d0]
push eax
mov dword [ebp - 0x4cc], 0x40
mov dword [ebp - 0x4c8], edi
mov dword [ebp - 0x4c4], str.open
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x4b4], 1
mov dword [ebp - 0x4b0], 0
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
push 0xffffffffffffffff
push dword [ebp - 0x498]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x498]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x4b0], 2
mov esi, dword [sym.imp.USER32.dll_MessageBoxW]
jne 0x40b3ef
push str.Error:_Do_you_need_to_change_the_location_of_the_Money_Import_Handler__Could_not_locate_the_MS_Money_Import_Handler_at:
lea ecx, [ebp - 0x440]
call fcn.0040d880
mov byte [ebp - 4], 4
mov ecx, 0x417964
cmp dword [0x417978], 7
mov esi, dword [ebp - 0x430]
cmova ecx, dword [0x417964]
mov eax, dword [ebp - 0x42c]
mov edx, dword [0x417974]
sub eax, esi
mov dword [ebp - 0x4dc], ecx
mov dword [ebp - 0x4d8], edx
mov dword [ebp - 0x4d4], esi
cmp edx, eax
ja 0x40b369
cmp dword [ebp - 0x42c], 7
lea eax, [edx + esi]
mov dword [ebp - 0x430], eax
lea esi, [ebp - 0x440]
cmova esi, dword [ebp - 0x440]
mov eax, dword [ebp - 0x4d4]
lea ecx, [esi + eax*2]
lea eax, [edx + edx]
push eax
push dword [ebp - 0x4dc]
push ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x4d8]
add esp, 0xc
add eax, dword [ebp - 0x4d4]
xor ecx, ecx
mov word [esi + eax*2], cx
jmp 0x40b384
push edx
push ecx
mov byte [ebp - 0x4d8], 0
lea ecx, [ebp - 0x440]
push dword [ebp - 0x4d8]
push edx
call fcn.0040edf0
cmp dword [ebp - 0x42c], 7
lea eax, [ebp - 0x440]
mov esi, dword [sym.imp.USER32.dll_MessageBoxW]
cmova eax, dword [ebp - 0x440]
push 0x10
push str.Error
push eax
push edi
call esi
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x42c]
cmp ecx, 7
jbe 0x40b3ef
mov edx, dword [ebp - 0x440]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40b3e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40b3e5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0041007f
add esp, 8
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x40b4a0
push str.Warning:_Could_not_delete_the_temporary_file._You_may_want_to_delete_the_file_manually._File_was_created_at:
lea ecx, [ebp - 0x440]
call fcn.0040d880
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x440]
call fcn.0040df30
cmp dword [ebp - 0x42c], 7
lea eax, [ebp - 0x440]
push 0x30
cmova eax, dword [ebp - 0x440]
push str.Warning:_Did_Not_Remove_Temp_File
push eax
push edi
call esi
mov ecx, dword [ebp - 0x42c]
cmp ecx, 7
jbe 0x40b4a0
mov edx, dword [ebp - 0x440]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40b481
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40b481
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0041007f
add esp, 8
jmp 0x40b4a0
push 0x10
push str.Error
push str.Error_Getting_Temporary_File_Path._Alternatively__you_should_save_the_OFX_data_and_open_that_file_with_the_Money_Import_Handler.
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 0x480]
cmp ecx, 0xf
jbe 0x40b4da
mov edx, dword [ebp - 0x494]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40b4d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b562
push ecx
push edx
call fcn.0041007f
add esp, 8
mov ecx, dword [ebp - 0x450]
cmp ecx, 7
jbe 0x40b516
mov edx, dword [ebp - 0x464]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40b50c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b562
push ecx
push edx
call fcn.0041007f
add esp, 8
mov edx, dword [ebp - 0x44c]
xor eax, eax
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x450], 7
mov word [ebp - 0x464], ax
test edx, edx
je 0x40b572
mov ecx, dword [ebp - 0x444]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffe
cmp ecx, 0x1000
jb 0x40b568
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40b568
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0041007f
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041003c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret