Function at 0x458ae0
Capabilities:
Access peb ldr_data
Encode data using xor
Get number of processors
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
push edi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x38], ecx
push eax
xor ebx, ebx
mov dword [ebp - 0x10], 0
push 8
push 0xffffffffffffffff
xor edi, edi
mov dword [ebp - 0x20], ebx
xor esi, esi
mov dword [ebp - 0x18], 0x200
mov dword [ebp - 0x1c], 0x200
mov dword [ebp - 4], ebx
call fcn.00411150
call eax
test eax, eax
jne 0x458e00
lea eax, [ebp - 4]
push eax
push esi
push esi
push 1
push dword [ebp - 0x10]
call fcn.00411240
call eax
mov ecx, dword [ebp - 4]
call fcn.004bca70
mov ebx, eax
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x458e00
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push ebx
push 1
push dword [ebp - 0x10]
call fcn.00411240
call eax
test eax, eax
jne 0x458e00
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + eax]
call fcn.004bca70
mov edi, eax
mov dword [ebp - 8], edi
test edi, edi
je 0x458e00
mov ecx, dword [ebp - 0x18]
add ecx, ecx
call fcn.004bca70
mov esi, eax
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x458e00
mov esi, dword [0x4f3830]
test esi, esi
jne 0x458c37
mov ecx, dword fs:[0x30]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x28], eax
mov edx, eax
mov dword [ebp - 0x14], ecx
nop dword [eax]
movzx ebx, word [ecx + 0x2c]
xor edi, edi
mov esi, dword [ecx + 0x30]
shr ebx, 1
mov dword [ebp - 0x24], 0x811c9dc5
lea eax, [esi + ebx*2]
cmp esi, eax
cmova ebx, edi
test ebx, ebx
je 0x458c18
nop
mov cl, byte [esi]
lea esi, [esi + 2]
movsx edx, cl
sub cl, 0x41
mov eax, edx
or eax, 0x20
cmp cl, 0x19
cmova eax, edx
inc edi
xor eax, dword [ebp - 0x24]
imul eax, eax, 0x1000193
mov dword [ebp - 0x24], eax
cmp edi, ebx
jne 0x458be0
cmp eax, 0x39794115
je 0x458e3a
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp eax, edx
je 0x458c29
cmp dword [ecx + 0x18], 0
jne 0x458bc0
xor esi, esi
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [0x4f3830], esi
mov eax, dword [0x4f3820]
test eax, eax
jne 0x458cd4
test esi, esi
je 0x458cc7
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + esi + 0x78]
lea eax, [ecx + esi]
mov dword [ebp - 0x24], eax
cmp eax, esi
je 0x458cc7
xor ecx, ecx
mov dword [ebp - 0x14], ecx
cmp dword [eax + 0x18], ecx
je 0x458cc7
mov eax, dword [eax + 0x20]
add eax, esi
mov dword [ebp - 0x28], eax
nop dword [eax + eax]
mov edx, dword [eax]
mov edi, 0x811c9dc5
add edx, esi
mov bl, byte [edx]
inc edx
test bl, bl
je 0x458cb5
movsx ecx, bl
lea edx, [edx + 1]
sub bl, 0x41
mov eax, ecx
or eax, 0x20
cmp bl, 0x19
mov bl, byte [edx - 1]
cmova eax, ecx
xor eax, edi
imul edi, eax, 0x1000193
test bl, bl
jne 0x458c80
cmp edi, 0x41369537
je 0x458e45
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
inc ecx
add eax, 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], eax
cmp ecx, dword [edx + 0x18]
jne 0x458c70
xor eax, eax
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [0x4f3820], eax
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push esi
lea ecx, [ebp - 0x1c]
push ecx
push edi
push dword [ebx]
push 0
call eax
test eax, eax
je 0x458e00
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x18]
lea ecx, [eax*2 + 0x20]
call fcn.004bca70
mov ebx, eax
mov eax, dword [ebp - 0x38]
mov dword [eax], ebx
test ebx, ebx
je 0x458dfd
mov ecx, esi
mov edx, ebx
nop dword [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x458d20
mov dword [ebp - 0x48], 0x64
mov eax, dword [ebp - 0x48]
xor eax, 0x5c
mov word [ebp - 0x44], ax
mov eax, dword [ebp - 0x48]
inc eax
mov word [ebp - 0x42], ax
mov eax, dword [ebp - 0x48]
movzx ecx, word [0x4025c4]
add eax, 2
movzx eax, ax
xor ecx, eax
xor eax, eax
mov word [ebp - 0x40], cx
xor edx, edx
mov word [ebp - 0x3e], ax
mov ax, word [ebp - 0x44]
nop dword [eax]
mov ax, word [ebp + edx*2 - 0x44]
mov ecx, dword [ebp - 0x48]
add ecx, edx
movzx eax, ax
xor ecx, eax
mov word [ebp + edx*2 - 0x44], cx
inc edx
cmp edx, 3
jb 0x458d70
xor eax, eax
lea edx, [ebp - 0x44]
mov word [ebp - 0x3e], ax
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x458d95
sub edx, esi
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x458da5
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x458dc4
sub edx, esi
add ebx, 0xfffffffe
mov ax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x458dd4
mov ecx, edx
mov dword [ebp - 0x20], 1
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x458e0f
push eax
call fcn.00411330
call eax
test ebx, ebx
je 0x458e1a
mov ecx, ebx
call fcn.004bced0
test edi, edi
je 0x458e25
mov ecx, edi
call fcn.004bced0
test esi, esi
je 0x458e30
mov ecx, esi
call fcn.004bced0
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
mov esi, dword [eax + 0x18]
jmp 0x458c2b
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, esi
jmp 0x458cc9