Function at 0x5bdb70
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x697208
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x78f694]
xor eax, esp
mov dword [esp + 0x3c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x78f694]
xor eax, esp
push eax
lea eax, [esp + 0x54]
mov dword fs:[0], eax
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x530]
cmp eax, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x20], ecx
jg 0x5bde9c
test eax, eax
jl 0x5bde9c
cmp dword [esi + 0x52c], 2
je 0x5bdbe4
push str.invalid_GCM_mode
jmp 0x5bdea1
test eax, eax
je 0x5bdc0d
push 0
cdq
push 8
push edx
push eax
call fcn.00630fc0
add dword [esi + 0x540], eax
lea eax, [esi + 0x4e8]
adc dword [esi + 0x544], edx
mov edx, esi
call fcn.005bac50
movzx ecx, byte [esi + 0x53f]
movzx eax, byte [esi + 0x53d]
movzx edx, byte [esi + 0x53e]
mov byte [esi + 0x518], cl
movzx ecx, byte [esi + 0x53c]
lea edi, [esi + 0x518]
mov byte [esi + 0x51b], cl
movzx ecx, byte [esi + 0x539]
mov byte [esi + 0x51a], al
movzx eax, byte [esi + 0x53a]
mov byte [esi + 0x51e], cl
movzx ecx, byte [esi + 0x546]
mov byte [esi + 0x519], dl
movzx edx, byte [esi + 0x53b]
mov byte [esi + 0x51d], al
movzx eax, byte [esi + 0x547]
mov byte [esi + 0x521], cl
movzx ecx, byte [esi + 0x543]
mov byte [esi + 0x51c], dl
movzx edx, byte [esi + 0x538]
mov byte [esi + 0x520], al
movzx eax, byte [esi + 0x544]
mov byte [esi + 0x524], cl
movzx ecx, byte [esi + 0x540]
mov byte [esi + 0x51f], dl
movzx edx, byte [esi + 0x545]
mov byte [esi + 0x523], al
movzx eax, byte [esi + 0x541]
mov byte [esi + 0x527], cl
mov byte [esi + 0x522], dl
movzx edx, byte [esi + 0x542]
mov ecx, 0xfffffb18
lea ebx, [esi + 0x4e8]
sub ecx, esi
mov byte [esi + 0x526], al
mov byte [esi + 0x525], dl
mov eax, ebx
mov dword [esp + 0x1c], ecx
mov ebp, 4
jmp 0x5bdd00
movzx edx, byte [eax + 0x30]
movzx ecx, byte [eax + 0x31]
xor byte [eax], dl
xor byte [eax + 1], cl
movzx edx, byte [eax + 0x32]
movzx ecx, byte [eax + 0x33]
xor byte [eax + 2], dl
xor byte [eax + 3], cl
add eax, 4
sub ebp, 1
jne 0x5bdd00
mov eax, ebx
mov edx, esi
call fcn.005bac50
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
push edi
lea eax, [esi + 0x508]
push eax
call edx
mov ecx, dword [esp + 0x18]
add ecx, 0x68
mov dword [esp + 0x14], ecx
call fcn.00544a30
mov edi, eax
test edi, edi
jne 0x5bdd5a
lea edi, [ebp + 0x10]
jmp 0x5bdd70
cmp edi, 0x10
jbe 0x5bdd66
mov edi, 0x10
jmp 0x5bdd70
cmp edi, 0xc
jae 0x5bdd70
mov edi, 0xc
mov eax, ebx
mov ebp, 0xfffffb19
mov edx, 0xfffffb1a
mov ebx, 0xfffffb1b
sub ebp, esi
sub edx, esi
sub ebx, esi
lea ecx, [esp + 0x41]
mov dword [esp + 0x18], ebx
nop
mov esi, dword [esp + 0x1c]
lea ebx, [eax + esi]
cmp ebx, edi
jae 0x5bdde2
mov bl, byte [eax + 0x30]
xor bl, byte [eax]
mov byte [ecx - 1], bl
lea ebx, [eax + ebp]
cmp ebx, edi
jae 0x5bdde2
mov bl, byte [eax + 0x31]
xor bl, byte [eax + 1]
mov byte [ecx], bl
lea ebx, [edx + eax]
cmp ebx, edi
jae 0x5bdde2
mov bl, byte [eax + 0x32]
xor bl, byte [eax + 2]
mov byte [ecx + 1], bl
mov ebx, dword [esp + 0x18]
add ebx, eax
cmp ebx, edi
jae 0x5bdde2
mov bl, byte [eax + 0x33]
xor bl, byte [eax + 3]
add eax, 4
mov byte [ecx + 2], bl
add esi, eax
add ecx, 4
cmp esi, 0x10
jb 0x5bdd90
cmp byte [esp + 0x64], 0
mov bl, 1
je 0x5bde0a
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.00467d60
push edi
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call fcn.00469150
mov al, bl
jmp 0x5bdeaa
mov ebp, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebp
call fcn.00468a50
mov bl, al
test bl, bl
jne 0x5bde98
lea ecx, [esp + 0x24]
call fcn.00468060
push 0x10
push 0xff
lea ecx, [esp + 0x2c]
mov dword [esp + 0x64], 0
call fcn.00468e60
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call fcn.00468990
test al, al
je 0x5bde56
mov bl, 1
jmp 0x5bde87
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.GCM_decrypt_authentication_tag_not_equal_to_the_expected_value.
mov ecx, esi
call edx
push edi
lea eax, [esp + 0x44]
push eax
push str.decryptTag
mov ecx, esi
call fcn.004b0960
push ebp
push str.expectedTag
mov ecx, esi
call fcn.004b1a90
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
call fcn.00468860
mov al, bl
jmp 0x5bdeaa
push str.invalid_GCM_buflen
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
xor al, al
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0062cbd3
add esp, 0x4c
ret 0x10