Function at 0x401971
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x420d7a
mov eax, dword fs:[0]
push eax
mov eax, 0x16a4
call fcn.00404020
mov eax, dword [0x4260e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x1654], esi
call sub.sapfewut.dll_Secure_Dll_Load
mov edi, 0x42609c
push edi
lea ecx, [ebp - 0x1658]
call fcn.0040142d
mov dword [ebp - 4], 1
push str.DPTRACE
lea ecx, [ebp - 0x1658]
call fcn.004017dd
mov ecx, dword [ebp - 0x1658]
xor ebx, ebx
mov dword [ebp - 0x1648], ebx
cmp dword [ecx - 0xc], ebx
je 0x401a01
push ecx
call fcn.00403fd5
pop ecx
mov dword [ebp - 0x1648], eax
cmp eax, ebx
jg 0x401b7e
cmp esi, ebx
je 0x401b7e
cmp byte [esi], bl
je 0x401b7e
push esi
lea ecx, [ebp - 0x1644]
call fcn.0040192c
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1644]
call fcn.004017b5
push str._TRC
lea ecx, [ebp - 0x1640]
mov dword [ebp - 0x1650], ebx
call fcn.0040192c
mov byte [ebp - 4], 3
push ebx
push dword [ebp - 0x1640]
lea ecx, [ebp - 0x1644]
call fcn.004013a8
cmp eax, 0xffffffff
jne 0x401a76
mov esi, 0x42152c
push esi
call fcn.00402a20
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1640]
call fcn.004016ec
push ebx
push dword [ebp - 0x1640]
lea ecx, [ebp - 0x1644]
call fcn.004013a8
cmp eax, 0xffffffff
jne 0x401aa6
mov esi, str._TRACE
push esi
call fcn.00402a20
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1640]
call fcn.004016ec
push ebx
push dword [ebp - 0x1640]
lea ecx, [ebp - 0x1644]
call fcn.004013a8
cmp eax, 0xffffffff
jne 0x401ad8
mov esi, 0x42151c
push esi
call fcn.00402a20
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1640]
call fcn.004016ec
jmp 0x401ae3
lea ecx, [ebp - 0x1640]
call fcn.004013df
mov eax, dword [ebp - 0x1640]
cmp dword [eax - 0xc], ebx
je 0x401b5a
add eax, 0xfffffff0
push eax
call fcn.004012a7
add eax, 0x10
mov dword [ebp - 0x164c], eax
mov byte [ebp - 4], 5
mov esi, 0x421518
push esi
call fcn.00402a20
pop ecx
pop ecx
push eax
push esi
lea ecx, [ebp - 0x164c]
call fcn.0040166e
mov esi, dword [ebp - 0x164c]
lea eax, [ebp - 0x1650]
push eax
push esi
push dword [ebp - 0x1644]
call fcn.00403f6b
mov eax, dword [ebp - 0x1650]
add esp, 0xc
cmp eax, dword [ebp - 0x1648]
jle 0x401b4e
mov dword [ebp - 0x1648], eax
mov byte [ebp - 4], 3
lea ecx, [esi - 0x10]
call fcn.0040121e
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x1640]
add ecx, 0xfffffff0
call fcn.0040121e
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x1644]
add ecx, 0xfffffff0
call fcn.0040121e
push edi
lea ecx, [ebp - 0x164c]
mov dword [ebp - 0x163c], ebx
call fcn.0040142d
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x1648], ebx
jle 0x401c87
lea eax, [ebp - 0x1638]
push eax
call sub.sapfewut.dll_InitBuffer
lea eax, [ebp - 0x1638]
push eax
call sub.sapfewut.dll_InitTraceDir
cmp eax, ebx
jne 0x401bd7
mov esi, str.sapshcut.trc
push esi
call fcn.00402a20
pop ecx
push eax
push esi
lea ecx, [ebp - 0x164c]
call fcn.004016ec
jmp 0x401bf7
push str.sapshcut.trc
lea eax, [ebp - 0x1638]
push eax
lea eax, [ebp - 0x164c]
push str._s_s
push eax
call fcn.004018a1
add esp, 0x10
push 0x4214fc
push dword [ebp - 0x164c]
lea eax, [ebp - 0x163c]
push eax
call fcn.00403e6c
add esp, 0xc
cmp dword [ebp - 0x163c], ebx
je 0x401c87
lea eax, [ebp - 0x1530]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push str._n_n
push dword [ebp - 0x163c]
call fcn.004039c5
movzx eax, word [ebp - 0x1526]
push eax
movzx eax, word [ebp - 0x1528]
push eax
movzx eax, word [ebp - 0x1530]
push eax
movzx eax, word [ebp - 0x152e]
push eax
movzx eax, word [ebp - 0x152a]
push eax
push str.Local_time:______d._d._d__d:_d_n
push dword [ebp - 0x163c]
call fcn.004039c5
push dword [ebp - 0x1654]
push str._nParameter:________s__n
push dword [ebp - 0x163c]
call fcn.004039c5
add esp, 0x30
mov esi, 0x104
push esi
lea eax, [ebp - 0x114]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x100
lea eax, [ebp - 0x41c]
push eax
push esi
lea eax, [ebp - 0x520]
push eax
push esi
lea eax, [ebp - 0x218]
push eax
push 3
lea eax, [ebp - 0x165c]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00403b9c
push ebx
push ebx
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x165c]
push eax
lea eax, [ebp - 0x31c]
push esi
push eax
call fcn.00403a9a
add esp, 0x3c
push edi
lea ecx, [ebp - 0x1644]
call fcn.0040142d
mov byte [ebp - 4], 0xc
push str.sapgui.exe
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x1644]
push 0x42145c
push eax
call fcn.004018a1
push 0x1000
lea eax, [ebp - 0x1520]
push ebx
push eax
call fcn.00403a20
add esp, 0x1c
push edi
lea ecx, [ebp - 0x1640]
call fcn.0040142d
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x1654]
cmp eax, ebx
je 0x401d91
cmp byte [eax], bl
je 0x401d91
mov esi, str.__SHORTCUT_
push esi
call fcn.00402a20
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1640]
call fcn.004016ec
push dword [ebp - 0x1654]
lea ecx, [ebp - 0x1640]
call fcn.00401855
mov esi, 0x421448
push esi
call fcn.00402a20
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1640]
call fcn.0040166e
jmp 0x401daa
mov esi, str.__SHORTCUT___register
push esi
call fcn.00402a20
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1640]
call fcn.004016ec
mov esi, dword [ebp - 0x1640]
cmp dword [ebp - 0x163c], ebx
je 0x401df9
lea eax, [ebp - 0x114]
push eax
push str._nProgram:__________s__n
push dword [ebp - 0x163c]
call fcn.004039c5
push str._ntrying_to_start_sapgui_by_calling_n
push dword [ebp - 0x163c]
call fcn.004039c5
push esi
push dword [ebp - 0x1644]
push str._t__s__s__n
push dword [ebp - 0x163c]
call fcn.004039c5
add esp, 0x24
xor eax, eax
mov word [ebp - 0x166e], ax
push 0xa
inc eax
pop ecx
mov dword [ebp - 0x16a0], 0x44
mov dword [ebp - 0x169c], ebx
mov dword [ebp - 0x166c], ebx
mov dword [ebp - 0x1698], ebx
mov dword [ebp - 0x1694], ebx
mov dword [ebp - 0x1674], eax
mov word [ebp - 0x1670], cx
cmp dword [esi - 4], eax
jle 0x401e4e
push dword [esi - 0xc]
lea ecx, [ebp - 0x1640]
call fcn.004014ac
mov esi, dword [ebp - 0x1640]
lea eax, [ebp - 0x16b0]
push eax
lea eax, [ebp - 0x16a0]
push eax
push ebx
push ebx
push 0x10
push ebx
push ebx
push ebx
push esi
push dword [ebp - 0x1644]
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov dword [ebp - 0x1654], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
lea ecx, [ebp - 0x1648]
mov dword [ebp - 0x1650], eax
call fcn.0040142d
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x1654], ebx
jne 0x401f61
push dword [ebp - 0x1650]
lea eax, [ebp - 0x1648]
push esi
push dword [ebp - 0x1644]
push str._nSapgui_can_not_be_started_by_calling:_n__s__s__n_nError_code:__d_n
push eax
call fcn.004018a1
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0x14
push 0x1010
push str.Sapgui_Shortcut
push dword [ebp - 0x1648]
push ebx
call edi
cmp dword [ebp - 0x163c], ebx
je 0x401f9e
push str._nSapgui_can_not_be_started_by_calling:_n
push dword [ebp - 0x163c]
call fcn.00403881
push esi
push dword [ebp - 0x1644]
push str._t__s__s__n
push dword [ebp - 0x163c]
call fcn.00403881
push dword [ebp - 0x1650]
push str.Error_code:__d_n
push dword [ebp - 0x163c]
call fcn.00403881
push dword [ebp - 0x163c]
call fcn.0040380d
lea eax, [ebp - 0x1638]
push eax
push str.sapshcut.trc
lea eax, [ebp - 0x1648]
push str.The_trace_files__s_has_been_stored_in_directory_n__s.
push eax
call fcn.004018a1
add esp, 0x38
push 0x1010
push str.Sapgui_Shortcut
push dword [ebp - 0x1648]
push ebx
call edi
jmp 0x401f9e
cmp dword [ebp - 0x163c], ebx
je 0x401f9e
push str._nSapgui_was_successfully_started_by_calling:_n
push dword [ebp - 0x163c]
call fcn.00403881
push esi
push dword [ebp - 0x1644]
push str._t__s__s__n
push dword [ebp - 0x163c]
call fcn.00403881
push dword [ebp - 0x163c]
call fcn.0040380d
add esp, 0x1c
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x1648]
add ecx, 0xfffffff0
call fcn.0040121e
mov byte [ebp - 4], 0xc
lea ecx, [esi - 0x10]
call fcn.0040121e
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x1644]
add ecx, 0xfffffff0
call fcn.0040121e
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x164c]
add ecx, 0xfffffff0
call fcn.0040121e
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1658]
add ecx, 0xfffffff0
call fcn.0040121e
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00403687
leave
ret 0x10