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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
cmp dword [0x180020a64], 0xa
jl 0x180001032
mov eax, dword [0x180020a68]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001032
nop word [rax + rax]
jmp 0x180001030
movzx eax, byte [section..data]
movzx ebp, byte [0x180004001]
movzx ecx, byte [0x180004002]
movzx edx, byte [0x180004003]
shl rdx, 0x18
shl rcx, 0x10
shl rbp, 8
or rbp, rax
or rbp, rcx
or rbp, rdx
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x180020a70], 0xa
setl r9b
or r9b, al
test ebp, ebp
je 0x180001212
test r9b, r9b
je 0x180001210
xor ecx, ecx
cmp ebp, 0x10
jb 0x18000117d
lea rdx, [rbp - 1]
cmp rdx, 0x400
jae 0x18000117d
mov ecx, ebp
and ecx, 0xfffffff0
lea rbx, [rcx - 0x10]
mov rdx, rbx
shr rdx, 4
add rdx, 1
mov r8d, edx
and r8d, 1
test rbx, rbx
je 0x180001377
mov rbx, r8
sub rbx, rdx
xor edi, edi
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 [rax + rax]
mov edx, edi
and edx, 0x3e0
movups xmm1, xmmword [rdx + rsi + 4]
movups xmm2, xmmword [rdi + rsi + 0x404]
xorps xmm2, xmm1
movups xmm1, xmmword [rdi + rsi + 0x414]
xorps xmm2, xmm0
movups xmmword [rdi + rsi + 0x404], xmm2
lea edx, [rdi + 0x10]
and edx, 0x3f0
movups xmm2, xmmword [rdx + rsi + 4]
xorps xmm1, xmm0
xorps xmm1, xmm2
movups xmmword [rdi + rsi + 0x414], xmm1
add rdi, 0x20
add rbx, 2
jne 0x1800010f0
test r8, r8
je 0x180001174
mov edx, edi
and edx, 0x3f0
lea rbx, section..data
movups xmm0, xmmword [rdx + rbx + 4]
movups xmm1, xmmword [rdi + rbx + 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 [rdi + rbx + 0x404], xmm1
cmp rcx, rbp
je 0x18000121d
mov rdx, rcx
not rdx
test bpl, 1
je 0x1800011b1
mov ebx, ecx
and ebx, 0x3f0
lea rdi, section..data
mov bl, byte [rbx + rdi + 4]
xor bl, byte [rcx + rdi + 0x404]
xor bl, 0xc
mov byte [rcx + rdi + 0x404], bl
or rcx, 1
add rdx, rbp
je 0x18000121d
lea rdx, section..data
nop dword [rax]
mov eax, ecx
and eax, 0x3ff
movzx eax, byte [rax + rdx + 4]
xor al, byte [rcx + rdx + 0x404]
xor al, 0xc
mov byte [rcx + rdx + 0x404], al
lea eax, [rcx + 1]
and eax, 0x3ff
movzx eax, byte [rax + rdx + 4]
xor al, byte [rcx + rdx + 0x405]
xor al, 0xc
mov byte [rcx + rdx + 0x405], al
add rcx, 2
cmp rbp, rcx
jne 0x1800011c0
jmp 0x18000121d
jmp 0x180001210
test r9b, r9b
je 0x1800012d0
xor ebp, ebp
lea r15, section..data
movzx edx, byte [rbp + r15 + 0x404]
movzx eax, byte [rbp + r15 + 0x405]
movzx ebx, byte [rbp + r15 + 0x406]
movzx edi, byte [rbp + r15 + 0x407]
lea r10, [r15 + rbp]
add r10, 0x408
shl rdi, 0x18
shl rbx, 0x10
shl rax, 8
or rax, rdx
or rax, rbx
or rax, rdi
test eax, eax
je 0x18000142d
xor ecx, ecx
cmp eax, 0x20
jb 0x1800013c3
lea rbx, [rax - 1]
cmp rbx, 0x400
jae 0x1800013c3
lea rcx, [r15 + rbp]
add rcx, 0x408
lea rdx, [rax + r15]
add rdx, 4
cmp rcx, rdx
jae 0x1800012d2
lea rcx, [rax + rbp]
add rcx, r15
add rcx, 0x408
lea rdx, str.fzsDGxtpATXSJOyCvUnZSpPfbxbaqhoYUzYVsEmzvMSKpcWYdHcxyltCVGTqrOKdWjdObHFBIrSRgkDGPODqrMjOKVsKvtxLvJrhTelTfrwofDcuGinRKlPhvzArOvkZqhahJEZqrWfLlPFZAlayVMYWPGOxiGqoZmhAsKCfStoDelnCJTiOTmlqxcczycvxbiTHRjnRvVRoRaLFKcdXepLtVZjZjvqlxdJdgBhAipeyldVDxlVTfsUzvMyjQoAjCKEwTDXBBrrwDCuliSXZEFpeeFLTxxKQxpbenSgkRQSCOvApSWSzOZORssgboARcgftYBkrGgBOuPrnrVYkgxiOrzRrqEPZgsSZICjVYsQojIRURCyEPAhBHFszZJualmRHVnJWEpAwiDEnHPyddWIXHgPivBitunRgefrgUBZrUIHBBzBDFmmHhpaTiDMsGijfKLyZdyFXXoLbirKBQBfvpjTEvVeTmcIOwlpHPUoMDMupBSeTfbrqIkOpalPbXSjJCULbcRThjbYBEsntgbJBOFGqskojVraXbzviMJrzpFXKicrTgQpZuxubGHqsfDdetXRrKKfFFGkvXVweaUWRRhZlbaPqYzmATKjaFXfoVOrCbOlkPlltItTgxjZYMquJSsyuBpqkJmIhVprUjVAizLbYwntzIGZaqyvTwxMDAvtvyYymZFxWIDwtgsJLQQwnVpcbkZTaGkQqaDqQIEwFbEFxTHzlFFILWfFGCLKEWDHcHpBfRhfTMSeodXdLxejJnlkJGvoTvepWyDVeJiUAXjssrDxldeWPzGEuAdhrMVxBUJhJjjaFeQcHVzySfRWjqrTjEaTuLODGMQzmokUvAliDHllyDUIYDwtfIwAzqXtiorLfITnuAoQadQBIvDjjODlzyuIWDSSqfEgAiugjLHEMQXdLvhaRabnTEIxcmvmYKjZLIDLiKShFjviEqDKscGHwayycIickzAhvqoeUUlcQFyyxIlTjqPoEEouJrnenMtvjQYzfCtZbjfxk
cmp rcx, rdx
jbe 0x1800012d2
xor ecx, ecx
jmp 0x1800013c3
jmp 0x1800012d0
mov ecx, eax
and ecx, 0xffffffe0
lea rdx, [rcx - 0x20]
mov rbx, rdx
shr rbx, 5
add rbx, 1
mov r8d, ebx
and r8d, 1
test rdx, rdx
je 0x180001387
lea rsi, [r15 + rbp]
add rsi, 0x438
mov rdi, r8
sub rdi, rbx
xor ebx, ebx
nop dword [rax]
mov edx, ebx
and edx, 0x3c0
movups xmm0, xmmword [rdx + r15 + 4]
movups xmm1, xmmword [rdx + r15 + 0x14]
movups xmm2, xmmword [rsi + rbx - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rsi + rbx - 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rsi + rbx - 0x10]
movups xmm3, xmmword [rsi + rbx]
movups xmmword [rsi + rbx - 0x30], xmm2
movups xmmword [rsi + rbx - 0x20], xmm0
lea edx, [rbx + 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 + rbx - 0x10], xmm0
movups xmmword [rsi + rbx], xmm1
add rbx, 0x40
add rdi, 2
jne 0x180001310
jmp 0x180001389
xor edi, edi
test r8, r8
jne 0x180001146
jmp 0x180001174
xor ebx, ebx
test r8, r8
je 0x1800013be
mov edx, ebx
and edx, 0x3e0
movups xmm0, xmmword [rdx + r15 + 4]
movups xmm1, xmmword [rdx + r15 + 0x14]
movups xmm2, xmmword [r10 + rbx]
xorps xmm2, xmm0
movups xmm0, xmmword [r10 + rbx + 0x10]
xorps xmm0, xmm1
movups xmmword [r10 + rbx], xmm2
movups xmmword [r10 + rbx + 0x10], xmm0
cmp rcx, rax
je 0x18000142d
mov rbx, rcx
not rbx
test al, 1
je 0x1800013e2
mov edx, ecx
and edx, 0x3e0
mov dl, byte [rdx + r15 + 4]
xor byte [r10 + rcx], dl
or rcx, 1
add rbx, rax
je 0x18000142d
lea rbx, [r15 + rbp]
add rbx, 0x409
nop word cs:[rax + rax]
nop dword [rax]
mov edx, ecx
and edx, 0x3ff
movzx edx, byte [rdx + r15 + 4]
xor byte [rbx + rcx - 1], dl
lea edx, [rcx + 1]
and edx, 0x3ff
movzx edx, byte [rdx + r15 + 4]
xor byte [rbx + rcx], dl
add rcx, 2
cmp rax, rcx
jne 0x180001400
test r9b, r9b
je 0x180001460
cmp dword [0x180020a74], 0xa
jl 0x180001462
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001462
nop dword [rax]
jmp 0x180001450
jmp 0x180001460
add rbp, 0x408
mov qword [rsp + 0x40], r10
movsxd rdi, dword [0x180004440]
mov rsi, r10
nop dword [rax + rax]
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x180001480
mov r13, rsi
nop dword [rax]
cmp byte [r13], 0
lea r13, [r13 + 1]
jne 0x180001490
mov rax, r13
nop
cmp byte [rax], 0
lea rax, [rax + 1]
jne 0x1800014a0
mov r14, rax
nop dword [rax]
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x1800014b0
mov rbx, r14
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x1800014c0
mov qword [rsp + 0x50], rax
mov r12, rbx
nop word cs:[rax + rax]
nop dword [rax + rax]
cmp byte [r12], 0
lea r12, [r12 + 1]
jne 0x1800014e0
mov rcx, rsi
call fcn.1800023b0
mov r9, rax
cmp dword [0x180020a7c], 0xa
jl 0x180001515
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001a90
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
jl 0x180001544
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001aa0
mov qword [rsp + 0x38], rsi
lea rax, [rdi + r15]
add rax, 0x404
mov qword [rsp + 0x70], rax
add r8, r9
mov edi, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add rdi, r9
add r10, r9
nop dword [rax + rax]
mov esi, dword [rdi]
add rsi, r9
mov rdx, r13
nop dword [rax + rax]
movzx ecx, byte [rdx]
movzx eax, byte [rsi]
test cl, cl
je 0x180001596
add rdx, 1
add rsi, 1
cmp cl, al
je 0x180001580
cmp cl, al
je 0x1800015a4
add rdi, 4
add r10, 2
jmp 0x180001570
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
mov rcx, rbx
call r9
mov r10, rax
cmp dword [0x180020a7c], 0xa
jl 0x1800015d6
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ab0
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
jl 0x180001605
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001ac0
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov edi, dword [r10 + rcx + 0x24]
add rdx, r10
add rdi, r10
nop dword [rax + rax]
mov esi, dword [rdx]
add rsi, r10
mov rax, r14
nop dword [rax + rax]
movzx ebx, byte [rax]
movzx ecx, byte [rsi]
test bl, bl
je 0x180001646
add rax, 1
add rsi, 1
cmp bl, cl
je 0x180001630
cmp bl, cl
je 0x180001654
add rdx, 4
add rdi, 2
jmp 0x180001620
movzx eax, word [rdi]
mov eax, dword [r8 + rax*4]
add r10, rax
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, r12
mov r8, r12
call r10
mov rcx, qword [rsp + 0x38]
call fcn.1800023b0
mov r10, rax
cmp dword [0x180020a7c], 0xa
jl 0x1800016ac
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ad0
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
jl 0x1800016db
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001ae0
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov ecx, dword [r10 + rcx + 0x24]
add rdx, r10
add rcx, r10
mov r12, qword [rsp + 0x70]
nop word cs:[rax + rax]
nop dword [rax]
mov edi, dword [rdx]
add rdi, r10
xor esi, esi
nop word [rax + rax]
lea rax, [rsi + rbp]
movzx eax, byte [r15 + rax]
movzx ebx, byte [rdi + rsi]
test al, al
je 0x180001729
add rsi, 1
cmp al, bl
je 0x180001710
cmp al, bl
je 0x180001737
add rdx, 4
add rcx, 2
jmp 0x180001700
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r10, rax
mov edx, dword [r12 + 0x50]
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r10
mov r14, rax
mov ecx, dword [0x180020a6c]
mov eax, dword [0x180020a70]
cmp eax, 0xa
jl 0x180001b52
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x180001b52
movsxd rsi, dword [0x180004440]
cmp dword [0x180020a74], 0xa
mov rdx, qword [rsp + 0x40]
mov r14, rdx
jl 0x1800017b0
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
mov r14, rdx
and ecx, 1
jne 0x180001af0
nop
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x1800017b0
mov rbx, r14
nop dword [rax]
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x1800017c0
mov r13, rbx
nop dword [rax]
cmp byte [r13], 0
lea r13, [r13 + 1]
jne 0x1800017d0
nop dword [rax + rax]
cmp byte [r13], 0
lea r13, [r13 + 1]
jne 0x1800017e0
mov rdi, r13
nop
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x1800017f0
mov r12, rdi
nop dword [rax]
cmp byte [r12], 0
lea r12, [r12 + 1]
jne 0x180001800
mov rcx, r14
call fcn.1800023b0
mov r9, rax
cmp dword [0x180020a7c], 0xa
jl 0x180001835
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001b00
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
jl 0x180001864
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001b10
mov qword [rsp + 0x38], rsi
add r8, r9
mov r11d, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add r11, r9
add r10, r9
nop dword [rax]
mov edx, dword [r11]
add rdx, r9
mov rsi, rbx
nop dword [rax]
movzx ecx, byte [rsi]
movzx eax, byte [rdx]
test cl, cl
je 0x1800018a6
add rsi, 1
add rdx, 1
cmp cl, al
je 0x180001890
cmp cl, al
je 0x1800018b4
add r11, 4
add r10, 2
jmp 0x180001880
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
mov rcx, rdi
call r9
mov r10, rax
cmp dword [0x180020a7c], 0xa
jl 0x1800018e6
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001b20
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
jl 0x180001915
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001b30
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov edi, dword [r10 + rcx + 0x24]
add rdx, r10
add rdi, r10
nop dword [rax + rax]
mov esi, dword [rdx]
add rsi, r10
mov rbx, r13
nop dword [rax + rax]
movzx eax, byte [rbx]
movzx ecx, byte [rsi]
test al, al
je 0x180001956
add rbx, 1
add rsi, 1
cmp al, cl
je 0x180001940
cmp al, cl
je 0x180001964
add rdx, 4
add rdi, 2
jmp 0x180001930
movzx eax, word [rdi]
mov eax, dword [r8 + rax*4]
add r10, rax
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, r12
mov r8, r12
call r10
mov rcx, r14
call fcn.1800023b0
mov r10, rax
cmp dword [0x180020a7c], 0xa
jl 0x1800019ba
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001b40
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
jl 0x1800019e9
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001b50
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov ecx, dword [r10 + rcx + 0x24]
add rdx, r10
add rcx, r10
nop dword [rax]
mov edi, dword [rdx]
add rdi, r10
xor esi, esi
nop word [rax + rax]
lea rax, [rsi + rbp]
movzx eax, byte [r15 + rax]
movzx ebx, byte [rdi + rsi]
test al, al
je 0x180001a29
add rsi, 1
cmp al, bl
je 0x180001a10
cmp al, bl
je 0x180001a37
add rdx, 4
add rcx, 2
jmp 0x180001a00
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r10, rax
mov rax, qword [rsp + 0x38]
mov edx, dword [rax + r15 + 0x454]
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r10
cmp dword [0x180020a74], 0xa
mov r10, qword [rsp + 0x40]
jl 0x18000146e
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x18000146e
jmp 0x180001450
jmp 0x180001a90
jmp 0x180001aa0
jmp 0x180001ab0
jmp 0x180001ac0
jmp 0x180001ad0
jmp 0x180001ae0
jmp 0x180001af0
jmp 0x180001b00
jmp 0x180001b10
jmp 0x180001b20
jmp 0x180001b30
jmp 0x180001b40
jmp 0x180001b50
cmp word [r12 + 6], 0
je 0x180001cda
lea r8, [r12 + 0x108]
xor r9d, r9d
mov edx, dword [0x180020a68]
mov ebp, dword [0x180020a64]
cmp ebp, 0xa
jl 0x180001b8a
lea eax, [rdx - 1]
imul eax, edx
and eax, 1
jne 0x1800021c0
lea rax, [r9 + r9*4]
lea rbx, [r8 + rax*8]
add rbx, 0x10
mov eax, dword [rbx]
test rax, rax
je 0x180001c08
mov ecx, dword [rbx - 4]
add rcx, r14
mov edx, dword [rbx + 4]
lea rdi, [rdx + r15]
add rdi, 0x404
jmp 0x180001bcd
add rcx, 1
add rdi, 1
test rax, rax
je 0x180001c08
add rax, 0xffffffffffffffff
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx edx, byte [rdi]
mov byte [rcx], dl
mov edx, dword [0x180020a68]
mov ebp, dword [0x180020a64]
cmp ebp, 0xa
jl 0x180001bc0
lea esi, [rdx - 1]
imul esi, edx
and esi, 1
je 0x180001bc0
movzx edx, byte [rdi]
mov byte [rcx], dl
jmp 0x180001be0
mov ecx, dword [0x180020a6c]
mov eax, dword [0x180020a70]
cmp eax, 0xa
jl 0x180001cc7
lea edi, [rcx - 1]
imul edi, ecx
and edi, 1
je 0x180001cc7
mov eax, dword [rbx]
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
cmp ebp, 0xa
jl 0x180001c44
test ecx, ecx
jne 0x1800021d0
test eax, eax
je 0x180001cb1
mov ecx, dword [rbx - 4]
add rcx, r14
mov edx, dword [rbx + 4]
lea rdi, [rdx + r15]
add rdi, 0x404
jmp 0x180001c6d
add rcx, 1
add rdi, 1
test rax, rax
je 0x180001ca8
add rax, 0xffffffffffffffff
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx edx, byte [rdi]
mov byte [rcx], dl
mov edx, dword [0x180020a68]
mov ebp, dword [0x180020a64]
cmp ebp, 0xa
jl 0x180001c60
lea esi, [rdx - 1]
imul esi, edx
and esi, 1
je 0x180001c60
movzx edx, byte [rdi]
mov byte [rcx], dl
jmp 0x180001c80
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
cmp ebp, 0xa
jl 0x180001b96
test ecx, ecx
je 0x180001b96
jmp 0x1800021c0
add r9, 1
movzx edx, word [r12 + 6]
cmp r9, rdx
jb 0x180001b6a
mov ebx, dword [r12 + 0xb0]
cmp dword [r14 + rbx], 0
je 0x180001e9d
add rbx, r14
mov rdx, r14
sub rdx, qword [r12 + 0x30]
mov r9b, 1
movabs r8, 0x1fffffff8
mov r10, rbx
test r9b, 1
je 0x1800021f0
mov ebp, dword [r10 + 4]
lea edi, [rcx - 1]
imul edi, ecx
and edi, 1
cmp rbp, 7
jbe 0x180001e53
cmp eax, 0xa
jl 0x180001d36
test edi, edi
jne 0x180002240
add rbp, r8
shr rbp, 1
mov r9d, ebp
test r9, r9
je 0x180001e53
xor r11d, r11d
jmp 0x180001d5a
add r11, 1
cmp r11, r9
je 0x180001e53
movzx ebp, word [r10 + r11*2 + 8]
mov esi, ebp
shr esi, 0xc
mov edi, ebp
and edi, 0xfff
cmp ebp, 0xa000
jae 0x180001dfc
cmp esi, 3
jne 0x180001e34
mov edi, edi
mov eax, dword [rbx]
lea rax, [r14 + rax*4]
add dword [rax + rdi*4], edx
mov ecx, dword [0x180020a6c]
mov eax, dword [0x180020a70]
cmp eax, 0xa
jl 0x180001e34
lea esi, [rcx - 1]
imul esi, ecx
and esi, 1
je 0x180001e34
lea rdi, [r14 + rdi*4]
mov eax, dword [rbx]
add dword [rdi + rax*4], edx
mov eax, dword [rbx]
add dword [rdi + rax*4], edx
cmp dword [0x180020a70], 0xa
jl 0x180001dd9
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001db5
mov eax, dword [rbx]
add dword [rdi + rax*4], edx
mov ecx, dword [0x180020a6c]
mov eax, dword [0x180020a70]
cmp eax, 0xa
jl 0x180001e34
lea esi, [rcx - 1]
imul esi, ecx
and esi, 1
jne 0x180001db5
jmp 0x180001e34
cmp esi, 0xa
jne 0x180001e34
mov eax, dword [rbx]
add rdi, r14
add qword [rax + rdi], rdx
mov ecx, dword [0x180020a6c]
mov eax, dword [0x180020a70]
cmp eax, 0xa
jl 0x180001e34
lea esi, [rcx - 1]
imul esi, ecx
and esi, 1
je 0x180001e34
mov eax, dword [rbx]
add qword [rdi + rax], rdx
mov eax, dword [rbx]
add qword [rdi + rax], rdx
jmp 0x180001e0a
lea edi, [rcx - 1]
imul edi, ecx
and edi, 1
cmp eax, 0xa
jl 0x180001d4d
test edi, edi
je 0x180001d4d
jmp 0x1800021e0
test edi, edi
sete r9b
cmp eax, 0xa
setl bl
or bl, r9b
test bl, bl
je 0x180001e62
cmp eax, 0xa
setl r11b
mov esi, dword [r10 + 4]
lea rbx, [r10 + rsi]
lea ebp, [rcx - 1]
imul ebp, ecx
test bpl, 1
sete r9b
or r9b, r11b
cmp dword [r10 + rsi], 0
mov r10, rbx
jne 0x180001d08
test r9b, r9b
je 0x180002250
mov r15d, dword [r12 + 0x90]
mov edi, dword [r14 + r15 + 0xc]
test edi, edi
je 0x180002258
add r15, r14
lea rax, [r14 + 2]
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x38]
call fcn.1800023b0
mov r9, rax
cmp dword [0x180020a7c], 0xa
jl 0x180001ee9
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002252
movsxd rax, dword [r9 + 0x3c]
mov ebp, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rbp + 0x1c]
cmp dword [0x180020a84], 0xa
jl 0x180001f18
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002254
mov ecx, edi
add rcx, r14
add r8, r9
mov ebx, dword [r9 + rbp + 0x20]
mov ebp, dword [r9 + rbp + 0x24]
add rbx, r9
add rbp, r9
mov edi, dword [rbx]
add rdi, r9
mov rsi, r13
nop dword [rax + rax]
movzx eax, byte [rsi]
movzx edx, byte [rdi]
test al, al
je 0x180001f56
add rsi, 1
add rdi, 1
cmp al, dl
je 0x180001f40
cmp al, dl
je 0x180001f64
add rbx, 4
add rbp, 2
jmp 0x180001f30
movzx eax, word [rbp]
mov eax, dword [r8 + rax*4]
add r9, rax
call r9
mov qword [rsp + 0x40], rax
mov ecx, dword [0x180020a6c]
mov eax, dword [0x180020a70]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
cmp eax, 0xa
mov rcx, qword [rsp + 0x38]
jl 0x180001f9e
test edx, edx
jne 0x180002256
mov ebx, dword [r15]
mov rbp, qword [r14 + rbx]
test rbp, rbp
je 0x1800021a9
add rbx, r14
mov eax, dword [r15 + 0x10]
add rax, r14
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], rbx
mov rax, qword [rsp + 0x68]
add rax, rbp
test rbp, rbp
movzx r15d, bp
cmovns r15, rax
jmp 0x180001ffd
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add rbp, rax
mov rcx, qword [rsp + 0x40]
mov rdx, r15
call rbp
mov rcx, qword [rsp + 0x48]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x38]
call fcn.1800023b0
mov r9, rax
cmp dword [0x180020a7c], 0xa
jl 0x180002023
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002210
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
mov rbp, qword [rsp + 0x50]
jl 0x180002057
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002200
add r8, r9
mov edx, dword [r9 + rcx + 0x20]
mov ecx, dword [r9 + rcx + 0x24]
add rdx, r9
add rcx, r9
mov esi, dword [rdx]
add rsi, r9
mov rdi, rbp
nop word cs:[rax + rax]
nop dword [rax]
movzx eax, byte [rdi]
movzx ebx, byte [rsi]
test al, al
je 0x180002096
add rdi, 1
add rsi, 1
cmp al, bl
je 0x180002080
cmp al, bl
je 0x1800020a4
add rdx, 4
add rcx, 2
jmp 0x18000206a
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r9, rax
mov rcx, qword [rsp + 0x40]
mov rdx, r15
call r9
mov rcx, qword [rsp + 0x48]
mov qword [rcx], rax
mov ecx, dword [0x180020a6c]
mov eax, dword [0x180020a70]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
cmp eax, 0xa
mov rcx, qword [rsp + 0x38]
jl 0x180002188
test edx, edx
je 0x180002188
call fcn.1800023b0
mov rbp, rax
cmp dword [0x180020a7c], 0xa
jl 0x180002112
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002220
movsxd rax, dword [rbp + 0x3c]
mov ecx, dword [rbp + rax + 0x88]
mov r8d, dword [rbp + rcx + 0x1c]
cmp dword [0x180020a84], 0xa
mov r9, qword [rsp + 0x50]
jl 0x180002145
mov eax, dword [0x180020a88]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002230
add r8, rbp
mov edx, dword [rbp + rcx + 0x20]
mov ecx, dword [rbp + rcx + 0x24]
add rdx, rbp
add rcx, rbp
mov esi, dword [rdx]
add rsi, rbp
mov rdi, r9
nop
movzx eax, byte [rdi]
movzx ebx, byte [rsi]
test al, al
je 0x180002176
add rdi, 1
add rsi, 1
cmp al, bl
je 0x180002160
cmp al, bl
je 0x180001fdc
add rdx, 4
add rcx, 2
jmp 0x180002156
add qword [rsp + 0x48], 8
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rbx + 8]
add rbx, 8
test rbp, rbp
mov r15, qword [rsp + 0x58]
jne 0x180001fc2
mov edi, dword [r15 + 0x20]
add r15, 0x14
test edi, edi
jne 0x180001ebe
jmp 0x180002261
jmp 0x1800021c0
jmp 0x1800021d0
jmp 0x1800021e0
jmp 0x1800021f0
jmp 0x180002200
jmp 0x180002210
jmp 0x180002220
jmp 0x180002230
jmp 0x180002240
jmp 0x180002250
jmp 0x180002252
jmp 0x180002254
jmp 0x180002256
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
test edx, edx
je 0x180002272
cmp eax, 0xa
jl 0x180002272
nop word [rax + rax]
jmp 0x180002270
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
mov eax, dword [0x180020a70]
cmp eax, 0xa
jl 0x180002397
mov ecx, dword [0x180020a6c]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x180002397
cmp eax, 0xa
jl 0x18000235e
lea eax, [rcx - 1]
imul eax, ecx
and eax, 1
je 0x18000235e
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
cmp dword [0x180020a70], 0xa
jl 0x1800022e6
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x1800022b8
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
cmp dword [0x180020a70], 0xa
jl 0x18000233a
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x1800022b8
jmp 0x18000233a
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
cmp dword [0x180020a70], 0xa
jl 0x18000233a
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000230c
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
cmp dword [0x180020a70], 0xa
jl 0x18000235e
mov eax, dword [0x180020a6c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000230c
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
mov esi, dword [0x180020a6c]
mov edi, dword [0x180020a70]
mov eax, dword [r12 + 0x28]
add rax, r14
call rax
cmp edi, 0xa
jl 0x18000227c
lea eax, [rsi - 1]
imul eax, esi
and eax, 1
jne 0x18000235e
jmp 0x18000227c
xor eax, eax
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret