Function at 0x4118b0
Capabilities:
Copy file
Create process on windows
Create process suspended
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x415197
push eax
mov dword fs:[0], esp
sub esp, 0x488
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x408]
xor ebx, ebx
cmp eax, ebx
jne 0x41159a
mov eax, dword [esi + 0x20]
push edi
mov edi, dword [sym.imp.USER32.dll_KillTimer]
push 0x401
push eax
mov dword [esi + 0x408], 1
call edi
mov ecx, dword [esi + 0x20]
push 0x402
push ecx
mov dword [esi + 0x41c], ebx
call edi
cmp dword [esi + 0x1f8], 3
mov dword [esi + 0x1f4], ebx
push 0x416970
jle 0x411494
push 0x1000e
mov ecx, esi
call fcn.00408a30
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x488]
mov dword fs:[0], ecx
add esp, 0x494
ret
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
cmp dword [esi + 0x420], ebx
mov dword [esp + 0x49c], ebx
mov ecx, esi
je 0x4114b6
call fcn.00407920
jmp 0x4114bb
call fcn.004078d0
cmp eax, ebx
mov eax, dword [esi + 0x22c]
push eax
je 0x4114db
lea edx, [esp + 0x10]
push 0x419a98
push edx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0xc
jmp 0x4114f3
push 0x419a80
lea eax, [esp + 0x14]
push 0x419a5c
push eax
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0x10
push ebx
lea ecx, [esp + 0x14]
call fcn.00401180
push 0x44
lea ecx, [esp + 0x10]
mov byte [esp + 0x4a0], 1
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x18]
call fcn.004017f0
push 0x419094
lea ecx, [esp + 0x14]
call fcn.004018c0
lea ecx, [esp + 0x10]
call sub.MFC71.DLL_CDialog::DoModal
cmp eax, 6
jne 0x41156b
mov ecx, dword [esi + 0x1f8]
inc ecx
lea edi, [esi + 0x3e0]
mov dword [esi + 0x1f8], ecx
push edi
lea ecx, [esi + 0x3e4]
mov dword [edi], 5
call fcn.0040d3a0
mov ecx, esi
mov dword [edi], 2
call fcn.00410520
jmp 0x411579
mov ecx, dword [esi + 0x20]
push ebx
push ebx
push 0x10
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
lea ecx, [esp + 0x10]
mov dword [esi + 0x408], ebx
mov byte [esp + 0x49c], bl
call fcn.004012c0
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
pop edi
mov ecx, dword [esp + 0x490]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x494
ret
push esi
mov esi, ecx
mov eax, dword [esi + 0x238]
push edi
mov edi, dword [esi + 0x234]
cmp edi, eax
je 0x411835
push ebx
push ebp
mov ebp, dword [sym.imp.MSVCR71.dll_memmove]
lea ebx, [edi + 4]
nop
mov eax, dword [edi]
push eax
mov ecx, esi
call fcn.0040e990
test eax, eax
je 0x411825
mov ecx, dword [esi + 0x238]
sub ecx, ebx
sar ecx, 2
shl ecx, 2
push ecx
push ebx
push edi
call ebp
mov eax, dword [esi + 0x238]
add esp, 0xc
add eax, 0xfffffffc
mov dword [esi + 0x238], eax
jmp 0x41182b
add edi, 4
add ebx, 4
cmp edi, dword [esi + 0x238]
jne 0x4117f0
pop ebp
pop ebx
mov eax, dword [esi + 0x20c]
test eax, eax
jne 0x411861
cmp word [esi + 0x1f0], 0
jne 0x411861
mov eax, dword [esi + 0x22c]
test eax, eax
pop edi
mov ecx, esi
pop esi
je 0x41185c
jmp 0x411400
jmp fcn.004087e0
mov eax, dword [esi + 0x420]
test eax, eax
mov ecx, esi
je 0x411874
call fcn.00407920
jmp 0x411879
call fcn.004078d0
test eax, eax
je 0x411886
pop edi
mov ecx, esi
pop esi
jmp fcn.004102e0
mov edx, dword [esi + 0x20]
push 0x402
push edx
call dword [sym.imp.USER32.dll_KillTimer]
pop edi
mov dword [esi + 0x1f4], 0
mov ecx, esi
pop esi
jmp fcn.00410520
push esi
mov esi, ecx
mov edx, dword [esi + 0x1f4]
dec edx
mov eax, edx
test eax, eax
mov dword [esi + 0x1f4], edx
jg 0x4118df
mov eax, dword [esi + 0x20]
push 0x402
push eax
mov dword [esi + 0x1f4], 0
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, esi
pop esi
jmp 0x4117d0