Function at 0x44f820
Capabilities:
Authenticate hmac

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov esi, dword [esp + 0x4c]
mov byte [esp + 0x28], 0x36
mov byte [esp + 0x2b], 0x7e
mov byte [esp + 0x29], 0x4c
mov eax, 0x5c
xor eax, 0x52
mov dword [esp + 0x24], eax
mov byte [esp + 0x2a], al
mov ebx, dword [esp + 0x48]
mov ecx, 0x1e
jmp 0x44f860
mov ecx, dword [esp + 0x24]
nop dword [eax]
cmp ecx, 0xe
je 0x44fbf8
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x44fbf8
nop dword [eax + eax]
mov ebp, 9
movzx ecx, byte [esp + 0x29]
cmp ecx, 0xa
je 0x44fa60
cmp ecx, 0x19
jne 0x44f910
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00491930
mov dword [esp], ebx
call fcn.007ca950
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 0x35
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor edx, edx
mov ecx, dword [esp + 0x40]
call fcn.004525c0
mov edi, eax
test edi, edi
js 0x44fbf6
mov ecx, 1
mov byte [esp + 0x29], 0x19
jmp 0x44fb21
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00491930
mov dword [esp], ebx
call fcn.007ca950
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 0x35
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor edx, edx
mov ecx, dword [esp + 0x40]
call fcn.004525c0
test eax, eax
js 0x44fbf8
mov byte [esp + 0x29], 0x4c
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov edi, eax
jne 0x44f9d0
jmp 0x44fbf8
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00491cd0
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call dword [esp + 0x54]
mov ecx, eax
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx edx, al
mov eax, 0xffffffff
cmp ecx, edx
jl 0x44fbf8
mov byte [esp + 0x2b], 0x7e
jmp 0x44fa17
movzx eax, byte [esp + 0x2b]
cmp eax, 0x7e
jne 0x44f990
mov ebp, 0x18
mov byte [esp + 0x2b], 0xe
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00491cd0
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call dword [esp + 0x54]
mov ecx, eax
test ecx, ecx
mov eax, 0xffffffff
js 0x44fa60
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
je 0x44fa60
movzx eax, byte [esp + 0x28]
cmp eax, 0xd
je 0x44fafb
cmp eax, 0x36
je 0x44fb3b
cmp eax, 0x71
jne 0x44fb55
mov byte [esp + 0x28], 0xd
mov byte [esp + 0x2a], 0x12
mov eax, 0xffffffff
test ecx, ecx
je 0x44f880
jmp 0x44fb80
cmp ebp, 9
jne 0x44fbf8
imul ebp, ebp
and ebp, 3
cmp ebp, 2
jae 0x44fbf8
mov byte [esp + 0x29], 0xa
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00491930
mov dword [esp], ebx
call fcn.007ca950
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 0x35
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor edx, edx
mov ecx, dword [esp + 0x40]
call fcn.004525c0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov edi, eax
jge 0x44f9d0
jmp 0x44fbf8
mov byte [esp + 0x28], 0x36
mov byte [esp + 0x2a], 0x12
test ecx, ecx
mov eax, 0xffffffff
je 0x44f880
mov ecx, 0xd
xor edx, edx
test dl, dl
jne 0x44f880
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ecx, eax
je 0x44f9d0
jmp 0x44fb80
mov byte [esp + 0x28], 0x71
mov byte [esp + 0x2a], 0x12
test ecx, ecx
jne 0x44fb80
mov edi, 8
mov eax, 0xffffffff
jmp 0x44fb9e
mov byte [esp + 0x28], 0x55
mov byte [esp + 0x2a], 0x12
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx edx, al
mov eax, 0xffffffff
cmp ecx, edx
je 0x44f880
nop dword [eax]
movzx eax, byte [esp + 0x2a]
xor edi, edi
cmp eax, 0x12
je 0x44fbdc
mov edi, 0x16
mov byte [esp + 0x2a], 0x12
mov dword [esp], ebx
call fcn.00491790
cmp edi, 8
je 0x44f880
mov ecx, edi
and ecx, 1
inc ecx
xor ecx, edi
je 0x44f880
jmp 0x44fbf8
mov eax, dword [esp + 0x24]
add al, 0x27
mov byte [esp + 0x2a], al
xor ecx, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.00491790
mov ecx, 3
sub ecx, edi
mov edx, edi
xor edx, ecx
setne dl
movzx edx, dl
cmp edi, edx
jb 0x44fbc0
jmp 0x44f855
mov eax, edi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret