Function at 0x401300
Capabilities:
Delete registry key
Delete registry value
Set registry value

Disassembly:
sub esp, 0x104
mov edx, dword [esp + 0x108]
push ebp
xor ebp, ebp
push esi
cmp edx, 3
push edi
mov dword [esp + 0xc], ebp
jl 0x4012cb
cmp edx, 4
jg 0x4012cb
mov edi, dword [esp + 0x118]
mov ecx, dword [edi + 8]
mov al, byte [ecx]
cmp al, 0x2f
je 0x40109c
cmp al, 0x2d
jne 0x4010b4
cmp byte [ecx + 1], 0x64
jne 0x4010b4
push str._d_is_only_valid_after_the_option_is_specified_n
call fcn.004014f8
add esp, 4
jmp 0x4012d0
cmp al, 0x2f
je 0x4010bc
cmp al, 0x2d
jne 0x4010d4
cmp byte [ecx + 1], 0x76
jne 0x4010d4
mov al, byte [ecx + 2]
cmp al, 0x3a
jne 0x401108
cmp byte [ecx + 3], 0x36
jne 0x4010f7
mov ebp, 6
cmp edx, 4
mov esi, 1
jne 0x401127
mov ecx, dword [edi + 0xc]
mov al, byte [ecx]
cmp al, 0x2f
je 0x4010eb
cmp al, 0x2d
jne 0x40111a
cmp byte [ecx + 1], 0x64
jne 0x40111a
mov dword [esp + 0xc], esi
jmp 0x401127
cmp al, 0x3a
jne 0x401108
cmp byte [ecx + 3], 0x37
jne 0x401108
mov ebp, 7
jmp 0x4010d4
push str.Invalid_version_number._No_blanka_allowed._Valid_version_numbers__6_7_.__n
call fcn.004014f8
add esp, 4
jmp 0x4012d0
push str.The_only_legal_third_argument_is__d__n
call fcn.004014f8
add esp, 4
mov eax, dword [edi + 8]
mov cl, byte [eax]
cmp cl, 0x2f
je 0x401136
cmp cl, 0x2d
jne 0x401162
mov al, byte [eax + 1]
cmp al, 0x76
je 0x401166
cmp al, 0x50
jne 0x401148
mov esi, 2
jmp 0x401166
cmp al, 0x54
jne 0x401153
mov esi, 3
jmp 0x401166
cmp al, 0x52
jne case.default.0x401205
mov esi, 4
jmp 0x401166
mov esi, dword [esp + 0xc]
mov ecx, dword [edi + 4]
lea eax, [esp + 0x10]
push 0
push eax
push 0
push 0
push ecx
call fcn.00401915
mov eax, dword [esp + 0x20]
add esp, 0x14
test eax, eax
lea eax, [esi - 1]
je 0x4011fc
cmp eax, 3
ja case.default.0x401205
jmp dword [eax*4 + 0x4012dc]
lea edx, [esp + 0x10]
push 0
push edx
push str.SOFTWAREMicrosoftMSSQLServerClientODBCAppCompat
call 0x401300
add esp, 0xc
jmp 0x4012d0
lea eax, [esp + 0x10]
push 0
push eax
push str.SOFTWAREMicrosoftMSSQLServerClientCompatabilityCONNECTIONPEEK
call 0x401300
add esp, 0xc
jmp 0x4012d0
lea ecx, [esp + 0x10]
push 0
push ecx
push str.SOFTWAREMicrosoftMSSQLServerClientCompatabilityTRANSLATIONS
call 0x401300
add esp, 0xc
jmp 0x4012d0
lea edx, [esp + 0x10]
push 0
push edx
push str.SOFTWAREMicrosoftMSSQLServerClientCompatabilityRESETCONNECTION
call 0x401300
add esp, 0xc
jmp 0x4012d0
cmp eax, 3
ja case.default.0x401205
jmp dword [eax*4 + 0x4012ec]
cmp ebp, 6
jne 0x40122d
lea eax, [esp + 0x10]
push str.6.50
push eax
push str.SOFTWAREMicrosoftMSSQLServerClientODBCAppCompat
call 0x401300
add esp, 0xc
jmp 0x4012d0
cmp ebp, 7
jne 0x40124e
lea ecx, [esp + 0x10]
push str.7.00
push ecx
push str.SOFTWAREMicrosoftMSSQLServerClientODBCAppCompat
call 0x401300
add esp, 0xc
jmp 0x4012d0
push 0x93
push str.odbccmpt.c
push str.FALSE
call fcn.0040162b
push str.Invalid_version_number__n
call fcn.004014f8
add esp, 0x10
jmp 0x4012d0
lea edx, [esp + 0x10]
push 0x408280
push edx
push str.SOFTWAREMicrosoftMSSQLServerClientCompatabilityCONNECTIONPEEK
call 0x401300
add esp, 0xc
jmp 0x4012d0
lea eax, [esp + 0x10]
push 0x40827c
push eax
push str.SOFTWAREMicrosoftMSSQLServerClientCompatabilityTRANSLATIONS
call 0x401300
add esp, 0xc
jmp 0x4012d0
lea ecx, [esp + 0x10]
push 0x40827c
push ecx
push str.SOFTWAREMicrosoftMSSQLServerClientCompatabilityRESETCONNECTION
call 0x401300
add esp, 0xc
jmp 0x4012d0
push str.Invalid_option__n
call fcn.004014f8
add esp, 4
jmp 0x4012d0
call fcn.00401000
push 0
call fcn.00401556
pop edi
pop esi
pop ebp
mov edi, edi
cwde
adc dword [eax], eax
mov cl, 0x11
inc eax
add dl, cl
adc dword [eax], eax
jecxz 0x4012fb
inc eax
add byte [edx + edx], cl
inc eax
add byte [ecx + 0x12], dh
inc eax
add byte [edx - 0x5cffbfee], cl
adc al, byte [eax]
nop
nop
nop
nop
push ebx
add byte [eax + 0x53909090], dl
mov ebx, dword [esp + 0xc]
push esi
push edi
test ebx, ebx
jne 0x401324
mov eax, dword [esp + 0x10]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
pop edi
pop esi
mov eax, 1
pop ebx
ret
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x10]
push ecx
push 0x2001f
push 0
push edi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x401382
test esi, esi
jne 0x401355
pop edi
pop esi
mov eax, 1
pop ebx
ret
lea edx, [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push edi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x401382
pop edi
pop esi
xor eax, eax
pop ebx
ret
test esi, esi
jne 0x401394
mov ecx, dword [esp + 0x10]
push ebx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
jmp 0x4013b0
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push 1
push eax
push ebx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop edi
test esi, esi
pop esi
pop ebx
sete al
ret