Function at 0x14015db00
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rdi, qword [rsp + 0xf8]
mov r10d, r8d
mov r14, rcx
movsxd rcx, edx
mov edx, r9d
mov r15d, r10d
mov rax, rcx
lea r8, [r14 + rcx]
and r15d, 7
cmp r15d, 2
je 0x14015e038
cmp r15d, 4
je 0x14015de80
mov r9d, edx
and r10d, 8
mov rsi, r14
xor ebx, ebx
and r9d, 1
mov dword [rsp + 0x40], r10d
shl r9d, 5
mov word [rsp + 0x3e], r9w
cmp r14, r8
je 0x14015dcb5
mov qword [rsp + 0xd0], r14
mov r13, r8
mov r12, rsi
mov dword [rsp + 0xd8], eax
mov word [rsp + 0x44], dx
xor r14d, r14d
cmp qword [rsp + 0xd0], r12
cmove r14w, word [rsp + 0x3e]
cmp r15d, 2
je 0x14015de50
jg 0x14015dcd0
test r15d, r15d
je 0x14015de18
movzx r9d, byte [r12]
lea rax, [r12 + 1]
mov dword [rsp + 0x68], r9d
cmp r13, rax
je 0x14015dda0
mov edx, dword [rsp + 0x40]
mov r12, rax
test edx, edx
je 0x14015dd15
nop dword [rax]
lea rbp, [rsp + 0x6f]
mov r8d, r9d
mov edx, 6
mov rcx, rbp
call fcn.1401618d0
movsxd rsi, eax
test esi, esi
jle 0x14015de05
or r14w, word [rsp + 0x44]
mov eax, r14d
and ax, 0x40f
mov word [rsp + 0x46], ax
test r14b, 4
jne 0x14015e100
test rdi, rdi
je 0x14015e2f8
mov dword [rsp + 0x50], r15d
lea rax, [rsp + 0x67]
add rsi, rbp
mov qword [rsp + 0x48], r13
mov r13, qword [rsp + 0xf0]
mov qword [rsp + 0x58], r12
mov r12, rbp
mov rbp, rax
nop word [rax + rax]
movzx eax, byte [r12]
mov byte [rsp + 0x67], al
test al, al
js 0x14015df02
movzx edx, al
lea r11, [0x1402b9600]
movzx r9d, al
movzx ecx, word [r11 + rdx*2]
and ecx, r14d
mov edx, ecx
test cl, 0x61
je 0x14015e070
and edx, 8
jne 0x14015def8
mov r9, rdi
mov r8d, 1
mov edx, 1
lea rcx, [0x1402b9576]
call sub.msvcrt.dll_fwrite
cmp rax, 1
je 0x14015df58
nop
mov ebx, 0xffffffff
mov eax, ebx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp r15d, 4
jne 0x14015dcb0
mov r9d, dword [r12]
add r12, 4
bswap r9d
mov dword [rsp + 0x68], r9d
cmp r13, r12
je 0x14015dda3
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x14015dbe0
cmp r9d, 0xffff
ja 0x14015ddc0
cmp r9d, 0xff
ja 0x14015dfe8
movzx r11d, word [rsp + 0x44]
mov byte [rsp + 0x6f], r9b
or r11d, r14d
test r9b, r9b
js 0x14015deb8
movsxd rax, r9d
lea rdx, [0x1402b9600]
movzx esi, word [rdx + rax*2]
and esi, r11d
mov eax, esi
test sil, 0x61
jne 0x14015df80
test ax, 0x406
jne 0x14015e200
cmp r9d, 0x5c
jne 0x14015dec2
test r11w, 0x40f
je 0x14015dec2
test rdi, rdi
je 0x14015dfd5
mov r9, rdi
mov r8d, 2
mov edx, 1
lea rcx, [0x1402b9578]
call sub.msvcrt.dll_fwrite
cmp rax, 2
jne 0x14015dcb0
jmp 0x14015dfd5
mov r12, r13
test byte [rsp + 0x44], 1
mov eax, 0x40
cmovne r14d, eax
jmp 0x14015dcef
lea rsi, [rsp + 0x75]
lea r8, str.W_08lX
mov edx, 0xb
mov rcx, rsi
call fcn.14006aad0
test rdi, rdi
je 0x14015ddfe
mov r9, rdi
mov r8d, 0xa
mov edx, 1
mov rcx, rsi
call sub.msvcrt.dll_fwrite
cmp rax, 0xa
jne 0x14015dcb0
mov eax, 0xa
add ebx, eax
cmp r13, r12
jne 0x14015db8b
jmp 0x14015dcb5
mov edx, dword [rsp + 0xd8]
lea r8, [rsp + 0x68]
mov rcx, r12
call fcn.1401615a0
test eax, eax
js 0x14015dcb0
sub dword [rsp + 0xd8], eax
cdqe
mov r9d, dword [rsp + 0x68]
add r12, rax
jmp 0x14015dce6
movzx r9d, word [r12]
add r12, 2
rol r9w, 8
movzx r9d, r9w
mov dword [rsp + 0x68], r9d
cmp r13, r12
je 0x14015dda3
cmp dword [rsp + 0x40], 0
je 0x14015dd08
jmp 0x14015dbe0
test cl, 3
je 0x14015db49
mov r8d, 0x85
mov edx, 0x8e
mov ecx, 0xd
mov dword [rsp + 0x20], 0x9b
lea r9, str.crypto_asn1_a_strex.c
call fcn.1400a0f90
jmp 0x14015dcb0
and r11d, 4
jne 0x14015e200
test rdi, rdi
je 0x14015dee9
lea rcx, [rsp + 0x6f]
mov r9, rdi
mov r8d, 1
mov edx, 1
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
mov eax, 1
add ebx, eax
jmp 0x14015de05
test r13, r13
je 0x14015df02
mov byte [r13], 1
mov r9, rdi
mov r8d, 1
mov edx, 1
mov rcx, rbp
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
mov eax, 1
add r12, 1
add ebx, eax
cmp rsi, r12
jne 0x14015dc50
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x50]
cmp r13, r12
jne 0x14015db8b
jmp 0x14015dcb5
mov r9, rdi
mov r8d, 1
mov edx, 1
mov rcx, rbp
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
mov eax, 2
jmp 0x14015df27
test sil, 8
jne 0x14015e1e0
test rdi, rdi
je 0x14015dfd5
mov r9, rdi
mov r8d, 1
mov edx, 1
lea rcx, [0x1402b9576]
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
lea rcx, [rsp + 0x6f]
mov r9, rdi
mov r8d, 1
mov edx, 1
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
mov eax, 2
add ebx, eax
jmp 0x14015de05
lea rsi, [rsp + 0x75]
lea r8, str.U_04lX
mov edx, 0xb
mov rcx, rsi
call fcn.14006aad0
test rdi, rdi
je 0x14015e026
mov r9, rdi
mov r8d, 6
mov edx, 1
mov rcx, rsi
call sub.msvcrt.dll_fwrite
cmp rax, 6
jne 0x14015dcb0
mov eax, 6
add ebx, eax
jmp 0x14015de05
test cl, 1
je 0x14015db49
mov r8d, 0x81
mov edx, 0x8e
mov ecx, 0xd
mov dword [rsp + 0x20], 0xa1
lea r9, str.crypto_asn1_a_strex.c
call fcn.1400a0f90
jmp 0x14015dcb0
test cx, 0x406
jne 0x14015e0b8
cmp al, 0x5c
jne 0x14015df02
cmp word [rsp + 0x46], 0
je 0x14015df02
mov r9, rdi
mov r8d, 2
mov edx, 1
lea rcx, [0x1402b9578]
call sub.msvcrt.dll_fwrite
cmp rax, 2
jne 0x14015dcb0
jmp 0x14015df78
lea r15, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
mov rcx, r15
call fcn.14006aad0
mov r9, rdi
mov edx, 1
mov rcx, r15
mov r8d, 3
call sub.msvcrt.dll_fwrite
cmp rax, 3
jne 0x14015dcb0
jmp 0x14015df27
lea rax, [rsp + 0x75]
mov qword [rsp + 0x50], r12
add rsi, rbp
mov r12, rbp
mov qword [rsp + 0x48], rax
mov rbp, qword [rsp + 0xf0]
jmp 0x14015e18a
movzx edx, al
lea r10, [0x1402b9600]
movzx ecx, word [r10 + rdx*2]
and ecx, r14d
mov edx, ecx
test cl, 0x61
je 0x14015e2a8
and edx, 8
je 0x14015e250
test rbp, rbp
je 0x14015e14f
mov byte [rbp], 1
test rdi, rdi
je 0x14015e176
lea rcx, [rsp + 0x67]
mov r9, rdi
mov r8d, 1
mov edx, 1
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
mov eax, 1
add r12, 1
add ebx, eax
cmp r12, rsi
je 0x14015e518
movzx eax, byte [r12]
mov byte [rsp + 0x67], al
movzx r9d, al
test al, al
jns 0x14015e120
mov rcx, qword [rsp + 0x48]
lea r8, [0x1402b957b]
mov edx, 0xb
call fcn.14006aad0
test rdi, rdi
je 0x14015e1d8
mov rcx, qword [rsp + 0x48]
mov r9, rdi
mov r8d, 3
mov edx, 1
call sub.msvcrt.dll_fwrite
cmp rax, 3
jne 0x14015dcb0
mov eax, 3
jmp 0x14015e17b
cmp qword [rsp + 0xf0], 0
je 0x14015dec2
mov rax, qword [rsp + 0xf0]
mov byte [rax], 1
jmp 0x14015dec2
lea rsi, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
mov rcx, rsi
call fcn.14006aad0
test rdi, rdi
je 0x14015e23e
mov r9, rdi
mov r8d, 3
mov edx, 1
mov rcx, rsi
call sub.msvcrt.dll_fwrite
cmp rax, 3
jne 0x14015dcb0
mov eax, 3
add ebx, eax
jmp 0x14015de05
test rdi, rdi
je 0x14015e29b
mov r9, rdi
mov r8d, 1
mov edx, 1
lea rcx, [0x1402b9576]
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
lea rcx, [rsp + 0x67]
mov r9, rdi
mov r8d, 1
mov edx, 1
call sub.msvcrt.dll_fwrite
cmp rax, 1
jne 0x14015dcb0
mov eax, 2
jmp 0x14015e17b
test cx, 0x406
jne 0x14015e19b
cmp al, 0x5c
jne 0x14015e14f
cmp word [rsp + 0x46], 0
je 0x14015e14f
test rdi, rdi
je 0x14015e29b
mov r9, rdi
mov r8d, 2
mov edx, 1
lea rcx, [0x1402b9578]
call sub.msvcrt.dll_fwrite
cmp rax, 2
jne 0x14015dcb0
jmp 0x14015e29b
movzx eax, byte [rsp + 0x6f]
mov byte [rsp + 0x67], al
test al, al
js 0x14015e538
movzx edx, al
lea rcx, [0x1402b9600]
movzx r9d, al
movzx r11d, word [rcx + rdx*2]
and r11d, r14d
mov edx, r11d
test r11b, 0x61
je 0x14015e5ee
and edx, 8
mov eax, 2
jne 0x14015e522
add ebx, eax
cmp esi, 1
je 0x14015de05
movzx eax, byte [rsp + 0x70]
mov byte [rsp + 0x67], al
test al, al
js 0x14015e558
movzx edx, al
lea rcx, [0x1402b9600]
movzx r9d, al
movzx r11d, word [rcx + rdx*2]
and r11d, r14d
mov edx, r11d
test r11b, 0x61
je 0x14015e634
and edx, 8
mov eax, 2
jne 0x14015e542
add ebx, eax
cmp esi, 2
je 0x14015de05
movzx eax, byte [rsp + 0x71]
mov byte [rsp + 0x67], al
test al, al
js 0x14015e3e2
movzx edx, al
lea rcx, [0x1402b9600]
movzx r9d, al
movzx r11d, word [rcx + rdx*2]
and r11d, r14d
mov edx, r11d
test r11b, 0x61
je 0x14015e562
and edx, 8
mov eax, 2
je 0x14015e3e7
cmp qword [rsp + 0xf0], 0
je 0x14015e3e2
mov rax, qword [rsp + 0xf0]
mov byte [rax], 1
mov eax, 1
add ebx, eax
cmp esi, 3
je 0x14015de05
movzx eax, byte [rsp + 0x72]
mov byte [rsp + 0x67], al
test al, al
js 0x14015e442
movzx edx, al
lea rcx, [0x1402b9600]
movzx r9d, al
movzx r11d, word [rcx + rdx*2]
and r11d, r14d
mov edx, r11d
test r11b, 0x61
je 0x14015e588
and edx, 8
mov eax, 2
je 0x14015e447
cmp qword [rsp + 0xf0], 0
je 0x14015e442
mov rax, qword [rsp + 0xf0]
mov byte [rax], 1
mov eax, 1
add ebx, eax
cmp esi, 4
je 0x14015de05
movzx eax, byte [rsp + 0x73]
mov byte [rsp + 0x67], al
test al, al
js 0x14015e4a2
movzx edx, al
lea rcx, [0x1402b9600]
movzx r9d, al
movzx r11d, word [rcx + rdx*2]
and r11d, r14d
mov edx, r11d
test r11b, 0x61
je 0x14015e67a
and edx, 8
mov eax, 2
je 0x14015e4a7
cmp qword [rsp + 0xf0], 0
je 0x14015e4a2
mov rax, qword [rsp + 0xf0]
mov byte [rax], 1
mov eax, 1
add ebx, eax
cmp esi, 5
je 0x14015de05
movzx eax, byte [rsp + 0x74]
mov byte [rsp + 0x67], al
test al, al
js 0x14015dee9
movzx edx, al
lea rcx, [0x1402b9600]
movzx r9d, al
movzx r11d, word [rcx + rdx*2]
and r11d, r14d
test r11b, 0x61
je 0x14015e6c0
and r11d, 8
mov eax, 2
je 0x14015de03
cmp qword [rsp + 0xf0], 0
je 0x14015dee9
mov rax, qword [rsp + 0xf0]
mov byte [rax], 1
jmp 0x14015dee9
mov r12, qword [rsp + 0x50]
jmp 0x14015de05
cmp qword [rsp + 0xf0], 0
je 0x14015e538
mov rax, qword [rsp + 0xf0]
mov byte [rax], 1
mov eax, 1
jmp 0x14015e33a
cmp qword [rsp + 0xf0], 0
je 0x14015e558
mov rax, qword [rsp + 0xf0]
mov byte [rax], 1
mov eax, 1
jmp 0x14015e387
test r11w, 0x406
jne 0x14015e5ae
cmp al, 0x5c
jne 0x14015e3e2
cmp word [rsp + 0x46], 0
mov eax, 2
jne 0x14015e3e7
jmp 0x14015e3e2
test r11w, 0x406
jne 0x14015e5ce
cmp al, 0x5c
jne 0x14015e442
cmp word [rsp + 0x46], 0
mov eax, 2
jne 0x14015e447
jmp 0x14015e442
lea rcx, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
call fcn.14006aad0
mov eax, 3
jmp 0x14015e3e7
lea rcx, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
call fcn.14006aad0
mov eax, 3
jmp 0x14015e447
test r11w, 0x406
jne 0x14015e614
cmp al, 0x5c
jne 0x14015e538
cmp word [rsp + 0x46], 0
mov eax, 2
jne 0x14015e33a
jmp 0x14015e538
lea rcx, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
call fcn.14006aad0
mov eax, 3
jmp 0x14015e33a
test r11w, 0x406
jne 0x14015e65a
cmp al, 0x5c
jne 0x14015e558
cmp word [rsp + 0x46], 0
mov eax, 2
jne 0x14015e387
jmp 0x14015e558
lea rcx, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
call fcn.14006aad0
mov eax, 3
jmp 0x14015e387
test r11w, 0x406
jne 0x14015e6a0
cmp al, 0x5c
jne 0x14015e4a2
cmp word [rsp + 0x46], 0
mov eax, 2
jne 0x14015e4a7
jmp 0x14015e4a2
lea rcx, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
call fcn.14006aad0
mov eax, 3
jmp 0x14015e4a7
test r11w, 0x406
jne 0x14015e6e8
cmp al, 0x5c
jne 0x14015dee9
cmp word [rsp + 0x46], 0
mov eax, 2
je 0x14015dee9
add ebx, eax
jmp 0x14015de05
lea rcx, [rsp + 0x75]
lea r8, [0x1402b957b]
mov edx, 0xb
call fcn.14006aad0
mov eax, 3
add ebx, eax
jmp 0x14015de05