Function at 0x180020070
Capabilities:
Enumerate pe sections

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa68
mov rax, qword [0x180107738]
xor rax, rsp
mov qword [rsp + 0xa50], rax
mov eax, dword [rsp + 0xad8]
mov r15d, r8d
mov r13d, dword [rsp + 0xae8]
mov rbx, rcx
mov edi, dword [rsp + 0xad0]
mov ebp, r8d
mov dword [rsp + 0x7c], eax
imul r15d, r13d
mov qword [rsp + 0x138], rdx
mov edx, 2
mov qword [rsp + 0x80], rcx
mov dword [rsp + 0x54], r9d
mov dword [rsp + 0x40], edi
mov eax, r15d
mov dword [rsp + 0x28], r13d
shl eax, 4
movsxd rcx, eax
mov dword [rsp + 0x20], r15d
call fcn.1800b2694
mov ecx, r15d
mov qword [rsp + 0x38], rax
shl ecx, 8
mov edx, 2
movsxd rcx, ecx
call fcn.1800b2694
xor r9d, r9d
mov rsi, rax
mov r11d, r9d
test ebp, ebp
jle 0x1800201bf
mov r12d, dword [rsp + 0xae0]
mov rdi, rbx
mov r15, qword [rsp + 0x38]
movsxd r14, r13d
nop
test r13d, r13d
jle 0x1800201a3
mov ebx, ebp
mov r8d, r11d
shl ebx, 4
mov rdx, rdi
shl r8d, 4
mov r10, r13
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
shr eax, 4
add eax, r8d
add r8d, ebx
cdqe
lea rcx, [r15 + rax*2]
lea eax, [r12 + 1]
add word [rcx], ax
movzx eax, byte [rdx - 1]
mov ecx, eax
and eax, 0xf
shr ecx, 4
add ecx, r9d
add r9d, 0x10
imul ecx, ebp
add ecx, r11d
shl ecx, 4
add eax, ecx
cdqe
lea rcx, [rsi + rax*2]
lea eax, [r12 + 1]
add word [rcx], ax
sub r10, 1
jne 0x180020150
xor r9d, r9d
inc r11d
add rdi, r14
cmp r11d, ebp
jl 0x180020130
mov r15d, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x80]
mov edi, dword [rsp + 0x40]
mov r12d, dword [rsp + 0xae0]
test r12d, r12d
jle 0x18002029c
movsxd r13, edi
mov r15, rbx
mov qword [rsp + 0x68], r13
nop dword [rax + rax]
mov r11d, r9d
test ebp, ebp
jle 0x18002027d
movsxd rax, dword [rsp + 0x28]
mov rdi, r15
mov r14, rax
mov qword [rsp + 0x70], rax
xor r13d, r13d
nop
test eax, eax
jle 0x18002026a
mov r14, qword [rsp + 0x38]
mov ebx, ebp
shl ebx, 4
mov r8d, r11d
shl r8d, 4
mov r9d, r13d
mov rdx, rdi
mov r10d, eax
nop
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
shr eax, 4
add eax, r8d
add r8d, ebx
cdqe
inc word [r14 + rax*2]
movzx eax, byte [rdx - 1]
mov ecx, eax
and eax, 0xf
shr ecx, 4
add ecx, r9d
add r9d, 0x10
imul ecx, ebp
add ecx, r11d
shl ecx, 4
add eax, ecx
cdqe
inc word [rsi + rax*2]
sub r10, 1
jne 0x180020220
mov r14, qword [rsp + 0x70]
mov eax, dword [rsp + 0x28]
inc r11d
add rdi, r14
cmp r11d, ebp
jl 0x180020200
mov r13, qword [rsp + 0x68]
xor r9d, r9d
add r15, r13
sub r12, 1
jne 0x1800201e0
mov r15d, dword [rsp + 0x20]
mov r12d, dword [rsp + 0xae0]
mov r13d, dword [rsp + 0x28]
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x30], r9d
test eax, eax
jle 0x180021184
lea r8d, [rax - 1]
movsxd rcx, r15d
movsxd rax, r13d
lea r14d, [r12 + r12]
imul rdx, rax, 0x220
shl rax, 5
mov r15d, r9d
cmp dword [rsp + 0xaf0], 0
mov qword [rsp + 0xa8], rax
mov eax, r12d
cmovne eax, r9d
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x58], r8d
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x44], r14d
nop dword [rax + rax]
mov eax, r15d
mov r11d, r9d
sub eax, r12d
dec eax
test eax, eax
cmovle eax, r9d
imul eax, dword [rsp + 0x40]
movsxd rdx, eax
add rdx, qword [rsp + 0x80]
lea rdi, [rcx + rdx]
cmp rdx, rdi
je 0x1800203c7
mov r12, qword [rsp + 0x38]
xor r14d, r14d
mov r15d, 0xffff
nop dword [rax]
test r13d, r13d
jle 0x1800203a0
mov ebx, ebp
mov r10d, r13d
shl ebx, 4
mov r8d, r11d
shl r8d, 4
mov r9d, r14d
nop word [rax + rax]
movzx eax, byte [rdx]
shr eax, 4
add eax, r8d
add r8d, ebx
cdqe
add word [r12 + rax*2], r15w
movzx eax, byte [rdx]
inc rdx
mov ecx, eax
and eax, 0xf
shr ecx, 4
add ecx, r9d
add r9d, 0x10
imul ecx, ebp
add ecx, r11d
shl ecx, 4
add eax, ecx
cdqe
add word [rsi + rax*2], r15w
sub r10, 1
jne 0x180020360
inc r11d
cmp rdx, rdi
jne 0x180020340
mov r12d, dword [rsp + 0xae0]
xor r9d, r9d
mov r14d, dword [rsp + 0x44]
mov r15d, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x58]
lea eax, [r15 + r12]
mov r11d, r9d
cmp r8d, eax
cmovle eax, r8d
imul eax, dword [rsp + 0x40]
movsxd rdx, eax
add rdx, qword [rsp + 0x80]
lea rdi, [rcx + rdx]
cmp rdx, rdi
je 0x180020464
mov r12, qword [rsp + 0x38]
xor r14d, r14d
test r13d, r13d
jle 0x18002044f
mov ebx, ebp
mov r10d, r13d
shl ebx, 4
mov r8d, r11d
shl r8d, 4
mov r9d, r14d
nop dword [rax]
movzx eax, byte [rdx]
shr eax, 4
add eax, r8d
add r8d, ebx
cdqe
inc word [r12 + rax*2]
movzx eax, byte [rdx]
inc rdx
mov ecx, eax
and eax, 0xf
shr ecx, 4
add ecx, r9d
add r9d, 0x10
imul ecx, ebp
add ecx, r11d
shl ecx, 4
add eax, ecx
cdqe
inc word [rsi + rax*2]
sub r10, 1
jne 0x180020410
inc r11d
cmp rdx, rdi
jne 0x1800203f6
mov r12d, dword [rsp + 0xae0]
mov r14d, dword [rsp + 0x44]
mov r8, qword [rsp + 0xa0]
lea rcx, [rsp + 0x150]
xor edx, edx
call fcn.18007d940
mov r8, qword [rsp + 0xa8]
lea rcx, [rsp + 0x9d0]
xor edx, edx
call fcn.18007d940
mov ecx, dword [rsp + 0xaf0]
mov rbx, qword [rsp + 0x38]
test ecx, ecx
je 0x18002061a
test r13d, r13d
jle 0x18002061a
mov eax, ebp
mov r9d, r13d
shl eax, 4
lea rdx, [rsp + 0x154]
movsxd r10, eax
lea r8, [rbx + 4]
add r10, r10
nop dword [rax]
movzx ecx, word [r8 - 4]
lea rdx, [rdx + 0x220]
movzx eax, r12w
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x224], cx
movzx ecx, word [r8 - 2]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x222], cx
movzx ecx, word [r8]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x220], cx
movzx ecx, word [r8 + 2]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x21e], cx
movzx ecx, word [r8 + 4]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x21c], cx
movzx ecx, word [r8 + 6]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x21a], cx
movzx ecx, word [r8 + 8]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x218], cx
movzx ecx, word [r8 + 0xa]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x216], cx
movzx ecx, word [r8 + 0xc]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x214], cx
movzx ecx, word [r8 + 0xe]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x212], cx
movzx ecx, word [r8 + 0x10]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x210], cx
movzx ecx, word [r8 + 0x12]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x20e], cx
movzx ecx, word [r8 + 0x14]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x20c], cx
movzx ecx, word [r8 + 0x16]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x20a], cx
movzx ecx, word [r8 + 0x18]
imul ecx, eax
movzx eax, r12w
add word [rdx - 0x208], cx
movzx ecx, word [r8 + 0x1a]
add r8, r10
imul ecx, eax
add word [rdx - 0x206], cx
sub r9, 1
jne 0x1800204d0
mov ecx, dword [rsp + 0xaf0]
xor eax, eax
mov r10d, eax
mov r11d, eax
test ecx, ecx
mov eax, r12d
cmove eax, r14d
cmp r10d, eax
jge 0x180020733
test r13d, r13d
jle 0x180020727
mov eax, ebp
movsxd rdx, r11d
shl eax, 4
lea rcx, [rsp + 0x154]
movsxd r9, eax
add r9, r9
mov r8d, r13d
add rdx, 2
lea rdx, [rbx + rdx*2]
nop
movzx eax, word [rdx - 4]
add word [rcx - 4], ax
lea rcx, [rcx + 0x220]
movzx eax, word [rdx - 2]
add word [rcx - 0x222], ax
movzx eax, word [rdx]
add word [rcx - 0x220], ax
movzx eax, word [rdx + 2]
add word [rcx - 0x21e], ax
movzx eax, word [rdx + 4]
add word [rcx - 0x21c], ax
movzx eax, word [rdx + 6]
add word [rcx - 0x21a], ax
movzx eax, word [rdx + 8]
add word [rcx - 0x218], ax
movzx eax, word [rdx + 0xa]
add word [rcx - 0x216], ax
movzx eax, word [rdx + 0xc]
add word [rcx - 0x214], ax
movzx eax, word [rdx + 0xe]
add word [rcx - 0x212], ax
movzx eax, word [rdx + 0x10]
add word [rcx - 0x210], ax
movzx eax, word [rdx + 0x12]
add word [rcx - 0x20e], ax
movzx eax, word [rdx + 0x14]
add word [rcx - 0x20c], ax
movzx eax, word [rdx + 0x16]
add word [rcx - 0x20a], ax
movzx eax, word [rdx + 0x18]
add word [rcx - 0x208], ax
movzx eax, word [rdx + 0x1a]
add rdx, r9
add word [rcx - 0x206], ax
sub r8, 1
jne 0x180020660
mov ecx, dword [rsp + 0xaf0]
inc r10d
add r11d, 0x10
jmp 0x180020622
test r13d, r13d
jle 0x1800208a8
mov eax, ebp
mov r14d, r13d
shl eax, 4
lea r11, [rsp + 0x174]
movsxd rdi, eax
lea rbx, [rsi + 4]
mov eax, ebp
movzx r9d, r12w
shl eax, 8
add r9w, r9w
movsxd r15, eax
inc r9w
add rdi, rdi
add r15, r15
nop dword [rax]
mov rdx, r11
mov r8, rbx
mov r10d, reloc.WS2_32.dll_recv
nop dword [rax]
movzx ecx, word [r8 - 4]
lea rdx, [rdx + 0x20]
movzx eax, r9w
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x24], cx
movzx ecx, word [r8 - 2]
imul ecx, eax
movzx eax, word [r8]
add word [rdx - 0x22], cx
movzx ecx, r9w
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x20], cx
movzx ecx, word [r8 + 2]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x1e], cx
movzx ecx, word [r8 + 4]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x1c], cx
movzx ecx, word [r8 + 6]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x1a], cx
movzx ecx, word [r8 + 8]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x18], cx
movzx ecx, word [r8 + 0xa]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x16], cx
movzx ecx, word [r8 + 0xc]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x14], cx
movzx ecx, word [r8 + 0xe]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x12], cx
movzx ecx, word [r8 + 0x10]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0x10], cx
movzx ecx, word [r8 + 0x12]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0xe], cx
movzx ecx, word [r8 + 0x14]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0xc], cx
movzx ecx, word [r8 + 0x16]
imul ecx, eax
movzx eax, r9w
add word [rdx - 0xa], cx
movzx ecx, word [r8 + 0x18]
imul ecx, eax
movzx eax, r9w
add word [rdx - 8], cx
movzx ecx, word [r8 + 0x1a]
add r8, rdi
imul ecx, eax
add word [rdx - 6], cx
sub r10, 1
jne 0x180020780
add rbx, r15
add r11, 0x220
sub r14, 1
jne 0x180020770
lea r14d, [r12 + r12]
mov ecx, dword [rsp + 0x78]
mov r8d, r13d
imul r8d, ecx
mov edx, ecx
sub edx, r12d
mov eax, ebp
mov dword [rsp + 0x50], edx
sub eax, r12d
mov dword [rsp + 0x20], r8d
cmp dword [rsp + 0xaf8], 0
mov dword [rsp + 0x2c], ecx
cmovne eax, ebp
cmp ecx, eax
jge 0x18002115c
xor ebx, ebx
mov dword [rsp + 0x4c], ebx
test r13d, r13d
jle 0x18002114c
mov rdi, qword [rsp + 0x38]
lea eax, [r12 + 1]
movzx r8d, ax
lea r11d, [rbp - 1]
movzx ecx, r12w
lea r10, [rsp + 0x154]
imul r8d, ecx
mov eax, ebp
shl eax, 4
lea ecx, [rdx + r14]
cdqe
lea r13d, [rcx + 1]
add rax, rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x140], rax
mov r9d, ebx
add r8w, r8w
mov qword [rsp + 0x98], rbx
cmp ecx, r11d
mov dword [rsp + 0x48], r8d
mov eax, r11d
mov dword [rsp + 0x24], ebx
cmovle eax, ecx
mov qword [rsp + 0x68], rbx
shl eax, 4
add rdi, 4
movsxd rcx, eax
test edx, edx
mov eax, ebx
mov qword [rsp + 0x88], rbx
cmovns eax, edx
mov qword [rsp + 0x90], r10
shl eax, 4
mov r14d, ebx
movsxd rdx, eax
lea rdi, [rdi + rcx*2]
sub rdx, rcx
mov r15d, ebx
lea rax, [rdx + rdx]
lea rcx, [rax - 2]
mov qword [rsp + 0xc8], rax
add rax, 2
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xd0], rax
lea rax, [rdx*2 + 4]
mov qword [rsp + 0xd8], rax
lea rax, [rdx*2 + 6]
mov qword [rsp + 0xe0], rax
lea rax, [rdx*2 + 8]
mov qword [rsp + 0xe8], rax
lea rax, [rdx*2 + 0xa]
mov qword [rsp + 0xf0], rax
lea rax, [rdx*2 + 0xc]
mov qword [rsp + 0xf8], rax
lea rax, [rdx*2 + 0xe]
mov qword [rsp + 0x100], rax
lea rax, [rdx*2 + 0x10]
mov qword [rsp + 0x108], rax
lea rax, [rdx*2 + 0x12]
mov qword [rsp + 0x110], rax
lea rax, [rdx*2 + 0x14]
mov qword [rsp + 0x118], rax
lea rax, [rdx*2 + 0x16]
mov qword [rsp + 0x120], rax
lea rax, [rdx*2 + 0x18]
mov qword [rsp + 0x128], rax
lea rax, [rdx*2 + 0x1a]
mov qword [rsp + 0x130], rax
lea rax, [rdx*2 - 4]
mov qword [rsp + 0xb8], rax
jmp 0x180020a82
xor ebx, ebx
movzx eax, word [rdi - 4]
movzx r11d, bx
add word [r10 - 4], ax
movzx eax, word [rdi - 2]
add word [r10 - 2], ax
movzx eax, word [rdi]
add word [r10], ax
movzx eax, word [rdi + 2]
add word [r10 + 2], ax
movzx eax, word [rdi + 4]
add word [r10 + 4], ax
movzx eax, word [rdi + 6]
add word [r10 + 6], ax
movzx eax, word [rdi + 8]
add word [r10 + 8], ax
movzx eax, word [rdi + 0xa]
add word [r10 + 0xa], ax
movzx eax, word [rdi + 0xc]
add word [r10 + 0xc], ax
movzx eax, word [rdi + 0xe]
add word [r10 + 0xe], ax
movzx eax, word [rdi + 0x10]
add word [r10 + 0x10], ax
movzx eax, word [rdi + 0x12]
add word [r10 + 0x12], ax
movzx eax, word [rdi + 0x14]
add word [r10 + 0x14], ax
movzx eax, word [rdi + 0x16]
add word [r10 + 0x16], ax
movzx eax, word [rdi + 0x18]
add word [r10 + 0x18], ax
movzx eax, word [rdi + 0x1a]
add word [r10 + 0x1a], ax
movsxd rax, ebx
movzx ecx, r11w
add rax, r15
add r11w, word [rsp + rax*2 + 0x150]
cmp r11w, r8w
ja 0x180020b36
inc ebx
cmp ebx, 0x10
jl 0x180020b14
jmp 0x180020b3a
movzx r11d, cx
movsxd r12, ebx
lea r15, [rsp + 0x9d0]
lea rax, [r14 + r12]
movzx r14d, word [r15 + rax*2]
lea r15, [r15 + rax*2]
mov qword [rsp + 0xb0], r15
cmp r14d, dword [rsp + 0x50]
jg 0x180020dd6
mov rax, qword [rsp + 0x88]
xorps xmm0, xmm0
movzx r9d, word [rsp + 0x2c]
add rax, r12
mov r14, qword [rsp + 0x60]
mov r10d, dword [rsp + 0x24]
shl rax, 5
sub r9w, word [rsp + 0xae0]
movups xmmword [rsp + rax + 0x170], xmm0
movups xmmword [rsp + rax + 0x180], xmm0
cmp r13d, ebp
movzx r8d, r9w
mov eax, ebp
mov word [r15], r9w
cmovle eax, r13d
cmp r8d, eax
jge 0x180020c66
lea ecx, [r10 + rbx]
imul ecx, ebp
lea rdx, [r14 + r12]
shl rdx, 5
lea rax, [rsp + 0x170]
add rax, rdx
add ecx, r8d
shl ecx, 4
movsxd rcx, ecx
lea r8, [rsi + rcx*2]
lea rcx, [rsp + 0x18e]
add rdx, rcx
lea rcx, [r8 + 0x1e]
cmp rax, rcx
ja 0x180020c2b
cmp rdx, r8
jb 0x180020c2b
sub r8, rax
mov edx, reloc.WS2_32.dll_recv
nop dword [rax]
nop word [rax + rax]
movzx ecx, word [rax + r8]
add word [rax], cx
lea rax, [rax + 2]
sub rdx, 1
jne 0x180020c10
inc r9w
jmp 0x180020ba0
sub r8, rax
mov ecx, 2
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [r8 + rax]
lea rax, [rax + 0x10]
paddw xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
sub rcx, 1
jne 0x180020c40
inc r9w
jmp 0x180020ba0
mov r10, qword [rsp + 0x90]
cmp r8d, r13d
jge 0x180020f63
movzx edx, word [rsp + 0x2c]
lea rax, [r14 + r12]
mov r14d, dword [rsp + 0xae0]
lea r9, [rsp + 0x170]
shl rax, 5
sub dx, bp
add r9, rax
inc dx
mov eax, dword [rsp + 0x24]
add dx, r14w
inc eax
movzx ecx, dx
add eax, ebx
imul eax, ebp
shl eax, 4
movsxd r8, eax
movzx eax, word [rsi + r8*2 - 0x20]
imul ecx, eax
movzx eax, dx
add word [r9], cx
movzx ecx, word [rsi + r8*2 - 0x1e]
imul ecx, eax
movzx eax, dx
add word [r9 + 2], cx
movzx ecx, word [rsi + r8*2 - 0x1c]
imul ecx, eax
movzx eax, dx
add word [r9 + 4], cx
movzx ecx, word [rsi + r8*2 - 0x1a]
imul ecx, eax
movzx eax, dx
add word [r9 + 6], cx
movzx ecx, word [rsi + r8*2 - 0x18]
imul ecx, eax
movzx eax, dx
add word [r9 + 8], cx
movzx ecx, word [rsi + r8*2 - 0x16]
imul ecx, eax
movzx eax, dx
add word [r9 + 0xa], cx
movzx ecx, word [rsi + r8*2 - 0x14]
imul ecx, eax
movzx eax, dx
add word [r9 + 0xc], cx
movzx ecx, word [rsi + r8*2 - 0x12]
imul ecx, eax
movzx eax, dx
add word [r9 + 0xe], cx
movzx ecx, word [rsi + r8*2 - 0x10]
imul ecx, eax
movzx eax, dx
add word [r9 + 0x10], cx
movzx ecx, word [rsi + r8*2 - 0xe]
imul ecx, eax
movzx eax, dx
add word [r9 + 0x12], cx
movzx ecx, word [rsi + r8*2 - 0xc]
imul ecx, eax
movzx eax, dx
add word [r9 + 0x14], cx
movzx ecx, word [rsi + r8*2 - 0xa]
imul ecx, eax
movzx eax, dx
add word [r9 + 0x16], cx
movzx ecx, word [rsi + r8*2 - 8]
imul ecx, eax
movzx eax, dx
add word [r9 + 0x18], cx
movzx ecx, word [rsi + r8*2 - 6]
imul ecx, eax
movzx eax, dx
add word [r9 + 0x1a], cx
movzx ecx, word [rsi + r8*2 - 4]
imul ecx, eax
movzx eax, dx
add word [r9 + 0x1c], cx
movzx ecx, word [rsi + r8*2 - 2]
imul ecx, eax
movzx eax, word [rsp + 0x2c]
add word [r9 + 0x1e], cx
inc ax
add ax, r14w
mov word [r15], ax
jmp 0x180020f63
cmp r14d, r13d
jge 0x180020f68
mov r15d, dword [rsp + 0x24]
lea rax, [r9 + r12]
mov r12d, dword [rsp + 0x44]
lea r9, [rsp + 0x170]
shl rax, 5
lea r10d, [rbp - 1]
add r9, rax
add r15d, ebx
imul r15d, ebp
nop word [rax + rax]
movzx edx, r14w
mov ecx, 0
mov eax, edx
sub eax, r12d
sub eax, 1
cmovns ecx, eax
mov eax, r10d
add ecx, r15d
shl ecx, 4
movsxd r8, ecx
cmp edx, r10d
cmovle eax, edx
inc r14w
add eax, r15d
shl eax, 4
movsxd rcx, eax
movzx eax, word [rsi + rcx*2]
sub ax, word [rsi + r8*2]
add word [r9], ax
movzx eax, word [rsi + rcx*2 + 2]
sub ax, word [rsi + r8*2 + 2]
add word [r9 + 2], ax
movzx eax, word [rsi + rcx*2 + 4]
sub ax, word [rsi + r8*2 + 4]
add word [r9 + 4], ax
movzx eax, word [rsi + rcx*2 + 6]
sub ax, word [rsi + r8*2 + 6]
add word [r9 + 6], ax
movzx eax, word [rsi + rcx*2 + 8]
sub ax, word [rsi + r8*2 + 8]
add word [r9 + 8], ax
movzx eax, word [rsi + rcx*2 + 0xa]
sub ax, word [rsi + r8*2 + 0xa]
add word [r9 + 0xa], ax
movzx eax, word [rsi + rcx*2 + 0xc]
sub ax, word [rsi + r8*2 + 0xc]
add word [r9 + 0xc], ax
movzx eax, word [rsi + rcx*2 + 0xe]
sub ax, word [rsi + r8*2 + 0xe]
add word [r9 + 0xe], ax
movzx eax, word [rsi + rcx*2 + 0x10]
sub ax, word [rsi + r8*2 + 0x10]
add word [r9 + 0x10], ax
movzx eax, word [rsi + rcx*2 + 0x12]
sub ax, word [rsi + r8*2 + 0x12]
add word [r9 + 0x12], ax
movzx eax, word [rsi + rcx*2 + 0x14]
sub ax, word [rsi + r8*2 + 0x14]
add word [r9 + 0x14], ax
movzx eax, word [rsi + rcx*2 + 0x16]
sub ax, word [rsi + r8*2 + 0x16]
add word [r9 + 0x16], ax
movzx eax, word [rsi + rcx*2 + 0x18]
sub ax, word [rsi + r8*2 + 0x18]
add word [r9 + 0x18], ax
movzx eax, word [rsi + rcx*2 + 0x1a]
sub ax, word [rsi + r8*2 + 0x1a]
add word [r9 + 0x1a], ax
movzx eax, word [rsi + rcx*2 + 0x1c]
sub ax, word [rsi + r8*2 + 0x1c]
add word [r9 + 0x1c], ax
movzx eax, word [rsi + rcx*2 + 0x1e]
sub ax, word [rsi + r8*2 + 0x1e]
add word [r9 + 0x1e], ax
movzx eax, r14w
cmp eax, r13d
jl 0x180020e10
mov rcx, qword [rsp + 0xb0]
mov r10, qword [rsp + 0x90]
movsxd r12, ebx
mov word [rcx], ax
mov r8d, dword [rsp + 0x48]
mov rax, qword [rsp + 0xb8]
lea rdx, [rsp + 0x170]
mov r14, qword [rsp + 0x60]
movzx eax, word [rdi + rax]
sub word [r10 - 4], ax
mov rax, qword [rsp + 0xc0]
movzx eax, word [rdi + rax]
sub word [r10 - 2], ax
mov rax, qword [rsp + 0xc8]
movzx eax, word [rdi + rax]
sub word [r10], ax
mov rax, qword [rsp + 0xd0]
movzx eax, word [rdi + rax]
sub word [r10 + 2], ax
mov rax, qword [rsp + 0xd8]
movzx eax, word [rdi + rax]
sub word [r10 + 4], ax
mov rax, qword [rsp + 0xe0]
movzx eax, word [rdi + rax]
sub word [r10 + 6], ax
mov rax, qword [rsp + 0xe8]
movzx eax, word [rdi + rax]
sub word [r10 + 8], ax
mov rax, qword [rsp + 0xf0]
movzx eax, word [rdi + rax]
sub word [r10 + 0xa], ax
mov rax, qword [rsp + 0xf8]
movzx eax, word [rdi + rax]
sub word [r10 + 0xc], ax
mov rax, qword [rsp + 0x100]
movzx eax, word [rdi + rax]
sub word [r10 + 0xe], ax
mov rax, qword [rsp + 0x108]
movzx eax, word [rdi + rax]
sub word [r10 + 0x10], ax
mov rax, qword [rsp + 0x110]
movzx eax, word [rdi + rax]
sub word [r10 + 0x12], ax
mov rax, qword [rsp + 0x118]
movzx eax, word [rdi + rax]
sub word [r10 + 0x14], ax
mov rax, qword [rsp + 0x120]
movzx eax, word [rdi + rax]
sub word [r10 + 0x16], ax
mov rax, qword [rsp + 0x128]
movzx eax, word [rdi + rax]
sub word [r10 + 0x18], ax
mov rax, qword [rsp + 0x130]
movzx eax, word [rdi + rax]
sub word [r10 + 0x1a], ax
lea rax, [r14 + r12]
shl rax, 5
add rdx, rax
xor ecx, ecx
movsxd rax, ecx
add r11w, word [rdx + rax*2]
cmp r11w, r8w
ja 0x1800210a8
inc ecx
cmp ecx, 0x10
jl 0x180021091
jmp 0x1800210cb
mov eax, dword [rsp + 0x7c]
imul eax, dword [rsp + 0x30]
shl bl, 4
add bl, cl
mov rcx, qword [rsp + 0x138]
add eax, dword [rsp + 0x20]
add eax, dword [rsp + 0x4c]
cdqe
mov byte [rax + rcx], bl
mov eax, dword [rsp + 0x4c]
add r14, 0x11
mov r15, qword [rsp + 0x68]
inc eax
add qword [rsp + 0x98], 0x10
add r15, 0x110
add qword [rsp + 0x88], 0x11
add r10, 0x220
add dword [rsp + 0x24], 0x10
mov r9, r14
add rdi, qword [rsp + 0x140]
mov qword [rsp + 0x60], r14
mov r14, qword [rsp + 0x98]
mov dword [rsp + 0x4c], eax
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x90], r10
cmp eax, dword [rsp + 0x28]
jl 0x180020a80
mov r12d, dword [rsp + 0xae0]
mov r13d, dword [rsp + 0x28]
mov edx, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x2c]
mov r8d, dword [rsp + 0x20]
inc ecx
lea r14d, [r12 + r12]
inc edx
add r8d, r13d
jmp 0x1800208b8
mov r15d, dword [rsp + 0x30]
mov r9d, 0
mov rcx, qword [rsp + 0x70]
inc r15d
mov r8d, dword [rsp + 0x58]
mov dword [rsp + 0x30], r15d
cmp r15d, dword [rsp + 0x54]
jl 0x180020300
mov rcx, qword [rsp + 0x38]
call fcn.1800a37cc
mov rcx, rsi
call fcn.1800a37cc
mov rcx, qword [rsp + 0xa50]
xor rcx, rsp
call fcn.18007b2f0
add rsp, 0xa68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret