Function at 0x140054ab0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, r9
mov rbx, r8
mov rdi, rcx
mov rsi, qword [rsp + 0xb8]
test dl, dl
je 0x140054b52
nop word cs:[rax + rax]
mov eax, dword [0x141dc8bd0]
or eax, dword [0x141dc8bd4]
or eax, 0x40108781
and eax, 0x49119785
cmp eax, 0x99f50b20
je 0x140054ae0
mov eax, 0x110000
nop word cs:[rax + rax]
mov ecx, dword [0x141dc8bd8]
xor ecx, dword [0x141dc8bdc]
imul ecx, ecx, 0x158647d6
xor ecx, 0xfb5f8a37
imul edx, ecx, 0x66301f3d
mov ecx, dword [rdi + 0x34]
mov r8d, ecx
and r8d, 1
mov ebp, 0x2b
cmove ebp, eax
cmp edx, 0x35340736
jb 0x140054b10
add r8, rsi
test cl, 4
jne 0x140054b80
jmp 0x140054b71
lea r8, [rsi + 1]
xor eax, eax
nop dword [rax + rax]
test al, al
jne 0x140054b60
mov ecx, dword [rdi + 0x34]
mov ebp, 0x2d
test cl, 4
jne 0x140054b80
xor ebx, ebx
jmp 0x140054d75
mov eax, dword [0x141dc8be0]
and eax, dword [0x141dc8be4]
or eax, 0x4b547b5e
add eax, 0xc0bccd31
shr eax, 1
imul rax, rax, 0x2044f9e5
shr rax, 0x3a
cmp eax, 0x4ab50cb3
ja 0x140054b80
nop word [rax + rax]
mov eax, dword [0x141dc8be8]
and eax, dword [0x141dc8bec]
imul rax, rax, 0x528d927d
shr rax, 0x36
and eax, 0xcb
imul eax, eax, 0xa7bbf936
cmp eax, 0x257b3f13
je 0x140054bb0
test r14, r14
je 0x140054c23
mov eax, dword [0x141dc8bf0]
xor edx, edx
div dword [0x141dc8bf4]
nop dword [rax]
mov eax, dword [0x141dc8bf8]
sub eax, dword [0x141dc8bfc]
imul eax, eax, 0x90bdf52b
add eax, 0xa983d64a
and eax, 0x73fcab50
cmp eax, 0x22b38aca
ja 0x140054bf0
cmp r14, 4
jae 0x140054c2a
xor eax, eax
xor r9d, r9d
jmp 0x140054d19
xor eax, eax
jmp 0x140054d45
mov r9, r14
and r9, 0xfffffffffffffffc
nop word cs:[rax + rax]
mov eax, dword [0x141dc8c00]
xor edx, edx
div dword [0x141dc8c04]
imul rax, rax, 0x15fa5bf
shr rax, 0x38
xor eax, 0xa1c009c9
or eax, 0x1c377622
cmp eax, 0xa4052c47
jb 0x140054c40
pxor xmm0, xmm0
xor eax, eax
movdqa xmm2, xmmword [0x140103720]
movdqa xmm3, xmmword [0x140103730]
pxor xmm1, xmm1
nop word cs:[rax + rax]
movzx edx, word [rbx + rax]
movd xmm4, edx
movzx edx, word [rbx + rax + 2]
movd xmm5, edx
pcmpgtb xmm4, xmm2
punpcklbw xmm4, xmm4
pshuflw xmm4, xmm4, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm0, xmm4
pcmpgtb xmm5, xmm2
punpcklbw xmm5, xmm5
pshuflw xmm4, xmm5, 0xd4
pshufd xmm4, xmm4, 0xd4
pand xmm4, xmm3
paddq xmm1, xmm4
add rax, 4
cmp r9, rax
jne 0x140054c90
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq rax, xmm0
mov edx, dword [str.2__s_H]
mov r10d, dword [0x141dc8c0c]
add edx, r10d
add edx, 0xdeedc366
or edx, 0xd6b92c3b
cmp edx, 0x3b368d9
je 0x140054cf0
cmp r9, r14
je 0x140054d45
xor edx, edx
nop dword [rax + rax]
test dl, dl
jne 0x140054d20
nop word cs:[rax + rax]
xor edx, edx
cmp byte [rbx + r9], 0xc0
setge dl
add rax, rdx
inc r9
cmp r14, r9
jne 0x140054d30
mov edx, 0xb5f74fd9
add r8, rax
nop dword [rax]
mov eax, dword [0x141dc8c10]
sub eax, dword [0x141dc8c14]
xor eax, 0xa81b1f62
add eax, 0x279d8bc0
imul rax, rdx
shr rax, 0x3f
cmp eax, 0x791d822f
ja 0x140054d50
mov r15, qword [rsp + 0xb0]
cmp qword [rdi], 0
je 0x140055018
mov eax, dword [0x141dc8c30]
xor r9d, r9d
xor edx, edx
div dword [0x141dc8c34]
nop dword [rax + rax]
test r9b, r9b
jne 0x140054da0
mov eax, dword [0x141dc8c38]
xor edx, edx
div dword [0x141dc8c3c]
nop word cs:[rax + rax]
mov eax, dword [0x141dc8c40]
xor eax, dword [0x141dc8c44]
and eax, 0xfb2fb0ae
imul eax, eax, 0x4c456ecd
add eax, 0xb44d495a
cmp eax, 0x35c4aedd
ja 0x140054dc0
mov rax, qword [rdi + 8]
mov qword [rsp + 0x30], rax
nop dword [rax]
mov eax, dword [0x141dc8c48]
imul eax, dword [0x141dc8c4c]
or eax, 0x4e000b2
and eax, 0x36e540b6
cmp eax, 0x30604e71
je 0x140054df0
sub qword [rsp + 0x30], r8
jbe 0x140054f70
mov eax, 0xa8391c57
nop
mov edx, dword [0x141dc8c58]
and edx, dword [0x141dc8c5c]
imul rdx, rax
shr rdx, 0x3e
xor edx, 0xaa61d2f5
imul rdx, rdx, 0x5273a45d
shr rdx, 0x3b
cmp edx, 0xc1cb9806
ja 0x140054e20
nop dword [rax]
mov eax, dword [0x141dc8c60]
and eax, dword [0x141dc8c64]
imul eax, eax, 0xd73c12f1
and eax, 0x6a48d607
cmp eax, 0xdc209187
ja 0x140054e50
nop
mov eax, dword [0x141dc8c68]
xor edx, edx
div dword [0x141dc8c6c]
xor eax, 0xe5448dce
add eax, 0x733cd9b6
cmp eax, 0xac415ecc
ja 0x140054e70
test cl, 8
jne 0x14005506d
mov eax, dword [0x141dc8c78]
xor edx, edx
div dword [0x141dc8c7c]
nop word cs:[rax + rax]
mov eax, dword [0x141dc8c80]
or eax, dword [0x141dc8c84]
add eax, 0x38b4faf8
or eax, 0x95cde9a5
xor eax, 0xfd33f3f0
cmp eax, 0xf0d36c4
jb 0x140054eb0
movzx eax, byte [rdi + 0x38]
nop word cs:[rax + rax]
mov ecx, dword [0x141dc8c88]
or ecx, dword [0x141dc8c8c]
movabs al, byte [0x644120e18101d73d]
cmpsb byte [rsi], byte [rdi]
shr ecx, 5
imul rcx, rcx, 0x87c1c57
shr rcx, 0x34
add ecx, 0x5ceddb97
cmp ecx, 0xd8411d8a
ja 0x140054ee0
cmp rax, 3
ja case.default.0x140054f26
lea rcx, [0x141dbb4fc]
movsxd rdx, dword [rcx + rax*4]
add rdx, rcx
jmp rdx
mov eax, 0xec7e77e7
xor ecx, ecx
mov qword [rsp + 0x38], rcx
nop word cs:[rax + rax]
mov ecx, dword [0x141dc8c90]
and ecx, dword [0x141dc8c94]
imul ecx, ecx, 0x3c32ba64
imul rcx, rax
shr rcx, 0x3f
xor ecx, 0x91fc8f8b
cmp ecx, 0xb078447
jb 0x140054f40
jmp 0x1400552bd
mov eax, dword [0x141dc8c70]
imul eax, dword [0x141dc8c74]
imul eax, eax, 0x50b2830e
cmp eax, 0x50dd4409
je 0x140054f70
mov r12, qword [rdi + 0x20]
mov rdi, qword [rdi + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov rdx, rdi
mov r8d, ebp
mov r9, rbx
call fcn.140055760
mov bl, 1
test al, al
jne 0x140055670
nop word cs:[rax + rax]
mov eax, dword [0x141dc8d70]
xor eax, dword [0x141dc8d74]
add eax, 0x996fbb96
or eax, 0x277e6ac1
cmp eax, 0x48228868
je 0x140054fc0
mov rcx, r12
mov rdx, r15
mov r8, rsi
call qword [rdi + 0x18]
mov ebx, eax
nop dword [rax + rax]
mov eax, dword [0x141dc8d78]
xor eax, dword [0x141dc8d7c]
xor eax, 0xfd069955
imul eax, eax, 0x2134bcae
and eax, 0xe0724ec0
cmp eax, 0x1e5364de
jb 0x140054ff0
jmp 0x140055670
mov r15, rsi
nop dword [rax + rax]
mov eax, dword [0x141dc8c18]
or eax, dword [0x141dc8c1c]
add eax, 0x9a4e8aa4
xor eax, 0x6475c921
cmp eax, 0x7d56fad0
jb 0x140055020
mov r12, qword [rdi + 0x20]
mov eax, dword [0x141dc8c20]
xor eax, dword [0x141dc8c24]
add eax, 0xe9b77278
or eax, 0x5f03937c
imul eax, eax, 0x23ebf230
cmp eax, 0x36148339
jae 0x1400555cb
jmp 0x140055611
mov esi, dword [rdi + 0x30]
mov dword [rdi + 0x30], 0x30
movzx eax, byte [rdi + 0x38]
mov byte [rsp + 0x38], al
mov byte [rdi + 0x38], 1
mov r13, qword [rdi + 0x20]
mov r12, qword [rdi + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r13
mov rdx, r12
mov r8d, ebp
mov r9, rbx
call fcn.140055760
mov bl, 1
test al, al
jne 0x140055670
nop dword [rax + rax]
mov eax, dword [0x141dc8d00]
imul eax, dword [0x141dc8d04]
add eax, 0xc0b0fbb4
cmp eax, 0x119cba0e
jb 0x1400550b0
mov eax, dword [0x141dc8d08]
xor edx, edx
div dword [0x141dc8d0c]
nop word [rax + rax]
mov eax, dword [0x141dc8d10]
imul eax, dword [str._a8G]
or eax, 0x20240041
and eax, 0x23ac8041
add eax, 0x51405ba2
cmp eax, 0xbd085495
ja 0x1400550e0
nop word cs:[rax + rax]
mov eax, dword [0x141dc8d18]
and eax, dword [0x141dc8d1c]
xor eax, 0xbdd5637d
add eax, 0x8a15ac1c
cmp eax, 0xb027194b
ja 0x140055110
inc qword [rsp + 0x30]
xor r14d, r14d
jmp 0x140055148
test al, al
jne 0x140055670
dec qword [rsp + 0x30]
je 0x1400551f0
inc r14
mov eax, dword [0x141dc8d20]
and eax, dword [0x141dc8d24]
and eax, 0x14014e
or eax, 0x35ebf6b1
xor eax, 0x47456ab4
cmp eax, 0xd8e6ad51
ja 0x140055156
mov rbp, qword [r12 + 0x20]
mov eax, dword [0x141dc8d28]
imul eax, dword [0x141dc8d2c]
imul rax, rax, 0x74a018a3
shr rax, 0x3a
add eax, 0xcbbf7f38
cmp eax, 0x8ba8a2e5
jb 0x1400551e4
nop word cs:[rax + rax]
mov eax, dword [0x141dc8d30]
sub eax, dword [0x141dc8d34]
add eax, 0x539396ab
and eax, 0x8c01f08c
imul r15d, eax, 0x48119d2a
mov rcx, r13
mov edx, 0x30
call rbp
cmp r15d, 0x3293f77
jne 0x140055140
mov rcx, r13
mov edx, 0x30
call rbp
jmp 0x1400551b0
mov eax, dword [0x141dc8d38]
sub eax, dword [0x141dc8d3c]
cmp eax, 0x64f06d13
je 0x1400551f0
mov rcx, r13
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
call qword [r12 + 0x18]
mov ecx, eax
nop dword [rax]
mov eax, dword [0x141dc8d40]
xor edx, edx
div dword [0x141dc8d44]
cmp edx, edi
add dword [rcx - 0x40], ebp
jle 0x140055248
cmc
hlt
add eax, 0xf7306a72
xor bh, dh
or eax, 0x81da9bfa
cmp eax, 0xbf257baa
je 0x140055220
test cl, cl
jne 0x140055670
mov eax, dword [0x141dc8d48]
xor edx, edx
div dword [0x141dc8d4c]
cmp eax, 0x5aed526c
jne 0x1400556a8
jmp 0x1400556cd
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x38], rcx
jmp 0x1400552b8
mov rdx, qword [rsp + 0x30]
mov rax, rdx
shr rax, 1
mov ecx, 0x9c4f45b3
inc rdx
mov r8, rdx
nop dword [rax]
mov edx, dword [0x141dc8c98]
imul edx, dword [0x141dc8c9c]
imul rdx, rcx
shr rdx, 0x3c
and edx, 6
cmp edx, 0x67c810c9
je 0x140055290
shr r8, 1
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], r14
nop word cs:[rax + rax]
mov eax, dword [0x141dc8ca0]
mov ecx, dword [0x141dc8ca4]
add eax, ecx
add eax, 0xf553ee50
xor eax, 0x4b2a1e03
add eax, 0xe8147175
cmp eax, 0xe26b6763
ja 0x1400552d0
mov r12, qword [rdi + 0x20]
mov r13, qword [rdi + 0x28]
mov edi, dword [rdi + 0x30]
xor esi, esi
nop word cs:[rax + rax]
cmp rsi, qword [rsp + 0x30]
je 0x1400553d3
mov r14, r13
mov r13, qword [r13 + 0x20]
mov eax, dword [0x141dc8ca8]
imul eax, dword [0x141dc8cac]
imul eax, eax, 0x4b598028
and eax, 0x25587958
imul eax, eax, 0x1d7c43dd
cmp eax, 0xeba8783b
jbe 0x14005534f
mov rcx, r12
mov edx, edi
call r13
inc rsi
nop word cs:[rax + rax]
mov eax, dword [0x141dc8cb0]
imul eax, dword [0x141dc8cb4]
imul r15d, eax, 0x5e7f0c4f
add r15d, 0x7180b554
or r15d, 0x5a0d53fe
mov rcx, r12
mov edx, edi
call r13
cmp r15d, 0xa982ba11
jb 0x140055360
nop word cs:[rax + rax]
mov ecx, dword [0x141dc8cb8]
imul ecx, dword [0x141dc8cbc]
xor ecx, 0x1548cc78
imul ecx, ecx, 0xad0b26fb
cmp ecx, 0xe86985ee
je 0x1400553a0
test al, al
mov r13, r14
je 0x140055310
mov bl, 1
jmp 0x140055670
mov eax, dword [0x141dc8cc0]
add eax, dword [0x141dc8cc4]
and eax, 0x2f7b3707
add eax, 0xe2264e74
or eax, 0x1b8c6ad1
cmp eax, 0x6adf04f
mov r14, qword [rsp + 0x40]
jne 0x140055410
mov qword [rsp + 0x20], r14
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, rbx
call fcn.140055760
mov eax, dword [0x141dc8cc8]
xor eax, dword [0x141dc8ccc]
imul eax, eax, 0xc9293667
and eax, 0x9a012388
imul rsi, rax, 0x6dde852f
shr rsi, 0x3e
mov qword [rsp + 0x20], r14
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, rbx
call fcn.140055760
cmp esi, 0xfc430700
ja 0x140055410
mov ecx, dword [0x141dc8cd0]
xor ecx, dword [0x141dc8cd4]
add ecx, 0xafbf81c5
xor ecx, 0x64cb396e
cmp ecx, 0x7b95350b
jb 0x140055450
mov bl, 1
test al, al
mov r8, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x38]
jne 0x140055670
mov rcx, r12
mov rdx, qword [rsp + 0xb0]
call qword [r13 + 0x18]
nop word cs:[rax + rax]
mov ecx, dword [0x141dc8cd8]
and ecx, dword [0x141dc8cdc]
add ecx, 0xb688530f
and ecx, 0x9e9ab91f
imul rcx, rcx, 0x3e9ba57f
shr rcx, 0x3c
cmp ecx, 0x928713fe
ja 0x1400554a0
test al, al
jne 0x140055670
xor r15d, r15d
mov ebx, 0xc0c10301
nop dword [rax + rax]
mov r14, r15
mov eax, dword [0x141dc8ce0]
and eax, dword [0x141dc8ce4]
and eax, 0xc5048802
xor eax, 0xaa7acc7c
cmp eax, 0x135808db
jb 0x1400554e3
cmp r14, rsi
je 0x14005557c
mov rsi, qword [r13 + 0x20]
mov eax, dword [0x141dc8ce8]
or eax, dword [0x141dc8cec]
or eax, 0xcda7182d
add eax, 0xf6658ffc
imul rax, rbx
shr rax, 0x3f
cmp eax, 0xe721b611
jne 0x140055535
mov rcx, r12
mov edx, edi
call rsi
lea r15, [r14 + 1]
nop dword [rax]
mov ebp, dword [0x141dc8cf0]
sub ebp, dword [0x141dc8cf4]
xor ebp, 0x8b04810
or ebp, 0xc446b7c9
and ebp, 0xeefeffd9
mov rcx, r12
mov edx, edi
call rsi
cmp ebp, 0xae0491d9
jb 0x140055540
test al, al
mov rsi, qword [rsp + 0x38]
je 0x1400554e0
jmp 0x14005557f
mov r14, rsi
mov eax, 0xd188a983
nop word cs:[rax + rax]
mov ecx, dword [0x141dc8cf8]
or ecx, dword [0x141dc8cfc]
xor ecx, 0x3d571813
imul ecx, ecx, 0x52f84450
imul rcx, rax
shr rcx, 0x3f
cmp r14, rsi
setb bl
cmp ecx, 0x4f1dfe37
je 0x140055590
jmp 0x140055670
xor eax, eax
test al, al
jne 0x1400555c5
ud2
mov eax, dword [0x141dc8c28]
add eax, dword [0x141dc8c2c]
or eax, 0xaad32cd
mov esi, 0xd71190b1
imul rsi, rax
shr rsi, 0x3b
add esi, 0x2a984610
mov r13, qword [rdi + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov rdx, r13
mov r8d, ebp
mov r9, rbx
call fcn.140055760
cmp esi, 0x196ea14e
jae 0x14005562a
mov rdx, qword [rdi + 0x28]
mov qword [rsp + 0x20], r14
mov rcx, r12
mov r8d, ebp
mov r9, rbx
call fcn.140055760
jmp 0x1400555cb
mov bl, 1
test al, al
jne 0x140055670
mov r8, r15
nop word cs:[rax + rax]
mov eax, dword [0x141dc8c50]
imul eax, dword [0x141dc8c54]
add eax, 0x7a3f23e4
and eax, 0x18505014
cmp eax, 0x6474443b
je 0x140055640
mov rcx, r12
mov rdx, qword [rsp + 0xb0]
call qword [r13 + 0x18]
mov ebx, eax
nop
mov eax, dword [0x141dc8d80]
xor edx, edx
div dword [0x141dc8d84]
add eax, 0xd250be94
imul rax, rax, 0x4b9c1b51
shr rax, 0x3e
cmp eax, 0xfd8ac11d
ja 0x140055670
mov eax, ebx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141dc8d50]
and eax, dword [0x141dc8d54]
xor eax, 0x39040302
and eax, 0x7f9403e7
add eax, 0x4d4974a1
mov dword [rdi + 0x30], esi
cmp eax, 0x18116ab3
jae 0x1400556d2
mov dword [rdi + 0x30], esi
jmp 0x1400556a8
mov eax, dword [0x141dc8d58]
xor edx, edx
div dword [0x141dc8d5c]
imul eax, eax, 0x4c05e098
or eax, 0xe86bd683
xor eax, 0xf9022ee0
cmp eax, 0xd8137f90
movzx ecx, byte [rsp + 0x38]
jbe 0x140055700
mov byte [rdi + 0x38], cl
nop
mov eax, dword [0x141dc8d60]
or eax, dword [0x141dc8d64]
add eax, 0xb44fe26c
or eax, 0xa508dd24
imul eax, eax, 0x5815d042
mov byte [rdi + 0x38], cl
cmp eax, 0xa655b03e
ja 0x140055700
xor ebx, ebx
nop dword [rax + rax]
mov eax, dword [0x141dc8d68]
xor eax, dword [0x141dc8d6c]
imul rax, rax, 0x75443b13
shr rax, 0x3c
imul eax, eax, 0x23406db0
xor eax, 0x63fa4e01
cmp eax, 0x33a070c3
jb 0x140055730
jmp 0x140055670