Function at 0x140024700
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov rbx, rdx
mov r12, rcx
lea rax, vtable.SFile.0
mov qword [rbp - 0x21], rax
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp - 0x11], rax
xor edi, edi
mov qword [rbp - 0x19], rdi
mov rbx, qword [rbx]
lea edx, [rdi + 1]
lea ecx, [rdi + 0xa]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov rdx, 0xffffffffffffffff
nop dword [rax + rax]
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x140024770
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rcx, qword [rbp + 0x77]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdx, rbx
call fcn.1402d15b0
lea rdx, [rbp + 0x77]
lea rcx, [rbp + 0x7f]
call fcn.14001da90
mov rbx, rax
mov rcx, qword [rax]
mov edx, dword [rcx - 8]
lea rcx, [rbp - 0x11]
call fcn.14001e440
mov rdx, qword [rbx]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov r13, qword [rbp - 0x11]
mov rcx, r13
call fcn.1402d15b0
mov rax, qword [rbp + 0x7f]
test rax, rax
je 0x1400247e4
lea rcx, [rax - 8]
call fcn.1402d83b4
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
mov qword [rbp - 0x19], rax
cmp rax, 0xffffffffffffffff
jne 0x140024827
mov r14, rdi
mov qword [rbp - 0x19], rdi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x77]
mov r8d, 2
lea rdx, [0x140472094]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
mov qword [rbp - 0x31], rdi
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
lea rdi, [rax + 8]
mov qword [rbp - 0x49], rdi
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 2
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rcx, qword [rbp + 0x77]
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, [0x140472098]
call fcn.1402d15b0
nop
lea r8, [rbp + 0x77]
xor edx, edx
lea rcx, [rbp - 0x41]
call fcn.140027c10
nop
mov rax, qword [rbp + 0x77]
test rax, rax
je 0x1400248ca
lea rcx, [rax - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 2
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rbx, qword [rbp + 0x77]
mov eax, dword [rbx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, [0x1404720a0]
mov rcx, rbx
call fcn.1402d15b0
nop
mov r15, qword [rbp - 0x39]
mov rsi, qword [rbp - 0x31]
cmp r15, rsi
je 0x14002495e
mov qword [r15], 0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [r15], rax
mov edx, dword [rbx - 8]
mov rcx, r15
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [r15]
call fcn.1402d15b0
add r15, 8
mov qword [rbp - 0x39], r15
jmp 0x14002497a
lea r8, [rbp + 0x77]
mov rdx, r15
lea rcx, [rbp - 0x41]
call fcn.140027c10
mov rsi, qword [rbp - 0x31]
mov r15, qword [rbp - 0x39]
mov rbx, qword [rbp + 0x77]
test rbx, rbx
je 0x140024988
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 2
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rbx, qword [rbp + 0x77]
mov eax, dword [rbx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, [0x1404720a8]
mov rcx, rbx
call fcn.1402d15b0
nop
cmp r15, rsi
je 0x140024a14
mov qword [r15], 0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [r15], rax
mov edx, dword [rbx - 8]
mov rcx, r15
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [r15]
call fcn.1402d15b0
add r15, 8
mov qword [rbp - 0x39], r15
jmp 0x140024a30
lea r8, [rbp + 0x77]
mov rdx, r15
lea rcx, [rbp - 0x41]
call fcn.140027c10
mov rsi, qword [rbp - 0x31]
mov r15, qword [rbp - 0x39]
mov rbx, qword [rbp + 0x77]
test rbx, rbx
je 0x140024a3e
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 2
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rbx, qword [rbp + 0x77]
mov eax, dword [rbx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, [0x1404720b0]
mov rcx, rbx
call fcn.1402d15b0
nop
cmp r15, rsi
je 0x140024aca
mov qword [r15], 0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [r15], rax
mov edx, dword [rbx - 8]
mov rcx, r15
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [r15]
call fcn.1402d15b0
add r15, 8
mov qword [rbp - 0x39], r15
jmp 0x140024ae6
lea r8, [rbp + 0x77]
mov rdx, r15
lea rcx, [rbp - 0x41]
call fcn.140027c10
mov rsi, qword [rbp - 0x31]
mov r15, qword [rbp - 0x39]
mov rbx, qword [rbp + 0x77]
test rbx, rbx
je 0x140024af4
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 3
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rbx, qword [rbp + 0x77]
mov eax, dword [rbx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, str._aY_u1
mov rcx, rbx
call fcn.1402d15b0
nop
cmp r15, rsi
je 0x140024b80
mov qword [r15], 0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [r15], rax
mov edx, dword [rbx - 8]
mov rcx, r15
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [r15]
call fcn.1402d15b0
add r15, 8
mov qword [rbp - 0x39], r15
jmp 0x140024b9c
lea r8, [rbp + 0x77]
mov rdx, r15
lea rcx, [rbp - 0x41]
call fcn.140027c10
mov rsi, qword [rbp - 0x31]
mov r15, qword [rbp - 0x39]
mov rbx, qword [rbp + 0x77]
test rbx, rbx
je 0x140024baa
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 3
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rbx, qword [rbp + 0x77]
mov eax, dword [rbx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, str._aY_u2
mov rcx, rbx
call fcn.1402d15b0
nop
cmp r15, rsi
je 0x140024c36
mov qword [r15], 0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [r15], rax
mov edx, dword [rbx - 8]
mov rcx, r15
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [r15]
call fcn.1402d15b0
add r15, 8
mov qword [rbp - 0x39], r15
jmp 0x140024c52
lea r8, [rbp + 0x77]
mov rdx, r15
lea rcx, [rbp - 0x41]
call fcn.140027c10
mov rsi, qword [rbp - 0x31]
mov r15, qword [rbp - 0x39]
mov rbx, qword [rbp + 0x77]
test rbx, rbx
je 0x140024c60
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 3
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rbx, qword [rbp + 0x77]
mov eax, dword [rbx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, str._aY_u3
mov rcx, rbx
call fcn.1402d15b0
nop
cmp r15, rsi
je 0x140024cec
mov qword [r15], 0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [r15], rax
mov edx, dword [rbx - 8]
mov rcx, r15
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [r15]
call fcn.1402d15b0
add r15, 8
mov qword [rbp - 0x39], r15
jmp 0x140024d08
lea r8, [rbp + 0x77]
mov rdx, r15
lea rcx, [rbp - 0x41]
call fcn.140027c10
mov rsi, qword [rbp - 0x31]
mov r15, qword [rbp - 0x39]
mov rbx, qword [rbp + 0x77]
test rbx, rbx
je 0x140024d16
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov qword [rbp + 0x77], rax
mov edx, 4
lea rcx, [rbp + 0x77]
call fcn.14001e440
mov rbx, qword [rbp + 0x77]
mov eax, dword [rbx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
lea rdx, [0x1404720d0]
mov rcx, rbx
call fcn.1402d15b0
nop
cmp r15, rsi
je 0x140024d9a
xor esi, esi
mov qword [r15], rsi
lea edx, [rsi + 1]
lea ecx, [rsi + 0xa]
call fcn.1402deebc
add rax, 8
mov qword [r15], rax
mov edx, dword [rbx - 8]
mov rcx, r15
call fcn.14001e440
mov eax, dword [rbx - 8]
add eax, eax
movsxd r8, eax
mov rdx, rbx
mov rcx, qword [r15]
call fcn.1402d15b0
add r15, 8
jmp 0x140024db4
lea r8, [rbp + 0x77]
mov rdx, r15
lea rcx, [rbp - 0x41]
call fcn.140027c10
mov r15, qword [rbp - 0x39]
mov rbx, qword [rbp + 0x77]
xor esi, esi
mov qword [rbp - 0x29], r15
test rbx, rbx
je 0x140024dc6
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov dword [rbp + 0x77], esi
mov rbx, qword [rbp - 0x41]
cmp dword [r12], 0
jbe 0x140025166
mov r13, rsi
mov r15, qword [rbp + 0x67]
nop
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x67]
mov r8d, 6
lea rdx, [0x1404720dc]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r12, rbx
xor ebx, ebx
xor edx, edx
lea rcx, [rbp - 0x49]
call fcn.14001e440
cmp esi, 7
ja case.default.0x140024e2c
movsxd rax, esi
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x25254]
add rcx, rdx
jmp rcx
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13 + 8]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13 + 8]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13 + 0x20]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13 + 0x20]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13 + 0x28]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13 + 0x28]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13 + 0x30]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13 + 0x30]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13 + 0x10]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13 + 0x10]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13 + 0x18]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13 + 0x18]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13 + 0x38]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13 + 0x38]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
mov rbx, qword [r15 + 8]
mov rax, qword [rbx + r13]
mov edx, dword [rax - 8]
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdx, qword [rbx + r13]
mov eax, dword [rdx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
mov rdi, qword [rbp - 0x49]
mov rcx, rdi
call fcn.1402d15b0
xor ebx, ebx
jmp 0x140025002
xor edx, edx
lea rcx, [rbp - 0x49]
call fcn.14001e440
mov rdi, qword [rbp - 0x49]
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x7f]
mov r8d, 8
lea rdx, [0x1404720e8]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, qword [r12]
call fcn.14001f7c0
mov rcx, rax
call fcn.140023140
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140025040
test r8d, r8d
je 0x140025064
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 9]
mov rdx, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 5]
mov r8d, 2
lea rdx, [0x140471e00]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rdi
call fcn.14001f7c0
mov rcx, rax
call fcn.140023140
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1400250a0
test r8d, r8d
je 0x1400250c4
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 1]
mov rdx, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov qword [rsp + 0x20], rbx
mov rcx, r14
cmp esi, 7
jae 0x1400250e4
lea r9, [rbp + 3]
mov r8d, 3
lea rdx, [0x1404720f4]
jmp 0x1400250f5
lea r9, [rbp + 7]
mov r8d, 1
lea rdx, [0x1404720f8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
inc esi
add r12, 8
cmp esi, 8
jl 0x140024e04
mov eax, dword [r15]
dec eax
mov ebx, dword [rbp + 0x77]
xor esi, esi
mov rcx, r14
mov qword [rsp + 0x20], rsi
cmp ebx, eax
jae 0x140025131
lea r9, [rbp + 0xb]
lea r8d, [rsi + 8]
lea rdx, str._______n
jmp 0x140025142
lea r9, [rbp + 0xf]
mov r8d, 6
lea rdx, str._____n
call qword [sym.imp.KERNEL32.dll_WriteFile]
inc ebx
mov dword [rbp + 0x77], ebx
add r13, 0x48
cmp ebx, dword [r15]
mov rbx, qword [rbp - 0x41]
jb 0x140024de0
mov r15, qword [rbp - 0x29]
mov r13, qword [rbp - 0x11]
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x67]
mov r8d, 1
lea rdx, [0x140472114]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
test r14, r14
je 0x140025196
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, rsi
test rdi, rdi
je 0x1400251a5
lea rcx, [rdi - 8]
call fcn.1402d83b4
nop
test rbx, rbx
je 0x140025208
cmp rbx, r15
je 0x1400251ca
nop
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400251c1
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
add rbx, 8
cmp rbx, r15
jne 0x1400251b0
mov rax, qword [rbp - 0x31]
mov rcx, qword [rbp - 0x41]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140025202
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002524e
call fcn.140048eac
nop
test r14, r14
je 0x140025216
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r13, r13
je 0x140025225
lea rcx, [r13 - 8]
call fcn.1402d83b4
nop
mov rcx, qword [rbp + 0x6f]
mov rcx, qword [rcx]
test rcx, rcx
je 0x14002523a
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1402d6908
nop
add r8b, byte cs:[rax]
push -1577057714
add r8b, byte [rax]
fmul qword [rsi + 2]
add byte [rsi], dl
add r8b, byte [r8]
push rax
add r8b, byte [r8]
xchg dword [rdi + 2], ecx
add byte [rsi - 872414641], bh
int3