Function at 0x1037d0d0
Capabilities:
Contain obfuscated stackstrings
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1041a86c
mov eax, dword fs:[0]
push eax
sub esp, 0x95c
mov eax, dword [0x104c5878]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x894], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x890]
push ecx
lea ecx, [ebp - 0x810]
mov dword [ebp - 0x898], eax
push ecx
lea ecx, [ebp - 0x87c]
xor ebx, ebx
push ecx
push ebx
push 0x10479304
mov dword [ebp - 0x884], ebx
push eax
mov dword [ebp - 0x890], 0x400
mov dword [ebp - 0x87c], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1037e6ea
lea eax, [ebp - 0x8e0]
mov dword [ebp - 0x8e8], ebx
mov dword [ebp - 0x8e4], ebx
mov dword [ebp - 0x880], eax
mov dword [ebp - 0x8e0], ebx
mov dword [ebp - 0x8dc], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x8d8], ebx
mov dword [ebp - 4], 1
lea eax, [ebp - 0x810]
push closesocket
push eax
lea ecx, [ebp - 0x8e8]
call fcn.1035f300
mov dword [ebp - 4], 2
mov esi, dword [ebp - 0x8e8]
mov edi, dword [ebp - 0x8e4]
test esi, esi
je 0x1037d218
cmp edi, 2
jb 0x1037d218
lea ecx, [esi - 1]
add ecx, edi
cmp esi, ecx
jae 0x1037d1cd
cmp byte [esi], 0x20
ja 0x1037d1cd
inc esi
cmp esi, ecx
jb 0x1037d1c3
test ecx, ecx
je 0x1037d1d5
sub ecx, esi
jmp 0x1037d1e9
test esi, esi
je 0x1037d212
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1037d1e0
sub ecx, edx
lea eax, [ecx + 1]
mov ecx, esi
mov edi, eax
test esi, esi
je 0x1037d216
cmp eax, 2
jb 0x1037d216
dec eax
cmp eax, 1
jbe 0x1037d20d
nop
cmp byte [esi + eax - 1], 0x20
ja 0x1037d20d
dec eax
cmp eax, 1
ja 0x1037d200
lea edi, [eax + 1]
jmp 0x1037d218
xor ecx, ecx
xor edi, edi
mov esi, ecx
mov dword [ebp - 0x8a8], 0
mov ecx, 1
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x8a0], 0
mov dword [ebp - 0x8a8], 0
mov dword [ebp - 0x8a4], 0
test esi, esi
je 0x1037d2b7
cmp edi, 2
jb 0x1037d2b7
test edi, edi
je 0x1037d261
lea eax, [edi - 1]
jmp 0x1037d264
or eax, 0xffffffff
mov dword [ebp - 0x87c], eax
test edi, edi
mov eax, edi
cmove eax, ecx
lea ecx, [ebp - 0x8a8]
push eax
call fcn.10353240
test al, al
je 0x1037d2b7
mov eax, dword [ebp - 0x8a4]
test eax, eax
je 0x1037d28e
dec eax
jmp 0x1037d290
xor eax, eax
push eax
push esi
push dword [ebp - 0x8a8]
call fcn.103ce0b0
mov ecx, dword [ebp - 0x87c]
xor eax, eax
add esp, 0xc
test edi, edi
cmove ecx, eax
mov eax, dword [ebp - 0x8a8]
mov byte [ecx + eax], 0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x8e0]
mov dword [ebp - 0x880], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x8e0]
test ecx, ecx
je 0x1037d2e4
call fcn.10367720
mov dword [ebp - 0x8e0], 0
cmp dword [ebp - 0x8a4], 2
jb 0x1037e6c8
cmp dword [ebp - 0x8a8], 0
je 0x1037e6c8
mov dword [ebp - 0x8b4], 0
mov dword [ebp - 0x8b0], 0
mov dword [ebp - 0x8ac], 0
mov dword [ebp - 0x8b4], 0
mov dword [ebp - 0x8b0], 0
mov byte [ebp - 4], 7
mov dword [ebp - 0x8e0], 0
mov dword [ebp - 0x8dc], 0
mov dword [ebp - 0x8d8], 0
mov dword [ebp - 0x8e0], 0
mov dword [ebp - 0x8dc], 0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x890]
mov esi, dword [ebp - 0x898]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x890], 0x400
push eax
lea eax, [ebp - 0x87c]
mov dword [ebp - 0x87c], 1
push eax
push 0
push str.Publisher
push esi
call edi
test eax, eax
jne 0x1037d507
push closesocket
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x8c8]
call fcn.10362630
mov byte [ebp - 4], 9
test eax, eax
je 0x1037d43a
mov esi, dword [eax]
test esi, esi
je 0x1037d43a
mov ecx, dword [eax + 4]
cmp ecx, 2
jb 0x1037d43a
dec ecx
add ecx, esi
cmp esi, ecx
jae 0x1037d3ef
cmp byte [esi], 0x20
ja 0x1037d3ef
inc esi
cmp esi, ecx
jb 0x1037d3e5
test ecx, ecx
je 0x1037d3f7
sub ecx, esi
jmp 0x1037d409
test esi, esi
je 0x1037d432
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1037d400
sub ecx, edx
lea eax, [ecx + 1]
mov ecx, esi
mov edi, eax
test esi, esi
je 0x1037d436
cmp eax, 2
jb 0x1037d436
dec eax
cmp eax, 1
jbe 0x1037d42d
nop
cmp byte [eax + esi - 1], 0x20
ja 0x1037d42d
dec eax
cmp eax, 1
ja 0x1037d420
lea edi, [eax + 1]
jmp 0x1037d43f
xor ecx, ecx
xor edi, edi
mov esi, ecx
jmp 0x1037d43f
mov esi, dword [eax]
mov edi, dword [eax + 4]
test esi, esi
je 0x1037d4ae
cmp edi, 2
jb 0x1037d4ae
test edi, edi
je 0x1037d451
lea eax, [edi - 1]
jmp 0x1037d454
or eax, 0xffffffff
mov dword [ebp - 0x87c], eax
test edi, edi
mov ecx, 1
mov eax, edi
cmove eax, ecx
lea ecx, [ebp - 0x8b4]
push eax
call fcn.10353240
test al, al
je 0x1037d4ce
mov eax, dword [ebp - 0x8b0]
test eax, eax
je 0x1037d483
dec eax
jmp 0x1037d485
xor eax, eax
push eax
push esi
push dword [ebp - 0x8b4]
call fcn.103ce0b0
mov ecx, dword [ebp - 0x87c]
xor eax, eax
add esp, 0xc
test edi, edi
cmove ecx, eax
mov eax, dword [ebp - 0x8b4]
mov byte [ecx + eax], 0
jmp 0x1037d4ce
mov eax, dword [ebp - 0x8b4]
test eax, eax
je 0x1037d4ce
cmp dword [ebp - 0x8b0], 1
jbe 0x1037d4ce
mov byte [eax], 0
mov dword [ebp - 0x8b0], 1
mov byte [ebp - 4], 8
lea eax, [ebp - 0x8c0]
mov dword [ebp - 0x880], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x8c0]
test ecx, ecx
je 0x1037d4fb
call fcn.10367720
mov dword [ebp - 0x8c0], 0
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, dword [ebp - 0x898]
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x8a8]
push eax
call fcn.10377ac0
test eax, eax
je 0x1037e696
cmp dword [ebp + 0xc], 0
je 0x1037d563
lea eax, [ebp - 0x890]
mov dword [ebp - 0x890], 0x400
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x87c], 1
push eax
lea eax, [ebp - 0x87c]
push eax
push 0
push str.UninstallString
push esi
call edi
test eax, eax
jne 0x1037e696
mov dword [ebp - 0x8d4], 0
mov dword [ebp - 0x8d0], 0
mov dword [ebp - 0x8cc], 0
mov dword [ebp - 0x8d4], 0
mov dword [ebp - 0x8d0], 0
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x8b4], 0
je 0x1037d5af
cmp dword [ebp - 0x8b0], 2
jae 0x1037d70a
mov eax, dword [ebp - 0x894]
mov ecx, dword [eax + 0x28]
mov eax, dword [ecx]
cmp eax, ecx
je 0x1037d70a
lea edi, [eax + 0x18]
test edi, edi
je 0x1037d5d6
cmp dword [edi], 0
je 0x1037d5d6
mov esi, dword [edi + 4]
cmp esi, 2
jae 0x1037d5f3
cmp dword [ebp - 0x8a4], 2
jb 0x1037d6a6
cmp dword [ebp - 0x8a8], 0
je 0x1037d6a6
mov esi, dword [edi + 4]
lea ecx, [esi - 1]
test esi, esi
je 0x1037d5fe
mov edx, ecx
jmp 0x1037d601
or edx, 0xffffffff
xor edi, edi
test esi, esi
cmove ecx, edi
cmp dword [ebp - 0x8a4], edi
lea edi, [eax + 0x18]
je 0x1037d625
mov edi, dword [ebp - 0x8a4]
dec edi
mov dword [ebp - 0x87c], edi
lea edi, [eax + 0x18]
jmp 0x1037d62f
mov dword [ebp - 0x87c], 0
cmp ecx, dword [ebp - 0x87c]
jne 0x1037d693
xor ecx, ecx
test esi, esi
mov esi, dword [edi]
mov edi, dword [ebp - 0x8a8]
cmove edx, ecx
sub edx, 4
jb 0x1037d661
nop dword [eax + eax]
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x1037d666
add esi, 4
add edi, 4
sub edx, 4
jae 0x1037d650
cmp edx, 0xfffffffc
je 0x1037d6a6
mov cl, byte [esi]
cmp cl, byte [edi]
jne 0x1037d693
cmp edx, 0xfffffffd
je 0x1037d6a6
mov cl, byte [esi + 1]
cmp cl, byte [edi + 1]
jne 0x1037d693
cmp edx, 0xfffffffe
je 0x1037d6a6
mov cl, byte [esi + 2]
cmp cl, byte [edi + 2]
jne 0x1037d693
cmp edx, 0xffffffff
je 0x1037d6a6
mov cl, byte [esi + 3]
cmp cl, byte [edi + 3]
je 0x1037d6a6
mov ecx, dword [ebp - 0x894]
mov eax, dword [eax]
cmp eax, dword [ecx + 0x28]
jne 0x1037d5c2
jmp 0x1037d70a
lea esi, [eax + 8]
test esi, esi
je 0x1037d70a
cmp dword [esi], 0
je 0x1037d70a
mov eax, dword [esi + 4]
cmp eax, 2
jb 0x1037d70a
test eax, eax
mov ecx, 1
cmove eax, ecx
lea ecx, [ebp - 0x8d4]
push eax
call fcn.10353240
test al, al
je 0x1037d70a
mov eax, dword [ebp - 0x8d0]
test eax, eax
je 0x1037d6e1
dec eax
jmp 0x1037d6e3
xor eax, eax
push eax
push dword [esi]
push dword [ebp - 0x8d4]
call fcn.103ce0b0
mov ecx, dword [esi + 4]
add esp, 0xc
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [ebp - 0x8d4]
mov byte [ecx + eax], 0
cmp dword [ebp - 0x8d0], 2
jb 0x1037d720
cmp dword [ebp - 0x8d4], 0
jne 0x1037ddc3
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x8a8]
mov dword [ebp - 0x950], ecx
mov eax, dword [ebp - 0x8a4]
mov dword [ebp - 0x960], 0
mov dword [ebp - 0x95c], 0xffffffff
mov dword [ebp - 0x958], 0x10479350
mov dword [ebp - 0x954], 2
mov dword [ebp - 0x94c], eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x884], 1
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x940]
mov dword [ebp - 0x948], 0
mov dword [ebp - 0x944], 0xffffffff
mov dword [ebp - 0x880], edx
mov dword [ebp - 0x940], 0
mov dword [ebp - 0x93c], 0xffffffff
mov dword [ebp - 0x938], 0x10479350
mov dword [ebp - 0x934], 2
mov dword [ebp - 0x930], ecx
mov dword [ebp - 0x92c], eax
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x928], 0x10478860
mov dword [ebp - 0x924], 4
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x884], 3
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x918]
mov dword [ebp - 0x880], eax
mov eax, dword [ebp - 0x948]
mov dword [ebp - 0x918], eax
mov eax, dword [ebp - 0x944]
mov dword [ebp - 0x914], eax
lea eax, [ebp - 0x910]
mov dword [ebp - 0x87c], eax
mov eax, dword [ebp - 0x940]
mov dword [ebp - 0x910], eax
mov eax, dword [ebp - 0x93c]
mov dword [ebp - 0x90c], eax
mov eax, dword [ebp - 0x938]
mov dword [ebp - 0x908], eax
mov eax, dword [ebp - 0x934]
mov dword [ebp - 0x904], eax
mov eax, dword [ebp - 0x930]
mov dword [ebp - 0x900], eax
mov eax, dword [ebp - 0x92c]
mov dword [ebp - 0x920], 0
mov dword [ebp - 0x91c], 0xffffffff
mov dword [ebp - 0x8fc], eax
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x928]
mov dword [ebp - 0x8f8], eax
mov eax, dword [ebp - 0x924]
mov dword [ebp - 0x8f4], eax
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x8b4]
mov dword [ebp - 0x8f0], eax
mov eax, dword [ebp - 0x8b0]
mov dword [ebp - 0x8ec], eax
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x884], 7
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x86c]
mov dword [ebp - 0x880], eax
mov eax, dword [ebp - 0x920]
mov dword [ebp - 0x874], 0
mov dword [ebp - 0x870], 0xffffffff
mov dword [ebp - 0x86c], eax
mov eax, dword [ebp - 0x91c]
mov dword [ebp - 0x868], eax
lea eax, [ebp - 0x864]
mov dword [ebp - 0x87c], eax
mov eax, dword [ebp - 0x918]
mov dword [ebp - 0x864], eax
mov eax, dword [ebp - 0x914]
mov dword [ebp - 0x860], eax
lea eax, [ebp - 0x85c]
mov dword [ebp - 0x888], eax
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x85c], eax
mov eax, dword [ebp - 0x90c]
mov dword [ebp - 0x858], eax
mov eax, dword [ebp - 0x908]
mov dword [ebp - 0x854], eax
mov eax, dword [ebp - 0x904]
mov dword [ebp - 0x850], eax
mov eax, dword [ebp - 0x900]
mov dword [ebp - 0x84c], eax
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x848], eax
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x8f8]
mov dword [ebp - 0x844], eax
mov eax, dword [ebp - 0x8f4]
mov dword [ebp - 0x840], eax
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x8f0]
mov dword [ebp - 0x83c], eax
mov eax, dword [ebp - 0x8ec]
mov dword [ebp - 0x838], eax
mov byte [ebp - 4], 0x1f
lea eax, [ebp - 0x82c]
mov dword [ebp - 0x834], 0
mov dword [ebp - 0x830], 0
mov byte [ebp - 0x82c], 0x5d
mov dword [ebp - 0x830], 2
mov byte [ebp - 0x82a], 0
mov dword [ebp - 0x834], eax
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x868]
mov dword [ebp - 0x8c0], 0
mov dword [ebp - 0x8bc], 0
mov dword [ebp - 0x884], 0xf
mov dword [ebp - 0x8c0], 0
mov dword [ebp - 0x8bc], 0
mov dword [ebp - 0x8b8], 0
test ecx, ecx
jns 0x1037daa2
mov eax, dword [ebp - 0x860]
test eax, eax
jns 0x1037da8b
mov eax, dword [ebp - 0x858]
test eax, eax
jns 0x1037da74
mov eax, dword [ebp - 0x850]
test eax, eax
je 0x1037da5b
lea ecx, [eax - 1]
jmp 0x1037da5d
xor ecx, ecx
mov eax, dword [ebp - 0x848]
test eax, eax
je 0x1037da6a
dec eax
jmp 0x1037da6c
xor eax, eax
add eax, ecx
mov dword [ebp - 0x858], eax
mov ecx, dword [ebp - 0x840]
test ecx, ecx
je 0x1037da81
dec ecx
jmp 0x1037da83
xor ecx, ecx
add eax, ecx
mov dword [ebp - 0x860], eax
mov ecx, dword [ebp - 0x838]
test ecx, ecx
je 0x1037da98
dec ecx
jmp 0x1037da9a
xor ecx, ecx
add ecx, eax
mov dword [ebp - 0x868], ecx
mov ebx, dword [ebp - 0x830]
dec ebx
add ebx, ecx
mov dword [ebp - 0x880], ebx
mov dword [ebp - 0x870], ebx
lea eax, [ebx + 1]
mov ecx, eax
mov dword [ebp - 0x87c], eax
call fcn.103675e0
mov edi, eax
mov byte [edi + ebx], 0
mov eax, dword [ebp - 0x850]
test eax, eax
je 0x1037dada
dec eax
jmp 0x1037dadc
xor eax, eax
push eax
push dword [ebp - 0x854]
push edi
call fcn.103ce0b0
mov esi, dword [ebp - 0x850]
add esp, 0xc
test esi, esi
je 0x1037daf9
dec esi
jmp 0x1037dafb
xor esi, esi
mov eax, dword [ebp - 0x848]
test eax, eax
je 0x1037db08
dec eax
jmp 0x1037db0a
xor eax, eax
push eax
push dword [ebp - 0x84c]
lea eax, [edi + esi]
push eax
call fcn.103ce0b0
mov eax, dword [ebp - 0x848]
add esp, 0xc
test eax, eax
je 0x1037db2a
dec eax
jmp 0x1037db2c
xor eax, eax
add esi, eax
mov eax, dword [ebp - 0x840]
test eax, eax
je 0x1037db3b
dec eax
jmp 0x1037db3d
xor eax, eax
push eax
push dword [ebp - 0x844]
lea eax, [edi + esi]
push eax
call fcn.103ce0b0
mov eax, dword [ebp - 0x840]
add esp, 0xc
test eax, eax
je 0x1037db5d
dec esi
add esi, eax
mov eax, dword [ebp - 0x838]
test eax, eax
je 0x1037db6a
dec eax
jmp 0x1037db6c
xor eax, eax
push eax
push dword [ebp - 0x83c]
lea eax, [esi + edi]
push eax
call fcn.103ce0b0
mov eax, dword [ebp - 0x838]
add esp, 0xc
test eax, eax
je 0x1037db8c
dec eax
jmp 0x1037db8e
xor eax, eax
lea ecx, [esi + eax]
mov eax, dword [ebp - 0x830]
test eax, eax
je 0x1037db9e
dec eax
jmp 0x1037dba0
xor eax, eax
push eax
push dword [ebp - 0x834]
lea eax, [edi + ecx]
push eax
call fcn.103ce0b0
add esp, 0xc
mov dword [ebp - 0x8c0], edi
lea eax, [ebx + 1]
xor ecx, ecx
mov dword [ebp - 0x8bc], eax
mov dword [ebp - 0x8b8], eax
call fcn.10367720
mov byte [ebp - 4], 0x21
mov ebx, 0xf
mov dword [ebp - 0x884], ebx
and ebx, 0xfffffff7
mov dword [ebp - 0x884], ebx
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x874]
call fcn.10367720
mov dword [ebp - 0x874], 0
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x86c]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0x86c]
call fcn.10367720
mov dword [ebp - 0x86c], 0
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x864]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x864]
call fcn.10367720
mov dword [ebp - 0x864], 0
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x85c]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x85c]
call fcn.10367720
and ebx, 0xfffffffb
mov dword [ebp - 0x85c], 0
mov dword [ebp - 0x884], ebx
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x920]
call fcn.10367720
mov dword [ebp - 0x920], 0
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x918]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x918]
call fcn.10367720
mov dword [ebp - 0x918], 0
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x910]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x910]
call fcn.10367720
and ebx, 0xfffffffd
mov dword [ebp - 0x910], 0
mov dword [ebp - 0x884], ebx
mov byte [ebp - 4], 0x32
mov ecx, dword [ebp - 0x948]
call fcn.10367720
mov dword [ebp - 0x948], 0
mov byte [ebp - 4], 0x30
lea eax, [ebp - 0x940]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x940]
call fcn.10367720
and ebx, 0xfffffffe
mov dword [ebp - 0x940], 0
mov dword [ebp - 0x884], ebx
mov byte [ebp - 4], 0x34
xor ecx, ecx
call fcn.10367720
mov esi, dword [ebp - 0x8d4]
lea eax, [ebp - 0x888]
push eax
mov dword [ebp - 0x960], 0
call fcn.10001ad0
lea eax, [ebp - 0x878]
push eax
call fcn.10001ac0
lea eax, [ebp - 0x878]
push eax
call fcn.10001ac0
xor ecx, ecx
lea eax, [ebp - 0x878]
cmp dword [ebp - 0x87c], ecx
push eax
mov eax, dword [ebp - 0x880]
cmove eax, ecx
push eax
push edi
call fcn.10001af0
lea eax, [ebp - 0x878]
push eax
push esi
call fcn.10001ae0
mov byte [ebp - 4], 0xc
mov ecx, edi
call fcn.10367720
mov dword [ebp - 0x8c0], 0
mov edi, dword [ebp - 0x894]
lea eax, [ebp - 0x8d4]
push eax
lea eax, [ebp - 0x880]
push eax
lea ecx, [edi + 0x24]
call fcn.10369b20
mov eax, dword [edi + 0x28]
mov esi, dword [ebp - 0x880]
cmp esi, eax
jne 0x1037de56
mov esi, dword [eax]
lea ecx, [ebp - 0x8d4]
push ecx
mov dword [ebp - 0x880], ecx
lea ecx, [ebp - 0x880]
push ecx
mov eax, dword [esi + 4]
push ecx
push eax
push esi
mov dword [ebp - 0x87c], eax
call fcn.1037fcf0
mov edx, eax
mov ecx, 0x4444443
mov eax, dword [edi + 0x2c]
sub ecx, eax
cmp ecx, 1
jb 0x1037e70a
inc eax
lea ecx, [edi + 0x24]
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x87c]
mov dword [esi + 4], edx
mov dword [eax], edx
mov eax, dword [edi + 0x28]
mov eax, dword [eax]
push eax
add eax, 8
push eax
lea eax, [ebp - 0x88c]
push eax
call fcn.1037f9b0
mov esi, dword [ebp - 0x88c]
lea edi, [esi + 0x18]
test edi, edi
je 0x1037de6c
cmp dword [edi], 0
je 0x1037de6c
cmp dword [edi + 4], 2
jae 0x1037df26
cmp dword [ebp - 0x8a8], 0
je 0x1037decf
mov eax, dword [ebp - 0x8a4]
cmp eax, 2
jb 0x1037decf
test eax, eax
je 0x1037de87
dec eax
jmp 0x1037de89
xor eax, eax
inc eax
mov ecx, edi
push eax
call fcn.10353240
test al, al
je 0x1037dee5
mov ecx, dword [edi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push dword [ebp - 0x8a8]
push dword [edi]
call fcn.103ce0b0
mov ecx, dword [ebp - 0x8a4]
add esp, 0xc
test ecx, ecx
je 0x1037dec6
mov eax, dword [edi]
dec ecx
mov byte [ecx + eax], 0
jmp 0x1037dee5
mov eax, dword [edi]
xor ecx, ecx
mov byte [ecx + eax], cl
jmp 0x1037dee5
mov eax, dword [edi]
test eax, eax
je 0x1037dee5
cmp dword [edi + 4], 1
jbe 0x1037dee5
mov byte [eax], 0
mov dword [edi + 4], 1
lea eax, [ebp - 0x88c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push 0
push 0x2710
push dword [ebp - 0x888]
push dword [ebp - 0x88c]
call fcn.103b7330
sub eax, 0x30b66800
push 0
push 0x3e8
sbb edx, 0xa97
push edx
push eax
call fcn.103b7330
mov dword [esi + 0x14], eax
mov edi, dword [ebp - 0x898]
lea eax, [ebp - 0x890]
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x890], 0x400
push eax
lea eax, [ebp - 0x880]
mov dword [ebp - 0x880], 1
push eax
push 0
push 0x10479354
push edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1037e203
push closesocket
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x8c8]
call fcn.10362630
mov byte [ebp - 4], 0x36
mov eax, dword [ebp - 0x8c4]
test eax, eax
je 0x1037dfbf
add eax, 0xffffffff
je 0x1037dfbf
mov ecx, 4
or ebx, 0x10
cmp eax, ecx
mov dword [ebp - 0x884], ebx
cmovb ecx, eax
mov eax, dword [ebp - 0x8c8]
mov dword [ebp - 0x88c], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x888], eax
jmp 0x1037dfdc
or ebx, 0x20
mov dword [ebp - 0x884], ebx
mov dword [ebp - 0x88c], 0
mov dword [ebp - 0x888], 0
lea ecx, [ebp - 0x88c]
mov eax, dword [ecx]
mov dword [ebp - 0x89c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x898], eax
test bl, 0x20
je 0x1037e001
and ebx, 0xffffffdf
mov dword [ebp - 0x884], ebx
test bl, 0x10
je 0x1037e00f
and ebx, 0xffffffef
mov dword [ebp - 0x884], ebx
lea eax, [ebp - 0x880]
push eax
lea ecx, [ebp - 0x89c]
call fcn.1035da00
mov eax, dword [ebp - 0x8c4]
test eax, eax
je 0x1037e061
dec eax
cmp eax, 4
jbe 0x1037e061
add eax, 0xfffffffc
or ebx, 0x40
mov ecx, 2
mov dword [ebp - 0x884], ebx
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [ebp - 0x8c8]
add eax, 4
mov dword [ebp - 0x88c], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x888], eax
jmp 0x1037e081
or ebx, 0x80
mov dword [ebp - 0x884], ebx
mov dword [ebp - 0x88c], 0
mov dword [ebp - 0x888], 0
lea ecx, [ebp - 0x88c]
mov eax, dword [ecx]
mov dword [ebp - 0x89c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x898], eax
test bl, bl
jns 0x1037e0a8
and ebx, 0xffffff7f
mov dword [ebp - 0x884], ebx
test bl, 0x40
je 0x1037e0b6
and ebx, 0xffffffbf
mov dword [ebp - 0x884], ebx
lea eax, [ebp - 0x87c]
push eax
lea ecx, [ebp - 0x89c]
call fcn.1035da00
mov eax, dword [ebp - 0x8c4]
test eax, eax
je 0x1037e100
lea ecx, [eax - 1]
cmp ecx, 6
jbe 0x1037e100
or ebx, 0x100
mov dword [ebp - 0x884], ebx
mov eax, dword [ebp - 0x8c8]
add eax, 6
mov dword [ebp - 0x88c], eax
lea eax, [ecx - 5]
mov dword [ebp - 0x888], eax
jmp 0x1037e120
or ebx, 0x200
mov dword [ebp - 0x884], ebx
mov dword [ebp - 0x88c], 0
mov dword [ebp - 0x888], 0
lea ecx, [ebp - 0x88c]
mov eax, dword [ecx]
mov dword [ebp - 0x89c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x898], eax
test ebx, 0x200
je 0x1037e14b
and ebx, 0xfffffdff
mov dword [ebp - 0x884], ebx
test ebx, 0x100
je 0x1037e15f
and ebx, 0xfffffeff
mov dword [ebp - 0x884], ebx
lea eax, [ebp - 0x894]
push eax
lea ecx, [ebp - 0x89c]
call fcn.1035da00
mov eax, dword [ebp - 0x880]
lea ecx, [ebp - 0x88c]
mov dword [ebp - 0x968], eax
xorps xmm0, xmm0
mov eax, dword [ebp - 0x87c]
mov dword [ebp - 0x964], eax
mov eax, dword [ebp - 0x894]
mov dword [ebp - 0x960], eax
lea eax, [ebp - 0x968]
push eax
movups xmmword [ebp - 0x95c], xmm0
mov dword [ebp - 0x94c], 0
call fcn.10368b40
push 0
push 0x3e8
push dword [ebp - 0x888]
push dword [ebp - 0x88c]
call fcn.103b7330
mov dword [esi + 0x14], eax
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x8c0]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x8c0]
test ecx, ecx
je 0x1037e203
call fcn.10367720
mov dword [ebp - 0x8c0], 0
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x890]
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x890], 0x400
push eax
lea eax, [ebp - 0x880]
mov dword [ebp - 0x880], 1
push eax
push 0
push str.InstallLocation
push edi
call ebx
test eax, eax
jne 0x1037e367
push closesocket
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x8c8]
call fcn.10362630
mov dword [ebp - 0x880], eax
mov byte [ebp - 4], 0x39
mov edi, dword [eax + 4]
lea ecx, [edi - 1]
neg edi
sbb edi, edi
and edi, ecx
lea ecx, [edi + 1]
call fcn.103675e0
mov ebx, eax
mov eax, dword [ebp - 0x880]
mov byte [ebx + edi], 0
mov edx, dword [eax + 4]
lea ecx, [edx - 1]
neg edx
sbb edx, edx
and edx, ecx
push edx
push dword [eax]
push ebx
call fcn.103ce0b0
mov ecx, dword [esi + 0x24]
lea eax, [edi + 1]
lea edi, [esi + 0x24]
mov dword [esi + 0x28], eax
add esp, 0xc
mov dword [edi + 8], eax
mov dword [edi], ebx
call fcn.10367720
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x8c0]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x8c0]
test ecx, ecx
je 0x1037e2e0
call fcn.10367720
mov dword [ebp - 0x8c0], 0
test edi, edi
je 0x1037e339
mov ebx, dword [edi]
test ebx, ebx
je 0x1037e339
mov ecx, dword [edi + 4]
cmp ecx, 2
jb 0x1037e339
test ecx, ecx
je 0x1037e2fb
lea edx, [ecx - 1]
jmp 0x1037e2fe
or edx, 0xffffffff
lea eax, [ebx - 1]
add eax, ecx
test ecx, ecx
cmove eax, ebx
cmp byte [eax - 1], 0x5c
je 0x1037e32a
test ecx, ecx
mov dword [ebp - 0x880], 0
mov eax, edx
cmove eax, dword [ebp - 0x880]
cmp byte [eax + ebx - 1], 0x2f
jne 0x1037e33e
xor eax, eax
test ecx, ecx
cmove edx, eax
mov dword [ebp - 0x87c], edx
jmp 0x1037e346
mov ebx, dword [edi]
mov ecx, dword [edi + 4]
mov edx, ecx
mov dword [ebp - 0x87c], ecx
test ebx, ebx
je 0x1037e617
cmp edx, 2
jb 0x1037e604
test edx, edx
je 0x1037e5b2
lea eax, [edx - 1]
jmp 0x1037e5b5
lea eax, [ebp - 0x890]
mov dword [ebp - 0x890], 0x400
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x880], 1
push eax
lea eax, [ebp - 0x880]
push eax
push 0
push str.DisplayIcon
push edi
call ebx
test eax, eax
je 0x1037e3d9
lea eax, [ebp - 0x890]
mov dword [ebp - 0x890], 0x400
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x880], 1
push eax
lea eax, [ebp - 0x880]
push eax
push 0
push str.UninstallString
push edi
call ebx
test eax, eax
jne 0x1037e617
lea eax, [ebp - 0x810]
push eax
call fcn.103dece7
add esp, 4
test eax, eax
je 0x1037e617
lea eax, [ebp - 0x810]
push str..exe
push eax
call fcn.103cdbd1
add esp, 8
test eax, eax
jne 0x1037e424
lea eax, [ebp - 0x810]
push str..dll
push eax
call fcn.103cdbd1
add esp, 8
test eax, eax
je 0x1037e617
push closesocket
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x8c8]
call fcn.10362630
mov byte [ebp - 4], 0x3c
or edi, 0xffffffff
mov ecx, dword [eax + 4]
test ecx, ecx
lea edx, [ecx - 2]
cmove edx, edi
test edx, edx
js 0x1037e466
mov ecx, dword [eax]
mov al, byte [edx + ecx]
lea ebx, [edx + ecx]
cmp al, 0x5c
je 0x1037e493
cmp al, 0x2f
je 0x1037e493
sub edx, 1
jns 0x1037e453
mov edx, 0x10476b6c
mov ebx, 3
mov dword [ebp - 0x898], edx
lea edi, [esi + 0x24]
test edx, edx
je 0x1037e517
cmp ebx, 2
jb 0x1037e517
test ebx, ebx
je 0x1037e4c4
lea eax, [ebx - 1]
jmp 0x1037e4c7
add ebx, 1
je 0x1037e49f
sub ebx, ecx
mov edx, ecx
inc ebx
jmp 0x1037e470
test ecx, ecx
je 0x1037e4be
mov edx, ecx
lea edi, [ecx + 1]
mov dword [ebp - 0x898], edx
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1037e4b0
sub ecx, edi
lea ebx, [ecx + 1]
jmp 0x1037e476
xor edx, edx
xor ebx, ebx
jmp 0x1037e470
or eax, 0xffffffff
mov dword [ebp - 0x87c], eax
test ebx, ebx
mov ecx, 1
mov eax, ebx
cmove eax, ecx
mov ecx, edi
push eax
call fcn.10353240
test al, al
je 0x1037e52d
mov ecx, dword [edi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push dword [ebp - 0x898]
push dword [edi]
call fcn.103ce0b0
mov ecx, dword [ebp - 0x87c]
xor eax, eax
add esp, 0xc
test ebx, ebx
cmove ecx, eax
mov eax, dword [edi]
mov byte [ecx + eax], 0
jmp 0x1037e52d
mov eax, dword [edi]
test eax, eax
je 0x1037e52d
cmp dword [edi + 4], 1
jbe 0x1037e52d
mov byte [eax], 0
mov dword [edi + 4], 1
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x8c0]
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x8c0]
test ecx, ecx
je 0x1037e55a
call fcn.10367720
mov dword [ebp - 0x8c0], 0
test edi, edi
je 0x1037e339
mov ebx, dword [edi]
test ebx, ebx
je 0x1037e339
mov ecx, dword [edi + 4]
cmp ecx, 2
jb 0x1037e339
test ecx, ecx
je 0x1037e581
lea edx, [ecx - 1]
jmp 0x1037e584
or edx, 0xffffffff
lea eax, [ebx - 1]
add eax, ecx
test ecx, ecx
cmove eax, ebx
cmp byte [eax - 1], 0x5c
je 0x1037e32a
test ecx, ecx
mov dword [ebp - 0x880], 0
mov eax, edx
cmove eax, dword [ebp - 0x880]
jmp 0x1037e323
or eax, 0xffffffff
mov dword [ebp - 0x894], eax
test edx, edx
mov eax, edx
mov ecx, 1
cmove eax, ecx
mov ecx, edi
push eax
call fcn.10353240
test al, al
je 0x1037e617
mov ecx, dword [edi + 4]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push ebx
push dword [edi]
call fcn.103ce0b0
mov ecx, dword [ebp - 0x894]
xor eax, eax
add esp, 0xc
cmp dword [ebp - 0x87c], eax
cmove ecx, eax
mov eax, dword [edi]
mov byte [ecx + eax], 0
jmp 0x1037e617
test ebx, ebx
je 0x1037e617
cmp ecx, 1
jbe 0x1037e617
mov byte [ebx], 0
mov dword [edi + 4], 1
mov eax, dword [ebp - 0x8b0]
cmp eax, 2
jb 0x1037e676
cmp dword [ebp - 0x8b4], 0
je 0x1037e676
test eax, eax
je 0x1037e632
dec eax
jmp 0x1037e634
xor eax, eax
inc eax
lea ecx, [esi + 0x30]
push eax
call fcn.10353240
test al, al
je 0x1037e676
mov ecx, dword [esi + 0x34]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push dword [ebp - 0x8b4]
push dword [esi + 0x30]
call fcn.103ce0b0
mov ecx, dword [ebp - 0x8b0]
add esp, 0xc
test ecx, ecx
je 0x1037e66d
dec ecx
jmp 0x1037e66f
xor ecx, ecx
mov eax, dword [esi + 0x30]
mov byte [ecx + eax], 0
mov esi, 1
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x8d4]
call fcn.10367720
mov dword [ebp - 0x8d4], 0
jmp 0x1037e698
xor esi, esi
mov byte [ebp - 4], 7
xor ecx, ecx
call fcn.10367720
mov dword [ebp - 0x8e0], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x8b4]
call fcn.10367720
mov dword [ebp - 0x8b4], 0
jmp 0x1037e6ca
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x8a8]
call fcn.10367720
mov dword [ebp - 0x8a8], 0
mov eax, esi
jmp 0x1037e6ec
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.103b6385
mov esp, ebp
pop ebp
ret 8
push str.list_T__too_long
call fcn.103b4cf2
int3