Function at 0x140039ab0
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push rsi
push rdi
sub rsp, 0x118
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xb8], rcx
call fcn.14003a70e
mov rcx, rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xc0], rcx
movabs rcx, 0x6e9ab3f5e23e2ec2
movabs rdx, 0x6e9ab3f5e23e2ec6
xor rcx, rdx
cqo
idiv rcx
mov rcx, rax
mov rax, qword [rsp + 0xc8]
mov r8d, 4
cqo
idiv r8
mov qword [rsp + 0xd0], rdx
mov rax, rcx
shl rax, 2
mov qword [rsp + 0xd8], rax
cvtsi2sd xmm1, rcx
movsd xmm0, qword [0x1402254e8]
mulsd xmm1, xmm0
movsd qword [rsp + 0xe0], xmm1
cvtsi2sd xmm0, rax
ucomisd xmm1, xmm0
sete al
setnp cl
and al, cl
mov byte [rsp + 0xef], al
subsd xmm0, xmm1
movsd qword [rsp + 0xf0], xmm0
mov rdx, 0xffffffffffffffff
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0xf8], rdx
mov dword [rsp + 0x104], ecx
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0xf8]
mov ecx, dword [rsp + 0x104]
mov rdx, qword [rsp + 0x108]
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xac], ecx
mov qword [rsp + 0xb0], rax
mov eax, dword [0x140217d60]
mov edx, dword [0x140217d64]
xor edx, 0xd7d7717f
mov r8d, eax
xor r8d, edx
xor r8d, 0xffffffff
mov ecx, edx
and ecx, r8d
shl ecx, 1
sub ecx, edx
sub eax, ecx
imul eax, eax, 0x6b3ef05b
mov ecx, 0x171e43be
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov r8d, 0xd069740b
xor r8d, 0x2f968bf4
mov edx, ecx
xor edx, r8d
or eax, edx
and eax, 0x1a5ac8c3
mov edx, 0x356fce66
xor edx, 0xca903199
xor eax, edx
mov edx, 0xffffffff
xor edx, 0x1a5ac8c3
mov r8d, 0xffffffff
xor r8d, 0x1a5ac8c3
or edx, r8d
mov r8d, 0x6c63dba
xor r8d, 0xf939c245
xor ecx, r8d
mov r8d, 0x9f8705ef
xor r8d, 0x6078fa10
xor edx, r8d
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
cmp eax, 0x5f5ec994
je 0x14003a6d8
mov eax, dword [0x140217d68]
mov r8d, dword [0x140217d6c]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
mov r9d, 0x746f0079
xor r9d, 0x8b90ff86
xor ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
add eax, 0xf13cb6e4
mov ecx, eax
xor ecx, 0x6aae7b92
mov edx, 0xffffffff
xor edx, 0x6aae7b92
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0xc1f914fd
xor ecx, 0x69f0fda8
add eax, ecx
cmp eax, 0x14fb351
jb 0x14003a6d8
mov al, byte [rsp + 0xef]
test al, 1
jne 0x140039d47
jmp 0x140039cf6
movsd xmm0, qword [rsp + 0xf0]
call fcn.1402158d0
movaps xmm1, xmm0
movsd xmm0, qword [rsp + 0xe0]
movsd qword [rsp + 0x98], xmm1
call fcn.1402158d0
movsd xmm1, qword [rsp + 0x98]
movsd xmm2, qword [0x1402254f0]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x140039d47
call fcn.140008bc6
jmp 0x140039f03
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xd8]
cmp rax, rcx
jge 0x140039fb8
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xc8]
mov dword [rsp + 0x114], 0
cmp rax, rcx
jl 0x140039dbc
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xc8]
movabs rax, 0x3813150c174712f8
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x3813150c174712f8
sub rdx, rax
call fcn.1400153d3
jmp 0x140039f03
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xb8]
add rax, rcx
mov qword [rsp + 0x88], rax
xor eax, eax
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x80], rax
cmp rax, 4
je 0x140039ef2
mov ecx, dword [0x140217d70]
mov eax, 0xc891c32e
xor eax, 0x95b8cfc9
xor ecx, eax
mov eax, dword [0x140217d74]
mov edx, 0xa7f96ac8
xor edx, 0x78020a42
xor eax, edx
imul ecx, eax
mov edx, 0x1b44ab9c
xor edx, 0xe4bb5463
mov eax, ecx
xor eax, edx
and eax, 0xe2661c98
mov edx, 0xffffffff
xor edx, 0xe2661c98
and ecx, edx
sub ecx, eax
or ecx, 0xb58d7296
mov edx, 0xffffffff
xor edx, 0x7645c09d
mov eax, ecx
xor eax, edx
and eax, ecx
cmp eax, 0x866cd502
jae 0x14003a6e1
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov eax, dword [0x140217d78]
mov r8d, 0x4762f77a
xor r8d, 0x78ef16bd
xor eax, r8d
xor eax, dword [0x140217d7c]
imul eax, eax, 0xc00569f4
xor eax, 0x9879b125
add eax, 0x4b7cf4aa
sub eax, 0xe2ab4fa5
sub eax, 0x4b7cf4aa
mov dl, byte [rdx + rcx]
mov byte [rsp + rcx + 0x114], dl
mov rdx, 0xffffffffffffffff
xor rdx, 1
xor r8d, r8d
sub r8, 1
sub rdx, r8
sub rcx, rdx
mov qword [rsp + 0x78], rcx
cmp eax, 0x722dde19
jbe 0x14003a6e1
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x90], rax
jmp 0x140039de1
mov rax, qword [rsp + 0xc0]
cmp byte [rax], 0
je 0x140039f0f
xor eax, eax
mov qword [rsp + 0x70], rax
jmp 0x14003a60f
mov rdx, qword [rsp + 0xb0]
mov r8d, dword [rsp + 0xac]
mov rax, qword [rsp + 0xa0]
mov r9d, dword [rsp + 0x114]
imul r10d, r9d, 0xcc9e2d51
mov ecx, 0x51f18cc0
xor ecx, 0x51f18cd1
shr r10d, cl
mov ecx, r10d
imul r9d, r9d, 0x16a88000
or ecx, r9d
movabs r9, 0xabec9c6f7574512c
movabs r10, 0xabec9c6f75745128
xor r9, r10
add rax, r9
imul ecx, ecx, 0x1b873593
xor ecx, r8d
rol ecx, 0xd
mov r8d, 0xbb88d0f9
xor r8d, 0xbb88d0fc
imul ecx, r8d
mov r8d, 0x71ec4fd
xor r8d, 0xe14aaf99
add ecx, r8d
add rdx, 4
mov qword [rsp + 0xf8], rdx
mov dword [rsp + 0x104], ecx
mov qword [rsp + 0x108], rax
jmp 0x140039b8b
mov eax, dword [0x140217d80]
mov ecx, dword [0x140217d84]
mov edx, 0xc5a0cf73
xor edx, 0x5c8957fe
sub eax, edx
sub eax, ecx
add eax, 0x9929988d
mov ecx, 0xbdb90c98
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0x16fd2c69
xor ecx, 0xffffffff
or eax, 0x16fd2c69
and eax, ecx
mov ecx, 0xac3f80ea
xor edx, edx
div ecx
cmp eax, 0x5f442ec8
jae 0x14003a6ea
mov r8, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xd0]
mov eax, dword [0x140217d88]
xor eax, 0x8295fc86
xor edx, edx
div dword [0x140217d8c]
mov rdx, qword [rsp + 0xc8]
mov r9d, eax
xor eax, eax
sub eax, 0x60a27be9
add r9d, eax
mov r10d, 0x21893151
xor r10d, 0xde76ceae
mov eax, r9d
xor eax, r10d
xor r9d, 0xffffffff
and eax, r9d
mov r9d, 0xffffffff
xor r9d, 0xda44b5c3
mov r10d, 0xffffffff
xor r10d, 0xda44b5c3
and r9d, r10d
xor eax, 0xffffffff
xor r9d, 0xffffffff
and eax, r9d
mov r10d, eax
xor r10d, 0xffffffff
and r10d, 0xd06a710c
mov r11d, 0x8e550703
xor r11d, 0x5e3f760f
mov r9d, 0x56ac99eb
xor r9d, 0xa9536614
xor r11d, r9d
mov r9d, eax
and r9d, r11d
imul r9d, r10d
mov r10d, eax
and r10d, 0xd06a710c
or eax, 0xd06a710c
imul eax, r10d
add eax, r9d
add rcx, r8
cmp rcx, rdx
setl cl
mov byte [rsp + 0x6f], cl
cmp eax, 0x9c7fe750
je 0x14003a007
mov rax, qword [rsp + 0xd0]
xor ecx, ecx
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x60], rax
jmp 0x14003a0fb
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], eax
mov eax, dword [0x140217d90]
or eax, dword [0x140217d94]
mov ecx, 0x4c53d386
xor edx, edx
div ecx
sub eax, 0xf8e82989
mov r8d, 0xffffffff
xor r8d, 0xa19af975
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xa19af975
or eax, 0xa19af975
imul eax, edx
add eax, ecx
cmp eax, 0x23f603b3
jbe 0x14003a6f3
mov rcx, qword [rsp + 0x50]
mov eax, dword [0x140217d98]
xor eax, 0x4413be7
xor edx, edx
div dword [0x140217d9c]
mov edx, 0x227e4c6e
xor edx, 0xec6f0e1f
mov r8d, 0xb633b1b8
xor r8d, 0x49cc4e47
xor edx, r8d
add eax, edx
add eax, 1
mov r9d, 0xffffffff
xor r9d, 0xb2ba596d
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
mov r9d, 0xf5f307cb
xor r9d, 0xa0cf834
xor edx, r9d
imul edx, r8d
mov r9d, 0xcc8c783b
xor r9d, 0x7e362156
mov r8d, eax
and r8d, r9d
or eax, 0xb2ba596d
imul eax, r8d
add eax, edx
imul eax, eax, 0xebc94834
cmp rcx, 0
setg cl
mov byte [rsp + 0x4f], cl
cmp eax, 0x5f8c8219
jb 0x14003a6f3
mov al, byte [rsp + 0x4f]
test al, 1
jne 0x14003a210
jmp 0x14003a40e
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xa0]
movabs r8, 0x7b5556e5400f8c01
movabs rax, 0x84aaa91abff073fe
xor r8, rax
mov rax, rdx
add rax, r8
mov qword [rsp + 0x38], rax
add rax, rcx
mov qword [rsp + 0x40], rax
xor rdx, 0xffffffffffffffff
add rdx, 0
add rdx, 1
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
movabs r8, 0x69b95dec2e1260c1
xor rcx, r8
or rax, rdx
movabs rdx, 0x69b95dec2e1260c1
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0xf4fcc5794cfee1f
movabs rdx, 0xf4fcc5794cfee1f
xor rcx, rdx
cmp rax, rcx
jge 0x14003a2b7
call fcn.140008bc6
xor eax, eax
mov qword [rsp + 0x70], rax
jmp 0x14003a60f
mov eax, dword [0x140217da0]
imul eax, dword [0x140217da4]
mov ecx, 0xc159d8d8
xor ecx, 0xb106ac8e
xor edx, edx
div ecx
or eax, 0x6d4085b5
mov ecx, eax
add ecx, 1
mov edx, 0xaffca4fd
xor edx, 0x50035b02
xor eax, edx
or eax, 0x5fd2739
add eax, ecx
mov ecx, 0xd0e8329d
xor ecx, 0xb939236c
cmp eax, ecx
jae 0x14003a6fc
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x140217da8]
xor edx, edx
div dword [0x140217dac]
mov dl, byte [rsp + 0x6f]
mov r10d, 0xffffffff
xor r10d, 0x9beac0c1
mov r9d, eax
and r9d, r10d
mov r8d, eax
or r8d, r10d
xor r8d, 0xffffffff
imul r8d, r9d
mov r10d, 0x99e3225b
xor r10d, 0x209e29a
mov r9d, eax
and r9d, r10d
mov r10d, 0x190450c2
xor r10d, 0x82ee9003
or eax, r10d
imul eax, r9d
add eax, r8d
mov r8d, 0xb489f4ff
xor r8d, 0x504a5cc8
and eax, r8d
imul eax, eax, 0x6f29a873
cmp rcx, 0xffffffffffffffff
setg cl
and cl, dl
mov byte [rsp + 0x37], cl
cmp eax, 0xa51eda9d
ja 0x14003a6fc
mov al, byte [rsp + 0x37]
test al, 1
jne 0x14003a3d1
jmp 0x14003a3a5
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0xc8]
mov rdx, rax
and rdx, 0xffffffffffffffff
or rax, 0xffffffffffffffff
add rdx, rax
call fcn.1400153d3
xor eax, eax
mov qword [rsp + 0x70], rax
jmp 0x14003a60f
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xb8]
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x58]
mov ecx, 0x40401f78
xor ecx, 0x40401f70
shl r9d, cl
mov ecx, r9d
movzx edx, byte [rdx + r8]
or ecx, edx
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x60], rax
jmp 0x14003a0fb
mov rcx, qword [rsp + 0xc0]
xor eax, eax
cmp byte [rcx], 0
mov qword [rsp + 0x70], rax
jne 0x14003a60f
mov ecx, dword [rsp + 0xac]
mov rax, qword [rsp + 0xc8]
mov esi, dword [rsp + 0x58]
imul edi, esi, 0xcc9e2d51
shr edi, 0x11
mov r9d, 0xffffffff
xor r9d, 0x16a88000
mov r8d, esi
and r8d, r9d
mov edx, esi
or edx, r9d
mov r9d, 0xa72d0a1a
xor r9d, 0x58d2f5e5
xor edx, r9d
imul edx, r8d
mov r9d, 0xa6c07011
xor r9d, 0xb068f011
mov r8d, esi
and r8d, r9d
or esi, 0x16a88000
imul esi, r8d
add esi, edx
mov edx, edi
xor edx, 0xffffffff
mov r10d, esi
xor r10d, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0xbe2bb867
mov r9d, edx
and r9d, 0xbe2bb867
and edi, r8d
mov r11d, r10d
and r11d, 0xbe2bb867
and esi, r8d
or r9d, edi
or r11d, esi
xor r9d, r11d
or edx, r10d
mov r10d, 0xeaeb8fc0
xor r10d, 0x1514703f
xor edx, r10d
or r8d, 0xbe2bb867
and edx, r8d
or r9d, edx
mov r10d, 0xffffffff
xor r10d, 0x1b873593
mov r8d, r9d
and r8d, r10d
mov edx, r9d
or edx, r10d
xor edx, 0xffffffff
imul edx, r8d
mov r8d, r9d
and r8d, 0x1b873593
or r9d, 0x1b873593
imul r9d, r8d
add r9d, edx
mov r8d, eax
mov eax, r9d
xor eax, 0xffffffff
and eax, 0xa0b8213
mov r10d, 0xffffffff
xor r10d, 0xa0b8213
and r9d, r10d
mov edx, r8d
xor edx, 0xffffffff
and edx, 0xa0b8213
and r8d, r10d
or eax, r9d
or edx, r8d
xor eax, edx
xor eax, ecx
mov dword [rsp + 0x30], eax
mov ecx, 0xafdd063d
xor ecx, 0xafdd062d
shr eax, cl
mov ecx, dword [rsp + 0x30]
xor eax, ecx
imul eax, eax, 0x85ebca6b
mov r8d, eax
shr r8d, 0xd
xor r8d, eax
mov edx, 0x73dfbb9a
xor edx, 0xb16d15af
mov eax, 0xcc9ea6d1
xor eax, 0x3361592e
xor edx, eax
mov ecx, r8d
and ecx, edx
mov eax, r8d
or eax, edx
xor eax, 0xffffffff
imul eax, ecx
mov ecx, r8d
and ecx, 0xc2b2ae35
or r8d, 0xc2b2ae35
imul r8d, ecx
add r8d, eax
mov ecx, r8d
shr ecx, 0x10
mov eax, ecx
and eax, eax
mov edx, 0x17654e19
xor edx, 0xe89ab1e6
xor eax, edx
and eax, r8d
xor eax, 0xffffffff
mov edx, r8d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
and ecx, edx
mov edx, 0xaa21d77c
xor edx, 0x55de2883
xor ecx, edx
mov edx, 0x666725e6
xor edx, 0x9998da19
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov eax, eax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov ecx, dword [0x140217db0]
mov edx, dword [0x140217db4]
mov eax, 0xb4e68db5
xor eax, 0x4b1cf50d
xor edx, eax
xor edx, 0xffffffff
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0xfdcc3846
xor ecx, 0x6b39e09b
or eax, ecx
mov ecx, 0xafca87ef
xor edx, edx
div ecx
mov ecx, 0xffffffff
xor ecx, 0xdcbd1b40
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0x17a1be13
xor ecx, 0x55a248d7
cmp eax, ecx
jbe 0x14003a705
mov eax, dword [0x140217db8]
mov ecx, dword [0x140217dbc]
add eax, 0x62e51297
sub eax, ecx
mov ecx, 0xe6678256
xor ecx, 0x848290c1
sub eax, ecx
mov ecx, 0x885e72fe
xor ecx, 0x2dbb4ef4
or eax, ecx
mov ecx, 0x4519244b
xor ecx, 0x598d42aa
add eax, ecx
add eax, 0x4a45ff04
mov ecx, 0xb26e335a
xor ecx, 0xdbc1196e
cmp eax, ecx
ja 0x14003a677
mov rax, qword [rsp + 0x28]
add rsp, 0x118
pop rdi
pop rsi
ret
lodsd eax, dword [rsi]
xchg edx, eax
jmp 0x140039c6d
jmp 0x14003a74c
lea esp, [rdx + 0x14]
sub cl, 0x14
stc
invalid
fdivr st(3), st(0)
rol dword [rdi], 1
jmp 0x14003a161
cwde
add al, 0x85
stosd dword [rdi], eax
jmp 0x14003a304
mov al, 0x92
mov ebp, 0xff69e9ef
invalid
cmp eax, 0
jge 0x14003a7b3
mov r8, qword [rsp + 0x40]
movabs rax, 0xabc8693f1f073fa5
mov rdx, r8
sub rdx, rax
movabs rax, 0x22827d3026c93b4c
movabs rcx, 0xdd7d82cfd936c4b3
xor rax, rcx
add rdx, rax
movabs rax, 0xc798dee92354da7a
movabs rcx, 0x6c50b7d63c53e5df
xor rax, rcx
add rdx, rax
xor eax, eax
mov ecx, eax
call fcn.14002180c
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x14003a87a
mov eax, dword [0x140217dc0]
add eax, dword [0x140217dc4]
sub eax, 0x7d2446e0
mov ecx, 0x2fe33b77
xor ecx, 0x9a00b44b
xor edx, edx
div ecx
mov edx, eax
and edx, 0xa6fafa80
mov ecx, 0x6c07c93a
xor ecx, 0x6c07c938
imul ecx, edx
add eax, 0xa6fafa80
sub eax, ecx
cmp eax, 0x54c0c6ca
jb 0x14003a884
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
mov ecx, dword [0x140217dc8]
xor ecx, 0x7ff83ad9
xor ecx, dword [0x140217dcc]
and ecx, 0xb41a57b7
add ecx, 0x1b2524ec
mov r8d, 0xffffffff
xor r8d, 0x725fd686
add ecx, r8d
add ecx, 1
mov dword [rsp + 0x24], ecx
mov r8, qword [rax + 8]
mov rcx, r8
add rcx, 8
xor eax, eax
cmp r8, 0
cmove rcx, rax
call fcn.140039ab0
mov rcx, rax
mov eax, dword [rsp + 0x24]
mov qword [rsp + 0x28], rcx
cmp eax, 0x66db7276
ja 0x14003a7fb
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
jmp 0x14003a87a
mov rax, qword [rsp + 0x30]
add rsp, 0x48
ret
invalid
jne 0x14003a881
jmp 0x14003a7fb