Function at 0x4145f0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x82ea48]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebp + 0xc]
call fcn.0041cf40
cmp eax, 0x14
jae 0x41463e
push 0x7b3c33
mov ecx, dword [ebp + 8]
call fcn.00404ef0
mov eax, dword [ebp - 0xbc]
or eax, 1
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
jmp 0x414b15
lea ecx, [ebp - 0x68]
call fcn.00413190
mov dword [ebp - 4], 0x14
mov ecx, dword [ebp + 0x10]
call fcn.0041cf40
add eax, 0x40
push eax
call fcn.004ced7c
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.004ced7c
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.0041cf40
cmp eax, 0x40
jbe 0x4147ea
lea ecx, [ebp - 0x68]
call fcn.004131b0
mov ecx, dword [ebp + 0xc]
call fcn.0041cf40
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00405170
push eax
lea ecx, [ebp - 0x68]
call fcn.00413390
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0x68]
call fcn.00413750
mov dword [ebp - 0x88], 0
jmp 0x4146eb
mov edx, dword [ebp - 0x88]
add edx, 1
mov dword [ebp - 0x88], edx
cmp dword [ebp - 0x88], 5
jge 0x414755
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 0x4146dc
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x80]
push edx
call fcn.004f40e0
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.004f40e0
add esp, 0xc
mov eax, dword [ebp - 4]
mov dword [ebp - 0x8c], eax
jmp 0x41479a
mov ecx, dword [ebp - 0x8c]
add ecx, 1
mov dword [ebp - 0x8c], ecx
cmp dword [ebp - 0x8c], 0x40
jge 0x4147b1
mov edx, dword [ebp - 0x80]
add edx, dword [ebp - 0x8c]
mov byte [edx], 0
jmp 0x41478b
mov eax, dword [ebp - 4]
mov dword [ebp - 0x90], eax
jmp 0x4147cb
mov ecx, dword [ebp - 0x90]
add ecx, 1
mov dword [ebp - 0x90], ecx
cmp dword [ebp - 0x90], 0x40
jge 0x4147e5
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x90]
mov byte [edx], 0
jmp 0x4147bc
jmp 0x414898
mov ecx, dword [ebp + 0xc]
call fcn.0041cf40
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00405170
push eax
mov eax, dword [ebp - 0x80]
push eax
call fcn.004f40e0
add esp, 0xc
mov ecx, dword [ebp + 0xc]
call fcn.0041cf40
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00405170
push eax
mov ecx, dword [ebp - 0x84]
push ecx
call fcn.004f40e0
add esp, 0xc
mov ecx, dword [ebp + 0xc]
call fcn.0041cf40
mov dword [ebp - 0x94], eax
jmp 0x414848
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
cmp dword [ebp - 0x94], 0x40
jae 0x41485f
mov eax, dword [ebp - 0x80]
add eax, dword [ebp - 0x94]
mov byte [eax], 0
jmp 0x414839
mov ecx, dword [ebp + 0xc]
call fcn.0041cf40
mov dword [ebp - 0x98], eax
jmp 0x41487e
mov ecx, dword [ebp - 0x98]
add ecx, 1
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0x40
jae 0x414898
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x98]
mov byte [edx], 0
jmp 0x41486f
mov dword [ebp - 0x9c], 0
jmp 0x4148b3
mov eax, dword [ebp - 0x9c]
add eax, 1
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0x40
jge 0x4148d8
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 0x4148a4
mov dword [ebp - 0xa0], 0
jmp 0x4148f3
mov ecx, dword [ebp - 0xa0]
add ecx, 1
mov dword [ebp - 0xa0], ecx
cmp dword [ebp - 0xa0], 0x40
jge 0x41491e
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 0x4148e4
mov ecx, dword [ebp + 0x10]
call fcn.0041cf40
push eax
mov ecx, dword [ebp + 0x10]
call fcn.00405170
push eax
mov edx, dword [ebp - 0x80]
add edx, 0x40
push edx
call fcn.004f40e0
add esp, 0xc
lea ecx, [ebp - 0x68]
call fcn.004131b0
mov ecx, dword [ebp + 0x10]
call fcn.0041cf40
add eax, 0x40
push eax
mov eax, dword [ebp - 0x80]
push eax
lea ecx, [ebp - 0x68]
call fcn.00413390
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0x68]
call fcn.00413750
mov dword [ebp - 0xa4], 0
jmp 0x414986
mov edx, dword [ebp - 0xa4]
add edx, 1
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xa4], 5
jge 0x4149f0
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 0x414977
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.004f40e0
add esp, 0xc
lea ecx, [ebp - 0x68]
call fcn.004131b0
mov eax, dword [ebp - 4]
add eax, 0x40
push eax
mov ecx, dword [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x68]
call fcn.00413390
lea edx, [ebp - 0x7c]
push edx
lea ecx, [ebp - 0x68]
call fcn.00413750
mov dword [ebp - 0xa8], 0
jmp 0x414a4f
mov eax, dword [ebp - 0xa8]
add eax, 1
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 5
jge 0x414abc
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 0x414a40
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xb4]
push edx
call fcn.004f37aa
add esp, 4
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
push ecx
call fcn.004f37aa
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.00414460
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.004f1890
mov esp, ebp
pop ebp
ret