Function at 0x478300
Capabilities:
Encode data using xor

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x70
lea r8, [0x005133e4]
lea rbx, [rsp + 0x30]
mov rsi, rdx
mov rdi, rcx
lea rax, [rbx + 0x10]
mov rcx, rbx
lea rdx, [r8 - 0xc]
mov qword [rsp + 0x30], rax
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag___clone_.constprop.3682_
lea rcx, [rsp + 0x20]
mov r8, rbx
lea rdx, [rsi + 0x48]
call fcn.0049fd10
mov rax, qword [rsp + 0x20]
cmp rax, qword [rsp + 0x28]
je 0x4784d0
mov rbp, qword [rax + 0x40]
lea rsi, [rsp + 0x50]
mov r8, 0xffffffffffffffff
lea rax, [rsi + 0x10]
mov qword [rsp + 0x50], rax
test rbp, rbp
je 0x47837d
mov rcx, rbp
call sym.strlen
lea r8, [rbp + rax]
mov rdx, rbp
mov rcx, rsi
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag___clone_.constprop.3682_
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
test rax, rax
je 0x4784f0
lea r8, [rcx + rax]
mov rdx, rcx
xor eax, eax
mov r9d, eax
add rdx, 1
shl r9d, 5
add eax, r9d
movzx r9d, byte [rdx - 1]
and eax, 0x3ffffff
xor eax, r9d
cmp rdx, r8
jne 0x4783a4
cmp eax, 0xa74526
mov ebp, 1
je 0x478420
jbe 0x478453
cmp eax, 0x2bb6a6c
je 0x478420
cmp eax, 0x2c726b2
je 0x478420
cmp eax, 0x2348aed
je 0x478420
cmp eax, 0xb66a0f
setne r12b
xor r8d, r8d
mov rcx, rsi
mov r9d, 5
lea rdx, str.text_
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::rfind_char_const__unsigned_long_long__unsigned_long_long__const
mov rcx, qword [rsp + 0x50]
test rax, rax
sete bpl
and ebp, r12d
nop dword [rax + rax]
lea rax, [rsi + 0x10]
cmp rcx, rax
je 0x47842e
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x30]
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x478441
call sym.operator_delete_void_
test bpl, bpl
jne 0x478463
xor eax, eax
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
cmp eax, 0xcb462
je 0x478420
cmp eax, 0x1accd8
je 0x478420
jmp 0x4783eb
lea r8, [0x0051340e]
mov rcx, rbx
lea rax, [rbx + 0x10]
lea rdx, [r8 - 0xf]
mov qword [rsp + 0x30], rax
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag___clone_.constprop.3682_
lea rcx, [rdi + 0x40]
mov rdx, rbx
call sym._ZN7httplib6detail16get_header_valueERKSt8multimapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_NS0_2ciESaISt4pairIK
mov rcx, rsi
mov rdx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rcx, qword [rsp + 0x30]
add rbx, 0x10
cmp rcx, rbx
je 0x4784a9
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x50]
add rsi, 0x10
cmp rcx, rsi
je 0x478446
call sym.operator_delete_void_
xor eax, eax
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rsi, [rsp + 0x50]
lea rax, [rsi + 0x10]
lea r8, [0x005123a4]
mov qword [rsp + 0x50], rax
mov rbp, r8
jmp 0x47837d
mov r12d, 1
jmp 0x4783f4