Function at 0x4037e0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x407457
mov eax, dword fs:[0]
push eax
sub esp, 0xb0
push ebx
push esi
push edi
mov eax, dword [0x40d02c]
xor eax, esp
push eax
lea eax, [esp + 0xc0]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x68]
push str.RegisterService
push 0x409dc6
push 0x408ec8
push 7
push 0xffffffffffffffff
push eax
call dword [sym.imp.NCRRetailFoundation.dll_public:_void___cdecl_NCRRetailCommon::NCRSystemTrace::Trace_unsigned_int__unsigned_int__char_const___char_const___char_const__]
add esp, 0x18
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov cl, byte [0x408f32]
mov edi, eax
mov ax, word [0x408f30]
push edi
lea ebx, [esi + 0x58]
push str...RegisterService:_Command_line__s
push ebx
mov word [esp + 0x20], ax
mov byte [esp + 0x22], cl
call dword [sym.imp.NCRRetailFoundation.dll_public:_void___cdecl_NCRRetailCommon::NCRString::Format_char_const__]
add esp, 0xc
mov ecx, ebx
call dword [sym.imp.NCRRetailFoundation.dll_public:_char_const____thiscall_NCRRetailCommon::NCRString::operator_char_const__void_const]
mov ecx, dword [esi + 0x68]
push eax
push 0x409dc6
push 0x408ec8
push 0x200
push 0xffffffffffffffff
push ecx
call dword [sym.imp.NCRRetailFoundation.dll_public:_void___cdecl_NCRRetailCommon::NCRSystemTrace::Trace_unsigned_int__unsigned_int__char_const___char_const___char_const__]
add esp, 0x18
cmp byte [edi], 0
mov eax, edi
je 0x4038b2
cmp byte [esp + 0x14], 0
lea edi, [esp + 0x14]
je 0x4038ac
mov cl, byte [eax]
nop
mov dl, byte [edi]
inc edi
cmp cl, dl
je 0x4038ed
cmp byte [edi], 0
jne 0x4038a0
inc eax
cmp byte [eax], 0
jne 0x403892
call fcn.00403b10
mov eax, dword [esi + 0x68]
push str.RegisterService:_Service_Module_has_stopped.
push 0x409dc6
push 0x408ec8
push 8
push 0xffffffffffffffff
push eax
call dword [sym.imp.NCRRetailFoundation.dll_public:_void___cdecl_NCRRetailCommon::NCRSystemTrace::Trace_unsigned_int__unsigned_int__char_const___char_const___char_const__]
add esp, 0x18
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edi, [eax + 1]
test edi, edi
je 0x4038b2
push str.standalone
push edi
call dword [sym.imp.MSVCR90.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x40396b
push eax
lea ecx, [esp + 0x48]
call dword [sym.imp.NCRRetailFoundation.dll_protected:_void___thiscall_NCRRetailCommon::ANCRWorkerThread::constructor_int_]
mov dword [esp + 0x44], vtable.WaitForShutdown.0
push 0
lea ecx, [esp + 0x48]
mov dword [esp + 0xcc], 0
call dword [sym.imp.NCRRetailFoundation.dll_public:_int___thiscall_NCRRetailCommon::ANCRWorkerThread::Start_unsigned_int_]
call fcn.00403e90
lea ecx, [esp + 0x44]
call dword [sym.imp.NCRRetailFoundation.dll_public:_int___thiscall_NCRRetailCommon::ANCRWorkerThread::Stop_void_]
lea ecx, [esp + 0x44]
mov dword [esp + 0xc8], 0xffffffff
call dword [sym.imp.NCRRetailFoundation.dll_public_virtual:_void___thiscall_NCRRetailCommon::ANCRWorkerThread::destructor_void_]
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.stopstandalone
push edi
call dword [sym.imp.MSVCR90.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x4039d0
push str.ShutdownNCRLoader
push 1
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.NCRRetailFoundation.dll_public:_void___thiscall_NCRRetailCommon::NCRNamedEvent::constructor_int__int__char_const__]
lea ecx, [esp + 0x18]
mov dword [esp + 0xc8], 1
call dword [sym.imp.NCRRetailFoundation.dll_public_virtual:_int___thiscall_NCRRetailCommon::NCREvent::Set_void_]
lea ecx, [esp + 0x18]
mov dword [esp + 0xc8], 0xffffffff
call dword [sym.imp.NCRRetailFoundation.dll_public_virtual:_void___thiscall_NCRRetailCommon::NCRNamedEvent::destructor_void_]
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push str.RegisterService:_Proccessing_option__s
push ebx
call dword [sym.imp.NCRRetailFoundation.dll_public:_void___cdecl_NCRRetailCommon::NCRString::Format_char_const__]
add esp, 0xc
mov ecx, ebx
call dword [sym.imp.NCRRetailFoundation.dll_public:_char_const____thiscall_NCRRetailCommon::NCRString::operator_char_const__void_const]
push eax
mov eax, dword [esi + 0x68]
push 0x409dc6
push 0x408ec8
push 0x200
push 0xffffffffffffffff
push eax
call dword [sym.imp.NCRRetailFoundation.dll_public:_void___cdecl_NCRRetailCommon::NCRSystemTrace::Trace_unsigned_int__unsigned_int__char_const___char_const___char_const__]
movsx ecx, byte [edi]
push ecx
call dword [sym.imp.MSVCR90.dll_toupper]
add eax, 0xffffffb7
add esp, 0x1c
cmp eax, 0xc
ja case.0x403a24.74
movzx edx, byte [eax + 0x403ad0]
jmp dword [edx*4 + 0x403abc]
mov ecx, esi
call fcn.004040a0
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.004043d0
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00404a00
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00404540
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.004050d0
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret