Function at 0x140054a50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x10
mov r9, rdx
mov eax, 0xa4be02a9
xor edx, edx
lea r11, [r9 + 7]
and r11, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov r10d, dword [0x141dc6e18]
or r10d, dword [0x141dc6e1c]
or r10d, 0xae8fbfc1
imul r10d, r10d, 0x6d59ff9f
imul r10, rax
shr r10, 0x3f
mov rsi, r8
sub rsi, 0xf
cmovb rsi, rdx
cmp r10d, 0xb4219363
je 0x140054a80
sub r11, r9
nop dword [rax + rax]
mov eax, dword [0x141dc6e20]
or eax, dword [0x141dc6e24]
xor eax, 0x5000001b
and eax, 0xf918501b
imul rax, rax, 0x5f6b6a3f
shr rax, 0x3e
cmp eax, 0x975bab82
ja 0x140054ac0
test r8, r8
je 0x14005528c
xor edi, edi
mov r14d, 0x8acef855
mov r15d, 0xc6cde39f
mov r13d, 0xb19590c7
mov ebp, 0xf9663783
mov bl, 1
xor r12d, r12d
mov qword [rsp + 8], r11
jmp 0x140054b36
inc r10
mov r11, qword [rsp + 8]
mov bl, 1
mov r12, r10
cmp r10, r8
jae 0x14005528c
movzx r10d, byte [r9 + r12]
test r10b, r10b
js 0x140054cc0
nop word cs:[rax + rax]
mov eax, dword [0x141dc6e28]
xor edx, edx
div dword [str.gB]
add eax, 0xde06b222
and eax, 0x72af9552
imul eax, eax, 0xfb1fa2d7
cmp eax, 0xd73e5edd
ja 0x140054b50
mov rax, r11
sub rax, r12
test dil, dil
jne 0x140054b7b
mov edx, dword [0x141dc6e30]
or edx, dword [0x141dc6e34]
imul edx, edx, 0x7ebce119
xor edx, 0xb422fb59
cmp edx, 0x89b6705a
ja 0x140054b80
test al, 7
je 0x140054bc0
lea r10, [r12 + 1]
test bl, bl
je 0x140054ba4
jmp 0x140054b2a
test dil, dil
jne 0x140054bc0
cmp r12, rsi
jae 0x140054c3e
movabs rdx, 0x8080808080808080
nop word cs:[rax + rax]
mov eax, dword [0x141dc6e38]
sub eax, dword [0x141dc6e3c]
and eax, 0x9716cae
xor eax, 0x51a1ad35
cmp eax, 0x74b76d7d
ja 0x140054be0
mov rax, qword [r9 + r12 + 8]
or rax, qword [r9 + r12]
test rax, rdx
jne 0x140054c3e
add r12, 0x10
nop
mov eax, dword [0x141dc6e40]
and eax, dword [0x141dc6e44]
xor eax, 0x6fd5b7c8
imul eax, eax, 0xe916c2a7
imul rax, rax, 0xc8f3d35
shr rax, 0x3b
cmp eax, 0x79ff57cd
ja 0x140054c10
cmp r12, rsi
jb 0x140054be0
mov r10, r12
cmp r12, r8
jae 0x140054b2a
nop word [rax + rax]
cmp byte [r9 + r10], 0
js 0x140054b2a
nop dword [rax + rax]
mov eax, dword [0x141dc6e48]
imul eax, dword [0x141dc6e4c]
and eax, 0xc40cd888
imul rax, r13
shr rax, 0x3e
cmp eax, 0xa8f6645b
ja 0x140054c60
inc r10
mov eax, dword [0x141dc6e50]
and eax, dword [0x141dc6e54]
imul rax, rbp
shr rax, 0x3e
or eax, 0x30157451
imul eax, eax, 0xd3fc40c3
cmp eax, 0xcad49ac1
je 0x140054c84
cmp r10, r8
jne 0x140054c50
jmp 0x14005528c
mov eax, dword [0x141dc6e58]
sub eax, dword [0x141dc6e5c]
imul rdx, rax, 0x27f88221
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1c
and eax, 5
cmp eax, 0xf68181a1
je 0x140054cc0
lea rax, [0x141db87b8]
movzx r11d, byte [r10 + rax]
nop word cs:[rax + rax]
mov eax, dword [0x141dc6e60]
xor edx, edx
div dword [0x141dc6e64]
add eax, 0xc9e13ae8
and eax, 0x3259849b
add eax, 0xc68c6a94
cmp eax, 0xa9e14a0b
jb 0x140054d00
mov bl, 1
cmp r11d, 4
je 0x140054e40
cmp r11d, 3
je 0x140054f02
cmp r11d, 2
jne 0x1400552ca
nop word cs:[rax + rax]
mov eax, dword [0x141dc6e68]
xor eax, dword [0x141dc6e6c]
imul eax, eax, 0xb8c7f8b4
cmp eax, 0x194b28f
je 0x140054d50
lea r10, [r12 + 1]
mov eax, dword [0x141dc6e70]
sub eax, dword [0x141dc6e74]
or eax, 0x5fb74649
imul eax, eax, 0x4a12a9a9
cmp eax, 0xda7c2063
je 0x140054d6e
nop dword [rax]
mov eax, dword [0x141dc6e78]
sub eax, dword [0x141dc6e7c]
add eax, 0xd125868f
imul rax, rax, 0x6ab11461
shr rax, 0x3e
or eax, 0x4544277c
cmp eax, 0xceef7703
ja 0x140054d90
cmp r10, r8
jae 0x1400552c0
mov eax, dword [0x141dc6e98]
and eax, dword [0x141dc6e9c]
imul rax, rax, 0xbc764e1
shr rax, 0x3b
imul eax, eax, 0xd579cb86
cmp eax, 0xca90b34b
je 0x140054dc1
mov eax, dword [0x141dc6ea0]
xor edx, edx
div dword [0x141dc6ea4]
nop word cs:[rax + rax]
mov eax, dword [0x141dc6ea8]
xor edx, edx
div dword [0x141dc6eac]
imul rdx, rax, 0x339ba6cf
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
cmp eax, 0x95f054db
je 0x140054e00
cmp byte [r9 + r10], 0xbf
mov al, 1
jle 0x140054b20
jmp 0x1400552cc
mov eax, dword [0x141dc6e88]
imul eax, dword [0x141dc6e8c]
add eax, 0x5532e760
xor eax, 0x13779f1a
cmp eax, 0x2a9b3403
jb 0x140054e40
lea rax, [r12 + 1]
nop word cs:[rax + rax]
mov edx, dword [0x141dc6e90]
imul edx, dword [0x141dc6e94]
and edx, 0xfb71480f
imul edx, edx, 0xe3e85899
cmp edx, 0xa4965589
je 0x140054e70
cmp rax, r8
jae 0x1400552c0
nop word [rax + rax]
mov edx, dword [0x141dc6f10]
sub edx, dword [0x141dc6f14]
add edx, 0xe5a79ee4
imul rdx, r14
shr rdx, 0x3f
cmp edx, 0x9a244eba
ja 0x140054ea0
movzx eax, byte [r9 + rax]
cmp r10, 0xf0
je 0x140055060
cmp r10d, 0xf4
jne 0x140055070
nop word cs:[rax + rax]
test dil, dil
jne 0x140054ef0
cmp al, 0x8f
jle 0x140055090
jmp 0x1400552ca
lea r11, [r12 + 1]
nop word [rax + rax]
mov eax, dword [0x141dc6e80]
or eax, dword [0x141dc6e84]
add eax, 0x6064cc04
xor eax, 0xc289ba3e
imul eax, eax, 0xcdb6774
cmp eax, 0x2c6c1eab
jb 0x140054f10
cmp r11, r8
jae 0x1400552c0
mov eax, dword [0x141dc6eb0]
xor edx, edx
div dword [0x141dc6eb4]
mov eax, dword [0x141dc6eb8]
mov edx, dword [0x141dc6ebc]
add eax, edx
add eax, 0x9bf32ee0
cmp eax, 0xecf6a7a3
ja 0x140054f4a
nop word cs:[rax + rax]
mov eax, dword [0x141dc6ec0]
xor eax, dword [0x141dc6ec4]
xor eax, 0x97d788de
imul rax, r15
shr rax, 0x3f
cmp eax, 0x203bdbb3
ja 0x140054f70
movzx r11d, byte [r9 + r11]
nop word cs:[rax + rax]
mov eax, dword [0x141dc6ec8]
and eax, dword [0x141dc6ecc]
add eax, 0xfdb9958a
xor eax, 0xbf0cd801
imul eax, eax, 0x7bf7c1ed
cmp eax, 0xfbe444a5
ja 0x140054fa0
cmp r10d, 0xe0
je 0x140055020
cmp r10d, 0xed
jne 0x140055158
nop dword [rax]
mov eax, dword [0x141dc6ef0]
or eax, dword [0x141dc6ef4]
xor eax, 0x41409c00
or eax, 0xb21521db
imul eax, eax, 0xd095cec
cmp eax, 0x7a62db6a
ja 0x140054fe0
cmp r11b, 0x9f
jle 0x1400551e0
jmp 0x1400552ca
mov eax, dword [0x141dc6ee8]
add eax, dword [0x141dc6eec]
imul rdx, rax, 0x506580e9
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
cmp eax, 0x127a5d46
je 0x140055020
and r11b, 0xe0
cmp r11b, 0xa0
je 0x1400551e0
jmp 0x1400552ca
test dil, dil
jne 0x140055060
add al, 0x70
cmp al, 0x30
jb 0x140055090
jmp 0x1400552ca
lea edx, [r10 + 0xf]
cmp dl, 2
ja 0x1400552ca
cmp al, 0xc0
jge 0x1400552ca
nop word cs:[rax + rax]
mov eax, dword [0x141dc6f18]
or eax, dword [0x141dc6f1c]
or eax, 0x546ea5d0
add eax, 0x7dd20a6c
xor eax, 0xa9344b6c
cmp eax, 0xf28ca0a
jb 0x140055090
lea rax, [r12 + 2]
cmp rax, r8
jae 0x1400552c0
cmp byte [r9 + rax], 0xbf
jg 0x14005527e
lea r10, [r12 + 3]
mov eax, dword [0x141dc6f20]
and eax, dword [0x141dc6f24]
cmp eax, 0x499da1b0
je 0x1400550d0
cmp r10, r8
jae 0x1400552c0
nop dword [rax]
mov eax, dword [0x141dc6f28]
sub eax, dword [0x141dc6f2c]
xor eax, 0xb4d964a5
imul eax, eax, 0x11dfb8b0
cmp eax, 0x74ba02d8
je 0x1400550f0
movzx eax, byte [r9 + r10]
nop word cs:[rax + rax]
mov edx, dword [0x141dc6f30]
xor edx, dword [0x141dc6f34]
or edx, 0xd08c35fb
imul rdx, rdx, 0x30aed2cd
shr rdx, 0x3d
or edx, 0x55ea9be2
cmp edx, 0x33ac51b9
je 0x140055120
cmp al, 0xbf
jle 0x140054b20
jmp 0x1400552d4
lea eax, [r10 + 0x1f]
mov dword [rsp + 4], eax
mov eax, dword [0x141dc6ed0]
xor edx, edx
div dword [str.3G]
mov eax, dword [0x141dc6ed8]
and eax, dword [0x141dc6edc]
add eax, 0xa4f2b96a
xor eax, 0x4070a022
and eax, 0x4370a376
cmp eax, 0x42763571
ja 0x14005516e
mov eax, dword [0x141dc6ee0]
add eax, dword [0x141dc6ee4]
xor eax, 0x4000220
or eax, 0x439be0d5
and eax, 0xc7bbeef7
cmp eax, 0x55b09848
jb 0x140055190
cmp byte [rsp + 4], 0xc
jae 0x1400551c4
cmp r11b, 0xc0
jl 0x1400551e0
jmp 0x1400552ca
and r10b, 0xfe
cmp r10b, 0xee
jne 0x1400552ca
cmp r11b, 0xc0
jge 0x1400552ca
nop dword [rax]
mov eax, dword [0x141dc6ef8]
imul eax, dword [0x141dc6efc]
or eax, 0xf73ff7bd
cmp eax, 0x9132d2fc
je 0x1400551e0
lea r10, [r12 + 2]
cmp r10, r8
jae 0x1400552c0
mov eax, dword [0x141dc6f00]
xor eax, dword [0x141dc6f04]
or eax, 0xe79e7d53
add eax, 0xcd323063
shr eax, 1
imul rax, rax, 0xcb0f95b
shr rax, 0x39
cmp eax, 0x3d5f8505
ja 0x140055207
nop word cs:[rax + rax]
mov eax, dword [0x141dc6f08]
mov edx, dword [0x141dc6f0c]
add eax, edx
add eax, 0xab1a18e8
xor eax, 0x8c709f5c
imul rdx, rax, 0x78b049eb
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1d
cmp eax, 0x52652806
je 0x140055240
cmp byte [r9 + r10], 0xbf
jle 0x140054b20
mov al, 2
xor edx, edx
test dl, dl
jne 0x14005530c
jmp 0x1400552dc
mov qword [rcx + 8], r9
xor eax, eax
test al, al
je 0x14005529a
mov qword [rcx + 0x10], r8
xor eax, eax
nop dword [rax]
mov edx, dword [0x141dc6f38]
or edx, dword [0x141dc6f3c]
imul edx, edx, 0x8f7220bc
mov qword [rcx + 0x10], r8
cmp edx, 0xca072121
je 0x1400552a0
jmp 0x14005531d
xor ebx, ebx
xor edx, edx
test dl, dl
jne 0x14005530c
jmp 0x1400552dc
mov al, 1
xor edx, edx
test dl, dl
jne 0x14005530c
jmp 0x1400552dc
mov al, 3
xor edx, edx
test dl, dl
jne 0x14005530c
mov edx, dword [0x141dc6f40]
sub edx, dword [0x141dc6f44]
add edx, 0x5c771c12
or edx, 0xf1ca4a6d
add edx, 0x3d645664
mov qword [rcx + 8], r12
mov byte [rcx + 0x10], bl
mov byte [rcx + 0x11], al
cmp edx, 0x2413c371
jae 0x140055318
mov qword [rcx + 8], r12
mov byte [rcx + 0x10], bl
mov byte [rcx + 0x11], al
jmp 0x1400552dc
mov eax, 1
mov qword [rcx], rax
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret