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, 0x48
lea rbp, [rsp + 0x40]
cmp dword [0x180020a6c], 0xa
jl 0x1800010c2
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800010c2
nop
jmp 0x1800010c0
mov eax, 0x10
call entry0
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call entry0
sub rsp, rax
mov rsi, rsp
sub rsp, 0x20
lea r15, section..data
mov r8d, 4
mov rcx, rdi
mov rdx, r15
call fcn.180001d70
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x1800011a9
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800011a9
lea rbx, section..data
nop dword [rax + rax]
mov eax, 0x10
call entry0
sub rsp, rax
mov rcx, rsp
sub rsp, 0x20
mov r8d, 4
mov rdx, rbx
call fcn.180001d70
add rsp, 0x20
mov eax, 0x10
call entry0
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call entry0
sub rsp, rax
mov rsi, rsp
sub rsp, 0x20
mov r8d, 4
mov rcx, rdi
mov rdx, rbx
call fcn.180001d70
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x1800011a9
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001130
mov r14d, dword [rdi]
test r14, r14
je 0x1800012ca
xor eax, eax
cmp r14d, 0x10
jb 0x1800012a0
lea rcx, [r14 - 1]
cmp rcx, 0x400
jae 0x1800012a0
mov eax, r14d
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 0x180001437
mov rdx, r8
sub rdx, rcx
xor ebx, ebx
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]
mov ecx, ebx
and ecx, 0x3e0
movups xmm1, xmmword [rcx + r15 + 4]
movups xmm2, xmmword [rbx + r15 + 0x404]
xorps xmm2, xmm1
movups xmm1, xmmword [rbx + r15 + 0x414]
xorps xmm2, xmm0
movups xmmword [rbx + r15 + 0x404], xmm2
lea ecx, [rbx + 0x10]
and ecx, 0x3f0
movups xmm2, xmmword [rcx + r15 + 4]
xorps xmm1, xmm0
xorps xmm1, xmm2
movups xmmword [rbx + r15 + 0x414], xmm1
add rbx, 0x20
add rdx, 2
jne 0x180001210
test r8, r8
je 0x180001296
mov ecx, ebx
and ecx, 0x3f0
movups xmm0, xmmword [rcx + r15 + 4]
movups xmm1, xmmword [rbx + r15 + 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 + r15 + 0x404], xmm1
cmp rax, r14
je 0x1800012ca
nop dword [rax + rax]
mov ecx, eax
and ecx, 0x3ff
movzx ecx, byte [rcx + r15 + 4]
xor cl, byte [rax + r15 + 0x404]
xor cl, 0xc
mov byte [rax + r15 + 0x404], cl
add rax, 1
cmp rax, r14
jb 0x1800012a0
lea rbx, [r14 + r15]
add rbx, 0x404
sub rsp, 0x20
nop dword [rax]
mov r8d, 4
mov rcx, rsi
mov rdx, rbx
call fcn.180001d70
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001326
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001326
sub rsp, 0x20
mov r8d, 4
mov rcx, rsi
mov rdx, rbx
call fcn.180001d70
jmp 0x1800012e0
add rbx, 4
mov r9d, dword [rsi]
test r9, r9
mov qword [rbp - 0x10], rbx
je 0x1800015ac
xor eax, eax
cmp r9d, 0x20
jb 0x180001487
lea rdx, [r9 - 1]
cmp rdx, 0x400
jae 0x180001487
lea rcx, [r14 + r15]
add rcx, 0x408
lea rdx, [r9 + r15]
add rdx, 4
cmp rcx, rdx
jae 0x180001390
lea rcx, [r9 + r14]
add rcx, r15
add rcx, 0x408
lea rdx, str.sxmAXfMLgRZjPSEKygjLRYWiTogcxwfRjrxKQToxzpOpnypxvQaAmHhJRfmfSzylrnLcPjIRrqoDIydpSiRhzkyfqncxGDKOFfFdthhptKlcDIRZJejKUuPBbQzWwXHJdObxhiGJLomsHoofjwAypnDdYRyAWfoBEgXCmVmnqUYQhjoKVgKSGeddaWQQWUsmXfMPvQrgWrwSreTlndISwXLUoKoDOSpjKfpqxcWPfCjcGWtuZlkipijKppgkTrKFLFrrOFoioVIfAVnWFbdetRMjuRdOnwXGodInRkRCJOqvBcJwCxyfZqAmMzMVbzAqtWwFhRJFvfAxPBdsaZGPvMkpPwnYQjIcVkSBSLOxRqDtawxDAFhudzngsTHusrsgeuyUjxebJrOwXbIQXSgpXLsTgxwQbIJOwcTDspujcIseaRKLbmCbhtReaZDwifcdqidJPoiIMnATfhMrLqYkngomQGahPQyZwQbzUMcGbhUzMCJFYGPibwWgIJCyXMJtpdHQHovfwoCQbviQupVRPaMzBuefOhkbMzRkJlrzQlDohRwiAtkQtRWYJcqqYaFDZKtPjkfGtzXCRhdOJZvQPHRAnxBdqCRDZRDTsfhkhJgVvBKfdMTIBAcDHuTWKRTXDZHtceiowSAjqtrchpLwlIRVhOZHegCzWQQuhbCTyEYzbrctmPhldIjkQSYdxxRZcZhGhhtSMYRADtgLBvORRsOAfcrKXkSxljOWEtXYEhQcgIHIZrhIsoAROkfKKUbwfEmPhVLTInjdUJrGUnPQeoYXsMkUBUvPjvbszMVhYvDkJHFwVuJyaZxIoDBGLQQrLVFvZGVIQRHJTEfRZznzKMyePEXBLckJTPSTvdRQrjXVVmHuWptsSnKlwMMQBlOwepHOPqxOcgBWqhpHReukITDyFbkQjMWAiMPRgwpilvUTLdpZIEDoAoIkBsbATQmnjucUBkdYznWDREfjLiHBLvQBmmSCOsAvgCFvHLjDRWdzsCrUeESyRaaEgkqKLeO
cmp rcx, rdx
jbe 0x180001390
xor eax, eax
jmp 0x180001487
mov eax, r9d
and eax, 0xffffffe0
lea rbx, [rax - 0x20]
mov rdx, rbx
shr rdx, 5
add rdx, 1
mov r8d, edx
and r8d, 1
test rbx, rbx
je 0x180001447
lea rsi, [r14 + r15]
add rsi, 0x438
mov rbx, r8
sub rbx, rdx
xor edi, edi
nop dword [rax + rax]
mov edx, edi
and edx, 0x3c0
movups xmm0, xmmword [rdx + r15 + 4]
movups xmm1, xmmword [rdx + r15 + 0x14]
movups xmm2, xmmword [rsi + rdi - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rsi + rdi - 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rsi + rdi - 0x10]
movups xmm3, xmmword [rsi + rdi]
movups xmmword [rsi + rdi - 0x30], xmm2
movups xmmword [rsi + rdi - 0x20], xmm0
lea edx, [rdi + 0x20]
and edx, 0x3e0
movups xmm0, xmmword [rdx + r15 + 4]
xorps xmm0, xmm1
movups xmm1, xmmword [rdx + r15 + 0x14]
xorps xmm1, xmm3
movups xmmword [rsi + rdi - 0x10], xmm0
movups xmmword [rsi + rdi], xmm1
add rdi, 0x40
add rbx, 2
jne 0x1800013d0
jmp 0x180001449
xor ebx, ebx
test r8, r8
jne 0x18000126c
jmp 0x180001296
xor edi, edi
test r8, r8
mov rbx, qword [rbp - 0x10]
je 0x18000147e
mov edx, edi
and edx, 0x3e0
movups xmm0, xmmword [rdx + r15 + 4]
movups xmm1, xmmword [rdx + r15 + 0x14]
movups xmm2, xmmword [rbx + rdi]
xorps xmm2, xmm0
movups xmm0, xmmword [rbx + rdi + 0x10]
xorps xmm0, xmm1
movups xmmword [rbx + rdi], xmm2
movups xmmword [rbx + rdi + 0x10], xmm0
cmp rax, r9
je 0x1800015ac
lea rdx, [r14 + r15]
add rdx, 0x408
nop word cs:[rax + rax]
nop dword [rax]
mov ecx, eax
and ecx, 0x3ff
movzx ecx, byte [rcx + r15 + 4]
xor byte [rdx + rax], cl
add rax, 1
cmp rax, r9
jb 0x1800014a0
jmp 0x1800015ac
cmp byte [r15], 0
lea r15, [r15 + 1]
jne 0x1800014c0
mov r14, r15
nop dword [rax]
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x1800014d0
mov rdi, r14
nop dword [rax]
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x1800014e0
nop dword [rax]
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x1800014f0
mov rsi, rdi
nop dword [rax]
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x180001500
mov rbx, rsi
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x180001510
sub rsp, 0x20
mov rcx, r15
call fcn.180002000
mov rcx, rax
mov rdx, r14
call fcn.180001ed0
mov rcx, rsi
call rax
mov rcx, rax
mov rdx, rdi
call fcn.180001ed0
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, r15
call fcn.180002000
mov rcx, rax
mov rbx, qword [rbp - 0x10]
mov rdx, rbx
call fcn.180001ed0
add rsp, 0x20
lea r15, section..data
mov edx, dword [r12 + r15 + 0x454]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call rax
add rsp, 0x20
cmp dword [0x180020a74], 0xa
jl 0x1800015ca
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001730
movsxd rax, dword [0x180004440]
add r15, rax
add r15, 0x404
mov r14, rbx
nop
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x1800015e0
mov r12, r14
nop dword [rax]
cmp byte [r12], 0
lea r12, [r12 + 1]
jne 0x1800015f0
mov r13, r12
nop
cmp byte [r13], 0
lea r13, [r13 + 1]
jne 0x180001600
mov rdi, r13
nop
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x180001610
mov rbx, rdi
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x180001620
mov rsi, rbx
nop dword [rax]
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x180001630
sub rsp, 0x20
mov rcx, r14
call fcn.180002000
mov rcx, rax
mov rdx, r12
call fcn.180001ed0
mov rcx, rbx
call rax
mov rcx, rax
mov rdx, rdi
call fcn.180001ed0
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, r14
call fcn.180002000
mov rcx, rax
mov rsi, qword [rbp - 0x10]
mov rdx, rsi
call fcn.180001ed0
add rsp, 0x20
mov qword [rbp - 8], r15
mov edx, dword [r15 + 0x50]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call rax
add rsp, 0x20
mov qword [rbp], rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x180001732
test edx, edx
je 0x180001732
movsxd r12, dword [0x180004440]
cmp dword [0x180020a74], 0xa
mov r15, rsi
jl 0x1800014c0
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
mov r15, rsi
and ecx, 1
je 0x1800014c0
nop word cs:[rax + rax]
jmp 0x180001720
jmp 0x180001730
cmp ecx, 0xa
jl 0x18000173f
test edx, edx
jne 0x1800018f0
mov rdx, qword [rbp - 8]
add rdx, 0x108
mov qword [rbp - 0x20], rdx
xor ebx, ebx
mov qword [rbp - 0x30], r14
nop word cs:[rax + rax]
nop
mov rdx, qword [rbp - 8]
movzx edx, word [rdx + 6]
cmp rbx, rdx
jae 0x1800018f2
mov qword [rbp - 0x38], rbx
lea rsi, [rbx + rbx*4]
mov rax, qword [rbp - 0x20]
mov ecx, dword [rax + rsi*8 + 0xc]
mov r8d, dword [rax + rsi*8 + 0x10]
add rcx, qword [rbp]
mov eax, dword [rax + rsi*8 + 0x14]
lea rdx, section..data
add rdx, rax
add rdx, 0x404
sub rsp, 0x20
call fcn.180001d70
add rsp, 0x20
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x1800018cc
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x1800018cc
mov rax, qword [rbp - 0x20]
lea rcx, [rax + rsi*8]
add rcx, 0xc
mov qword [rbp - 0x10], rcx
lea rcx, [rax + rsi*8]
add rcx, 0x10
mov qword [rbp - 0x18], rcx
lea rax, [rax + rsi*8]
add rax, 0x14
mov qword [rbp - 0x28], rax
nop dword [rax + rax]
mov rdi, qword [rbp - 0x10]
mov ecx, dword [rdi]
mov rbx, qword [rbp]
add rcx, rbx
mov rsi, qword [rbp - 0x18]
mov r8d, dword [rsi]
mov r14, qword [rbp - 0x28]
mov eax, dword [r14]
lea r15, section..data
lea rdx, [rax + r15]
add rdx, 0x404
sub rsp, 0x20
call fcn.180001d70
add rsp, 0x20
mov ecx, dword [rdi]
add rcx, rbx
mov r8d, dword [rsi]
mov eax, dword [r14]
lea rdx, [rax + r15]
add rdx, 0x404
sub rsp, 0x20
call fcn.180001d70
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001877
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001800
mov rax, qword [rbp - 0x10]
mov ecx, dword [rax]
add rcx, qword [rbp]
mov rax, qword [rbp - 0x18]
mov r8d, dword [rax]
mov rax, qword [rbp - 0x28]
mov eax, dword [rax]
lea rdx, section..data
add rdx, rax
add rdx, 0x404
sub rsp, 0x20
call fcn.180001d70
add rsp, 0x20
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x1800018cc
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001800
mov rbx, qword [rbp - 0x38]
add rbx, 1
cmp ecx, 0xa
mov r14, qword [rbp - 0x30]
jl 0x180001760
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x180001760
jmp 0x1800018f0
mov rdx, qword [rbp - 8]
mov rbx, qword [rdx + 0x30]
mov r8, qword [rbp]
sub r8, rbx
cmp ecx, 0xa
jl 0x180001922
lea ebx, [rax - 1]
imul ebx, eax
and ebx, 1
je 0x180001922
nop word cs:[rax + rax]
nop dword [rax + rax]
jmp 0x180001920
mov rdx, qword [rbp - 8]
mov ebx, dword [rdx + 0xb0]
add rbx, qword [rbp]
movabs r15, 0x1fffffff8
cmp dword [rbx], 0
je 0x180001b02
mov edi, dword [rbx + 4]
cmp rdi, 8
jb 0x180001a97
cmp ecx, 0xa
jl 0x180001964
lea esi, [rax - 1]
imul esi, eax
and esi, 1
jne 0x180001ad0
add rdi, r15
shr rdi, 1
mov r9d, edi
xor r11d, r11d
cmp r11, r9
je 0x180001a97
movzx esi, word [rbx + r11*2 + 8]
mov edi, esi
shr edi, 0xc
mov edx, esi
and edx, 0xfff
cmp esi, 0xa000
jae 0x180001a1a
cmp edi, 3
jne 0x180001a83
cmp ecx, 0xa
jl 0x1800019b5
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001af0
mov eax, dword [rbx]
mov rcx, qword [rbp]
lea rax, [rcx + rax*4]
add dword [rax + rdx*4], r8d
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x180001a83
lea edi, [rax - 1]
imul edi, eax
and edi, 1
je 0x180001a83
mov rax, qword [rbp]
lea rsi, [rax + rdx*4]
nop
mov eax, dword [rbx]
add dword [rsi + rax*4], r8d
mov eax, dword [rbx]
add dword [rsi + rax*4], r8d
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x180001a83
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x1800019f0
jmp 0x180001a83
cmp edi, 0xa
jne 0x180001a83
mov r10d, edx
cmp ecx, 0xa
jl 0x180001a59
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001a59
mov rax, qword [rbp]
lea rsi, [r10 + rax]
jmp 0x180001a53
add r11, 1
cmp ecx, 0xa
jl 0x180001970
test esi, esi
je 0x180001970
jmp 0x180001ad0
mov eax, dword [rbx]
add qword [rsi + rax], r8
mov eax, dword [rbx]
mov rcx, qword [rbp]
lea rsi, [r10 + rcx]
add qword [rax + rsi], r8
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x180001a83
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001a53
lea esi, [rax - 1]
imul esi, eax
and esi, 1
cmp ecx, 0xa
jl 0x180001a3c
test esi, esi
je 0x180001a3c
jmp 0x180001ae0
lea edi, [rax - 1]
imul edi, eax
and edi, 1
cmp ecx, 0xa
jl 0x180001aa9
test edi, edi
jne 0x180001b00
mov edx, dword [rbx + 4]
add rbx, rdx
cmp ecx, 0xa
jl 0x18000193a
test edi, edi
je 0x18000193a
jmp 0x180001920
jmp 0x180001ad0
jmp 0x180001ae0
jmp 0x180001af0
jmp 0x180001b00
cmp ecx, 0xa
jl 0x180001b22
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001b22
nop word cs:[rax + rax]
nop dword [rax]
jmp 0x180001b20
mov rax, qword [rbp]
mov rcx, rax
add rax, 2
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 8]
mov ebx, dword [rax + 0x90]
add rbx, rcx
mov esi, dword [rbx + 0xc]
test rsi, rsi
je 0x180001cb2
add rsi, qword [rbp]
sub rsp, 0x20
mov rcx, r14
call fcn.180002000
mov rcx, rax
mov rdx, r12
call fcn.180001ed0
mov rcx, rsi
call rax
add rsp, 0x20
mov rdi, rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x180001bab
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x180001bab
sub rsp, 0x20
mov rcx, r14
call fcn.180002000
mov rcx, rax
mov rdx, r12
call fcn.180001ed0
mov rcx, rsi
call rax
jmp 0x180001b52
mov qword [rbp - 0x18], rbx
cmp ecx, 0xa
jl 0x180001bc3
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001cb0
mov rdx, qword [rbp - 0x18]
mov r15d, dword [rdx]
mov ebx, dword [rdx + 0x10]
mov rdx, qword [rbp]
add rbx, rdx
add r15, rdx
mov rdx, qword [r15]
test rdx, rdx
je 0x180001c87
mov rax, qword [rbp - 0x10]
add rax, rdx
test rdx, rdx
movzx esi, dx
cmovns rsi, rax
nop word cs:[rax + rax]
nop
sub rsp, 0x20
mov rcx, r14
call fcn.180002000
mov rcx, rax
mov rdx, r13
call fcn.180001ed0
mov rcx, rdi
mov rdx, rsi
call rax
add rsp, 0x20
mov qword [rbx], rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x180001c6c
test edx, edx
je 0x180001c6c
sub rsp, 0x20
mov rcx, r14
call fcn.180002000
mov rcx, rax
mov rdx, r13
call fcn.180001ed0
mov rcx, rdi
mov rdx, rsi
call rax
add rsp, 0x20
mov qword [rbx], rax
jmp 0x180001c00
add r15, 8
add rbx, 8
cmp ecx, 0xa
jl 0x180001bd7
test edx, edx
je 0x180001bd7
jmp 0x180001cb0
mov rbx, qword [rbp - 0x18]
add rbx, 0x14
cmp ecx, 0xa
jl 0x180001b3e
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001b3e
jmp 0x180001b20
jmp 0x180001cb0
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x28]
add rax, qword [rbp]
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001d59
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001d59
mov rsi, qword [rbp - 8]
mov eax, dword [rsi + 0x28]
mov rcx, qword [rbp]
mov rdi, rcx
add rax, rcx
sub rsp, 0x20
call rax
add rsp, 0x20
mov eax, dword [rsi + 0x28]
add rax, rdi
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001d2a
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ce9
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x28]
add rax, qword [rbp]
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001d59
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ce9
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret