Function at 0x4d7d20
Capabilities:
Authenticate hmac

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4d8497
sub esp, 0x60
mov dword [esp + 0x32], 0
lea edi, [esp + 0x34]
xor eax, eax
call fcn.00452225
mov eax, 6
mov ecx, 0xdb
xor edx, edx
mov ebx, 0x2e
lea ebp, [esp + 0x32]
xor esi, esi
jmp 0x4d7d6e
inc edx
mov eax, ecx
mov ecx, dword [esp + 0x24]
mov esi, edi
cmp eax, 4
je 0x4d8437
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edx
mov edi, eax
imul eax, edx
xor eax, ecx
mov dword [esp + 0x24], eax
cmp edi, 0xa
jg 0x4d8101
cmp edi, 5
jg 0x4d7f55
cmp edi, 1
jg 0x4d7e4d
test edi, edi
jne 0x4d7dfb
lea edi, [esi + 2]
cmp ebx, edi
jae 0x4d7dea
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x555c
mov ecx, 0x10
jmp 0x4d7d65
cmp edi, 1
jne 0x4d842e
inc esi
cmp ebx, esi
jae 0x4d7e3f
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov byte [esi + ebp - 1], 0x5a
xor ecx, ecx
mov edi, esi
jmp 0x4d7d65
cmp edi, 2
jne 0x4d7ea9
lea edi, [esi + 3]
cmp ebx, edi
jae 0x4d7e93
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 3
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x7f7b
mov byte [ebp + esi + 2], 0x64
mov ecx, 7
jmp 0x4d7d65
cmp edi, 3
jne 0x4d7f00
lea edi, [esi + 2]
cmp ebx, edi
jae 0x4d7eef
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x6b23
mov ecx, 5
jmp 0x4d7d65
cmp edi, 5
jne 0x4d842e
inc esi
cmp ebx, esi
jae 0x4d7f44
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov byte [esi + ebp - 1], 0x6f
mov ecx, 0x11
mov edi, esi
jmp 0x4d7d65
cmp edi, 7
jg 0x4d8006
cmp edi, 6
jne 0x4d7faf
inc esi
cmp ebx, esi
jae 0x4d7f9e
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov byte [esi + ebp - 1], 0x69
mov ecx, 0xa
mov edi, esi
jmp 0x4d7d65
lea edi, [esi + 3]
cmp ebx, edi
jae 0x4d7ff0
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 3
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x6472
mov byte [ebp + esi + 2], 0x7b
mov ecx, 0xb
jmp 0x4d7d65
cmp edi, 8
jne 0x4d805d
lea edi, [esi + 2]
cmp ebx, edi
jae 0x4d804c
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x1c59
mov ecx, 1
jmp 0x4d7d65
cmp edi, 9
jne 0x4d80ae
inc esi
cmp ebx, esi
jae 0x4d809d
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov byte [esi + ebp - 1], 0x36
mov ecx, 3
mov edi, esi
jmp 0x4d7d65
lea edi, [esi + 4]
cmp ebx, edi
jae 0x4d80ef
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov dword [ebp + esi], 0x7a747f7f
mov ecx, 0xd
jmp 0x4d7d65
cmp edi, 0xf
jg 0x4d82c2
cmp edi, 0xc
jg 0x4d81c2
cmp edi, 0xb
jne 0x4d816b
lea edi, [esi + 4]
cmp ebx, edi
jae 0x4d8159
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov dword [ebp + esi], 0x6c2a6775
mov ecx, 0x12
jmp 0x4d7d65
lea edi, [esi + 3]
cmp ebx, edi
jae 0x4d81ac
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 3
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x6a66
mov byte [ebp + esi + 2], 0x6c
mov ecx, 0x14
jmp 0x4d7d65
cmp edi, 0xd
jne 0x4d821a
lea edi, [esi + 4]
cmp ebx, edi
jae 0x4d8208
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov dword [ebp + esi], 0x3326697d
mov ecx, 2
jmp 0x4d7d65
cmp edi, 0xe
jne 0x4d826b
inc esi
cmp ebx, esi
jae 0x4d825a
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov byte [esi + ebp - 1], 0x5c
mov ecx, 0xf
mov edi, esi
jmp 0x4d7d65
lea edi, [esi + 3]
cmp ebx, edi
jae 0x4d82ac
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 3
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x574c
mov byte [ebp + esi + 2], 0x51
mov ecx, 8
jmp 0x4d7d65
cmp edi, 0x11
jg 0x4d836e
cmp edi, 0x10
jne 0x4d8322
lea edi, [esi + 2]
cmp ebx, edi
jae 0x4d8311
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x4f55
mov ecx, 0x13
jmp 0x4d7d65
inc esi
cmp ebx, esi
jae 0x4d835d
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov byte [esi + ebp - 1], 0x76
mov ecx, 0xc
mov edi, esi
jmp 0x4d7d65
cmp edi, 0x12
jne 0x4d83c6
lea edi, [esi + 4]
cmp ebx, edi
jae 0x4d83b4
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov dword [ebp + esi], 0x7f617d7a
mov ecx, 9
jmp 0x4d7d65
cmp edi, 0x13
jne 0x4d83d2
xor ecx, ecx
jmp 0x4d8479
cmp edi, 0x14
jne 0x4d842e
lea edi, [esi + 3]
cmp ebx, edi
jae 0x4d8418
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 3
lea eax, [0x5b0a60]
mov dword [esp + 0x10], eax
call fcn.0043f150
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov word [ebp + esi], 0x1b60
mov byte [ebp + esi + 2], 0x57
mov ecx, 0xe
jmp 0x4d7d65
mov ecx, edi
mov edi, esi
jmp 0x4d7d65
mov dword [esp], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00441fd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
add esp, 0x60
ret
mov dword [esp + 0x20], ecx
movzx edi, byte [ebp + ecx]
xor ecx, eax
xor edi, ecx
mov ecx, edi
mov edi, dword [esp + 0x20]
mov byte [ebp + edi], cl
lea ecx, [edi + 1]
cmp ecx, esi
jge 0x4d8481
jb 0x4d845f
jmp 0x4d848d
mov ecx, 4
mov edi, esi
jmp 0x4d7d65
mov eax, ecx
mov ecx, esi
call fcn.004520a0
nop
call fcn.00450c10
jmp fcn.004d7d20