Function at 0x180001090
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x180020a70], 0xa
setl dl
or dl, al
je 0x180001110
mov r13d, dword [0x180020a74]
mov r15d, dword [0x180020a78]
mov r10b, byte [section..data]
mov r11b, byte [0x180004001]
mov r14b, byte [0x180004002]
mov r12b, byte [0x180004003]
lea eax, [r13 - 1]
imul eax, r13d
mov dword [rbp], eax
test al, 1
sete al
cmp r15d, 0xa
setl bl
or bl, al
mov esi, r15d
mov edi, r13d
jmp 0x180001143
jmp 0x180001110
test al, 1
sete al
cmp esi, 0xa
setl cl
or cl, al
mov eax, ecx
or al, bl
test cl, cl
cmove esi, r15d
cmove edi, r13d
test al, al
je 0x1800011c0
mov eax, 0x10
call entry0
sub rsp, rax
mov rcx, rsp
mov eax, 0x10
call entry0
sub rsp, rax
mov r9, rsp
lea eax, [rdi - 1]
imul eax, edi
mov r8d, eax
and r8d, 1
cmp esi, 0xa
jl 0x18000117a
test r8d, r8d
jne 0x1800011b0
mov byte [rcx], r10b
mov byte [rcx + 1], r11b
mov byte [rcx + 2], r14b
mov byte [rcx + 3], r12b
test dl, dl
jne 0x1800011c2
cmp esi, 0xa
jl 0x180001120
test r8d, r8d
je 0x180001120
nop word [rax + rax]
jmp 0x1800011a0
jmp 0x1800011b0
jmp 0x1800011c0
mov r10d, dword [rcx]
test r10, r10
je 0x1800012f7
xor eax, eax
cmp r10d, 0x10
jb 0x1800012bd
lea rcx, [r10 - 1]
cmp rcx, 0x400
jae 0x1800012bd
mov eax, r10d
and eax, 0xfffffff0
lea rdx, [rax - 0x10]
mov rcx, rdx
shr rcx, 4
add rcx, 1
mov r8d, ecx
and r8d, 1
test rdx, rdx
je 0x180001283
mov rdx, r8
sub rdx, rcx
xor ebx, ebx
lea rsi, section..data
movaps xmm0, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f]
nop word cs:[rax + rax]
nop dword [rax]
mov ecx, ebx
and ecx, 0x3e0
movups xmm1, xmmword [rcx + rsi + 4]
movups xmm2, xmmword [rbx + rsi + 0x404]
xorps xmm2, xmm1
movups xmm1, xmmword [rbx + rsi + 0x414]
xorps xmm2, xmm0
movups xmmword [rbx + rsi + 0x404], xmm2
lea ecx, [rbx + 0x10]
and ecx, 0x3f0
movups xmm2, xmmword [rcx + rsi + 4]
xorps xmm1, xmm0
xorps xmm1, xmm2
movups xmmword [rbx + rsi + 0x414], xmm1
add rbx, 0x20
add rdx, 2
jne 0x180001230
jmp 0x180001285
xor ebx, ebx
test r8, r8
je 0x1800012b8
mov ecx, ebx
and ecx, 0x3f0
lea rdx, section..data
movups xmm0, xmmword [rcx + rdx + 4]
movups xmm1, xmmword [rbx + rdx + 0x404]
xorps xmm1, xmm0
xorps xmm1, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f]
movups xmmword [rbx + rdx + 0x404], xmm1
cmp rax, r10
je 0x1800012f7
lea rcx, section..data
nop word cs:[rax + rax]
nop
mov edx, eax
and edx, 0x3ff
movzx edx, byte [rdx + rcx + 4]
xor dl, byte [rax + rcx + 0x404]
xor dl, 0xc
mov byte [rax + rcx + 0x404], dl
add rax, 1
cmp rax, r10
jb 0x1800012d0
cmp r15d, 0xa
jl 0x180001312
and dword [rbp], 1
je 0x180001312
nop word cs:[rax + rax]
nop dword [rax]
jmp 0x180001310
lea rdi, section..data
lea rsi, [r10 + rdi]
add rsi, 0x404
mov al, byte [rsi]
mov byte [r9], al
mov al, byte [rsi + 1]
mov byte [r9 + 1], al
mov al, byte [rsi + 2]
mov byte [r9 + 2], al
mov al, byte [rsi + 3]
mov byte [r9 + 3], al
add rsi, 4
mov r9d, dword [r9]
test r9, r9
mov qword [rbp], rsi
je 0x18000159c
xor edx, edx
cmp r9d, 0x20
jb 0x180001477
lea rax, [r9 - 1]
cmp rax, 0x400
jae 0x180001477
lea rax, [r10 + rdi]
add rax, 0x408
lea rdx, [r9 + rdi]
add rdx, 4
cmp rax, rdx
jae 0x1800013a5
lea rax, [r9 + r10]
add rax, rdi
add rax, 0x408
lea rdx, str.ilZFyyyAZBfWzITCsyGbmTkazTDRyrGqtqYOcCzLayYuzFyuhKZicDrImaPtlAyJllUUjYqnHjjnpGfnECweERpWqyjlgBEyaHjTtSTdPECnpcoyoOryTtAjMCHLPGSnGxcnCCcyZLisRCHQZLlPmntpeAvVLUEdlbVSAQqQULQIgGrbDrxfwutbEOXbSLlRxpZFXlFSqkEbngzQhhFQEaxGIoxaxUHAlrnLvFvQnxVaKJOqqjCuLECRRDvZlXoxZpzeWmksOPrRUpqhxivGoFlMmoGSlObbwRJOpGxGFHoxCOsrzqfXbKwzkfEgWgtyQOGdQjklIavcTLeWbYnYjXkHkreDkcnbcXSyEbZIWVGXsIlTRzrcRIeKORjiOVIukPikJORWEcIlbszCMUZLweghiykBoWFlargHaKPxWEWGhwITSlkPuJVsOsLDoiCeOJFuTCZIUtHHYSbhMEKiXszmEAgrjWEcyzKoaQYUdPqXfvQFOmxAmmZfnhygPZJePBPoYQSwIPjuCIsCTYmJrsalEYKspQyIWfzGmloCCUOemfygGfDPGCkrAQwMpnYkqhLLMCTWMJSnVyyWnfKBZXkGfFfJPbodZfhLKfontWYwOsLfGaLwECiMCRsLgFAbIDjWqCkhLsXOtJeiOWXHcjPMnAiJeSpThkdsftQhKQsJJlVEqAxdTynkIqmCpVmrujMLAsoowLcmCAfrBCemvuPFxwBZSnbdCqwathSbdFhnKyEqtUXyYODvUkrvhmplSAiPUlOQZdZlqSPTwUwMlKUzsxFWazmSIIiwJrOaHkmrskhPtDIMjiymYiirizDyBUYZoIgXJQQzmVETdCetRvgwtSaGLDZFhLUjcgeXVJSRQkFOauTlZffrXfYBIQKJPUYyOyyJJLrglgJjquXfuGKkHGFXVJaewhCbFSguDvwuDASmprAZIQPHgknZKBEHjrJHIjpLnohtrhDZRFcERkhrEGbZMUqjLUowsKuMEyIZUyvYZIQsMLiqZrPXeOu
cmp rax, rdx
jbe 0x1800013a5
xor edx, edx
jmp 0x180001477
mov edx, r9d
and edx, 0xffffffe0
lea rbx, [rdx - 0x20]
mov rax, rbx
shr rax, 5
add rax, 1
mov r8d, eax
and r8d, 1
test rbx, rbx
je 0x18000143a
lea rsi, [r10 + rdi]
add rsi, 0x438
mov rbx, r8
sub rbx, rax
xor ecx, ecx
mov eax, ecx
and eax, 0x3c0
movups xmm0, xmmword [rax + rdi + 4]
movups xmm1, xmmword [rax + rdi + 0x14]
movups xmm2, xmmword [rsi + rcx - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rsi + rcx - 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rsi + rcx - 0x10]
movups xmm3, xmmword [rsi + rcx]
movups xmmword [rsi + rcx - 0x30], xmm2
movups xmmword [rsi + rcx - 0x20], xmm0
lea eax, [rcx + 0x20]
and eax, 0x3e0
movups xmm0, xmmword [rax + rdi + 4]
xorps xmm0, xmm1
movups xmm1, xmmword [rax + rdi + 0x14]
xorps xmm1, xmm3
movups xmmword [rsi + rcx - 0x10], xmm0
movups xmmword [rsi + rcx], xmm1
add rcx, 0x40
add rbx, 2
jne 0x1800013d9
jmp 0x18000143c
xor ecx, ecx
test r8, r8
mov rsi, qword [rbp]
je 0x18000146e
mov eax, ecx
and eax, 0x3e0
movups xmm0, xmmword [rax + rdi + 4]
movups xmm1, xmmword [rax + rdi + 0x14]
movups xmm2, xmmword [rsi + rcx]
xorps xmm2, xmm0
movups xmm0, xmmword [rsi + rcx + 0x10]
xorps xmm0, xmm1
movups xmmword [rsi + rcx], xmm2
movups xmmword [rsi + rcx + 0x10], xmm0
cmp rdx, r9
je 0x18000159c
lea rax, [r10 + rdi]
add rax, 0x408
nop word cs:[rax + rax]
nop dword [rax + rax]
mov ecx, edx
and ecx, 0x3ff
movzx ecx, byte [rcx + rdi + 4]
xor byte [rax + rdx], cl
add rdx, 1
cmp rdx, r9
jb 0x180001490
jmp 0x18000159c
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x1800014b0
mov r15, r14
nop dword [rax]
cmp byte [r15], 0
lea r15, [r15 + 1]
jne 0x1800014c0
mov rdi, r15
nop dword [rax]
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x1800014d0
nop dword [rax]
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x1800014e0
mov rsi, rdi
nop dword [rax]
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x1800014f0
mov rbx, rsi
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x180001500
sub rsp, 0x20
mov rcx, r14
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rsi
call rax
mov rcx, rax
mov rdx, rdi
call fcn.180001ea0
sub rsp, 0x10
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, rbx
mov r8, rbx
call rax
add rsp, 0x10
mov rcx, r14
call fcn.180001fd0
mov rcx, rax
mov rsi, qword [rbp]
mov rdx, rsi
call fcn.180001ea0
add rsp, 0x20
lea rdi, section..data
mov edx, dword [r12 + rdi + 0x454]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call rax
add rsp, 0x20
cmp dword [0x180020a7c], 0xa
jl 0x1800015ba
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001720
movsxd rax, dword [0x180004440]
lea r14, [rax + rdi]
add r14, 0x404
mov r12, rsi
nop
cmp byte [r12], 0
lea r12, [r12 + 1]
jne 0x1800015d0
mov r15, r12
nop
cmp byte [r15], 0
lea r15, [r15 + 1]
jne 0x1800015e0
mov r13, r15
nop dword [rax]
cmp byte [r13], 0
lea r13, [r13 + 1]
jne 0x1800015f0
mov rdi, r13
nop
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x180001600
mov rbx, rdi
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x180001610
mov rsi, rbx
nop dword [rax]
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x180001620
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rbx
call rax
mov rcx, rax
mov rdx, rdi
call fcn.180001ea0
sub rsp, 0x10
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, rsi
mov r8, rsi
call rax
add rsp, 0x10
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rsi, qword [rbp]
mov rdx, rsi
call fcn.180001ea0
add rsp, 0x20
mov qword [rbp - 8], r14
mov edx, dword [r14 + 0x50]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call rax
add rsp, 0x20
mov r14, rax
mov edi, dword [0x180020a6c]
mov ebx, dword [0x180020a70]
lea eax, [rdi - 1]
imul eax, edi
and eax, 1
cmp ebx, 0xa
jl 0x180001722
test eax, eax
je 0x180001722
movsxd r12, dword [0x180004440]
cmp dword [0x180020a7c], 0xa
mov r14, rsi
jl 0x1800014b0
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
mov r14, rsi
and ecx, 1
je 0x1800014b0
nop word cs:[rax + rax]
nop
jmp 0x180001710
jmp 0x180001720
cmp ebx, 0xa
jl 0x180001732
test eax, eax
je 0x180001732
nop dword [rax + rax]
jmp 0x180001730
mov rax, qword [rbp - 8]
lea r9, [rax + 0x108]
xor r10d, r10d
mov rax, qword [rbp - 8]
movzx eax, word [rax + 6]
cmp r10, rax
jae 0x180001982
mov esi, dword [0x180020a74]
mov ecx, dword [0x180020a78]
lea rax, [r10 + r10*4]
lea r11, [r9 + rax*8]
add r11, 0x10
lea rdx, [r9 + rax*8]
add rdx, 0x14
mov qword [rbp], rdx
lea rax, [r9 + rax*8]
add rax, 0xc
mov qword [rbp - 0x10], rax
mov ebx, dword [r11]
lea eax, [rsi - 1]
imul eax, esi
test al, 1
sete al
cmp ecx, 0xa
setl r8b
or r8b, al
test rbx, rbx
je 0x180001828
mov rax, qword [rbp]
mov eax, dword [rax]
lea rdx, section..data
lea rdi, [rax + rdx]
add rdi, 0x404
mov rax, qword [rbp - 0x10]
mov edx, dword [rax]
add rdx, r14
test r8b, 1
jne 0x1800017e8
jmp 0x180001930
add rdi, 1
add rdx, 1
mov r8b, 1
test rbx, rbx
je 0x180001831
test r8b, 1
je 0x180001930
cmp ecx, 0xa
jl 0x1800017fc
lea eax, [rsi - 1]
imul eax, esi
and eax, 1
jne 0x180001940
add rbx, 0xffffffffffffffff
movzx eax, byte [rdi]
mov byte [rdx], al
mov esi, dword [0x180020a74]
mov ecx, dword [0x180020a78]
cmp ecx, 0xa
jl 0x1800017ce
lea eax, [rsi - 1]
imul eax, esi
and eax, 1
je 0x1800017ce
movzx eax, byte [rdi]
mov byte [rdx], al
jmp 0x180001800
test r8b, r8b
je 0x180001970
mov edi, dword [0x180020a6c]
mov ebx, dword [0x180020a70]
lea eax, [rdi - 1]
imul eax, edi
and eax, 1
cmp ebx, 0xa
jl 0x180001912
test eax, eax
je 0x180001912
mov ebx, dword [r11]
lea eax, [rsi - 1]
imul eax, esi
test al, 1
sete dl
cmp ecx, 0xa
setl al
or al, dl
test rbx, rbx
je 0x180001908
mov rdx, qword [rbp]
mov edx, dword [rdx]
lea rdi, section..data
add rdi, rdx
add rdi, 0x404
mov rdx, qword [rbp - 0x10]
mov edx, dword [rdx]
add rdx, r14
test al, 1
jne 0x1800018ba
jmp 0x180001950
add rdi, 1
add rdx, 1
mov al, 1
test rbx, rbx
je 0x180001781
test al, 1
je 0x180001950
cmp ecx, 0xa
jl 0x1800018ce
lea eax, [rsi - 1]
imul eax, esi
and eax, 1
jne 0x180001960
add rbx, 0xffffffffffffffff
nop word cs:[rax + rax]
nop dword [rax]
movzx eax, byte [rdi]
mov byte [rdx], al
mov esi, dword [0x180020a74]
mov ecx, dword [0x180020a78]
cmp ecx, 0xa
jl 0x18000189f
lea eax, [rsi - 1]
imul eax, esi
and eax, 1
je 0x18000189f
movzx eax, byte [rdi]
mov byte [rdx], al
jmp 0x1800018e0
test al, al
jne 0x180001781
jmp 0x180001980
add r10, 1
cmp ebx, 0xa
jl 0x180001740
test eax, eax
je 0x180001740
jmp 0x180001730
jmp 0x180001930
jmp 0x180001940
jmp 0x180001950
jmp 0x180001960
jmp 0x180001970
jmp 0x180001980
mov rax, qword [rbp - 8]
mov rcx, qword [rax + 0x30]
mov rax, r14
sub rax, rcx
cmp ebx, 0xa
jl 0x1800019a2
lea ecx, [rdi - 1]
imul ecx, edi
and ecx, 1
je 0x1800019a2
jmp 0x1800019a0
mov rcx, qword [rbp - 8]
mov ecx, dword [rcx + 0xb0]
add rcx, r14
movabs r8, 0x1fffffff8
cmp dword [rcx], 0
je 0x180001ba2
mov edx, dword [rcx + 4]
cmp rdx, 8
jb 0x180001b6c
cmp ebx, 0xa
jl 0x1800019e3
lea esi, [rdi - 1]
imul esi, edi
and esi, 1
jne 0x180001b9a
add rdx, r8
shr rdx, 1
mov r9d, edx
xor r10d, r10d
cmp r10, r9
je 0x180001b6c
movzx esi, word [rcx + r10*2 + 8]
mov edx, esi
shr edx, 0xc
mov r11d, esi
and r11d, 0xfff
cmp esi, 0xa000
jae 0x180001ad2
cmp edx, 3
jne 0x180001b43
mov edx, dword [rcx]
lea rdx, [r14 + rdx*4]
add dword [rdx + r11*4], eax
mov edi, dword [0x180020a6c]
mov ebx, dword [0x180020a70]
cmp ebx, 0xa
jl 0x180001b43
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
je 0x180001b43
lea rsi, [r14 + r11*4]
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
cmp ebx, 0xa
jl 0x180001a80
test edx, edx
je 0x180001a80
mov edx, dword [rcx]
add dword [rsi + rdx*4], eax
mov edi, dword [0x180020a6c]
mov ebx, dword [0x180020a70]
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
cmp ebx, 0xa
jl 0x180001a89
test edx, edx
jne 0x180001aa8
mov edx, dword [rcx]
add dword [rsi + rdx*4], eax
cmp dword [0x180020a70], 0xa
jl 0x180001aaf
mov edx, dword [0x180020a6c]
lea ebx, [rdx - 1]
imul ebx, edx
and ebx, 1
je 0x180001aaf
mov edx, dword [rcx]
add dword [rsi + rdx*4], eax
jmp 0x180001a89
mov edx, dword [rcx]
add dword [rsi + rdx*4], eax
mov edi, dword [0x180020a6c]
mov ebx, dword [0x180020a70]
cmp ebx, 0xa
jl 0x180001b43
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
jne 0x180001a54
jmp 0x180001b43
cmp edx, 0xa
jne 0x180001b43
cmp ebx, 0xa
jl 0x180001aeb
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
jne 0x180001b9e
mov esi, r11d
add rsi, r14
mov edx, dword [rcx]
add qword [rdx + rsi], rax
jmp 0x180001aff
mov edx, dword [rcx]
add qword [rsi + rdx], rax
mov edi, dword [0x180020a6c]
mov ebx, dword [0x180020a70]
cmp ebx, 0xa
jl 0x180001b43
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
je 0x180001b43
mov edx, dword [rcx]
add qword [rsi + rdx], rax
mov edx, dword [rcx]
add qword [rsi + rdx], rax
cmp dword [0x180020a70], 0xa
jl 0x180001af9
mov edx, dword [0x180020a6c]
lea ebx, [rdx - 1]
imul ebx, edx
and ebx, 1
jne 0x180001b1b
jmp 0x180001af9
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
cmp ebx, 0xa
jl 0x180001b55
test edx, edx
jne 0x180001b9c
add r10, 1
cmp ebx, 0xa
jl 0x1800019ef
test edx, edx
je 0x1800019ef
jmp 0x180001b9a
lea edx, [rdi - 1]
imul edx, edi
and edx, 1
cmp ebx, 0xa
jl 0x180001b7e
test edx, edx
jne 0x180001ba0
mov esi, dword [rcx + 4]
add rcx, rsi
cmp ebx, 0xa
jl 0x1800019b9
test edx, edx
je 0x1800019b9
jmp 0x1800019a0
jmp 0x180001b9a
jmp 0x180001b9c
jmp 0x180001b9e
jmp 0x180001ba0
cmp ebx, 0xa
jl 0x180001bb4
lea eax, [rdi - 1]
imul eax, edi
and eax, 1
je 0x180001bb4
jmp 0x180001bb2
lea rax, [r14 + 2]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x90]
add rax, r14
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
mov esi, dword [rax + 0xc]
test rsi, rsi
je 0x180001e1f
add rsi, r14
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rsi
call rax
add rsp, 0x20
mov rdi, rax
mov eax, dword [0x180020a6c]
mov ecx, dword [0x180020a70]
cmp ecx, 0xa
jl 0x180001d29
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x180001d29
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rsi
call rax
add rsp, 0x20
mov edx, dword [0x180020a6c]
mov ecx, dword [0x180020a70]
lea eax, [rdx - 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x180001cbc
test eax, eax
je 0x180001cbc
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rsi
call rax
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rsi
call rax
add rsp, 0x20
cmp dword [0x180020a70], 0xa
jl 0x180001c27
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001c65
jmp 0x180001c27
cmp ecx, 0xa
jl 0x180001cc9
test eax, eax
jne 0x180001e1d
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rsi
call rax
add rsp, 0x20
cmp dword [0x180020a70], 0xa
jl 0x180001be0
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001be0
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r15
call fcn.180001ea0
mov rcx, rsi
call rax
jmp 0x180001ccd
cmp ecx, 0xa
jl 0x180001d3d
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001e1b
mov rdx, qword [rbp - 0x18]
mov esi, dword [rdx]
mov ebx, dword [rdx + 0x10]
add rbx, r14
add rsi, r14
mov qword [rbp], rsi
mov rdx, qword [rbp]
mov rdx, qword [rdx]
test rdx, rdx
je 0x180001df9
mov rax, qword [rbp - 0x10]
add rax, rdx
test rdx, rdx
movzx esi, dx
cmovns rsi, rax
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r13
call fcn.180001ea0
mov rcx, rdi
mov rdx, rsi
call rax
add rsp, 0x20
mov qword [rbx], rax
mov eax, dword [0x180020a6c]
mov ecx, dword [0x180020a70]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x180001ddd
test edx, edx
je 0x180001ddd
sub rsp, 0x20
mov rcx, r12
call fcn.180001fd0
mov rcx, rax
mov rdx, r13
call fcn.180001ea0
mov rcx, rdi
mov rdx, rsi
call rax
add rsp, 0x20
mov qword [rbx], rax
jmp 0x180001d71
add qword [rbp], 8
add rbx, 8
cmp ecx, 0xa
jl 0x180001d50
test edx, edx
je 0x180001d50
jmp 0x180001e1b
add qword [rbp - 0x18], 0x14
cmp ecx, 0xa
jl 0x180001bcd
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001bcd
jmp 0x180001bb2
jmp 0x180001e1b
jmp 0x180001e1d
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x28]
add rax, r14
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a70], 0xa
jl 0x180001e8b
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001e8b
mov rsi, qword [rbp - 8]
mov eax, dword [rsi + 0x28]
add rax, r14
sub rsp, 0x20
call rax
add rsp, 0x20
mov eax, dword [rsi + 0x28]
add rax, r14
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a70], 0xa
jl 0x180001e8b
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001e51
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret