Function at 0x42485c
Capabilities:
Copy file
Get common file path
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x528
push ebx
push esi
push edi
push 1
pop esi
lea eax, [ebp - 4]
push eax
xor edi, edi
push 0xf003f
push edi
push str.SystemCurrentControlSetControlSecurityProviders
push reloc.WS2_32.dll_bind
mov dword [ebp - 0x14], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x424922
cmp dword [0x441ff4], edi
je 0x424ece
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, esi
je 0x4248bf
mov ecx, dword [0x441fdc]
cmp dword [ecx], edi
jne 0x424ece
cmp eax, esi
jle 0x424ece
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43e9c8], edi
mov dword [ebp - 8], eax
jge 0x4248e2
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x424913
push esi
push dword [0x43e9c8]
push 0xc3
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.SecurityProviders_reg_key_is_invalid._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push ebx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push dword [ebp - 8]
jmp 0x424ec8
mov esi, 0x104
lea eax, [ebp - 0x424]
push esi
push edi
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x10]
mov ebx, str.SecurityProviders
mov dword [ebp - 0x10], esi
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x14]
push eax
push edi
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x4249f5
cmp dword [0x441ff4], edi
je 0x4249e7
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x424985
mov ecx, dword [0x441fdc]
cmp dword [ecx], edi
jne 0x4249e7
cmp eax, 1
jle 0x4249e7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43e9c8], edi
mov ebx, eax
jge 0x4249a7
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x4249d9
push 1
push dword [0x43e9c8]
push 0xcb
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Failed_to_get_SecurityProviders_reg_val._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x424ece
lea eax, [ebp - 0x424]
push str.schannel.dll
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
pop ecx
test eax, eax
pop ecx
jne 0x424f58
lea eax, [ebp - 0x424]
push str.__schannel.dll
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x424]
push eax
call sub.MSVCRT.dll_strlen
add esp, 0xc
push eax
lea eax, [ebp - 0x424]
push eax
push 1
push edi
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x424ac5
cmp dword [0x441ff4], edi
je 0x4249e7
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x424a75
mov ecx, dword [0x441fdc]
cmp dword [ecx], edi
jne 0x4249e7
cmp eax, 1
jle 0x4249e7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43e9c8], edi
mov ebx, eax
jge 0x424a97
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x4249d9
push 1
push dword [0x43e9c8]
push 0xd4
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Failed_to_add_schannel.dll_to_SecurityProviders_reg_val._n
jmp 0x4249cc
cmp dword [0x441ff4], 0
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
je 0x424b57
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x424af6
mov ecx, dword [0x441fdc]
cmp dword [ecx], 0
jne 0x424b57
cmp eax, 3
jle 0x424b57
call ebx
mov dword [ebp - 8], eax
call edi
cmp dword [0x43e9c8], 0
mov dword [ebp - 0xc], eax
jge 0x424b13
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x424b45
push 3
push dword [0x43e9c8]
push 0xd8
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Add_schannel.dll_to_SecurityProviders_reg_val._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push dword [ebp - 8]
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x320]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
ja 0x424bf7
xor esi, esi
cmp dword [0x441ff4], esi
je 0x424ece
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x424b9e
mov ecx, dword [0x441fdc]
cmp dword [ecx], esi
jne 0x424ece
cmp eax, 1
jle 0x424ece
call ebx
mov ebx, eax
call edi
cmp dword [0x43e9c8], esi
mov edi, eax
jge 0x424bb8
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x424bea
push 1
push dword [0x43e9c8]
push 0xee
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Failed_to_get_windows_directory._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push ebx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
jmp 0x424ec8
push esi
lea eax, [ebp - 0x528]
push 0
push eax
call sub.MSVCRT.dll_memset
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x528]
push str._swininit.ini
push eax
call edi
add esp, 0x18
lea eax, [ebp - 0x320]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
ja 0x424cb3
xor edi, edi
cmp dword [0x441ff4], edi
je 0x424ece
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x424c67
mov ecx, dword [0x441fdc]
cmp dword [ecx], edi
jne 0x424ece
cmp eax, 1
jle 0x424ece
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43e9c8], edi
mov ebx, eax
jge 0x424c85
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x424ec0
push 1
push dword [0x43e9c8]
push 0xf6
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Failed_to_get_windows_system_directory._n
jmp 0x424eb3
push esi
lea eax, [ebp - 0x21c]
push 0
push eax
call sub.MSVCRT.dll_memset
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x21c]
push str._s_secur9x.dll
push eax
call edi
push 0
call dword [sym.imp.MSVCRT.dll_time]
push eax
call dword [sym.imp.MSVCRT.dll_srand]
push esi
lea eax, [ebp - 0x118]
push 0
push eax
call sub.MSVCRT.dll_memset
call dword [sym.imp.MSVCRT.dll_rand]
push eax
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x118]
push str._s_secur_d.tmp
push eax
call edi
add esp, 0x3c
lea eax, [ebp - 0x118]
push 0
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x424dab
xor edi, edi
cmp dword [0x441ff4], edi
je 0x424ece
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x424d5f
mov ecx, dword [0x441fdc]
cmp dword [ecx], edi
jne 0x424ece
cmp eax, 1
jle 0x424ece
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43e9c8], edi
mov ebx, eax
jge 0x424d7d
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x424ec0
push 1
push dword [0x43e9c8]
push 0x101
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Failed_to_copy_secur9x.dll._n
jmp 0x424eb3
push esi
lea eax, [ebp - 0x21c]
push 0
push eax
call sub.MSVCRT.dll_memset
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x21c]
push 0x43657c
push eax
call edi
add esp, 0x18
lea eax, [ebp - 0x21c]
push esi
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push esi
lea eax, [ebp - 0x118]
push 0
push eax
call sub.MSVCRT.dll_memset
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x118]
push str._s_secur32.dll
push eax
call edi
add esp, 0x18
lea eax, [ebp - 0x118]
push esi
push eax
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
lea eax, [ebp - 0x528]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x118]
push eax
push str.rename
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
jne 0x424ed5
xor edi, edi
cmp dword [0x441ff4], edi
je 0x424ece
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x424e70
mov ecx, dword [0x441fdc]
cmp dword [ecx], edi
jne 0x424ece
cmp eax, 1
jle 0x424ece
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43e9c8], edi
mov ebx, eax
jge 0x424e8e
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x424ec0
push 1
push dword [0x43e9c8]
push 0x10e
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Failed_to_get_windows_directory._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x424f5b
xor edi, edi
cmp dword [0x441ff4], edi
je 0x424f58
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x424efa
mov ecx, dword [0x441fdc]
cmp dword [ecx], edi
jne 0x424f58
cmp eax, 3
jle 0x424f58
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43e9c8], edi
mov ebx, eax
jge 0x424f18
mov eax, dword [0x441fa0]
mov dword [0x43e9c8], eax
call fcn.0041c4b1
test eax, eax
je 0x424f4a
push 3
push dword [0x43e9c8]
push 0x111
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHARED_sslsock_sslsock.cpp
call fcn.0041c4e1
push str.Patch_secur32.dll_on_win98._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret