Function at 0x1003dd30
Capabilities:
Access peb ldr_data
Get common file path
Get number of processors
Set console window title

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10109330
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x18c
mov eax, dword [0x101425c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 0xc]
sub eax, 0
je 0x1003e0c3
sub eax, 1
jne 0x1003e0d3
mov esi, dword [sym.imp.KERNEL32.dll_AllocConsole]
call esi
test eax, eax
jne 0x1003dda1
call dword [sym.imp.KERNEL32.dll_FreeConsole]
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call esi
push str.Debug
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
push 0
call fcn.100de8ac
push eax
push 0x10114c64
lea eax, [ebp - 0x190]
push str.conin_
push eax
call fcn.100ecc3b
push 1
call fcn.100de8ac
push eax
push 0x10114c70
lea eax, [ebp - 0x194]
push str.conout_
push eax
call fcn.100ecc3b
mov dword [ebp - 0x158], 0x8b1e1e50
add esp, 0x28
mov dword [ebp - 0x154], 0x376fca87
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x158], 0xa1c10b02
mov dword [ebp - 0x154], 0xca2c1cdb
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x158], 0xe75d2a03
mov dword [ebp - 0x154], 0x4301afee
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x158], 0xc4b96e2c
mov dword [ebp - 0x154], 0xca2c1cdb
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
movaps xmm1, xmmword [ebp - 0x130]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], ecx
xorps xmm1, xmmword [ebp - 0x180]
movaps xmmword [ebp - 0x130], xmm1
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.1003cbf0
lea ecx, [ebp - 0x130]
add esp, 8
mov edx, eax
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003ded1
mov eax, dword [edx + 0x10]
sub ecx, esi
cmp dword [edx + 0x14], 0xf
jbe 0x1003dee5
mov edx, dword [edx]
push ecx
lea ecx, [ebp - 0x130]
push ecx
push eax
push edx
call fcn.1003c280
add esp, 0x10
mov byte [ebp - 0x149], al
lea ecx, [ebp - 0x148]
call fcn.1001bf30
cmp byte [ebp - 0x149], 0
je 0x1003e0d3
push 0x104
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0x10114c7c
lea eax, [ebp - 0x120]
push 0x104
push eax
call fcn.100ecad0
add esp, 0xc
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x10144dfc], eax
test eax, eax
je 0x1003e0d3
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x10114c88
push eax
call esi
push 0x10114c98
push dword [0x10144dfc]
mov dword [0x10144d40], eax
call esi
mov dword [0x10144d44], eax
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0
mov eax, dword fs:[0x30]
mov dword [ebp - 4], 0
mov eax, dword [eax + 0xc]
add eax, 0xc
mov esi, dword [eax]
cmp esi, eax
je 0x1003e047
mov ecx, dword [ebx + 8]
nop dword [eax]
test esi, esi
je 0x1003e047
cmp dword [esi + 0x18], ecx
je 0x1003dfd5
mov esi, dword [esi]
cmp esi, eax
jne 0x1003dfc0
jmp 0x1003e047
mov eax, dword [esi + 4]
mov dword [ebp - 0x180], ecx
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x170], esi
mov eax, dword [eax]
mov dword [ebp - 0x17c], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x174], eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x180]
push eax
push 0
call fcn.1003c0d0
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [ecx], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [ecx], eax
call fcn.10048ce0
call fcn.1003eac0
call fcn.100603f0
call fcn.10068db0
call fcn.1005eae0
call fcn.1005e8e0
call fcn.1005f290
call fcn.10067130
call fcn.10052330
mov esi, dword [ebp - 0x18c]
test esi, esi
je 0x1003e0d3
mov ecx, dword [ebp - 0x184]
mov eax, 0x66666667
sub ecx, esi
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
mov eax, esi
shl ecx, 2
cmp ecx, 0x1000
jb 0x1003e0b7
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003e0f4
push ecx
push esi
call fcn.100be986
add esp, 8
jmp 0x1003e0d3
mov eax, dword [0x10144dfc]
test eax, eax
je 0x1003e0d3
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100be994
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
call fcn.100ea085
int3