Function at 0x413ef0
Capabilities:
Authenticate hmac

Disassembly:
cmp al, 0x3a
je 0x413f43
movzx eax, al
inc edi
sub eax, 0x2d
call 0x24bdc822
adc byte [ebx - 0x78f0b408], al
sbb dword [eax + eax], ecx
invalid
call 0x24bdc822
adc byte [ebx - 0x78f0b408], al
sbb dword [eax + eax], ecx
add byte [edi], cl
mov dh, 0x80
pushal
out dx, al
inc esi
add bh, bh
and al, 0x85
cmp al, 0xee
inc esi
add byte [ebp - 0x14dfdbb4], cl
sub al, byte [ecx + 0x8000009]
add byte [ecx], cl
push esi
dec eax
jmp 0x413f3d
movzx eax, byte [eax + 0x46ee60]
jmp dword [eax*4 + 0x46ee3c]
mov al, byte [edi]
cmp al, 0x29
jne 0x413ee7
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
or edx, esi
not ebp
and edx, ebp
cmp byte [edi], 0x29
mov eax, edx
mov dword [esp + 0x60], eax
jne 0x414027
mov edx, dword [esp + 0xfc]
mov ecx, dword [edx + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x413fb4
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x413f85
cmp dword [ecx], 6
jne 0x413fb4
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x44], eax
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [edx], eax
inc edi
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x411d0a
mov edx, eax
xor edx, esi
test dl, 7
je 0x413fd3
mov cl, al
mov byte [ebx], 0x19
and cl, 7
mov byte [ebx + 1], cl
mov edi, dword [esp + 0x10]
add ebx, 2
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xb8]
mov ecx, eax
shr ecx, 9
and ecx, 1
mov dword [esp + 0xac], ecx
xor ecx, 1
mov dword [esp + 0xb4], ecx
mov ecx, eax
and ecx, 1
shl ecx, 8
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
inc edi
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x411d0a
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x18], 0x5e
inc edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, 0x5d
setl cl
mov byte [ebx], al
mov ebp, dword [esi + 0x4c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x64], 0
dec ecx
and ecx, ebx
mov dword [esp + 0x24], ecx
cmp eax, 0x5a
je 0x41406d
cmp eax, 0x5b
je 0x41406d
xor eax, eax
jmp 0x414072
mov eax, 1
mov edi, dword [esp + 0x100]
mov edx, edi
neg edx
sbb edx, edx
lea ecx, [esp + 0x64]
and edx, ecx
push edx
mov edx, dword [esp + 0xfc]
push esi
push edx
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
push eax
mov eax, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0x64]
push edx
and eax, 7
push eax
push ecx
call fcn.00414eb0
add esp, 0x34
test eax, eax
je 0x4134b6
mov edx, dword [esp + 0x18]
cmp edx, 0x60
jne 0x414119
test edi, edi
jne 0x414119
mov eax, ebx
xor ecx, ecx
lea ecx, [ecx]
movzx esi, byte [eax + 1]
movzx edi, byte [eax + 2]
shl esi, 8
or esi, edi
add eax, esi
inc ecx
cmp byte [eax], 0x55
jne 0x4140f0
cmp byte [ebx + 3], 0x68
jne 0x414176
cmp ecx, 1
jg 0x414b3c
mov edx, 0x68
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x10]
cmp byte [edi], 0x29
jne 0x414b60
mov esi, dword [esp + 0x100]
test esi, esi
je 0x414199
mov eax, dword [esi]
mov ecx, dword [esp + 0x64]
mov edx, 0x7fffffeb
sub edx, eax
lea ebp, [ecx - 6]
cmp edx, ebp
jl 0x414912
lea eax, [eax + ecx - 6]
mov dword [esi], eax
mov word [ebx], 0x5e
mov word [ebx + 2], 0x5503
mov word [ebx + 4], 0x300
add ebx, 6
jmp 0x4120ce
cmp ecx, 2
jg 0x414b4e
cmp ecx, 1
jne 0x414119
or ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], eax
jmp 0x414127
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
cmp edx, 0x68
je 0x414241
mov esi, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x54], esi
mov dword [esp + 0xa0], 0
cmp edx, 0x5d
jl 0x414234
cmp esi, 0xfffffffe
jne 0x4141fe
test eax, eax
js 0x4141ec
mov dword [esp + 0x30], eax
mov dword [esp + 0xa0], 1
mov dword [esp + 0x54], 0xffffffff
jmp 0x414211
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
jmp 0x414211
test eax, eax
js 0x414211
test ecx, ecx
jns 0x414215
or eax, ebp
mov ecx, eax
mov dword [esp + 0x94], ecx
invalid
test ecx, ecx
js 0x414241
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x411d0a
cmp edx, 0x58
jne 0x414241
test ecx, ecx
js 0x414241
mov dword [esp + 0x48], ecx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x411d0a
mov edx, dword [esp + 0xec]
mov dword [edx], 0x14
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
dec edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xc
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x36
jmp 0x4134b6
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1b
jmp 0x4134b6
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xe
xor eax, eax
pop ebx
add esp, 0xcc
ret