Function at 0x4614c0
Capabilities:
Create thread
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x478fde
mov eax, dword fs:[0]
push eax
sub esp, 0x190
mov eax, dword [0x4951c0]
xor eax, esp
mov dword [esp + 0x188], eax
push ebx
push esi
push edi
mov eax, dword [0x4951c0]
xor eax, esp
push eax
lea eax, [esp + 0x1a0]
mov dword fs:[0], eax
xor ebx, ebx
mov byte [0x58fb9c], bl
mov byte [0x58f97d], bl
cmp byte [0x58f97c], bl
je 0x461520
mov eax, dword [0x49a528]
call fcn.0046f250
mov byte [0x58f97c], bl
mov dword [0x58f9d0], ebx
mov dword [0x58f9cc], ebx
mov dword [0x543994], 0xc7
mov dword [0x55443c], ebx
mov dword [0x544d98], ebx
mov byte [0x58faba], bl
mov dword [0x54a9d8], 0x270f
mov dword [0x54c0c8], 0xffffd8f1
cmp byte [0x54a8d8], bl
je 0x461593
mov eax, dword [0x54a8cc]
push eax
call fcn.00409014
add esp, 4
cmp byte [0x58fabb], bl
je 0x46158d
push 0x54a8d8
call fcn.004087dd
add esp, 4
mov byte [0x58fabb], bl
cmp dword [0x58faa8], ebx
je 0x4615a0
call fcn.00474650
push ebx
push str.00.ns2
call fcn.00408562
add esp, 8
mov edi, 1
test eax, eax
jne 0x4615c2
mov dword [0x58faac], edi
call fcn.00421250
mov ecx, dword [0x58fb20]
mov esi, dword [0x58fb1c]
mov eax, dword [0x49ab6c]
push edi
mov byte [0x54a8d8], bl
mov byte [0x58f9c9], bl
mov dword [0x54ad04], ebx
mov dword [0x58fba0], ebx
mov byte [0x58fcac], bl
mov byte [0x54c2e8], bl
mov byte [0x52f168], bl
mov dword [0x54c7ec], 0xffffffff
mov dword [0x544d94], ebx
mov dword [0x544b78], ebx
mov dword [0x54aae4], edi
mov dword [0x54c7e8], ebx
mov dword [esp + 0x24], ecx
mov dword [0x58fb1c], ebx
mov dword [0x58fb20], ebx
call fcn.0046fad0
mov dword [0x58fabc], ebx
cmp byte [0x654dfc], bl
je 0x46165d
push ebx
push ebx
push 0x4253e0
mov byte [0x654dfc], bl
call fcn.0040b41d
add esp, 0xc
mov dword [0x654df8], eax
call fcn.0046e680
mov eax, dword [0x49ab6c]
mov edx, dword [esp + 0x20]
mov dword [0x544d90], edi
mov dword [0x496800], edi
mov byte [0x4ed978], bl
mov byte [0x4eda78], bl
mov byte [0x52dc10], bl
mov dword [eax + 0x528], 0xffffffff
mov byte [eax + 0x72c], bl
mov byte [eax + 0x62c], bl
mov byte [eax + 0x52c], bl
mov dword [0x58fb1c], esi
mov dword [0x58fb20], edx
mov dword [0x4edb7c], edi
mov dword [0x4ed54c], edi
mov dword [0x58fb00], ebx
mov dword [0x58fafc], ebx
mov dword [0x58fb10], ebx
mov dword [0x543998], ebx
mov dword [0x4ab59c], ebx
mov dword [0x544430], ebx
mov dword [0x543990], edi
mov dword [0x52e5bc], edi
mov dword [0x58fe48], ebx
mov esi, 0x591608
mov dword [0x58fe60], ebx
mov dword [0x592630], ebx
call fcn.004037c0
mov esi, 0x591618
call fcn.004037c0
push 0x591608
mov byte [0x59162c], bl
mov dword [0x59262c], ebx
mov dword [0x591628], ebx
mov dword [0x4963a4], ebx
call fcn.00403200
mov byte [0x591e2c], bl
mov byte [0x544540], bl
mov byte [0x52ff70], bl
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + 0x4ab5b8]
mov byte [eax + 0x53a0c8], cl
add eax, edi
cmp cl, bl
jne 0x461750
mov ecx, dword [0x49ab6c]
mov eax, 0xff
push str.:l_3_160_2_cursor0.bmp
push 0x590518
mov dword [0x52d868], eax
mov dword [0x544c8c], eax
mov dword [0x4ed664], eax
mov dword [0x54a8b0], eax
mov dword [0x54c2e0], eax
mov dword [0x54b124], eax
mov dword [0x58fb0c], edi
call fcn.00402010
mov ecx, dword [0x49ab6c]
push str.:l_3_160_2_cursor1.bmp
push 0x5907ac
call fcn.00402010
mov ecx, dword [0x4967f0]
mov edx, dword [0x49ab6c]
mov eax, 0x10
mov dword [0x4ed550], eax
mov dword [0x4ebfc4], eax
mov eax, 0x1a
mov dword [0x4edb8c], eax
mov dword [0x4ed660], eax
mov dword [0x4ab6cc], eax
mov eax, dword [0x4965ec]
mov dword [0x53b79c], ebx
mov dword [0x53b798], ebx
mov dword [0x53b7a0], ebx
mov dword [0x53b7a4], ebx
mov dword [0x4ebfc8], 0x15
mov dword [0x4ed870], 0x17
mov dword [0x4edb80], 0x1c
mov dword [0x52f064], 0x999999
mov dword [0x4ab6b8], 0x14
mov dword [0x4edba0], ebx
mov dword [0x544434], ebx
mov dword [0x53b594], eax
mov dword [0x53c458], ecx
mov dword [0x4ac804], edi
mov dword [0x4ac800], edi
mov dword [0x4ed344], ebx
mov dword [0x4ed340], ebx
mov dword [0x52e2ac], ebx
mov dword [0x52e2a8], ebx
mov eax, dword [edx + 0x10]
push eax
mov dword [0x58fb0c], ebx
mov dword [0x544d9c], ebx
mov dword [0x544b7c], ebx
mov dword [0x52db04], ebx
mov dword [0x53b590], ebx
mov dword [0x49b484], ebx
mov dword [0x52e4b4], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x30], eax
mov dword [esp + 0x1a8], ebx
mov eax, dword [0x4965ec]
mov esi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov edi, dword [0x4967f0]
push ebx
mov dword [esp + 0x20], eax
mov byte [0x496938], bl
call esi
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0x84]
mov dword [esp + 0x18], eax
mov eax, dword [0x496b50]
push edx
mov dword [esp + 0x94], edi
mov edi, dword [sym.imp.USER32.dll_FillRect]
push eax
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x94], ecx
call edi
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [0x49ab6c]
cmp dword [edx + 0x514], ebx
je 0x461982
cmp byte [0x58f9cb], bl
je 0x461982
mov eax, dword [0x496b50]
mov ecx, dword [0x4967f0]
mov edx, dword [0x4965ec]
push ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 1
mov dword [esp + 0x18], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push 0xcc0020
push eax
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ebx
push ebx
push ecx
jmp 0x4619a4
mov edx, dword [0x496b50]
mov eax, dword [0x4967f0]
mov ecx, dword [0x4965ec]
push 0xcc0020
push ebx
push ebx
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push ebx
push ebx
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [0x4967f0]
mov ecx, dword [0x4965ec]
push ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
mov byte [0x497630], bl
call esi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x50], edx
lea edx, [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [0x497848]
push edx
push eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], ecx
call edi
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [0x4967f0]
mov eax, dword [0x4965ec]
push ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov byte [0x4978c8], bl
call esi
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x60], ecx
mov ecx, dword [0x497ae0]
push eax
push ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], edx
call edi
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x4967f0]
mov ecx, dword [0x4965ec]
push ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
mov byte [0x497b60], bl
call esi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x70], edx
lea edx, [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [0x497d78]
push edx
push eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], ecx
call edi
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [0x4967f0]
mov eax, dword [0x4965ec]
push ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov byte [0x4985c0], bl
call esi
mov ecx, dword [esp + 0x18]
mov esi, eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x4987d8]
mov edx, dword [esp + 0x10]
push esi
lea eax, [esp + 0x74]
push eax
push ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x84], edx
call edi
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [0x4967f0]
imul edx, dword [0x4965ec]
mov eax, dword [0x58fb28]
push edx
push ebx
push eax
mov dword [0x58fa88], ebx
call fcn.004112a0
mov ecx, dword [str.black]
mov dx, word [0x486530]
mov dword [0x544c90], ecx
add esp, 0xc
xor eax, eax
mov ecx, 0x3e8
mov edi, 0x5429f0
rep stosd dword es:[edi], eax
mov ecx, 0x3e8
mov edi, 0x4ab6d0
mov word [0x544c94], dx
mov byte [0x539cb8], bl
mov byte [0x539db8], bl
mov byte [0x539eb8], bl
mov edx, 0x4ad7c0
rep stosd dword es:[edi], eax
jmp 0x461b60
mov byte [edx], bl
add edx, 0x100
cmp edx, 0x4ebfc0
jl 0x461b60
mov eax, 0x6550a8
jmp 0x461b80
mov byte [eax - 0x104], bl
mov dword [eax], ebx
add eax, 0x3b0
cmp eax, 0x6900a8
jl 0x461b80
or eax, 0xffffffff
mov ecx, 0x64
mov edi, 0x4ee540
rep stosd dword es:[edi], eax
or eax, eax
mov ecx, 0x64
mov edi, 0x52e6c0
rep stosd dword es:[edi], eax
xor eax, eax
cmp dword [0x4963e0], ebx
mov dword [esp + 0x1c], eax
jle 0x461c01
jmp 0x461bd4
mov eax, dword [esp + 0x1c]
mov edx, dword [0x539fbc]
mov ecx, dword [0x4ed548]
lea esi, [edx + eax*4]
mov edi, 0x47d453
mov dword [ecx + eax*4], ebx
call fcn.00402270
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [0x4963e0]
mov dword [esp + 0x1c], eax
jl 0x461bd0
push str.start
call fcn.00459840
add esp, 4
mov dword [0x4ab5a4], ebx
mov dword [0x52e858], ebx
mov dword [0x4ed76c], ebx
mov byte [0x4ec0a8], bl
cmp dword [0x58f9f0], ebx
je 0x461ddd
cmp byte [0x58f9ca], bl
jne 0x461ddd
push ebx
push 0x48653c
mov byte [0x58f9ca], 1
call fcn.00408562
add esp, 8
test eax, eax
je 0x461d56
cmp dword [0x58faa8], ebx
je 0x461cdd
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x37]
push eax
lea ecx, [esp + 0x3c]
mov edx, 0x486548
call fcn.00473a20
add esp, 0x10
cmp eax, 0xffffffff
je 0x461cdd
mov ecx, dword [esp + 0x2c]
lea edx, [ecx + ecx]
push edx
call fcn.004082ac
add esp, 4
mov edi, eax
lea eax, [esp + 0x94]
push 0x486554
push eax
call fcn.00408bd7
mov ecx, dword [esp + 0x44]
push ebx
mov esi, eax
push ecx
push esi
call fcn.0040a3af
mov edx, dword [esp + 0x40]
add esp, 0x14
push esi
push edx
push edi
call fcn.0041da00
add esp, 0xc
push esi
jmp 0x461db7
cmp dword [0x58faac], ebx
je 0x461ddd
lea eax, [esp + 0x24]
push eax
lea edi, [esp + 0x98]
lea ecx, [esp + 0x24]
mov edx, 0x486558
call fcn.00420a10
add esp, 4
cmp eax, 0xffffffff
je 0x461ddd
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx]
push edx
call fcn.004082ac
add esp, 4
mov edi, eax
lea eax, [esp + 0x94]
push 0x486564
push eax
call fcn.00408bd7
mov ecx, dword [esp + 0x2c]
push ebx
mov esi, eax
push ecx
push esi
call fcn.0040a3af
mov edx, dword [esp + 0x34]
add esp, 0x14
push esi
push edx
push edi
call fcn.0041da00
add esp, 0xc
push esi
jmp 0x461db7
push ebx
push ebx
push 0x486568
call fcn.00408230
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
jne 0x461d70
xor esi, esi
jmp 0x461d86
push esi
call fcn.004080b4
add esp, 4
push esi
mov edi, eax
call fcn.00409464
add esp, 4
mov esi, edi
lea eax, [esi + esi]
push eax
call fcn.004082ac
add esp, 4
push 0x486574
push 0x486578
mov edi, eax
call fcn.00408bd7
push eax
push esi
push edi
mov dword [esp + 0x38], eax
call fcn.0041da00
mov ecx, dword [esp + 0x38]
add esp, 0x14
push ecx
call fcn.00409014
add esp, 4
push edi
call dword [0x58fa00]
add esp, 4
test al, al
jne 0x461dd4
push 0xffffffffffffffff
call fcn.00409330
push edi
call fcn.00407f4f
add esp, 4
mov ecx, str.:reset
call fcn.00402bc0
cmp eax, ebx
je 0x461e12
push ebx
push eax
mov byte [0x58f97f], bl
call dword [0x58f9fc]
add esp, 8
test al, al
jne 0x461e12
push str.reset
push 0x4865c0
call fcn.00458fe0
add esp, 8
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
push edx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x1a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x188]
xor ecx, esp
call fcn.00407f40
mov esp, ebp
pop ebp
ret