Function at 0x14003f420
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xb0
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], rcx
mov edx, dword [0x14024cc10]
mov ecx, dword [0x14024cc14]
mov eax, 0x50b56391
xor eax, 0x50b56391
sub eax, ecx
sub edx, eax
mov eax, 0x8a394b14
xor eax, 0x5828cf41
xor edx, eax
mov ecx, edx
xor ecx, 0xc896a5aa
mov eax, 0xffffffff
xor eax, 0xc896a5aa
and edx, eax
mov eax, 0xf0107466
xor eax, 0xf0107464
imul eax, edx
sub eax, ecx
mov ecx, 0xa00237a3
xor ecx, 0x7aabc9fb
xor edx, edx
div ecx
mov ecx, 0xbbc9157f
xor ecx, 0xb5387b19
cmp eax, ecx
ja 0x14003fb1a
mov eax, dword [0x14024cc18]
xor eax, 0xe6524f9e
xor edx, edx
div dword [0x14024cc1c]
mov r8d, 0xffffffff
xor r8d, 0xab4aa16
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xab4aa16
or eax, 0xab4aa16
imul eax, edx
add eax, ecx
mov ecx, 0xe4b44203
xor edx, edx
div ecx
or eax, 0x6229ce59
mov dword [rsp + 0x6c], eax
call fcn.14003cf0c
mov r8, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa0]
mov rdx, rax
mov eax, dword [rsp + 0x6c]
mov qword [rsp + 0x70], rdx
mov r9, qword [r8]
mov qword [rsp + 0x78], r9
mov rdx, qword [rcx]
mov qword [rsp + 0x80], rdx
mov r10, r9
sub r10, rdx
cmovl rdx, r9
add r8, 8
mov qword [rsp + 0x88], r8
add rcx, 8
mov qword [rsp + 0x90], rcx
xor ecx, ecx
test rdx, rdx
cmovg rcx, rdx
mov qword [rsp + 0x98], rcx
cmp eax, 0x862572f2
ja 0x14003fb1a
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x14003f577
mov rcx, qword [rsp + 0x98]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x58], rax
cmp rax, rcx
je 0x14003f989
mov eax, dword [0x14024cc20]
mov ecx, dword [0x14024cc24]
mov edx, 0xcfa442b3
xor edx, 0x8b3cbc7
xor ecx, edx
and eax, ecx
mov ecx, 0x4183fc24
xor ecx, 0xbe7c03db
mov edx, eax
xor edx, ecx
and edx, 0xe6526e38
mov r8d, 0xffffffff
xor r8d, 0xe6526e38
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xe6526e38
or eax, 0xe6526e38
imul eax, edx
add eax, ecx
xor eax, 0xffffffff
mov ecx, 0x6cb4aaf2
xor ecx, 0x216c612e
mov edx, 0x10e36ad5
xor edx, 0xef1c952a
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x9e5d1c15
or eax, ecx
mov ecx, 0x90aadd75
xor ecx, 0xef7c160
or ecx, edx
mov edx, 0x42cc0715
xor edx, 0xbd33f8ea
xor eax, edx
and eax, ecx
mov ecx, 0xb65705ad
xor ecx, 0x125f15da
add eax, ecx
mov ecx, 0x3960fe95
xor ecx, 0x90d29723
cmp eax, ecx
je 0x14003fb23
mov r8, qword [rsp + 0x78]
mov eax, dword [str.6_XM]
mov ecx, dword [0x14024cc2c]
mov edx, 0x5fe1b9d2
xor edx, 0x4f023972
xor ecx, edx
add eax, ecx
mov ecx, eax
and ecx, 0x13a7db51
mov edx, 0xfb62d16c
xor edx, 0x49d2e93
xor ecx, edx
add eax, 0x13a7db51
mov edx, 0x40b4107b
xor edx, 0x40b4107a
add eax, edx
add eax, ecx
mov ecx, 0x42e5ac6f
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x58]
mov ecx, 0xf38c8368
xor ecx, 0x5a70bab5
add eax, ecx
mov ecx, 0xe79214ce
xor ecx, 0x317c9968
cmp rdx, r8
setl dl
mov byte [rsp + 0x57], dl
cmp eax, ecx
jae 0x14003f64d
mov al, byte [rsp + 0x57]
test al, 1
jne 0x14003f72e
jmp 0x14003f6df
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x78]
movabs rax, 0x9859c2217948aaa3
movabs r8, 0x9859c2217948aaa3
xor rax, r8
movabs r8, 0x78f005469f849831
movabs r9, 0x870ffab9607b67ce
xor r8, r9
sub rax, r8
sub rdx, rax
call fcn.14001284c
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x14003fb0a
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x88]
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rsp + 0x46], al
mov cl, al
sub cl, 0x3f
add cl, 0xbf
mov dl, 0xf3
xor dl, 0xcc
add cl, dl
xor edx, edx
sub dl, al
xor eax, eax
sub al, 0x20
add dl, al
mov al, 0x30
xor al, 0x30
sub al, dl
cmp cl, 0x1a
mov byte [rsp + 0x47], al
jb 0x14003f77a
mov al, byte [rsp + 0x46]
mov byte [rsp + 0x47], al
mov rax, qword [rsp + 0x70]
mov cl, byte [rsp + 0x47]
mov byte [rsp + 0x45], cl
mov cl, byte [rax]
mov dl, 0xcb
xor dl, 0xcb
xor eax, eax
cmp cl, dl
mov qword [rsp + 0x48], rax
jne 0x14003fb0a
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x80]
cmp rax, rcx
jl 0x14003f7d5
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffff
call fcn.14001284c
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x14003fb0a
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x90]
mov dl, byte [rsp + 0x45]
movzx edx, dl
mov qword [rsp + 0x38], rdx
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rsp + 0x43], al
mov dl, al
and dl, 0xbf
shl dl, 1
mov cl, al
xor cl, 0xbf
add cl, dl
add al, 0x20
cmp cl, 0x1a
mov byte [rsp + 0x44], al
jb 0x14003f81f
mov al, byte [rsp + 0x43]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x38]
mov cl, byte [rsp + 0x44]
movzx ecx, cl
movabs rdx, 0xc52868627a3e4120
sub rax, rdx
sub rax, rcx
movabs rcx, 0xcf79048d80a7620c
movabs rdx, 0xa516ceffa99232c
xor rcx, rdx
add rax, rcx
movabs rcx, 0x9c6863d16c1ba9f5
movabs rdx, 0x9c6863d16c1ba9f5
xor rcx, rdx
cmp rax, rcx
mov qword [rsp + 0x48], rax
jne 0x14003fb0a
mov eax, dword [0x14024cc30]
mov edx, dword [0x14024cc34]
mov ecx, 0xa66a6f5c
xor ecx, 0xa66a6f5c
sub ecx, eax
mov eax, 0x8acf8289
xor eax, 0x8acf8289
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0x3fbd1136
xor edx, edx
div ecx
mov ecx, 0xc41bf6ea
xor ecx, 0xe5b84c27
xor edx, edx
div ecx
mov edx, eax
mov ecx, edx
xor ecx, 0x7bf970fb
mov eax, 0xffffffff
xor eax, 0x7bf970fb
and edx, eax
mov eax, 0x8f9b87b9
xor eax, 0x8f9b87bb
imul eax, edx
sub eax, ecx
cmp eax, 0x552b581f
je 0x14003fb2c
mov eax, dword [0x14024cc38]
mov edx, dword [0x14024cc3c]
xor edx, 0x3d99a3ad
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
mov eax, 0x2a02a96d
xor eax, 0x2a02a96d
sub eax, ecx
mov ecx, eax
and ecx, 0xf92bf12b
shl ecx, 1
xor eax, 0xf92bf12b
add eax, ecx
sub eax, 0x89ee790b
mov ecx, 0x22e3513d
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x58]
mov ecx, 0xbe97f873
xor ecx, 0x9f333f24
mov r8, rdx
and r8, 1
shl r8, 1
movabs r9, 0x1a7a50631b6c390d
movabs r10, 0x1a7a50631b6c390c
xor r9, r10
xor rdx, r9
add rdx, r8
mov qword [rsp + 0x30], rdx
cmp eax, ecx
jae 0x14003f8ed
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
jmp 0x14003f577
mov eax, dword [0x14024cc40]
or eax, dword [0x14024cc44]
mov edx, 0xaed6f3d7
xor edx, 0x51290c28
mov ecx, eax
xor ecx, edx
mov r8d, 0xddf3078a
xor r8d, 0x220cf875
mov edx, eax
xor edx, r8d
or ecx, edx
and ecx, 0xa99011ba
xor ecx, 0xffffffff
mov edx, 0xa99011ba
and edx, 0xa99011ba
xor edx, 0xffffffff
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
and ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0x78eaacf
mov edx, 0x8d8e5460
xor edx, 0x8a00feaf
or ecx, edx
add eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x1f834ce0
mov edx, 0xffffffff
xor edx, 0x1f834ce0
and eax, edx
sub eax, ecx
mov ecx, 0x8b949541
xor ecx, 0xe2031325
cmp eax, ecx
jae 0x14003fb35
mov r10, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov ecx, dword [0x14024cc48]
xor ecx, 0x3ce2e08a
mov eax, dword [0x14024cc4c]
sub ecx, eax
mov eax, ecx
xor eax, 0x34b7c176
and ecx, 0x4b483e89
add ecx, ecx
sub ecx, eax
mov eax, ecx
xor eax, 0xda643009
or eax, 0x4984f56
xor ecx, 0x710
or ecx, 0xfb67b0a9
and eax, ecx
not eax
mov ecx, 0xa7958de6
mov r9, rdx
sub r9, r10
mov qword [rsp + 0x20], r9
mov r8, r9
not r8
movabs r11, 0x37ac488115c666e1
mov rsi, r8
and rsi, r11
movabs rbx, 0xc853b77eea39991e
mov rdi, r9
and rdi, rbx
or rsi, rdi
xor rdx, rsi
xor rdx, r11
mov r11, r10
not r11
or r9, r11
or r8, r10
and r9, r8
not r9
mov r8, rdx
and r8, r9
test rdx, rdx
sets dl
test r8, r8
setns r8b
add dl, r8b
inc dl
mov byte [rsp + 0x2f], dl
cmp eax, ecx
je 0x14003fb35
mov rax, qword [rsp + 0x20]
mov cl, byte [rsp + 0x2f]
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x14003fafe
jmp 0x14003fb0a
call fcn.140008c92
xor eax, eax
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
add rsp, 0xb0
pop rbx
pop rdi
pop rsi
ret
invalid
add ecx, ebp
invalid
invalid
invalid