Function at 0x477bb0
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov qword [rsp + 0x60], 0
mov rsi, rcx
mov rbx, rdx
mov rbp, r8
mov qword [rsp + 0x68], 0
mov rdi, r9
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
movzx eax, byte [0x005130d0]
test al, al
jne 0x477c0e
lea rcx, [0x005130d0]
call sym.__cxa_guard_acquire
test eax, eax
jne 0x4781e0
mov rcx, qword [rbx]
lea r9, [0x00514620]
mov rdx, qword [rbx + 8]
lea r8, [rsp + 0x60]
mov dword [rsp + 0x20], 0
add rdx, rcx
call fcn.004baa10
test al, al
mov rcx, qword [rsp + 0x60]
je 0x477c7c
movabs r8, 0xaaaaaaaaaaaaaaab
mov rdx, qword [rsp + 0x68]
mov rax, rdx
sub rax, rcx
sar rax, 3
imul rax, r8
sub rax, 3
cmp rdx, rcx
je 0x477c6a
cmp rax, 1
ja 0x478180
lea rax, [rax + rax*2]
lea rax, [rcx + rax*8]
cmp byte [rax + 0x10], 0
jne 0x47818e
lea rbx, [rsp + 0x40]
mov byte [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
lea rax, [rbx + 0x10]
mov qword [rsp + 0x40], rax
test rcx, rcx
je 0x477ca2
call sym.operator_delete_void_
mov rcx, rbp
mov rdx, rbx
add rbp, 8
call sym._ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4fi
cmp rax, rbp
je 0x477d00
lea rdx, [rsi + 0x10]
mov rcx, rsi
mov qword [rsi], rdx
mov rdx, qword [rax + 0x40]
mov r8, qword [rax + 0x48]
add r8, rdx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3713_
mov rcx, qword [rsp + 0x40]
add rbx, 0x10
cmp rcx, rbx
je 0x477ce3
call sym.operator_delete_void_
mov rax, rsi
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
test r8, r8
je 0x4783c0
add r8, rdx
xor eax, eax
nop dword [rax + rax]
mov ecx, eax
add rdx, 1
shl ecx, 5
add eax, ecx
movzx ecx, byte [rdx - 1]
and eax, 0x3ffffff
xor eax, ecx
cmp rdx, r8
jne 0x477d20
cmp eax, 0x1e692
je 0x478368
ja 0x477da0
cmp eax, 0x1d0f2
je 0x47837c
jbe 0x477e90
cmp eax, 0x1de2e
je 0x478390
jbe 0x477e30
cmp eax, 0x1e147
je 0x4783a4
ja 0x477e10
cmp eax, 0x1dee6
jne 0x477df0
lea rdx, str.font_ttf
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x3af938
je 0x4782b4
jbe 0x478010
cmp eax, 0x409771
je 0x4782c8
ja 0x477f80
cmp eax, 0x3e2ddd
je 0x477e1b
ja 0x477fb0
cmp eax, 0x3dad1f
jne 0x477e70
lea rdx, str.video_mpeg
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1e078
jne 0x4783c0
lea rdx, str.text_plain
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1e25b
jne 0x477ed0
lea rdx, str.image_tiff
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1d5fd
je 0x4782e0
jbe 0x477fd0
cmp eax, 0x1db34
je 0x4782f4
cmp eax, 0x1de29
jne 0x4783c0
lea rdx, str.video_mp4
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x3daddb
jne 0x4783c0
lea rdx, str.audio_mpeg
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1a2c6
je 0x478310
jbe 0x477f40
cmp eax, 0x1b288
je 0x478324
ja 0x477f10
cmp eax, 0x1a6df
jne 0x477ef0
lea rdx, str.image_bmp
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1e322
jne 0x4783c0
lea rdx, str.image_svgxml
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1b0f1
jne 0x4783c0
lea rdx, str.text_html
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1c97d
je 0x4782b4
cmp eax, 0x1cb45
jne 0x4783c0
lea rdx, str.image_x_icon
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0xd3d
je 0x478340
jbe 0x478050
cmp eax, 0xdd9
je 0x4782f4
cmp eax, 0x1a2c3
jne 0x4783c0
lea rdx, str.text_css
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x40c278
je 0x478354
ja 0x478110
cmp eax, 0x40977d
jne 0x4780f0
lea rdx, str.video_webm
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x3ff093
jne 0x477ff0
lea rdx, str.application_xsltxml
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1d1b9
jne 0x4783c0
lea rdx, str.image_png
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x409760
jne 0x4783c0
lea rdx, str.image_webp
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x20a43
je 0x4783f4
jbe 0x4780c0
cmp eax, 0x372b57
je 0x4782a0
ja 0x478090
cmp eax, 0x371b38
jne 0x478070
lea rdx, str.image_apng
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x76d
jne 0x4783c0
lea rdx, str.application_x_7z_compressed
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x372318
jne 0x4783c0
lea rdx, str.image_avif
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x37cf7d
je 0x477efb
cmp eax, 0x3adb38
jne 0x4783c0
lea rdx, str.application_json
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1f1d9
je 0x4783e0
jbe 0x478160
cmp eax, 0x1f580
jne 0x478140
lea rdx, str.audio_wave
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x40a648
jne 0x4783c0
lea rdx, str.application_wasm
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x43cec5
je 0x47816b
cmp eax, 0x59114a
jne 0x4783c0
lea rdx, str.font_woff2
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1f7f6
jne 0x4783c0
lea rdx, str.text_vtt
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
cmp eax, 0x1f164
jne 0x4783c0
lea rdx, str.application_xhtmlxml
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rax, [rcx + 0x18]
cmp byte [rax + 0x10], 0
je 0x477c7c
mov r13, qword [rax]
lea rbx, [rsp + 0x40]
mov r12, qword [rax + 8]
lea rax, [rbx + 0x10]
mov qword [rsp + 0x40], rax
sub r12, r13
cmp r12, 0xf
mov qword [rsp + 0x38], r12
ja 0x478260
cmp r12, 1
jne 0x478250
movzx edx, byte [r13]
mov byte [rsp + 0x50], dl
mov qword [rsp + 0x48], r12
mov byte [rax + r12], 0
mov rcx, qword [rsp + 0x60]
jmp 0x477c98
lea r12, [rsp + 0x30]
mov rcx, r12
call fcn.004459b0
lea rcx, [0x00514628]
mov rdx, r12
mov dword [0x00514620], 0x10
call sym.std::locale::locale_std::locale_const_
mov eax, dword [0x00514620]
lea r9, [0x00514628]
lea r8, [0x0051b16f]
lea rdx, [r8 - 0x11]
lea rcx, [r9 + 8]
mov dword [rsp + 0x20], eax
call sym._ZNSt8__detail13__compile_nfaINSt7__cxx1112regex_traitsIcEEPKcEENSt9enable_ifIXsrNS_27__is_contiguous_normal_iterIT0_EE5valueE
mov rcx, r12
call sym.std::locale::locale__
lea rcx, [0x005130d0]
call sym.__cxa_guard_release
lea rcx, [sym.__tcf_5]
call sym.atexit
jmp 0x477c0e
test r12, r12
je 0x4781c8
jmp 0x47827f
lea rdx, [rsp + 0x38]
xor r8d, r8d
mov rcx, rbx
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::_M_create_unsigned_long_long__unsigned_long_long_
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], rdx
mov r8, r12
mov rdx, r13
mov rcx, rax
call sym.memcpy
mov r12, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
jmp 0x4781c8
lea rdx, str.application_atomxml
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.image_jpeg
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.audio_webm
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.font_otf
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.text_javascript
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.text_csv
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.image_gif
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.application_gzip
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.font_woff
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.application_rssxml
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.application_pdf
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.audio_mp3
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.application_x_tar
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rax, [rsi + 0x10]
mov rcx, rsi
mov qword [rsi], rax
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
add r8, rdx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3713_
jmp 0x477cd0
lea rdx, str.application_xml
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0
lea rdx, str.application_zip
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1253_
jmp 0x477cd0