Function at 0x14010f340
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0xb0
mov dword [rsp + 0x9c], r8d
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], rcx
mov ecx, dword [0x1401df540]
sub ecx, dword [0x1401df544]
and ecx, ecx
mov eax, 0x9ae02f87
xor eax, 0x651fd078
xor ecx, eax
mov eax, 0x85c79dae
xor eax, 0x43f2d69f
mov edx, 0x26d0d912
xor edx, 0xe0e59223
and eax, edx
xor eax, 0xffffffff
and ecx, eax
xor ecx, 0xffffffff
mov edx, 0x489dcba7
xor edx, 0xb7623458
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov edx, 0x44607b12
xor edx, 0x731cdfa1
mov r8d, 0x97f3e778
xor r8d, 0x680c1887
xor edx, r8d
or eax, edx
mov edx, 0x377ca4b3
and edx, 0x377ca4b3
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0x8ff5921e
xor ecx, 0xbafd4947
and eax, ecx
cmp eax, 0x6e5017bc
jae 0x14010fa2d
mov eax, dword [0x1401df548]
mov ecx, dword [0x1401df54c]
xor ecx, 0xc831cefd
or eax, ecx
mov ecx, 0x951bd856
xor ecx, 0xf64c7a68
xor edx, edx
div ecx
mov ecx, 0xfceed2e7
xor ecx, 0x1950961
sub eax, ecx
and eax, 0xfdbff502
mov dword [rsp + 0x8c], eax
mov eax, 0x27f79470
xor eax, 0x2eb1def4
mov dword [rsp + 0x7c], eax
call fcn.14010fa40
mov ecx, dword [rsp + 0x7c]
mov rdx, rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x80], rdx
mov r8d, 8
cqo
idiv r8
mov r8, rax
mov eax, dword [rsp + 0x8c]
xor edx, edx
test r8, r8
cmovg rdx, r8
mov qword [rsp + 0x90], rdx
cmp eax, ecx
je 0x14010f402
mov eax, dword [rsp + 0x9c]
xor ecx, ecx
mov rdx, rcx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x78], eax
jmp 0x14010f4b5
mov r8, qword [rsp + 0x90]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x78]
mov dword [rsp + 0x44], ecx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
cmp rdx, r8
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x60], rax
je 0x14010f866
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xa8]
call fcn.14010fb62
mov rcx, qword [rsp + 0x80]
mov edx, eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x3c], edx
cmp byte [rcx], 0
mov dword [rsp + 0x40], eax
jne 0x14010fa20
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x50]
mov r8, 0xffffffffffffffff
xor r8, 4
mov rax, rdx
and rax, r8
mov r8, rdx
xor r8, 4
add rdx, r8
sub rdx, rax
call fcn.14010fb62
mov rcx, qword [rsp + 0x80]
mov edx, eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x38], edx
cmp byte [rcx], 0
mov dword [rsp + 0x40], eax
jne 0x14010fa20
mov rdx, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x44]
mov eax, ecx
xor eax, 0xffffffff
mov r9d, ecx
xor r9d, 0xffffffff
or eax, r9d
xor eax, 0xffffffff
mov r9d, r10d
xor r9d, 0xffffffff
or eax, r9d
mov r9d, r10d
xor r9d, 0xffffffff
xor r10d, 0xffffffff
or r9d, r10d
and ecx, r9d
mov r9d, 0x2a564f00
xor r9d, 0xd5a9b0ff
xor ecx, r9d
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov r9d, 0xd86fbb74
xor r9d, 0x2790448b
mov ecx, eax
xor ecx, r9d
mov r9d, 0xffffffff
xor r9d, 0xff
mov r10d, 0x4de5366
xor r10d, 0xb20a7f24
mov r11d, 0xde7100d4
xor r11d, 0x218eff2b
xor r10d, r11d
or ecx, r9d
mov r9d, 0xba0fa655
xor r9d, 0xcdb8a17
or r9d, r10d
mov r10d, 0x573a1dea
xor r10d, 0xa8c5e215
xor ecx, r10d
and ecx, r9d
mov ecx, ecx
mov r9d, ecx
lea rcx, [0x1401feaa0]
mov r10d, dword [rcx + r9*4 + 0x1c00]
mov ecx, eax
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
mov r9d, ecx
lea rcx, [0x1401feaa0]
mov ecx, dword [rcx + r9*4 + 0x1800]
mov r9d, ecx
or r9d, r9d
mov r11d, 0xeb1a5fcc
xor r11d, 0x14e5a033
xor r9d, r11d
mov esi, 0x68bd5769
xor esi, 0x9742a896
mov r11d, r10d
xor r11d, esi
mov esi, r10d
xor esi, 0xffffffff
and r11d, esi
xor r9d, 0xffffffff
xor r11d, 0xffffffff
and r9d, r11d
or ecx, r10d
mov r10d, 0xca313ad
xor r10d, 0xf35cec52
xor ecx, r10d
mov r10d, 0xd9d2982c
xor r10d, 0x262d67d3
xor r9d, r10d
xor ecx, 0xffffffff
and r9d, ecx
mov ecx, eax
shr ecx, 0x10
mov r10d, 0xbe925c80
xor r10d, 0xbe925c7f
and ecx, r10d
mov ecx, ecx
mov r10d, ecx
lea rcx, [0x1401feaa0]
xor r9d, dword [rcx + r10*4 + 0x1400]
mov ecx, 0x606787ce
xor ecx, 0x606787d6
shr eax, cl
mov rcx, qword [rsp + 0x48]
mov eax, eax
mov r10d, eax
lea rax, [0x1401feaa0]
xor r9d, dword [rax + r10*4 + 0x1000]
mov r10d, 0x51a6b067
xor r10d, 0x51a6b098
mov eax, r8d
and eax, r10d
mov eax, eax
mov r10d, eax
lea rax, [0x1401feaa0]
mov r10d, dword [rax + r10*4 + 0xc00]
mov r11d, r9d
xor r11d, r10d
mov eax, 0xfc4eb514
xor eax, 0x3b14aeb
xor r11d, eax
mov eax, r10d
and eax, r11d
shl eax, 1
sub eax, r10d
sub r9d, eax
mov eax, r8d
shr eax, 8
and eax, 0xff
mov eax, eax
mov r10d, eax
lea rax, [0x1401feaa0]
xor r9d, dword [rax + r10*4 + 0x800]
mov eax, r8d
shr eax, 0x10
mov r10d, 0xc30f94e7
xor r10d, 0xc30f9418
and eax, r10d
mov eax, eax
mov r10d, eax
lea rax, [0x1401feaa0]
mov r10d, dword [rax + r10*4 + 0x400]
mov eax, r9d
xor eax, 0xffffffff
mov r11d, r9d
xor r11d, 0xffffffff
and eax, r11d
mov r11d, r10d
or r11d, r11d
xor r11d, 0xffffffff
or eax, r11d
xor eax, 0xffffffff
or r9d, r10d
xor r9d, 0xffffffff
mov r10d, 0xce7a090b
xor r10d, 0x3185f6f4
xor eax, r10d
mov r10d, 0xb6ab3000
xor r10d, 0x4954cfff
xor r9d, r10d
and eax, r9d
shr r8d, 0x18
mov r8d, r8d
mov r9d, r8d
lea r8, [0x1401feaa0]
xor eax, dword [r8 + r9*4]
xor r8d, r8d
sub r8, rdx
movabs rdx, 0xbf309d54a93c443b
movabs r9, 0xbf309d54a93c443b
xor rdx, r9
movabs r9, 0x6aef37501b0f1473
movabs r10, 0x6aef37501b0f147b
xor r9, r10
sub rdx, r9
add r8, rdx
xor edx, edx
sub rdx, r8
mov r8, 0xffffffffffffffff
xor r8, 1
xor r9d, r9d
sub r9, 1
sub r8, r9
sub rcx, r8
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x78], eax
jmp 0x14010f4b5
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x34], eax
mov eax, dword [0x1401df550]
xor eax, 0x82f82db7
xor edx, edx
div dword [0x1401df554]
mov ecx, eax
mov edx, ecx
xor edx, 0xffffffff
mov eax, 0x648183f0
xor eax, 0xc6f4d55c
and eax, edx
mov edx, 0xffffffff
xor edx, 0xa27556ac
and ecx, edx
or eax, ecx
add eax, 0x77715395
mov edx, 0x77de2199
xor edx, 0x8821de66
mov ecx, eax
xor ecx, edx
mov edx, 0xa34528cc
xor edx, 0xd3057d3d
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x704055f1
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x704055f1
mov r8d, 0x2e64fbc1
xor r8d, 0x5e24ae30
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xf1010110
xor ecx, 0x4955d51f
cmp eax, ecx
jae 0x14010fa36
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0xa0]
mov eax, dword [0x1401df558]
or eax, dword [0x1401df55c]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x1609420d
mov r9d, 0xffffffff
xor r9d, 0x1609420d
and eax, r9d
sub eax, ecx
sub eax, 0xa229de9c
mov ecx, 0xa2421be6
xor ecx, 0xef0bb848
imul eax, ecx
mov ecx, 0x109df391
xor ecx, 0x16694fac
cmp rdx, r8
setl dl
mov byte [rsp + 0x27], dl
cmp eax, ecx
je 0x14010f913
mov eax, dword [rsp + 0x34]
mov cl, byte [rsp + 0x27]
test cl, 1
mov dword [rsp + 0x40], eax
jne 0x14010f993
jmp 0x14010fa20
mov rdx, qword [rsp + 0x28]
mov r8d, dword [rsp + 0x34]
mov rax, qword [rsp + 0xa8]
mov al, byte [rax + rdx]
mov cl, r8b
xor al, cl
movzx eax, al
mov ecx, eax
lea rax, [0x1401feaa0]
mov ecx, dword [rax + rcx*4]
shr r8d, 8
mov r9d, ecx
xor r9d, r8d
xor r9d, 0xffffffff
mov eax, r8d
and eax, r9d
shl eax, 1
sub eax, r8d
sub ecx, eax
movabs r8, 0x9139c68fca0d2920
movabs rax, 0x9139c68fca0d2921
xor r8, rax
mov rax, rdx
and rax, r8
movabs r8, 0xecf5a535c22b859f
movabs r9, 0xecf5a535c22b859e
xor r8, r9
or rdx, r8
add rax, rdx
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x60], rax
jmp 0x14010f866
mov eax, dword [rsp + 0x40]
add rsp, 0xb0
pop rsi
ret
mov dh, 4
mov al, 0x17
jmp 0x14010f402
adc eax, 0xe974e97c
invalid