Function at 0x402d00
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4493f1
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x12dc
call fcn.0040da60
mov eax, dword [0x47bd14]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1260], ecx
xor eax, eax
mov word [ebp - 0x1244], ax
mov dword [ebp - 0x1238], 0
mov dword [ebp - 0x12d8], 0
lea ecx, [ebp - 0x1014]
push ecx
mov ecx, dword [ebp - 0x1260]
call fcn.00405290
mov dword [ebp - 0x1234], eax
cmp dword [ebp - 0x1234], 0
jge 0x402d85
mov eax, dword [ebp - 0x1234]
jmp 0x403727
lea edx, [ebp - 0x1244]
push edx
lea eax, [ebp - 0x1014]
push eax
call fcn.0040b3a0
add esp, 8
test eax, eax
jne 0x402da9
mov eax, 0x80020009
jmp 0x403727
mov ecx, dword [ebp - 0x1260]
call fcn.00409a70
lea ecx, [ebp - 0x1014]
push ecx
mov ecx, dword [ebp - 0x1260]
call fcn.00405290
mov dword [ebp - 0x1234], eax
cmp dword [ebp - 0x1234], 0
jge 0x402de0
mov eax, dword [ebp - 0x1234]
jmp 0x403727
movzx edx, word [ebp - 0x1244]
mov dword [ebp - 0x1248], edx
cmp dword [ebp - 0x1248], 0x13
jg 0x402e1e
cmp dword [ebp - 0x1248], 0x13
je 0x4030be
cmp dword [ebp - 0x1248], 8
je 0x402e33
cmp dword [ebp - 0x1248], 0x11
je 0x403464
jmp 0x4036db
cmp dword [ebp - 0x1248], 0x4008
je 0x402eb5
jmp 0x4036db
xor eax, eax
jne 0x402e33
lea ecx, [ebp - 0x1014]
test ecx, ecx
je 0x402e4d
mov dword [ebp - 0x1274], 1
jmp 0x402e57
mov dword [ebp - 0x1274], 0
mov edx, dword [ebp - 0x1274]
mov dword [ebp - 0x12bc], edx
cmp dword [ebp - 0x12bc], 0
jne 0x402e78
mov dword [ebp - 0x1238], 0xd
jmp 0x402eb0
xor eax, eax
jne 0x402e37
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0041ce60
add esp, 4
add eax, 1
push eax
lea edx, [ebp - 0x1014]
push edx
push 1
push 0
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x1238], eax
jmp 0x4036db
lea eax, [ebp - 0x1014]
push eax
call fcn.0041ce60
add esp, 4
add eax, 2
mov dword [ebp - 0x1254], eax
mov dword [ebp - 0x121c], 0
mov dword [ebp - 4], 0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x1254]
push ecx
lea ecx, [ebp - 0x121c]
call fcn.00403800
jmp 0x402efc
mov dword [ebp - 4], 0
jmp 0x402f0c
mov edx, dword [ebp - 0x121c]
mov dword [ebp - 0x12dc], edx
cmp dword [ebp - 0x12dc], 0
je 0x40308f
mov eax, dword [ebp - 0x121c]
mov dword [ebp - 0x122c], eax
lea ecx, [ebp - 0x1014]
mov dword [ebp - 0x1230], ecx
mov dword [ebp - 0x1254], 0
mov edx, dword [ebp - 0x1230]
movsx eax, byte [edx]
test eax, eax
je 0x403047
mov ecx, dword [ebp - 0x1230]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [ebp - 0x1278], eax
mov edx, dword [ebp - 0x1230]
movsx eax, byte [edx]
cmp eax, 0x5c
jne 0x402fb4
mov ecx, dword [ebp - 0x1278]
movsx edx, byte [ecx]
cmp edx, 0x30
jne 0x402fb4
mov eax, dword [ebp - 0x122c]
mov byte [eax], 0
mov ecx, dword [ebp - 0x122c]
add ecx, 1
mov dword [ebp - 0x122c], ecx
mov edx, dword [ebp - 0x1278]
push edx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [ebp - 0x1230], eax
jmp 0x403033
mov eax, dword [ebp - 0x122c]
mov ecx, dword [ebp - 0x1230]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x1230]
movzx ecx, byte [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x403015
mov edx, dword [ebp - 0x122c]
add edx, 1
mov dword [ebp - 0x122c], edx
mov eax, dword [ebp - 0x1230]
add eax, 1
mov dword [ebp - 0x1230], eax
mov ecx, dword [ebp - 0x1230]
movsx edx, byte [ecx]
test edx, edx
jne 0x403005
jmp 0x403047
mov eax, dword [ebp - 0x122c]
mov ecx, dword [ebp - 0x1230]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x122c]
add eax, 1
mov dword [ebp - 0x122c], eax
mov ecx, dword [ebp - 0x1230]
add ecx, 1
mov dword [ebp - 0x1230], ecx
mov edx, dword [ebp - 0x1254]
add edx, 1
mov dword [ebp - 0x1254], edx
jmp 0x402f47
mov eax, dword [ebp - 0x122c]
mov byte [eax], 0
mov ecx, dword [ebp - 0x122c]
add ecx, 1
mov dword [ebp - 0x122c], ecx
mov edx, dword [ebp - 0x122c]
mov byte [edx], 0
mov eax, dword [ebp - 0x121c]
mov dword [ebp - 0x12e0], eax
mov ecx, dword [ebp - 0x12e0]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp + 8]
call fcn.00409910
mov dword [ebp - 0x1238], eax
jmp 0x403099
mov dword [ebp - 0x1238], 0xe
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x1218]
cmp dword [ebp - 0x121c], eax
je 0x4030b9
lea ecx, [ebp - 0x121c]
call fcn.00404960
jmp 0x4036db
mov dword [ebp - 0x1298], 3
mov dword [ebp - 0x1228], 0
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x1014]
mov dword [ebp - 0x1258], ecx
cmp dword [ebp - 0x1258], 0
jne 0x4030fd
mov dword [ebp - 0x1284], 0
jmp 0x4032d8
mov edx, dword [ebp - 0x1258]
push edx
call fcn.0041ce60
add esp, 4
add eax, 1
mov dword [ebp - 0x123c], eax
mov eax, dword [ebp - 0x123c]
mov dword [ebp - 0x12e4], eax
mov eax, 2
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x12e4]
cdq
push esi
push ecx
push edx
push eax
call fcn.0040d9f0
mov dword [ebp - 0x1270], eax
mov dword [ebp - 0x126c], edx
cmp dword [ebp - 0x126c], 0
jg 0x403175
jl 0x40315e
cmp dword [ebp - 0x1270], 0x7fffffff
ja 0x403175
cmp dword [ebp - 0x126c], 0xffffffff
jg 0x4031b2
jl 0x403175
cmp dword [ebp - 0x1270], 0x80000000
jae 0x4031b2
mov edx, 0x216
test edx, edx
jg 0x40318a
mov dword [ebp - 0x127c], 0x216
jmp 0x4031a4
mov eax, 0x216
and eax, 0xffff
or eax, 0x70000
or eax, 0x80000000
mov dword [ebp - 0x127c], eax
mov ecx, dword [ebp - 0x127c]
mov dword [ebp - 0x1280], ecx
jmp 0x4031c8
mov edx, dword [ebp - 0x1270]
mov dword [ebp - 0x123c], edx
mov dword [ebp - 0x1280], 0
cmp dword [ebp - 0x1280], 0
jge 0x4031e0
mov dword [ebp - 0x1250], 0
jmp 0x4032cc
cmp dword [ebp - 0x123c], 0x400
jg 0x403224
mov eax, dword [ebp - 0x123c]
push eax
call fcn.0040b4c0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x403224
mov eax, dword [ebp - 0x123c]
call fcn.0040da30
mov dword [ebp - 0x1290], esp
mov dword [ebp - 0x10], esp
mov edx, dword [ebp - 0x1290]
mov dword [ebp - 0x124c], edx
jmp 0x40323c
mov eax, dword [ebp - 0x123c]
push eax
lea ecx, [ebp - 0x1228]
call fcn.004037a0
mov dword [ebp - 0x124c], eax
mov ecx, dword [ebp - 0x123c]
shr ecx, 1
mov dword [ebp - 0x1294], ecx
mov edx, dword [ebp - 0x12ec]
mov dword [ebp - 0x1250], edx
cmp dword [ebp - 0x124c], 0
je 0x403268
cmp dword [ebp - 0x1258], 0
jne 0x403274
mov dword [ebp - 0x1250], 0
jmp 0x4032cc
xor eax, eax
mov ecx, dword [ebp - 0x124c]
mov word [ecx], ax
mov edx, dword [ebp - 0x1294]
push edx
mov eax, dword [ebp - 0x124c]
push eax
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x1258]
push ecx
push 0
mov edx, dword [ebp - 0x1298]
push edx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x129c], eax
cmp dword [ebp - 0x129c], 0
jne 0x4032c0
mov dword [ebp - 0x1250], 0
jmp 0x4032cc
mov eax, dword [ebp - 0x124c]
mov dword [ebp - 0x1250], eax
mov ecx, dword [ebp - 0x1250]
mov dword [ebp - 0x1284], ecx
mov edx, dword [ebp - 0x1284]
mov dword [ebp - 0x1288], edx
cmp dword [ebp - 0x1288], 0
jne 0x40333d
mov dword [ebp - 0x12a4], 0x8007000e
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1228], 0
je 0x403332
mov eax, dword [ebp - 0x1228]
mov dword [ebp - 0x12a0], eax
mov ecx, dword [ebp - 0x1228]
mov edx, dword [ecx]
mov dword [ebp - 0x1228], edx
mov eax, dword [ebp - 0x12a0]
push eax
call fcn.0041b026
add esp, 4
jmp 0x4032fe
mov eax, dword [ebp - 0x12a4]
jmp 0x403727
lea ecx, [ebp - 0x12b0]
push ecx
push 0
push 0
mov edx, dword [ebp - 0x1288]
push edx
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov dword [ebp - 0x1234], eax
cmp dword [ebp - 0x1234], 0
jge 0x4033b6
mov eax, dword [ebp - 0x1234]
mov dword [ebp - 0x12ac], eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1228], 0
je 0x4033ab
mov ecx, dword [ebp - 0x1228]
mov dword [ebp - 0x12a8], ecx
mov edx, dword [ebp - 0x1228]
mov eax, dword [edx]
mov dword [ebp - 0x1228], eax
mov ecx, dword [ebp - 0x12a8]
push ecx
call fcn.0041b026
add esp, 4
jmp 0x403377
mov eax, dword [ebp - 0x12ac]
jmp 0x403727
mov edx, dword [ebp - 0x12b0]
mov dword [ebp - 0x12b4], edx
xor eax, eax
jne 0x4033c2
push 4
lea ecx, [ebp - 0x12b4]
push ecx
push 4
push 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x1238], eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1228], 0
je 0x403424
mov edx, dword [ebp - 0x1228]
mov dword [ebp - 0x12b8], edx
mov eax, dword [ebp - 0x1228]
mov ecx, dword [eax]
mov dword [ebp - 0x1228], ecx
mov edx, dword [ebp - 0x12b8]
push edx
call fcn.0041b026
add esp, 4
jmp 0x4033f0
jmp 0x4036db
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0041ce60
add esp, 4
mov dword [ebp - 0x1264], eax
mov edx, dword [ebp - 0x1264]
and edx, 1
je 0x40348e
mov eax, 0x80004005
jmp 0x403727
mov eax, dword [ebp - 0x1264]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x1268], eax
mov dword [ebp - 0x1118], 0
mov dword [ebp - 4], 4
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1268]
push eax
lea ecx, [ebp - 0x1118]
call fcn.004038a0
jmp 0x4034ce
mov dword [ebp - 4], 4
jmp 0x4034de
mov ecx, dword [ebp - 0x1118]
mov dword [ebp - 0x12c0], ecx
cmp dword [ebp - 0x12c0], 0
jne 0x403528
mov dword [ebp - 0x12c4], 0x80004005
mov dword [ebp - 4], 0xffffffff
lea edx, [ebp - 0x1114]
cmp dword [ebp - 0x1118], edx
je 0x40351d
lea ecx, [ebp - 0x1118]
call fcn.004049c0
mov eax, dword [ebp - 0x12c4]
jmp 0x403727
mov eax, dword [ebp - 0x1118]
mov dword [ebp - 0x12c8], eax
mov ecx, dword [ebp - 0x1268]
push ecx
push 0
mov edx, dword [ebp - 0x12c8]
push edx
call fcn.00413340
add esp, 0xc
mov dword [ebp - 0x1240], 0
jmp 0x403567
mov eax, dword [ebp - 0x1240]
add eax, 1
mov dword [ebp - 0x1240], eax
mov ecx, dword [ebp - 0x1240]
cmp ecx, dword [ebp - 0x1264]
jge 0x403659
mov edx, dword [ebp - 0x1118]
mov dword [ebp - 0x12cc], edx
mov eax, dword [ebp - 0x1240]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x12cc]
mov dword [ebp - 0x128c], eax
mov eax, dword [ebp - 0x1240]
mov cl, byte [ebp + eax - 0x1014]
mov byte [ebp - 0x1220], cl
movsx edx, byte [ebp - 0x1220]
mov dword [ebp - 0x125c], edx
mov eax, dword [ebp - 0x125c]
sub eax, 0x30
mov dword [ebp - 0x125c], eax
cmp dword [ebp - 0x125c], 0x36
ja case.0x4035e1.10
mov ecx, dword [ebp - 0x125c]
movzx edx, byte [ecx + 0x40375c]
jmp dword [edx*4 + 0x40374c]
movsx eax, byte [ebp - 0x1220]
sub eax, 0x30
mov byte [ebp - 0x1221], al
jmp 0x403625
movsx ecx, byte [ebp - 0x1220]
sub ecx, 0x37
mov byte [ebp - 0x1221], cl
jmp 0x403625
movsx edx, byte [ebp - 0x1220]
sub edx, 0x57
mov byte [ebp - 0x1221], dl
jmp 0x403625
mov byte [ebp - 0x1221], 0
mov eax, dword [ebp - 0x1240]
and eax, 1
mov ecx, 1
sub ecx, eax
shl ecx, 2
movzx edx, byte [ebp - 0x1221]
shl edx, cl
mov eax, dword [ebp - 0x128c]
movzx ecx, byte [eax]
or ecx, edx
mov edx, dword [ebp - 0x128c]
mov byte [edx], cl
jmp 0x403558
mov eax, dword [ebp - 0x1118]
mov dword [ebp - 0x12d0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [ebp - 0x12e8], edx
mov eax, dword [ebp - 0x1268]
push eax
mov ecx, dword [ebp - 0x12d0]
push ecx
push 3
push 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x12e8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x1238], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1114]
cmp dword [ebp - 0x1118], ecx
je 0x4036b9
lea ecx, [ebp - 0x1118]
call fcn.004049c0
jmp 0x4036db
cmp dword [ebp - 0x1238], 0
je 0x4036ff
mov dword [ebp - 0x12d8], 0x204
mov eax, dword [ebp - 0x1238]
push eax
call fcn.00403db0
add esp, 4
jmp 0x403727
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x1260]
call fcn.00405290
mov dword [ebp - 0x1234], eax
cmp dword [ebp - 0x1234], 0
jge 0x403725
mov eax, dword [ebp - 0x1234]
jmp 0x403727
xor eax, eax
lea esp, [ebp - 0x12fc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040d9dd
mov esp, ebp
pop ebp
ret 0xc