Function at 0x10016713
Capabilities:
Get common file path
Set current directory
Set registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
jmp 0x1001672c
mov eax, dword [ebp - 4]
add eax, 0x1d
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
add eax, 0x984
cmp dword [ebp - 4], eax
ja 0x10016dd0
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x1ba
ja 0x10016818
cmp dword [ebp - 8], 0x1ba
je 0x10016925
cmp dword [ebp - 8], 0xd2
ja 0x100167c4
cmp dword [ebp - 8], 0xd2
je 0x100168ca
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], eax
sub dword [ebp - 0xc], 7
je 0x10016d9f
sub dword [ebp - 0xc], 0x1d
je 0x10016d5f
sub dword [ebp - 0xc], 0x1d
je 0x10016c95
sub dword [ebp - 0xc], 0x1d
je 0x100168e0
sub dword [ebp - 0xc], 0x1d
je 0x10016dac
sub dword [ebp - 0xc], 0x1d
je 0x10016d89
sub dword [ebp - 0xc], 0x1d
je 0x10016913
jmp 0x10016dcb
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
sub dword [ebp - 0x10], 0xef
je 0x10016d8f
sub dword [ebp - 0x10], 0x1d
je 0x10016cfd
sub dword [ebp - 0x10], 0x1d
je 0x10016cb5
sub dword [ebp - 0x10], 0x1d
je 0x10016ca3
sub dword [ebp - 0x10], 0x1d
je 0x10016c8d
sub dword [ebp - 0x10], 0x1d
je 0x10016d9a
sub dword [ebp - 0x10], 0x1d
je 0x10016d36
jmp 0x10016dcb
cmp dword [ebp - 8], 0x5bd9
ja 0x10016882
cmp dword [ebp - 8], 0x5bd9
je 0x10016d6a
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x14], 0x5b0e
je 0x10016cee
sub dword [ebp - 0x14], 0x1d
je 0x10016d75
sub dword [ebp - 0x14], 0x1d
je 0x10016d22
sub dword [ebp - 0x14], 0x1d
je 0x10016d50
sub dword [ebp - 0x14], 0x1d
je 0x10016cc7
sub dword [ebp - 0x14], 0x1d
je 0x1001691d
sub dword [ebp - 0x14], 0x1d
je 0x10016d16
jmp 0x10016dcb
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
sub dword [ebp - 0x18], 0x5bf6
je 0x10016dbc
sub dword [ebp - 0x18], 0x1d
je 0x10016904
sub dword [ebp - 0x18], 0x1d
je 0x10016cdf
sub dword [ebp - 0x18], 0x1d
je 0x1001690b
sub dword [ebp - 0x18], 0x1d
je 0x10016ce7
sub dword [ebp - 0x18], 0x1d
je 0x100168fe
sub dword [ebp - 0x18], 0x1d
je 0x10016d70
jmp 0x10016dcb
jns 0x10016cdf
call fcn.100161b0
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x18]
jmp 0x10016dcb
push 0x10016d40
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
add eax, 0xfffffefc
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
jmp 0x10016dcb
pop ebp
jmp 0x10016dcb
sub edi, eax
jmp 0x10016dcb
mov dword [esi + 4], eax
jmp 0x10016dcb
mov ecx, dword [edx + 0x14]
test ecx, ecx
jmp 0x10016dcb
push eax
mov eax, ecx
jmp 0x10016dcb
mov dword [ebp - 4], 0x1ba
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 4]
jmp 0x10016dcb
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
jmp 0x10016dcb
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x10016925
mov eax, dword [ebp + 8]
jmp 0x10016dcb
mov eax, dword [ebp + 8]
push eax
call fcn.1001f782
pop ecx
xor eax, eax
pop edx
jmp 0x10016dcb
sub eax, edx
push eax
call fcn.100351c7
push dword [ebp + 8]
mov ecx, dword [esi + 4]
push 0
lea eax, [esi + 0xc]
jmp 0x10016dcb
lea eax, [ecx + edi*8]
jmp 0x10016dcb
pop edi
pop esi
jmp 0x10016dcb
push esi
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [esi + 4]
sub edx, eax
jmp 0x10016dcb
call fcn.10013e08
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov dword [eax + 0x18], edx
jmp 0x10016dcb
sub eax, dword [esi]
mov edx, edi
sar eax, 3
jmp 0x10016dcb
lea eax, [eax + edi*8]
push eax
lea eax, [ebp + 8]
push eax
call fcn.100304ae
jmp 0x10016cb5
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x14], edx
ret
jne 0x10016d84
insd dword es:[edi], dx
mov ch, 0xb5
jae 0x1001690b
mov eax, edi
jmp 0x10016dcb
mov eax, dword [eax + 0x18]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
jmp 0x10016dcb
push 0
sub edx, eax
jmp 0x10016dcb
ret 4
push edi
mov edi, dword [ebp + 8]
sar edx, 3
cmp edx, edi
jbe 0x10016904
push dword [esi + 4]
jmp 0x10016dcb
pop ecx
mov edx, dword [ebp + 8]
jmp 0x10016dcb
call fcn.10028cd1
test eax, eax
jns 0x10016d89
jmp 0x10016dcb
mov dword [eax + 0x18], edx
jmp 0x10016dcb
jnp 0x10016dfb
sub dl, byte [eax]
dec ebx
add esp, 0xfffffff4
mov eax, dword [ebp + 8]
jmp 0x10016dcb
push eax
push 2
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.10009e73
jmp 0x10016dcb
call fcn.10008af8
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, dword [esi]
sar eax, 3
jmp 0x10016723
pop edi
pop esi
leave
ret
xchg ebp, eax
js 0x10016dfd
invalid
invalid