Function at 0x5391c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c19ee
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x624040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], 0
xor esi, esi
cmp byte [ebx + 9], 0
je 0x539798
cmp byte [ebx + 0xb], 0
mov al, byte [ebx + 8]
movzx eax, al
je 0x53942c
dec eax
cmp eax, 0x11
ja case.default.0x539213
jmp dword [eax*4 + 0x5398a4]
mov eax, dword [ebx]
xor edi, edi
cmp dword [eax], esi
jle case.default.0x539213
mov eax, dword [eax + 8]
mov eax, dword [eax + edi*4]
cdq
push edx
push eax
call fcn.004e7670
add esi, eax
inc edi
mov eax, dword [ebx]
add esp, 8
cmp edi, dword [eax]
jl 0x539222
mov dword [ebx + 0xc], esi
test esi, esi
je case.default.0x5397c2
push esi
call fcn.00433c30
add esi, eax
mov eax, dword [ebp + 8]
shl eax, 3
or eax, 2
push eax
call fcn.00433c30
add esp, 8
add esi, eax
jmp case.default.0x5397c2
mov eax, dword [ebx]
xor edi, edi
cmp dword [eax], esi
jle case.default.0x539213
mov eax, dword [eax + 8]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.004e7670
add esi, eax
inc edi
mov eax, dword [ebx]
add esp, 8
cmp edi, dword [eax]
jl 0x539270
jmp case.default.0x539213
mov ecx, dword [ebx]
mov edx, dword [ecx]
test edx, edx
jle case.default.0x539213
mov ecx, dword [ecx + 8]
nop dword [eax + eax]
mov eax, dword [ecx]
or eax, 1
mov dword [ebp - 0x10], 0
bsr eax, eax
je 0x5392b9
lea eax, [eax + eax*8]
add eax, 0x49
jmp 0x5392be
mov eax, 0x40
shr eax, 6
add ecx, 4
add esi, eax
sub edx, 1
jne 0x5392a0
jmp case.default.0x539213
mov eax, dword [ebx]
xor edi, edi
cmp dword [eax], esi
jle case.default.0x539213
nop dword [eax]
mov eax, dword [eax + 8]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.004e7670
add esi, eax
inc edi
mov eax, dword [ebx]
add esp, 8
cmp edi, dword [eax]
jl 0x5392e0
jmp case.default.0x539213
mov edx, dword [ebx]
mov edi, dword [edx]
test edi, edi
jle case.default.0x539213
mov edx, dword [edx + 8]
nop
mov eax, dword [edx]
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
mov dword [ebp - 0x10], 0
or ecx, 1
bsr eax, ecx
je 0x539332
lea eax, [eax + eax*8]
add eax, 0x49
jmp 0x539337
mov eax, 0x40
shr eax, 6
add edx, 4
add esi, eax
sub edi, 1
jne 0x539310
jmp case.default.0x539213
mov eax, dword [ebx]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp dword [eax], ecx
jle case.default.0x539213
nop dword [eax + eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
mov ecx, edi
mov eax, edi
sar ecx, 0x1f
shld edi, edx, 1
sar eax, 0x1f
add edx, edx
xor eax, edi
xor ecx, edx
push eax
push ecx
call fcn.004e7670
mov ecx, dword [ebp - 0x10]
add esi, eax
mov eax, dword [ebx]
inc ecx
add esp, 8
mov dword [ebp - 0x10], ecx
cmp ecx, dword [eax]
jl 0x539360
jmp case.default.0x539213
mov eax, dword [ebx]
xor edi, edi
cmp dword [eax], esi
jle case.default.0x539213
mov eax, dword [eax + 8]
mov eax, dword [eax + edi*4]
cdq
push edx
push eax
call fcn.004e7670
add esi, eax
inc edi
mov eax, dword [ebx]
add esp, 8
cmp edi, dword [eax]
jl 0x5393a8
jmp case.default.0x539213
mov esi, dword [ebx]
mov esi, dword [esi]
shl esi, 2
jmp case.default.0x539213
mov esi, dword [ebx]
mov esi, dword [esi]
shl esi, 3
jmp case.default.0x539213
mov esi, dword [ebx]
mov esi, dword [esi]
jmp case.default.0x539213
push 0x55c
push str.D:workspacegit_vcpkg_buildtreesprotobuf_src_v4.25.1_984c7075eb.clean_srcgoogleprotobufextension_set.cc
lea ecx, [ebp - 0x18]
call fcn.005768d0
sub esp, 8
mov dword [ebp - 4], 0
mov edx, esp
mov dword [ebp - 0x10], 1
mov ecx, str.Non_primitive_types_cant_be_packed.
mov dword [edx], str.Non_primitive_types_cant_be_packed.
nop dword [eax + eax]
inc ecx
cmp byte [ecx], 0
je 0x539884
jmp 0x539420
push eax
push dword [ebp + 8]
call fcn.004e7630
movzx ecx, byte [ebx + 8]
add esp, 8
dec ecx
mov edx, eax
cmp ecx, 0x11
ja case.default.0x5397c2
jmp dword [ecx*4 + 0x5398ec]
mov ecx, dword [ebx]
xor edi, edi
mov eax, dword [ecx]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
mov eax, dword [ecx + 8]
mov eax, dword [eax + edi*4]
cdq
push edx
push eax
call fcn.004e7670
mov ecx, dword [ebx]
inc edi
add esp, 8
add esi, eax
cmp edi, dword [ecx]
jl 0x539462
jmp case.default.0x5397c2
mov ecx, dword [ebx]
xor edi, edi
mov eax, dword [ecx]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
mov eax, dword [ecx + 8]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.004e7670
mov ecx, dword [ebx]
inc edi
add esp, 8
add esi, eax
cmp edi, dword [ecx]
jl 0x539494
jmp case.default.0x5397c2
mov ecx, dword [ebx]
mov edi, dword [ecx]
mov esi, edi
imul esi, edx
test edi, edi
jle case.default.0x5397c2
mov ecx, dword [ecx + 8]
nop dword [eax + eax]
mov eax, dword [ecx]
or eax, 1
mov dword [ebp + 8], 0
bsr eax, eax
je 0x5394e9
lea eax, [eax + eax*8]
add eax, 0x49
jmp 0x5394ee
mov eax, 0x40
shr eax, 6
add ecx, 4
add esi, eax
sub edi, 1
jne 0x5394d0
jmp case.default.0x5397c2
mov ecx, dword [ebx]
xor edi, edi
mov eax, dword [ecx]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
mov eax, dword [ecx + 8]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.004e7670
mov ecx, dword [ebx]
inc edi
add esp, 8
add esi, eax
cmp edi, dword [ecx]
jl 0x539513
jmp case.default.0x5397c2
mov eax, dword [ebx]
mov edi, dword [eax]
mov esi, edi
imul esi, edx
test edi, edi
jle case.default.0x5397c2
mov edx, dword [eax + 8]
mov eax, dword [edx]
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
mov dword [ebp + 8], 0
or ecx, 1
bsr eax, ecx
je 0x539569
lea eax, [eax + eax*8]
add eax, 0x49
jmp 0x53956e
mov eax, 0x40
shr eax, 6
add edx, 4
add esi, eax
sub edi, 1
jne 0x539547
jmp case.default.0x5397c2
mov edi, dword [ebx]
xor ecx, ecx
mov dword [ebp + 8], ecx
mov eax, dword [edi]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
mov eax, dword [edi + 8]
mov edx, dword [eax + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
mov ecx, edi
mov eax, edi
sar ecx, 0x1f
shld edi, edx, 1
sar eax, 0x1f
add edx, edx
xor eax, edi
xor ecx, edx
push eax
push ecx
call fcn.004e7670
mov ecx, dword [ebp + 8]
add esp, 8
mov edi, dword [ebx]
inc ecx
add esi, eax
mov dword [ebp + 8], ecx
cmp ecx, dword [edi]
jl 0x539596
jmp case.default.0x5397c2
mov edi, dword [ebx]
xor ecx, ecx
mov eax, dword [edi + 4]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
mov bl, byte [edi]
not bl
and bl, 1
nop dword [eax]
test bl, bl
je 0x5395f8
mov eax, edi
jmp 0x539600
mov eax, dword [edi]
lea eax, [eax + ecx*4]
add eax, 3
mov eax, dword [eax]
mov dword [ebp + 8], 0
mov edx, dword [eax + 0x10]
mov eax, edx
or eax, 1
bsr eax, eax
je 0x53961e
lea eax, [eax + eax*8]
add eax, 0x49
jmp 0x539623
mov eax, 0x40
shr eax, 6
inc ecx
add eax, edx
add esi, eax
cmp ecx, dword [edi + 4]
jl 0x5395f0
jmp case.default.0x5397c2
mov edi, dword [ebx]
xor ecx, ecx
mov eax, dword [edi + 4]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
mov bl, byte [edi]
not bl
and bl, 1
test bl, bl
je 0x539658
mov eax, edi
jmp 0x539660
mov eax, dword [edi]
lea eax, [eax + ecx*4]
add eax, 3
mov eax, dword [eax]
mov dword [ebp + 8], 0
mov edx, dword [eax + 0x10]
mov eax, edx
or eax, 1
bsr eax, eax
je 0x53967e
lea eax, [eax + eax*8]
add eax, 0x49
jmp 0x539683
mov eax, 0x40
shr eax, 6
inc ecx
add eax, edx
add esi, eax
cmp ecx, dword [edi + 4]
jl 0x539650
jmp case.default.0x5397c2
mov ecx, dword [ebx]
xor edi, edi
mov eax, dword [ecx]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
mov eax, dword [ecx + 8]
mov eax, dword [eax + edi*4]
cdq
push edx
push eax
call fcn.004e7670
mov ecx, dword [ebx]
inc edi
add esp, 8
add esi, eax
cmp edi, dword [ecx]
jl 0x5396a8
jmp case.default.0x5397c2
mov ecx, dword [ebx]
xor edi, edi
mov eax, dword [ecx + 4]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
nop dword [eax + eax]
mov al, byte [ecx]
not al
test al, 1
jne 0x5396f3
mov eax, dword [ecx]
lea ecx, [edi*4 + 3]
add ecx, eax
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [ebx]
inc edi
add esi, eax
cmp edi, dword [ecx + 4]
jl 0x5396e0
jmp case.default.0x5397c2
mov ecx, dword [ebx]
xor edi, edi
mov eax, dword [ecx + 4]
mov esi, eax
imul esi, edx
test eax, eax
jle case.default.0x5397c2
nop dword [eax]
mov al, byte [ecx]
not al
test al, 1
jne 0x539733
mov eax, dword [ecx]
lea ecx, [edi*4 + 3]
add ecx, eax
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov edx, eax
mov dword [ebp + 8], 0
mov ecx, edx
or ecx, 1
bsr ecx, ecx
je 0x539758
lea eax, [ecx*8 + 0x49]
add eax, ecx
jmp 0x53975d
mov eax, 0x40
mov ecx, dword [ebx]
inc edi
shr eax, 6
add eax, edx
add esi, eax
cmp edi, dword [ecx + 4]
jl 0x539720
jmp case.default.0x5397c2
mov eax, dword [ebx]
lea esi, [edx + 4]
imul esi, dword [eax]
jmp case.default.0x5397c2
mov eax, dword [ebx]
lea esi, [edx + 8]
imul esi, dword [eax]
jmp case.default.0x5397c2
mov eax, dword [ebx]
lea esi, [edx + 1]
imul esi, dword [eax]
jmp case.default.0x5397c2
test byte [ebx + 0xa], 0xf
jne case.default.0x5397c2
movzx eax, byte [ebx + 8]
push eax
push dword [ebp + 8]
call fcn.004e7630
mov esi, eax
add esp, 8
movzx eax, byte [ebx + 8]
dec eax
cmp eax, 0x11
ja case.default.0x5397c2
jmp dword [eax*4 + 0x539934]
mov eax, dword [ebx]
cdq
push edx
push eax
call fcn.004e7670
add esp, 8
add esi, eax
jmp case.default.0x5397c2
push dword [ebx + 4]
push dword [ebx]
call fcn.004e7670
add esp, 8
add esi, eax
jmp case.default.0x5397c2
push dword [ebx]
call fcn.00433c30
add esp, 4
add esi, eax
jmp case.default.0x5397c2
push dword [ebx]
call fcn.004e6a80
add esp, 4
add esi, eax
jmp case.default.0x5397c2
push dword [ebx + 4]
push dword [ebx]
call fcn.004e6ad0
add esp, 8
add esi, eax
jmp case.default.0x5397c2
push dword [ebx]
call fcn.00433c70
add esp, 4
add esi, eax
jmp case.default.0x5397c2
push dword [ebx]
call fcn.004e3070
add esp, 4
add esi, eax
jmp case.default.0x5397c2
mov ecx, dword [ebx]
mov eax, dword [ecx]
call dword [eax + 0x1c]
add esi, eax
jmp case.default.0x5397c2
test byte [ebx + 0xa], 0xf0
mov ecx, dword [ebx]
je 0x539856
mov eax, dword [ecx]
call dword [eax + 0x2c]
add esi, eax
jmp case.default.0x5397c2
push ecx
call fcn.004decd0
add esp, 4
add esi, eax
jmp case.default.0x5397c2
add esi, 4
jmp case.default.0x5397c2
add esi, 8
jmp case.default.0x5397c2
inc esi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
sub ecx, str.Non_primitive_types_cant_be_packed.
mov dword [edx + 4], ecx
mov ecx, eax
call fcn.00576520
lea ecx, [ebp - 0x18]
call fcn.00576d60
mov dword [ebx + 0xc], 0
nop
rcl dword [ebx - 0x6c38ffad], cl
push ebx
add byte [eax - 0x6e], ch
push ebx
add al, dl
xchg edx, eax
push ebx
add byte [edx], bl
xchg edx, eax
push ebx
add bl, dl
xchg ebx, eax
push ebx
add bh, al
xchg ebx, eax
push ebx
add bh, bl
xchg ebx, eax
push ebx
add al, ch
xchg ebx, eax
push ebx
add al, ch
xchg ebx, eax
push ebx
add al, ch
xchg ebx, eax
push ebx
add al, ch
xchg ebx, eax
push ebx
add byte [ebp - 0x63ffac6e], cl
xchg ebx, eax
push ebx
add bh, al
xchg ebx, eax
push ebx
add bl, dl
xchg ebx, eax
push ebx
add byte [eax], al
xchg ebx, eax
push ebx
add byte [ecx - 0x6d], cl
push ebx
add byte [esi - 0x69], bh
push ebx
add byte [ecx - 0x69], dh
push ebx
add byte [ecx + 0x5394], al
xchg ebp, eax
push ebx
add byte [edi - 0x6c], cl
push ebx
add byte [esi - 0x69], bh
push ebx
add byte [ecx - 0x69], dh
push ebx
add byte [ebx - 0x2dffac69], cl
xchg ebp, eax
push ebx
add bh, al
xchg esi, eax
push ebx
add byte [ecx], cl
xchg edi, eax
push ebx
add byte [0xb4005396], dh
xchg esp, eax
push ebx
add byte [ebp + 0x71005396], dl
xchg edi, eax
push ebx
add byte [esi - 0x69], bh
push ebx
add byte [ebx], dh
xchg ebp, eax
push ebx
add byte [eax + 0x68005395], al
cwde
push ebx
add byte [ebx - 0x68], ah
push ebx
add ch, bl
xchg edi, eax
push ebx
add ch, bl
xchg edi, eax
push ebx
add cl, cl
xchg edi, eax
push ebx
add byte [eax - 0x68], ch
push ebx
add byte [ebx - 0x68], ah
push ebx
add byte [ebp - 0x68], ch
push ebx
add byte [esi], bl
cwde
push ebx
add byte [edx], bh
cwde
push ebx
add byte [ebp - 0x68], al
push ebx
add byte [eax + ebx*4], ch
push ebx
add cl, dh
xchg edi, eax
push ebx
add cl, cl
xchg edi, eax
push ebx
add byte [ebx - 0x68], ah
push ebx
add byte [eax - 0x68], ch
push ebx
add bh, bh
xchg edi, eax
push ebx
add byte [0xcc005398], cl
int3