Function at 0x180001080
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 0x1800010b2
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800010b2
nop
jmp 0x1800010b0
mov eax, 0x10
call entry0
sub rsp, rax
mov rdx, rsp
mov eax, 0x10
call entry0
sub rsp, rax
mov r9, rsp
mov ebx, dword [0x180020a74]
mov edi, dword [0x180020a78]
cmp edi, 0xa
jl 0x1800010f2
lea eax, [rbx - 1]
imul eax, ebx
and eax, 1
je 0x1800010f2
nop
jmp 0x1800010f0
lea r8, section..data
cmp edi, 0xa
jl 0x18000110d
lea eax, [rbx - 1]
imul eax, ebx
and eax, 1
jne 0x180001350
mov al, byte [section..data]
mov byte [rdx], al
cmp dword [0x180020a78], 0xa
jl 0x180001133
mov eax, dword [0x180020a74]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001350
mov al, byte [0x180004001]
mov byte [rdx + 1], al
cmp dword [0x180020a78], 0xa
jl 0x18000115a
mov eax, dword [0x180020a74]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001350
mov al, byte [0x180004002]
mov byte [rdx + 2], al
cmp dword [0x180020a78], 0xa
jl 0x180001181
mov eax, dword [0x180020a74]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001350
mov al, byte [0x180004003]
mov byte [rdx + 3], al
mov eax, dword [0x180020a74]
mov edi, dword [0x180020a78]
lea ebx, [rax - 1]
imul ebx, eax
and ebx, 1
cmp edi, 0xa
jl 0x1800011ac
test ebx, ebx
jne 0x180001350
cmp dword [0x180020a6c], 0xa
jl 0x180001372
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001372
mov eax, 0x10
call entry0
sub rsp, rax
mov rdx, rsp
cmp edi, 0xa
jl 0x1800011eb
test ebx, ebx
jne 0x180001360
mov eax, 4
mov rcx, r8
nop word cs:[rax + rax]
nop dword [rax]
movzx ebx, byte [rcx]
mov byte [rdx], bl
mov esi, dword [0x180020a74]
mov edi, dword [0x180020a78]
lea ebx, [rsi - 1]
imul ebx, esi
and ebx, 1
cmp edi, 0xa
jl 0x180001227
test ebx, ebx
jne 0x180001340
add rax, 0xffffffffffffffff
add rdx, 1
add rcx, 1
test rax, rax
jne 0x180001200
cmp edi, 0xa
jl 0x180001245
test ebx, ebx
jne 0x180001370
cmp dword [0x180020a78], 0xa
jl 0x180001263
mov eax, dword [0x180020a74]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001330
cmp dword [0x180020a78], 0xa
jl 0x180001281
mov eax, dword [0x180020a74]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001330
cmp dword [0x180020a78], 0xa
jl 0x18000129f
mov eax, dword [0x180020a74]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001330
mov ebx, dword [0x180020a74]
mov edi, dword [0x180020a78]
lea esi, [rbx - 1]
imul esi, ebx
and esi, 1
cmp edi, 0xa
jl 0x1800012bd
test esi, esi
jne 0x180001330
mov eax, 0x10
call entry0
sub rsp, rax
mov rdx, rsp
cmp dword [0x180020a6c], 0xa
jl 0x18000130a
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x18000130a
mov eax, 4
mov rcx, r8
cmp edi, 0xa
jl 0x180001200
mov eax, 4
mov rcx, r8
test esi, esi
je 0x180001200
jmp 0x180001360
mov eax, 0x10
call entry0
sub rsp, rax
mov r9, rsp
cmp edi, 0xa
jl 0x1800010f9
test esi, esi
je 0x1800010f9
jmp 0x1800010f0
jmp 0x180001330
jmp 0x180001340
jmp 0x180001350
jmp 0x180001360
jmp 0x180001370
mov r12d, dword [rdx]
test r12, r12
je 0x180001493
xor ecx, ecx
cmp r12d, 0x10
jb 0x180001465
lea rax, [r12 - 1]
cmp rax, 0x400
jae 0x180001465
mov ecx, r12d
and ecx, 0xfffffff0
lea rdx, [rcx - 0x10]
mov rax, rdx
shr rax, 4
add rax, 1
mov r8d, eax
and r8d, 1
test rdx, rdx
je 0x18000142b
mov rsi, r8
sub rsi, rax
xor eax, eax
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 edx, eax
and edx, 0x3e0
movups xmm1, xmmword [rdx + r10 + 4]
movups xmm2, xmmword [rax + r10 + 0x404]
xorps xmm2, xmm1
movups xmm1, xmmword [rax + r10 + 0x414]
xorps xmm2, xmm0
movups xmmword [rax + r10 + 0x404], xmm2
lea edx, [rax + 0x10]
and edx, 0x3f0
movups xmm2, xmmword [rdx + r10 + 4]
xorps xmm1, xmm0
xorps xmm1, xmm2
movups xmmword [rax + r10 + 0x414], xmm1
add rax, 0x20
add rsi, 2
jne 0x1800013d2
jmp 0x18000142d
xor eax, eax
test r8, r8
je 0x180001460
mov edx, eax
and edx, 0x3f0
lea rsi, section..data
movups xmm0, xmmword [rdx + rsi + 4]
movups xmm1, xmmword [rax + rsi + 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 [rax + rsi + 0x404], xmm1
cmp rcx, r12
je 0x180001493
lea rax, section..data
mov edx, ecx
and edx, 0x3ff
movzx edx, byte [rdx + rax + 4]
xor dl, byte [rcx + rax + 0x404]
xor dl, 0xc
mov byte [rcx + rax + 0x404], dl
add rcx, 1
cmp rcx, r12
jb 0x18000146c
cmp edi, 0xa
jl 0x1800014a2
test ebx, ebx
je 0x1800014a2
nop dword [rax]
jmp 0x1800014a0
lea r15, section..data
lea rcx, [r12 + r15]
add rcx, 0x404
movzx eax, byte [r12 + r15 + 0x404]
mov byte [r9], al
cmp dword [0x180020a78], 0xa
jl 0x1800014de
mov eax, dword [0x180020a74]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001640
movzx eax, byte [rcx + 1]
mov byte [r9 + 1], al
cmp dword [0x180020a78], 0xa
jl 0x180001504
mov eax, dword [0x180020a74]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001640
movzx eax, byte [rcx + 2]
mov byte [r9 + 2], al
cmp dword [0x180020a78], 0xa
jl 0x18000152a
mov eax, dword [0x180020a74]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001640
movzx eax, byte [rcx + 3]
mov byte [r9 + 3], al
mov ebx, dword [0x180020a74]
mov edx, dword [0x180020a78]
lea eax, [rbx - 1]
imul eax, ebx
and eax, 1
cmp edx, 0xa
jl 0x180001554
test eax, eax
jne 0x180001640
cmp dword [0x180020a6c], 0xa
jl 0x180001662
mov ebx, dword [0x180020a70]
lea edi, [rbx - 1]
imul edi, ebx
and edi, 1
je 0x180001662
cmp edx, 0xa
jl 0x180001583
test eax, eax
jne 0x180001660
movzx eax, byte [r12 + r15 + 0x404]
mov byte [r9], al
cmp dword [0x180020a78], 0xa
jl 0x1800015ad
mov eax, dword [0x180020a74]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001650
movzx eax, byte [r12 + r15 + 0x405]
mov byte [r9 + 1], al
cmp dword [0x180020a78], 0xa
jl 0x1800015d4
mov eax, dword [0x180020a74]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001650
movzx eax, byte [r12 + r15 + 0x406]
mov byte [r9 + 2], al
cmp dword [0x180020a78], 0xa
jl 0x1800015fb
mov eax, dword [0x180020a74]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180001650
movzx eax, byte [r12 + r15 + 0x407]
mov byte [r9 + 3], al
mov ebx, dword [0x180020a74]
mov edx, dword [0x180020a78]
lea eax, [rbx - 1]
imul eax, ebx
and eax, 1
cmp edx, 0xa
jl 0x180001626
test eax, eax
jne 0x180001650
cmp edx, 0xa
jl 0x1800014b4
test eax, eax
je 0x1800014b4
jmp 0x1800014a0
jmp 0x180001640
jmp 0x180001650
jmp 0x180001660
lea rsi, [rcx + 4]
mov r9d, dword [r9]
test r9, r9
je 0x1800017b7
xor eax, eax
cmp r9d, 0x20
jb 0x180001792
lea rbx, [r9 - 1]
cmp rbx, 0x400
jae 0x180001792
lea rdx, [r9 + r15]
add rdx, 4
cmp rsi, rdx
jae 0x1800016b6
add rcx, r9
add rcx, 4
lea rdx, str.SrehCpZPyZGMAWfMEYJOxgyfTgsjGrPMsJebTKlRqYPuBSFbAYFWWKHySPHQLGPlGxQvCjzKVnmBCtlXsllyGIaajoPACnRUJjkFTLuGRQLZjzOQrLLyfACMUkcHLXSiXnLthUUyauBEdIMgbPSVATGXSZKzaAyHKvSvsRhrpHYfDeAeyARKjVnBTVdQRTKihIDvJnECvAqlIsEgBTTmdWojDfWMKZJlsWsXTaWdyMtgzoRrzHOUmlnlDzGYTuWBqUngqwgGawAWPJRdbzoWXMEmRRaEgnhAVdQwfBxFUBdKybyqJRKgeAUxGkvHxnRRspBuuQuiWnUaDmUrvVSjgDaTobmGxJomQrAvdwKCpLUooxYAErBlLfGFTdsBvwaQqGRsdbYSCqXYuPtAVdFtmrjEVsjLkVpoqeEEAvvMJOzZwzChaSvKdeQsQSGfSgmCfQUujxJHCJVGYTjYUMRnnlzJUmFYcLHqVRSaxcdmsVJmLQmkxjlXDmwdREhdergtpZgFTlIpoKoAhowQBwbmsJhIkPgIwOAOQvttgDstqfGJKqOWObgyFIrtYDevLQYoofOuamoKUYOUfcAVnsxaYWbPaXzxHtrrzsALaYomQbkmgJIoYIYFLJZjdPTSFyQfGSpTKEeFnqupMycSLBHaPtPdPqOHfIQWKzrQsACisjxDbqIBSpyVLuLGKBKsRfaTJHtWsKwwBRUaJguBuIuwmMTPLqOtBytJwUjFJLHKlnpCiUpIwlyJicdFKSahkhgTgjaIClwVFrMDVLLbupklaYvwQFbxVWLDTQgUmtPJVmrUeqPtDFHbTOPohyXITRXJlUsykyxYgXjoztUKHhRCAnrRIeSzvTQndrahzWXMkpWxdmjkOptLtsxzRxWIgheEhwVztHdQwYKgtrBkslqtZdpWqUprDTQhIOUFKIsHDwkVggIrQWQRaVRwsCigDqqGlnSdzfgWKaCvkHcsumWtqclcXWjDbqjvKIiRUfxARSZIdeqonRRJrKXxBQCLCRL
cmp rcx, rdx
jbe 0x1800016b6
xor eax, eax
jmp 0x180001792
mov rdx, rsi
mov eax, r9d
and eax, 0xffffffe0
lea rbx, [rax - 0x20]
mov rcx, rbx
shr rcx, 5
add rcx, 1
mov r8d, ecx
and r8d, 1
test rbx, rbx
je 0x180001754
lea rdi, [r12 + r15]
add rdi, 0x438
mov rbx, r8
sub rbx, rcx
xor esi, esi
mov ecx, esi
and ecx, 0x3c0
movups xmm0, xmmword [rcx + r15 + 4]
movups xmm1, xmmword [rcx + r15 + 0x14]
movups xmm2, xmmword [rdi + rsi - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rsi - 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rdi + rsi - 0x10]
movups xmm3, xmmword [rdi + rsi]
movups xmmword [rdi + rsi - 0x30], xmm2
movups xmmword [rdi + rsi - 0x20], xmm0
lea ecx, [rsi + 0x20]
and ecx, 0x3e0
movups xmm0, xmmword [rcx + r15 + 4]
xorps xmm0, xmm1
movups xmm1, xmmword [rcx + r15 + 0x14]
xorps xmm1, xmm3
movups xmmword [rdi + rsi - 0x10], xmm0
movups xmmword [rdi + rsi], xmm1
add rsi, 0x40
add rbx, 2
jne 0x1800016ed
jmp 0x180001756
xor esi, esi
test r8, r8
je 0x18000178a
mov ecx, esi
and ecx, 0x3e0
movups xmm0, xmmword [rcx + r15 + 4]
movups xmm1, xmmword [rcx + r15 + 0x14]
mov rcx, rdx
movups xmm2, xmmword [rdx + rsi]
xorps xmm2, xmm0
movups xmm0, xmmword [rdx + rsi + 0x10]
xorps xmm0, xmm1
movups xmmword [rdx + rsi], xmm2
movups xmmword [rdx + rsi + 0x10], xmm0
cmp rax, r9
mov rsi, rdx
je 0x1800017b7
lea rcx, [r12 + r15]
add rcx, 0x408
mov edx, eax
and edx, 0x3ff
movzx edx, byte [rdx + r15 + 4]
xor byte [rcx + rax], dl
add rax, 1
cmp rax, r9
jb 0x18000179d
cmp dword [0x180020a7c], 0xa
jl 0x1800017e2
mov eax, dword [0x180020a80]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800017e2
nop word cs:[rax + rax]
nop dword [rax + rax]
jmp 0x1800017e0
movsxd rax, dword [0x180004440]
cmp byte [rsi], 0
lea rsi, [rsi + 1]
jne 0x1800017e9
add rax, r15
add rax, 0x404
mov qword [rbp - 0x10], rax
mov r13, rsi
cmp byte [r13], 0
lea r13, [r13 + 1]
jne 0x180001802
mov r14, r13
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x180001810
mov qword [rbp - 0x20], r14
cmp byte [r14], 0
lea r14, [r14 + 1]
jne 0x18000181e
mov rbx, r14
cmp byte [rbx], 0
lea rbx, [rbx + 1]
jne 0x18000182b
mov rdi, rbx
cmp byte [rdi], 0
lea rdi, [rdi + 1]
jne 0x180001837
sub rsp, 0x20
mov rcx, rsi
call fcn.1800023a0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180001872
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001872
nop dword [rax]
jmp 0x180001870
mov qword [rbp - 8], rsi
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x1800018a3
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x1800018a3
jmp 0x1800018a1
add r8, r9
mov r11d, dword [r9 + rcx + 0x20]
mov r10d, dword [r9 + rcx + 0x24]
add r11, r9
add r10, r9
mov edx, dword [r11]
add rdx, r9
mov rsi, r13
movzx ecx, byte [rsi]
movzx eax, byte [rdx]
test cl, cl
je 0x1800018d5
add rsi, 1
add rdx, 1
cmp cl, al
je 0x1800018bf
cmp cl, al
je 0x1800018e3
add r11, 4
add r10, 2
jmp 0x1800018b6
movzx eax, word [r10]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, rbx
call r9
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x18000191b
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x18000191b
jmp 0x180001919
movsxd rax, dword [r10 + 0x3c]
mov eax, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rax + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001948
mov ecx, dword [0x180020a90]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x180001948
jmp 0x180001946
add r8, r10
mov edx, dword [r10 + rax + 0x20]
mov r9d, dword [r10 + rax + 0x24]
add rdx, r10
add r9, r10
mov eax, dword [rdx]
add rax, r10
mov rsi, r14
movzx ebx, byte [rsi]
movzx ecx, byte [rax]
test bl, bl
je 0x180001979
add rsi, 1
add rax, 1
cmp bl, cl
je 0x180001963
cmp bl, cl
je 0x180001987
add rdx, 4
add r9, 2
jmp 0x18000195b
movzx eax, word [r9]
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, rdi
mov r8, rdi
call r10
add rsp, 0x10
mov rcx, qword [rbp - 8]
call fcn.1800023a0
add rsp, 0x20
mov r10, rax
cmp dword [0x180020a84], 0xa
jl 0x1800019e9
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1800019e9
jmp 0x1800019e7
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [r10 + rax + 0x88]
mov r8d, dword [r10 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001a16
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
je 0x180001a16
jmp 0x180001a14
add r8, r10
mov edx, dword [r10 + rcx + 0x20]
mov r9d, dword [r10 + rcx + 0x24]
add rdx, r10
add r9, r10
lea rdi, [r12 + r15]
add rdi, 0x408
mov eax, dword [rdx]
add rax, r10
xor esi, esi
movzx ebx, byte [rdi + rsi]
movzx ecx, byte [rax + rsi]
test bl, bl
je 0x180001a4f
add rsi, 1
cmp bl, cl
je 0x180001a3b
cmp bl, cl
je 0x180001a5d
add rdx, 4
add r9, 2
jmp 0x180001a34
movzx eax, word [r9]
mov eax, dword [r8 + rax*4]
add r10, rax
mov rax, qword [rbp - 0x10]
mov edx, dword [rax + 0x50]
sub rsp, 0x20
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r10
add rsp, 0x20
mov qword [rbp], rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea ebx, [rax - 1]
imul ebx, eax
cmp ecx, 0xa
jl 0x180001aac
mov edx, ebx
and edx, 1
je 0x180001aac
jmp 0x180001aaa
test bl, 1
sete dl
cmp ecx, 0xa
setl bl
or bl, dl
cmp bl, 1
jne 0x180001c16
mov rdx, qword [rbp - 0x10]
lea r11, [rdx + 0x108]
xor r8d, r8d
mov rdx, qword [rbp - 0x10]
movzx edx, word [rdx + 6]
cmp r8, rdx
jae 0x180001c20
mov edi, dword [0x180020a74]
mov edx, dword [0x180020a78]
lea rax, [r8 + r8*4]
lea r9, [r11 + rax*8]
add r9, 0xc
lea r12, [r11 + rax*8]
add r12, 0x10
lea r10, [r11 + rax*8]
add r10, 0x14
cmp edx, 0xa
jl 0x180001b1e
lea eax, [rdi - 1]
imul eax, edi
and eax, 1
jne 0x180001c1c
mov eax, dword [r12]
test rax, rax
je 0x180001b74
mov edx, dword [r10]
mov ecx, dword [r9]
add rcx, qword [rbp]
lea rbx, [rdx + r15]
add rbx, 0x404
xor r14d, r14d
jmp 0x180001b4a
add r14, 1
cmp rax, r14
je 0x180001b74
movzx edx, byte [rbx + r14]
mov byte [rcx + r14], dl
mov edi, dword [0x180020a74]
mov edx, dword [0x180020a78]
cmp edx, 0xa
jl 0x180001b41
lea esi, [rdi - 1]
imul esi, edi
and esi, 1
je 0x180001b41
jmp 0x180001c18
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea esi, [rax - 1]
imul esi, eax
cmp ecx, 0xa
jl 0x180001bfa
mov ebx, esi
and ebx, 1
je 0x180001bfa
cmp edx, 0xa
jl 0x180001ba2
lea eax, [rdi - 1]
imul eax, edi
and eax, 1
jne 0x180001c1e
mov r14d, dword [r12]
test r14, r14
je 0x180001b0a
mov eax, dword [r10]
mov ecx, dword [r9]
add rcx, qword [rbp]
lea rbx, [rax + r15]
add rbx, 0x404
xor eax, eax
jmp 0x180001bd5
add rax, 1
cmp r14, rax
je 0x180001b0a
movzx edx, byte [rbx + rax]
mov byte [rcx + rax], dl
mov edi, dword [0x180020a74]
mov edx, dword [0x180020a78]
cmp edx, 0xa
jl 0x180001bc8
lea esi, [rdi - 1]
imul esi, edi
and esi, 1
je 0x180001bc8
jmp 0x180001c1a
add r8, 1
test sil, 1
sete dl
cmp ecx, 0xa
setl bl
or bl, dl
cmp bl, 1
je 0x180001ad1
jmp 0x180001c16
jmp 0x180001c18
jmp 0x180001c1a
jmp 0x180001c1c
jmp 0x180001c1e
mov rdx, qword [rbp - 0x10]
mov esi, dword [rdx + 0xb0]
mov rdx, qword [rbp]
cmp dword [rdx + rsi], 0
je 0x180001e10
mov rdx, qword [rbp - 0x10]
mov r8, qword [rdx + 0x30]
mov rdi, qword [rbp]
mov rdx, rdi
sub rdx, r8
add rsi, rdi
movabs r8, 0x1fffffff8
mov r10, rsi
jmp 0x180001c88
mov edi, dword [r10 + 4]
lea rsi, [r10 + rdi]
lea ebx, [rax - 1]
imul ebx, eax
test bl, 1
sete r9b
cmp ecx, 0xa
setl bl
or bl, r9b
cmp dword [r10 + rdi], 0
mov r10, rsi
je 0x180001e10
test bl, 1
je 0x180001c88
mov r9d, dword [r10 + 4]
test bl, 1
je 0x180001c88
lea edi, [rax - 1]
imul edi, eax
and edi, 1
cmp r9d, 7
jbe 0x180001df5
cmp ecx, 0xa
jl 0x180001cb6
test edi, edi
jne 0x180001e0a
add r9, r8
shr r9, 1
mov r9d, r9d
xor r11d, r11d
cmp r11, r9
je 0x180001df5
movzx edi, word [r10 + r11*2 + 8]
mov ebx, edi
shr ebx, 0xc
mov r14d, edi
and r14d, 0xfff
cmp edi, 0xa000
jae 0x180001d10
cmp ebx, 3
jne 0x180001dcc
mov eax, dword [rsi]
mov rcx, qword [rbp]
lea rax, [rcx + rax*4]
add dword [rax + r14*4], edx
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
jmp 0x180001dcc
cmp ebx, 0xa
jne 0x180001dcc
cmp ecx, 0xa
jl 0x180001d2d
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001e0e
mov eax, dword [rsi]
mov edi, r14d
add rdi, qword [rbp]
add qword [rax + rdi], rdx
jmp 0x180001d42
mov eax, dword [rsi]
add qword [rdi + rax], rdx
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
cmp ecx, 0xa
jl 0x180001dcc
lea ebx, [rax - 1]
imul ebx, eax
and ebx, 1
je 0x180001dcc
cmp ecx, 0xa
jl 0x180001d72
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180001e08
mov eax, dword [rsi]
add qword [rdi + rax], rdx
mov eax, dword [0x180020a6c]
cmp eax, 0xa
jl 0x180001d3c
mov ecx, dword [0x180020a70]
lea ebx, [rcx - 1]
imul ebx, ecx
and ebx, 1
je 0x180001d3c
cmp eax, 0xa
jl 0x180001da4
lea eax, [rcx - 1]
imul eax, ecx
and eax, 1
jne 0x180001dc4
mov eax, dword [rsi]
add qword [rdi + rax], rdx
cmp dword [0x180020a6c], 0xa
jl 0x180001d72
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180001d72
mov eax, dword [rsi]
add qword [rdi + rax], rdx
jmp 0x180001da4
lea edi, [rax - 1]
imul edi, eax
and edi, 1
cmp ecx, 0xa
jl 0x180001dde
test edi, edi
jne 0x180001e0c
add r11, 1
cmp ecx, 0xa
jl 0x180001cc2
test edi, edi
je 0x180001cc2
jmp 0x180001e0a
cmp ecx, 0xa
jl 0x180001c5c
test edi, edi
je 0x180001c5c
jmp 0x180001e06
jmp 0x180001e08
jmp 0x180001e0a
jmp 0x180001e0c
jmp 0x180001e0e
test bl, 1
je 0x1800022f8
mov rdx, qword [rbp - 0x10]
mov ebx, dword [rdx + 0x90]
mov rdx, qword [rbp]
add rbx, rdx
mov qword [rbp - 0x18], rbx
add rdx, 2
mov qword [rbp - 0x30], rdx
lea edx, [rax - 1]
imul edx, eax
test dl, 1
sete dl
cmp ecx, 0xa
setl al
or al, dl
test al, al
je 0x180001e4a
mov rax, qword [rbp - 0x18]
mov r14d, dword [rax + 0xc]
test r14, r14
je 0x180002310
add r14, qword [rbp]
sub rsp, 0x20
jmp 0x180001e7d
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r14
call r9
mov rcx, qword [rbp - 8]
call fcn.1800023a0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180001eab
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x1800022fa
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001eda
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x1800022fc
add r8, r9
mov edi, dword [r9 + rcx + 0x20]
mov ecx, dword [r9 + rcx + 0x24]
add rdi, r9
add rcx, r9
mov esi, dword [rdi]
add rsi, r9
mov rbx, r13
movzx eax, byte [rbx]
movzx edx, byte [rsi]
test al, al
je 0x180001f0b
add rbx, 1
add rsi, 1
cmp al, dl
je 0x180001ef5
cmp al, dl
je 0x180001f19
add rdi, 4
add rcx, 2
jmp 0x180001eed
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r14
call r9
add rsp, 0x20
mov r15, rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x180001ffe
test edx, edx
je 0x180001ffe
sub rsp, 0x20
mov rcx, qword [rbp - 8]
call fcn.1800023a0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180001f8c
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x1800022fe
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x180001fbb
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002300
add r8, r9
mov edi, dword [r9 + rcx + 0x20]
mov ecx, dword [r9 + rcx + 0x24]
add rdi, r9
add rcx, r9
mov esi, dword [rdi]
add rsi, r9
mov rbx, r13
movzx eax, byte [rbx]
movzx edx, byte [rsi]
test al, al
je 0x180001fec
add rbx, 1
add rsi, 1
cmp al, dl
je 0x180001fd6
cmp al, dl
je 0x180001e69
add rdi, 4
add rcx, 2
jmp 0x180001fce
cmp ecx, 0xa
jl 0x18000200b
test edx, edx
jne 0x18000230e
mov rdx, qword [rbp - 0x18]
mov ebx, dword [rdx]
mov r12d, dword [rdx + 0x10]
mov rdx, qword [rbp]
add rbx, rdx
mov qword [rbp - 0x28], rbx
add r12, rdx
mov rdx, qword [rbp - 0x28]
mov rdx, qword [rdx]
test rdx, rdx
je 0x1800022ee
mov rax, qword [rbp - 0x30]
add rax, rdx
test rdx, rdx
movzx r14d, dx
cmovns r14, rax
sub rsp, 0x20
mov rcx, qword [rbp - 8]
call fcn.1800023a0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x180002077
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000230c
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x1800020a6
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x18000230a
add r8, r9
mov edx, dword [r9 + rcx + 0x20]
mov esi, dword [r9 + rcx + 0x24]
add rdx, r9
add rsi, r9
mov edi, dword [rdx]
add rdi, r9
mov rax, qword [rbp - 0x20]
movzx ebx, byte [rax]
movzx ecx, byte [rdi]
test bl, bl
je 0x1800020d8
add rax, 1
add rdi, 1
cmp bl, cl
je 0x1800020c2
cmp bl, cl
je 0x1800020e6
add rdx, 4
add rsi, 2
jmp 0x1800020b9
movzx eax, word [rsi]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r15
mov rdx, r14
call r9
add rsp, 0x20
mov qword [r12], rax
mov eax, dword [0x180020a70]
mov ecx, dword [0x180020a6c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x1800022d2
test edx, edx
je 0x1800022d2
sub rsp, 0x20
mov rcx, qword [rbp - 8]
call fcn.1800023a0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x18000215d
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002302
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x18000218c
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002304
add r8, r9
mov edx, dword [r9 + rcx + 0x20]
mov ecx, dword [r9 + rcx + 0x24]
add rdx, r9
add rcx, r9
mov edi, dword [rdx]
add rdi, r9
mov rsi, qword [rbp - 0x20]
movzx eax, byte [rsi]
movzx ebx, byte [rdi]
test al, al
je 0x1800021be
add rsi, 1
add rdi, 1
cmp al, bl
je 0x1800021a8
cmp al, bl
je 0x1800021cc
add rdx, 4
add rcx, 2
jmp 0x18000219f
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r15
mov rdx, r14
call r9
add rsp, 0x20
mov qword [r12], rax
sub rsp, 0x20
mov rcx, qword [rbp - 8]
call fcn.1800023a0
add rsp, 0x20
mov r9, rax
cmp dword [0x180020a84], 0xa
jl 0x18000221d
mov eax, dword [0x180020a88]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002306
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [r9 + rax + 0x88]
mov r8d, dword [r9 + rcx + 0x1c]
cmp dword [0x180020a8c], 0xa
jl 0x18000224c
mov eax, dword [0x180020a90]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
jne 0x180002308
add r8, r9
mov edx, dword [r9 + rcx + 0x20]
mov ecx, dword [r9 + rcx + 0x24]
add rdx, r9
add rcx, r9
mov edi, dword [rdx]
add rdi, r9
mov rsi, qword [rbp - 0x20]
movzx eax, byte [rsi]
movzx ebx, byte [rdi]
test al, al
je 0x18000227e
add rsi, 1
add rdi, 1
cmp al, bl
je 0x180002268
cmp al, bl
je 0x18000228c
add rdx, 4
add rcx, 2
jmp 0x18000225f
movzx eax, word [rcx]
mov eax, dword [r8 + rax*4]
add r9, rax
sub rsp, 0x20
mov rcx, r15
mov rdx, r14
call r9
add rsp, 0x20
mov qword [r12], rax
cmp dword [0x180020a6c], 0xa
jl 0x180002045
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x18000212b
jmp 0x180002045
add qword [rbp - 0x28], 8
add r12, 8
cmp ecx, 0xa
jl 0x180002023
test edx, edx
je 0x180002023
jmp 0x18000230e
add qword [rbp - 0x18], 0x14
jmp 0x180001e36
jmp 0x1800022f8
jmp 0x1800022fa
jmp 0x1800022fc
jmp 0x1800022fe
jmp 0x180002300
jmp 0x180002302
jmp 0x180002304
jmp 0x180002306
jmp 0x180002308
jmp 0x18000230a
jmp 0x18000230c
jmp 0x18000230e
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x28]
add rax, qword [rbp]
sub rsp, 0x20
call rax
add rsp, 0x20
cmp dword [0x180020a6c], 0xa
jl 0x180002381
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x180002381
mov rsi, qword [rbp - 0x10]
mov rdi, qword [rbp]
mov eax, dword [rsi + 0x28]
add rax, rdi
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 0x180002381
mov eax, dword [0x180020a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x180002347
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret