Function at 0x405548
Capabilities:
Authenticate hmac

Disassembly:
cmp ecx, 0
je 0x405656
push eax
push ebx
push esi
push edi
mov ebx, eax
mov esi, edx
mov edi, ecx
xor edx, edx
mov al, byte [esi]
mov dl, byte [esi + 1]
cmp al, 0xa
je 0x405593
cmp al, 0x12
je 0x4055cd
cmp al, 0xb
je 0x4055b0
cmp al, 0xc
je 0x4055e4
cmp al, 0xd
je 0x4055f3
cmp al, 0xe
je 0x405611
cmp al, 0xf
je 0x405627
cmp al, 0x11
je 0x405636
jmp 0x405647
cmp ecx, 1
mov eax, ebx
jg 0x4055a4
call fcn.004046c4
jmp 0x405652
mov edx, ecx
call fcn.004046e8
jmp 0x405652
cmp ecx, 1
mov eax, ebx
jg 0x4055c1
call fcn.00404a8c
jmp 0x405652
mov edx, ecx
call fcn.00404aa4
jmp 0x405652
cmp ecx, 1
mov eax, ebx
jg 0x4055db
call fcn.00404c88
jmp 0x405652
mov edx, ecx
call fcn.00404c90
jmp 0x405652
mov eax, ebx
add ebx, 0x10
call fcn.00405530
dec edi
jg 0x4055e4
jmp 0x405652
push ebp
mov ebp, edx
mov edx, dword [esi + ebp + 0xa]
mov eax, ebx
add ebx, dword [esi + ebp + 2]
mov ecx, dword [esi + ebp + 6]
mov edx, dword [edx]
call fcn.00405548
dec edi
jg 0x4055f6
pop ebp
jmp 0x405652
push ebp
mov ebp, edx
mov eax, ebx
add ebx, dword [esi + ebp + 2]
mov edi, eax
shr bh, 0xff
mov dl, 0x79
add eax, 0x11
push eax
mov eax, 0x6bffba
cmp eax, 0xffffffbd
jne 0x40563b
add eax, 0x56
rcl byte [esi], 0
add byte [0xb2], al
add eax, 0xb2
cmp eax, 0x74
jne 0x40564e
add byte [eax], al
add eax, 0xbc
push eax
cmp eax, 0xffffff9c
pushfd
jne 0x40565e
add byte [eax], al
add byte [0x56], al
add eax, 0x56
mov eax, 0x640092
cmp eax, 0xffffffa3
jne 0x405672
add eax, 0x90
add eax, 0xffffff9c
push eax
cmp eax, 0xffffffd5
jne 0x405688
add eax, 0xe7
mov esi, 0x32000f
add esi, 0x24
push esi
cmp esi, 0x1c
jne 0x4056a3
add esi, 0x44
mov ecx, 0x6c0009
cmp ecx, 0x10
jne 0x4056b7
add ecx, 0x68
add ecx, 0x5c
push ecx
mov ecx, 0x6e014c
cmp ecx, 0xffffff9e
jne 0x4056d3
add ecx, 0x1d
sub ecx, 0xda
cmp ecx, 0xffffffd4
jne 0x4056e8
add ecx, 0x80
push ecx
mov esi, 0x64ffa3
add esi, 0xc8
push esi
cmp esi, 0xa
jne 0x405705
add esi, 5
mov ecx, esp
mov edx, ecx
mov ecx, 0x26
cmp ecx, 0xffffff98
jne 0x40571e
add ecx, 0x67
add ecx, 0xffffffda
push ecx
mov esi, 0xffffff8a
cmp esi, 0x23
jne 0x40573a
add esi, 0xac
add esi, 0x76
push esi
mov edi, edx
push edi
mov edx, 0x160
mov ebx, 0x419210
xor edx, ebx
call dword [edx]
add esp, 0x1c
mov esi, eax
sub esp, 4
mov dword [esp], esi
mov ecx, 0xdd42a15c
add ecx, 0xa4
push ecx
mov ebx, 0x636f6caf
add ebx, 0xffffffbd
cmp ebx, 0xffffffc9
jne 0x40578a
add ebx, 0xbb
push ebx
cmp ebx, 0x1c
jne 0x40579b
add ebx, 0x36
mov ecx, 0x416c60a5
add ecx, 0xd0
push ecx
mov edx, 0x747268f6
cmp edx, 0xffffffbc
jne 0x4057bd
add edx, 0xe0
add edx, 0x60
push edx
cmp edx, 5
jne 0x4057d4
add edx, 0x71
mov ebx, esp
add esp, 0xfffffffc
mov dword [esp], ebx
mov ebx, eax
push ebx
mov ebx, 0x4e95bff2
shr ebx, 5
mov edi, 0x2353983
xor edi, ebx
mov ebx, edi
dec ebx
mov ecx, dword [ebx + 1]
call ecx
add esp, 0x10
mov esi, 0xffffffae
cmp esi, 0xffffffc4
jne 0x405811
add esi, 0x48
add esi, 0x92
push esi
mov edi, 0x2fc6
add edi, 0x3a
push edi
mov ebx, 0x10ff25
cmp ebx, 0xffffffbb
jne 0x40583a
add ebx, 0x8c
add ebx, 0xdb
cmp ebx, 0xffffffc3
jne 0x40584f
add ebx, 0x2a
push ebx
mov ebx, 0xa7
add ebx, 0xffffff59
cmp ebx, 0xffffffe1
jne 0x40586b
add ebx, 0xb5
push ebx
call eax
sub esp, 4
mov ebx, esp
mov dword [ebx], eax
sub esp, 4
mov edx, esp
mov dword [edx], eax
push 0x1df1bddf
mov edx, 0x76c430d2
shr edx, 2
pop edi
xor edx, edi
call edx
mov ebx, dword [esp]
sub esp, 0xfffffffc
mov edi, 0x80e5
cmp edi, 0xffffffa2
jne 0x4058aa
add edi, 0xa0
add edi, 0xffffff1b
push edi
cmp edi, 0xffffffe4
jne 0x4058c1
add edi, 0x30
mov ecx, 0xf4
sub ecx, 0xf4
cmp ecx, 0xffffff80
invalid
test dword [esi], eax
invalid