Function at 0x4c69d0
Capabilities:
Authenticate hmac

Disassembly:
mov ecx, dword [0x93d128]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c6d8e
sub esp, 0x38
mov dword [esp + 0x22], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov eax, 4
mov ecx, 0x51
xor edx, edx
mov ebx, 0xa
lea ebp, [esp + 0x22]
xor esi, esi
jmp 0x4c6a21
inc edx
mov eax, edi
mov esi, ecx
mov ecx, dword [esp + 0x30]
cmp eax, 5
je 0x4c6d3c
mov dword [esp + 0x34], edx
mov edi, eax
imul eax, edx
xor eax, ecx
mov dword [esp + 0x30], eax
cmp edi, 4
jg 0x4c6bdb
cmp edi, 1
jg 0x4c6aed
test edi, edi
jne 0x4c6a98
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6a8c
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x57
mov edi, 7
jmp 0x4c6a18
cmp edi, 1
jne 0x4c6d35
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6ade
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x5f
mov edi, 6
jmp 0x4c6a18
cmp edi, 2
jne 0x4c6b3e
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6b2f
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x53
mov edi, 1
jmp 0x4c6a18
cmp edi, 3
jne 0x4c6b8f
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6b80
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x49
mov edi, 8
jmp 0x4c6a18
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6bcc
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x36
mov edi, 9
jmp 0x4c6a18
cmp edi, 7
jg 0x4c6c8a
cmp edi, 6
jne 0x4c6c35
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6c26
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x51
mov edi, 3
jmp 0x4c6a18
cmp edi, 7
jne 0x4c6d35
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6c7b
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x55
mov edi, 0xa
jmp 0x4c6a18
cmp edi, 8
jne 0x4c6c96
xor ecx, ecx
jmp 0x4c6d7e
cmp edi, 9
jne 0x4c6ce4
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6cd8
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x5c
xor edi, edi
jmp 0x4c6a18
cmp edi, 0xa
jne 0x4c6d35
lea ecx, [esi + 1]
cmp ebx, ecx
jae 0x4c6d26
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x74afe0]
mov dword [esp + 0x10], eax
call fcn.004488c0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx + ebp - 1], 0x5b
mov edi, 2
jmp 0x4c6a18
mov ecx, esi
jmp 0x4c6a18
mov dword [esp], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.0044b7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
add esp, 0x38
ret
mov dword [esp + 0x2c], ecx
movzx edi, byte [ebp + ecx]
xor ecx, eax
add edi, ecx
mov ecx, edi
mov edi, dword [esp + 0x2c]
mov byte [ebp + edi], cl
lea ecx, [edi + 1]
cmp esi, ecx
jg 0x4c6d64
mov edi, 5
mov ecx, esi
jmp 0x4c6a18
call fcn.0045dcb0
jmp fcn.004c69d0