Function at 0x1007a970
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x1016c008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
push ebx
mov ebx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
sub eax, edi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], eax
movlpd qword [ebp - 0xc], xmm0
mov dword [ebp - 0x24], 0
test edx, edx
jle 0x1007abba
push esi
push edi
lea eax, [ebp - 0xc]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [edi - 2]
add esp, 0xc
xor esi, esi
cmp eax, 3
ja case.default.0x1007a9d1
jmp dword [eax*4 + 0x1007abcc]
xor ecx, ecx
cmp dword [ebp - 0x14], ecx
jl 0x1007ab66
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
nop dword [eax]
mov bl, byte [edx]
mov eax, ecx
and eax, 7
movzx edx, bl
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
lea eax, [edi + ecx]
and eax, 7
add esi, edx
mov edx, dword [ebp - 0x10]
inc ecx
mov byte [ebp + eax - 0xc], bl
mov eax, esi
mov ebx, dword [ebp - 0x1c]
shr eax, 1
mov byte [edx], al
add edx, ebx
mov dword [ebp - 0x10], edx
cmp ecx, dword [ebp - 0x14]
jle 0x1007a9f0
jmp 0x1007ab66
xor ecx, ecx
cmp dword [ebp - 0x14], ecx
jl 0x1007ab66
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
nop word [eax + eax]
mov bl, byte [eax]
mov eax, ecx
and eax, 7
movzx edx, bl
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
lea eax, [edi + ecx]
and eax, 7
add esi, edx
inc ecx
mov byte [ebp + eax - 0xc], bl
mov eax, 0xaaaaaaab
mov ebx, dword [ebp - 0x1c]
mul esi
mov eax, dword [ebp - 0x10]
shr edx, 1
mov byte [eax], dl
add eax, ebx
mov dword [ebp - 0x10], eax
cmp ecx, dword [ebp - 0x14]
jle 0x1007aa40
jmp 0x1007ab66
xor ecx, ecx
cmp dword [ebp - 0x14], ecx
jl 0x1007ab66
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
nop
mov bl, byte [edx]
mov eax, ecx
and eax, 7
movzx edx, bl
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
lea eax, [edi + ecx]
and eax, 7
add esi, edx
mov edx, dword [ebp - 0x10]
inc ecx
mov byte [ebp + eax - 0xc], bl
mov eax, esi
mov ebx, dword [ebp - 0x1c]
shr eax, 2
mov byte [edx], al
add edx, ebx
mov dword [ebp - 0x10], edx
cmp ecx, dword [ebp - 0x14]
jle 0x1007aa90
jmp 0x1007ab66
xor ecx, ecx
cmp dword [ebp - 0x14], ecx
jl 0x1007ab66
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
nop dword [eax + eax]
mov bl, byte [eax]
mov eax, ecx
and eax, 7
movzx edx, bl
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
lea eax, [edi + ecx]
and eax, 7
add esi, edx
inc ecx
mov byte [ebp + eax - 0xc], bl
mov eax, 0xcccccccd
mov ebx, dword [ebp - 0x1c]
mul esi
mov eax, dword [ebp - 0x10]
shr edx, 2
mov byte [eax], dl
add eax, ebx
mov dword [ebp - 0x10], eax
cmp ecx, dword [ebp - 0x14]
jle 0x1007aae0
jmp 0x1007ab66
xor ecx, ecx
cmp dword [ebp - 0x14], ecx
jl 0x1007ab66
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
nop dword [eax]
mov bl, byte [edx]
mov eax, ecx
and eax, 7
movzx edx, bl
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
lea eax, [edi + ecx]
and eax, 7
add esi, edx
xor edx, edx
inc ecx
mov byte [ebp + eax - 0xc], bl
mov eax, esi
div edi
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
mov byte [edx], al
add edx, ebx
mov dword [ebp - 0x10], edx
cmp ecx, dword [ebp - 0x14]
jle 0x1007ab30
cmp ecx, dword [ebp + 8]
jge 0x1007ab9a
mov edi, ebx
mov ebx, dword [ebp - 0x20]
imul edi, ecx
add edi, dword [ebp - 0x18]
cmp byte [edi], 0
jne 0x1007abb1
mov eax, ecx
xor edx, edx
and eax, 7
inc ecx
movzx eax, byte [ebp + eax - 0xc]
sub esi, eax
mov eax, esi
div ebx
mov byte [edi], al
add edi, dword [ebp - 0x1c]
cmp ecx, dword [ebp + 8]
jl 0x1007ab76
mov edi, ebx
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x28]
jge 0x1007abb9
mov ebx, dword [ebp - 0x1c]
jmp 0x1007a9b4
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.1012838d
mov esp, ebp
pop ebp
ret