Function at 0x5045e0
Capabilities:
Authenticate hmac

Disassembly:
add eax, 0x41232100
dec esp
inc esi
cmp bl, byte [ecx + 0x32]
push esi
cmp al, byte [esi + 0x6c]
outsd dx, dword [esi]
jb 0x50462a
popal
outsb dx, byte [esi]
pop edi
push edx
outsd dx, dword [esi]
je 0x504630
das
arpl word [ecx + 0x63], di
insb byte es:[edi], dx
outsd dx, dword [esi]
je 0x504642
outsd dx, dword [esi]
outsb dx, byte [esi]
add byte [ecx], al
add byte [esi], bh
add ebx, dword [eax + eax + 0x44]
add byte [ebp], ah
jbe 0x5045df
imul eax, dword [eax], 0x650063
pop esp
add byte [ecx], cl
inc esp
add byte [eax + eax + 0x50], dl
add byte [edx], dh
outsd dx, dword [esi]
add byte [eax + eax - 0x70], dh
sub al, 1
or dword [eax], esi
sub eax, 0x5a2d4139
popal
sub eax, 0x209907a
add byte [eax + 0x3009012c], dl
sub eax, 0x5a2d4139
popal
sub eax, 0x100907a
add byte [ebx + eax], dh
dec ecx
outsd dx, dword [esi]
inc esp
insb byte es:[edi], dx
je 0x504686
push ebx
jns 0x504691
bound ebp, qword [edi + 0x6c]
imul esp, dword [ebx + 0x4c], 0x906b6e69
sbb dword [ecx], eax
imul ebp, dword [esi + 0x6b], 0x9011990
popal
sub eax, 0x5a2d417a
xor byte [0x1099039], ch
or dword [ecx + 0x2d], esp
jp 0x504676
sub eax, 0x392d305a
nop
or dword [ecx], eax
add byte [eax + 0x61090119], dl
popal
sub eax, 0x5a2d417a
xor byte [0x1009039], ch
add byte [edx], bh
add ebx, dword [eax + eax + 0x3f]
add byte [edi], bh
add byte [eax + eax + 0x73], bl
add byte [eax + eax + 0x49], ch
add byte [eax + eax + 0x54], al
add byte [eax], dl
jb 0x504667
outsd dx, dword [esi]
add byte [eax + eax - 0x70], dh
sub al, 1
or dword [eax], esi
sub eax, 0x5a2d4139
popal
sub eax, 0x209907a
add byte [eax + 0x3009012c], dl
sub eax, 0x5a2d4139
popal
sub eax, 0x100907a
add byte [esi], ch
add ecx, dword [ecx + 0x6f]
inc esp
insb byte es:[edi], dx
je 0x5046fc
inc esp
jbe 0x504704
arpl word [ebp - 0x70], sp
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x5046e6
sub eax, 0x392d305a
nop
or dword [ecx], eax
add byte [eax + 0x61090119], dl
add dword [ecx], ecx
popal
sub eax, 0x5a2d417a
xor byte [0x1009039], ch
add byte [ebx + eax], dh
dec ecx
outsd dx, dword [esi]
inc ebx
jb 0x50472b
popal
je 0x50472e
push ebx
jns 0x504739
bound ebp, qword [edi + 0x6c]
imul esp, dword [ebx + 0x4c], 0x906b6e69
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x50471e
sub eax, 0x392d305a
nop
or dword [ecx], eax
add byte [eax + 0x61090119], dl
sub eax, 0x5a2d417a
xor byte [0x9039], ch
nop
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x50472f
sub eax, 0x392d305a
nop
add byte [eax], al
add byte [eax + 0x4b], bh
add dword [eax], eax
add eax, 0x5000500
add byte [ecx], ah
add byte [0x21000500], al
and ecx, dword [eax + 0x53]
push ebx
push esp
push edx
cmp dl, byte [edx + esi*2 + 0x6f]
push 0x61
outsb dx, byte [esi]
cmp cl, byte [ebp + 0x53]
push ebx
dec ecx
dec esp
das
inc ecx
outsb dx, byte gs:[si]
je 0x50476e
jae 0x504789
popal
push ebx
dec ebp
xor dword [eax + esi], esi
aaa
xor dh, byte [edx]
xor esp, dword [ecx]
dec ebp
push esp
inc edx
add byte [ecx], al
add byte [ecx - 0x7f], bl
add dword [edx + 0x75], ecx
jae 0x5047aa
pop ecx
add dword [ecx], 0x7473754a
imul ebp, dword [esi + 0x20], 0x626d6954
jb 0x5047ac
push esp
imul ebp, dword [ebp + 0x62], 0x616c7265
popal
imul esp, dword [ebp + 0x4c], 0x4a
jne 0x5047ba
je 0x5047b2
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
jb 0x5047be
popal
imul esp, dword [ebp + 0x6f], 0x4a
jne 0x5047cc
je 0x5047c4
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 0x61], 0x4a
jne 0x5047de
je 0x5047d6
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 0x64], 0x4a
jne 0x5047f0
je 0x5047e8
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 1], 0
jge 0x504710
add dword [edx + 0x75], ecx
jae 0x504808
imul ebp, dword [esi + 0x20], 0x626d6954
jb 0x50480a
popal
imul esp, dword [ebp + 0x49], 0x4a
jne 0x504818
je 0x504810
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
imul ebp, dword [ebp + 0x62], 0x616c7265
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 0x6e], 0x4a
outsb dx, byte gs:[esi]
dec edx
jne 0x50482a
je 0x504822
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 0x76], 0x4a
jbe 0x504811
jne 0x50483c
je 0x504834
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 0x6f], 0x4a
outsd dx, dword gs:[esi]
dec edx
jne 0x50484e
je 0x504846
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 0x6b], 0x4a
jne 0x504860
imul ecx, dword gs:[edx + 0x75], 0x73
je 0x504858
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp + 0x65], 0x4a
jne 0x504872
je 0x50486a
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
jb 0x504876
popal
imul esp, dword [ebp + 1], 0
pop es
add dword [ecx], 0x72636544
jns 0x504888
add dword [ebp + 0x63], eax
jb 0x504890
jo 0x50488d
je 0x50481b
add dword [eax], eax
add byte [eax], dl
add dword [ecx], 0x6d6f7246
adc byte [ecx + 0x6f724601], al
insd dword es:[edi], dx
inc edx
popal
jae 0x50488b
xor al, 0x53
je 0x50489d
jb 0x504895
imul ebp, dword [esi + 0x67], 0x81110001
add dword [edx + 0x75], ecx
jae 0x5048ab
outsb dx, byte [esi]
add dword [bx + si], eax
adc dword [ecx + 0x73754a01], eax
jne 0x5048a9
je 0x5048a1
imul ebp, dword [esi + 0x20], 0x626d6954
jb 0x5048ad
outsb dx, byte [esi]
and byte [ecx + ebp*2 + 0x6d], dl
insd dword es:[edi], dx
bound esp, qword [ebp + 0x72]
insb byte es:[edi], dx
popal
imul esp, dword [ebp], 0
js 0x504893
add dword [eax], eax
push es
add byte [esi], al
add byte [esi], al
push es
add byte [ecx], ah
and ecx, dword [eax + 0x53]
push esp
push edx
cmp cl, byte [ebp + 0x53]
push ebx
dec ecx
dec esp
das
inc ebx
jb 0x5048d8
jae 0x5048c2
popal
outsb dx, byte [esi]
push edx
inc ecx
dec esi
and dword [ebp + 0x54], ecx
inc edx
add byte [ecx], al
add byte [eax + 1], al
inc ebx
xor esi, dword [edx]
xor byte [esi + 0x43], al
inc esi
cmp byte [ebx + 0x46], al
inc esi
xor esi, dword [esi]
xor bh, byte [ecx]
xor al, byte [ebx + 0x38]
inc ebp
cmp byte [ecx], dh
inc edx
xor byte [ebx + 0x44], al
xor eax, dword [ecx + 0x38]
cmp byte [0x42453432], dh
xor dh, byte [eax*2 + 0x42324542]
inc edx
inc ebp
xor al, byte [edx + 0x36]
inc edx
xor esi, dword ss:[eax]
xor esi, dword [eax]
inc ebp
inc esp
inc ecx
inc ebp
xor dword [ecx], edi
xor al, 0x44
inc edx
xor byte [eax], bh
xor al, 0x44
cmp byte [esp + eax*2], dh
xor eax, 0x42454444
inc esi
cmp byte [ebx + eax*2], dh
xor al, 0x43
inc esp
xor dword [ecx], eax
add byte [eax + 1], al
xor eax, 0x34453134
cmp byte [edi], dh
xor al, 0x32
inc edx
xor byte [ebp + 0x34], al
xor eax, 0x44423445
xor al, 0x42
inc esp
xor dword [edi], esi
xor dword [esi], esi
inc esi
xor eax, 0x44453237
cmp dword [ecx + 0x31], eax
inc ecx
xor al, byte ss:[ecx + 0x30]
aaa
aaa
inc esi
xor eax, dword ss:[ecx + 0x44]
inc ebp
xor eax, dword [esi + eax*2 + 0x43]
inc ebx
inc ecx
aaa
xor bh, byte [ecx]
xor dword [esi], esi
inc edx
cmp byte [ecx + eax*2], dh
inc ebx
inc ebp
inc esp
inc esp
xor eax, dword [ecx]
add byte [esi], cl
add dword [edi + 0x63], ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x504962
outsb dx, byte [esi]
je 0x50494c
outsd dx, dword [esi]
popal
add dword fs:[eax], eax
inc edx
add byte [edi], ch
add byte [ebx], dl
je 0x50490f
jne 0x504911
bound eax, qword [eax]
xor dword [eax], eax
xor al, byte [eax]
cmp eax, dword [eax]
arpl word [eax], ax
outsd dx, dword [esi]
add byte [ebp], ch
jo 0x504921
outsd dx, dword [esi]
add byte [esi], ch
add byte gs:[esi], ch
je 0x50492b
das
add byte [ebp], ch
popal
add byte [ecx], ch
outsb dx, byte [esi]
add byte [edi], dh
imul eax, dword [eax], 0x64006e
outsd dx, dword [esi]
add byte [edi], dh
add byte cs:[eax], bh
popal
add byte [ebp], ch
insb byte es:[edi], dx
add byte [ecx], al
add byte [ecx + eax], cl
insd dword es:[edi], dx
pop edi
dec ebp
popal
imul ebp, dword [esi + 0x57], 0x6f646e69
ja 0x50495d
add byte [ecx + eax], dh
xor al, 1
inc esp
imul esi, dword [ebx + 0x70], 0x5f65736f
jo 0x5049d3
jae 0x5049cb
pop edi
pop edi
dec ecx
outsb dx, byte [esi]
jae fcn.005049e0
popal
outsb dx, byte [esi]
arpl word [ebp + 0x5f], sp
pop edi
and byte [ebp + 0x79], cl
dec ebp
jns 0x5049d0
jo 0x5049e1
inc ebp
js 0x5049f2
outsb dx, byte gs:[esi]
jae 0x5049f6
imul ebp, dword [edi + 0x6e], 0x75646f4d
insb byte es:[edi], dx
push edi
imul ebp, dword [esi + 0x64], 0x73776f
add byte [eax + 0x4b], bh
add dword [eax], eax
or byte [eax], al
or byte [eax], al
or dword [eax], eax
and dword [ebx], esp
inc ecx
dec esp
inc esi
cmp cl, byte [eax + 0x61]
arpl word [ebx + 0x74], bp
outsd dx, dword [esi]
outsd dx, dword [esi]
insb byte es:[edi], dx
cmp dl, byte [edi + 0x69]
outsb dx, byte [esi]
xor esi, dword [edx]
das
push eax
popal
jae 0x504a2b
jbe 0x504a23
ja 0x5049bd
add dword [eax], eax
or eax, dword [eax + 0x504f5001]
xor ebx, dword [edi + 0x53]
jb 0x504a41
jb 0x5049cf
add byte [ebx], cl
or eax, dword [eax + 0x414d4901]
add byte [ecx], 0x49
dec ebp
inc ecx
push eax
pop edi
push ebx
jb 0x504a51
jb 0x5049df
add byte [ebx], cl
or eax, dword [eax + 0x414d5301]
add dword [ebx + 0x4d], edx
dec esi
js 0x504a67
pop esp
outsb dx, byte [esi]
and byte [ecx + 0x74], al
popal