Function at 0x47f2b4
Capabilities:
Encode data using xor
Get number of processors

Disassembly:
test dword [ebx - 0x74acbb14], eax
xor ebp, ebp
mov eax, 0x5e000000
mov ecx, dword [ebx + 0x6018247c]
inc esp
and al, 0x30
sbb byte [ecx + 0x44483024], cl
and al, 0x30
sub byte [esp + 0x40], al
push eax
lea ebx, [esp + ecx + 0x14]
push es
inc esp
and al, 0x34
xor byte [esi], dh
push 0x38106c44
mov dword [eax + edx + 0x3c], ebp
mov dword [eax + edx + 0x40], ebp
mov dword [eax + edx + 0x14], ebp
mov dword [eax + edx + 0x20], ebp
inc esp
insb byte es:[edi], dx
sbb al, 0x44
inc esp
insb byte es:[edi], dx
sbb al, 0x50
inc esp
insb byte es:[edi], dx
sbb al, 0x24
mov dword [eax + edx + 0x30], ebp
push es
inc esp
and al, 0x64
dec eax
dec eax
add byte [eax - 0x18], ch
cld
sahf
clc
dec dword [ebx - 0x74a3db8c]
cmove edx, dword [esi + 4]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x48
js 0x47f32d
dec eax
je 0x47f356
lea esp, [eax + edx]
xor byte [ecx - 0x18], dl
jg 0x47f323
call 0x8c46e6b1
je 0x47f33b
dec byte [ebx + 0x568b0774]
add al, 0x8b
or al, 0x82
mov edx, dword [esi + 4]
mov ecx, dword [edx + eax*4]
cmp word [ecx + 8], 0x47
cmp dword [ecx + 8], 0x47
jne 0x47f34e
dec eax
invalid
mov eax, dword [ecx]
mov ecx, dword [eax]
inc esp
dec esp
and byte [eax - 0x75], ah
pop es
mov eax, dword [edi]
mov edx, dword [esi + 4]
mov ecx, dword [edx + eax*4 + 4]
cmp word [ecx + 8], 0x47
push ss
pop esp
and al, 0x58
jne 0x47f381
lea esp, [eax + edx]
xor byte [edx + 0x57], dl
push esi
push ebx
call 0x8a473c1c
test eax, eax
jne 0x47f442
jmp 0x47f384
inc eax
mov dword [edi], eax
inc esp
pop es
mov eax, dword [ebx + ecx*4]
push ss
adc al, 0x81
cmp word [edx + 8], 0x41
je 0x47f475
je 0x47f3ed
xor byte [eax - 0x73], ah
inc esp
and al, 0x20
push eax
lea esp, [eax + edx]
xor al, 0x51
push edx
lea eax, [esp + ebp + 0x1c]
push eax
push ebx
call 0x8a47b9b9
test eax, eax
jne 0x5047f442
dec esp
and al, 0x28
adc al, ch
call [esi + 0x244c8bf8]
adc byte [eax], ah
push ecx
mov dword [esp + 0x1c], 0
mov dword [eax + edx + 0x14], ebp
call 0x8543550f
sal byte [ebp + 0xf], 0x84
sbb al, byte [ecx]
add byte [eax], al
dec esp
push esp
adc byte [eax], ah
push edx
mov ebx, esi
call fcn.00409211
dec esp
and al, 0x28
and al, ch
int3
dec esp
and al, 0x28
and al, ch
jbe 0x47f3e7
clc
dec dword [esp + 0x28]
inc eax
call fcn.004092c1
dec esp
and al, 0x28
adc al, ch
sahf
clc
mov ecx, dword [esp + 0x10]
xor al, ch
jnp 0x47f47a
stc
mov edi, dword [eax + 0x5e000000]
pop esi
pop ebp
pop ebx
ret 0xc483
inc dword [edi]
push 0xffffffffffffff8b
dec esp
and al, 0x10
inc esp
push ecx
push edi
push esi
mov ecx, ebx
call 0x8a40ab51
test eax, eax
jne 0x47f442
mov edx, dword [edi]
mov eax, dword [esi - 0x7d]
mov eax, dword [eax + edx*4]
cmp word [eax + 8], 0x7f
je 0x47f4a9
movsx ecx, word [eax + 0xa]
push ecx
push 0x72
push ebx
call fcn.0045e62f
jmp 0x47f442
lea esp, [esp]
inc eax
push edx
lea esi, [esp + 0x34]
call 0x8c40be01
inc esp
dec esp
and al, 0x60
push esi
push ecx
inc esp
and al, 0x24
sbb byte [edx + 0x53], dl
call fcn.0047b9f8
lea esp, [eax + ebp]
and byte [ebx - 0x62111708], cl
clc
dec dword [esp + 0x28]
inc eax
call fcn.004092c1
dec esp
and al, 0x28
adc al, ch
fcomp qword [ebp + 0x244c8bf8]
adc byte [eax], dh
call 0x8c410ae1
inc esp
invalid