Function at 0x4798a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1c8
mov r12d, r9d
mov esi, r8d
mov r15, rdx
mov r13, rcx
mov rax, qword [rsp + 0x230]
xorps xmm0, xmm0
movups xmmword [rsp + 0xf8], xmm0
movups xmmword [rsp + 0xe8], xmm0
movups xmmword [rsp + 0xd8], xmm0
movups xmmword [rsp + 0xc8], xmm0
movups xmmword [rsp + 0xb8], xmm0
movups xmmword [rsp + 0xa8], xmm0
movups xmmword [rsp + 0x98], xmm0
movups xmmword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x48], xmm0
movups xmmword [rsp + 0x38], xmm0
movups xmmword [rsp + 0x140], xmm0
movups xmmword [rsp + 0x150], xmm0
movups xmmword [rsp + 0x160], xmm0
movups xmmword [rsp + 0x170], xmm0
movups xmmword [rsp + 0x180], xmm0
movups xmmword [rsp + 0x190], xmm0
movups xmmword [rsp + 0x1a0], xmm0
movups xmmword [rsp + 0x1b0], xmm0
mov qword [rsp + 0x1c0], 0
mov rcx, qword [rcx + 0x160]
mov qword [rsp + 0x128], rcx
lea rcx, [rsp + 0x30]
mov qword [r13 + 0x160], rcx
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x170], rax
cmp byte [r13 + 0x67], 0
je 0x4799af
lea rdx, [0x005fc480]
lea rcx, [rsp + 0x30]
call fcn.00419aa0
mov qword [rsp + 0x28], rsi
mov eax, r12d
xor eax, 0xfffffffe
test eax, r12d
je 0x4799d6
add byte [rsp + 0x54], 1
add dword [r13 + 0x1a0], 1
mov word [r13 + 0x1a4], 0
mov eax, r12d
shr al, 2
and al, 1
mov byte [rsp + 0x55], al
cmp byte [r13 + 0x6f], 0
je 0x479b1b
mov rdi, qword [r13 + 0x248]
test rdi, rdi
je 0x479abf
mov qword [r13 + 0x248], 0
mov rax, qword [r13 + 8]
test rax, rax
je 0x479a73
nop word cs:[rax + rax]
nop
mov ecx, dword [rax + 0xc8]
mov edx, ecx
xor edx, 3
and edx, ecx
mov ecx, edx
not ecx
and ecx, 0xb5be80b8
mov ebp, edx
and ebp, 0x4a417f47
or ebp, ecx
xor ebp, 0xb5be80b9
and edx, 1
or edx, ebp
mov dword [rax + 0xc8], edx
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x479a20
jmp 0x479a73
mov rcx, rbp
mov rdx, rdi
call fcn.00408130
mov rdi, r14
test r14, r14
je 0x479abf
mov rbp, qword [rdi]
mov r14, qword [rdi + 0x28]
add dword [rdi + 0x18], 0xffffffff
jne 0x479a6b
mov rsi, qword [rdi + 8]
mov rbx, qword [rdi + 0x10]
add dword [rsi + 0x10], 0xffffffff
je 0x479a95
test rbx, rbx
jne 0x479ab4
jmp 0x479a60
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x479aa4
mov rcx, qword [rsi + 0x18]
call rax
mov rcx, rbp
mov rdx, rsi
call fcn.00408130
test rbx, rbx
je 0x479a60
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x20]
jmp 0x479a60
mov rcx, qword [rsp + 0x28]
test ecx, ecx
js 0x479b09
je 0x479ad4
lea eax, [rcx - 1]
cmp byte [r15 + rax], 0
je 0x479b09
cmp dword [r13 + 0x8c], ecx
jge 0x479bdc
lea r8, [0x005fd6e7]
mov rcx, r13
mov edx, 0x12
call fcn.0040f2f0
mov rcx, r13
mov edx, 0x12
call fcn.004456e0
mov ebp, eax
jmp 0x47a1bc
lea rcx, [rsp + 0x30]
mov rdx, r15
call fcn.0041f050
jmp 0x479c54
cmp dword [r13 + 0x28], 0
jle 0x4799ed
xor esi, esi
jmp 0x479b49
test bl, bl
je 0x47a0b7
add rsi, 1
movsxd rax, dword [r13 + 0x28]
cmp rsi, rax
jge 0x4799ed
mov rax, qword [r13 + 0x20]
mov rcx, rsi
shl rcx, 5
mov rdi, qword [rax + rcx + 8]
test rdi, rdi
je 0x479b38
cmp byte [rdi + 0x11], 0
je 0x479b38
add dword [rdi + 0x14], 1
cmp byte [rdi + 0x12], 0
jne 0x479b7c
mov rcx, rdi
call fcn.0043e9d0
cmp byte [rdi + 0x11], 0
je 0x479b38
mov rax, qword [rdi + 8]
cmp qword [rax + 0x80], rdi
je 0x479bb0
mov ecx, dword [rax + 0x28]
mov edx, ecx
xor edx, 0xffbf
test dx, cx
je 0x479bb0
mov ebp, 0x106
xor ebx, ebx
add dword [rdi + 0x14], 0xffffffff
jne 0x479b30
mov rcx, rdi
call fcn.0043ea70
jmp 0x479b30
mov rax, qword [rax + 0x78]
xor ebp, ebp
mov bl, 1
jmp 0x479bc4
mov rax, qword [rax + 0x10]
test rax, rax
je 0x479ba0
cmp qword [rax], rdi
je 0x479bc0
cmp dword [rax + 8], 1
jne 0x479bc0
cmp byte [rax + 0xc], 1
je 0x479bc0
jmp 0x479b99
mov ebx, ecx
test r15, r15
je 0x479c49
lea rdx, [rbx + 1]
mov rcx, r13
call fcn.00429840
test rax, rax
je 0x479c49
mov rdi, rax
mov rcx, rax
mov rdx, r15
mov r8, rbx
call fcn.005f4c20
mov byte [rdi + rbx], 0
lea rcx, [rsp + 0x30]
mov rdx, rdi
call fcn.0041f050
movabs rax, 0x65e26280fdda3887
mov rcx, qword [rsp + 0x178]
add rcx, rax
sub rcx, rdi
sub rcx, rax
add rcx, r15
mov qword [rsp + 0x178], rcx
mov rcx, r13
mov rdx, rdi
call fcn.00408130
jmp 0x479c54
add rbx, r15
mov qword [rsp + 0x178], rbx
mov rax, qword [rsp + 0x240]
test rax, rax
je 0x479c6c
mov rcx, qword [rsp + 0x178]
mov qword [rax], rcx
cmp byte [r13 + 0xc5], 0
jne 0x479cea
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x479cea
mov rax, qword [rsp + 0x178]
mov byte [rbx + 0xc4], r12b
test r12b, r12b
js 0x479c9e
mov dword [rbx + 0x11c], 0
test r15, r15
je 0x479ce1
movabs rcx, 0x2b5eb828c6eef754
sub rax, rcx
sub rax, r15
add rax, rcx
movsxd rsi, eax
mov rcx, qword [rbx]
lea rdx, [rsi + 1]
call fcn.00429840
test rax, rax
je 0x479ce1
mov rdi, rax
mov rcx, rax
mov rdx, r15
mov r8, rsi
call fcn.005f4c20
mov byte [rdi + rsi], 0
jmp 0x479ce3
xor edi, edi
mov qword [rbx + 0xf8], rdi
cmp byte [r13 + 0x67], 0
je 0x479dbb
mov dword [rsp + 0x48], 7
mov byte [rsp + 0x4d], 0
cmp byte [rsp + 0x4d], 0
je 0x479d17
cmp byte [r13 + 0xc5], 0
je 0x479e35
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x479d92
mov al, byte [rdi + 0xc5]
test al, al
je 0x479d8a
mov rbx, qword [rdi]
cmp al, 2
jne 0x479d3a
mov rcx, rdi
call fcn.00445770
cmp dword [rdi + 0x30], 0
js 0x479d60
cmp qword [rbx + 0x190], 0
jne 0x479d58
cmp qword [rdi + 0xa8], 0
je 0x47a103
mov rcx, rdi
call fcn.004479e0
mov rdx, qword [rdi + 0xa8]
test rdx, rdx
je 0x479d7f
mov rcx, rbx
call fcn.00408130
mov qword [rdi + 0xa8], 0
mov qword [rdi + 0xa0], 0
mov rcx, rdi
call fcn.00402020
mov ebp, dword [rsp + 0x48]
mov r9, qword [rsp + 0x38]
test r9, r9
je 0x479e1a
lea r8, [0x005faef2]
mov rcx, r13
mov edx, ebp
call fcn.0040f2f0
mov rdx, qword [rsp + 0x38]
jmp 0x47a1a7
mov eax, dword [rsp + 0x48]
test eax, eax
je 0x479dcc
cmp eax, 0x65
jne 0x479d02
mov rax, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
movabs rax, 0xffffffff00000000
mov qword [r13 + 0x50], rax
mov rcx, qword [r13 + 0x190]
xor ebp, ebp
test rcx, rcx
je 0x47a1af
mov eax, dword [rcx + 0x14]
not eax
or eax, 0x6fff
cmp ax, 0xffff
je 0x47a0e9
call fcn.00449e10
jmp 0x47a1af
mov dword [r13 + 0x50], ebp
test ebp, ebp
je 0x47a09c
mov rcx, r13
mov edx, ebp
call fcn.00430650
jmp 0x47a1af
mov r15, qword [rsp + 0x30]
cmp dword [r15 + 0x28], 0
jle 0x479d17
xor r12d, r12d
jmp 0x479e61
add r12, 1
movsxd rax, dword [r15 + 0x28]
cmp r12, rax
jge 0x479d17
mov rax, qword [r15 + 0x20]
mov rbx, r12
shl rbx, 5
mov rdi, qword [rax + rbx + 8]
test rdi, rdi
je 0x479e50
mov r14b, 1
cmp byte [rdi + 0x10], 0
jne 0x479e97
xor r14d, r14d
mov rcx, rdi
xor edx, edx
xor r8d, r8d
call fcn.00410150
test eax, eax
jne 0x47a11e
mov rsi, qword [rdi + 8]
cmp byte [rdi + 0x11], 0
je 0x479ec0
add dword [rdi + 0x14], 1
mov r8b, 1
cmp byte [rdi + 0x12], 0
jne 0x479ec3
mov rcx, rdi
call fcn.0043e9d0
mov r8b, byte [rdi + 0x11]
jmp 0x479ec3
xor r8d, r8d
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rcx + 0x50]
movzx ecx, byte [rdx + 0x28]
shl ecx, 0x18
movzx ebp, byte [rdx + 0x29]
shl ebp, 0x10
or ebp, ecx
movzx ecx, byte [rdx + 0x2a]
shl ecx, 8
mov esi, ebp
not esi
mov eax, ecx
not eax
and esi, 0xcb34e9cf
and ebp, 0x34cb0000
or ebp, esi
and eax, 0xcb34e9cf
and ecx, 0x1600
or ecx, eax
xor ecx, ebp
movzx eax, byte [rdx + 0x2b]
mov esi, ecx
not esi
mov edx, eax
not edx
mov ebp, esi
and ebp, 0x70eb64cb
and ecx, 0x8f149b00
or ecx, ebp
or esi, edx
and edx, 0x70eb64cb
and eax, 0x34
or eax, edx
xor eax, ecx
not esi
or esi, eax
test r8b, r8b
je 0x479f45
add dword [rdi + 0x14], 0xffffffff
je 0x47a01e
mov rax, qword [r15 + 0x20]
mov rcx, qword [rax + rbx + 0x18]
cmp esi, dword [rcx]
je 0x479fbc
movzx ebp, word [rcx + 0x72]
mov ebx, ebp
not ebx
and ebx, 0xffff869a
mov edx, ebp
and edx, 0x7965
or edx, ebx
xor edx, 0xffff8692
and ebp, 8
or ebp, edx
mov word [rcx + 0x72], bp
mov rcx, qword [rax + 0x38]
movzx ebp, word [rcx + 0x72]
mov ebx, ebp
not ebx
and ebx, 0x26f6
mov edx, ebp
and edx, 0xd909
or edx, ebx
xor edx, 0x26fe
and ebp, 8
or ebp, edx
mov word [rcx + 0x72], bp
and byte [r15 + 0x2c], 0xef
cmp dword [r15 + 0x48], 0
je 0x47a039
mov dword [rsp + 0x48], 0x11
test r14b, r14b
jne 0x479e50
cmp byte [rdi + 0x11], 0
je 0x479fdd
add dword [rdi + 0x14], 1
cmp byte [rdi + 0x12], 0
jne 0x479fdd
mov rcx, rdi
call fcn.0043e9d0
mov rcx, rdi
xor edx, edx
call fcn.00411d00
test eax, eax
jne 0x479ff5
mov rcx, rdi
xor edx, edx
call fcn.00411ba0
cmp byte [rdi + 0x11], 0
je 0x479e50
mov eax, dword [rdi + 0x14]
lea ecx, [rax - 1]
mov dword [rdi + 0x14], ecx
cmp eax, 1
jne 0x479e50
mov rcx, rdi
call fcn.0043ea70
jmp 0x479e50
mov rcx, rdi
call fcn.0043ea70
mov rax, qword [r15 + 0x20]
mov rcx, qword [rax + rbx + 0x18]
cmp esi, dword [rcx]
jne 0x479f52
jmp 0x479fbc
mov edx, dword [r15 + 0x28]
test edx, edx
jle 0x479fb4
mov ebx, 1
mov esi, 0x18
xor ebp, ebp
nop word cs:[rax + rax]
nop dword [rax + rax]
mov rcx, qword [rax + rsi]
movzx eax, word [rcx + 0x72]
not eax
or eax, 0xfff7
cmp ax, 0xffff
je 0x47a07e
call fcn.00464bb0
mov edx, dword [r15 + 0x28]
movsxd rax, edx
cmp rbx, rax
jge 0x479fb4
add rbp, 1
mov rax, qword [r15 + 0x20]
add rbx, 1
add rsi, 0x20
jmp 0x47a060
cmp qword [r13 + 0x190], 0
je 0x47a0f4
xor ebp, ebp
mov rcx, r13
xor edx, edx
call fcn.00430650
jmp 0x47a1af
movabs rax, 0x7ffffff00000000
xor rax, rsi
and rax, rsi
mov rcx, qword [r13 + 0x20]
shl rax, 5
mov r9, qword [rcx + rax]
lea r8, [0x005fd6c9]
mov rcx, r13
mov edx, ebp
call fcn.0040f2f0
jmp 0x47a1bc
mov word [rcx + 0x14], 1
jmp 0x47a1af
mov dword [r13 + 0x54], 0xffffffff
xor ebp, ebp
jmp 0x47a1af
mov eax, dword [rdi + 0x34]
mov dword [rbx + 0x50], eax
mov rdx, qword [rdi + 0xa8]
test rdx, rdx
jne 0x479d6c
jmp 0x479d7f
cmp eax, 0xc0a
je 0x47a12e
cmp eax, 7
jne 0x479d17
cmp byte [r15 + 0x67], 0
jne 0x47a18e
cmp byte [r15 + 0x68], 0
jne 0x47a18e
mov byte [r15 + 0x67], 1
cmp dword [r15 + 0xe4], 0
jle 0x47a156
mov dword [r15 + 0x198], 1
add dword [r15 + 0x1a0], 1
mov word [r15 + 0x1a4], 0
mov rcx, qword [r15 + 0x160]
test rcx, rcx
je 0x47a18e
lea rdx, [0x005fc480]
call fcn.00419aa0
mov rax, qword [r15 + 0x160]
mov dword [rax + 0x18], 7
mov dword [rsp + 0x48], 7
jmp 0x479d17
mov rax, qword [rdx + 8]
mov qword [rsp + 0xe0], rax
mov rcx, r13
call fcn.00408130
mov rdx, qword [rsp + 0xe0]
test rdx, rdx
jne 0x47a19b
lea rcx, [rsp + 0x30]
call fcn.0041aef0
mov eax, ebp
add rsp, 0x1c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret