Function at 0x60b830
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6408d8
mov eax, dword fs:[0]
push eax
sub esp, 0x184
mov eax, dword [0x717f80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x17c], ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
push 0x138
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x174]
push 0
push eax
mov dword [ebp - 0x190], esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x174]
call fcn.004b2580
mov eax, dword [edi + 0x538]
mov dword [ebp - 4], 0
cmp eax, 0x10
ja 0x60bbb9
cmp dword [edi + 0x534], 2
je 0x60b8c2
push str.invalid_GCM_mode
jmp 0x60bbbe
test eax, eax
je 0x60b8f0
mov ecx, 8
imul ecx
add dword [edi + 0x548], eax
lea eax, [ebp - 0x174]
push eax
adc dword [edi + 0x54c], edx
lea eax, [edi + 0x4f0]
push eax
push edi
call fcn.0060d730
add esp, 0xc
mov al, byte [edi + 0x547]
lea ecx, [edi + 0x4f0]
mov byte [edi + 0x520], al
mov edx, 4
mov al, byte [edi + 0x546]
mov byte [edi + 0x521], al
mov al, byte [edi + 0x545]
mov byte [edi + 0x522], al
mov al, byte [edi + 0x544]
mov byte [edi + 0x523], al
mov al, byte [edi + 0x543]
mov byte [edi + 0x524], al
mov al, byte [edi + 0x542]
mov byte [edi + 0x525], al
mov al, byte [edi + 0x541]
mov byte [edi + 0x526], al
mov al, byte [edi + 0x540]
mov byte [edi + 0x527], al
mov al, byte [edi + 0x54f]
mov byte [edi + 0x528], al
mov al, byte [edi + 0x54e]
mov byte [edi + 0x529], al
mov al, byte [edi + 0x54d]
mov byte [edi + 0x52a], al
mov al, byte [edi + 0x54c]
mov byte [edi + 0x52b], al
mov al, byte [edi + 0x54b]
mov byte [edi + 0x52c], al
mov al, byte [edi + 0x54a]
mov byte [edi + 0x52d], al
mov al, byte [edi + 0x549]
mov byte [edi + 0x52e], al
mov al, byte [edi + 0x548]
mov byte [edi + 0x52f], al
nop dword [eax + eax]
mov al, byte [ecx + 0x30]
lea ecx, [ecx + 4]
xor byte [ecx - 4], al
mov al, byte [ecx + 0x2d]
xor byte [ecx - 3], al
mov al, byte [ecx + 0x2e]
xor byte [ecx - 2], al
mov al, byte [ecx + 0x2f]
xor byte [ecx - 1], al
sub edx, 1
jne 0x60b9c0
lea eax, [ebp - 0x174]
push eax
lea eax, [edi + 0x4f0]
push eax
push edi
call fcn.0060d730
mov ecx, dword [ebp - 0x17c]
lea eax, [edi + 0x520]
add esp, 0xc
mov edx, dword [ecx]
push eax
lea eax, [edi + 0x510]
push eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0x180]
lea ecx, [ecx + 0x6c]
call fcn.0046e290
mov esi, eax
test esi, esi
jne 0x60ba29
lea esi, [eax + 0x10]
jmp 0x60ba3f
cmp esi, 0x10
jbe 0x60ba35
mov esi, 0x10
jmp 0x60ba3f
mov eax, 0xc
cmp esi, eax
cmovb esi, eax
mov ecx, 0xfffffb11
lea eax, [edi + 0x4f0]
sub ecx, edi
lea edx, [ebp - 0x1f]
mov dword [ebp - 0x184], ecx
mov ecx, 0xfffffb12
sub ecx, edi
mov dword [ebp - 0x188], ecx
mov ecx, 0xfffffb13
sub ecx, edi
mov dword [ebp - 0x18c], ecx
mov ecx, 0xfffffb10
sub ecx, edi
mov edi, dword [ebp - 0x184]
mov dword [ebp - 0x17c], ecx
add ecx, eax
cmp ecx, esi
jae 0x60bae2
mov cl, byte [eax + 0x30]
xor cl, byte [eax]
mov byte [edx - 1], cl
lea ecx, [edi + eax]
cmp ecx, esi
jae 0x60bae2
mov cl, byte [eax + 0x31]
xor cl, byte [eax + 1]
mov byte [edx], cl
mov ecx, dword [ebp - 0x188]
add ecx, eax
cmp ecx, esi
jae 0x60bae2
mov cl, byte [eax + 0x32]
xor cl, byte [eax + 2]
mov byte [edx + 1], cl
mov ecx, dword [ebp - 0x18c]
add ecx, eax
cmp ecx, esi
jae 0x60bae2
mov cl, byte [eax + 0x33]
xor cl, byte [eax + 3]
add eax, 4
mov byte [edx + 2], cl
add edx, 4
mov ecx, dword [ebp - 0x17c]
add ecx, eax
cmp ecx, 0x10
mov ecx, dword [ebp - 0x17c]
jb 0x60ba82
cmp byte [ebp + 8], 0
mov edi, dword [ebp - 0x180]
mov byte [ebp - 0x175], 1
lea ecx, [edi + 0x6c]
je 0x60bb0f
call fcn.004a0bb0
push esi
lea eax, [ebp - 0x20]
push eax
lea ecx, [edi + 0x6c]
call fcn.0049f210
jmp 0x60bbcc
push esi
lea eax, [ebp - 0x20]
push eax
call fcn.004a2770
mov byte [ebp - 0x175], al
test al, al
jne 0x60bbcc
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x3c]
movq qword [ebp - 0x2c], xmm0
movups xmmword [ebp - 0x3c], xmm0
call fcn.0049ead0
push 0x10
push 0xff
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 1
call fcn.0049f4e0
lea eax, [ebp - 0x3c]
push eax
lea ecx, [edi + 0x6c]
call fcn.004a2800
test al, al
je 0x60bb76
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0x175], 1
call fcn.0049ecf0
jmp 0x60bbcc
mov edi, dword [ebp - 0x190]
mov ecx, edi
push str.GCM_decrypt_authentication_tag_not_equal_to_the_expected_value.
mov eax, dword [edi]
call dword [eax + 0x14]
push esi
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
push str.decryptTag
call fcn.004b2b40
mov eax, dword [ebp - 0x180]
mov ecx, edi
add eax, 0x6c
push eax
push str.expectedTag
call fcn.004b2c20
lea ecx, [ebp - 0x3c]
call fcn.0049ecf0
jmp 0x60bbcc
push str.invalid_GCM_buflen
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov byte [ebp - 0x175], 0
lea ecx, [ebp - 0x174]
call fcn.004b26a0
mov al, byte [ebp - 0x175]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x10