Function at 0x407884
Capabilities:
Authenticate hmac

Disassembly:
outsd dx, dword [esi]
je 0x407802
dec ebp
popal
jae 0x407840
jne 0x40784a
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x407841
imul ebp, dword [esi + 0x65], 0x76450072
popal
insb byte es:[edi], dx
jne 0x40784c
je 0x407856
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x407855
imul ebp, dword [esi + 0x65], 0x69614d72
outsb dx, byte [esi]
add byte [ebp + 0x72], al
jb 0x407870
jb 0x407850
dec ebp
outsd dx, dword [esi]
add byte gs:[ebp + 0x78], al
arpl word [ebp + 0x70], sp
je 0x407877
outsd dx, dword [esi]
outsb dx, byte [esi]
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
jb 0x407818
push edi
imul ebp, dword [esi + 0x64], 0x4573776f
jb 0x407894
outsd dx, dword [esi]
jb 0x407877
jo 0x407897
jb 0x40789e
imul ebp, dword [esi + 0x67], 0x6e695700
outsd dx, dword fs:[esi]
ja 0x4078a8
inc ebp
jb 0x4078aa
outsd dx, dword [esi]
jb 0x40788d
jo 0x4078ad
jb 0x4078b4
imul ebp, dword [esi + 0x67], 0x67616c46
jae 0x407849
outsb dx, byte [esi]
inc esi
insb byte es:[edi], dx
popal
jae 0x407849
dec esi
popal
je 0x4078b6
imul esi, dword [esi + 0x65], 0x6874654d
jbe 0x4078b4
dec ebp
je 0x4078bb
outsd dx, dword [esi]
jae 0x407857
jae 0x407857
add byte [ecx + 0x73], al
jae 0x4078c0
inc ecx
jae 0x4078cd
insd dword es:[edi], dx
insd dword es:[edi], dx
bound ebp, qword [ecx + edi*2 + 0x52]
add byte gs:[edx + 0x65], dl
insb byte es:[edi], dx
popal
jae 0x4078cf
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
add byte [ebp + 0x73], ch
arpl word [edi + 0x72], bp
insb byte es:[edi], dx
jae 0x4078d5
outsd dx, dword [esi]
jb 0x4078e1
imul esp, dword [edx], 0x74737953
add byte [ebx + 0x79], dl
jae 0x4078f0
insd dword es:[edi], dx
add byte [edi + 0x62], cl
push 0x65
arpl word [eax + eax + 0x45], si
je 0x407886
inc ebp
outsb dx, byte [esi]
jne 0x4078f7
add byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x407901
je 0x4078c3
dec ebp
dec ebp
popal
jae 0x407901
jne 0x40790b
inc ebp
outsb dx, byte [esi]
imul ebp, dword [bp + 0x65], 0x63694d00
imul ebp, dword [esi + 0x65], 0x63694d00
jb 0x407916
jae 0x407918
outsd dx, dword [esi]
je 0x4078da
je 0x4078da
dec ebp
popal
jae 0x407918
jne 0x407922
inc ebp
jbe 0x407917
insb byte es:[edi], dx
jne 0x40791a
je 0x40792a
jb 0x4078eb
dec ecx
outsb dx, byte [esi]
je 0x407926
jb 0x407929
jb 0x407929
popal
arpl word [ebp], sp
dec ecx
inc ebp
js 0x40792e
jo 0x407942
je 0x407938
imul ebp, dword [edi + 0x6e], 0x646e6148
outsd dx, dword [esi]
outsb dx, byte [esi]
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x40790b
add byte [esi + 0x69], al
insb byte es:[edi], dx
inc esp
jae 0x407945
inc esi
imul ebp, dword [ebp + 0x44], 0x72637365
imul esi, dword [eax + 0x74], 0x6e6f69
dec ebp
arpl word [edx + 0x69], si
jb 0x40794d
jo 0x40795a
imul ebp, dword [edi + 0x6e], 0x49424d00
inc edx
dec ecx
outsb dx, byte [esi]
inc edx
jns 0x407965
je 0x407957
jae 0x4078f4
jae 0x4078f4
push ecx
push ebp
dec edi
push esp
inc ecx
pop edi
dec esp
dec ecx
dec ebp
dec ecx
push esp
push ebx
pop edi
dec eax
inc ecx
push edx
inc esp
push edi
push ebx
pop edi
dec ebp
dec ecx
dec esi
pop edi
inc esp
dec ecx
push ebx
inc ecx
inc edx
dec esp
inc ebp
add byte [ecx + 0x55], dl
dec edi
push esp
inc ecx
pop edi
dec esp
dec ecx
dec ebp
dec ecx
push esp
push ebx
pop edi
dec eax
inc ecx
push edx
inc esp
push edi
push ebx
pop edi
dec ebp
dec ecx
dec esi
pop edi
inc ebp
dec esi
inc ecx
inc edx
dec esp
inc ebp
add byte [ecx + 0x55], dl
dec edi
push esp
inc ecx
pop edi
dec esp
dec ecx
dec ebp
dec ecx
push esp
push ebx
pop edi
dec eax
inc ecx
push edx
inc esp
push edi
push ebx
pop edi
dec ebp
inc ecx
pop eax
pop edi
inc esp
dec ecx
push ebx
inc ecx
inc edx
dec esp
inc ebp
add byte [ecx + 0x55], dl
dec edi
push esp
inc ecx
pop edi
dec esp
dec ecx
dec ebp
dec ecx
push esp
push ebx
pop edi
dec eax
inc ecx
push edx
inc esp
push edi
push ebx
pop edi
dec ebp
inc ecx
pop eax
pop edi
inc ebp
dec esi
inc ecx
inc edx
dec esp
inc ebp
add byte [eax + 0x52], dl
dec edi
inc ebx
inc ebp
push ebx
push ebx
pop edi
dec ebp
dec edi
inc esp
inc ebp
pop edi
inc edx
inc ecx
inc ebx
dec ebx
inc edi
push edx
dec edi
push ebp
dec esi
inc esp
pop edi
inc edx
inc ebp
inc edi
dec ecx
dec esi
add byte [esi + 0x75], cl
insb byte es:[edi], dx
insb byte es:[edi], dx
popal
bound ebp, qword [ebp + 0x60]
xor dword [eax], eax
arpl word [edi + 0x6e], bp
je 0x407a01
imul ebp, dword [esi + 0x65], 0x444972
dec ebp
popal
imul ebp, dword [esi], 0x65666153
push edx
jne 0x407a21
add byte [edx + 0x75], dl
outsb dx, byte [esi]
add byte [ebx + 0x65], dl
je 0x407a0c
jb 0x407a2d
arpl word [ebp + 0x73], sp
jae 0x407a1a
outsd dx, dword [esi]
jb 0x407a31
imul ebp, dword [esi + 0x67], 0x53746553
imul edi, dword [edx + 0x65], 0x69615700
je 0x407a1c
outsd dx, dword [esi]
jb 0x407a29
popal
jb 0x407a41
outsb dx, byte [esi]
je 0x407a24
js 0x407a4a
je 0x407a37
push 0x64616572
add byte [ebx + 0x65], dl
outsb dx, byte gs:[esi]
push ebx
je 0x407a74
inc ebp
js 0x407a27
push ebx
je 0x407a7b
push edi
push ebx
je 0x407a8f