Function at 0x43fdf4
Capabilities:
Authenticate hmac

Disassembly:
mov eax, dword [ebp + ecx*4 - 0x344]
sal dl, 0x66
or edx, ecx
jb 0x49b66e
lea ebp, [edx + ebp - 0x6f5000ca]
xor eax, ebx
and dx, cx
ror eax, 2
call fcn.0043fd2a
xor ebx, eax
add esi, eax
xor cx, 0x6e22
movzx ax, byte [edi + ecx*2 - 0x123ba]
mov cl, byte [edi + ecx*4 - 0x24772]
sbb dx, dx
adc edi, 2
add dl, dl
sar dx, 0x6d
not dl
adc al, cl
or edx, edx
movsx ecx, dx
mov word [edi + ecx - 0xff], ax
jmp esi
mov ecx, 0x8d122a19
movzx eax, byte [ebp]
lea edx, [ecx*8 - 0x394ec468]
xor al, bl
ror al, 1
add ecx, ecx
not ecx
dec al
mov dword [esp + edx - 0x2f428c5c], ecx
rol al, 1
and dword [esp + edx - 0x2f428c5c], 0xa4308380
mov dword [esp + edx - 0x2f428c60], 0xa7baa02e
shr cx, cl
neg al
xor al, 0x27
jmp 0x4943a3
push eax
add edi, 4
movzx edx, byte [ebp]
lea eax, [eax + eax*4 + 0x10230980]
and al, 0x3f
lea ebp, [ebp + eax*2 - 0x477acc29]
jl 0x4986d0
xor dl, bl
jmp 0x443d2e
call fcn.00463ec2
andps xmm2, xmm5
push edi
mov edi, 0x351e0780
pushfd
shr di, 0x57
and di, 0xacaa
xor di, 0xab3b
jns 0x443d3d
mov edi, dword [esp + edi*2 - 0x6a3d5672]
mov dword [esp + 4], 0xad66fc56
push dword [esp]
popfd
lea esp, [esp + 4]
call fcn.00463d5e
mov eax, ecx
ror ecx, cl
lea ebp, [ebp + ecx - 0xf103f3f]
add byte [esp + ecx*4 - 0x3c40fd0a], cl
xor edx, ebx
neg eax
bswap edx
sbb ecx, 0x709d639
dec edx
xor edx, 0x20b5ab2e
call fcn.0045a22c
mov dword [edi + edx - 0x6f500000], ecx
shr dx, 0x4a
movzx ecx, al
je 0x40339e
mov ecx, dword [esp + ecx - 0x3004d074]
mov dword [esp + 0x10], 0xad66e4fd
push dword [esp + 0xc]
popfd
lea esp, [esp + 0x10]
call fcn.00463d5e
shr cx, 0xcd
or word [esp + edx*4 + 5], dx
adc esi, eax
push ecx
or word [esp + edx*8 + 2], 0xf910
rol word [esp + edx + 9], cl
mov eax, dword [edx + edi]
ror ecx, cl
ror word [esp + edx*2 + 1], 0x63
xadd dword [esp + edx + 2], ecx
mov cx, word [edi + edx*2 + 4]
sar dl, 0x61
lea edx, [edx*8 - 0x387e01f4]
adc edi, 6
mov word [eax], cx
shr dword [esp + 3], 0x95
pop eax
pop edx
pop edx
jmp esi
neg al
sal ecx, 0x78
xor bl, al
xor dx, dx
xadd dx, cx
lea eax, [esp + eax + 8]
xor cx, word [eax + ecx - 0x5000000]
call fcn.004633a1
rcr byte [ebp - 0xd66cd24], 0x8e
test eax, 0xf299269f
mov fs, word [ebx - 0xd66bd67]
mov cs, ebp
rol dword [esi], cl
cdq
mov cs, word [edi + 0x3199ba81]
or eax, 0xbc0a0135
pop edx
mov esp, 0xd74cdec7
imul esi, ebx, 0xa43363a
pop esp
fild qword [edx + ebx + 0x28]
je 0x494434
mov cs, ecx
insb byte es:[edi], dx
or byte [edx + edi], bl
mov cs, ecx
xor al, byte [esi]
or al, 0x3a
mov cs, ecx
sub byte [esp + eax], ah
cmp cl, byte [esi + 0x605a00c9]
cmp cl, byte [esi - 0x2e89a537]
test eax, 0x76cfc98d
stc
jbe 0x494455
pmuldq xmm1, xmm3
push edx
mov edx, 0x73a7c81e
call fcn.00451f6c
xor ecx, 0xcab17d82
neg eax
bswap ecx
shl edx, 0xa6
or ax, dx
not ecx
bswap edx
shl eax, 0xb4
lea ecx, [ecx + eax - 0x6fe75f89]
sal edx, 0xa1
xchg edx, eax
xor ebx, ecx
jmp 0x48410a
not eax
dec dl
mov dword [esp + edx - 0x2d1a96b4], edx
lea ecx, [edx + edx - 0x1af21e58]
mov dword [edi + edx*2 - 0x5a352d68], eax
shr word [esp + edx - 0x2d1a96b3], 0x25
mov edx, dword [ebp + edx - 0x2d1a96b4]
jns 0x444e47
std
pop ecx
in eax, 0xdc
subps xmm6, xmm2
mov cs, word [edx - 0xda3f480]
mov ds, word [edx - 0xda39874]
mov gs, esi
loopne 0x498771
pop esp
mov gs, esi
mov byte [0x64315c9b], al
cmp al, byte [eax]
sbb byte [ebx + 0x31], 0x1b
sbb al, 0x92
mov eax, 0x1e2ed703
inc edx
inc edi
jnp 0x498766
js 0x4987a2
jp 0x49877b
jnp 0x49876c
dec esp
jo 0x498753
inc edi
jnp 0x498772
cmp byte [edx], cl
jnp 0x4987b4
jnp 0x498778
cmp ebp, edi
int 0xff
je 0x49877e
add byte [ebp + 0x1024648d], bl
mov ah, 0x54
add al, byte [eax + ecx*2]
jecxz 0x498730
ret
mov eax, dword [edi]
mov ecx, 0x103a4f84
dec edi
cmp dl, byte [eax]
mov edx, dword [ecx + edi - 0x103a4f80]
mov al, 0xc5
out dx, eax
jmp fcn.00498208
invalid
adc ecx, eax
enter 0xffffffffffff8bac, 0xffffffffffffffc8
mov dword [edi], edx
pop edx
pop eax
pop edx
pop ecx
jmp esi
invalid
add esi, eax
call fcn.00454ea0
mov eax, 0xd0b87911
mov ecx, dword [edi]
jmp 0x4435d1