Function at 0x48f5c0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8c
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
test edi, edi
je 0x48f7f5
mov dword [esi], edi
mov eax, 1
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x48f75b
sub esp, 0xc
push edi
call fcn.0043a1c0
add esp, 0x10
mov ebx, eax
cmp eax, 0x80
jg 0x48f7d2
cmp ebx, dword [ebp + 0x10]
jl 0x48f76d
cmp dword [ebp + 0x10], 0x80
ja 0x48f7fe
push eax
lea ebx, [esi + 0x50]
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
push ebx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp + 0x10]
mov dword [esi + 0x4c], edx
add esp, 0x10
mov edx, dword [esi + 0x4c]
cmp edx, 0x80
je 0x48f657
mov eax, 0x80
push ecx
sub eax, edx
add edx, ebx
push eax
push 0
push edx
call sub.msvcrt.dll_memset
add esp, 0x10
mov al, byte [esi + 0x50]
mov edx, 1
xor eax, 0x36
lea ebx, [ebp - 0x8c]
mov byte [ebp - 0x8c], al
nop
mov al, byte [edx + esi + 0x50]
xor eax, 0x36
mov byte [edx + ebx], al
inc edx
cmp edx, 0x80
jne 0x48f670
lea eax, [esi + 0x1c]
mov dword [ebp - 0x98], eax
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push edi
push eax
call fcn.0045ae80
add esp, 0x10
test eax, eax
jne 0x48f6a9
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
push edi
call fcn.0043a1c0
add esp, 0xc
push eax
push ebx
mov edx, dword [ebp - 0x98]
push edx
call fcn.0045aa60
add esp, 0x10
test eax, eax
je 0x48f69f
mov al, byte [esi + 0x50]
mov edx, 1
xor eax, 0x5c
mov byte [ebp - 0x8c], al
nop
lea esi, [esi]
mov al, byte [edx + esi + 0x50]
xor eax, 0x5c
mov byte [edx + ebx], al
inc edx
cmp edx, 0x80
jne 0x48f6e0
lea edx, [esi + 0x34]
mov dword [ebp - 0x90], edx
push eax
mov eax, dword [ebp + 0x18]
push eax
push edi
push edx
call fcn.0045ae80
add esp, 0x10
test eax, eax
je 0x48f69f
sub esp, 0xc
push edi
call fcn.0043a1c0
add esp, 0xc
push eax
push ebx
mov eax, dword [ebp - 0x90]
push eax
call fcn.0045aa60
add esp, 0x10
test eax, eax
je 0x48f69f
push eax
push eax
mov eax, dword [ebp - 0x98]
push eax
lea eax, [esi + 4]
push eax
call fcn.0045abf0
add esp, 0x10
test eax, eax
setne al
and eax, 0xff
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [esi + 0x1c]
test eax, eax
mov dword [ebp - 0x98], edx
je 0x48f734
jmp 0x48f657
lea eax, [esi + 4]
mov dword [ebp - 0x94], eax
push ecx
mov edx, dword [ebp + 0x18]
push edx
push edi
push eax
call fcn.0045ae80
add esp, 0x10
test eax, eax
je 0x48f69f
push eax
mov ebx, dword [ebp + 0x10]
push ebx
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x94]
push edx
call fcn.0045aa60
add esp, 0x10
test eax, eax
je 0x48f69f
lea ebx, [esi + 0x50]
push eax
lea eax, [esi + 0x4c]
push eax
push ebx
mov eax, dword [ebp - 0x94]
push eax
call fcn.0045adc0
add esp, 0x10
test eax, eax
jne 0x48f636
jmp 0x48f69f
push eax
push str.j____int_sizeof_ctx__key_
push 0x68
push str.external_openssl_crypto_hmac_hmac.c
call fcn.004275c0
add esp, 0x10
cmp ebx, dword [ebp + 0x10]
jge 0x48f60e
jmp 0x48f76d
mov edi, dword [esi]
xor eax, eax
jmp 0x48f5e1
push eax
push str.len_0__len__int_sizeof_ctx__key_
push 0x75
push str.external_openssl_crypto_hmac_hmac.c
call fcn.004275c0
add esp, 0x10
jmp 0x48f61b