Function at 0x41a459
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], str.saving_keys_and_certs
mov dword [esp + 8], 0x443
mov dword [esp + 4], str.src_userpref.c
mov dword [esp], str.userpref_set_keys_and_certs
call fcn.0041f669
cmp dword [ebp + 0x10], 0
je 0x41a4a3
test esi, esi
je 0x41a4a3
cmp dword [ebp + 0x14], 0
je 0x41a4a3
cmp dword [ebp + 0xc], 0
sete byte [ebp - 0x19]
jne 0x41a4e8
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x1c], eax
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x18], edx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.missing_key_or_cert__root_key_p__host_key_p__rootcert_p__host_cert_p
mov dword [esp + 8], 0x446
mov dword [esp + 4], str.src_userpref.c
mov dword [esp], str.userpref_set_keys_and_certs
call fcn.0041f669
or esi, 0xffffffff
jmp 0x41a836
call fcn.004199dc
call fcn.00419848
mov ebx, eax
or ecx, 0xffffffff
mov edi, eax
mov al, byte [ebp - 0x19]
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x13
mov dword [esp], ecx
call sub.msvcrt.dll_malloc
mov edi, eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x659a1a
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], str.RootPrivateKey.pem
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], 0x659a9c
mov dword [esp], edi
call sub.msvcrt.dll_fopen
mov edx, eax
test eax, eax
je 0x41a57e
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [esi]
mov dword [esp], eax
mov dword [ebp - 0x20], edx
call sub.msvcrt.dll_fwrite
mov edx, dword [ebp - 0x20]
mov dword [esp], edx
call fcn.0059fc68
xor esi, esi
jmp 0x41a5be
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.could_not_open__s_for_writing:__s
mov dword [esp + 8], 0x459
mov dword [esp + 4], str.src_userpref.c
mov dword [esp], str.userpref_set_keys_and_certs
call fcn.0041f669
mov esi, 0xfffffffb
mov dword [esp], edi
call fcn.0059fbf8
xor eax, eax
or ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x13
mov dword [esp], ecx
call sub.msvcrt.dll_malloc
mov edi, eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x659a1a
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], str.HostPrivateKey.pem
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], 0x659a9c
mov dword [esp], edi
call sub.msvcrt.dll_fopen
mov edx, eax
test eax, eax
je 0x41a650
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ecx]
mov dword [esp], eax
mov dword [ebp - 0x20], edx
call sub.msvcrt.dll_fwrite
mov edx, dword [ebp - 0x20]
mov dword [esp], edx
call fcn.0059fc68
jmp 0x41a690
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.could_not_open__s_for_writing:__s
mov dword [esp + 8], 0x467
mov dword [esp + 4], str.src_userpref.c
mov dword [esp], str.userpref_set_keys_and_certs
call fcn.0041f669
mov esi, 0xfffffffb
mov dword [esp], edi
call fcn.0059fbf8
xor eax, eax
or ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x14
mov dword [esp], ecx
call sub.msvcrt.dll_malloc
mov edi, eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x659a1a
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], str.RootCertificate.pem
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], 0x659a9c
mov dword [esp], edi
call sub.msvcrt.dll_fopen
mov edx, eax
test eax, eax
je 0x41a722
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ecx]
mov dword [esp], eax
mov dword [ebp - 0x20], edx
call sub.msvcrt.dll_fwrite
mov edx, dword [ebp - 0x20]
mov dword [esp], edx
call fcn.0059fc68
jmp 0x41a762
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.could_not_open__s_for_writing:__s
mov dword [esp + 8], 0x475
mov dword [esp + 4], str.src_userpref.c
mov dword [esp], str.userpref_set_keys_and_certs
call fcn.0041f669
mov esi, 0xfffffffb
mov dword [esp], edi
call fcn.0059fbf8
xor eax, eax
or ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
add ecx, 0x14
mov dword [esp], ecx
call sub.msvcrt.dll_malloc
mov edi, eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x659a1a
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], str.HostCertificate.pem
mov dword [esp], edi
call fcn.0059fc30
mov dword [esp + 4], 0x659a9c
mov dword [esp], edi
call sub.msvcrt.dll_fopen
mov ebx, eax
test eax, eax
je 0x41a7ee
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [edx]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov dword [esp], ebx
call fcn.0059fc68
jmp 0x41a82e
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.could_not_open__s_for_writing:__s
mov dword [esp + 8], 0x483
mov dword [esp + 4], str.src_userpref.c
mov dword [esp], str.userpref_set_keys_and_certs
call fcn.0041f669
mov esi, 0xfffffffb
mov dword [esp], edi
call fcn.0059fbf8
mov eax, esi
add esp, 0x3c
pop ebx
pop esi
pop edi
leave
ret