Function at 0x10048970
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x101483c2
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x52bc
call fcn.10140530
mov eax, dword [0x10189710]
xor eax, esp
mov dword [esp + 0x52b8], eax
push ebx
push esi
push edi
mov eax, dword [0x10189710]
xor eax, esp
push eax
lea eax, [esp + 0x52d0]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
xor ebx, ebx
cmp dword [0x101b5704], ebx
jne 0x100489ed
cmp dword [0x101b553c], ebx
je 0x100489d8
push str.__s___EVMAP__EMaps_Initialize___No_Master_Mutex__Cannot_proceed_
push ebx
call fcn.1006ed90
add esp, 8
push str._EVMAP__EMaps_Initialize___No_Master_Mutex__Cannot_proceed_
push ebx
call fcn.1006ed90
add esp, 8
xor eax, eax
jmp 0x10048fa0
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x10048a1c
cmp byte [eax], bl
je 0x10048a1c
lea edx, [esp + 0x4fac]
mov dword [0x101b5434], 1
sub edx, eax
jmp 0x10048a10
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x10048a10
jmp 0x10048a50
mov eax, dword [str.MicroWorld]
mov ecx, dword [0x101581c4]
mov dx, word [0x101581c8]
mov dword [esp + 0x4fac], eax
mov al, byte [0x101581ca]
mov dword [esp + 0x4fb0], ecx
mov word [esp + 0x4fb4], dx
mov byte [esp + 0x4fb6], al
lea ecx, [esp + 0x4fac]
push ecx
call dword [sym.imp.USER32.dll_CharUpperA]
mov eax, dword [0x101b532c]
cmp eax, ebx
je 0x10048a74
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
je 0x10048a8a
push str.Failed_to_Lock_hMutex_Master
mov ebx, edi
call fcn.10048850
add esp, 4
xor eax, eax
jmp 0x10048fa0
cmp dword [0x101b5434], ebx
je 0x10048b3d
cmp dword [0x101b553c], ebx
je 0x10048abb
mov edx, dword [0x101ad4a4]
push edx
lea eax, [esp + 0x4fb0]
push eax
push str.__s__NotificationThreadStarted___A:_u
push ebx
call fcn.1006ed90
add esp, 0x10
cmp dword [0x101ad4a4], ebx
jne 0x10048b18
push 0x101a6e68
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x101ad4a4], ebx
jne 0x10048b0d
cmp dword [0x101b553c], ebx
je 0x10048af4
lea ecx, [esp + 0x4fac]
push ecx
push str.__s__Starting_Notf_Thread
push ebx
call fcn.1006ed90
add esp, 0xc
push ebx
push ebx
push 0x1004aef0
mov dword [0x101ad4a4], 1
call fcn.10127f7d
add esp, 0xc
push 0x101a6e68
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [0x101b553c], ebx
je 0x10048b3d
mov edx, dword [0x101ad4a4]
push edx
lea eax, [esp + 0x4fb0]
push eax
push str.__s__NotificationThreadStarted___B:_u
push ebx
call fcn.1006ed90
add esp, 0x10
lea eax, [esp + 0x4fac]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10048b57
sub eax, edx
push eax
lea ecx, [esp + 0x4fb0]
push ecx
lea ecx, [esp + 0x24]
call fcn.10009b30
lea edx, [esp + 0x14]
push edx
lea ebx, [esp + 0x20]
call fcn.10050c20
cmp dword [esp + 0x34], 0x10
jb 0x10048b94
mov eax, dword [esp + 0x20]
push eax
call fcn.10128f9e
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, dword [0x101c029c]
xor ebx, ebx
cmp eax, ebx
je 0x10048bac
cmp eax, dword [0x101c0284]
je 0x10048bb1
call fcn.10128a71
cmp dword [esp + 0x18], esi
je 0x10048bc9
mov ecx, dword [0x101b532c]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x10048f9b
lea edx, [esp + 0x3544]
push edx
call fcn.10048fd0
mov dword [esp + 0x52d8], ebx
lea eax, [esp + 0x4fac]
push eax
lea ecx, [esp + 0x50b8]
push str.hMutex_tempMap__s
push ecx
mov dword [esp + 0x4f6c], ebx
mov dword [esp + 0x4f58], ebx
mov dword [esp + 0x4f68], ebx
mov dword [esp + 0x4f64], ebx
mov byte [esp + 0x3758], 0
mov byte [esp + 0x3f58], 0
mov byte [esp + 0x3654], 0
mov byte [esp + 0x3550], 0
call fcn.10127dc0
add esp, 0xc
push ebx
lea ecx, [esp + 0x50b8]
call fcn.10067220
mov esi, eax
mov dword [esp + 0x14], esi
cmp esi, ebx
jne 0x10048ca5
cmp dword [0x101b553c], ebx
je 0x10048c6b
lea edx, [esp + 0x4fac]
push edx
push str.__s__Failed_to_create_hMutex_tempMap_Local
push ebx
call fcn.1006ed90
add esp, 0xc
push str.Failed_to_create_hMutex_tempMap_Local
mov ebx, edi
call fcn.10048850
mov eax, dword [0x101b532c]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea ecx, [esp + 0x3544]
push ecx
mov dword [esp + 0x52dc], 0xffffffff
call fcn.10049030
xor eax, eax
jmp 0x10048fa0
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 0xb7
jne 0x10048ce4
cmp dword [0x101b553c], ebx
je 0x10048cd6
push esi
call edi
push eax
lea edx, [esp + 0x4fb4]
push edx
push str.__s__LastErr:_u___ERROR_ALR_EXISTS__0x_x_
push ebx
call fcn.1006ed90
add esp, 0x14
lea edi, [esp + 0x14]
call fcn.10073710
jmp 0x10048dfe
cmp dword [0x101b553c], ebx
je 0x10048d06
push esi
call edi
push eax
lea eax, [esp + 0x4fb4]
push eax
push str.__s__LastErr:_u__0x_x_
push ebx
call fcn.1006ed90
add esp, 0x14
lea ecx, [esp + 0x4fac]
push str.MicroWorld
push ecx
mov dword [esp + 0x4fac], esi
mov byte [esp + 0x354c], 0
call fcn.10135887
add esp, 8
test eax, eax
je 0x10048de8
xor eax, eax
jmp 0x10048d40
mov cl, byte [eax + 0x101b5600]
mov byte [esp + eax + 0x3544], cl
inc eax
test cl, cl
jne 0x10048d40
lea ecx, [esp + 0x3544]
call fcn.10065200
lea eax, [esp + 0x4fac]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10048d67
lea edi, [esp + 0x3544]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x10048d78
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3544]
call fcn.10065200
lea eax, [esp + 0x3544]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10048da4
mov edx, dword [str.eScaneServ.INI]
mov ecx, dword [0x1016453c]
mov dword [eax], edx
mov edx, dword [0x10164540]
mov dword [eax + 4], ecx
mov ecx, dword [0x10164544]
mov dword [eax + 8], edx
lea edx, [esp + 0x4fac]
mov dword [eax + 0xc], ecx
push edx
lea ecx, [esp + 0x3548]
call fcn.100485a0
add esp, 4
jmp 0x10048dfe
cmp dword [0x101b553c], ebx
je 0x10048e1c
xor edi, edi
lea esi, [esp + 0x4fac]
call fcn.100484a0
cmp dword [0x101b553c], ebx
je 0x10048e1c
lea eax, [esp + 0x4fac]
push eax
push str.__s__Created_MAP_Entry
push ebx
call fcn.1006ed90
add esp, 0xc
lea ecx, [esp + 0x4fac]
push ecx
lea ecx, [esp + 0x20]
call fcn.100098a0
lea edx, [esp + 0x3544]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x52e4], 1
call fcn.10050cf0
lea edx, [esp + 0x1ac4]
mov bl, 2
push edx
mov ecx, eax
mov byte [esp + 0x52dc], bl
call fcn.10052f80
lea eax, [esp + 0x1ac4]
push eax
lea edi, [esp + 0x3c]
mov byte [esp + 0x52dc], 3
call fcn.10050a50
lea ecx, [esp + 0x1ac4]
push ecx
mov byte [esp + 0x52dc], bl
call fcn.100490a0
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x52dc], 1
call fcn.100490a0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x52d8], 0
call fcn.100098e0
cmp dword [0x101b553c], 0
je 0x10048f77
lea eax, [esp + 0x4fac]
push eax
lea ecx, [esp + 0x20]
call fcn.100098a0
lea ecx, [esp + 0x14]
push ecx
lea ebx, [esp + 0x20]
call fcn.10050c20
mov ecx, ebx
call fcn.100098e0
mov edx, dword [0x101c029c]
mov eax, dword [0x101c0284]
lea esi, [esp + 0x38]
lea edi, [esp + 0x14]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
call fcn.10050cd0
test al, al
jne 0x10048f3f
lea ecx, [esp + 0x4fac]
push ecx
lea edx, [esp + 0x51c0]
push str._XXX_Failed_to_find___s__in_Master_List_
push edx
call fcn.10127dc0
add esp, 0xc
lea eax, [esp + 0x51bc]
push eax
lea ecx, [esp + 0x4fb0]
push ecx
push str.__s__xf
jmp 0x10048f6d
lea esi, [esp + 0x14]
call fcn.10050ca0
mov edi, eax
add edi, 0x1c
call fcn.10050ca0
cmp dword [eax + 0x18], 0x10
jb 0x10048f5d
mov eax, dword [eax + 4]
jmp 0x10048f60
add eax, 4
mov edx, dword [edi + 0x1a60]
push edx
push eax
push str.__s__CosID_FOUND._Mutex:_0x_x_
push 0
call fcn.1006ed90
add esp, 0x10
mov eax, dword [0x101b532c]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea ecx, [esp + 0x3544]
push ecx
mov dword [esp + 0x52dc], 0xffffffff
call fcn.10049030
mov eax, 1
mov ecx, dword [esp + 0x52d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x52b8]
xor ecx, esp
call fcn.10127db1
mov esp, ebp
pop ebp
ret 8