Function at 0x10007ea0
Capabilities:
Allocate or change rwx memory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
movzx eax, byte [0x10118004]
mov cl, 0xc1
mov edx, dword [ebp + 8]
imul eax, eax, 0x55
push ebx
push esi
push edi
mov dword [0x10127620], 0x1012a3e8
sub edx, eax
movzx eax, byte [0x10118054]
imul eax, eax, 0x2a
push edx
sub cl, al
mov byte [0x10118004], cl
call fcn.10007d70
mov al, byte [0x10118004]
add esp, 4
mov ecx, dword [0x10118054]
mov esi, 0x2dca
movzx ebx, al
neg ecx
mov dword [ebp + 8], ecx
sub ebx, ecx
mov cl, al
sub ebx, 4
add al, al
sub al, 0x12
add cl, al
add cl, byte [0x10118050]
movzx eax, cl
lea edx, [eax*8 - 0x2689]
add edx, eax
mov eax, dword [0x10118050]
add eax, 0x5a
add eax, edx
add word [0x10118008], ax
mov al, bl
sub al, byte [ebp + 8]
sub al, cl
mov ecx, 0x2e2
mov byte [0x10118004], al
sub ecx, ebx
movzx eax, al
add eax, ecx
lea eax, [eax + edx*2]
add eax, 0x32bf
mov dword [0x10118054], eax
mov eax, dword [0x10118050]
imul eax, eax
imul eax, ecx
imul edx, eax, 0xa978a040
xor ecx, ecx
nop
mov al, byte [ecx + 0x1008d238]
lea ecx, [ecx + 1]
mov byte [ecx + 0x1012a3e7], al
dec esi
mov eax, edx
sub eax, esi
sub eax, 4
movzx eax, ax
sub eax, dword [0x10118050]
sub eax, edx
mov edx, eax
test esi, esi
jne 0x10007f60
mov ebx, dword [0x10118054]
mov ecx, ebx
imul eax, edx, 0x55
mov dword [ebp - 0xc], 0x1513142
sub ecx, eax
mov al, byte [ebp + 8]
mov dword [0x10118050], ecx
mov cl, byte [0x10118004]
add cl, cl
add cl, al
add al, 0x3d
add cl, bl
add cl, cl
add cl, al
imul eax, dword [ebp + 8], 0x55
add cl, bl
movzx edx, cl
sub edx, dword [ebp + 8]
mov byte [0x10118004], cl
sub edx, 4
sub ebx, eax
movzx eax, cl
imul eax, eax, 0x2a
mov ecx, ebx
neg ecx
sub ecx, eax
add edx, ecx
push edx
call fcn.10007d70
mov esi, dword [0x10118054]
add esp, 4
movzx eax, ax
mov edx, esi
movzx ecx, ax
mov edi, esi
mov dword [ebp - 0x20], eax
imul eax, ebx, 0x34db48
mov ebx, dword [section..data]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], 0xd
mov dword [ebp - 0x18], 0x9b
not eax
mov dword [ebp - 0x14], 0x7a
imul eax, esi
mov dword [ebp + 8], eax
imul eax, eax, 0x55
sub edx, eax
movzx eax, cx
mov dword [ebp - 4], eax
nop
mov al, dl
mov ecx, edi
sub al, 0x5a
neg ecx
add al, byte [ebp + 8]
mov byte [0x10118004], al
mov byte [ebp + 0xb], al
cmp ecx, dword [ebp - 4]
jbe 0x10008092
mov edx, ecx
mov byte [ebp + 0xb], al
sub edx, edi
lea ecx, [ecx + ecx*8]
sub edx, ebx
sub ecx, edi
mov ebx, edx
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x20]
mov dword [section..data], ebx
test dx, dx
jne 0x1000807c
sete ah
sub ah, 0x5a
add ah, cl
mov byte [ebp + 0xb], ah
mov al, ah
mov byte [0x10118004], ah
xor edx, edx
cmp word [ebp - 8], dx
sete dl
lea edx, [edx*2 + 0x32bf]
add edx, dword [ebp - 4]
add edx, dword [ebp - 0x10]
movzx eax, al
lea edx, [edx*2 + 0x32bf]
add eax, ecx
add edx, eax
mov dword [ebp - 0x10], edx
cmp edx, ecx
jae 0x100080c4
movzx eax, byte [ebp + 0xb]
lea edx, [edx*2 + 0x32bf]
add eax, ecx
add edx, eax
lea eax, [edi + ecx*2]
add ecx, 0x32bf
mov dword [ebp - 0x10], edx
add ecx, eax
cmp dword [ebp - 0xc], 1
jb 0x100081a6
lea eax, [edi - 0x5a]
add eax, ecx
cmp dword [ebp - 0xc], 0x1f4
mov dword [ebp + 8], eax
jae 0x1000810d
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
imul ecx, dword [ebp + 8], 0x29
mov esi, dword [0x10118054]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov ebx, dword [section..data]
add ecx, esi
add ecx, ecx
sub eax, ecx
add eax, 0x32bf
add eax, edx
mov dword [ebp + 8], eax
mov al, dl
mov cl, dl
shl al, 3
mov edx, 0x1083
add cl, al
mov eax, dword [ebp + 8]
sub cl, al
lea eax, [ebx - 0x42]
mov byte [0x10118004], cl
mov word [0x10118008], ax
nop
imul eax, esi, 0x2a
movzx ecx, cl
neg ecx
sub ecx, eax
add ebx, ecx
mov ecx, dword [0x10127620]
mov dword [section..data], ebx
mov eax, dword [ecx + edx - 0x1083]
add eax, 0x104f50c
mov dword [0x101c8bcc], eax
mov dword [ecx + edx - 0x1083], eax
add edx, 4
mov esi, dword [0x10118054]
mov ebx, dword [section..data]
cmp edx, 0x1183
jae 0x1000817f
mov cl, byte [0x10118004]
jmp 0x10008130
imul eax, dword [ebp + 8], 0x55
mov edi, esi
dec dword [ebp - 0xc]
mov ecx, edi
mov edx, edi
sub ecx, eax
imul eax, dword [ebp - 4], 0x29
mov dword [ebp + 8], ecx
sub edx, eax
mov eax, dword [ebp - 0x10]
sub edx, ebx
add edx, 0x5a
add edx, eax
jmp 0x10008030
cmp edx, ecx
jbe 0x100081b3
mov eax, 0xfffffffc
sub eax, edi
add ecx, eax
lea eax, [edi + ecx*2]
mov esi, 0x1513142
add ecx, 0x32bf
mov dword [ebp - 0xc], esi
add eax, ecx
lea ecx, [eax - 0x5a]
add cl, bl
mov byte [0x10118004], cl