Function at 0x404850
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46ac5b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe4
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor eax, eax
mov byte [esp + 0x88], 0
mov ecx, 0x18
lea edi, [esp + 0x89]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x20], 0
xor eax, eax
mov ecx, 0x18
lea edi, [esp + 0x21]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x14]
stosb byte es:[edi], al
call fcn.0040fa70
lea eax, [esp + 0x20]
xor ebp, ebp
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x100], ebp
call fcn.0040fea0
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x18]
call fcn.0040fd60
call fcn.00405c60
mov edx, dword [eax]
push str.________________System_Information____________________
push eax
call dword [edx + 4]
call fcn.00405c60
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push 0x4f4f50
push eax
call dword [ecx + 4]
add esp, 0x14
call fcn.00405c60
mov edi, eax
mov ebx, dword [edi]
lea ecx, [esp + 0x14]
call fcn.0040fab0
push eax
lea eax, [esp + 0x8c]
push eax
push str._s__u_Mhz
push edi
call dword [ebx + 4]
add esp, 0x10
call fcn.00405c60
mov edi, eax
mov ebx, dword [edi]
lea ecx, [esp + 0x14]
call fcn.0040fa80
push eax
push str._u_System_Processor_Detected
push edi
call dword [ebx + 4]
call fcn.00405c60
mov ecx, dword [eax]
push str.______________________________________________________
push eax
call dword [ecx + 4]
add esp, 0x14
lea ecx, [esp + 0x14]
call fcn.0040fa80
mov dword [esi + 0x3c], eax
mov dword [esi + 0x8d4], eax
call fcn.0040c9a0
mov ecx, eax
call fcn.0040c820
cmp dword [esi + 0x8d4], eax
jbe 0x40498e
call fcn.0040c9a0
mov ecx, eax
call fcn.0040c820
mov dword [esi + 0x8d4], eax
mov ecx, dword [esi + 0x8d4]
mov eax, 6
cmp ecx, eax
jbe 0x4049a3
mov dword [esi + 0x8d4], eax
call fcn.00405c60
mov ecx, dword [esi + 0x8d4]
mov edx, dword [eax]
push ecx
push str._d_Worker_Thread
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x8d4]
add esp, 0xc
cmp eax, ebp
jbe 0x404a3a
lea edx, [esi + 0x40]
mov dword [esp + 0x18], edx
mov edi, edi
lea eax, [esp + 0x1c]
push eax
push 0
push esi
push 0x404650
push 0
push 0
call dword [sym.imp.MSVCR71.dll__beginthreadex]
add esp, 0x18
mov edi, eax
call fcn.00405c60
test edi, edi
je 0x404a69
mov ecx, dword [eax]
lea ebx, [ebp + 1]
push ebx
push str._d_st_Worker_Thread_Create_OK
push eax
call dword [ecx + 4]
xor edx, edx
mov eax, ebp
div dword [esi + 0x3c]
add esp, 0xc
push edx
push edi
call dword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
mov edx, dword [esp + 0x18]
push edi
mov dword [edx], edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x8d4]
mov ebp, ebx
add ecx, 4
cmp ebp, eax
mov dword [esp + 0x18], ecx
jb 0x4049d0
lea ecx, [esp + 0x14]
mov dword [esp + 0xfc], 0xffffffff
call fcn.00406650
mov eax, 1
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, eax
mov edi, dword [esi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
inc ebp
push ebp
push str._d_Worker_Thread_Create_Error_code_:__d
push esi
call dword [edi + 4]
add esp, 0x10
lea ecx, [esp + 0x14]
mov dword [esp + 0xfc], 0xffffffff
call fcn.00406650
mov ecx, dword [esp + 0xf4]
pop edi
or eax, 0xffffffff
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret