Function at 0x180249040
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov rsi, r8
mov rdi, rdx
mov r14, rcx
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r13, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r8, rsp
mov eax, 0x10
call fcn.18045a590
sub rsp, rax
mov rbx, rsp
mov eax, dword [0x18051f4e0]
or eax, dword [0x18051f4e4]
mov ecx, 0x9db3d1de
xor edx, edx
div ecx
or eax, 0x1ca1a21f
mov ecx, 0x84bd75c4
xor edx, edx
div ecx
cmp eax, 0x7c47ffbd
jae 0x18024972f
jmp 0x1802490c4
mov eax, dword [0x18051f4e8]
mov ecx, dword [0x18051f4ec]
imul eax, ecx
xor eax, 0x7be03489
mov ecx, 0x859f4ad1
imul rax, rcx
shr rax, 0x3f
imul ecx, eax, 0xb53731c6
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r15, rsp
mov r12, rdi
add r12, 0x68
movzx eax, byte [rdi + 0x68]
cmp ecx, 0x9dd15758
ja 0x1802490c4
test eax, eax
je 0x180249128
jmp 0x180249114
sub eax, 1
je 0x1802496f7
jmp 0x18024911f
mov qword [rbp - 8], r14
jmp 0x180249201
mov qword [rbp - 0x28], rsi
mov qword [rbp], r8
mov eax, dword [0x18051f4f0]
or eax, dword [0x18051f4f4]
or eax, 0xc04f7644
mov ecx, 0x557d1cdc
xor edx, edx
div ecx
xor eax, 0x3aea4220
cmp eax, 0x4bece451
jae 0x18024973c
jmp 0x18024915c
mov esi, dword [0x18051f4f8]
xor esi, dword [0x18051f4fc]
add esi, 0x376fded3
add esi, 0x7885d61b
and esi, 0x9b62810d
mov rax, qword [rdi]
mov qword [r15], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [r15 + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [r15 + 0x18], rax
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
call fcn.18041bfa0
add rsp, 0x20
mov rdx, qword [rbx]
cmp esi, 0x1c3c1fe8
je 0x18024915c
jmp 0x1802491b8
mov r15, qword [rbx + 8]
cmp rdx, 0xffffffffffffffff
sete al
test al, 1
jne 0x1802491f0
jmp 0x1802491c9
mov rbx, rdi
add rbx, 0x20
mov qword [rdi + 0x20], rdx
mov qword [rbp - 8], r14
mov qword [rdi + 0x28], r15
mov rsi, qword [rbp - 0x28]
mov r14, rdi
add r14, 0x60
mov byte [rdi + 0x60], 0
jmp 0x1802492ee
cmp r15, 0
setne al
mov esi, 2
jmp 0x1802496d4
mov r14, rdi
add r14, 0x60
mov al, byte [r14]
mov ecx, dword [0x18051f500]
add ecx, dword [0x18051f504]
sub ecx, 0xba673304
sub ecx, 0xfcf9312c
or ecx, 0x6bd18529
cmp ecx, 0x6c2edc35
jb 0x18024977a
jmp 0x180249237
mov ecx, dword [0x18051f508]
sub ecx, dword [0x18051f50c]
imul ecx, ecx, 0x7e7ba338
add ecx, 0xab2cfa43
or ecx, 0x4a5535da
mov rbx, rdi
add rbx, 0x20
cmp ecx, 0x83d01303
je 0x180249237
test al, al
je 0x1802492db
jmp 0x18024926a
sub al, 1
je 0x1802493dc
jmp 0x180249274
mov eax, dword [0x18051f510]
xor eax, dword [0x18051f514]
and eax, 0x93da91dd
xor eax, 0x7b62e25a
mov ecx, 0x6490c7bf
xor edx, edx
div ecx
cmp eax, 0x17ea17b8
ja 0x18024978b
jmp 0x1802492a0
mov ecx, dword [0x18051f518]
sub ecx, dword [0x18051f51c]
sub ecx, 0xedfe1d29
sub ecx, 0xaaab32a5
sub ecx, 0x24b311f8
mov rax, rdi
add rax, 0x58
cmp ecx, 0x66f61dc8
jae 0x1802492a0
jmp 0x1802492cf
mov rdx, qword [rax]
mov qword [rbp], r8
jmp 0x1802493be
mov rdx, qword [rbx]
mov qword [rbp], r8
mov rax, rdi
add rax, 0x28
mov r15, qword [rax]
jmp 0x1802492ee
lea rcx, [rbp - 0x78]
sub rsp, 0x20
mov r8, r15
call fcn.180407670
add rsp, 0x20
mov rax, qword [rbp - 0x78]
mov r15, qword [rbp - 0x70]
cmp rax, 2
je 0x1802493b5
lea rcx, [rbp - 0x78]
add rcx, 0x10
mov rdx, qword [rcx]
mov qword [rbp - 0x20], rdx
mov rdx, qword [rcx + 8]
mov qword [rbp - 0x18], rdx
mov rcx, qword [rcx + 0x10]
mov qword [rbp - 0x10], rcx
mov ecx, dword [0x18051f520]
imul ecx, dword [0x18051f524]
or ecx, 0x68e1df3f
imul ecx, ecx, 0x1e4278f9
add ecx, 0x69228bbc
cmp ecx, 0xfc5b512c
ja 0x18024979c
mov ecx, dword [0x18051f528]
sub ecx, dword [0x18051f52c]
and ecx, 0x13c07c5c
add ecx, 0x186ec75c
or ecx, 0xda3bf95f
mov rdx, rdi
add rdx, 0x30
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], r15
mov r8, qword [rbp - 0x20]
mov qword [rdi + 0x40], r8
mov r8, qword [rbp - 0x18]
mov qword [rdi + 0x48], r8
mov r8, qword [rbp - 0x10]
mov qword [rdi + 0x50], r8
mov qword [rdi + 0x58], rdx
cmp ecx, 0x80bbea2b
je 0x18024979c
jmp 0x1802493be
mov rdx, qword [rbp]
jmp 0x18024960f
lea rcx, [rbp - 0x38]
sub rsp, 0x20
mov r8, rsi
call fcn.1804057c0
add rsp, 0x20
mov cl, byte [rbp - 0x2f]
cmp cl, 3
je 0x18024944d
jmp 0x1802493e0
ud2
mov r15, qword [rbp - 0x38]
mov eax, dword [0x18051f530]
and eax, dword [0x18051f534]
sub eax, 0xc1476594
mov r8d, 0x7abf48ab
xor edx, edx
div r8d
and eax, 0xb41e14cd
cmp eax, 0x784c8eae
je 0x1802497d8
mov eax, dword [0x18051f538]
sub eax, dword [0x18051f53c]
add eax, 0x46121590
sub eax, 0x88c56dfd
imul edx, eax, 0x51109246
cmp cl, 2
sete al
cmp edx, 0x3d8933d4
je 0x1802497d8
jmp 0x180249440
test al, 1
jne 0x1802495f7
jmp 0x180249556
mov eax, dword [0x18051f540]
xor edx, edx
div dword [0x18051f544]
imul eax, eax, 0xab28277
mov ecx, 0x852c732b
xor edx, edx
div ecx
xor eax, 0x6fd700f2
cmp eax, 0x6b27d9a6
je 0x1802497e9
mov eax, dword [0x18051f548]
imul eax, dword [0x18051f54c]
add eax, 0x919a2d2d
or eax, 0xa7956b90
sub eax, 0xb49cd8b3
cmp eax, 0x2c8f2b3
jb 0x1802497e9
jmp 0x1802494a3
mov eax, dword [0x18051f550]
add eax, dword [0x18051f554]
mov ecx, 0x55eb0288
xor edx, edx
div ecx
add eax, 0xaf49eb4
and eax, 0x616970a2
cmp eax, 0x2b74fe4a
jae 0x1802497fa
mov eax, dword [0x18051f558]
add eax, dword [0x18051f55c]
or eax, 0x228ba6d0
and eax, 0xcff0c40d
xor eax, 0x95509882
mov byte [r14], 3
cmp eax, 0x9f0a2d71
jb 0x1802497fa
jmp 0x1802494f9
mov eax, dword [0x18051f560]
and eax, dword [0x18051f564]
xor eax, 0x6fb3e3ec
xor eax, 0x959d5115
sub eax, 0x6b7909dd
cmp eax, 0x714df5dc
mov r14, qword [rbp - 8]
jbe 0x18024980f
jmp 0x180249525
mov eax, dword [0x18051f568]
xor edx, edx
div dword [0x18051f56c]
sub eax, 0x6925aace
mov ecx, 0xb5926fba
xor edx, edx
div ecx
mov ecx, 0x48020dc6
xor edx, edx
div ecx
cmp eax, 0xbba7961d
je 0x180249525
jmp 0x180249724
mov rsi, rdi
add rsi, 0x30
mov rcx, rdi
add rcx, 0x48
mov rax, qword [rdi + 0x48]
mov edx, dword [0x18051f570]
sub edx, dword [0x18051f574]
or edx, 0x8b6a6f80
xor edx, 0x6c2ee73a
or edx, 0x89c3f851
cmp edx, 0x2aaa7e46
jbe 0x180249820
mov edx, dword [0x18051f578]
add edx, dword [0x18051f57c]
xor edx, 0xdf9d1ef
and edx, 0x1da1c615
imul r8d, edx, 0xfb52bf72
cmp rax, 0xffffffffffffffff
sete dl
cmp r8d, 0x1485b688
je 0x180249820
jmp 0x1802495c7
test dl, 1
jne 0x1802495ce
jmp 0x1802495d2
ud2
sub rsp, 0x20
call fcn.18041c0e0
add rsp, 0x20
mov r15, rdx
cmp rax, 0
je 0x1802495ea
jmp 0x1802495f7
cmp r15, 0
sete al
test al, 1
jne 0x180249638
jmp 0x1802495f7
add rdi, 0x30
sub rsp, 0x20
mov rcx, rdi
call fcn.180248720
add rsp, 0x20
mov rdx, qword [rbp]
mov rax, qword [rbp - 0x50]
mov qword [rdx], rax
mov rax, qword [rbp - 0x48]
mov qword [rdx + 8], rax
mov rax, qword [rbp - 0x40]
mov qword [rdx + 0x10], rax
mov byte [r14], 1
mov esi, 2
mov r14, qword [rbp - 8]
jmp 0x1802496fb
mov rsi, qword [rsi]
mov r15, qword [rdi + 0x38]
mov rax, qword [rdi + 0x40]
mov rdx, qword [rbp]
mov qword [rdx], rax
mov rax, qword [rdi + 0x48]
mov qword [rdx + 8], rax
mov rax, qword [rdi + 0x50]
mov qword [rdx + 0x10], rax
mov byte [r14], 1
mov eax, dword [0x18051f580]
add eax, dword [0x18051f584]
xor eax, 0xc5d9e623
xor eax, 0x69a7c57a
and eax, 0xde6e161e
cmp eax, 0x88610de1
mov r14, qword [rbp - 8]
jae 0x18024982d
mov ecx, dword [0x18051f588]
xor ecx, dword [0x18051f58c]
add ecx, 0xcba4d476
add ecx, 0xf1b4de82
sub ecx, 0xd2d7d5b0
cmp rsi, 3
sete al
cmp ecx, 0x579dca6b
je 0x18024982d
test al, 1
jne 0x180249724
jmp 0x1802496fb
mov byte [r12], al
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [r14], rsi
mov qword [r14 + 8], r15
mov rax, qword [r13]
mov qword [r14 + 0x10], rax
mov rax, qword [r13 + 8]
mov qword [r14 + 0x18], rax
mov rax, qword [r13 + 0x10]
mov qword [r14 + 0x20], rax
mov al, 1
jmp 0x1802496bf
ud2
mov rax, qword [rdx]
mov qword [r13], rax
mov rax, qword [rdx + 8]
mov qword [r13 + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [r13 + 0x10], rax
sub rsp, 0x20
mov rcx, rbx
call fcn.180248ec0
add rsp, 0x20
jmp 0x1802496d4
mov qword [r14], 3
mov al, 3
jmp 0x1802496bf
invalid
xchg ebp, eax
test al, 0xfb
cmp eax, 0xe8dc0c77
mov rax, qword [rdi]
mov qword [r15], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 8], rax
mov dword [rdi + 8], eax
mov rax, qword [rdi + 0x10]
mov qword [r15 + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [r15 + 0x18], rax
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
call fcn.18041bfa0
add rsp, 0x20
jmp 0x18024915a
test al, 0x9e
jno 0x18024974f
fidivr dword [rcx + 0x58]
pop rbx
add edx, dword [rsp + rax*8 - 0x5551605]
invalid
and ebp, esp
invalid
cmpsd dword [rsi], dword [rdi]
or edx, dword [r13 + r15*2 - 0x63d68f5f]
pop rsi
jp 0x1802497f1
mov ecx, edi
add rcx, 0x30
mov qword [rdi + 0x30], rax
mov dword [rdi + 0x30], eax
mov qword [rdi + 0x38], r15
mov rdx, qword [rbp - 0x20]
mov qword [rdi + 0x40], rdx
mov rdx, qword [rbp - 0x18]
mov qword [rdi + 0x48], rdx
mov rdx, qword [rbp - 0x10]
mov qword [rdi + 0x50], rdx
mov qword [rdi + 0x58], rcx
jmp 0x18024935e
pop rcx
invalid
mov edi, dword [rcx - 0x42659104]
pop rcx
jns 0x180249835
loop 0x1802497b0
jmp 0x18024947a
add byte [rcx + 0x58784c74], 0xbc
pop r15
test al, 0xc0
ret 0xc641
invalid
pop rcx
or byte [rdi + 0x3e902a56], ch
mov bh, 0xe9
std
invalid
mov bh, 0x58
pop rsp
wait
xor al, bl
invalid
xchg edx, eax
invalid