Function at 0x429e90
Capabilities:
Check os version
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x44dea1
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4612b0]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x18], eax
mov ebx, 2
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + 0xb0]
mov edi, 0x10
mov dword [esp + 0x14], 0
cmp dword [esp + 0xc4], edi
jae 0x429f06
lea eax, [esp + 0xb0]
lea ecx, [esp + 0x14]
push ecx
push 0xf003f
push 0
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ebp, eax
cmp ebp, ebx
jne 0x42a0aa
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xc4], edi
jae 0x429f3f
lea eax, [esp + 0xb0]
push 0
lea edx, [esp + 0x18]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov ebp, eax
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xc4], edi
jae 0x429f78
lea eax, [esp + 0xb0]
push eax
push closesocket
lea eax, [esp + 0x28]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], 0
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x44], esp
cmp eax, 0x10
jb 0x429fac
mov ecx, dword [edi]
jmp 0x429fae
mov ecx, edi
cmp ecx, 0x457930
ja 0x429fe9
cmp eax, 0x10
jb 0x429fbf
mov ecx, dword [edi]
jmp 0x429fc1
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x457930
jbe 0x429fe9
cmp eax, 0x10
jb 0x429fd5
mov edi, dword [edi]
push 0x38
mov eax, 0x457930
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402d80
jmp 0x42a02d
cmp eax, 0x38
jae 0x429ffb
mov ecx, dword [esi + 0x14]
push ecx
push 0x38
mov ecx, esi
call fcn.004034b0
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x42a007
mov eax, dword [edi]
jmp 0x42a009
mov eax, edi
push 0x38
push 0x457930
push ecx
push eax
call fcn.00439429
add esp, 0x10
cmp dword [esi + 0x18], 0x10
mov dword [esi + 0x14], 0x38
jb 0x42a029
mov edi, dword [edi]
mov byte [edi + 0x38], 0
lea esi, [esp + 0x64]
call fcn.004016b0
mov byte [esp + 0xac], 3
call fcn.00401930
mov esi, 0x10
mov byte [esp + 0xa8], 4
cmp dword [eax + 0x18], esi
jb 0x42a05a
mov eax, dword [eax + 4]
jmp 0x42a05d
add eax, 4
mov edx, dword [esp + 0x20]
push eax
push 1
push edx
call fcn.0041d220
add esp, 0x14
cmp dword [esp + 0x38], esi
jb 0x42a080
mov eax, dword [esp + 0x24]
push eax
call fcn.004393c9
add esp, 4
lea esi, [esp + 0x3c]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
mov byte [esp + 0xa0], bl
call fcn.00429e20
mov edi, 0x10
cmp ebp, 5
jne 0x42a250
call fcn.004393a7
cdq
mov ecx, 0x14
idiv ecx
mov esi, edx
inc esi
call fcn.004393a7
cdq
idiv esi
cmp edx, esi
jg 0x42a0d8
mov eax, esi
cdq
idiv esi
test edx, edx
je 0x42a0e2
call fcn.0041aa50
call fcn.00418fd0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push 0
shr esi, 0x18
call fcn.0043a6c4
imul eax, eax, 0x63
add esp, 4
cmp esi, eax
jbe 0x42a116
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
call fcn.0041ab20
call fcn.00435810
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xc4], edi
jae 0x42a12d
lea eax, [esp + 0xb0]
push eax
push closesocket
lea edx, [esp + 0x28]
push edx
sub esp, 0x1c
mov esi, esp
mov ebp, 0xf
mov dword [esi + 0x18], ebp
lea edi, [esi + 4]
mov dword [esi + 0x14], 0
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov ebx, 0x10
mov dword [esp + 0x44], esp
cmp eax, ebx
jb 0x42a166
mov ecx, dword [edi]
jmp 0x42a168
mov ecx, edi
cmp ecx, 0x45796c
ja 0x42a1a1
cmp eax, ebx
jb 0x42a178
mov ecx, dword [edi]
jmp 0x42a17a
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45796c
jbe 0x42a1a1
cmp eax, ebx
jb 0x42a18d
mov edi, dword [edi]
push 0x3b
mov eax, 0x45796c
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402d80
jmp 0x42a1e3
cmp eax, 0x3b
jae 0x42a1b3
mov ecx, dword [esi + 0x14]
push ecx
push 0x3b
mov ecx, esi
call fcn.004034b0
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x42a1be
mov eax, dword [edi]
jmp 0x42a1c0
mov eax, edi
push 0x3b
push 0x45796c
push ecx
push eax
call fcn.00439429
add esp, 0x10
mov dword [esi + 0x14], 0x3b
cmp dword [esi + 0x18], ebx
jb 0x42a1df
mov edi, dword [edi]
mov byte [edi + 0x3b], 0
lea esi, [esp + 0x64]
call fcn.004016b0
mov byte [esp + 0xac], 5
call fcn.00401850
mov byte [esp + 0xa8], 6
cmp dword [eax + 0x18], ebx
jb 0x42a20b
mov eax, dword [eax + 4]
jmp 0x42a20e
add eax, 4
mov edx, dword [esp + 0x20]
push eax
push 1
push edx
call fcn.0041d220
add esp, 0x14
cmp dword [esp + 0x38], ebx
jb 0x42a231
mov eax, dword [esp + 0x24]
push eax
call fcn.004393c9
add esp, 4
lea esi, [esp + 0x3c]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
call fcn.00429e20
jmp 0x42a43c
test ebp, ebp
je 0x42a379
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xc4], edi
jae 0x42a26f
lea eax, [esp + 0xb0]
push eax
push closesocket
push ebp
lea ecx, [esp + 0x2c]
push ecx
sub esp, 0x1c
mov esi, esp
mov ebp, 0xf
mov dword [esi + 0x18], ebp
lea edi, [esi + 4]
mov dword [esi + 0x14], 0
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov ebx, 0x10
mov dword [esp + 0x48], esp
cmp eax, ebx
jb 0x42a2a9
mov ecx, dword [edi]
jmp 0x42a2ab
mov ecx, edi
cmp ecx, 0x4579a8
ja 0x42a2e4
cmp eax, ebx
jb 0x42a2bb
mov ecx, dword [edi]
jmp 0x42a2bd
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x4579a8
jbe 0x42a2e4
cmp eax, ebx
jb 0x42a2d0
mov edi, dword [edi]
push 0x3e
mov eax, 0x4579a8
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402d80
jmp 0x42a326
cmp eax, 0x3e
jae 0x42a2f6
mov ecx, dword [esi + 0x14]
push ecx
push 0x3e
mov ecx, esi
call fcn.004034b0
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jb 0x42a301
mov eax, dword [edi]
jmp 0x42a303
mov eax, edi
push 0x3e
push 0x4579a8
push ecx
push eax
call fcn.00439429
add esp, 0x10
mov dword [esi + 0x14], 0x3e
cmp dword [esi + 0x18], ebx
jb 0x42a322
mov edi, dword [edi]
mov byte [edi + 0x3e], 0
lea esi, [esp + 0x68]
call fcn.004016b0
mov byte [esp + 0xb0], 7
call fcn.00401930
mov byte [esp + 0xac], 8
cmp dword [eax + 0x18], ebx
jb 0x42a361
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x24]
push eax
push 1
push edx
call fcn.0041d220
add esp, 0x18
jmp 0x42a21e
mov edx, dword [esp + 0x24]
add eax, 4
push eax
push 1
push edx
call fcn.0041d220
add esp, 0x18
jmp 0x42a21e
mov edx, dword [esp + 0x14]
test edx, edx
je 0x42a44b
mov ecx, dword [esp + 0xe8]
mov eax, 0x10
cmp dword [esp + 0xfc], eax
jae 0x42a3a1
lea ecx, [esp + 0xe8]
cmp dword [esp + 0xe0], eax
mov eax, dword [esp + 0xcc]
jae 0x42a3b8
lea eax, [esp + 0xcc]
mov esi, dword [esp + 0xf8]
push esi
push ecx
push 1
push 0
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
call fcn.00417260
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, eax
mov eax, 0xef66a241
imul ecx
add edx, ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x111c
jle 0x42a408
push 0x111c
call edi
call fcn.00419840
call fcn.0041abf0
test esi, esi
jne 0x42a43c
call fcn.004177a0
mov ecx, eax
mov eax, 0x478bbced
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xe5
jle 0x42a43c
push 0xe5
call edi
call fcn.00436210
call fcn.004308a0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42a44b
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, 0x10
cmp dword [esp + 0xc4], esi
jb 0x42a469
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.004393c9
add esp, 4
xor ebx, ebx
mov edi, 0xf
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
cmp dword [esp + 0xe0], esi
jb 0x42a49e
mov edx, dword [esp + 0xcc]
push edx
call fcn.004393c9
add esp, 4
mov dword [esp + 0xe0], edi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], 0
cmp dword [esp + 0xfc], esi
jb 0x42a4cd
mov eax, dword [esp + 0xe8]
push eax
call fcn.004393c9
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x80]
xor ecx, esp
call fcn.00438dc1
add esp, 0x90
ret 0x58