Function at 0x180382280
Capabilities:
Encode data using xor

Disassembly:
imul ecx, eax, 0xde12e3fe
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa0
mov rdi, rdx
mov rsi, rcx
mov r15, rsi
add r15, 0xa8
mov cl, byte [rsi + 0xa8]
movzx eax, cl
test cl, cl
je 0x18038230d
jmp 0x1803822b0
sub eax, 1
je 0x180382456
jmp 0x1803822bb
jmp 0x1803822bd
mov eax, dword [0x18078ccf0]
or eax, dword [str.xcr]
xor eax, 0xbbe91bf9
xor eax, 0xf8ecd20b
sub eax, 0xe5851311
cmp eax, 0x832fe845
je 0x180382ab6
jmp 0x1803822e5
mov eax, dword [0x18078ccf8]
or eax, dword [0x18078ccfc]
and eax, 0x54d17e77
imul eax, eax, 0x1432a2f1
and eax, 0xc96d51f1
cmp eax, 0xc901733f
jae 0x1803822e5
jmp 0x18038245a
mov r12, rsi
add r12, 8
mov eax, dword [0x18078cd00]
imul eax, dword [0x18078cd04]
xor eax, 0x96fa544d
and eax, 0x9a896b79
or eax, 0x9c3ea28c
cmp eax, 0x420da61c
jb 0x180382ac7
jmp 0x18038233d
mov eax, dword [0x18078cd08]
or eax, dword [0x18078cd0c]
or eax, 0x8a2d3cfd
and eax, 0xe18b754f
sub eax, 0xeaac4c16
mov rbx, qword [rsi]
mov r8, rbx
add r8, 0x1c0
cmp eax, 0x301f1ff4
jbe 0x18038233d
jmp 0x18038236e
mov rcx, qword [r8]
mov rax, rcx
and rax, 1
cmp rax, 0
jne 0x1803828cc
mov eax, dword [0x18078cd10]
add eax, dword [0x18078cd14]
xor eax, 0x9cf3072e
or eax, 0xea199b
add eax, 0x9ccd40fd
cmp eax, 0x254ef12e
jb 0x180382ad8
mov eax, dword [0x18078cd18]
xor edx, edx
div dword [0x18078cd1c]
add eax, 0x75c46790
add eax, 0x65882741
imul edx, eax, 0x6f10137e
cmp rcx, 0xfffffffffffffffe
sete al
cmp edx, 0x3d5d525d
je 0x180382ad8
jmp 0x1803823db
test al, 1
jne 0x1803823e1
jmp 0x180382434
mov ecx, 7
int 0x29
mov eax, dword [0x18078cd20]
xor eax, dword [0x18078cd24]
or eax, 0x3751f90a
and eax, 0x4ab2decb
or eax, 0x690b12d8
cmp eax, 0xa27ca7b7
ja 0x180382ae5
jmp 0x180382410
mov eax, dword [0x18078cd28]
add eax, dword [0x18078cd2c]
or eax, 0x65ad2a9a
add eax, 0x90104ad6
xor eax, 0xc13e73db
cmp eax, 0xa4a444cc
ja 0x180382410
ud2
mov rdx, rcx
add rdx, 2
mov rax, rcx
lock cmpxchg qword [r8], rdx
mov rcx, rax
sete al
test al, 1
jne 0x1803827c2
jmp 0x180382371
ud2
mov rbx, rsi
add rbx, 0x30
mov eax, dword [0x18078cd30]
sub eax, dword [0x18078cd34]
and eax, 0xa65aa2d1
xor eax, 0xf56ccbe9
imul eax, eax, 0x2dab996d
cmp eax, 0x27d80b29
je 0x180382af6
jmp 0x18038248a
mov eax, dword [0x18078cd38]
add eax, dword [0x18078cd3c]
xor eax, 0xfc900ec3
and eax, 0x3cd40d52
mov ecx, 0x6897586d
xor edx, edx
div ecx
mov ebp, eax
mov rcx, rbx
mov rdx, rdi
call fcn.18063b610
mov cl, al
cmp ebp, 0x8ddd5294
jae 0x18038248a
jmp 0x1803824c2
mov eax, dword [0x18078cd40]
imul eax, dword [0x18078cd44]
and eax, 0xb29058aa
xor eax, 0xa2edaaee
or eax, 0xec664447
cmp eax, 0x78669d4a
jb 0x180382b12
mov eax, dword [0x18078cd48]
imul eax, dword [0x18078cd4c]
mov r8d, 0x50c664c8
xor edx, edx
div r8d
imul eax, eax, 0xb6c72351
and eax, 0x9214e015
cmp eax, 0x63d98e3a
je 0x180382b12
test cl, 1
jne 0x1803827bb
jmp 0x180382522
mov rcx, rbx
call fcn.180352570
mov rax, rsi
add rax, 8
mov r8, qword [rax]
movabs rax, 0x8000000000000005
cmp r8, rax
sete al
test al, 1
jne 0x18038230d
jmp 0x18038254e
movabs rcx, 0x8000000000000000
mov rax, r8
xor rax, rcx
mov ecx, dword [0x18078cd50]
or ecx, dword [0x18078cd54]
sub ecx, 0xdeb9a635
sub ecx, 0xa5979d6b
sub ecx, 0x16d2a253
cmp ecx, 0x5e76685e
ja 0x180382b1f
mov ecx, dword [0x18078cd58]
or ecx, dword [0x18078cd5c]
sub ecx, 0x8641def3
sub ecx, 0xa74f9cdf
or ecx, 0x68786674
mov rdx, rax
sub rdx, 5
mov edx, 5
cmovb rdx, rax
cmp ecx, 0xed87c63e
je 0x180382b1f
jmp 0x1803825c4
mov ecx, 8
mov rax, rdx
sub rax, 4
jb 0x180382665
jmp 0x1803825d8
sub rdx, 4
jne 0x180382676
jmp 0x1803825e4
mov rcx, rsi
add rcx, 0x10
mov eax, dword [0x18078cd60]
sub eax, dword [0x18078cd64]
xor eax, 0x1934941d
add eax, 0x935afda1
add eax, 0xdeb7533
cmp eax, 0x8245db6
je 0x180382b30
mov eax, dword [0x18078cd68]
xor edx, edx
div dword [0x18078cd6c]
mov r8d, 0xcc28063e
xor edx, edx
div r8d
and eax, 0xc60f5717
imul edx, eax, 0x575b018e
mov r8, qword [rcx]
movabs rax, 0x8000000000000002
cmp r8, rax
setl al
cmp edx, 0x62195ef9
jae 0x180382b30
jmp 0x180382656
mov ecx, 0x10
test al, 1
jne 0x18038230d
jmp 0x180382676
mov rax, rsi
add rax, 0x10
mov r8, qword [rax]
mov ecx, 0x10
jmp 0x180382676
mov eax, dword [0x18078cd70]
xor edx, edx
div dword [0x18078cd74]
imul eax, eax, 0xa23dde0b
add eax, 0x7cb03e65
sub eax, 0x7b89d307
cmp eax, 0x2dd8ace9
jbe 0x180382b41
mov eax, dword [0x18078cd78]
sub eax, dword [0x18078cd7c]
and eax, 0xd5092dbf
sub eax, 0xf270d759
imul edx, eax, 0x386a10ec
cmp r8, 0
sete al
cmp edx, 0x64cded3a
je 0x180382b41
test al, 1
jne 0x18038230d
jmp 0x1803826d8
mov eax, dword [0x18078cd80]
xor eax, dword [0x18078cd84]
xor eax, 0x6b0d53e2
and eax, 0x305cd7d6
and eax, 0x8c1a688
cmp eax, 0xaab80937
je 0x180382b52
mov eax, dword [0x18078cd88]
add eax, dword [0x18078cd8c]
imul eax, eax, 0x1855929b
imul edx, eax, 0x15088648
add edx, 0xf12150f7
mov rax, rsi
add rax, rcx
cmp edx, 0x459d4097
je 0x180382b52
jmp 0x180382730
mov rcx, qword [rax + 8]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
jmp 0x18038230d
mov eax, dword [0x18078cd90]
or eax, dword [0x18078cd94]
or eax, 0x6afc742c
and eax, 0xdbc20fb7
mov r9d, 0xb7379cde
xor edx, edx
div r9d
cmp eax, 0x648404d8
ja 0x180382b5f
mov eax, dword [0x18078cd98]
or eax, dword [0x18078cd9c]
imul eax, eax, 0x99cced07
mov r9d, 0xc13697ee
xor edx, edx
div r9d
or eax, 0x2dbf36b9
mov byte [r15], r8b
cmp eax, 0xdf34db69
jae 0x180382b5f
and cl, 1
movzx eax, cl
add rsp, 0xa0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov r8b, 3
mov cl, 1
jmp 0x180382747
mov eax, dword [0x18078cda0]
or eax, dword [0x18078cda4]
and eax, 0x6a0e2984
imul eax, eax, 0x8334a901
add eax, 0xb5c22b9c
cmp eax, 0xd56b0473
ja 0x180382b6f
jmp 0x1803827eb
mov eax, dword [0x18078cda8]
mov ecx, dword [0x18078cdac]
sub eax, ecx
imul ebp, eax, 0xd389097b
add ebp, 0xeed2e1c3
or ebp, 0x78a037f1
mov rcx, rbx
sub rcx, 0xffffffffffffff80
mov r14d, 1
lock xadd qword [rbx + 0x88], r14
mov rdx, r14
call fcn.180403270
and r14, 0x1f
imul rdx, r14, 0x28
mov rcx, rax
add rcx, rdx
movabs rdx, 0x8000000000000002
mov qword [rcx], rdx
cmp ebp, 0x7f067fa2
jae 0x1803827eb
jmp 0x18038284e
mov qword [rcx + 8], 0
mov edx, 1
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], 0
mov edx, 1
mov rcx, r14
shl rdx, cl
lock or qword [rax + 0x510], rdx
add rbx, 0x100
mov rcx, rbx
call fcn.18063cf70
movabs rax, 0x8000000000000005
mov qword [r12], rax
lea rcx, [rsp + 0x28]
lea r9, [0x1806c46b0]
mov edx, 0xa
xor r8d, r8d
call fcn.18063b490
mov rcx, rsi
add rcx, 0x30
lea rdx, [rsp + 0x28]
mov r8d, 0x78
call fcn.1806a7400
jmp 0x18038245a
mov eax, dword [0x18078cdb0]
xor edx, edx
div dword [0x18078cdb4]
mov ecx, 0x14f91041
xor edx, edx
div ecx
and eax, 0x799f8acb
or eax, 0x9c2340a7
cmp eax, 0x4fbc87dd
je 0x180382bb6
mov eax, dword [0x18078cdb8]
and eax, dword [0x18078cdbc]
sub eax, 0x1072ea97
sub eax, 0x7d073d8e
imul eax, eax, 0x3ebbee1b
movabs rcx, 0x8000000000000002
mov qword [r12], rcx
cmp eax, 0xb452bb73
ja 0x180382bb6
jmp 0x18038292f
mov eax, dword [0x18078cdc0]
add eax, dword [0x18078cdc4]
imul eax, eax, 0x2c4e83ba
sub eax, 0x5092e63
add eax, 0xbdcd9e97
cmp eax, 0x626fd488
jae 0x180382bd5
jmp 0x180382958
mov eax, dword [0x18078cdc8]
xor eax, dword [0x18078cdcc]
sub eax, 0x385b1836
or eax, 0x8fffdba4
sub eax, 0x270a3ee2
mov qword [rsi + 0x10], 0
mov ecx, 1
mov qword [rsi + 0x18], rcx
mov qword [rsi + 0x20], 0
cmp eax, 0xead18cf9
je 0x180382958
jmp 0x180382995
mov eax, dword [0x18078cdd0]
sub eax, dword [0x18078cdd4]
xor eax, 0xaeb3f457
or eax, 0x810770be
sub eax, 0x31c47c54
cmp eax, 0x792bb9dc
je 0x180382bfb
mov eax, dword [0x18078cdd8]
xor edx, edx
div dword [0x18078cddc]
add eax, 0x3a5e42ad
and eax, 0xa004760d
or eax, 0x8887a50c
mov rdi, qword [rsi]
mov rcx, rdi
add rcx, 0x1c8
lock dec qword [rcx]
sete cl
cmp eax, 0x270b3b43
jbe 0x180382bfb
test cl, 1
jne 0x1803829fe
jmp 0x180382a3c
mov rcx, rdi
add rcx, 0x80
mov edx, 1
lock xadd qword [rdi + 0x88], rdx
call fcn.180403270
movabs rcx, 0x200000000
lock or qword [rax + 0x510], rcx
add rdi, 0x100
mov rcx, rdi
call fcn.18063cf70
mov rax, qword [rsi]
lock dec qword [rax]
sete al
mov r8b, 1
xor ecx, ecx
test al, 1
jne 0x180382a54
jmp 0x180382747
mov eax, dword [0x18078cde0]
sub eax, dword [0x18078cde4]
or eax, 0xf057423b
sub eax, 0x86074ed7
xor eax, 0x92058dc8
cmp eax, 0x380b8203
jb 0x180382c18
jmp 0x180382a7c
mov edi, dword [0x18078cde8]
sub edi, dword [0x18078cdec]
or edi, 0x18a38ec2
and edi, 0xd17ae77c
add edi, 0x660421c2
mov rcx, rsi
call fcn.1804b8d50
cmp edi, 0x1150cde0
je 0x180382a7c
jmp 0x180382aac
mov r8b, 1
xor ecx, ecx
jmp 0x180382747
mov ebx, 0xe92cc83b
cmp ecx, eax
sub al, 0xe9
invalid
clc
mov al, 0xb3
push rsp
stosb byte [rdi], al
xchg ecx, eax
invalid
xchg dword [0x1b5ddf94a], edx
in al, dx
jmp 0x18030eecd
sub dword [rbp - 0xe], edx
in al, 0xb4
adc dword [rcx], ebx
sbb esp, ecx
ffree st(1)
jmp 0x18038240e
jnp 0x180382b72
cmp edi, ebp
sub eax, 0x6c049d84
and al, 0x48
mov ecx, ebx
mov rdx, rdi
call fcn.18063b610
jmp 0x180382488
test eax, eax
jrcxz 0x180382ab7
sub bl, al
xor ebp, ecx
retf 0xfff9
xor eax, dword [rsi - 0x19fd73d1]
fisubr dword [rdx + 0x6fc88a14]
jmp 0x180382588
test eax, 0x9105b8df
mov esi, 0xf8e759b4
stosb byte [rdi], al
iretd
jne 0x180382b62
insb byte [rdi], dx
xchg ebp, eax
cmp eax, dword [0x1450791fe]
mov byte [rax], dl
jmp 0x18038269f
adc bh, byte [rbx + 0x6c]
pop rax
mov esp, 0xe99ff142
lahf
sti
invalid
invalid
or dl, byte [rdx - 0x71]
invalid
push rbx
and byte [rdi], al
in al, 0xa7
mov ecx, 0x2f5ad6b8
stosb byte [rdi], al
mov rcx, rbx
sub rcx, 0xffffffffffffff80
mov r14d, 1
lock xadd qword [rbx + 0x88], r14
mov rdx, r14
call fcn.180403270
and r14, 0x1f
imul rcx, r14, 0x28
add rax, rcx
movabs rcx, 0x8000000000000002
mov qword [rax], rcx
jmp 0x1803827e9
insb byte [rdi], dx
jle 0x180382bd7
push rdi
mov al, 0x3e
cld
invalid
insb byte [rdi], dx
or dl, cl
test eax, 0x7a589add
shr dword [rcx + 0x7a589add], 1
mov qword [rsi + 0x10], 0
mov eax, 1
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], 0
jmp 0x180382956
cmp ecx, esp
cmpsd dword [rsi], dword [rdi]
xor eax, 0x48ef033b
mov eax, dword [rsi]
add rax, 0x1c8
lock dec qword [rax]
sete al
jmp 0x1803829bb
sbb dword [rbx + 0x40], esp
and ah, al
sbb dh, byte [rbx - 0x7f]
pop rbp
or bh, al
push rsp
mov rcx, rsi
call fcn.1804b8d50
jmp 0x180382a7a