Function at 0x4049d0
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push edi
push ebx
push esi
and esp, 0xfffffff8
sub esp, 0x100
mov eax, dword [ebp + 8]
mov cl, 0x65
lea edx, [esp + 0x58]
mov byte [esp + 0xfb], 0xfa
mov dword [esp + 0xe0], 0x53f3d796
mov word [esp + 0x52], 0x3ef2
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0xb63f4c8
lea esi, [esp + 0xa4]
mov di, word [esp + 0x52]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xf4]
mov ch, byte [esp + 0xfb]
sub cl, ch
mov byte [esp + 0xa4], cl
cmp di, 0xa8d
mov dword [esp + 0x34], eax
mov byte [esp + 0x33], ch
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
mov word [esp + 0x26], di
mov dword [esp + 0x20], edx
jb 0x404d32
jmp 0x404ab0
mov eax, dword [esp + 0xe8]
sub eax, dword [esp + 0xe8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xcc]
mov cl, byte [esp + 0xfb]
xor cl, 0x9c
mov dword [esp + 0x4c], eax
mov byte [esp + 0xd7], 0x47
cmp byte [esp + 0xd7], cl
jbe 0x404d57
jmp 0x404bd0
mov al, 0xfa
mov byte [esp + 0xa5], 0x65
mov byte [esp + 0xa6], 0x72
mov cl, byte [esp + 0xfb]
mov dl, 0x28
sub dl, cl
mov byte [esp + 0xa7], 0x6e
mov byte [esp + 0xa8], 0x65
mov ah, 0x2c
sub ah, cl
mov byte [esp + 0xa9], 0x6c
mov byte [esp + 0xaa], 0x33
mov esi, dword [esp + 0x2c]
add esi, esi
mov edi, dword [esp + 0x34]
adc edi, edi
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], edi
mov byte [esp + 0xab], ah
mov byte [esp + 0xac], dl
mov byte [esp + 0xad], 0x64
mov byte [esp + 0xae], 0x6c
mov byte [esp + 0xaf], 0x6c
sub al, byte [esp + 0xfb]
mov byte [esp + 0xb0], al
mov byte [esp + 0xb1], 0xbe
mov byte [esp + 0xcb], 0x6b
mov bx, word [esp + 0x26]
or bx, 0x361f
mov word [esp + 0xe6], bx
mov dword [esp + 0x3c], 0
jmp 0x404c8f
mov eax, dword [esp + 0xe0]
xor eax, 0x53f3c796
mov dword [esp + 0x1c], eax
mov ecx, dword fs:[0x18]
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp ecx, edx
cmovb ecx, eax
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0xc]
add eax, 0x14
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
mov eax, dword [eax]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x40], 0
cmp eax, ecx
je 0x404c5b
jmp 0x404c3b
mov eax, dword [esp + 0x48]
mov ecx, esp
mov edx, dword [esp + 0x38]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.00405cc0
lea esp, [ebp - 0xc]
pop esi
pop ebx
pop edi
pop ebp
ret
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc4]
mov ecx, dword [ecx + 0x28]
mov dx, word [eax + 0x24]
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0xc4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x54], eax
shr dx, 1
movzx eax, dx
mov dword [esp + 0xa0], eax
cmp dx, 0
je 0x404cf4
jmp 0x404c4b
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xdc], eax
jmp 0x404bec
mov dword [esp + 0xcc], 0
jmp 0x404a6c
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
xor edx, edx
mov esi, 0x63cd224a
sub esi, eax
sbb edx, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
jb 0x404d32
jmp 0x404bd0
mov eax, 0x53f3d797
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x3c]
mov bl, byte [esp + 0xcb]
movsx esi, bl
mov di, si
sub eax, ecx
mov word [esp + edx*2 + 0x58], di
add edx, eax
mov bl, byte [esp + edx + 0xa4]
mov byte [esp + 0xcb], bl
mov bh, byte [esp + 0x33]
mov byte [esp + 0xef], bh
mov dword [esp + 0x3c], edx
cmp bl, 0
je 0x404b6e
jmp 0x404c8f
mov al, byte [esp + 0xd6]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x40], ecx
test al, 1
jne 0x404c5b
mov eax, dword [esp + 0xc4]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd8]
mov dx, word [esp + 0x26]
sub dx, 0xbaf8
mov word [esp + 0xe6], dx
mov dword [esp + 0xdc], eax
mov dword [esp + 0x40], 0
cmp eax, ecx
je 0x404c5b
jmp 0x404bec
mov eax, 0x4cd591ae
mov dword [esp], 0x4cd591ae
mov dword [esp + 0x10], eax
call fcn.00407190
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop ebx
pop edi
pop ebp
ret
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0xef], 0x2f
mov dx, word [eax + ecx*2]
mov si, dx
add si, 0xffbf
mov di, word [esp + 0x26]
mov word [esp + 0xe6], di
mov bx, dx
add bx, 0x20
cmp si, 0x1a
cmovb dx, bx
mov al, byte [esp + 0x33]
xor al, 0x83
mov byte [esp + 0xef], al
mov ecx, dword [esp + 0x4c]
cmp word [esp + ecx*2 + 0x58], dx
sete al
and al, 1
mov byte [esp + 0xd6], al
mov al, byte [esp + 0xd6]
cmp dx, 0
setne ah
and al, ah
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x4c]
add esi, 1
cmp esi, ecx
setb ah
and ah, al
mov dword [esp + 0xcc], esi
test ah, 1
jne 0x404a6c
jmp 0x404cdd