Function at 0x5ba240
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x76c
mov eax, dword [0x632b20]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov dword [ebp - 0x84], 0
mov eax, dword [ebp + 0x10]
cdq
mov dword [ebp - 0x758], eax
mov dword [ebp - 0x754], edx
cmp dword [ebp - 0x754], 0
jg 0x5ba28b
jl 0x5ba283
cmp dword [ebp - 0x758], 0x30
jae 0x5ba28b
or eax, 0xffffffff
jmp 0x5ba735
mov eax, dword [ebp - 0x758]
and eax, 0xf
mov ecx, dword [ebp - 0x754]
and ecx, 0
mov dword [ebp - 0x760], eax
mov dword [ebp - 0x75c], ecx
mov edx, dword [ebp - 0x760]
or edx, dword [ebp - 0x75c]
je 0x5ba2c1
mov eax, 0xfffffffe
jmp 0x5ba735
mov eax, dword [ebp - 0x758]
sub eax, 0x30
mov ecx, dword [ebp - 0x754]
sbb ecx, 0
mov dword [ebp - 0x758], eax
mov dword [ebp - 0x754], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0x10], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 0xc], eax
mov ecx, dword [edx + 0xc]
mov dword [ebp - 8], ecx
movzx edx, byte [ebp - 5]
and edx, 0xf
mov dword [ebp - 0x88], edx
xor eax, eax
mov dword [ebp - 0x348], eax
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], eax
mov dword [ebp - 0x33c], eax
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x32c], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x348], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x344], edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x340], eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x33c], ecx
mov dword [ebp - 0x298], 0
jmp 0x5ba377
mov edx, dword [ebp - 0x298]
add edx, 1
mov dword [ebp - 0x298], edx
cmp dword [ebp - 0x298], 0x2000
jge 0x5ba3cf
lea eax, [ebp - 0x80]
push eax
call fcn.005bb680
add esp, 4
push 0x20
lea ecx, [ebp - 0x348]
push ecx
lea edx, [ebp - 0x80]
push edx
call fcn.005c0980
add esp, 0xc
push 0x80
push str.z_SpY9__n_ODOuVn0nvLUEyOz_V0:IJP_OVJ_._._q_Q_Vqem_4U_E8wu5nuii7dCrVDH7y0zA_w_YEu7:7TvF.PFN_Q__4o3RHEX6EDczxc_qa_
lea eax, [ebp - 0x80]
push eax
call fcn.005c0980
add esp, 0xc
lea ecx, [ebp - 0x348]
push ecx
lea edx, [ebp - 0x80]
push edx
call fcn.005c0a80
add esp, 8
jmp 0x5ba368
push 0x100
lea eax, [ebp - 0x348]
push eax
lea ecx, [ebp - 0x290]
push ecx
call fcn.005b2b60
add esp, 0xc
push 0x40
push 0x36
lea edx, [ebp - 0x328]
push edx
call fcn.005cbc50
add esp, 0xc
push 0x40
push 0x5c
lea eax, [ebp - 0x2d8]
push eax
call fcn.005cbc50
add esp, 0xc
mov dword [ebp - 0x298], 0
jmp 0x5ba42b
mov ecx, dword [ebp - 0x298]
add ecx, 1
mov dword [ebp - 0x298], ecx
cmp dword [ebp - 0x298], 0x20
jge 0x5ba48c
mov edx, dword [ebp - 0x298]
movzx eax, byte [ebp + edx - 0x348]
mov ecx, dword [ebp - 0x298]
movzx edx, byte [ebp + ecx - 0x328]
xor edx, eax
mov eax, dword [ebp - 0x298]
mov byte [ebp + eax - 0x328], dl
mov ecx, dword [ebp - 0x298]
movzx edx, byte [ebp + ecx - 0x348]
mov eax, dword [ebp - 0x298]
movzx ecx, byte [ebp + eax - 0x2d8]
xor ecx, edx
mov edx, dword [ebp - 0x298]
mov byte [ebp + edx - 0x2d8], cl
jmp 0x5ba41c
lea eax, [ebp - 0x80]
push eax
call fcn.005bb680
add esp, 4
push 0x40
lea ecx, [ebp - 0x328]
push ecx
lea edx, [ebp - 0x80]
push edx
call fcn.005c0980
add esp, 0xc
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x34c], 0
jmp 0x5ba4e1
mov eax, dword [ebp - 0x350]
add eax, 0x10
mov ecx, dword [ebp - 0x34c]
adc ecx, 0
mov dword [ebp - 0x350], eax
mov dword [ebp - 0x34c], ecx
mov edx, dword [ebp - 0x34c]
cmp edx, dword [ebp - 0x754]
jg 0x5ba6b1
jl 0x5ba507
mov eax, dword [ebp - 0x350]
cmp eax, dword [ebp - 0x758]
jae 0x5ba6b1
mov ecx, dword [ebp - 0x350]
add ecx, 0x10
mov edx, dword [ebp - 0x34c]
adc edx, 0
add ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov dword [ebp - 0x750], eax
mov edx, dword [ecx + 4]
mov dword [ebp - 0x74c], edx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x748], eax
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x744], ecx
mov edx, dword [ebp - 0x750]
mov dword [ebp - 0x2e8], edx
mov eax, dword [ebp - 0x74c]
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x748]
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp - 0x744]
mov dword [ebp - 0x2dc], edx
push 0x10
lea eax, [ebp - 0x750]
push eax
lea ecx, [ebp - 0x80]
push ecx
call fcn.005c0980
add esp, 0xc
lea edx, [ebp - 0x750]
push edx
lea eax, [ebp - 0x750]
push eax
lea ecx, [ebp - 0x290]
push ecx
call fcn.005b4420
add esp, 0xc
mov dword [ebp - 0x298], 0
jmp 0x5ba5bc
mov edx, dword [ebp - 0x298]
add edx, 1
mov dword [ebp - 0x298], edx
cmp dword [ebp - 0x298], 0x10
jge 0x5ba5ef
mov eax, dword [ebp - 0x298]
movzx ecx, byte [ebp + eax - 0x14]
mov edx, dword [ebp - 0x298]
movzx eax, byte [ebp + edx - 0x750]
xor eax, ecx
mov ecx, dword [ebp - 0x298]
mov byte [ebp + ecx - 0x750], al
jmp 0x5ba5ad
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x2dc]
mov dword [ebp - 8], edx
cmp dword [ebp - 0x88], 0
jle 0x5ba664
mov eax, dword [ebp - 0x758]
sub eax, 0x10
mov ecx, dword [ebp - 0x754]
sbb ecx, 0
mov dword [ebp - 0x768], eax
mov dword [ebp - 0x764], ecx
mov edx, dword [ebp - 0x350]
cmp edx, dword [ebp - 0x768]
jne 0x5ba664
mov eax, dword [ebp - 0x34c]
cmp eax, dword [ebp - 0x764]
jne 0x5ba664
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x76c], ecx
jmp 0x5ba66e
mov dword [ebp - 0x76c], 0x10
mov edx, dword [ebp - 0x76c]
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 0x294]
push eax
lea ecx, [ebp - 0x750]
push ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x84]
push edx
call fcn.005cc190
add esp, 0xc
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0x294]
mov dword [ebp - 0x84], eax
jmp 0x5ba4c3
lea ecx, [ebp - 0x348]
push ecx
lea edx, [ebp - 0x80]
push edx
call fcn.005c0a80
add esp, 8
lea eax, [ebp - 0x80]
push eax
call fcn.005bb680
add esp, 4
push 0x40
lea ecx, [ebp - 0x2d8]
push ecx
lea edx, [ebp - 0x80]
push edx
call fcn.005c0980
add esp, 0xc
push 0x20
lea eax, [ebp - 0x348]
push eax
lea ecx, [ebp - 0x80]
push ecx
call fcn.005c0980
add esp, 0xc
lea edx, [ebp - 0x348]
push edx
lea eax, [ebp - 0x80]
push eax
call fcn.005c0a80
add esp, 8
mov ecx, 8
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
lea edi, [eax + edx - 0x20]
lea esi, [ebp - 0x348]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5ba72f
mov eax, 0xfffffffd
jmp 0x5ba735
mov eax, dword [ebp - 0x84]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005cbcfe
mov esp, ebp
pop ebp
ret