Function at 0x1400ac5e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x260
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1a8], rdx
mov qword [rbp + 0x1b0], rcx
mov eax, 0x10
call fcn.140195b60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x1b8], rax
mov rax, qword [0x1401a1928]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000a414
mov rcx, qword [rbp + 0x1b8]
add rsp, 0x20
mov qword [rbp + 0x1c8], rax
add rax, 0x60
mov qword [rbp + 0x1c0], rax
mov dword [rbp + 0x1dc], 0
mov word [rcx], 0x35b
sub rsp, 0x20
call fcn.1400635f9
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x1c8]
mov qword [rbp + 0x1d0], rcx
mov al, byte [rax + 0x60]
mov cl, pe_nt_image_headers64
xor cl, 0x80
cmp al, cl
jne 0x1400ade68
mov rax, qword [rbp + 0x1d0]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
movabs r8, 0x95e78364c85b469b
movabs rax, 0x95e78364c85b469b
xor r8, rax
add rcx, 8
lea rax, [0x14019f252]
cmp rdx, r8
cmove rcx, rax
mov edx, 0xb4bdcfe
xor edx, 0x8b4bdcfe
mov r8d, 0x638e9352
xor r8d, 0x638e9353
mov r11d, 0x7d7b6dc8
xor r11d, 0x7d7b6dcb
mov r10d, 0x8db3851d
xor r10d, 0x8db3859d
movabs rax, 0xd134dbc06816acc4
movabs r9, 0xd134dbc06816acc4
xor rax, r9
xor r9d, r9d
sub rsp, 0x40
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0x28], r10d
mov qword [rsp + 0x30], rax
call fcn.1400a64f3
add rsp, 0x40
mov rcx, rax
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0x1a0], rcx
cmp byte [rax], 0
jne 0x1400ade68
mov rcx, qword [rbp + 0x1a0]
xor eax, eax
mov edx, eax
sub rsp, 0x20
call fcn.1400a6546
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x1c0]
mov dword [rbp + 0x19c], ecx
cmp byte [rax], 0
jne 0x1400ade68
mov rax, qword [0x1401a19c0]
mov rax, qword [rax]
mov al, byte [rax + 0x10]
mov byte [rbp + 0x18f], al
mov al, 0x25
xor al, 0x25
mov byte [rbp + 0x18e], al
mov rax, qword [0x1401a14e0]
sub rsp, 0x20
call qword [rax]
mov cl, byte [rbp + 0x18e]
add rsp, 0x20
mov rdx, rax
mov al, byte [rbp + 0x18f]
mov qword [rbp + 0x190], rdx
cmp al, cl
je 0x1400ac7f9
mov rcx, qword [rbp + 0x190]
mov eax, dword [rbp + 0x19c]
movsxd r8, eax
xor edx, edx
sub rsp, 0x20
call fcn.1400a64b7
mov rcx, qword [rbp + 0x1c0]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xb1
xor dl, 0xb1
cmp cl, dl
mov qword [rbp + 0x180], rax
je 0x1400ac835
jmp 0x1400ade68
mov rcx, qword [rbp + 0x190]
mov eax, dword [rbp + 0x19c]
movsxd r8, eax
xor edx, edx
sub rsp, 0x20
call fcn.1400aa324
mov rcx, qword [rbp + 0x1c0]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0x2e
xor dl, 0x2e
cmp cl, dl
mov qword [rbp + 0x180], rax
jne 0x1400ade68
mov r8d, dword [rbp + 0x19c]
mov rcx, qword [rbp + 0x1a0]
mov rdx, qword [rbp + 0x180]
mov qword [rbp + 0x178], rdx
lea r9, [rbp + 0x1dc]
xor eax, eax
sub rsp, 0x30
mov qword [rsp + 0x20], 0
call fcn.1400a657a
add rsp, 0x30
mov rax, qword [rbp + 0x1c0]
mov al, byte [rax]
mov cl, 0xc2
xor cl, 0xc2
cmp al, cl
jne 0x1400ade68
mov r9, qword [rbp + 0x178]
movsxd rdx, dword [r9 + 0x3c]
movabs rax, 0xd4985cd358c4cddd
mov rcx, rdx
add rcx, rax
add rcx, r9
movabs rax, 0x844977fc38ff92ed
movabs r8, 0x50d12b2f603b5f30
xor rax, r8
sub rcx, rax
mov qword [rbp + 0x170], rcx
movabs r8, 0x6a2ca5c6a2625a58
movabs rax, 0x95d35a395d9da5a7
xor r8, rax
mov rax, rcx
xor rax, r8
movabs r8, 0xbb22fd61f8bac451
and rax, r8
movabs r11, 0x2350003b3f8c787e
movabs r8, 0x9872fd5ac736bc2f
xor r11, r8
movabs r8, 0xa82cdfcfdbcd30c3
movabs r10, 0x57d320302432cf3c
xor r8, r10
xor r11, r8
mov r10, rcx
and r10, r11
movabs rsi, 0x8aa20e8b8366cac5
movabs r8, 0x755df1747c99353a
xor rsi, r8
mov r8, r9
xor r8, rsi
movabs rsi, 0xff649896985566de
movabs rdi, 0x444665f760efa28f
xor rsi, rdi
and r8, rsi
and r9, r11
or rax, r10
or r8, r9
xor rax, r8
xor rcx, rdx
and rax, rcx
movabs rcx, 0x41be267e195b9fda
movabs rdx, 0x41be267e195b9fda
xor rcx, rdx
cmp rax, rcx
jge 0x1400ac9a1
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x1400ade68
mov rax, qword [rbp + 0x170]
mov rdx, rax
add rdx, 0x18
mov qword [rbp + 0x148], rdx
mov ecx, dword [rax + 0x88]
mov dword [rbp + 0x154], ecx
mov rcx, rax
add rcx, 0x14
mov qword [rbp + 0x158], rcx
movzx eax, word [rax + 0x14]
mov ecx, eax
xor eax, eax
sub rax, rcx
xor ecx, ecx
sub rcx, rdx
add rax, rcx
xor ecx, ecx
sub rcx, rax
mov qword [rbp + 0x160], rcx
movabs rax, 0xa91ccdc8031aee5c
movabs r8, 0x56e33237fce511a3
xor rax, r8
xor rdx, rax
mov qword [rbp + 0x168], rdx
movabs r8, 0xd4cd39d8a943e64d
movabs rax, 0x2b32c62756bc19b2
xor r8, rax
mov rax, rcx
xor rax, r8
mov r8, rdx
xor r8, 0xffffffffffffffff
or rax, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
movabs rdx, 0x35c14b0ee1a69ffe
movabs r8, 0xca3eb4f11e596001
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
or rax, rcx
movabs rcx, 0x92b00d33d26cb03c
movabs rdx, 0x92b00d33d26cb03c
xor rcx, rdx
cmp rax, rcx
jge 0x1400aca95
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x1400ade68
mov rcx, qword [rbp + 0x160]
mov rax, qword [rbp + 0x170]
add rax, 6
mov qword [rbp + 0x130], rax
xor eax, eax
mov qword [rbp + 0x138], rcx
mov word [rbp + 0x146], ax
mov rdx, qword [rbp + 0x130]
mov rax, qword [rbp + 0x138]
mov cx, word [rbp + 0x146]
mov word [rbp + 0x11e], cx
mov qword [rbp + 0x120], rax
cmp cx, word [rdx]
mov qword [rbp + 0x128], rax
jae 0x1400acdc7
mov rdx, qword [rbp + 0x168]
mov rcx, qword [rbp + 0x148]
mov rax, qword [rbp + 0x158]
movzx eax, word [rax]
add rax, rcx
mov qword [rbp + 0x110], rax
or rax, rax
movabs rcx, 0x66d1caef29fcf95a
movabs r8, 0x992e3510d60306a5
xor rcx, r8
xor rax, rcx
mov rcx, rdx
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0x704d614352d6139e
movabs r8, 0x8fb29ebcad29ec61
xor rdx, r8
xor rax, rdx
movabs rdx, 0xb0fc19df2d569a54
movabs r8, 0x4f03e620d2a965ab
xor rdx, r8
xor rcx, rdx
and rax, rcx
movabs rcx, 0x4195d484dcbe169e
movabs rdx, 0x4195d484dcbe169e
xor rcx, rdx
cmp rax, rcx
jge 0x1400acba7
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x1400ade68
mov rdx, qword [rbp + 0x110]
mov ax, word [rbp + 0x11e]
mov r9w, 0xffff
xor r9w, 0x28
mov r8w, ax
and r8w, r9w
mov cx, ax
or cx, r9w
xor cx, 0xffff
imul cx, r8w
mov r9w, 0x8fb0
xor r9w, 0x8f98
mov r8w, ax
and r8w, r9w
mov r9w, 0xc0fa
xor r9w, 0xc0d2
or ax, r9w
imul ax, r8w
add ax, cx
movzx eax, ax
mov rcx, rdx
add rcx, rax
mov qword [rbp + 0x108], rcx
movabs rax, 0xeb3ba6be5a1732e4
movabs r8, 0x14c45941a5e8cd1b
xor rax, r8
xor rdx, rax
movabs r8, 0x3dc4458a08fe1ff1
movabs rax, 0xc23bba75f701e00e
xor r8, rax
mov rax, rcx
xor rax, r8
movabs r9, 0xd2bd00cd765b4f14
movabs r8, 0x2d42ff3289a4b0eb
xor r9, r8
mov r8, rdx
xor r8, r9
or rax, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
and rax, rcx
xor rax, 0xffffffffffffffff
movabs rcx, 0x5f914b3190fba83c
movabs rdx, 0x5f914b3190fba83c
xor rcx, rdx
cmp rax, rcx
jge 0x1400accac
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x1400ade68
mov rcx, qword [rbp + 0x108]
sub rsp, 0x20
mov edx, 6
call fcn.140066e78
mov r8, qword [rbp + 0x1c0]
mov r10, qword [rbp + 0x108]
mov rcx, qword [rbp + 0x120]
add rsp, 0x20
mov rdx, rax
mov ax, word [rbp + 0x11e]
mov r9d, 0xe4a45441
sub rdx, r9
setne dl
mov r9b, byte [r8]
mov r8, rcx
cmove r8, r10
movzx edx, dl
shl edx, 3
test r9b, r9b
cmove rcx, r8
mov qword [rbp + 0xf8], rcx
mov ecx, 2
cmove ecx, edx
mov dl, cl
test dl, 2
mov dword [rbp + 0x100], ecx
mov word [rbp + 0x106], ax
je 0x1400acd33
jmp 0x1400acd70
mov ax, word [rbp + 0x11e]
xor ecx, ecx
sub cx, ax
mov ax, 0x1dfa
xor ax, 0x1dfa
mov dx, 0x3707
xor dx, 0x3706
sub ax, dx
add cx, ax
mov ax, 0x73c
xor ax, 0x73c
sub ax, cx
xor ecx, ecx
mov dword [rbp + 0x100], ecx
mov word [rbp + 0x106], ax
mov rcx, qword [rbp + 0xf8]
mov edx, dword [rbp + 0x100]
mov ax, word [rbp + 0x106]
mov dword [rbp + 0xf4], edx
test edx, edx
mov qword [rbp + 0x138], rcx
mov word [rbp + 0x146], ax
je 0x1400acabe
jmp 0x1400acda5
mov rax, qword [rbp + 0xf8]
mov ecx, dword [rbp + 0xf4]
sub ecx, 7
mov qword [rbp + 0x128], rax
jne 0x1400ade68
jmp 0x1400acdc7
mov rdx, qword [rbp + 0x178]
mov eax, dword [rbp + 0x154]
mov rcx, qword [rbp + 0x128]
mov qword [rbp + 0xe0], rcx
movsxd r8, eax
mov rax, r8
add rax, rdx
mov qword [rbp + 0xe8], rax
mov rcx, rax
xor rcx, rdx
mov rdx, rax
or rdx, rdx
xor rdx, 0xffffffffffffffff
mov r9, r8
xor r9, 0xffffffffffffffff
movabs r11, 0x92b107ca7d012e14
movabs r10, 0x6d4ef83582fed1eb
xor r11, r10
mov r10, r8
xor r10, r11
and r9, r10
movabs r10, 0x38cb5d97338a6a63
movabs r11, 0xc734a268cc75959c
xor r10, r11
xor rdx, r10
xor r9, 0xffffffffffffffff
and rdx, r9
movabs r9, 0x30768e195ff7fae6
movabs r10, 0xcf8971e6a0080519
xor r9, r10
xor rax, r9
xor r8, 0xffffffffffffffff
and rax, r8
or rdx, rax
xor rdx, 0xffffffffffffffff
movabs r8, 0x8daf2355522c7a1c
movabs rax, 0x7250dcaaadd385e3
xor r8, rax
mov rax, rcx
xor rax, r8
mov r8, rdx
xor r8, 0xffffffffffffffff
or rax, r8
xor rcx, 0xffffffffffffffff
movabs r8, 0xfdeeffe7371a3100
movabs r9, 0x2110018c8e5ceff
xor r8, r9
xor rdx, r8
or rcx, rdx
movabs rdx, 0x61c5cc6db0fc1fc4
movabs r8, 0x9e3a33924f03e03b
xor rdx, r8
xor rax, rdx
movabs rdx, 0x18a61b866f9798bb
movabs r8, 0xe759e47990686744
xor rdx, r8
xor rcx, rdx
or rax, rcx
cmp rax, 0
jge 0x1400acf0d
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x1400ade68
mov rdx, qword [rbp + 0xe0]
mov rcx, qword [rbp + 0xe8]
sub rsp, 0x20
call fcn.1400ac480
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0xd8], rcx
cmp byte [rax], 0
jne 0x1400ade68
mov r9, qword [rbp + 0x178]
mov rax, qword [rbp + 0xd8]
movsxd rax, dword [rax + 0x20]
mov rdx, rax
add rdx, r9
mov qword [rbp + 0xd0], rdx
movabs r8, 0x5ca62195c19a1b69
movabs rcx, 0xa359de6a3e65e496
xor r8, rcx
mov rcx, rdx
xor rcx, r8
movabs r8, 0x311a233b4a069e8a
and rcx, r8
mov r11, 0xffffffffffffffff
movabs r8, 0x311a233b4a069e8a
xor r11, r8
mov r10, rdx
and r10, r11
movabs rsi, 0x4837c2a369c162cf
movabs r8, 0xb7c83d5c963e9d30
xor rsi, r8
mov r8, r9
xor r8, rsi
movabs rsi, 0x311a233b4a069e8a
and r8, rsi
and r9, r11
or rcx, r10
or r8, r9
xor rcx, r8
xor rdx, rax
mov rax, rcx
and rax, rdx
movabs r8, 0x9e34c9398b8f2cc6
movabs r9, 0x61cb36c67470d339
xor r8, r9
xor rax, r8
and rcx, rdx
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
movabs rdx, 0x45d90cf2b139c5e8
movabs r8, 0xba26f30d4ec63a17
xor rdx, r8
xor rcx, rdx
or rax, rcx
movabs rcx, 0xd5e4937ee68b21f9
movabs rdx, 0xd5e4937ee68b21f9
xor rcx, rdx
cmp rax, rcx
jge 0x1400ad058
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x1400ade68
mov rdx, qword [rbp + 0xe0]
mov rcx, qword [rbp + 0xd0]
sub rsp, 0x20
call fcn.1400ac480
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0xc8], rcx
mov al, byte [rax]
mov cl, 0x83
xor cl, 0x83
cmp al, cl
jne 0x1400ade68
mov rcx, qword [rbp + 0x178]
mov rax, qword [rbp + 0xd8]
movsxd r8, dword [rax + 0x1c]
mov rdx, r8
and rdx, rcx
mov rax, r8
or rax, rcx
add rdx, rax
mov qword [rbp + 0xc0], rdx
mov rax, rdx
xor rax, rcx
mov r9, rdx
and r9, r8
movabs rcx, 0x43e7491c281e742f
movabs r10, 0x43e7491c281e742d
xor rcx, r10
imul rcx, r9
add rdx, r8
sub rdx, rcx
mov rcx, rax
xor rcx, rdx
movabs r8, 0x881e28d8820eaa12
movabs r9, 0x77e1d7277df155ed
xor r8, r9
xor rcx, r8
or rax, rdx
and rax, rcx
movabs rcx, 0x81ecaac3118a3c00
movabs rdx, 0x81ecaac3118a3c00
xor rcx, rdx
cmp rax, rcx
jge 0x1400ad140
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
jmp 0x1400ade68
mov rdx, qword [rbp + 0xe0]
mov rcx, qword [rbp + 0xc0]
sub rsp, 0x20
call fcn.1400ac480
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0xb8], rcx
cmp byte [rax], 0
jne 0x1400ade68
mov rax, qword [rbp + 0xd8]
mov rcx, rax
add rcx, 0x18
mov qword [rbp + 0xa8], rcx
mov ecx, dword [rax + 0x18]
mov edx, 0x5ce6dcb0
xor edx, 0x5ce6dcb0
xor eax, eax
cmp ecx, edx
mov dword [rbp + 0xb4], eax
jle 0x1400ade68
mov rax, qword [rbp + 0x1b0]
cmp rax, 0
setne al
mov byte [rbp + 0x9f], al
xor eax, eax
mov ecx, eax
mov dword [rbp + 0xa0], ecx
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xa0]
mov ecx, dword [rbp + 0xa4]
mov dword [rbp + 0x6c], ecx
mov dword [rbp + 0x7c], eax
cdqe
mov qword [rbp + 0x70], rax
movabs rcx, 0x64383f3cd70cc0f8
movabs rdx, 0x64383f3cd70cc0fa
xor rcx, rdx
shl rax, cl
mov ecx, dword [rbp + 0x7c]
mov qword [rbp + 0x80], rax
cvtsi2sd xmm0, ecx
movsd xmm1, qword [0x14019f078]
mulsd xmm0, xmm1
movsd qword [rbp + 0x88], xmm0
cvtsi2sd xmm1, rax
movsd qword [rbp + 0x90], xmm1
ucomisd xmm0, xmm1
jne 0x1400ad242
jp 0x1400ad242
jmp 0x1400ad2b6
movsd xmm1, qword [rbp + 0x88]
movsd xmm0, qword [rbp + 0x90]
subsd xmm0, xmm1
sub rsp, 0x20
call fcn.140195ba0
add rsp, 0x20
movaps xmm1, xmm0
movsd xmm0, qword [rbp + 0x88]
movsd qword [rbp + 0x60], xmm1
sub rsp, 0x20
call fcn.140195ba0
movsd xmm1, qword [rbp + 0x60]
add rsp, 0x20
movsd xmm2, qword [0x14019f080]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x1400ad2b6
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0x178]
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 0xc8]
xor rcx, 0xffffffffffffffff
movabs r8, 0x6a85163d3fd45262
movabs r9, 0x6a85163d3fd45262
xor r8, r9
movabs r9, 0xca452a6f81a3703e
movabs r10, 0xca452a6f81a3703f
xor r9, r10
sub r8, r9
sub rcx, r8
sub rax, rcx
movsxd r8, dword [rax]
mov rax, r8
and rax, rdx
shl rax, 1
mov r9, r8
xor r9, rdx
add r9, rax
mov qword [rbp + 0x58], r9
mov rax, r9
or rax, rax
movabs rcx, 0xabe857fa4ad9f46d
movabs r10, 0x5417a805b5260b92
xor rcx, r10
xor rax, rcx
mov rcx, rdx
xor rcx, 0xffffffffffffffff
mov r10, rdx
xor r10, 0xffffffffffffffff
and rcx, r10
or rax, rcx
movabs rcx, 0x14c76d2877915201
movabs r10, 0xeb3892d7886eadfe
xor rcx, r10
xor rax, rcx
movabs r10, 0xac91c92b6011f30f
movabs rcx, 0x536e36d49fee0cf0
xor r10, rcx
mov rcx, r9
xor rcx, r10
xor rdx, 0xffffffffffffffff
and rcx, rdx
or rax, rcx
movabs rcx, 0x25badf3ceac0a097
movabs rdx, 0xda4520c3153f5f68
xor rcx, rdx
xor rax, rcx
movabs rdx, 0xc4069ad7cd4f727f
movabs rcx, 0x3bf9652832b08d80
xor rdx, rcx
mov rcx, r9
xor rcx, rdx
movabs rdx, 0xf7ceedcff525932f
and rcx, rdx
mov r10, 0xffffffffffffffff
movabs rdx, 0xf7ceedcff525932f
xor r10, rdx
and r9, r10
movabs r11, 0xf3991ff42024da6b
movabs rdx, 0xc66e00bdfdb2594
xor r11, rdx
mov rdx, r8
xor rdx, r11
movabs r11, 0x987e3bfeb12cef1d
movabs rsi, 0x6fb0d63144097c32
xor r11, rsi
and rdx, r11
and r8, r10
or rcx, r9
or rdx, r8
xor rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x1400ad45b
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0xe0]
mov rcx, qword [rbp + 0x58]
sub rsp, 0x20
call fcn.1400ac480
mov rcx, qword [rbp + 0x1c0]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 0x6c]
mov qword [rbp + 0x50], rdx
mov cl, byte [rcx]
mov dl, 0xe3
xor dl, 0xe3
cmp cl, dl
mov dword [rbp + 0xb4], eax
jne 0x1400ade68
mov rdx, qword [rbp + 0x70]
movabs rcx, 0x229fb274d202885b
mov rax, rdx
sub rax, rcx
movabs rcx, 0x97d684bf8c4b6c13
movabs r8, 0x97d684bf8c4b6c12
xor rcx, r8
add rax, rcx
movabs rcx, 0xe5e0ff6e93c2fad4
movabs r8, 0xc77f4d1a41c0728f
xor rcx, r8
add rax, rcx
mov qword [rbp + 0x40], rax
movabs rcx, 0xc84a79959c84b06b
movabs r8, 0x37b5866a637b4f94
xor rcx, r8
xor rdx, rcx
mov qword [rbp + 0x48], rdx
movabs r8, 0xc18ac7224a898c4a
movabs rcx, 0xc18ac7224a898c4b
xor r8, rcx
mov rcx, rax
add rcx, r8
movabs r8, 0x4dd5c9e3ef465782
movabs r9, 0xb22a361c10b9a87d
xor r8, r9
xor rax, r8
or rax, rdx
add rax, rcx
cmp rax, 0
jge 0x1400ad565
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rcx, qword [rbp + 0x40]
mov rax, rcx
shl rax, 2
mov qword [rbp + 0x28], rax
cvtsi2sd xmm0, rcx
movsd xmm1, qword [0x14019f078]
mulsd xmm0, xmm1
movsd qword [rbp + 0x30], xmm0
cvtsi2sd xmm1, rax
movsd qword [rbp + 0x38], xmm1
ucomisd xmm0, xmm1
jne 0x1400ad5a9
jp 0x1400ad5a9
jmp 0x1400ad614
movsd xmm1, qword [rbp + 0x30]
movsd xmm0, qword [rbp + 0x38]
subsd xmm0, xmm1
sub rsp, 0x20
call fcn.140195ba0
add rsp, 0x20
movaps xmm1, xmm0
movsd xmm0, qword [rbp + 0x30]
movsd qword [rbp + 0x20], xmm1
sub rsp, 0x20
call fcn.140195ba0
movsd xmm1, qword [rbp + 0x20]
add rsp, 0x20
movsd xmm2, qword [0x14019f080]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x1400ad614
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rcx, qword [rbp + 0x178]
mov rdx, qword [rbp + 0xb8]
mov rax, qword [rbp + 0x28]
add rax, rdx
movsxd r8, dword [rax]
mov rdx, r8
add rdx, rcx
mov qword [rbp + 0x18], rdx
mov rax, rdx
xor rax, rcx
mov r9, rdx
and r9, r8
movabs rcx, 0xc8cee71002150411
movabs r10, 0xc8cee71002150413
xor rcx, r10
imul rcx, r9
add rdx, r8
sub rdx, rcx
movabs r8, 0x611d717a337ba9f4
movabs rcx, 0x611d717a337ba9f5
xor r8, rcx
mov rcx, rax
add rcx, r8
movabs r8, 0xf272c6d7a59ec8f1
movabs r9, 0xd8d39285a61370e
xor r8, r9
xor rax, r8
or rax, rdx
add rax, rcx
movabs rcx, 0xd6d95a29357417f3
movabs rdx, 0xd6d95a29357417f3
xor rcx, rdx
cmp rax, rcx
jge 0x1400ad6db
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0x160]
mov rcx, qword [rbp + 0x18]
sub rsp, 0x20
call fcn.1400ac480
mov rcx, qword [rbp + 0x1c0]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 0x6c]
mov qword [rbp + 0x10], rdx
mov cl, byte [rcx]
mov dl, 0x64
xor dl, 0x64
cmp cl, dl
mov dword [rbp + 0xb4], eax
jne 0x1400ade68
mov rax, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x1b0]
cmp rax, rcx
je 0x1400ad789
mov eax, dword [rbp + 0x6c]
mov cl, byte [rbp + 0x9f]
mov rdx, qword [rbp + 0x50]
test rdx, rdx
setne r8b
mov dl, cl
xor dl, 1
or dl, r8b
add cl, dl
inc cl
test cl, 1
mov dword [rbp + 0xc], eax
jne 0x1400ad75e
jmp 0x1400ade3e
mov rdx, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x50]
sub rsp, 0x20
call fcn.140021e51
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp + 0x6c]
cmp rcx, 0
mov dword [rbp + 0xc], eax
jne 0x1400ade3e
mov rax, qword [rbp + 0x10]
mov rcx, qword [0x1401a19c0]
mov rcx, qword [rcx]
cmp byte [rcx + 0x10], 0
mov qword [rbp], rax
je 0x1400adcc9
mov rdx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x70]
add rax, 7
mov qword [rbp - 8], rax
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
movabs rcx, 0x333d63e1455a8cde
movabs rdx, 0x333d63e1455a8cde
xor rcx, rdx
cmp rax, rcx
jge 0x1400ad800
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rax, qword [rbp + 0x70]
movabs rcx, 0xabafdbcf2c33aeb6
movabs rdx, 0x54502430ac33aeb1
xor rcx, rdx
add rax, rcx
movabs rcx, 0x3a97f25401774e8e
movabs rdx, 0xc5680dab01774e8e
xor rcx, rdx
cmp rax, rcx
jae 0x1400ad859
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rcx, qword [rbp - 8]
mov rax, rcx
shl rax, 2
mov qword [rbp - 0x20], rax
cvtsi2sd xmm0, rcx
movsd xmm1, qword [0x14019f078]
mulsd xmm0, xmm1
movsd qword [rbp - 0x18], xmm0
cvtsi2sd xmm1, rax
movsd qword [rbp - 0x10], xmm1
ucomisd xmm0, xmm1
jne 0x1400ad89d
jp 0x1400ad89d
jmp 0x1400ad908
movsd xmm1, qword [rbp - 0x18]
movsd xmm0, qword [rbp - 0x10]
subsd xmm0, xmm1
sub rsp, 0x20
call fcn.140195ba0
add rsp, 0x20
movaps xmm1, xmm0
movsd xmm0, qword [rbp - 0x18]
movsd qword [rbp - 0x28], xmm1
sub rsp, 0x20
call fcn.140195ba0
movsd xmm1, qword [rbp - 0x28]
add rsp, 0x20
movsd xmm2, qword [0x14019f080]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x1400ad908
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0x178]
mov rcx, qword [rbp + 0xc8]
mov rax, qword [rbp - 0x20]
add rax, rcx
movsxd r8, dword [rax]
mov r9, r8
add r9, rdx
mov qword [rbp - 0x30], r9
movabs rax, 0x64d7f11aa3209b45
movabs rcx, 0x9b280ee55cdf64ba
xor rax, rcx
mov rcx, r9
xor rcx, rax
mov rax, rdx
and rax, rcx
xor rdx, 0xffffffffffffffff
mov rcx, r9
and rcx, rdx
or rax, rcx
mov rdx, r9
xor rdx, 0xffffffffffffffff
movabs rcx, 0xa1b51bcf45bb82b4
movabs r10, 0xb8898b9230590687
xor rcx, r10
and rcx, rdx
mov r10, 0xffffffffffffffff
movabs rdx, 0x193c905d75e28433
xor r10, rdx
and r9, r10
movabs r11, 0xb3f8a7533a86cb0e
movabs rdx, 0x4c0758acc57934f1
xor r11, rdx
mov rdx, r8
xor rdx, r11
movabs r11, 0xa6f2ba0f4d08059d
movabs rsi, 0xbfce2a5238ea81ae
xor r11, rsi
and rdx, r11
and r8, r10
or rcx, r9
or rdx, r8
xor rcx, rdx
and rax, rcx
movabs rcx, 0xce2e04d9ad5e09af
movabs rdx, 0xce2e04d9ad5e09af
xor rcx, rdx
cmp rax, rcx
jge 0x1400ada13
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0xe0]
mov rcx, qword [rbp - 0x30]
sub rsp, 0x20
call fcn.1400ac480
mov rcx, qword [rbp + 0x1c0]
add rsp, 0x20
mov eax, dword [rbp + 0x6c]
cmp byte [rcx], 0
mov dword [rbp + 0xb4], eax
jne 0x1400ade68
mov rdx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x70]
movabs rcx, 0x8ef848060ba60a31
movabs r8, 0x8ef848060ba60a31
xor rcx, r8
sub rcx, rax
movabs rax, 0xcab0e9a201bfcc0f
movabs r8, 0xcab0e9a201bfcc0f
xor rax, r8
movabs r8, 0x74b6a6bb79a68325
movabs r9, 0x74b6a6bb79a6832d
xor r8, r9
sub rax, r8
add rcx, rax
xor eax, eax
sub rax, rcx
mov qword [rbp - 0x38], rax
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
cmp rax, 0
jge 0x1400adad8
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rcx, qword [rbp + 0x70]
movabs rdx, 0x146374531306e191
movabs rax, 0xeb9c8bac9306e199
xor rdx, rax
mov rax, rcx
and rax, rdx
or rcx, 0xffffffff80000008
add rax, rcx
movabs rcx, 0xf5b5ac8979f5ea2
movabs rdx, 0xf0a4a537979f5ea2
xor rcx, rdx
cmp rax, rcx
jae 0x1400adb3e
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rax, qword [rbp - 0x38]
movabs rcx, 0x99197787181ffab7
movabs rdx, 0x99197787181ffab5
xor rcx, rdx
shl rax, cl
mov rcx, qword [rbp - 0x38]
mov qword [rbp - 0x50], rax
cvtsi2sd xmm0, rcx
movsd xmm1, qword [0x14019f078]
mulsd xmm0, xmm1
movsd qword [rbp - 0x48], xmm0
cvtsi2sd xmm1, rax
movsd qword [rbp - 0x40], xmm1
ucomisd xmm0, xmm1
jne 0x1400adb99
jp 0x1400adb99
jmp 0x1400adc04
movsd xmm1, qword [rbp - 0x48]
movsd xmm0, qword [rbp - 0x40]
subsd xmm0, xmm1
sub rsp, 0x20
call fcn.140195ba0
add rsp, 0x20
movaps xmm1, xmm0
movsd xmm0, qword [rbp - 0x48]
movsd qword [rbp - 0x58], xmm1
sub rsp, 0x20
call fcn.140195ba0
movsd xmm1, qword [rbp - 0x58]
add rsp, 0x20
movsd xmm2, qword [0x14019f080]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x1400adc04
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0x178]
mov rcx, qword [rbp + 0xb8]
mov rax, qword [rbp - 0x50]
add rax, rcx
movsxd r8, dword [rax]
mov rcx, r8
add rcx, rdx
mov qword [rbp - 0x60], rcx
mov rax, rcx
xor rax, rdx
mov r9, rcx
and r9, r8
movabs rdx, 0x24fbf557fb9ffcb1
movabs r10, 0x24fbf557fb9ffcb3
xor rdx, r10
imul rdx, r9
add rcx, r8
sub rcx, rdx
and rax, rcx
movabs rcx, 0xe7f87e57e3a33162
movabs rdx, 0xe7f87e57e3a33162
xor rcx, rdx
cmp rax, rcx
jge 0x1400adc91
sub rsp, 0x20
call fcn.14000a590
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0x160]
mov rcx, qword [rbp - 0x60]
sub rsp, 0x20
call fcn.1400ac480
mov rdx, qword [rbp + 0x1c0]
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp + 0x6c]
cmp byte [rdx], 0
mov qword [rbp], rcx
mov dword [rbp + 0xb4], eax
jne 0x1400ade68
mov rax, qword [rbp]
mov qword [rbp - 0x70], rax
mov rax, qword [0x1401964e0]
mov qword [rbp - 0x68], rax
movabs rcx, 0xf270f85507928e5e
movabs rdx, 0xf270f85507928e5e
xor rcx, rdx
cmp rax, rcx
jge 0x1400add49
mov rcx, qword [rbp - 0x68]
movabs rdx, 0xfd41da0e326dc128
movabs rax, 0xfd41da0e326dc128
xor rdx, rax
movabs r8, 0xf07926db2809bb9d
movabs rax, 0x8f86d924d7f64462
xor r8, rax
sub rsp, 0x20
call fcn.140010917
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp - 0x68]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
mov qword [rbp - 0x78], rcx
mov dword [rbp + 0xc], eax
je 0x1400ade3e
mov rax, qword [rbp - 0x78]
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rbp + 0x1a8]
mov r8, qword [rbp - 0x70]
mov r8b, byte [r8 + rax]
mov byte [rdx + rax], r8b
movabs rdx, 0x3edb23809c3b2406
movabs r8, 0x3edb23809c3b2407
xor rdx, r8
add rax, rdx
cmp rax, rcx
mov qword [rbp - 0x78], rax
jne 0x1400add65
mov rcx, qword [rbp + 0x70]
movabs rax, 0xb85367d7b445173a
movabs rdx, 0x2287e7051143d696
xor rax, rdx
add rcx, rax
movabs rax, 0x8bdf559ab3e1573c
movabs rdx, 0x7420aa6533e1573d
xor rax, rdx
add rcx, rax
movabs rax, 0xfa0d6c0a1a527c8
movabs rdx, 0x9574561204a3e664
xor rax, rdx
sub rcx, rax
movabs rdx, 0xd65fb7eb5cdb866c
movabs rax, 0x29a048145cdb866c
xor rdx, rax
mov eax, 1
cmp rcx, rdx
mov dword [rbp + 0xc], eax
jae 0x1400ade3e
sub rsp, 0x20
call fcn.14000a590
add rsp, 0x20
mov eax, 1
mov dword [rbp + 0xb4], eax
jmp 0x1400ade68
mov rdx, qword [rbp + 0xa8]
mov rcx, qword [rbp + 0x40]
mov eax, dword [rbp + 0xc]
cmp dword [rdx], ecx
mov dword [rbp + 0xa0], ecx
mov ecx, eax
mov dword [rbp + 0xa4], ecx
mov dword [rbp + 0xb4], eax
jg 0x1400ad1cc
mov eax, dword [rbp + 0xb4]
lea rsp, [rbp + 0x1e0]
pop rdi
pop rsi
pop rbp
ret