Function at 0x40289f
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, 0xc4
mov eax, dword [0x49400c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x494804], 0
push ebx
push esi
push edi
je 0x402dec
mov ecx, dword [0x494040]
test ecx, ecx
jle 0x402985
mov eax, dword [0x49482c]
test eax, eax
jne 0x402979
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x402955
mov edi, dword [ebx + 0x18]
test edi, edi
je 0x402955
mov ecx, dword [ebx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, edx
sub ecx, 4
mov dword [ebp - 0x20], 0x44a207c0
dec edi
mov dword [ebp - 0x28], ecx
mov esi, dword [ecx]
add esi, edx
mov dl, byte [esi]
inc esi
mov byte [ebp - 0x21], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x402951
mov cl, byte [ebp - 0x21]
mov edx, dword [ebp - 0x20]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x40292d
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x1eabcb10
mov edx, dword [eax + 0x18]
je 0x402959
mov ecx, dword [ebp - 0x28]
test edi, edi
jne 0x402908
mov eax, dword [eax]
jmp 0x4028e9
mov eax, dword [ebx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [0x494040]
mov eax, dword [eax + edx]
add eax, edx
mov dword [0x49482c], eax
push ecx
call eax
test ax, ax
jns 0x402dec
call fcn.00401700
mov ecx, eax
call fcn.00401c5b
test al, al
jne 0x4029ab
call fcn.00401594
test al, al
jne 0x4029ab
call fcn.0040154f
test al, al
je 0x402dec
call fcn.00401700
add eax, dword [0x4947d0]
mov ecx, eax
call fcn.00401312
mov ecx, dword [0x494704]
and eax, 0xfff
shl eax, 4
add ecx, 0xfffffff0
add eax, dword [0x4947b0]
add ecx, eax
call fcn.00401312
mov esi, eax
test esi, esi
je 0x402dec
mov ecx, dword [0x4947b8]
add ecx, esi
call fcn.00403d04
cwde
mov ecx, eax
mov dword [ebp - 0x58], eax
call fcn.004015fb
test al, al
je 0x402dec
mov ecx, dword [0x4947bc]
lea ecx, [ecx + esi]
call fcn.00401e35
test al, al
jne 0x402dec
call fcn.00401700
add eax, dword [0x4947c4]
mov ecx, eax
call fcn.00401312
cmp eax, dword [0x494810]
jl 0x402dec
call fcn.00401700
mov ecx, dword [0x494784]
add ecx, eax
call fcn.00401f17
ucomiss xmm0, dword [0x4907c0]
lahf
test ah, 0x44
jnp 0x402a65
cmp byte [0x4947f6], 0
jne 0x402dec
call fcn.00401700
mov ecx, dword [0x494758]
add ecx, eax
call fcn.00401e35
test al, 1
jne 0x402a88
cmp byte [0x4947f4], 0
jne 0x402dec
call fcn.00401700
mov edx, dword [0x494748]
lea ecx, [ebp - 0x1c]
lea edx, [eax + edx]
call fcn.0040197a
mov ecx, dword [0x49470c]
mov edx, dword [0x49473c]
lea edx, [edx + ecx]
lea ecx, [ebp - 0x10]
call fcn.0040197a
movss xmm0, dword [0x4947f8]
xor esi, esi
push 0x10
pop ecx
mov dword [ebp - 0x20], esi
movss dword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], ecx
add ecx, dword [0x4947b0]
add ecx, dword [0x494704]
call fcn.00401312
mov ebx, eax
test ebx, ebx
je 0x402c79
mov ecx, ebx
call fcn.00401c5b
test al, al
je 0x402c79
mov ecx, dword [0x49475c]
add ecx, ebx
call fcn.00401e35
test al, al
jne 0x402c79
call fcn.00401700
cmp ebx, eax
je 0x402c79
mov ecx, ebx
call fcn.00401c8a
test al, al
je 0x402c79
mov ecx, dword [0x49476c]
lea ecx, [ecx + ebx]
call fcn.00401e35
test al, al
jne 0x402c79
mov ecx, dword [0x494774]
lea ecx, [ecx + ebx]
call fcn.00401312
mov esi, eax
call fcn.00401700
lea ecx, [eax + 0x64]
call fcn.00401312
xor edx, edx
inc edx
lea ecx, [eax - 1]
shl edx, cl
test esi, edx
jg 0x402b74
cmp byte [0x49480b], 0
jne 0x402c76
call fcn.00401ffb
push eax
mov edx, ebx
lea ecx, [ebp - 0x94]
call fcn.00401c02
pop ecx
mov esi, eax
call fcn.00401700
mov edx, eax
lea ecx, [ebp - 0xa0]
call fcn.00401cfd
movss xmm0, dword [esi]
lea ecx, [ebp - 0x64]
sub esp, 0xc
mov edi, esp
subss xmm0, dword [eax]
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [esi + 4]
subss xmm0, dword [eax + 4]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [esi + 8]
lea esi, [ebp - 0x70]
subss xmm0, dword [eax + 8]
movss dword [ebp - 0x68], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044bacf
mov edi, esp
lea esi, [ebp - 0x64]
lea ecx, [ebp - 0xac]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044ba0b
movss xmm0, dword [ebp - 0x64]
lea esi, [ebp - 0x34]
subss xmm0, dword [ebp - 0x10]
mov edi, esp
lea ecx, [ebp - 0x7c]
addss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x60]
subss xmm0, dword [ebp - 0xc]
addss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [ebp - 8]
addss xmm0, dword [ebp - 0x14]
movss dword [ebp - 0x2c], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044b95d
fld dword [ebp - 0x78]
add esp, 4
fstp dword [esp + 4]
fld dword [ebp - 0x7c]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
movss xmm0, dword [ebp - 0x38]
fstp dword [ebp - 0x54]
movss xmm1, dword [ebp - 0x54]
comiss xmm1, xmm0
pop ecx
pop ecx
ja 0x402c76
comiss xmm0, xmm1
jb 0x402c76
movaps xmm0, xmm1
mov esi, ebx
movss dword [ebp - 0x38], xmm0
mov dword [ebp - 0x20], esi
jmp 0x402c79
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
add ecx, 0x10
mov dword [ebp - 0x28], ecx
cmp ecx, 0x200
jle 0x402acd
test esi, esi
je 0x402dec
call fcn.00401ffb
push eax
mov edx, esi
lea ecx, [ebp - 0xb8]
call fcn.00401c02
pop ecx
mov esi, eax
call fcn.00401700
mov edx, eax
lea ecx, [ebp - 0xc4]
call fcn.00401cfd
movss xmm0, dword [esi]
lea ecx, [ebp - 0x44]
sub esp, 0xc
mov edi, esp
subss xmm0, dword [eax]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [esi + 4]
subss xmm0, dword [eax + 4]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [esi + 8]
lea esi, [ebp - 0x44]
subss xmm0, dword [eax + 8]
movss dword [ebp - 0x3c], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044bacf
movss xmm0, dword [ebp - 0x44]
lea esi, [ebp - 0x34]
subss xmm0, dword [ebp - 0x10]
mov edi, esp
lea ecx, [ebp - 0x50]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x3c]
subss xmm0, dword [ebp - 8]
movss dword [ebp - 0x2c], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044b95d
mov ecx, dword [ebp - 0x58]
add esp, 0xc
call fcn.0040169c
movss xmm2, dword [ebp - 0x50]
movss xmm3, dword [ebp - 0x4c]
movss xmm4, dword [ebp - 0x48]
test al, al
je 0x402d86
movss xmm1, dword [0x4908c8]
movss xmm0, dword [ebp - 0x1c]
mulss xmm0, xmm1
subss xmm2, xmm0
movss xmm0, dword [ebp - 0x18]
mulss xmm0, xmm1
subss xmm3, xmm0
movss xmm0, dword [ebp - 0x14]
mulss xmm0, xmm1
subss xmm4, xmm0
movd xmm0, dword [0x494060]
lea esi, [ebp - 0x34]
movss xmm1, dword [0x490880]
lea ecx, [ebp - 0x88]
cvtdq2ps xmm0, xmm0
sub esp, 0xc
mov edi, esp
divss xmm1, xmm0
mulss xmm2, xmm1
mulss xmm3, xmm1
addss xmm2, dword [ebp - 0x10]
mulss xmm4, xmm1
addss xmm3, dword [ebp - 0xc]
addss xmm4, dword [ebp - 8]
movss dword [ebp - 0x34], xmm2
movss dword [ebp - 0x30], xmm3
movss dword [ebp - 0x2c], xmm4
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044b95d
mov esi, ecx
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00401771
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044cc96
leave
ret