Function at 0x140036620
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
mov rax, rsp
mov byte [rax + 0x18], r8b
mov qword [rax + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc8
mov rbx, qword [0x1401b9290]
mov rdi, rcx
movaps xmmword [rax - 0x58], xmm7
mov rsi, rbx
mov qword [rbp - 0x29], rbx
mov rax, qword [rbx + 0x4018]
mov byte [rax + 0xc0], 1
mov r15, qword [rbx + 0x4018]
cmp byte [r15 + 0xc3], 0
jne 0x140036c47
movsxd rax, dword [r15 + 0x100]
xor edx, edx
mov r8, qword [r15 + 0x108]
mov r8d, dword [r8 + rax*4 - 4]
call fcn.14000a440
mov rcx, qword [r15]
mov r12d, eax
cmp dword [rcx + 0x4064], eax
jne 0x1400366b4
mov r8, rdi
mov edx, reloc.WS2_32.dll_inet_addr
mov ecx, eax
call fcn.140022250
mov rbx, qword [0x1401b9290]
movss xmm7, dword [0x14019231c]
mov rcx, rdi
cmp rdi, 0xffffffffffffffff
jae 0x140036717
movzx edx, byte [rcx]
test dl, dl
je 0x1400366e2
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x1400366d9
cmp byte [rax], dl
je 0x1400366e2
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x1400366c5
cmp rdi, rcx
je 0x140036717
movss xmm3, dword [0x140192310]
lea rdx, [rbp - 0x39]
movss xmm2, dword [rbx + 0x3d50]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rbx + 0x3d48]
mov qword [rsp + 0x28], rdi
movss dword [rsp + 0x20], xmm7
call fcn.14002a720
movss xmm4, dword [r15 + 0x110]
lea rcx, [rbp - 0x49]
movss xmm5, dword [r15 + 0x114]
movaps xmm2, xmm4
movss xmm0, dword [0x14019f0c4]
movaps xmm3, xmm5
movaps xmm1, xmm0
movss dword [rbp - 0x19], xmm4
mulss xmm1, dword [0x140192284]
mulss xmm0, dword [0x1401922cc]
addss xmm3, xmm1
movss dword [rbp - 0x15], xmm5
movss xmm1, dword [rsi + 0x3928]
addss xmm2, xmm0
movss dword [rbp - 0xd], xmm3
subss xmm3, xmm5
movss dword [rbp - 0x11], xmm2
subss xmm2, xmm4
movss dword [rbp - 0x45], xmm3
movss dword [rbp - 0x49], xmm2
call fcn.14001ad30
mov edx, r12d
lea rcx, [rbp - 0x19]
xor r9d, r9d
call fcn.14001aa60
test al, al
je 0x140036c47
mov qword [rsp + 0x100], r13
lea r9, [rbp + 0x77]
mov qword [rsp + 0xc0], r14
lea r8, [rbp + 0x7f]
movaps xmmword [rsp + 0xb0], xmm6
lea rcx, [rbp - 0x19]
mov edx, r12d
movaps xmmword [rsp + 0x90], xmm10
mov dword [rsp + 0x20], 0
call fcn.14002e9f0
mov ebx, 0x1505
lea rdx, str.game_text_col
movzx r13d, al
mov r8d, ebx
lea rax, [0x14018ffed]
nop word [rax + rax]
movzx ecx, byte [rdx]
inc rdx
imul r8d, r8d, 0x21
xor r8d, ecx
cmp rdx, rax
jne 0x140036800
movss xmm6, dword [0x14019221c]
mov edx, r12d
movaps xmm3, xmm6
mov rcx, r15
call fcn.140037f20
mov r14, rax
mov rax, qword [0x1401b9290]
mov rcx, qword [rax + 0x39d4]
cmp rcx, qword [r14 + 0x50]
jne 0x14003684c
mov rcx, qword [rax + 0x39dc]
cmp rcx, qword [r14 + 0x58]
je 0x140036899
movups xmm1, xmmword [r14 + 0x40]
movups xmm2, xmmword [r14 + 0x50]
movss xmm0, dword [r14 + 0x30]
subps xmm2, xmm1
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
addps xmm2, xmm1
movss xmm1, dword [r14 + 0x28]
ucomiss xmm1, dword [r14 + 0x2c]
movups xmmword [r14 + 0x40], xmm2
movups xmm0, xmmword [rax + 0x39d4]
movss dword [r14 + 0x30], xmm1
movups xmmword [r14 + 0x50], xmm0
jp 0x140036893
jne 0x140036893
mov al, 1
jmp 0x140036895
xor al, al
mov byte [r14 + 8], al
lea rcx, str.game_logo_col
mov r8d, ebx
lea rdx, [0x14018fffd]
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
imul r8d, r8d, 0x21
xor r8d, eax
cmp rcx, rdx
jne 0x1400368b0
movaps xmm3, xmm6
mov edx, r12d
mov rcx, r15
call fcn.140037f20
mov rsi, rax
mov rax, qword [0x1401b9290]
mov rcx, qword [rax + 0x3b54]
cmp rcx, qword [rsi + 0x50]
jne 0x1400368f4
mov rcx, qword [rax + 0x3b5c]
cmp rcx, qword [rsi + 0x58]
je 0x140036938
movups xmm1, xmmword [rsi + 0x40]
movups xmm2, xmmword [rsi + 0x50]
movss xmm0, dword [rsi + 0x30]
subps xmm2, xmm1
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
addps xmm2, xmm1
movss xmm1, dword [rsi + 0x28]
ucomiss xmm1, dword [rsi + 0x2c]
movups xmmword [rsi + 0x40], xmm2
movups xmm0, xmmword [rax + 0x3b54]
movss dword [rsi + 0x30], xmm1
movups xmmword [rsi + 0x50], xmm0
jp 0x140036933
jne 0x140036933
mov al, 1
jmp 0x140036935
xor al, al
mov byte [rsi + 8], al
lea rcx, str.p_button_col
lea rdx, [0x14019000c]
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
imul ebx, ebx, 0x21
xor ebx, eax
cmp rcx, rdx
jne 0x140036950
movss xmm3, dword [0x14019222c]
mov r8d, ebx
mov edx, r12d
mov rcx, r15
call fcn.140037f20
movdqa xmm3, xmmword [0x140192770]
mov rdx, rax
movq rcx, xmm3
cmp rcx, qword [rax + 0x50]
jne 0x1400369a0
movdqa xmm0, xmm3
psrldq xmm0, 8
movq rax, xmm0
cmp rax, qword [rdx + 0x58]
je 0x1400369dd
movups xmm1, xmmword [rdx + 0x40]
movups xmm2, xmmword [rdx + 0x50]
movss xmm0, dword [rdx + 0x30]
subps xmm2, xmm1
shufps xmm0, xmm0, 0
movups xmmword [rdx + 0x50], xmm3
mulps xmm2, xmm0
movss xmm0, dword [rdx + 0x28]
ucomiss xmm0, dword [rdx + 0x2c]
addps xmm2, xmm1
movss dword [rdx + 0x30], xmm0
movups xmmword [rdx + 0x40], xmm2
jp 0x1400369d8
jne 0x1400369d8
mov al, 1
jmp 0x1400369da
xor al, al
mov byte [rdx + 8], al
movups xmm1, xmmword [rdx + 0x40]
lea rcx, [rbp - 0x39]
movups xmm2, xmmword [rdx + 0x50]
movss xmm0, dword [rdx + 0x30]
subps xmm2, xmm1
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
addps xmm2, xmm1
movups xmmword [rbp - 0x39], xmm2
call fcn.14000a9e0
mov rcx, qword [r15 + 0x2a8]
lea r8, [rbp - 0x11]
mov r9d, eax
lea rdx, [rbp - 0x19]
mov rax, qword [rbp - 0x29]
xor r12d, r12d
mov dword [rsp + 0x28], r12d
movss xmm0, dword [rax + 0x392c]
movss dword [rsp + 0x20], xmm0
call fcn.140027ca0
movups xmm1, xmmword [rsi + 0x40]
lea rcx, [rbp - 0x29]
movups xmm2, xmmword [rsi + 0x50]
movss xmm0, dword [rsi + 0x30]
subps xmm2, xmm1
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
addps xmm2, xmm1
movups xmmword [rbp - 0x29], xmm2
call fcn.14000a9e0
movss xmm4, dword [0x14019f0c4]
lea r9, [rbp - 0x39]
movss xmm3, dword [rbp - 0x15]
lea r8, [rbp - 0x29]
mov rdx, qword [rbp + 0x6f]
movaps xmm0, xmm4
mulss xmm0, dword [0x140192280]
movaps xmm1, xmm4
mov rcx, qword [r15 + 0x2a8]
mulss xmm1, dword [0x140192278]
xorps xmm10, xmm10
mov dword [rsp + 0x30], eax
lea rax, [rbp - 0x49]
addss xmm0, dword [rbp - 0x19]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x41]
mov dword [rbp - 0x49], 0x3f800000
mov dword [rbp - 0x45], 0x3f800000
mov qword [rbp - 0x41], r12
movss dword [rbp - 0x39], xmm0
movaps xmm0, xmm3
addss xmm0, xmm1
mov qword [rsp + 0x20], rax
movaps xmm1, xmm4
mulss xmm4, dword [0x14019225c]
mulss xmm1, dword [0x140192258]
addss xmm4, dword [rbp - 0x19]
movss dword [rbp - 0x35], xmm0
addss xmm3, xmm1
movss dword [rbp - 0x29], xmm4
movss dword [rbp - 0x25], xmm3
call fcn.140028170
movups xmm1, xmmword [r14 + 0x40]
mov rbx, qword [r15 + 0x2a8]
lea rcx, [rbp - 0x29]
movups xmm2, xmmword [r14 + 0x50]
movss xmm0, dword [r14 + 0x30]
subps xmm2, xmm1
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
addps xmm2, xmm1
movups xmmword [rbp - 0x29], xmm2
call fcn.14000a9e0
movss xmm6, dword [rbp - 0xd]
mov esi, eax
addss xmm6, dword [rbp - 0x15]
mov rcx, qword [0x1401b9290]
test rdi, rdi
mov r14, qword [rsp + 0xc0]
mulss xmm6, dword [0x1401921d0]
movss xmm0, dword [rcx + 0x3d50]
je 0x140036b90
movss xmm3, dword [0x140192310]
lea rdx, [rbp - 0x39]
mov rcx, qword [rcx + 0x3d48]
movaps xmm2, xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rdi
movss dword [rsp + 0x20], xmm7
call fcn.14002a720
movss xmm0, dword [rbp - 0x35]
mulss xmm0, dword [0x1401921d0]
subss xmm6, xmm0
movss xmm0, dword [0x14019f0c4]
mulss xmm0, dword [0x140192288]
movss dword [rbp - 0x25], xmm6
movaps xmm6, xmmword [rsp + 0xb0]
addss xmm0, dword [rbp - 0x19]
movss dword [rbp - 0x29], xmm0
test esi, 0xff000000
je 0x140036c30
test rdi, rdi
je 0x140036c30
cmp byte [rdi], r12b
je 0x140036c30
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdi + r8], r12b
jne 0x140036be0
mov rax, qword [rbx + 0x38]
lea r9, [rbp - 0x29]
movups xmm0, xmmword [rbx + 0x60]
mov byte [rsp + 0x48], r12b
add r8, rdi
movss dword [rsp + 0x40], xmm10
mov rdx, rbx
mov rcx, qword [rax + 8]
movss xmm2, dword [rax + 0x10]
lea rax, [rbp - 0x39]
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
movups xmmword [rbp - 0x39], xmm0
call fcn.14002a940
movaps xmm10, xmmword [rsp + 0x90]
movzx eax, r13b
mov r13, qword [rsp + 0x100]
jmp 0x140036c49
xor al, al
movaps xmm7, xmmword [rsp + 0xa0]
add rsp, 0xc8
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret