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

Disassembly:
dec ebp
push esp
or eax, 0x6363410a
jo 0x1005191e
sub eax, 0x676e6152
jae 0x100518ec
and byte [edx + 0x79], ah
je 0x1005191c
jae 0x100518c6
or al, byte [ebp + 0x54]
popal
cmp ah, byte [bx + si]
and ah, byte [ecx + edi + 0x39]
cmp word [0x36616665], si
xor eax, 0x36616665
xor dword [ebp + 0x63], esp
xor dword fs:[edx], edi
xor byte [edx], ah
or eax, 0x7265530a
jbe 0x1005193f
jb 0x10051916
and byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x10051953
je 0x10051914
dec ecx
dec ecx
push ebx
das
aaa
xor byte cs:[0x502d580a], cl
outsd dx, dword [esi]
ja 0x1005195b
jb 0x1005195d
sub eax, 0x203a7942
inc ecx
push ebx
push eax
dec esi
inc ebp
push esp
or eax, 0x7461440a
cmp ah, byte gs:[eax]
inc esi
jb 0x10051979
sub al, 0x20
xor dh, byte [eax]
and byte [ecx + 0x70], al
jb 0x10051939
jo 0x1005198a
and byte [edx], dh
xor byte [ecx], dh
xor dh, byte [eax]
xor dword [edx], esi
and byte [eax], dh
xor edi, dword [edx]
cmp dh, byte [edi + esi]
xor ah, byte [eax]
xor byte [ebx], dh
cmp dh, byte [0x4d472032]
push esp
or eax, 0x6e6f430a
je 0x10051996
outsb dx, byte [esi]
je 0x10051961
dec esp
outsb dx, byte gs:[esi]
je 0x100519a2
push 0x6425203a
or eax, 0xa0d0a
cmp ah, byte [eax]
and eax, 0xd0a0d64
or al, byte [eax]
or cl, byte [0x7700000a]
ja 0x100519be
add byte [edi + 0x77], dh
ja 0x10051976
jne 0x100519ad
jne 0x100519ad
popal
arpl word cs:[edi + 0x6d], bp
add byte [eax], al
add byte [eax], al
dec eax
push esp
add byte [eax + 0x54], cl
push esp
push eax
das
xor dword [esi], ebp
xor dword [eax], esp
xor esi, dword [eax]
xor ah, byte [eax]
invalid
dec ebp
outsd dx, dword [esi]
jbe 0x100519ca
and byte fs:[ebp + 0x6d], dl
jo 0x100519db
jb 0x100519cf
jb 0x100519d9
insb byte es:[edi], dx
jns 0x10051980
or cl, byte [edi + ebp*2 + 0x63]
popal
je 0x100519e3
arpl word [ecx + 0x74], sp
imul ebp, dword [edi + 0x6e], 0x7325203a
outsd dx, dword [esi]
outsb dx, byte [esi]
cmp ah, byte [eax]
and eax, 0x430a0d73
outsd dx, dword [esi]
outsb dx, byte [esi]
or eax, 0x6e6f430a
je 0x100519ec
outsb dx, byte [esi]
je 0x100519b7
dec esp
outsb dx, byte gs:[esi]
je 0x100519f8
cmp ah, byte [eax]
xor byte [0x6e6f430a], cl
outsd dx, dword [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
arpl word gs:[ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
cmp ah, byte [eax]
and byte [ebx + 0x6c], ah
outsd dx, dword [esi]
jae 0x10051a0b
or eax, 0x6e6f430a
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0x10051a0b
or eax, 0x6e6f430a
je 0x10051a12
outsb dx, byte [esi]
je 0x100519dd
push esp
jns 0x10051a23
cmp ah, byte gs:[eax]
je 0x10051a1d
js 0x10051a2e
js 0x10051a2e
das
push 0xd6c6d74
or cl, byte [0x5448000a]
insb byte es:[edi], dx
or eax, 0xa0d0a
dec eax
push esp
push esp
push eax
das
xor dword [esi], ebp
xor dword [eax], esp
xor dword cs:[eax], esp
xor esi, dword [eax]
xor ah, byte [eax]
dec ebp
outsd dx, dword [esi]
jbe 0x10051a3a
and byte fs:[ebp + 0x6d], dl
insd dword es:[edi], dx
jo 0x10051a4b
outsd dx, dword [esi]
jb 0x10051a3f
popal
jb 0x10051a49
insb byte es:[edi], dx
jns 0x100519f0
or cl, byte [edi + ebp*2 + 0x63]
popal
je 0x10051a53
outsd dx, dword [esi]
outsb dx, byte [esi]
cmp ah, byte [eax]
and eax, 0x430a0d73
outsd dx, dword [esi]
outsb dx, byte [esi]
or eax, 0x6e6f430a
je 0x10051a5c
outsb dx, byte [esi]
je 0x10051a27
dec esp
outsb dx, byte gs:[esi]
je 0x10051a68
cmp ah, byte [eax]
xor byte [0x6e6f430a], cl
outsb dx, byte [esi]
arpl word gs:[ecx + ebp*2 + 0x6f], si
je 0x10051a76
outsd dx, dword [esi]
outsb dx, byte [esi]
cmp ah, byte [eax]
arpl word [edi + ebp*2 + 0x73], bp
or eax, 0x6e6f430a
insb byte es:[edi], dx
outsd dx, dword [esi]
jae 0x10051a7b
or eax, 0x6e6f430a
je 0x10051a82
outsb dx, byte [esi]
je 0x10051a4d
push esp
jns 0x10051a93
cmp ah, byte gs:[eax]
je 0x10051a8d
js 0x10051a9e
js 0x10051a9e
das
push 0xd6c6d74
or cl, byte [0x493c000a]
insb byte es:[edi], dx
or eax, 0xa0d0a
cmp al, 0x49
jb 0x10051a9a
insd dword es:[edi], dx
and byte gs:[ebx + 0x72], dh
arpl word [0x22732522], di
cmp eax, 0x22732522
and byte [edi + 0x69], dh
je 0x10051ab2
push 0x3031223d
xor byte [0x68202225], ah
cmp eax, 0x30303122
and dh, byte [ecx]
xor byte [eax], dh
and eax, 0x68202225
push 0x68676965
je 0x10051a97
imul esp, dword gs:[edi + 0x68], 0x31223d74
and dh, byte [ecx]
xor byte [eax], dh
and eax, 0x73202225
and ah, byte [eax]
jae 0x10051ac7
jb 0x10051ad5
insb byte es:[edi], dx
insb byte es:[edi], dx
imul ebp, dword [esi + 0x67], 0x6f6e223d
and ah, byte [eax]
jb 0x10051ad5
insd dword es:[edi], dx
bound ebp, qword gs:[edi + 0x72]
bound ebp, qword [edi + 0x72]
jb 0x10051aba
jb 0x10051aba
and dh, byte [eax]
and bh, byte [esi]
cmp al, 0x2f
das
imul esp, dword [esi + 0x72], 0x3e656d61
add byte [eax], al
cmp al, 0x49
dec ecx
jb 0x10051af2
insd dword es:[edi], dx
and byte gs:[ebx + 0x72], dh
and byte [ebx + 0x72], dh
arpl word [0x22732522], di
cmp eax, 0x22732522
jae 0x10051abe
and byte [edi + 0x69], dh
je 0x10051b0a
imul esp, dword [esp + esi*2 + 0x68], 0x3031223d
xor byte [0x68202225], ah
cmp eax, 0x30303122
and eax, 0x68202225
imul esp, dword gs:[edi + 0x68], 0x33223d74
and dh, byte [ebx]
xor eax, 0x22252530
and byte [ebx + 0x63], dh
jae 0x10051b1f
jb 0x10051b2d
insb byte es:[edi], dx
insb byte es:[edi], dx
imul ebp, dword [esi + 0x67], 0x6f6e223d
and ah, byte [eax]
jb 0x10051b2d
insd dword es:[edi], dx
bound ebp, qword gs:[edi + 0x72]
jb 0x10051b12
and dh, byte [eax]
and bh, byte [esi]
cmp al, 0x2f
imul esp, dword [esi + 0x72], 0x3e656d61
add byte [eax], al
dec eax
push esp
push esp
push eax
das
xor dword [esi], ebp
xor dword [eax], esp
xor dh, byte [eax]
xor byte [eax], ah
dec edi
dec ebx
or eax, 0x6e6f430a
je 0x10051b5f
outsb dx, byte [esi]
je 0x10051b2a
push esp
jns 0x10051b70
cmp ah, byte gs:[eax]
je 0x10051b6a
js 0x10051b7b
das
push 0xd6c6d74
or cl, byte [ecx + 0x73]
insd dword es:[edi], dx
insb byte es:[edi], dx
or eax, 0x73614c0a
je 0x10051b40
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 0x10051b89
imul ebp, dword [eax], 0x41203032
jo 0x10051b9a
sub al, 0x20
xor dh, byte [eax]
and byte [ecx + 0x70], al
jb 0x10051b49
and byte [edx], dh
xor dh, byte [eax]
xor dword [edx], esi
xor byte [ecx], dh
xor ah, byte [eax]
xor byte [ebx], dh
cmp dh, byte [ebx]
aaa
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 0x10051bb6
jo 0x10051bb6
sub eax, 0x676e6152
jae 0x10051b84
cmp ah, byte [eax]
bound edi, qword [ecx + 0x74]
jae 0x10051b5e
and byte [edx + 0x79], ah
je 0x10051bb4
jae 0x10051b5e
or al, byte [ebp + 0x54]
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
and cl, byte [0x7265530a]
jbe 0x10051bd7
jb 0x10051bae
and byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x10051beb
outsd dx, dword [esi]
je 0x10051bac
dec ecx
dec ecx
push ebx
das
aaa
xor byte cs:[0x502d580a], cl
outsd dx, dword [esi]
ja 0x10051bf3
sub eax, 0x65776f50
jb 0x10051bf5
sub eax, 0x203a7942
inc ecx
push ebx
push eax
dec esi
dec esi
inc ebp
push esp
or eax, 0x7461440a
cmp ah, byte gs:[eax]
inc esi
jb 0x10051c11
sub al, 0x20
xor dh, byte [eax]
and byte [ecx + 0x70], al
jb 0x10051bd1
jo 0x10051c22
and byte [edx], dh
xor byte [ecx], dh
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 0x10051c2e
outsb dx, byte [esi]
je 0x10051bf9
dec esp
outsb dx, byte gs:[esi]
je 0x10051c3a
push 0x6425203a
or eax, 0xa0d0a
cmp ah, byte [eax]
and eax, 0xd0a0d64
or al, byte [eax]
or cl, byte [0x6700000a]
je 0x10051be0
add byte [edi + 0x65], ah
je 0x10051be0
push 0x2f707474
xor dword [esi], ebp
add byte [eax + 0x6f], ch
jae 0x10051c60
je 0x10051c27
cmp al, byte [eax]
add byte [eax], al
or eax, 0x7200000a
add byte [eax], al
add byte [0x7200000a], cl
add byte [edx + 0x65], dh
jb 0x10051c5f
jb 0x10051c5f
jb 0x10051c36
jb 0x10051c36
add byte [eax], al
add byte [eax], al
or eax, 0x6800000a
outsd dx, dword [esi]
jae 0x10051c7c
cmp al, byte [eax]
add byte [eax], al
push 0x2f707474
xor dword [eax], eax
add byte [edi + 0x65], ah
je 0x10051c18
and byte fs:[ebp + 0x61], ch
jo 0x10051c57
das
jae 0x10051c8f
je 0x10051c68
push esp
and byte ds:[ecx + 0x74], ch
and byte [ecx + 0x74], ch
jb 0x10051c95
je 0x10051ca5
jb 0x10051c38
sbb al, 0x5b
pop es
adc byte [eax + 0x3a], dh
add byte [eax], dl
sar byte [ecx], 1
add byte [eax], dl
fcomp dword [ebx + 7]
adc al, dh
cmp dword [eax], eax
adc al, dl
cmp dword [eax], eax
adc byte [ebp + 0x61], ch
jo 0x10051c83
jae 0x10051cbb
je 0x10051c94
cmp al, 0x54
push esp
and byte ds:[edi + ebp*2 + 0x6f], dh
and byte [edi + ebp*2 + 0x6e], ch
insb byte es:[edi], dx
outsd dx, dword [esi]
outsb dx, byte [esi]
add ah, ch
pop ebx
pop es
adc al, dl
pop ebx
add byte [eax], dl
sar byte [ecx], 1
add byte [eax], dl
cmp al, 0x5c
rcr byte [ebx], 1
adc al, dl
cmp dword [eax], eax
adc byte [esp + ebx*2], bh
pop es
adc byte [eax - 0x5eefff97], al
inc esi
add eax, 0x495f5210
push edx
pop edi
dec ecx
outsb dx, byte [esi]
imul esi, dword [eax + eax], 0x676f4c
xor dword [eax], eax
add byte [eax], al
push edx
pop edi
add byte [edi + ebp*2 + 0x67], cl
add byte [ecx], dh
add byte [eax], al
add byte [edx + 0x5f], dl
dec ecx
outsb dx, byte [esi]
imul esi, dword [eax + eax], 0x676f4c
pop esp
pop esp
dec esp
outsd dx, dword [esi]
add byte [si + 0x5c], bl
pop esp
push ebx
popal
dec si
je 0x10051ce9
pop edi
inc esp
jbe 0x10051d12
arpl word [ebp], sp
bound esp, qword [ecx + 0x64]
and byte [ecx + 0x6c], ah
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ecx + 0x74], sp
imul ebp, dword [edi + 0x6e], 0x69700000
add byte [eax + 0x69], dh
cmp eax, 0x31376661
xor byte [eax], dh
sub eax, 0x30303030
add byte [eax], al
add byte [eax], al
aaa
xor esp, dword [0x36256636]
aaa
and eax, 0x37256636
xor eax, 0x25653225
xor esp, dword ss:[0x36256636]
add byte fs:[ebp + 0x78], bl
jo 0x10051d75
outsd dx, dword [esi]
jb 0x10051d71
jb 0x10051d3c
js 0x10051d76
add byte [eax], al
add byte [ebx], dh
xor al, 0x30
add byte [eax], al
xor esp, dword [esi + 0x66]
xor al, 0x30
popal
cmp dword [eax], edi
xor eax, 0x30386434
popal
xor dh, byte [edi]
xor dword ss:[edx], esi
xor esi, dword ss:[edx]
popal
bound esp, qword [ebp + esi + 0x38]
xor eax, 0
xor eax, 0x61373234
aaa
popal
xor byte [ecx], dh
xor dword [ecx + 0x36], esp
xor ah, byte [ebx + 0x34]
add byte ss:[eax], al
add byte [eax], al
popal
xor byte [ebx + 0x61], ah
xor esi, dword [ecx]
xor byte gs:[ebx + 0x61], ah
xor dword [ecx], esi
aaa
xor dword [ebp + 0x32], esp
add byte [eax], al
add byte [eax], al
xor dh, byte fs:[ebx]
xor al, 0x31
arpl word ss:[esi + 0x64], sp
aaa
popal
add byte fs:[eax], al
add byte [eax], al
popal
add byte [eax], al
add byte [ecx + 0x66], ah
xor word fs:[ebx], si
xor dword fs:[ebx], esi
xor dh, byte [eax]
popal
xor ax, 0x6436
xor ah, byte [edi + esi + 0x36]
add byte [eax], al
add byte [eax], al
xor dh, byte [0x65326564]
xor byte [edi], dh
bound esi, qword fs:[ebx]
arpl word [0x393633], si
add byte [eax], al
add byte [ecx + 0x32], ah
xor al, 0x30
xor eax, 0x65653637
xor al, 0x39
bound esi, qword [edx]
xor dword [esi + 0x31], esp
add byte [eax], al
add byte [eax], al
bound edi, qword [ecx]
xor dh, byte fs:[0x32353161]
xor al, 0x66
cmp dword [ebx], esi
cmp byte gs:[0], dh
cmp dword gs:[ecx], edi
cmp byte gs:[edx + esi], dh
xor ax, 0x6436
popaw
add byte [eax], al
add byte [eax], al
xor al, 0x61
cmp dword [edi], esi
aaa
xor dword fs:[ebp + 0x66], esp
cmp dword [ebx], esi
xor bh, byte [eax]
xor dh, byte [0]
arpl word gs:[esi], si
xor esp, dword [ecx + 0x65]
xor edi, dword [ecx]
xor dh, byte [esi]
aaa
aaa
xor eax, 0x36
add byte [eax], bh
cmp byte [edx + 0x35], ah
xor dword [ecx + 0x63], esp
xor eax, 0x32656563
popal
popal
cmp byte [ebp], ah
add byte [eax], al
add byte [0x34356363], dh
xor dword [0x66373663], esi
xor esp, dword [ebp + 0x63]
xor dword [eax + eax], esp
add byte [eax], al
xor ah, byte ss:[ebp + 0x64]
arpl word [edx], si
xor al, 0x62
xor byte [eax + edi], dh
xor bh, byte [eax]
add byte [eax], al
add byte [eax], al
xor eax, 0x64663662
xor eax, 0x65306164
cmp dword [ecx], edi
xor dword gs:[eax], eax
add byte [eax], al
add byte [0x39383533], dh
arpl word [ebx + esi], si
bound esp, qword [ebp + 0x38]
xor dh, byte [ebx + esi]
add byte [eax], al
add byte [eax], al
xor dword [edx], esi
xor byte [ebp + 0x35], ah
cmp word gs:[edi], si
cmp dword fs:[edx + 0x37], esp
bound esi, qword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor dh, byte [ecx]
cmp byte [ebp + 0x37], ah
xor dh, byte [esi]
xor esi, dword [ecx]
xor al, 0x37
xor dword [0x66623062], esi
bound esi, qword [0x33316533]
arpl word [esp + esi], si
xor esp, dword [ebp + 0x64]
xor eax, 0x64613463
xor eax, 0x35613731
aaa
xor dword [edx + 0x64], esp
arpl word [eax], si
cmp byte [ecx], bh
xor byte [esi + 0x62], ah
xor eax, 0x63376366
arpl word [esp + esi], si
cmp dword [eax], eax
add byte [eax], al
add byte [eax], dh
aaa
xor dword gs:[edx], esi
xor dh, byte [edi]
bound esp, qword [ecx + 0x35]
xor al, 0x61
xor dword [ebp + 0x36], esp
add byte fs:[eax], al
add byte [eax], al
xor dh, byte [ecx]
cmp byte [ebp + 0x37], ah
xor dh, byte [esi]
xor esi, dword [ecx]
xor al, 0x37
xor dword [0x35623062], esi
xor esi, dword [esi]
xor al, 0x33
cmp dword ss:[ebx + esi], esi
xor dword [eax], edi
arpl word [0x63656165], si
xor dh, byte [edx]
xor dword [ebx], esi
cmp byte [ecx + 0x33], ah
arpl word [edx], si
xor esi, dword [ecx]
xor byte [edx], dh
arpl word [edx + 0x34], sp
xor byte [ebp + 0x65], ah
xor dword [esi + 0x37], esp
popal
xor dh, byte ss:[eax]
add byte [eax], al
add byte [eax], al
xor ah, byte [ebp + 0x32]
popal
xor ah, byte fs:[ecx + 0x61]
xor al, 0x63
xor dword [eax], esi
bound esi, qword [esi]
add byte [eax], al
add byte [eax], al
xor dh, byte [ecx]
cmp byte [ebp + 0x37], ah
xor dh, byte [esi]
xor esi, dword [ecx]
xor al, 0x37
xor dword [0x62623062], esi
bound esi, qword gs:[esi]
bound esi, qword [ecx]
arpl word [eax], di
cmp byte gs:[edx], dh
xor byte [eax], bh
popal
xor byte [esi + 0x65], ah
xor dword [ebx], esi
popal
xor dword [edx + esi + 0x38], esp
bound esi, qword gs:[esi]
bound edi, qword [eax]
aaa
xor byte [eax], dh
aaa
arpl word [eax], di
xor byte gs:[eax], bh
xor byte [esi + 0x31], ah
xor byte [edx + 0x65], ah
xor al, 0
add byte [eax], al
add byte [ecx + 0x61], ah
xor sp, word ss:[edx + 0x38]
xor dword [ecx], edi
bound esp, qword [edx + 0x39]
xor ah, byte [ebp]
add byte [eax], al
add byte [edx], dh
xor dword [eax], edi
aaa
xor dh, byte [esi]
xor esi, dword [ecx]
xor al, 0x37
xor dword [0x32623062], esi
xor byte [ecx], dh
cmp dword [esi], esi
xor al, 0x66
xor al, 0x32
bound esi, qword ss:[0x30373936]
cmp word ss:[ebp + 0x33], sp
xor al, 0x30
xor eax, 0x36653635
xor dh, byte [eax]
cmp dword [ecx], edi
aaa
popal
xor byte [edx], dh
arpl word ss:[esi], si
xor al, 0x63
xor dh, byte [esi + esi]
add byte ss:[eax], al
add byte [eax], al
arpl word [edi], si
arpl word [edx], si
xor al, 0x30
popal
aaa
xor al, 0x63
cmp byte [esi], dh
xor al, 0x65
aaa
add byte [eax], al
add byte [eax], al
xor dh, byte [ecx]
cmp byte [ebp + 0x37], ah
xor dh, byte [esi]
xor esi, dword [ecx]
xor al, 0x37
xor dword [0x62623062], esi
aaa
xor al, 0x32
xor bh, byte [eax]
bound edi, qword [ecx]
xor dh, byte [edx]
xor byte [ecx + 0x31], ah
bound esi, qword [ebx]
popal
xor dword gs:[ebp + 0x64], esp
bound si, dword [ebx]
xor dword [ecx + 0x39], esp
bound edi, qword [eax]
xor byte [esi], dh
xor dword [esi + 0x30], esp
xor al, 0x38
xor al, 0x63
popal
xor al, 0x30
cmp dword [edx + 0x31], esp
xor al, byte [eax]
add byte [eax], al
add byte [ecx], dh
popal
cmp dword ss:[esi + 0x37], esp
aaa
bound esi, qword [ecx]
xor dh, byte [0x66636463]
add byte [eax], al
add byte [eax], al
xor dh, byte [ecx]
cmp byte [ebp + 0x37], ah
xor dh, byte [esi]
xor esi, dword [ecx]
xor al, 0x37
xor dword [0x33623062], esi
cmp dword [ebp + esi + 0x39], esp
xor dh, byte ss:[ecx]
xor byte [eax], dh
popal
cmp dword [edx], esi
arpl word gs:[edx], si
cmp byte [esi], dh
cmp byte [esp + esi + 0x62], ah
xor dword [ecx], esi
xor esi, dword [ebx]
cmp dword [edx + 0x32], esp
bound edi, qword ss:[ecx]
xor al, 0x38
xor bh, byte [ecx]
xor esi, dword [edx]
popal
cmp byte [ebx + 0x33], ah