Function at 0x403c55
Capabilities:
Set current directory
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40a942
mov eax, dword fs:[0]
push eax
mov eax, 0x4ac8
call fcn.004098d0
mov eax, dword [0x45d074]
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]
lea ecx, [ebp - 0x4aa0]
call dword [sym.imp.mfc100.dll_Ordinal_316]
xor ebx, ebx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x4ad0]
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4aa4]
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov byte [ebp - 4], 2
mov dword [ebp - 0x4acc], ebx
xor eax, eax
lea edi, [ebp - 0x4ac8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea ecx, [ebp - 0x4abc]
stosd dword es:[edi], eax
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov byte [ebp - 4], 3
xor eax, eax
lea edi, [ebp - 0x4ab8]
lea ecx, [ebp - 0x4ad4]
stosd dword es:[edi], eax
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov byte [ebp - 4], 4
push section.dwsShare
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [section.dwsShare]
mov dword [0x45d184], eax
call sub.sapfewut.dll_Secure_Dll_Load
lea eax, [ebp - 0x4ab8]
push eax
push esi
call fcn.00402f8d
pop ecx
pop ecx
call section..text
lea eax, [ebp - 0x118]
push eax
call sub.sapfewut.dll_InitBuffer
lea eax, [ebp - 0x118]
push eax
call sub.sapfewut.dll_InitDocumentDir
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x4aa4]
call dword [sym.imp.mfc100.dll_Ordinal_1316]
push dword [ebp - 0x4aa4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x45d0e4]
cmp eax, ebx
jne 0x403d67
xor ecx, ecx
jmp 0x403d69
mov ecx, dword [eax]
test cl, 4
je 0x403d82
push dword [ebp - 0x4aa4]
push str.Working_directory_set_to__s
push eax
call sub.sapfewtr.dll_FEWTraceMonitor
add esp, 0xc
lea eax, [ebp - 0x4aa0]
push eax
push esi
call fcn.00401cfc
pop ecx
pop ecx
mov edi, 0x4338e8
push edi
lea ecx, [ebp - 0x4aa0]
call dword [sym.imp.mfc100.dll_Ordinal_2611]
test eax, eax
jne 0x403dbf
push esi
call fcn.00402e1c
pop ecx
call fcn.00401192
call fcn.004019a4
push ebx
call dword [sym.imp.MSVCR100.dll_exit]
lea eax, [ebp - 0x4acc]
push eax
lea eax, [ebp - 0x4aa0]
push eax
call fcn.00403449
pop ecx
pop ecx
cmp dword [ebp - 0x4acc], ebx
je 0x403e04
mov eax, dword [0x45d0e4]
cmp eax, ebx
jne 0x403de9
xor ecx, ecx
jmp 0x403deb
mov ecx, dword [eax]
test cl, 4
je 0x403dfd
push str.Display_version_dialog
push eax
call sub.sapfewtr.dll_FEWTraceMonitor
pop ecx
pop ecx
call fcn.00403b27
jmp 0x403dae
push 0x4336b1
lea ecx, [ebp - 0x4aa0]
call dword [sym.imp.mfc100.dll_Ordinal_2611]
test eax, eax
je 0x403da7
lea ecx, [ebp - 0x4a9c]
call fcn.00404d40
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4ab0]
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4aa8]
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov byte [ebp - 4], 7
mov ecx, 0x4984
lea eax, [ebp - 0x4a9c]
mov byte [eax], bl
inc eax
dec ecx
jne 0x403e53
lea eax, [ebp - 0x4ab0]
push eax
lea eax, [ebp - 0x4aa8]
push eax
lea eax, [ebp - 0x4ab4]
push eax
lea eax, [ebp - 0x4a9c]
push eax
lea eax, [ebp - 0x4acc]
push eax
lea eax, [ebp - 0x4aa0]
push eax
mov dword [ebp - 0x4ab4], ebx
call fcn.004037f5
mov esi, eax
add esp, 0x18
cmp esi, ebx
je 0x403ec1
mov eax, dword [0x45d0e4]
cmp eax, ebx
jne 0x403ea4
xor ecx, ecx
jmp 0x403ea6
mov ecx, dword [eax]
test cl, 4
je 0x40407b
push str.WinMain
push eax
call sub.sapfewtr.dll_FEWTraceMonitor
pop ecx
pop ecx
jmp 0x40407b
push 0x4337f8
lea ecx, [ebp - 0x4aa8]
call dword [sym.imp.mfc100.dll_Ordinal_2611]
test eax, eax
je 0x403f0d
push dword [ebp - 0x4aa4]
lea ecx, [ebp - 0x4aa8]
call dword [sym.imp.mfc100.dll_Ordinal_2611]
test eax, eax
je 0x403f0d
push dword [ebp - 0x4aa8]
lea eax, [ebp - 0x4aa0]
push dword [ebp - 0x4aa0]
push str._s__Workdir__s_
push eax
call dword [sym.imp.mfc100.dll_Ordinal_4283]
add esp, 0x10
cmp byte [ebp - 0x4a9c], bl
je 0x403fa2
lea ecx, [ebp - 0x4a9c]
call fcn.004051b0
push eax
lea ecx, [ebp - 0x4aac]
call dword [sym.imp.mfc100.dll_Ordinal_310]
mov byte [ebp - 4], 8
push edi
push str._NoDelegate
lea ecx, [ebp - 0x4aac]
call dword [sym.imp.mfc100.dll_Ordinal_11627]
test eax, eax
je 0x403f92
lea ecx, [ebp - 0x4aac]
call dword [sym.imp.mfc100.dll_Ordinal_4499]
push eax
lea ecx, [ebp - 0x4a9c]
call fcn.00405170
push ebx
push str._SHORTCUT
lea ecx, [ebp - 0x4aa0]
mov dword [ebp - 0x4ac8], ebx
call dword [sym.imp.mfc100.dll_Ordinal_4144]
test eax, eax
js 0x403f92
lea eax, [ebp - 0x4aac]
push eax
lea ecx, [ebp - 0x4aa0]
call dword [sym.imp.mfc100.dll_Ordinal_1313]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x4aac]
call dword [sym.imp.mfc100.dll_Ordinal_901]
cmp dword [ebp - 0x4ac8], 1
jne 0x404050
push dword [ebp - 0x4ab4]
lea eax, [ebp - 0x4acc]
push eax
push ecx
lea eax, [ebp - 0x4aa0]
mov ecx, esp
mov dword [ebp - 0x4aac], esp
push eax
call dword [sym.imp.mfc100.dll_Ordinal_300]
mov byte [ebp - 4], 9
mov byte [ebp - 4], 7
call fcn.004039a0
add esp, 0xc
cmp eax, ebx
mov eax, dword [0x45d0e4]
jne 0x404022
cmp eax, ebx
jne 0x403ff3
xor eax, eax
jmp 0x403ff5
mov eax, dword [eax]
test al, 4
je 0x403dae
push 0x64
push 0x45d0e8
call fcn.00404970
push eax
push str.TIMESTAMP:_ending_sapgui:__s
push dword [0x45d0e4]
call sub.sapfewtr.dll_FEWTraceMonitor
add esp, 0x14
jmp 0x403dae
cmp eax, ebx
jne 0x40402a
xor eax, eax
jmp 0x40402c
mov eax, dword [eax]
test al, 6
je 0x404050
push 0x64
push 0x45d0e8
call fcn.00404970
push eax
push str.TIMESTAMP:_delegation_failed___continuing_without_delegation:__s
push dword [0x45d0e4]
call sub.sapfewtr.dll_FEWTraceWarning
add esp, 0x14
lea eax, [ebp - 0x4ab0]
push eax
push dword [ebp - 0x4ab8]
lea eax, [ebp - 0x4a9c]
push dword [ebp - 0x4ab4]
push eax
lea eax, [ebp - 0x4aa0]
push eax
call fcn.00402cf4
add esp, 0x14
mov esi, eax
lea eax, [ebp - 0x118]
push eax
call sub.sapfewut.dll_InitBuffer
lea eax, [ebp - 0x118]
push eax
call sub.sapfewut.dll_GetTmpDir
call sub.sapfewut.dll_Is_Delete_Read_Only_Files_Enabled
push eax
push ebx
lea eax, [ebp - 0x118]
push 1
push eax
call sub.sapfewut.dll_Empty_Folder
add esp, 0x10
call dword [sym.imp.sapfewuimsg.dll_int___cdecl_Cleanup_Local_Data_void_]
mov eax, dword [0x45d0e4]
cmp eax, ebx
jne 0x4040be
xor eax, eax
jmp 0x4040c0
mov eax, dword [eax]
test al, 4
je 0x4040e4
push 0x64
push 0x45d0e8
call fcn.00404970
push eax
push str.TIMESTAMP:_ending_sapgui:__s
push dword [0x45d0e4]
call sub.sapfewtr.dll_FEWTraceMonitor
add esp, 0x14
call fcn.00401192
call fcn.004019a4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4aa8]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4ab0]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4a9c]
call fcn.00404e20
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4ad4]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4abc]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4aa4]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x4ad0]
call dword [sym.imp.mfc100.dll_Ordinal_901]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4aa0]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov eax, esi
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.0040981a
leave
ret 0x10