Function at 0x414a50
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x82fa48]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebp + 0xc]
call fcn.00430f40
cmp eax, 0x14
jae 0x414a9e
push 0x7b4cb3
mov ecx, dword [ebp + 8]
call fcn.00404eb0
mov eax, dword [ebp - 0xbc]
or eax, 1
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
jmp 0x414f75
lea ecx, [ebp - 0x68]
call fcn.004135f0
mov dword [ebp - 4], 0x14
mov ecx, dword [ebp + 0x10]
call fcn.00430f40
add eax, 0x40
push eax
call fcn.004cf32c
add esp, 4
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x80], ecx
mov edx, dword [ebp - 4]
add edx, 0x40
push edx
call fcn.004cf32c
add esp, 4
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp + 0xc]
call fcn.00430f40
cmp eax, 0x40
jbe 0x414c4a
lea ecx, [ebp - 0x68]
call fcn.00413610
mov ecx, dword [ebp + 0xc]
call fcn.00430f40
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00405130
push eax
lea ecx, [ebp - 0x68]
call fcn.004137f0
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0x68]
call fcn.00413bb0
mov dword [ebp - 0x88], 0
jmp 0x414b4b
mov edx, dword [ebp - 0x88]
add edx, 1
mov dword [ebp - 0x88], edx
cmp dword [ebp - 0x88], 5
jge 0x414bb5
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp + eax*4 - 0x7c]
shr ecx, 0x18
and ecx, 0xff
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp + edx*4 - 0x7c]
shr eax, 0x10
and eax, 0xff
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp + edx*4 - 0x7c]
shr eax, 8
and eax, 0xff
shl eax, 0x10
or ecx, eax
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp + edx*4 - 0x7c]
and eax, 0xff
shl eax, 0x18
or ecx, eax
mov edx, dword [ebp - 0x88]
mov dword [ebp + edx*4 - 0x7c], ecx
jmp 0x414b3c
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x80]
push edx
call fcn.004f4690
add esp, 0xc
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x84]
push edx
call fcn.004f4690
add esp, 0xc
mov eax, dword [ebp - 4]
mov dword [ebp - 0x8c], eax
jmp 0x414bfa
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
cmp dword [ebp - 0x8c], 0x40
jge 0x414c11
mov edx, dword [ebp - 0x80]
add edx, dword [ebp - 0x8c]
mov byte [edx], 0
jmp 0x414beb
mov eax, dword [ebp - 4]
mov dword [ebp - 0x90], eax
jmp 0x414c2b
mov ecx, dword [ebp - 0x90]
add ecx, 1
mov dword [ebp - 0x90], ecx
cmp dword [ebp - 0x90], 0x40
jge 0x414c45
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x90]
mov byte [edx], 0
jmp 0x414c1c
jmp 0x414cf8
mov ecx, dword [ebp + 0xc]
call fcn.00430f40
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00405130
push eax
mov eax, dword [ebp - 0x80]
push eax
call fcn.004f4690
add esp, 0xc
mov ecx, dword [ebp + 0xc]
call fcn.00430f40
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00405130
push eax
mov ecx, dword [ebp - 0x84]
push ecx
call fcn.004f4690
add esp, 0xc
mov ecx, dword [ebp + 0xc]
call fcn.00430f40
mov dword [ebp - 0x94], eax
jmp 0x414ca8
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
cmp dword [ebp - 0x94], 0x40
jae 0x414cbf
mov eax, dword [ebp - 0x80]
add eax, dword [ebp - 0x94]
mov byte [eax], 0
jmp 0x414c99
mov ecx, dword [ebp + 0xc]
call fcn.00430f40
mov dword [ebp - 0x98], eax
jmp 0x414cde
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0x40
jae 0x414cf8
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x98]
mov byte [edx], 0
jmp 0x414ccf
mov dword [ebp - 0x9c], 0
jmp 0x414d13
mov eax, dword [ebp - 0x9c]
add eax, 1
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0x40
jge 0x414d38
mov ecx, dword [ebp - 0x80]
add ecx, dword [ebp - 0x9c]
movsx edx, byte [ecx]
xor edx, 0x36
mov eax, dword [ebp - 0x80]
add eax, dword [ebp - 0x9c]
mov byte [eax], dl
jmp 0x414d04
mov dword [ebp - 0xa0], 0
jmp 0x414d53
mov ecx, dword [ebp - 0xa0]
add ecx, 1
mov dword [ebp - 0xa0], ecx
cmp dword [ebp - 0xa0], 0x40
jge 0x414d7e
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0xa0]
movsx eax, byte [edx]
xor eax, 0x5c
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0xa0]
mov byte [ecx], al
jmp 0x414d44
mov ecx, dword [ebp + 0x10]
call fcn.00430f40
push eax
mov ecx, dword [ebp + 0x10]
call fcn.00405130
push eax
mov edx, dword [ebp - 0x80]
add edx, 0x40
push edx
call fcn.004f4690
add esp, 0xc
lea ecx, [ebp - 0x68]
call fcn.00413610
mov ecx, dword [ebp + 0x10]
call fcn.00430f40
add eax, 0x40
push eax
mov eax, dword [ebp - 0x80]
push eax
lea ecx, [ebp - 0x68]
call fcn.004137f0
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0x68]
call fcn.00413bb0
mov dword [ebp - 0xa4], 0
jmp 0x414de6
mov edx, dword [ebp - 0xa4]
add edx, 1
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xa4], 5
jge 0x414e50
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp + eax*4 - 0x7c]
shr ecx, 0x18
and ecx, 0xff
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp + edx*4 - 0x7c]
shr eax, 0x10
and eax, 0xff
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp + edx*4 - 0x7c]
shr eax, 8
and eax, 0xff
shl eax, 0x10
or ecx, eax
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp + edx*4 - 0x7c]
and eax, 0xff
shl eax, 0x18
or ecx, eax
mov edx, dword [ebp - 0xa4]
mov dword [ebp + edx*4 - 0x7c], ecx
jmp 0x414dd7
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x84]
add edx, 0x40
push edx
call fcn.004f4690
add esp, 0xc
lea ecx, [ebp - 0x68]
call fcn.00413610
mov eax, dword [ebp - 4]
add eax, 0x40
push eax
mov ecx, dword [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x68]
call fcn.004137f0
lea edx, [ebp - 0x7c]
push edx
lea ecx, [ebp - 0x68]
call fcn.00413bb0
mov dword [ebp - 0xa8], 0
jmp 0x414eaf
mov eax, dword [ebp - 0xa8]
add eax, 1
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 5
jge 0x414f1c
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp + ecx*4 - 0x7c]
shr edx, 0x18
and edx, 0xff
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp + eax*4 - 0x7c]
shr ecx, 0x10
and ecx, 0xff
shl ecx, 8
or edx, ecx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp + eax*4 - 0x7c]
shr ecx, 8
and ecx, 0xff
shl ecx, 0x10
or edx, ecx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp + eax*4 - 0x7c]
and ecx, 0xff
shl ecx, 0x18
or edx, ecx
mov eax, dword [ebp - 0xa8]
mov dword [ebp + eax*4 - 0x7c], edx
jmp 0x414ea0
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xb4]
push edx
call fcn.004f3d5a
add esp, 4
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
push ecx
call fcn.004f3d5a
add esp, 4
mov edx, dword [ebp - 4]
push edx
lea eax, [ebp - 0x7c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004148c0
add esp, 0xc
mov edx, dword [ebp - 0xbc]
or edx, 1
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004f1e40
mov esp, ebp
pop ebp
ret