Function at 0x140126f80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push r13
lea rbp, [rsp - 0x47]
sub rsp, 0xc0
mov rbx, rcx
movsxd rdx, edx
mov rcx, qword [rcx + 0x54860]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, rbx
call fcn.1401182f0
mov r13d, eax
cmp eax, 0xff
ja 0x140127be4
or dword [rbx + 0xf54], 0x10000
test eax, eax
je 0x140127bd6
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xa8], r12
mov qword [rsp + 0xa0], r14
xor r14d, r14d
mov qword [rsp + 0x98], r15
mov r15d, 0x4949
movaps xmmword [rsp + 0x80], xmm6
movss xmm6, dword [0x1404721f4]
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp + 0x6f]
mov r9d, 2
mov word [rbp + 0x6f], 0xffff
dec r13d
mov dword [rbp - 0x21], r13d
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x14012704c
movzx edi, byte [rbp + 0x70]
movzx eax, byte [rbp + 0x6f]
jmp 0x140127054
movzx edi, byte [rbp + 0x6f]
movzx eax, byte [rbp + 0x70]
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp + 0x67]
mov r9d, 2
mov word [rbp + 0x67], 0xffff
shl di, 8
or di, ax
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x140127090
movzx ecx, byte [rbp + 0x68]
movzx eax, byte [rbp + 0x67]
jmp 0x140127098
movzx ecx, byte [rbp + 0x67]
movzx eax, byte [rbp + 0x68]
shl cx, 8
or cx, ax
movzx esi, cx
mov rcx, qword [rbx + 0x54860]
mov dword [rbp - 0x1d], esi
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r12, rax
mov qword [rbp - 1], rax
mov eax, 0x100
cmp di, ax
jne 0x140127171
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp + 0x77]
mov r9d, 2
mov word [rbp + 0x77], 0xffff
mov r10, qword [rcx]
lea r8d, [r9 - 1]
call qword [r10 + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x1401270fd
movzx ecx, byte [rbp + 0x78]
movzx eax, byte [rbp + 0x77]
jmp 0x140127105
movzx ecx, byte [rbp + 0x77]
movzx eax, byte [rbp + 0x78]
shl cx, 8
lea rdx, [rbp + 0x7f]
or cx, ax
mov word [rbp + 0x7f], 0xffff
mov word [rbx + 0x10], cx
mov r9d, 2
mov rcx, qword [rbx + 0x54860]
lea r8d, [r9 - 1]
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x140127156
movzx ecx, byte [rbp + 0x80]
movzx eax, byte [rbp + 0x7f]
shl cx, 8
or cx, ax
mov word [rbx + 0x12], cx
jmp 0x140127b7a
movzx ecx, byte [rbp + 0x7f]
movzx eax, byte [rbp + 0x80]
shl cx, 8
or cx, ax
mov word [rbx + 0x12], cx
jmp 0x140127b7a
mov eax, 0x121
cmp di, ax
jne 0x14012722b
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x59]
mov r9d, 2
mov word [rbp - 0x59], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x1401271b4
movzx ecx, byte [rbp - 0x58]
movzx eax, byte [rbp - 0x59]
jmp 0x1401271bc
movzx ecx, byte [rbp - 0x59]
movzx eax, byte [rbp - 0x58]
shl cx, 8
lea rdx, [rbp - 0x55]
or cx, ax
mov word [rbp - 0x55], 0xffff
mov word [rbx + 0x14], cx
mov r9d, 2
mov rcx, qword [rbx + 0x54860]
lea r8d, [r9 - 1]
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x1401271fc
movzx ecx, byte [rbp - 0x54]
movzx eax, byte [rbp - 0x55]
jmp 0x140127204
movzx ecx, byte [rbp - 0x55]
movzx eax, byte [rbp - 0x54]
shl cx, 8
or cx, ax
mov eax, 0x10bc
mov word [rbx + 0x16], cx
cmp cx, ax
jne 0x140127b7a
mov eax, 0x10bf
mov word [rbx + 0x16], ax
jmp 0x140127b7a
mov eax, 0x130
cmp di, ax
jne 0x14012726e
mov rcx, qword [rbx + 0x54860]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [rbx + 0x54860]
sar eax, 7
mov dword [rbx + 0x54914], eax
mov rax, qword [rcx]
call qword [rax + 0x30]
shr eax, 3
not ax
and ax, 1
mov word [rbx + 0x548ae], ax
jmp 0x140127b7a
mov eax, 0x131
cmp di, ax
jne 0x1401272c7
mov dword [rbx + 0x194], 9
mov edi, r14d
nop word [rax + rax]
mov rcx, qword [rbx + 0x54860]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov ecx, 2
cmp eax, ecx
cmovl ecx, eax
mov eax, 0x23
test ecx, ecx
cmovs ecx, r14d
sub eax, edi
inc edi
mov byte [rax + rbx + 0x1bc], cl
cmp edi, 0x24
jb 0x140127290
jmp 0x140127b7a
mov eax, 0x2ff0
cmp di, ax
jne 0x14012734c
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x51]
mov r9d, 2
mov word [rbp - 0x51], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x140127315
movzx ecx, byte [rbp - 0x50]
movzx eax, byte [rbp - 0x51]
jmp 0x14012731d
movzx ecx, byte [rbp - 0x51]
movzx eax, byte [rbp - 0x50]
shl cx, 8
or cx, ax
movzx eax, cx
movd xmm0, eax
mov rax, rdi
xor rax, 1
inc rdi
cvtdq2ps xmm0, xmm0
movss dword [rbx + rax*4 + 0x25014], xmm0
sub rsi, 1
jne 0x1401272e0
jmp 0x140127b7a
mov eax, 0x110
cmp di, ax
jne 0x140127406
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x4d]
mov r9d, 2
mov word [rbp - 0x4d], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x14012738f
movzx ecx, byte [rbp - 0x4c]
movzx eax, byte [rbp - 0x4d]
jmp 0x140127397
movzx ecx, byte [rbp - 0x4d]
movzx eax, byte [rbp - 0x4c]
shl cx, 8
lea rdx, [rbp - 0x49]
or cx, ax
mov word [rbp - 0x49], 0xffff
mov word [rbx + 0xb6], cx
mov r9d, 2
mov rcx, qword [rbx + 0x54860]
lea r8d, [r9 - 1]
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x1401273eb
movzx ecx, byte [rbp - 0x48]
movzx eax, byte [rbp - 0x49]
shl cx, 8
or cx, ax
mov word [rbx + 0xb4], cx
jmp 0x140127b7a
movzx ecx, byte [rbp - 0x49]
movzx eax, byte [rbp - 0x48]
shl cx, 8
or cx, ax
mov word [rbx + 0xb4], cx
jmp 0x140127b7a
mov eax, 0x111
cmp di, ax
jne 0x1401274c0
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x45]
mov r9d, 2
mov word [rbp - 0x45], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x140127449
movzx ecx, byte [rbp - 0x44]
movzx eax, byte [rbp - 0x45]
jmp 0x140127451
movzx ecx, byte [rbp - 0x45]
movzx eax, byte [rbp - 0x44]
shl cx, 8
lea rdx, [rbp - 0x41]
or cx, ax
mov word [rbp - 0x41], 0xffff
mov word [rbx + 0xba], cx
mov r9d, 2
mov rcx, qword [rbx + 0x54860]
lea r8d, [r9 - 1]
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x1401274a5
movzx ecx, byte [rbp - 0x40]
movzx eax, byte [rbp - 0x41]
shl cx, 8
or cx, ax
mov word [rbx + 0xb8], cx
jmp 0x140127b7a
movzx ecx, byte [rbp - 0x41]
movzx eax, byte [rbp - 0x40]
shl cx, 8
or cx, ax
mov word [rbx + 0xb8], cx
jmp 0x140127b7a
mov eax, 0x122
cmp di, ax
jne 0x140127572
lea rcx, [rbx + 0x104]
lea rdx, str.DBP_for_GX680
call fcn.1402ec350
test eax, eax
jne 0x140127b7a
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x35]
mov r9d, 2
mov word [rbp - 0x35], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x31]
mov r9d, 2
mov word [rbp - 0x31], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x2d]
mov r9d, 2
mov word [rbp - 0x2d], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x29]
mov r9d, 2
mov word [rbp - 0x29], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
jmp 0x140127b7a
mov eax, 0x9650
cmp di, ax
jne 0x140127634
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x3d]
mov r9d, 2
mov word [rbp - 0x3d], 0xffff
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x1401275b5
movzx edi, byte [rbp - 0x3c]
movzx eax, byte [rbp - 0x3d]
jmp 0x1401275bd
movzx edi, byte [rbp - 0x3d]
movzx eax, byte [rbp - 0x3c]
mov rcx, qword [rbx + 0x54860]
lea rdx, [rbp - 0x39]
mov r9d, 2
mov word [rbp - 0x39], 0xffff
shl di, 8
or di, ax
mov rax, qword [rcx]
lea r8d, [r9 - 1]
call qword [rax + 0x10]
cmp word [rbx + 0x548d8], r15w
jne 0x1401275f9
movzx ecx, byte [rbp - 0x38]
movzx eax, byte [rbp - 0x39]
jmp 0x140127601
movzx ecx, byte [rbp - 0x39]
movzx eax, byte [rbp - 0x38]
shl cx, 8
movaps xmm1, xmm6
or cx, ax
movsx eax, di
movd xmm2, eax
movzx eax, cx
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm1, xmm0
divss xmm2, xmm1
movss dword [rbx + 0xa68], xmm2
jmp 0x140127b7a
mov eax, 0x2f00
cmp di, ax
jne 0x1401276ac
mov rcx, rbx
call fcn.1401182f0
mov ecx, 6
cmp eax, ecx
cmovl ecx, eax
movsxd r15, ecx
test ecx, ecx
jle 0x140127b7a
nop dword [rax + rax]
xor edi, edi
lea esi, [rdi + 4]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
lea rax, [rax + r14*4]
mov dword [rbx + rax*4 + 0x29954], ecx
sub rsi, 1
jne 0x140127665
mov rcx, qword [rbx + 0x54860]
lea edx, [rsi + 8]
lea r8d, [rsi + 1]
mov rax, qword [rcx]
call qword [rax + 0x18]
inc r14
cmp r14, r15
jl 0x140127660
jmp 0x140127b7a
mov eax, 0x2000
cmp di, ax
jne 0x1401276e7
mov rdi, r14
mov esi, 4
nop
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x298d4], ecx
sub rsi, 1
jne 0x1401276c0
jmp 0x140127b7a
mov eax, 0x2100
cmp di, ax
jne 0x140127727
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x29444], ecx
sub rsi, 1
jne 0x140127700
jmp 0x140127b7a
mov eax, 0x2200
cmp di, ax
jne 0x140127767
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x29464], ecx
sub rsi, 1
jne 0x140127740
jmp 0x140127b7a
mov eax, 0x2300
cmp di, ax
jne 0x1401277a7
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x29474], ecx
sub rsi, 1
jne 0x140127780
jmp 0x140127b7a
mov eax, 0x2301
cmp di, ax
jne 0x1401277e7
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x29484], ecx
sub rsi, 1
jne 0x1401277c0
jmp 0x140127b7a
mov eax, 0x2302
cmp di, ax
jne 0x140127827
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x294a4], ecx
sub rsi, 1
jne 0x140127800
jmp 0x140127b7a
mov eax, 0x2310
cmp di, ax
jne 0x140127867
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x294b4], ecx
sub rsi, 1
jne 0x140127840
jmp 0x140127b7a
mov eax, 0x2400
cmp di, ax
jne 0x1401278a7
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x293e4], ecx
sub rsi, 1
jne 0x140127880
jmp 0x140127b7a
mov eax, 0x2410
cmp di, ax
jne 0x1401278e7
mov rdi, r14
mov esi, 4
nop dword [rax]
mov rcx, rbx
call fcn.140120ef0
movzx ecx, ax
mov rax, rdi
xor rax, 1
inc rdi
mov dword [rbx + rax*4 + 0x293f4], ecx
sub rsi, 1
jne 0x1401278c0
jmp 0x140127b7a
mov eax, 0xc000
cmp di, ax
jne 0x140127b7a
movzx eax, word [rbx + 0x548d8]
mov rcx, rbx
mov word [rbp - 0x25], ax
mov word [rbx + 0x548d8], r15w
call fcn.1401182f0
cmp eax, 0x2710
jbe 0x14012792e
mov rcx, rbx
call fcn.1401182f0
cmp eax, 0x2710
jbe 0x14012792e
mov rcx, rbx
call fcn.1401182f0
mov rcx, rbx
mov word [rbx + 0x16], ax
call fcn.1401182f0
mov word [rbx + 0x14], ax
lea rdx, str.X_A3
mov rcx, r14
nop dword [rax + rax]
movzx eax, byte [rbx + rcx + 0x104]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x14012796c
cmp rcx, 5
jne 0x140127950
jmp 0x1401279fb
mov rcx, r14
lea rdx, str.X_A10
nop word [rax + rax]
movzx eax, byte [rbx + rcx + 0x104]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x140127999
cmp rcx, 6
jne 0x140127980
jmp 0x1401279fb
mov rcx, r14
lea rdx, str.X_A5
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbx + rcx + 0x104]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x1401279c9
cmp rcx, 5
jne 0x1401279b0
jmp 0x1401279fb
mov rcx, r14
lea rdx, str.X_A20
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbx + rcx + 0x104]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x140127b5b
cmp rcx, 6
jne 0x1401279e0
mov rcx, qword [rbx + 0x54860]
lea edx, [r12 + 0x200]
xor r8d, r8d
mov qword [rbp - 0x19], r14
mov r9, qword [rcx]
call qword [r9 + 0x18]
lea rax, [rbx + 0x2a3b4]
mov qword [rbp - 9], 0x2a
mov qword [rbp - 0x11], rax
lea r14, [rbx + 0x2a3bc]
mov rcx, rbx
call fcn.1401182f0
mov rcx, rbx
mov edi, eax
call fcn.1401182f0
mov rcx, rbx
mov esi, eax
call fcn.1401182f0
mov rcx, rbx
lea r15d, [rax + rax]
call fcn.1401182f0
mov rcx, rbx
mov r12d, eax
call fcn.1401182f0
mov rcx, rbx
mov r13d, eax
call fcn.1401182f0
lea r8d, [rax + rax]
test esi, esi
je 0x140127add
mov rax, qword [rbp - 0x19]
cmp rax, 0xff
jge 0x140127add
mov rcx, qword [rbp - 0x11]
inc rax
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov qword [rbp - 0x19], rax
movd xmm1, r15d
movss dword [rcx], xmm0
add rcx, 0x14
cvtdq2ps xmm1, xmm1
mov qword [rbp - 0x11], rcx
movd xmm0, r12d
movss dword [r14 - 4], xmm1
cvtdq2ps xmm0, xmm0
movd xmm1, r8d
movss dword [r14], xmm0
movd xmm0, r13d
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
movss dword [r14 + 4], xmm1
movss dword [r14 + 8], xmm0
add r14, 0x14
cmp edi, 0x46
je 0x140127b46
mov edx, dword [0x1404bd46c]
mov ecx, 1
mov eax, ecx
cmp edx, ecx
jle 0x140127b46
lea r9, [0x1404bd4f0]
nop word [rax + rax]
cmp dword [r9 + rax*4], edi
je 0x140127b13
add ecx, 2
add rax, 2
cmp ecx, edx
jl 0x140127b00
jmp 0x140127b46
movsxd rcx, dword [r9 + rax*4 - 4]
lea rax, [rcx*4]
mov dword [rbx + rax*4 + 0x293b4], r15d
mov dword [rbx + rax*4 + 0x293b8], r12d
mov dword [rbx + rax*4 + 0x293bc], r8d
lea rax, [rcx + 0x293c]
add rax, rax
mov dword [rbx + rax*8], r13d
sub qword [rbp - 9], 1
jne 0x140127a32
mov r12, qword [rbp - 1]
mov r13d, dword [rbp - 0x21]
jmp 0x140127b6f
mov eax, r12d
mov qword [rbx + 0x54940], rax
mov eax, esi
shr eax, 1
mov dword [rbx + 0x54948], eax
movzx eax, word [rbp - 0x25]
mov word [rbx + 0x548d8], ax
mov rcx, qword [rbx + 0x54860]
xor r8d, r8d
mov edx, dword [rbp - 0x1d]
add edx, r12d
mov r9, qword [rcx]
call qword [r9 + 0x18]
mov r14d, 0
mov r15d, 0x4949
test r13d, r13d
jne 0x140127010
movaps xmm6, xmmword [rsp + 0x80]
mov r15, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xb8]
mov ecx, dword [rbx + 0x54914]
shl word [rbx + 0x14], cl
shr word [rbx + 0x16], cl
add rsp, 0xc0
pop r13
pop rbx
pop rbp
ret