Function at 0x100516a0
Capabilities:
Authenticate hmac
Get number of processors

Disassembly:
je 0x10051707
outsb dx, byte [esi]
je 0x100516d2
push esp
jns 0x10051718
cmp ah, byte gs:[eax]
je 0x10051712
js 0x10051723
das
push 0xd6c6d74
or al, byte [ebx + 0x6f]
outsb dx, byte [esi]
je 0x10051720
outsb dx, byte [esi]
je 0x100516eb
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x7a67203a
imul esi, dword [eax + 0xd], 0x73614c0a
invalid
je fcn.10051700
sub eax, 0x69646f4d
imul sp, word [ebp + 0x64], 0x203a
dec ebp
outsd dx, dword [esi]
imul esp, dword fs:[esi + 0x69], 0x203a6465
inc esi
jb 0x10051749
sub al, 0x20
xor dh, byte [eax]
and byte [ecx + 0x70], al
jb 0x10051709
xor dh, byte [eax]
xor dword [edx], esi
and byte [eax], dh
xor edi, dword [edx]
xor esi, dword [edi]
cmp dh, byte [ebx]
cmp dword [eax], esp
inc edi
dec ebp
push esp
or eax, 0x6363410a
jo 0x10051776
jo 0x10051776
sub eax, 0x676e6152
jae 0x10051744
cmp ah, byte [eax]
bound edi, qword [ecx + 0x74]
jae 0x1005171e
and byte [edx + 0x79], ah
je 0x10051774
jae 0x1005171e
or al, byte [ebp + 0x54]
inc ebp
push esp
popal
cmp ah, byte [bx + si]
and ah, byte [ecx + edi + 0x39]
cmp word [0x36616665], si
xor eax, 0x36616665
popaw
xor dword ss:[ebp + 0x63], esp
xor dword [ebp + 0x63], esp
xor dword fs:[edx], edi
xor byte [edx], ah
or eax, 0x7265530a
xor byte cs:[0x502d580a], cl
sub eax, 0x65776f50
outsd dx, dword [esi]
ja 0x100517b3
jb 0x100517b5
sub eax, 0x203a7942
inc ecx
push ebx
push eax
dec esi
inc ebp
push esp
or eax, 0x7461440a
popal
je 0x100517c8
cmp ah, byte [eax]
inc esi
jb 0x100517d1
sub al, 0x20
xor dh, byte [eax]
and byte [ecx + 0x70], al
jb 0x10051791
xor dh, byte [eax]
xor dword [edx], esi
and byte [eax], dh
xor edi, dword [edx]
xor al, 0x37
xor ah, byte [eax]
xor byte [ebx], dh
cmp dh, byte [edi + esi]
cmp dh, byte [0x4d472032]
push esp
or eax, 0x6e6f430a
je 0x100517ee
outsb dx, byte [esi]
je 0x100517b9
dec esp
outsb dx, byte gs:[esi]
je 0x100517fa
push 0x6425203a
or eax, 0xa0d0a
cmp ah, byte [eax]
and eax, 0xd0a0d64
or al, byte [eax]
add byte [ecx + ecx*2], bh
jb 0x10051802
insd dword es:[edi], dx
and byte gs:[ebx + 0x72], dh
arpl word [0x22732522], di
and byte [edi + 0x69], dh
je 0x1005181a
cmp eax, 0x30303122
and dh, byte [ecx]
xor byte [eax], dh
and eax, 0x68202225
imul esp, dword gs:[edi + 0x68], 0x32223d74
and ah, byte [eax]
push 0x68676965
je 0x100517ff
and dh, byte [edx]
xor byte [eax], dh
xor byte [0x73202225], ah
arpl word [edx + 0x6f], si
insb byte es:[edi], dx
insb byte es:[edi], dx
imul ebp, dword [esi + 0x67], 0x6f6e223d
and ah, byte [eax]
jb 0x1005183e
insd dword es:[edi], dx
bound ebp, qword gs:[edi + 0x72]
jb 0x10051823
and dh, byte [eax]
and bh, byte [esi]
cmp al, 0x2f
imul esp, dword [esi + 0x72], 0x3e656d61
add byte [ecx + ecx*2], bh
jb 0x10051851
insd dword es:[edi], dx
add byte ds:[ecx + ecx*2], bh
jb 0x1005185a
insd dword es:[edi], dx
and byte gs:[ebx + 0x72], dh
arpl word [0x22732522], di
cmp eax, 0x22732522
jae 0x10051826
and byte [edi + 0x69], dh
je 0x10051872
cmp eax, 0x30303122
and eax, 0x68202225
imul esp, dword gs:[edi + 0x68], 0x32223d74
and dh, byte [edx]
xor byte [eax], dh
xor byte [0x73202225], ah
arpl word [edx + 0x6f], si
jae 0x10051888
jb 0x10051896
outsd dx, dword [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
imul ebp, dword [esi + 0x67], 0x6f6e223d
and ah, byte [eax]
jb 0x10051896
insd dword es:[edi], dx
bound ebp, qword gs:[edi + 0x72]
jb 0x1005187b
and dh, byte [eax]
xor dword [esi], ebp
xor dword [eax], esp
xor dh, byte [eax]
xor byte [eax], ah
dec edi
dec ebx
or eax, 0x6e6f430a
je 0x100518c7
outsb dx, byte [esi]
je 0x10051892
push esp
jns 0x100518d8
cmp ah, byte gs:[eax]
je 0x100518d2
js 0x100518e3
das
insd dword es:[edi], dx
insb byte es:[edi], dx
or eax, 0x73614c0a
je 0x100518a8
dec ebp
outsd dx, dword [esi]
imul esp, dword fs:[esi + 0x69], 0x203a6465
inc esi
jb 0x100518f1
sub al, 0x20
xor dh, byte [eax]
and byte [ecx + 0x70], al
jb 0x100518b1
xor dh, byte [eax]
xor dword [edx], esi
and byte [eax], dh
xor edi, dword [edx]
xor esi, dword [edi]
xor byte [ecx], dh
xor ah, byte [eax]
xor byte [ebx], dh
cmp dh, byte [ebx]
aaa
cmp dh, byte [ebx]
cmp dword [eax], esp
inc edi
jo 0x1005191e
cmp ah, byte [eax]
bound edi, qword [ecx + 0x74]
jae 0x100518c6
popaw
xor dword ss:[ebp + 0x63], esp
and cl, byte [0x7265530a]
outsd dx, dword [esi]
sub eax, 0x65776f50