Function at 0x2035d110
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x60], rcx
cmp rax, qword [rcx + 0x28]
je 0x2035d156
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x60]
lea rax, [rdi + 0x28]
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0x20], 0x868fc4c4
lea rdx, [rsp + 0x50]
lea rbx, [rsp + 0x48]
mov rcx, rdi
mov r8, rbx
mov r9d, 0x43a77977
call fcn.2035fd50
mov rsi, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
lea rcx, [rsi + 0x378]
mov dword [rsp + 0x28], 0xde5a9b9
mov dword [rsp + 0x20], 0xed662b64
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x48]
call fcn.2035f640
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x20], 0xdadab723
lea r8, [rsp + 0x48]
mov r9d, 0xac535870
call fcn.2035f800
mov r14, qword [rsp + 0x48]
sar r14, 5
movabs rax, 0xcccccccccccccccd
imul r14, rax
mov ebp, 0xb87c79c6
nop dword [rax + rax]
mov eax, dword [0x205b6510]
mov ecx, dword [0x20591ff0]
add ecx, ebp
cmp eax, ecx
jge 0x2035d277
mov rcx, rbx
mov edx, 0x113c2403
mov r8d, 0x7eddc361
call fcn.2035f9b0
movsxd rcx, dword [rsp + 0x48]
mov eax, dword [0x20591ff0]
lea r8d, [rax + 0x20813868]
mov edx, eax
xor edx, 0x85d2e1ba
and eax, 0x5d2e1ba
add eax, eax
mov r9d, edx
xor r9d, eax
and eax, edx
lea r9d, [r9 + rax*2]
mov rdx, rbx
call fcn.2035f850
mov rdx, qword [rsp + 0x48]
mov r12d, dword [0x2048f960]
mov eax, dword [0x205b650c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x2035d299
mov eax, dword [0x2048f954]
mov ecx, 0x1fb3fc6c
mov edx, 0x9343c0dd
call fcn.2035f5f0
test al, 1
je 0x2035d200
jmp 0x2035d212
mov qword [rsp + 0x88], rdx
mov rcx, qword [rsi + 0x350]
sub rcx, qword [rsi + 0x348]
lea rdx, [rsp + 0x48]
mov r8d, 0xa385b372
mov r9d, 0x1d12aae1
call fcn.2035f610
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x90], rax
lea eax, [r14 + 0x1f]
cdq
idiv r14d
cmp eax, 3
mov ecx, 2
cmovge ecx, eax
mov qword [rsp + 0xa8], rcx
lea eax, [rcx + 6]
mov dword [rdi + 8], eax
xor eax, eax
sub eax, dword [0x20591ff0]
mov ecx, eax
xor ecx, 0x2a70db9d
mov edx, eax
and edx, 0x2a70db9d
lea ecx, [rcx + rdx*2]
neg ecx
mov edx, eax
xor edx, 0x761b1f87
and eax, 0x761b1f87
lea eax, [rdx + rax*2]
neg eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x48]
mov rcx, rdi
mov qword [rsp + 0xb8], r14
mov rdx, r14
call fcn.2035f8a0
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x48]
mov rbx, qword [rdi + 0x18]
mov rcx, qword [r15]
mov rax, rbx
movabs r8, 0x2a499bd604241d88
add r8, qword [0x20591ff8]
sub rax, rcx
mov rdx, rax
or rdx, r8
shr rdx, 0x20
mov dword [rsp + 0x68], r12d
je 0x2035d387
cqo
idiv r8
jmp 0x2035d38c
xor edx, edx
div r8d
movabs r9, 0xcccccccccccccccd
cmp r14, rax
jae 0x2035d3ef
mov dword [rsp + 0x20], 0xfc9424fd
lea r8, [rsp + 0x48]
mov rdx, r14
mov r9d, 0x9343c0dd
call fcn.2035fa40
mov rax, qword [rsp + 0x48]
cmp rax, rbx
je 0x2035d428
lea rcx, [rax + 0x50]
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rcx - 0x14], xmm0
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x30], xmm0
movups xmmword [rcx - 0x40], xmm0
movups xmmword [rcx - 0x50], xmm0
cmp rcx, rbx
je 0x2035d428
add rcx, 0x50
jmp 0x2035d3d0
jbe 0x2035d42c
mov rdx, qword [rdi + 0x20]
neg rcx
mov r8, rdx
xor r8, rcx
and rcx, rdx
lea rcx, [r8 + rcx*2]
sar rcx, 4
imul rcx, r9
cmp rcx, r14
jae 0x2035d7c8
lea r8, [rsp + 0x70]
mov rcx, r15
mov rdx, r14
call fcn.2035e840
jmp 0x2035d42c
mov qword [rdi + 0x18], rax
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x98], r15
mov rax, qword [r15]
mov qword [rsp + 0xa0], rax
sub rcx, rax
mov qword [rsp + 0xc8], rcx
mov edx, dword [0x20591df0]
mov dword [rsp + 0x5c], 0
xor eax, eax
sub eax, dword [0x20591ff0]
mov ecx, eax
xor ecx, 0x4783867d
and eax, 0x4783867d
lea eax, [rcx + rax*2]
mov ecx, edx
sub ecx, eax
mov dword [0x20591df0], ecx
mov dword [rsp + 0xb4], edx
mov dword [rsp + 0xb0], ecx
test edx, ecx
jne 0x2035d4a5
xor ebp, ebp
mov dword [rsp + 0x5c], 0
cmp dword [rsp + 0x68], 0
jg 0x2035d5e4
mov rax, qword [rsp + 0xc8]
shr rax, 4
imul eax, eax, 0xcccccccd
movabs rsi, 0x2a499bd604241d39
test eax, eax
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x98]
mov r10, qword [rsp + 0xa0]
jle 0x2035d51d
xor eax, eax
nop
mov rcx, qword [rdi]
mov rcx, qword [rcx + 0x3a8]
lea rdx, [rax + rax*4]
shl rdx, 4
mov qword [r10 + rdx + 0x18], rcx
add rax, qword [0x20591ff8]
add rax, rsi
mov rcx, qword [rdi + 0x18]
mov r10, qword [r9]
sub rcx, r10
shr rcx, 4
imul ecx, ecx, 0xcccccccd
movsxd rcx, ecx
cmp rax, rcx
jl 0x2035d4e0
lea rax, [rdi + 0x40]
mov qword [rsp + 0x68], rax
movsxd rbx, r8d
mov r13, qword [rdi + 0x40]
mov r15, qword [rdi + 0x48]
mov rbp, r15
sub rbp, r13
sar rbp, 1
mov r9d, dword [0x20591ff0]
lea r8d, [r9 - 0x5a92dd74]
add r9d, 0x474145b7
mov rcx, rbx
mov rdx, rbp
call fcn.20329bc0
test al, 1
mov rcx, qword [rsp + 0xb8]
je 0x2035d57a
lea rax, [rbx*2]
add rax, r13
mov qword [rdi + 0x48], rax
jmp 0x2035d87c
mov r12, rbx
sub r12, rbp
jbe 0x2035d87c
mov r14, rcx
lea rdx, [rsp + 0x48]
mov rcx, rdi
mov r8d, 0x3d33a189
mov r9d, 0xa689108a
call fcn.2035f960
mov rax, qword [rsp + 0x48]
mov rcx, qword [0x20591ff8]
add rcx, qword [rax]
sub rcx, r13
movabs rax, 0x2a499bd604241d38
add rax, rcx
sar rax, 1
cmp rax, rbx
jae 0x2035d857
lea r8, [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
mov rdx, rbx
call fcn.2035eca0
jmp 0x2035d879
lea r14, [rsp + 0x48]
lea r12, [rsp + 0x50]
mov esi, 0xb87c79a7
mov r13b, 1
lea rax, [fcn.2035d110]
lea r15d, [rax + rax]
add r15d, 0x3ee0
mov dword [rsp + 0x5c], 0
jmp 0x2035d62f
test dil, 1
mov rdi, qword [rsp + 0x60]
jne 0x2035d4a5
mov ecx, ebp
mov rdx, r14
mov r8d, 0xdf887db0
mov r9d, 0x12e203fc
call fcn.20135500
mov rbx, qword [rsp + 0x48]
add rbx, qword [rsp + 0x88]
mov ecx, 0xc2ffe6ac
mov edx, 0x25f5a447
call fcn.2006dde0
nop word cs:[rax + rax]
mov rcx, r12
mov rdx, r14
mov r8d, 0xa8f7faa8
mov r9d, 0xe538756c
call fcn.2035f650
mov eax, dword [rsp + 0x50]
imul eax, dword [rsp + 0x48]
test al, 1
jne 0x2035d670
mov rcx, rbx
mov rdx, r14
mov r8d, 0x7d36c250
mov r9d, 0x542ae458
call fcn.2035fac0
movzx ecx, byte [rsp + 0x48]
add ebp, 0x9000f37f
mov r9d, 0xb87c7984
nop dword [rax]
mov eax, dword [0x205b6510]
cmp eax, 0x17
jg 0x2035d6ea
mov edx, dword [0x205b650c]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x20591ff0]
add r8d, r9d
xor edx, edx
div r8d
test edx, edx
je 0x2035d700
mov eax, r15d
not eax
test eax, r15d
jne 0x2035d6c0
jmp 0x2035d6cb
mov eax, dword [rsp + 0x5c]
xor al, cl
mov dword [rsp + 0x5c], eax
mov eax, dword [0x20591ff0]
mov ecx, eax
xor ecx, 0xb87c7983
and eax, 0x387c7983
lea eax, [rcx + rax*2]
mov ebx, ebp
add ebx, eax
nop word cs:[rax + rax]
mov dword [rsp + 0x28], 0x4e88db9f
mov dword [rsp + 0x20], 0x8488aff1
mov ecx, ebx
mov edx, dword [rsp + 0x68]
mov r8, r14
mov r9, r12
call fcn.2035fa60
mov ebp, dword [rsp + 0x48]
movzx edi, byte [rsp + 0x50]
mov r8d, dword [0x20591ff0]
lea edx, [r8 + 0x5034efff]
add r8d, 0x592613c4
mov rcx, r14
call fcn.2035f540
mov ecx, dword [rsp + 0x48]
mov r8d, dword [0x20591ff0]
mov eax, r8d
xor eax, 0x73036d51
mov edx, r8d
and edx, 0x73036d51
lea edx, [rax + rdx*2]
add r8d, 0x89f18183
call fcn.2035fc30
test al, 1
jne 0x2035d620
nop word [rax + rax]
mov eax, dword [0x20591ff0]
add eax, esi
mov dword [0x205b6510], eax
test r13b, r13b
je 0x2035d7b0
jmp 0x2035d730
mov r12, r14
sub r12, rax
je 0x2035d84e
movabs rcx, 0x2a499bd604241d37
add rcx, qword [0x20591ff8]
xor rax, rcx
add r14, rax
mov rsi, r12
not rsi
mov eax, esi
and eax, 7
mov rcx, r12
and rcx, 0xfffffffffffffff8
or rcx, rax
and rsi, 0xfffffffffffffff8
or rsi, rcx
mov rcx, rsi
not rcx
mov edx, 0xcb1ca03a
mov r8d, 0xe7a86878
call fcn.2035fde0
test al, 1
je 0x2035e131
mov eax, dword [0x20591ff0]
lea edx, [rax - 0x4cd8def3]
mov ecx, eax
xor ecx, 0xeffff9e0
and eax, 0x6ffff9e0
lea r8d, [rcx + rax*2]
mov rcx, r14
call fcn.2035f9c0
test al, 1
je 0x2035e170
mov qword [rdi + 0x18], rbx
jmp 0x2035d42c
lea rdi, [r15 + r12*2]
add r12, r12
mov rcx, r15
xor edx, edx
mov r8, r12
call fcn.2044feb0
mov rax, qword [rsp + 0x60]
mov qword [rax + 0x48], rdi
mov rdi, qword [rsp + 0x60]
mov rcx, r14
lea r15, [rdi + 8]
test ecx, ecx
mov r14, qword [rsp + 0x98]
jle 0x2035d94e
mov r13d, ecx
xor ebp, ebp
lea rbx, [rsp + 0x50]
lea r12, [rsp + 0x48]
nop
mov rax, qword [rdi]
mov rax, qword [rax + 0x370]
lea rcx, [rbp*4]
add rcx, rbp
shl rcx, 5
lea rdx, [rax + rcx]
mov r8d, dword [rax + rcx + 0x18]
mov r9, qword [r14]
mov r10, rbp
shl r10, 4
lea r10, [r10 + r10*4]
mov qword [r9 + r10], 1
mov dword [r9 + r10 + 0x44], r8d
mov r8, qword [r14]
mov qword [r8 + r10 + 0x10], rdx
mov edx, dword [rax + rcx + 0x24]
mov dword [rsp + 0x28], 0xe93e8e08
mov dword [rsp + 0x20], 0x95000eb5
mov rcx, r15
mov r8, rbx
mov r9, r12
call fcn.2035f8b0
mov rax, qword [rsp + 0x48]
mov rcx, qword [rdi + 0x40]
movzx edx, word [rcx + rax*2]
movzx r8d, word [rsp + 0x50]
xor r8w, dx
mov r9d, r8d
not r9d
and r9d, edx
add r9d, r9d
mov edx, r8d
xor edx, r9d
and r9d, r8d
lea edx, [rdx + r9*2]
mov word [rcx + rax*2], dx
add rbp, qword [0x20591ff8]
add rbp, rsi
cmp rbp, r13
jne 0x2035d8a0
xor r13d, r13d
mov rbx, qword [rsp + 0x90]
test ebx, ebx
jle 0x2035d9a9
movabs r14, 0x2a499bd704241d37
add r14, qword [0x20591ff8]
mov rax, rbx
not rax
mov rcx, rbx
xor rcx, r14
not r14
and r14, rax
or r14, rcx
not r14
lea rcx, [r14 - 1]
and ebx, 3
mov edx, 0x23520831
mov r8d, 0x99a48271
call fcn.2035f5c0
test al, 1
je 0x2035d9b8
xor r12d, r12d
jmp 0x2035db07
movabs rbp, 0xcccccccccccccccd
jmp 0x2035db46
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0x90], rbx
sub r14, rbx
mov qword [rsp + 0x98], r14
xor eax, eax
xor r12d, r12d
xor r13d, r13d
xor ebx, ebx
mov r15, qword [rsp + 0x68]
nop word cs:[rax + rax]
mov rcx, qword [r15]
mov qword [rsp + 0x88], rax
add rcx, rax
mov eax, dword [0x20591ff0]
lea edx, [rax - 0x7a9ea631]
add eax, 0x85357a7a
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], edx
lea rbp, [rsp + 0x48]
mov qword [rsp + 0x28], rbp
lea r14, [rsp + 0x50]
mov qword [rsp + 0x20], r14
mov edx, r13d
mov r8, r12
mov r9, r15
call fcn.2035f780
mov ecx, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
movzx edx, word [rdi]
mov dword [rsp + 0x28], 0xdcf86882
mov dword [rsp + 0x20], 0x99143545
mov r8, rbp
mov r9, r14
call fcn.2035f630
mov ecx, dword [rsp + 0x48]
movzx eax, word [rsp + 0x50]
mov word [rdi], ax
mov edi, r12d
and edi, 3
xor rdi, r12
xor rdi, 3
mov r14, qword [r15]
movzx edx, word [r14 + rdi*2]
mov dword [rsp + 0x20], 0x407c64e4
mov r8, rbp
mov r9d, 0xccb900f8
call fcn.201293b0
mov r13d, dword [rsp + 0x48]
mov word [r14 + rdi*2], r13w
mov eax, dword [0x20591ff0]
lea r8d, [rax + 0x45543b2a]
mov ecx, eax
xor ecx, 0x7f9ab5dc
and eax, 0x7f9ab5dc
lea r9d, [rcx + rax*2]
mov rcx, rbx
mov rdx, rbp
call fcn.202b59c0
mov rbx, qword [rsp + 0x48]
cmp rbx, qword [rsp + 0x98]
je 0x2035daee
mov rax, qword [rsp + 0x88]
add rax, 8
add r12, 4
jmp 0x2035d9f0
add r12, 4
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x90]
mov r15, qword [rsp + 0xa0]
test rbx, rbx
movabs rbp, 0xcccccccccccccccd
je 0x2035db43
dec rbx
nop dword [rax]
mov eax, r13d
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx]
movzx r13d, word [rcx + r12*2]
add r13d, eax
mov word [rcx + r12*2], r13w
sub rbx, 1
jb 0x2035db43
inc r12
jmp 0x2035db20
mov r13d, r13d
mov r12, qword [rdi + 0x28]
mov r14, qword [rdi + 0x30]
mov rbx, r14
sub rbx, r12
sar rbx, 4
imul rbx, rbp
cmp r13, rbx
jae 0x2035dbaf
lea rcx, [r13*4]
add rcx, r13
shl rcx, 4
lea rax, [r12 + rcx]
cmp rax, r14
je 0x2035dbfc
add rcx, r12
add rcx, 0x50
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rcx - 0x14], xmm0
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x30], xmm0
movups xmmword [rcx - 0x40], xmm0
movups xmmword [rcx - 0x50], xmm0
cmp rcx, r14
je 0x2035dbfc
add rcx, 0x50
jmp 0x2035db90
mov rcx, r13
mov rdx, rbx
mov r8d, 0xd9fbcafe
mov r9d, 0x34489f5a
call fcn.2035f840
test al, 1
je 0x2035dc00
mov rax, qword [rdi + 0x38]
sub rax, r12
sar rax, 4
imul rax, rbp
cmp rax, r13
jae 0x2035e081
lea r8, [rsp + 0x80]
mov rcx, qword [rsp + 0xc0]
mov rdx, r13
call fcn.2035e840
jmp 0x2035dc00
mov qword [rdi + 0x30], rax
mov eax, 0xb87c7982
add eax, dword [0x20591ff0]
mov rcx, qword [rsp + 0xb8]
cmp ecx, eax
jle 0x2035dfc4
mov eax, ecx
mov qword [rsp + 0x68], rax
mov r9, qword [rsp + 0xa8]
mov eax, r9d
not eax
mov ecx, r9d
xor ecx, 1
and eax, 0xfffffffe
or eax, ecx
and r9d, 0x7ffffffe
xor eax, 0xffffffff
sete al
setne cl
movzx r10d, byte [0x205b3870]
mov edx, r10d
xor dl, 1
and cl, dl
mov r8d, r10d
and r8b, al
or r8b, cl
mov ecx, r8d
not cl
xor r8b, r10b
and cl, dl
or cl, r8b
xor cl, 1
xor r10b, al
or r10b, cl
mov byte [rsp + 0x88], r10b
add r9d, 0xfffffffe
mov qword [rsp + 0xa8], r9
xor r13d, r13d
lea rdi, [rsp + 0x50]
xor edx, edx
mov r12, qword [rsp + 0xc0]
jmp 0x2035dd04
mov eax, dword [0x20591ff0]
mov edx, eax
xor edx, 0x1b23444c
mov r8d, eax
and r8d, 0x1b23444c
lea edx, [rdx + r8*2]
add eax, 0xd136c8e3
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov rdx, r13
mov r8, qword [rsp + 0x68]
mov r9, rdi
call fcn.2035fb50
mov edx, dword [rsp + 0x50]
mov r13, qword [rsp + 0x48]
test al, 1
jne 0x2035dfc4
mov r10, qword [rsp + 0x60]
mov rax, qword [r10]
mov rax, qword [rax + 0x370]
lea rcx, [r13*4]
add rcx, r13
shl rcx, 5
mov r8d, dword [0x20591ff0]
mov r9d, r8d
xor r9d, 0xc26a9fcc
and r8d, 0x426a9fcc
lea r8d, [r9 + r8*2]
mov r9d, r8d
xor r9d, 0xf611d9b6
and r8d, 0x7611d9b6
lea r8d, [r9 + r8*2]
movsxd rbx, edx
cmp dword [r10 + 8], r8d
jle 0x2035dd97
lea rdx, [rax + rcx]
xor r8d, r8d
nop word cs:[rax + rax]
lea r9, [r8 + rbx]
mov r10, qword [r12]
lea r9, [r9 + r9*4]
shl r9, 4
mov qword [r10 + r9 + 0x10], rdx
add r8, qword [0x20591ff8]
add r8, rsi
movsxd r9, dword [r15]
cmp r8, r9
jl 0x2035dd70
mov eax, dword [rax + rcx + 0x18]
mov ecx, eax
xor ecx, 0xcfffffff
and ecx, eax
mov edx, eax
not edx
mov r8d, eax
and r8d, 0x403fff
mov r9d, edx
and r9d, 0xffbfc000
or r9d, r8d
and edx, 0x403fff
or edx, r9d
cmp ecx, sym.ixptest.exe_Ordinal_1
not edx
cmove edx, eax
mov ebp, edx
not ebp
xor edx, 0xffbfffff
and ebp, 0x400000
or ebp, edx
not ebp
mov rax, qword [r12]
lea rcx, [rbx + rbx*4]
shl rcx, 4
mov qword [rax + rcx], 6
mov dword [rax + rcx + 0x44], ebp
lea eax, [rbx + 1]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 2
mov dword [rcx + rax + 0x44], ebp
lea eax, [rbx + 2]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 3
mov dword [rcx + rax + 0x44], ebp
mov r9d, dword [0x20591ff0]
lea r8d, [r9 + 0x2598230b]
add r9d, 0x352e4438
mov ecx, ebx
lea r14, [rsp + 0x48]
mov rdx, r14
call fcn.2035fa50
mov rax, qword [rsp + 0x48]
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 7
mov dword [rcx + rax + 0x44], ebp
lea eax, [rbx + 4]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 5
mov dword [rcx + rax + 0x44], ebp
lea eax, [rbx + 5]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 1
lea rdx, [rcx + rax]
add rdx, 0x44
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0xd4ff2640
mov dword [rsp + 0x28], 0xb7e011e0
mov ecx, ebp
mov r8d, ebx
mov r9, rdi
call fcn.2035fba0
mov ecx, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x20], 0x9e2a9eee
mov r8, r14
mov r9d, 0x84aac234
call fcn.2035fc40
mov rcx, qword [rsp + 0x48]
movabs rax, 0xd5b66429fbdbe2c5
sub rax, rcx
mov rdx, rcx
shl rdx, 4
lea rdx, [rdx + rdx*4]
add rcx, 2
mov r8, qword [rsp + 0xa8]
nop word cs:[rax + rax]
mov r9, qword [r12]
mov r10, qword [0x20591ff8]
add r10, rsi
mov qword [r9 + rdx], r10
mov dword [r9 + rdx + 0x44], ebp
mov r9, qword [r12]
mov r10, qword [0x20591ff8]
mov r11, r10
xor r11, rsi
and r10, rsi
lea r10, [r11 + r10*2]
mov qword [r9 + rdx + 0x50], r10
mov dword [r9 + rdx + 0x94], ebp
test r8d, r8d
je 0x2035df90
add rax, 0xfffffffffffffffe
add rdx, 0xa0
add rcx, 2
add r8d, 0xfffffffe
jmp 0x2035df30
test byte [rsp + 0x88], 1
jne 0x2035dcb0
mov rcx, qword [r12]
mov qword [rcx + rdx + 0xa0], 1
mov dword [rcx + rdx + 0xe4], ebp
mov rcx, qword [0x20591ff8]
sub rcx, rax
jmp 0x2035dcb0
mov rax, qword [rsp + 0x60]
mov rsi, qword [rax + 0x28]
mov rax, qword [rax + 0x30]
sub rax, rsi
shr rax, 4
imul eax, eax, 0xcccccccd
test eax, eax
movabs rbp, 0xcccccccccccccccd
jle 0x2035d13a
mov ebx, 0x18
mov r14d, 1
movabs r15, 0x89b79d3cf220379c
movabs r12, 0x9b79d3cf220379c
movabs r13, 0x764862c30ddfc864
lea rdi, [rsp + 0x48]
nop
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
mov rax, qword [rax + 0x3a8]
mov qword [rsi + rbx], rax
mov rsi, qword [rcx + 0x28]
mov rax, qword [rcx + 0x30]
mov rcx, rax
xor rcx, r15
and rax, r12
lea rcx, [rcx + rax*2]
sub rcx, rsi
add rcx, r13
sar rcx, 4
imul rcx, rbp
mov rdx, rdi
mov r8d, 0xb9d11608
mov r9d, 0x1a1712c6
call fcn.2035f9f0
movsxd rax, dword [rsp + 0x4c]
cmp r14, rax
jge 0x2035d13a
add rbx, 0x50
inc r14
jmp 0x2035e020
mov r12, r13
sub r12, rbx
je 0x2035e128
not rbx
add r13, rbx
mov rax, r12
not rax
mov rcx, r12
xor rcx, 7
and rax, 0xfffffffffffffff8
or rax, rcx
cmp rax, 0xffffffffffffffff
je 0x2035e101
add r14, 0x50
add rax, 2
xorps xmm0, xmm0
movabs rcx, 0x2a499bd604241d37
nop word cs:[rax + rax]
movups xmmword [r14 - 0x14], xmm0
movups xmmword [r14 - 0x20], xmm0
movups xmmword [r14 - 0x30], xmm0
movups xmmword [r14 - 0x40], xmm0
movups xmmword [r14 - 0x50], xmm0
add r12, qword [0x20591ff8]
add r12, rcx
test rax, rax
je 0x2035e101
add r14, 0x50
inc rax
jmp 0x2035e0d0
mov rax, qword [0x20591ff8]
movabs rcx, 0x2a499bd604241d3f
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rax, [rdx + rax*2]
cmp r13, rax
jae 0x2035e296
mov qword [rdi + 0x30], r14
jmp 0x2035dc00
add rbx, 0x50
add rsi, 2
xorps xmm0, xmm0
nop dword [rax]
movups xmmword [rbx - 0x14], xmm0
movups xmmword [rbx - 0x20], xmm0
movups xmmword [rbx - 0x30], xmm0
movups xmmword [rbx - 0x40], xmm0
movups xmmword [rbx - 0x50], xmm0
mov rax, r12
not rax
lea r12, [rax + r12*2]
test rsi, rsi
je 0x2035d821
add rbx, 0x50
inc rsi
jmp 0x2035e140
add rbx, 0x280
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rbx - 0x244], xmm0
movups xmmword [rbx - 0x250], xmm0
movups xmmword [rbx - 0x260], xmm0
movups xmmword [rbx - 0x270], xmm0
movups xmmword [rbx - 0x280], xmm0
movups xmmword [rbx - 0x230], xmm0
movups xmmword [rbx - 0x220], xmm0
movups xmmword [rbx - 0x210], xmm0
movups xmmword [rbx - 0x200], xmm0
movups xmmword [rbx - 0x1f4], xmm0
movups xmmword [rbx - 0x1e0], xmm0
movups xmmword [rbx - 0x1d0], xmm0
movups xmmword [rbx - 0x1c0], xmm0
movups xmmword [rbx - 0x1b0], xmm0
movups xmmword [rbx - 0x1a4], xmm0
movups xmmword [rbx - 0x190], xmm0
movups xmmword [rbx - 0x180], xmm0
movups xmmword [rbx - 0x170], xmm0
movups xmmword [rbx - 0x160], xmm0
movups xmmword [rbx - 0x154], xmm0
movups xmmword [rbx - 0x104], xmm0
movups xmmword [rbx - 0x110], xmm0
movups xmmword [rbx - 0x120], xmm0
movups xmmword [rbx - 0x130], xmm0
movups xmmword [rbx - 0x140], xmm0
movups xmmword [rbx - 0xf0], xmm0
movups xmmword [rbx - 0xe0], xmm0
movups xmmword [rbx - 0xd0], xmm0
movups xmmword [rbx - 0xc0], xmm0
movups xmmword [rbx - 0xb4], xmm0
movups xmmword [rbx - 0xa0], xmm0
movups xmmword [rbx - 0x90], xmm0
movups xmmword [rbx - 0x80], xmm0
movups xmmword [rbx - 0x70], xmm0
movups xmmword [rbx - 0x64], xmm0
movups xmmword [rbx - 0x50], xmm0
movups xmmword [rbx - 0x40], xmm0
movups xmmword [rbx - 0x30], xmm0
movups xmmword [rbx - 0x20], xmm0
movups xmmword [rbx - 0x14], xmm0
add r12, 0xfffffffffffffff8
je 0x2035d84e
add rbx, 0x280
jmp 0x2035e180
add r12, 0xfffffffffffffff8
add r14, 0x280
mov r13d, dword [rsp + 0xb4]
and r13d, dword [rsp + 0xb0]
xorps xmm6, xmm6
lea rbx, [rsp + 0x48]
nop dword [rax]
movups xmmword [r14 - 0x244], xmm6
movups xmmword [r14 - 0x250], xmm6
movups xmmword [r14 - 0x260], xmm6
movups xmmword [r14 - 0x270], xmm6
movups xmmword [r14 - 0x280], xmm6
movups xmmword [r14 - 0x230], xmm6
movups xmmword [r14 - 0x220], xmm6
movups xmmword [r14 - 0x210], xmm6
movups xmmword [r14 - 0x200], xmm6
movups xmmword [r14 - 0x1f4], xmm6
movups xmmword [r14 - 0x1e0], xmm6
movups xmmword [r14 - 0x1d0], xmm6
movups xmmword [r14 - 0x1c0], xmm6
movups xmmword [r14 - 0x1b0], xmm6
movups xmmword [r14 - 0x1a4], xmm6
movups xmmword [r14 - 0x190], xmm6
movups xmmword [r14 - 0x180], xmm6
movups xmmword [r14 - 0x170], xmm6
movups xmmword [r14 - 0x160], xmm6
movups xmmword [r14 - 0x154], xmm6
movups xmmword [r14 - 0x104], xmm6
movups xmmword [r14 - 0x110], xmm6
movups xmmword [r14 - 0x120], xmm6
movups xmmword [r14 - 0x130], xmm6
movups xmmword [r14 - 0x140], xmm6
cmp r13d, 1
mov ebp, 0
sbb ebp, ebp
movzx ecx, byte [0x2048f95a]
mov eax, dword [0x20591ff0]
mov edx, eax
xor edx, 0x66c3ea7a
mov r8d, eax
and r8d, 0x66c3ea7a
lea r9d, [rdx + r8*2]
add eax, 0x2755a03c
mov dword [rsp + 0x20], eax
mov edx, dword [rsp + 0x5c]
mov r8, rbx
call fcn.20129b30
movzx ecx, byte [rsp + 0x48]
mov dword [rsp + 0x20], 0xe42f9854
mov edx, ebp
mov r8, rbx
mov r9d, 0x13f2aee5
call fcn.2035fe20
cmp byte [rsp + 0x48], 0
setne al
or al, byte [0x205b3870]
and al, 1
mov byte [0x205b3870], al
movups xmmword [r14 - 0xb4], xmm6
movups xmmword [r14 - 0xc0], xmm6
movups xmmword [r14 - 0xd0], xmm6
movups xmmword [r14 - 0xe0], xmm6
movups xmmword [r14 - 0xf0], xmm6
movups xmmword [r14 - 0xa0], xmm6
movups xmmword [r14 - 0x90], xmm6
movups xmmword [r14 - 0x80], xmm6
movups xmmword [r14 - 0x70], xmm6
movups xmmword [r14 - 0x64], xmm6
movups xmmword [r14 - 0x50], xmm6
movups xmmword [r14 - 0x40], xmm6
movups xmmword [r14 - 0x30], xmm6
movups xmmword [r14 - 0x20], xmm6
movups xmmword [r14 - 0x14], xmm6
test r12, r12
je 0x2035e128
add r12, 0xfffffffffffffff8
add r14, 0x280
jmp 0x2035e2c0