Function at 0x4190d0
Capabilities:
Get number of processors
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x487ec0
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4bdbb0]
xor eax, esp
push eax
lea eax, [esp + 0x44]
mov dword fs:[0], eax
mov dword [esp + 0x34], ecx
call fcn.00449852
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x419117
push 0x80004005
call fcn.004108b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov ebp, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], ebx
xor edi, edi
lea ecx, [esp + 0x38]
call fcn.004262a0
lea ecx, [esp + 0x28]
push ecx
push str.esafenet_cdgout_20111226
lea ecx, [esp + 0x40]
mov byte [esp + 0x54], 1
mov dword [esp + 0x30], ebx
call fcn.00426320
test eax, eax
je 0x419199
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 0x18304]
push esi
lea eax, [esp + 0x30]
push str.CDocumentMgr::SetupSecretBox_GetMapPoint_is_true_deskdrive_is__d
push eax
call fcn.004135e0
mov ecx, dword [esp + 0x38]
add esp, 0xc
push ecx
call ebp
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
cmp esi, 0x41
jle 0x419199
cmp esi, 0x5a
jle 0x4191b6
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x38]
mov byte [esp + 0x4c], bl
call fcn.004262c0
inc edi
cmp edi, 0x64
jl 0x419137
jmp 0x4191ee
lea eax, [esp + 0x2c]
push str.CDocumentMgr::SetupSecretBox_GetMapPoint_is_true_BFIND_is_true
push eax
call fcn.004135e0
mov ecx, dword [esp + 0x34]
add esp, 8
push ecx
call ebp
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x38]
mov dword [esp + 0x30], 1
mov dword [edx + 0x410], esi
mov byte [esp + 0x4c], bl
call fcn.004262c0
push str.IsWow64Process
push 0x4a2210
mov dword [esp + 0x30], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
je 0x41921d
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
xor eax, eax
cmp dword [esp + 0x28], ebx
setne al
cmp eax, ebx
je 0x4192ee
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
jmp 0x419239
jmp 0x41923d
lea edi, [ecx + 0x796f]
xor edi, 0x501
or edi, 0x781a
add edi, 0x12
jmp 0x419255
lea edx, [edi - 0xc]
and edx, 0x14
or edx, 0x199d6a
mov eax, 0x110
sub eax, edx
mov dword [esp + 0x34], eax
jmp 0x41926f
mov edx, ecx
and edx, 0x3844
xor edx, eax
or edx, 0x41ab
mov esi, 0x796f
sub esi, edx
jmp 0x41928a
jmp 0x41928d
lea eax, [esi + esi*8]
add eax, eax
cdq
mov ebp, 0x18
idiv ebp
lea ebx, [esi + ecx - 0x123]
and ebx, 0x332
and edx, 0x154
xor ebx, edx
and edi, ebx
jmp 0x4192b5
mov eax, esi
sub eax, ecx
lea edx, [esi - 0x3f55]
add eax, 0x332
and eax, edx
mov ebx, 0x332
shl ebx, cl
lea edx, [esi - 0x41cf]
add esi, 0x422b
xor esi, edi
and edx, ebx
and edx, dword [esp + 0x34]
or eax, edx
or eax, esi
jmp 0x4192e9
jmp 0x4194dc
mov dword [esp + 0x24], 0x110
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ebp, eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x28], 0x8456
mov dword [esp + 0x1c], 0x4287
mov dword [esp + 0x18], 0x332
mov dword [esp + 0x14], 0x3678
mov dword [esp + 0x20], 0x12
jmp 0x41932d
pushaw
mov eax, dword [esp + 0x38]
jmp 0x419337
mov ebx, dword [esp + 0x2c]
jmp 0x41933e
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
jmp 0x41934e
mov edi, dword [esp + 0x28]
and eax, ebx
jmp 0x419358
or eax, esi
and ebx, dword [esp + 0x44]
jmp 0x419362
add ebx, eax
sub ecx, eax
sub esi, eax
mov dword [esp + 0x34], ebx
jmp 0x41936f
add edi, esi
and ebx, eax
jmp 0x419378
xor esi, edi
add esi, ebx
jmp 0x41937f
sub ecx, esi
add edi, ebx
jmp 0x419387
xor ecx, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], eax
jmp 0x419395
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], esi
jmp 0x4193a4
popaw
jmp 0x4193a9
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
lea edx, [ecx + eax]
mov eax, dword [esp + 0x14]
add esi, eax
and edx, esi
lea esi, [eax + eax*8]
add esi, esi
and esi, 0x23
xor edx, esi
and ecx, eax
or edx, ecx
or edx, dword [esp + 0x1c]
add eax, edx
mov dword [esp + 0x14], eax
jmp 0x4193dc
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x28]
lea ecx, [eax + ebp]
xor edx, ecx
mov ecx, dword [esp + 0x20]
add eax, ecx
xor eax, 0x19b
or edx, eax
add ecx, edx
mov dword [esp + 0x20], ecx
jmp 0x419407
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub ecx, dword [esp + 0x1c]
lea edx, [ecx + eax + 5]
and edx, eax
mov eax, dword [esp + 0x14]
imul eax, eax, 0xd8
sar eax, 2
or edx, eax
sub dword [esp + 0x24], edx
jmp 0x41942f
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, eax
and ecx, ebp
xor ecx, dword [esp + 0x24]
add edx, 0x12
xor edx, dword [esp + 0x18]
or ecx, edx
sub eax, ecx
mov dword [esp + 0x14], eax
jmp 0x419452
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
add eax, dword [esp + 0x1c]
mov ecx, ebp
shl edx, cl
and eax, edx
and dword [esp + 0x24], eax
jmp 0x41946f
mov esi, dword [esp + 0x28]
mov eax, esi
cdq
idiv dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + ecx*8]
add eax, eax
mov edi, edx
cdq
mov ebx, 0x18
idiv ebx
mov eax, dword [esp + 0x1c]
add ecx, eax
add ecx, esi
add ecx, ebp
and ecx, dword [esp + 0x18]
and edi, edx
xor edi, ecx
and dword [esp + 0x20], edi
jmp 0x4194a7
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, ecx
sub esi, dword [esp + 0x1c]
mov edx, ecx
add esi, eax
sub edx, ebp
add edx, eax
mov eax, dword [esp + 0x28]
and esi, edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor eax, dword [esp + 0x20]
or esi, eax
or dword [esp + 0x24], esi
jmp 0x4194d8
mov eax, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call esi
push eax
call fcn.00402090
add esp, 8
push 1
call esi
push eax
call fcn.00402320
add esp, 8
call esi
push eax
call fcn.00402410
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 4
mov dword [esp + 0x4c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41952e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4