Function at 0x472970
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
pushal
add dword [eax], eax
add byte [edx], al
add byte [eax], al
add byte [ebp - 0x7ffffffa], dl
push cs
add byte [eax], al
test al, 0x11
add byte [eax], al
inc ecx
nop
xor eax, dword [eax]
add byte [eax], al
add byte [eax], al
dec esp
jg 0x472920
xor ah, ah
rcr dword [edx + 0x51], 1
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ebp, esp
adc ecx, dword [edi + 0x61]
and eax, 0xa80002
mov dl, 0
fiadd word [eax]
pop esi
add dword [eax], esi
add byte [eax], bh
add byte ss:[ecx], bh
add byte [eax], bh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], al
add byte [0xfc85a1d], ch
cld
lodsd eax, dword [esi]
push eax
mov fs, word [ecx - 0x14]
fiadd word es:[edx]
xor dword [ebx], esp
add byte [esi], ah
imul eax, dword [eax], 0x65006c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp], dh
outsb dx, byte [esi]
add byte [ebx], ah
add byte [eax], al
test al, 0x29
mov ebx, 0x78458576
jle 0x472a0b
push ecx
mov edi, 0x30618a60
sub al, 0xbf
or eax, dword [ebx - 0x39a1b485]
inc esp
inc esp
cmp al, 0x21
and byte [esp + esi*2], bh
fist dword [ecx]
xlatb
adc edi, edx
pop ecx
daa
sbb bl, dh
bound esi, qword [esi]
sub eax, 0x405b54
mov dl, 0x29
stc
jbe 0x4729a8
inc ebp
sub dword [esi + 7], edi
push ecx
fsub qword [eax - 0x25]
popal
sub al, 0xed
or esi, dword [ecx - 0x4da19385]
inc esp
dec edi
cmp al, 0x68
and byte [edi], dl
je 0x4729c1
adc ecx, esi
pop ecx
sbb ebx, dword [edx]
lds esp, [edx + 0xb]
sub eax, 0x235b5c
sar dword [0x1725d51e], cl
in eax, 0x1e
aad 0x25
pop ss
jo 0x4729c5
jnp 0x472a00
aaa
dec ax
dec eax
and al, 0x70
sal dword [esi], 0x1d
add byte [ecx - 0x7fa30efa], dl
pop ds
lea ecx, [eax + 0x28]
js 0x472a24
push ds
popfd
xor ebp, dword [ebx - 0x7fc5d9cf]
sbb al, 0x48
aaa
sbb byte [eax + ecx*2], 0x37
mov ah, 0x40
mov word [ebx], es
scasd eax, dword es:[edi]
sbb eax, dword [edx + 0x2f577168]
adc eax, dword [edi*2 + 0x1a6810b3]
in al, 0x40
ficom word [esi]
in eax, 0x48
xchg edi, eax
inc esp
cmp bl, byte [ebx]
adc eax, 0x1e86270f
mov word [edi], fs
mov bh, 0x1c
xchg esi, eax
xor dword [ebp + 0x66], ecx
add byte [eax], al
pop esp
add dword [eax], eax
add byte [edx], al
add byte [eax], al
add cl, dh
pop es
add byte [eax], al
or byte [esi], 0
add byte [eax - 0x12ffffef], ch
nop
xor eax, dword [eax]
add byte [eax], al
add byte [eax], al
js 0x472a3c
adc al, byte [eax]
in al, 0xd1
pop edx
push ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ebp, esp
adc ecx, dword [edi + 0x61]
and eax, 0xa80002
mov dl, 0
fiadd word [eax]
pop edx
add dword [eax], esi
add byte [eax], bh
add byte ss:[ecx], bh
add byte [eax], bh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], al
add byte [0xfc85a1d], ch
cld
lodsd eax, dword [esi]
push eax
mov fs, word [ecx - 0x14]
fiadd word es:[edx]
xor dword [ebx], esp
add byte [esi], ah
imul eax, dword [eax], 0x65006c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp], dh
outsb dx, byte [esi]
add byte [ebx], ah
add byte [eax], al
test al, 0x29
mov ebx, 0x78458576
jle 0x472b6b
push ecx
mov edi, 0x30618a60
sub al, 0xbf
or eax, dword [ebx - 0x39a1b485]
inc esp
inc esp
cmp al, 0x21
and byte [esp + esi*2], bh
fist dword [ecx]
xlatb
pop ecx
daa
sbb bl, dh
bound esi, qword [esi]
sub eax, 0x405b54
mov dl, 0x29
stc
jbe 0x472b08
inc ebp
sub dword [esi + 7], edi
push ecx
fsub qword [eax - 0x25]
popal
sub al, 0xed
or esi, dword [ecx - 0x4da19385]
inc esp
dec edi
cmp al, 0x68
and byte [ecx], dl
je 0x472b21
adc ebx, ebx
pop ecx
and byte [edx], bl
shl dword [edx + 0x3d], 0x2d
pop eax
pop ebx
xor al, 0
sar byte [edi + edx*4], 0x1e
ret
dec eax
or al, 0x70
jecxz 0x472ba6
je 0x472b72
pushfd
push es
ljmp 0x2348
arpl word [edi], sp
sbb dword [esi], 0xffffff8c
daa
in al, dx
sbb al, 0xd6
movsb byte es:[edi], byte [esi]
sub byte [ecx], al
add byte [eax], al
add al, byte [eax]
add byte [eax], al
fadd qword [ecx]
add byte [eax], al
or byte [esi], 0
add byte [eax + 0x16000011], ch
xchg edx, eax
xor eax, dword [eax]
add byte [eax], al
add byte [eax], al
add bl, dh
adc al, byte [eax]
in eax, 0xd1
pop edx
push ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ebp, esp
adc ecx, dword [edi + 0x61]
and eax, 0xa80002
mov dl, 0
mov byte [eax], 0x26
add dword [eax], esi
add byte [eax], bh
xor eax, dword [eax]
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
add byte [eax], al
add byte cs:[edx], dh
add byte [edi], dh
add byte [0xa000d00], ah
add byte [edx], dl
add byte gs:[eax], al
add byte [esi], ah
imul eax, dword [eax], 0x65006c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi], ah
jne 0x472c5c
outsb dx, byte [esi]
add byte [ebx], ah
add byte [eax], al
movsb byte es:[edi], byte [esi]
sub dword [ebp + 0x52458676], edi
jle 0x472cc1
push ecx
xchg dword [eax - 0x69], esp
popal
xor dword [eax + ebp*4], ebp
or ebp, esp
jnp 0x472c3c
push edx
push dword [esi - 0x40]
inc esp
jle 0x472cf6
push ecx
mov ecx, 0x85f02e60
jg 0x472c47
hlt
push ds
int 0x33
out dx, eax
xor dword [ecx + 0x3a], ecx
scasb al, byte es:[edi]
sbb al, 0x15
aaa
mov dl, 0x40
into
add ecx, eax
sbb esp, ebp
pop eax
add eax, 0x24000057
add dword [eax], eax
add byte [edx], al
add byte [eax], al
add ah, bl
add dword [eax], eax
add byte [eax - 0x57fffff2], al
adc dword [eax], eax
add cl, dh
xchg edx, eax
xor eax, dword [eax]
add byte [eax], al
add byte [eax], al
movsb byte es:[edi], byte [esi]
int1
adc al, byte [eax]
in eax, 0xd1
pop edx
push ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ebp, esp
adc ecx, dword [edi + 0x61]
and eax, 0xa80002
mov dl, 0
mov byte [eax], 0x22
add dword [eax], esi
add byte [eax], bh
xor eax, dword [eax]
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
xor byte [eax], al
add byte [eax], al
cmp dword [esp + ebp], edx
lodsd eax, dword [esi]
and byte [ecx + 0x76d299e2], ah
mov ecx, 0xaa51fee8
add byte [eax], al
add byte [esi], ah
imul eax, dword [eax], 0x65006c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi], ah
jne 0x472d84
outsb dx, byte [esi]
add byte [ebx], ah
add byte [eax], al
movsb byte es:[edi], byte [esi]
sub dword [ebp + 0x52458676], edi
jle 0x472de9
push ecx
xchg dword [eax - 0x69], esp
popal
xor dword [eax + ebp*4], ebp
or ebp, esp
jnp 0x472d64
push edx
cld
jbe 0x472d63
inc esp
jle 0x472e1e
push ecx
mov ecx, 0x85f02e60
jg 0x472d6f
hlt
push ds
sal byte [ebx], 1
xor dword [ecx + 0x3a], ebx
out 0x1c, al
pop ecx
aaa
loope 0x472e36
stc
xor edi, ebp
sbb eax, dword [eax]
add edi, dword [ecx + eax]
add byte [eax], al
add al, byte [eax]
add byte [eax], al
xor dword [eax + eax], eax
add byte [eax - 0x57fffff2], al
adc dword [eax], eax
add byte [eax], ah
xchg ebx, eax
xor eax, dword [eax]
add byte [eax], al
add byte [eax], al
add al, byte [eax]
add byte [eax], al
in eax, 0xd1
pop edx
push ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ebp, esp
adc ecx, dword [edi + 0x61]
and eax, 0xa80002
mov dl, 0
in al, 0
cmp al, 1
xor byte [eax], al
js 0x472e40
add byte ss:[ecx], bh
add byte [eax], bh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], al
add byte [esi + 0x1b2a22f3], dh
and eax, 0x5a73ff8f
add dword [eax], ecx
fsub st(4), st(0)
outsb dx, byte [esi]
jp 0x472e63
add byte [esi], ah
imul eax, dword [eax], 0x65006c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp], dh
outsb dx, byte [esi]
add byte [ebx], ah
add byte [eax], al
test al, 0x29
mov ebx, 0x78458576
jle 0x472f13
push ecx
mov edi, 0x30618a60
sub al, 0xbf
or eax, dword [ebx - 0x39a1b485]
inc esp
inc esp
cmp al, 0x21
and byte [esp + esi*2], bh
fist dword [ecx]
xlatb
pop ecx
daa
sbb bl, dh
bound esi, qword [esi]
sub eax, 0x95b54
retf
mov word [eax - 0x5e], fs
popal
sub al, 0xb3
or eax, dword [eax - 0xaa1a185]
pop esi
cmc
inc esp
imul edi, dword [eax], 0x20
jno 0x472f72
sahf
adc ebx, esp
pop ecx
inc esp
sbb bl, byte [esi + 0x642d6d62]
pop ebx
pushal
add cl, dl
cmp al, 0xd6
push ds
xlatb
and eax, 0x7be0703c
sal dword [edi], cl
jo 0x472ef5
jnp 0x472eea
aaa
outsb dx, byte [esi]
dec eax
pshufw mm6, mm2, 0x36
cmp al, byte [eax]
movsb byte es:[edi], byte [esi]
push es
mov ah, 0x5c
mov ds, word [edi]
fmul dword [eax + 0x28]
js 0x472f5c
push ds
xchg esi, eax
xor edx, dword [ecx + esi + 0x1cee3a4d]
jl 0x472f6d
rol dword [eax + 0x40], 1
add dword [eax], eax
add byte [edx], al
add byte [eax], al
add byte [ecx], dh
add al, 0
add byte [eax - 0x57fffff2], al
adc dword [eax], eax
add byte [eax], ah
xchg ebx, eax
xor eax, dword [eax]
add byte [eax], al
add byte [eax], al
add al, 0
add byte [eax], al
in eax, 0xd1
pop edx
push ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ebp, esp
adc ecx, dword [edi + 0x61]
and eax, 0xa80002
mov dl, 0
in al, 0
inc eax
add dword [eax], esi
add byte [eax], bh
add byte ss:[ecx], bh
add byte [eax], bh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], al
add cl, al
add dword [eax - 0xdd8ebe7], ebp
or ecx, esp
mov dh, 0xf8
add dl, byte [ebx + 0x1b]
dec ebp
add byte [eax], 0
add byte [ecx], ch
insb byte es:[edi], dx
add byte [ebp], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp], dh
outsb dx, byte [esi]
add byte [ebx], ah
add byte [eax], al
test al, 0x29
mov ebx, 0x78458576
jle 0x47304f
push ecx
mov edi, 0x30618a60
sub al, 0xbf
or eax, dword [ebx - 0x39a1b485]
inc esp
inc esp
cmp al, 0x21
and byte [esp + esi*2], bh
fist dword [ecx]
xlatb
pop ecx
daa
sbb bl, dh
bound esi, qword [esi]
sub eax, 0x95b54
retf
mov word [eax - 0x5e], fs
popal
sub al, 0xb3
or eax, dword [eax - 0xaa1a185]
inc esp
imul edi, dword [eax], 0x20
jno 0x4730ae
pushal
and byte [ecx + 0x74], dh
sahf
adc ebx, esp
pop ecx
inc edi
sbb bl, byte [esi + 0x642d6d62]
pop ebx
pushal
add cl, dl
cmp al, 0xd6
push ds
xlatb
and eax, 0x7be5703c
sal dword [edi], cl
jo 0x473036
jnp 0x473026
aaa
outsb dx, byte [esi]
dec eax
pshufw mm6, mm2, 0x36
cmp al, byte [eax]
movsb byte es:[edi], byte [esi]
push es
mov bh, 0x5c
mov ds, word [edi]
fmul dword [eax + 0x28]
js 0x473098
push ds
xchg esi, eax
xor edx, dword [ecx + esi + 0x1ce63a49]
adc dword [edi], esi
jecxz 0x4730b4
cmpsb byte [esi], byte es:[edi]
add edi, ebp
sbb edx, dword [eax + 1]
add byte [eax], al
add al, byte [eax]
add byte [eax], al
xor dword [eax + eax], eax
add byte [eax - 0x57fffff2], al
adc dword [eax], eax
add byte [eax], ah
xchg ebx, eax
xor eax, dword [eax]
add byte [eax], al
add byte [eax], al
invalid
in eax, 0xd1
pop edx
push ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor ebp, esp
adc ecx, dword [edi + 0x61]
and eax, 0xa80002
add al, byte [eax]
test al, 0
mov dl, 0
in al, 0
dec esi
add dword [eax], esi
add byte [eax], bh
add byte ss:[ecx], bh
add byte [eax], bh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], al
add byte [edi + 0x12], ch
popal
xchg dword [ebx], ebp
mov cl, 0x40
hlt