Function at 0x180028604
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rdi, rcx
mov rcx, rdx
mov rbp, rdx
xor ebx, ebx
call qword [sym.imp.kERNEL32.dll_lstrlenA]
mov rcx, rdi
mov esi, eax
call qword [sym.imp.kERNEL32.dll_lstrlenA]
mov rcx, qword [0x180035a68]
lea r8d, [rax + rsi + 1]
xor edx, edx
mov r13d, eax
add r8, 5
call qword [sym.imp.kERNEL32.dll_HeapAlloc]
mov r12, rax
cmp rax, rbx
je 0x18002884d
mov rdx, rbp
mov rcx, rax
call qword [sym.imp.kERNEL32.dll_lstrcpyA]
lea eax, [rsi + 1]
mov rdx, rdi
mov rcx, r12
mov byte [rsi + r12], 0x5c
mov byte [rax + r12], bl
call qword [sym.imp.kERNEL32.dll_lstrcatA]
mov rax, qword [0x180035c60]
lea r14, [0x180000000]
lea rdx, [rax + r14 + 0x39fc3]
mov rcx, r12
call qword [sym.imp.kERNEL32.dll_lstrcatA]
mov rcx, qword [0x180035a68]
lea r8d, [r13 + 1]
add r8, r8
xor edx, edx
call qword [sym.imp.kERNEL32.dll_HeapAlloc]
mov rbp, rax
cmp rax, rbx
je 0x18002883b
movsx eax, byte [rdi]
mov word [rbp], ax
cmp ax, bx
je 0x1800286e3
mov rcx, rbp
inc rdi
add rcx, 2
movsx eax, byte [rdi]
mov word [rcx], ax
cmp ax, bx
jne 0x1800286d1
mov rdx, rbp
xor ecx, ecx
call qword [sym.imp.CRYPT32.dll_CertOpenSystemStoreW]
mov rdi, rax
cmp rax, rbx
je 0x180028829
xor edx, edx
mov rcx, rax
mov esi, ebx
call qword [sym.imp.CRYPT32.dll_CertEnumCertificatesInStore]
cmp rax, rbx
je 0x18002881e
mov rdx, rax
mov rcx, rdi
inc esi
call qword [sym.imp.CRYPT32.dll_CertEnumCertificatesInStore]
cmp rax, rbx
jne 0x180028710
cmp esi, ebx
je 0x18002881e
xor eax, eax
lea rdx, [rsp + 0x40]
mov esi, 4
mov qword [rsp + 0x48], rax
mov rax, qword [0x180035c60]
xor r9d, r9d
lea r8, [rax + r14 + 0x39a98]
mov rcx, rdi
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x20], esi
call qword [sym.imp.CRYPT32.dll_PFXExportCertStoreEx]
cmp eax, ebx
je 0x18002881e
mov r8d, dword [rsp + 0x40]
mov rcx, qword [0x180035a68]
xor edx, edx
call qword [sym.imp.kERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x48], rax
cmp rax, rbx
je 0x18002881e
mov rax, qword [0x180035c60]
lea rdx, [rsp + 0x40]
xor r9d, r9d
lea r8, [rax + r14 + 0x39a98]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call qword [sym.imp.CRYPT32.dll_PFXExportCertStoreEx]
cmp eax, ebx
je 0x18002880a
mov qword [rsp + 0x30], rbx
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], esi
call qword [sym.imp.kERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x18002880a
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
lea r9, [rsp + 0x90]
mov rcx, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.kERNEL32.dll_WriteFile]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.kERNEL32.dll_CloseHandle]
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x180035a68]
xor edx, edx
call qword [sym.imp.kERNEL32.dll_HeapFree]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
mov rcx, qword [0x180035a68]
mov r8, rbp
xor edx, edx
call qword [sym.imp.kERNEL32.dll_HeapFree]
mov rcx, qword [0x180035a68]
mov r8, r12
xor edx, edx
call qword [sym.imp.kERNEL32.dll_HeapFree]
lea r11, [rsp + 0x50]
mov eax, ebx
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret