Function at 0x1006a980
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, edx
push esi
mov dword [ebp - 0x18], eax
push edi
lea esi, [eax + 0x18]
mov edi, ecx
movzx eax, word [esi + 0xdfe]
mov dword [ebp - 0xc], edi
test ax, ax
je 0x1006abd7
movsx ecx, word [esi + 0xe00]
cwde
add eax, eax
shl ecx, 4
push ebx
add ecx, esi
movups xmm1, xmmword [esi + eax*8 - 0x10]
lea eax, [esi + 0xe04]
mov dword [ecx - 4], 0xffffffff
movaps xmm0, xmm1
movd dword [ebp - 8], xmm1
psrldq xmm0, 8
movd ebx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
movd edx, xmm0
mov dword [ebp - 4], ebx
mov dword [ecx - 0xc], ebx
mov dword [ebp - 0x14], edx
mov dword [ecx - 8], edx
movd dword [ecx - 0x10], xmm1
mov dword [ebp - 0x10], eax
movups xmmword [ebp - 0x28], xmm1
test ebx, ebx
je 0x1006ab95
mov eax, dword [eax]
add eax, ebx
cmp eax, 0x3e7
jl 0x1006aa1b
mov dword [ecx - 0xc], 0
jmp 0x1006ab78
mov edx, dword [esi + 0xe08]
cmp eax, edx
jle 0x1006ab23
movzx edi, word [esi + 0xe00]
mov eax, edi
cmp di, 0x63
je 0x1006abd6
nop dword [eax]
movzx eax, ax
cmp di, 0x62
jg 0x1006aaf6
cmp dword [esi + 0x62c], 0
jl 0x1006aaba
mov edi, dword [esi + 0x624]
lea eax, [edx + edi]
add edx, 0x318
mov dword [esi + 0xe08], eax
lea ecx, [eax + eax]
mov eax, 0x7ce
sub eax, ecx
push eax
lea eax, [esi + edx*2]
push eax
lea eax, [esi + 0x630]
add eax, ecx
push eax
call sub.VCRUNTIME140.dll_memmove
movsx ecx, word [esi + 0xe00]
add esp, 0xc
cmp ecx, 0x62
jge 0x1006aaba
mov eax, ecx
mov edx, 0x62
shl eax, 4
add eax, 0xc
add eax, esi
sub edx, ecx
mov ecx, dword [eax]
test ecx, ecx
js 0x1006aab2
add ecx, edi
mov dword [eax], ecx
add eax, 0x10
sub edx, 1
jne 0x1006aaa8
movsx edx, word [esi + 0xe00]
mov ecx, edx
shl ecx, 4
add ecx, esi
cmp ecx, esi
jb 0x1006ab8d
mov eax, 0x62
sub eax, edx
shl eax, 4
push eax
push ecx
lea eax, [ecx + 0x10]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
inc word [esi + 0xe00]
movzx eax, word [esi + 0xe00]
mov edx, dword [esi + 0xe08]
movzx ecx, ax
mov eax, dword [esi + 0xe04]
add eax, ebx
cmp eax, edx
jle 0x1006ab20
mov eax, ecx
mov edi, ecx
cmp cx, 0x63
jne 0x1006aa40
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0xc]
movsx ebx, word [esi + 0xe00]
mov eax, dword [ebp - 4]
add ebx, ebx
sub edx, eax
mov dword [esi + ebx*8 - 4], edx
xor edx, edx
sub dword [esi + 0xe08], eax
test eax, eax
jle 0x1006ab75
mov eax, dword [ebp - 8]
lea edi, [eax + eax]
mov ecx, dword [ebp - 0xc]
add eax, edx
cmp eax, dword [ecx + 4]
jge 0x1006ab8d
mov eax, dword [ecx + 0xc]
mov ecx, dword [esi + ebx*8 - 4]
add ecx, edx
inc edx
mov ax, word [edi + eax]
add edi, 2
mov word [esi + ecx*2 + 0x630], ax
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 4]
jl 0x1006ab47
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
push ebx
mov ebx, dword [ebp - 8]
mov ecx, edi
mov edx, ebx
call fcn.10069480
mov edx, dword [ebp - 0x14]
add esp, 4
jmp 0x1006ab9b
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
test edx, edx
je 0x1006abc0
mov eax, dword [ebp - 0x1c]
mov ecx, edi
add eax, 0x318
push edx
mov edx, ebx
lea eax, [esi + eax*2]
push eax
call fcn.100694e0
mov eax, dword [ebp - 0x10]
add esp, 8
mov edx, dword [ebp - 0x14]
sub dword [eax], edx
mov ecx, dword [ebp - 0x18]
lea eax, [ebx + edx]
mov dword [ecx], eax
dec word [esi + 0xdfe]
dec word [esi + 0xe00]
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret