Function at 0x41042a
Capabilities:
Acquire debug privileges

Disassembly:
sub esp, 0x48
push ebx
push ebp
push esi
push edi
push str.SeDebugPrivilege
call fcn.00410140
pop ecx
call fcn.00413e2f
mov ebp, dword [sym.imp.KERNEL32.dll_CreateEventA]
push 2
pop edi
xor ebx, ebx
cmp eax, edi
jae 0x410467
push str.Local10720
push 1
push 1
push ebx
call ebp
test eax, eax
je 0x410467
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
call fcn.00413e2f
mov esi, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp eax, 3
jae 0x41048f
push str.Global338
push ebx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x41048f
push eax
call esi
call fcn.00413e2f
cmp eax, edi
jae 0x4104ae
push edi
call fcn.0041a976
pop ecx
test eax, eax
je 0x4104ae
push eax
mov byte [eax + 1], 0xc5
call fcn.0040c4f8
pop ecx
call fcn.00413e2f
cmp eax, 3
jae 0x4104c5
push str.Local370
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call fcn.00413e2f
cmp eax, edi
jae 0x4104dd
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
call fcn.00413e2f
mov ebx, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
cmp eax, edi
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
jae 0x410500
push str.4747
call ebx
test eax, eax
je 0x410500
push eax
call edi
call fcn.00413e2f
cmp eax, 2
jae 0x410523
push str.Local10731
push 1
push 1
xor eax, eax
push eax
call ebp
test eax, eax
je 0x410523
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
call fcn.00413e2f
cmp eax, 2
jae 0x410542
xor eax, eax
push eax
push 1
push 1
push eax
call ebp
test eax, eax
je 0x410542
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00413e2f
cmp eax, 2
jae 0x41055a
push str.130130
call ebx
test eax, eax
je 0x41055a
push eax
call edi
push str.SeDebugPrivilege
call fcn.00410140
mov dword [esp], str.NtQuerySystemInformation
push str.ntdll.dll
call fcn.0041104f
push str.NtDuplicateObject
push str.ntdll.dll
mov ebp, eax
call fcn.0041104f
add esp, 0x10
mov dword [esp + 0x34], eax
call fcn.00413e2f
cmp eax, 3
jae 0x4105b1
push str.Global416
xor eax, eax
push eax
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x4105b1
push eax
call esi
xor eax, eax
mov byte [esp + 0x12], al
cmp byte [esp + 0x12], al
je 0x4105d1
push eax
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
call fcn.00413e2f
cmp eax, 2
jae 0x4105f2
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x4105f2
push eax
mov byte [eax + 1], 0x55
call fcn.0040c4f8
pop ecx
xor eax, eax
mov byte [esp + 0x12], al
cmp byte [esp + 0x12], al
je 0x41062e
mov esi, 0x2d9
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x2d9
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x410605
mov ebx, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
call fcn.00413e2f
cmp eax, 2
jae 0x41064f
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x41064f
push eax
mov byte [eax + 1], 0x11
call fcn.0040c4f8
pop ecx
xor eax, eax
mov byte [esp + 0x12], al
cmp byte [esp + 0x12], al
je 0x41068b
mov esi, 0x375
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x375
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x410662
mov ebx, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
call fcn.00413e2f
cmp eax, 2
jae 0x4106a3
push str.438438
call ebx
test eax, eax
je 0x4106a3
push eax
call edi
push str.NtQueryObject
push str.ntdll.dll
call fcn.0041104f
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x60]
mov ebx, ecx
mov dword [esp + 0x14], ebx
test al, al
jne 0x410853
mov esi, 0x10000
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
mov dword [esp + 0x14], eax
xor eax, eax
push eax
push esi
push ebx
push 0x10
call ebp
mov edi, 0xc0000004
cmp eax, edi
jne 0x41071f
add esi, esi
push esi
push ebx
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov ebx, eax
xor eax, eax
push eax
push esi
push ebx
push 0x10
call ebp
cmp eax, edi
je 0x4106f8
mov dword [esp + 0x14], ebx
test eax, eax
js 0x41072b
test ebx, ebx
jne 0x41084d
call fcn.00413e2f
xor ebx, ebx
cmp eax, 3
jae 0x410753
push str.Global762
push ebx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x410753
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.00413e2f
cmp eax, 2
jae 0x410774
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x410774
push eax
mov byte [eax + 1], 0x1e
call fcn.0040c4f8
pop ecx
call fcn.00413e2f
cmp eax, 2
jae 0x41078d
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov byte [esp + 0x60], bl
cmp byte [esp + 0x60], 0
je 0x4107aa
push ebx
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemInt]
mov byte [esp + 0x60], bl
cmp byte [esp + 0x60], 0
je 0x4107c7
push ebx
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemInt]
mov byte [esp + 0x60], bl
cmp byte [esp + 0x60], 0
je 0x4107f8
mov edi, 0x3cc
mov esi, edi
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x4107d9
mov byte [esp + 0x60], bl
cmp byte [esp + 0x60], 0
je 0x410829
mov edi, 0x383
mov esi, edi
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x41080a
mov byte [esp + 0x60], bl
cmp byte [esp + 0x60], 0
je 0x410846
push ebx
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemInt]
xor al, al
jmp 0x410e24
mov al, byte [esp + 0x60]
xor ecx, ecx
mov byte [esp + 0x12], cl
mov esi, ecx
mov dword [esp + 0x20], ecx
test al, al
mov eax, 0xffff
jne 0x410868
mov eax, dword [ebx]
cmp esi, eax
jae 0x410e10
mov eax, esi
shl eax, 4
lea esi, [ebx + 4]
add esi, eax
lea edi, [esp + 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x54], 0x12019f
je 0x410dfc
mov edi, dword [esp + 0x48]
push edi
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov si, word [esp + 0x4e]
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x41099b
xor ecx, ecx
mov dword [esp + 0x30], ecx
call fcn.00413e2f
cmp eax, 3
jae 0x4108d0
push str.Local650
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
xor ecx, ecx
call fcn.00413e2f
cmp eax, 2
jae 0x4108f5
push str.Local10757
push 1
push 1
push ecx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
je 0x4108f5
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], cl
je 0x410917
push ecx
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
xor ecx, ecx
call fcn.00413e2f
cmp eax, 2
jae 0x410930
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x30], ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
call fcn.00413e2f
cmp eax, 3
jae 0x410958
push str.Global679
xor eax, eax
push eax
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x410958
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.00413e2f
cmp eax, 3
jae 0x410971
push str.Local849
xor eax, eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
xor eax, eax
push eax
push eax
push eax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
movzx eax, si
push eax
push ebx
call dword [esp + 0x50]
test eax, eax
jns 0x41099b
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x410df6
push 0x1000
xor eax, eax
push eax
movzx esi, si
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebp, eax
test ebp, ebp
je 0x41098f
xor eax, eax
push eax
push 0x1000
push ebp
push 2
push esi
call dword [esp + 0x4c]
test eax, eax
jns 0x410a8e
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x4109f6
push ebx
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemInt]
call fcn.00413e2f
cmp eax, 3
jae 0x410a0d
push str.Local130
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x410a29
push ebx
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemInt]
call fcn.00413e2f
cmp eax, 3
jae 0x410a40
push str.Local438
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call fcn.00413e2f
cmp eax, 2
jae 0x410a61
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x410a61
push eax
mov byte [eax + 1], 0x1a
call fcn.0040c4f8
pop ecx
call fcn.00413e2f
cmp eax, 2
jae 0x410a7a
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x40], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x410df6
push esi
call fcn.0040fb45
mov ebx, eax
pop ecx
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x410b17
xor ecx, ecx
cmp word [ebx], cx
jbe 0x410b17
mov eax, dword [esp + 0x5c]
inc dword [eax + 0x1c]
mov dword [eax], edi
mov edi, eax
mov al, byte [esp + 0x4c]
mov dword [edi + 8], esi
mov esi, dword [esp + 0x18]
mov byte [edi + 0xc], al
mov eax, dword [edi + 0x20]
mov dword [edi + 0x10], ebp
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ecx
mov dword [edi + 4], esi
cmp dword [eax], ecx
je 0x410d58
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
push edi
call dword [eax + ecx*8]
inc dword [edi + 0x18]
pop ecx
cmp eax, 1
je 0x410afc
test eax, eax
je 0x410d58
cmp eax, 2
je 0x410b0d
xor eax, eax
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
cmp dword [eax + ecx*8], 0
jne 0x410ad6
jmp 0x410d58
mov byte [esp + 0x12], 1
jmp 0x410d58
mov eax, dword [esp + 0x5c]
inc dword [eax + 0x1c]
mov dword [eax], edi
mov edi, eax
xor eax, eax
mov dword [edi + 8], esi
mov dword [edi + 0x10], ebp
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x410b4a
push eax
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
xor eax, eax
mov esi, dword [esp + 0x18]
mov dword [edi + 0x14], eax
mov al, byte [esp + 0x4c]
mov byte [edi + 0xc], al
mov eax, dword [edi + 0x20]
xor ecx, ecx
mov dword [edi + 0x18], ecx
mov dword [edi + 4], esi
cmp dword [eax], ecx
je 0x410d58
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
push edi
call dword [eax + ecx*8]
inc dword [edi + 0x18]
pop ecx
cmp eax, 1
jne 0x410d34
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], cl
je 0x410ba4
push ecx
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
xor ecx, ecx
call fcn.00413e2f
cmp eax, 2
jae 0x410bbd
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
call fcn.00413e2f
cmp eax, 3
jae 0x410bd6
push str.Local133
xor eax, eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call fcn.00413e2f
cmp eax, 2
jae 0x410bf7
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x410bf7
push eax
mov byte [eax + 1], 0xe3
call fcn.0040c4f8
pop ecx
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], cl
je 0x410c2e
push 0x6f
pop esi
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x6f
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x410c08
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
call fcn.00413e2f
cmp eax, 3
jae 0x410c45
push str.Local780
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call fcn.00413e2f
cmp eax, 2
jae 0x410c66
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x410c66
push eax
mov byte [eax + 1], 0xd9
call fcn.0040c4f8
pop ecx
call fcn.00413e2f
cmp eax, 2
jae 0x410c81
xor eax, eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], cl
je 0x410ca3
push ecx
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
xor ecx, ecx
mov byte [esp + 0x13], cl
cmp byte [esp + 0x13], 0
je 0x410cd9
push 0x58
pop esi
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x58
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x410cb3
mov ebx, dword [esp + 0x1c]
xor ecx, ecx
call fcn.00413e2f
cmp eax, 2
jae 0x410cf8
push ecx
push ecx
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
je 0x410cf8
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], al
je 0x410d3d
mov esi, 0x2ea
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x2ea
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec esi
jne 0x410d0b
mov ebx, dword [esp + 0x1c]
jmp 0x410d3d
test eax, eax
je 0x410d54
cmp eax, 2
je 0x410d4f
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
cmp dword [eax + ecx*8], 0
jne 0x410b6b
jmp 0x410d54
mov byte [esp + 0x12], 1
mov esi, dword [esp + 0x18]
push ebp
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
call fcn.00413e2f
cmp eax, 3
jae 0x410d91
push str.Global78
xor eax, eax
push eax
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x410d91
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.00413e2f
cmp eax, 2
jae 0x410db2
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
je 0x410db2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00413e2f
cmp eax, 2
jae 0x410dd3
push 2
call fcn.0041a976
pop ecx
test eax, eax
je 0x410dd3
push eax
mov byte [eax + 1], 0x92
call fcn.0040c4f8
pop ecx
test ebx, ebx
je 0x410de8
push ebx
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0x12], 0
jne 0x410e0e
mov ebx, dword [esp + 0x14]
xor ecx, ecx
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x60]
inc esi
mov dword [esp + 0x20], esi
jmp 0x41085d
xor ecx, ecx
push dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret