Function at 0x100013d0
Capabilities:
Resolve function by parsing pe exports
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x1008705c]
xor eax, esp
mov dword [esp + 0xc4], eax
push esi
mov esi, dword [ebp + 0x38]
lea ecx, [esp + 0xb0]
push edi
mov dword [esp + 0x28], esi
call fcn.10006980
cmp byte [ebp + 0x3c], 0
je 0x1000141e
push esi
lea eax, [ebp + 0x20]
push eax
lea ecx, [esp + 0xbc]
call fcn.100074e0
test al, al
jne 0x10001b1b
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.1000aa90
cmp dword [esi + 0x14], 0x10
mov eax, dword [esi + 0x10]
jb 0x1000143d
mov esi, dword [esi]
push eax
push esi
call fcn.1000aa90
lea eax, [ebp + 8]
mov edx, str.SoftwareHeinoteReportoffline_
push eax
lea ecx, [esp + 0xa0]
call fcn.10004520
add esp, 4
mov dword [esp + 0x40], 0xf
cmp dword [esp + 0xb0], 0x10
lea edx, [esp + 0x9c]
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0
cmovae edx, dword [esp + 0x9c]
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x70], xmm0
movq qword [esp + 0x80], xmm0
mov byte [esp + 0x2c], 0
cmp byte [edx], 0
jne 0x100014a7
xor ecx, ecx
jmp 0x100014b9
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100014b0
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x34]
call fcn.10006490
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x34]
mov dword [esp + 0x68], reloc.WS2_32.dll_accept
push eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], 0
mov byte [esp + 0x70], 0
call fcn.100060a0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x7c], 0
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], 0
call fcn.10005f70
xor eax, eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x14], eax
xor ecx, ecx
mov dword [esp + 0x5c], eax
xorps xmm0, xmm0
mov dword [esp + 0x1c], eax
xor edx, edx
mov dword [esp + 0x50], eax
xor edi, edi
mov dword [esp + 0x44], eax
xor esi, esi
mov eax, dword [esp + 0x28]
movq qword [esp + 0x54], xmm0
movq qword [esp + 0x48], xmm0
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], esi
cmp dword [eax + 0x10], ecx
jbe 0x10001696
cmp dword [eax + 0x10], ecx
mov edx, dword [esp + 0x20]
jbe 0x10001b55
cmp dword [eax + 0x14], 0x10
jb 0x1000158c
mov eax, dword [eax]
add eax, ecx
mov dword [esp + 0x18], eax
cmp eax, edi
jae 0x1000160d
cmp edx, eax
ja 0x1000160d
mov ecx, dword [esp + 0x14]
sub eax, edx
mov dword [esp + 0x18], eax
cmp edi, ecx
jne 0x10001604
mov eax, ecx
sub eax, edi
cmp eax, 1
jae 0x10001600
mov eax, edx
sub eax, edi
dec eax
cmp eax, 1
jb 0x10001b4b
sub ecx, edx
sub edi, edx
mov eax, ecx
mov dword [esp + 0x14], ecx
shr eax, 1
inc edi
mov ecx, eax
xor edx, edx
add eax, dword [esp + 0x14]
not ecx
cmp ecx, dword [esp + 0x14]
lea ecx, [esp + 0x54]
cmovae edx, eax
cmp edx, edi
cmovae edi, edx
push edi
call fcn.10003f30
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x18]
test edi, edi
je 0x10001679
mov al, byte [edx + eax]
jmp 0x10001677
mov ecx, dword [esp + 0x14]
cmp edi, ecx
jne 0x10001671
mov eax, ecx
sub eax, edi
cmp eax, 1
jae 0x1000166d
mov eax, edx
sub eax, edi
dec eax
cmp eax, 1
jb 0x10001b4b
sub ecx, edx
sub edi, edx
mov eax, ecx
mov dword [esp + 0x14], ecx
shr eax, 1
inc edi
mov ecx, eax
xor edx, edx
add eax, dword [esp + 0x14]
not ecx
cmp ecx, dword [esp + 0x14]
lea ecx, [esp + 0x54]
cmovae edx, eax
cmp edx, edi
cmovae edi, edx
push edi
call fcn.10003f30
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x18]
test edi, edi
je 0x10001679
mov al, byte [eax]
mov byte [edi], al
mov ecx, dword [esp + 0x44]
inc edi
mov eax, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x58], edi
mov dword [esp + 0x44], ecx
cmp dword [eax + 0x10], ecx
ja 0x1000157a
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x28], edx
cmp dword [ebp + 0x30], edx
jbe 0x100017b0
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
cmovae eax, dword [ebp + 0x20]
add eax, edx
mov dword [esp + 0x18], eax
cmp eax, esi
jae 0x1000172f
cmp ecx, eax
ja 0x1000172f
mov edx, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x18], eax
cmp esi, edx
jne 0x10001726
mov eax, edx
sub eax, esi
cmp eax, 1
jae 0x10001722
mov eax, ecx
sub eax, esi
dec eax
cmp eax, 1
jb 0x10001b4b
sub edx, ecx
sub esi, ecx
mov eax, edx
mov dword [esp + 0x1c], edx
shr eax, 1
inc esi
mov ecx, eax
add eax, edx
not ecx
xor edx, edx
cmp ecx, dword [esp + 0x1c]
lea ecx, [esp + 0x48]
cmovae edx, eax
cmp edx, esi
cmovae esi, edx
push esi
call fcn.10003f30
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x18]
test esi, esi
je 0x10001799
mov al, byte [ecx + eax]
jmp 0x10001797
mov edx, dword [esp + 0x1c]
cmp esi, edx
jne 0x10001791
mov eax, edx
sub eax, esi
cmp eax, 1
jae 0x1000178d
mov eax, ecx
sub eax, esi
dec eax
cmp eax, 1
jb 0x10001b4b
sub edx, ecx
sub esi, ecx
mov eax, edx
mov dword [esp + 0x1c], edx
shr eax, 1
inc esi
mov ecx, eax
add eax, edx
not ecx
xor edx, edx
cmp ecx, dword [esp + 0x1c]
lea ecx, [esp + 0x48]
cmovae edx, eax
cmp edx, esi
cmovae esi, edx
push esi
call fcn.10003f30
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x18]
test esi, esi
je 0x10001799
mov al, byte [eax]
mov byte [esi], al
mov edx, dword [esp + 0x28]
inc esi
inc edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x28], edx
cmp dword [ebp + 0x30], edx
ja 0x100016a5
push 4
push str.code
lea ecx, [esp + 0x34]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], 0
mov byte [esp + 0x34], 0
call fcn.10006490
cmp dword [esp + 0x7c], 0
jne 0x10001849
cmp byte [esp + 0x80], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x7c]
je 0x10001815
cmp dword [esp + 0x78], 0x10
push eax
cmovae ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x88]
or eax, 0x20019
push eax
push 0
push ecx
push dword [esp + 0x70]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
jmp 0x10001845
cmp dword [esp + 0x78], 0x10
push 0
cmovae ecx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x8c]
push 0
or eax, 0x2001f
push eax
push 0
push 0
push 0
push ecx
push dword [esp + 0x80]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x10001871
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x2c]
sub edi, ecx
cmp dword [esp + 0x40], 0x10
push edi
cmovae eax, dword [esp + 0x30]
push ecx
push 3
push 0
push eax
push dword [esp + 0x90]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0x40]
cmp eax, 0x10
jb 0x100018b9
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, 0x1000
jb 0x100018b0
test cl, 0x1f
jne 0x10001b5f
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x10001b64
sub ecx, eax
cmp ecx, 4
jb 0x10001b69
cmp ecx, 0x23
ja 0x10001b6e
mov ecx, eax
push ecx
call fcn.1004531b
add esp, 4
push 4
push str.path
lea ecx, [esp + 0x34]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], 0
mov byte [esp + 0x34], 0
call fcn.10006490
cmp dword [esp + 0x7c], 0
jne 0x10001952
cmp byte [esp + 0x80], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x7c]
je 0x1000191e
cmp dword [esp + 0x78], 0x10
push eax
cmovae ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x88]
or eax, 0x20019
push eax
push 0
push ecx
push dword [esp + 0x70]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
jmp 0x1000194e
cmp dword [esp + 0x78], 0x10
push 0
cmovae ecx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x8c]
push 0
or eax, 0x2001f
push eax
push 0
push 0
push 0
push ecx
push dword [esp + 0x80]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x1000197c
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x2c]
sub esi, edi
cmp dword [esp + 0x40], 0x10
push esi
cmovae eax, dword [esp + 0x30]
push edi
push 3
push 0
push eax
push dword [esp + 0x90]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
jmp 0x10001980
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
cmp eax, 0x10
jb 0x100019c8
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, 0x1000
jb 0x100019bf
test cl, 0x1f
jne 0x10001b73
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x10001b78
sub ecx, eax
cmp ecx, 4
jb 0x10001b7d
cmp ecx, 0x23
ja 0x10001b82
mov ecx, eax
push ecx
call fcn.1004531b
add esp, 4
test edi, edi
je 0x10001a0e
mov eax, dword [esp + 0x1c]
sub eax, edi
cmp eax, 0x1000
jb 0x10001a05
test byte [esp + 0x48], 0x1f
jne 0x10001b87
mov eax, dword [edi - 4]
cmp eax, edi
jae 0x10001b8c
sub edi, eax
cmp edi, 4
jb 0x10001b91
cmp edi, 0x23
ja 0x10001b96
mov edi, eax
push edi
call fcn.1004531b
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10001a59
mov ecx, dword [esp + 0x14]
sub ecx, eax
cmp ecx, 0x1000
jb 0x10001a50
test byte [esp + 0x54], 0x1f
jne 0x10001b9b
mov ecx, dword [eax - 4]
cmp ecx, eax
jae 0x10001ba0
sub eax, ecx
cmp eax, 4
jb 0x10001ba5
cmp eax, 0x23
ja 0x10001baa
mov eax, ecx
push eax
call fcn.1004531b
add esp, 4
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x10001a70
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0x78]
cmp eax, 0x10
jb 0x10001ab8
mov ecx, dword [esp + 0x64]
inc eax
cmp eax, 0x1000
jb 0x10001aaf
test cl, 0x1f
jne 0x10001baf
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x10001bb4
sub ecx, eax
cmp ecx, 4
jb 0x10001bb9
cmp ecx, 0x23
ja 0x10001bbe
mov ecx, eax
push ecx
call fcn.1004531b
add esp, 4
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], 0
mov byte [esp + 0x64], 0
cmp eax, 0x10
jb 0x10001b1b
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, 0x1000
jb 0x10001b12
test cl, 0x1f
jne 0x10001bc3
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x10001bc8
sub ecx, eax
cmp ecx, 4
jb 0x10001bcd
cmp ecx, 0x23
ja 0x10001bd2
mov ecx, eax
push ecx
call fcn.1004531b
add esp, 4
lea ecx, [esp + 0xb4]
call fcn.10005f70
lea ecx, [ebp + 8]
call fcn.10005f70
lea ecx, [ebp + 0x20]
call fcn.10005f70
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
xor ecx, esp
call fcn.10045320
mov esp, ebp
pop ebp
ret
push str.vector_T__too_long
call fcn.10010ecf
push str.invalid_string_position
call fcn.10010eef
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
call fcn.100497ee
int3