Function at 0x180016250
Capabilities:
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov dword [rax + 0x20], r9d
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xab8]
sub rsp, 0xb90
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov r13d, r9d
mov r12, rdx
mov r14, rcx
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x48], 0
mov qword [rbp - 0x40], 0xf
mov byte [rbp - 0x58], 0
mov ecx, r9d
mov dword [rsp + 0x50], ecx
imul eax, r9d, 0x8c9
mov dword [rbp - 0x80], eax
lea r8, [0x180000000]
movzx r11d, byte [rbp + 0xad8]
movzx edx, byte [rbp + 0xad8]
mov byte [rsp + 0x41], r11b
mov byte [rsp + 0x40], dl
cmp r9d, eax
mov rax, qword [rsp + 0x68]
mov r9, qword [rsp + 0x68]
mov qword [rsp + 0x58], r9
ja 0x180016942
mov r15, qword [rbp + 0xae0]
movsd xmm7, qword [0x1800655e0]
xorps xmm8, xmm8
movsd xmm9, qword [0x1800655a0]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x68]
mov qword [rbp - 0x70], rax
mov rax, qword [rsp + 0x68]
mov qword [rbp - 0x78], rax
movsd xmm6, qword [rsp + 0x68]
mov r13d, dword [rbp + 0xad8]
mov rsi, qword [rsp + 0x68]
mov edi, dword [rbp + 0xad8]
cmp ecx, 0x5034
ja 0x1800165c6
je 0x1800163c7
cmp ecx, 0xa7
ja 0x18001646a
je 0x180016460
mov eax, ecx
sub eax, 0x53
je 0x180016412
sub eax, 0x23
je 0x1800163fc
cmp eax, 0xd
jne 0x1800163c7
xor eax, eax
mov qword [rbp - 0x78], rax
mov r9, r14
cmp qword [r14 + 0x18], 0x10
jb 0x180016398
mov r9, qword [r14]
mov eax, dword [r14 + 0x10]
mov dword [rsp + 0x60], eax
lea r8, [rsp + 0x60]
mov edx, 0xf0
lea rcx, [rbp + 0x10]
call fcn.180027fc0
mov ecx, dword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
movzx edx, byte [rsp + 0x40]
movzx r11d, byte [rsp + 0x41]
mov r10, qword [rsp + 0x48]
imul eax, dword [rbp + 0xad8], 0xad
add ecx, eax
mov dword [rsp + 0x50], ecx
lea r8, [0x180000000]
cmp ecx, dword [rbp - 0x80]
jbe 0x180016350
mov r13d, dword [rbp + 0xad8]
mov rdi, qword [rbp - 0x78]
jmp 0x180016959
mov r8d, 0x141
lea rdx, [0x18007c7e0]
xor ecx, ecx
call fcn.180031cd0
jmp 0x1800163b3
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r10, rax
mov qword [rsp + 0x48], rax
mov ecx, dword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
movzx edx, byte [rsp + 0x40]
movzx r11d, byte [rsp + 0x41]
jmp 0x1800163cc
mov qword [rsp + 0x68], r12
jmp 0x1800163c7
cmp ecx, 0xba
je 0x18001648f
cmp ecx, 0x386a
jne 0x1800163c7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0x124], eax
jmp 0x1800163b3
xor edx, edx
mov ecx, 0xea
call fcn.18000ac80
test al, al
jne 0x1800163b3
mov ebx, 0x33
nop dword [rax + rax]
mov eax, ebx
sub eax, 0x33
je 0x1800165a7
cmp eax, 1
jne 0x1800165b6
lea r9, [rbp - 8]
xor r8d, r8d
xor edx, edx
mov ecx, 0x111
call fcn.18000b0b0
test al, al
jne 0x1800165b6
mov byte [rsp + 0x78], al
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x18001651e
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016519
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180016c93
call fcn.180040b40
mov qword [rbp - 0x48], 0
mov qword [rbp - 0x40], 0xf
mov byte [rbp - 0x58], 0
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x18001656d
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016568
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180016c8d
call fcn.180040b40
mov rax, qword [rsp + 0x78]
lea r11, [rsp + 0xb90]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rax, [0x18000a340]
mov qword [rbp - 8], rax
mov qword [rbp], r12
inc ebx
cmp ebx, 0x35
jb 0x1800164b0
jmp 0x1800163b3
cmp ecx, 0xb191
ja 0x1800168d9
je 0x1800168be
cmp ecx, 0x590a
je 0x1800168ae
cmp ecx, 0x7182
je 0x18001661d
cmp ecx, 0x7e6c
jne 0x1800163c7
mov ebx, 0x93
nop dword [rax]
cmp ebx, 0x93
je 0x18001690e
cmp ebx, 0x11e
je case.0x1800169a3.80
jmp 0x18001692b
movsd xmm0, qword [r14]
ucomisd xmm0, xmm8
jp 0x180016645
jne 0x180016645
mov byte [r12], 0x30
inc r12
mov rax, r12
sub rax, qword [rsp + 0x68]
mov qword [rsp + 0x78], rax
jmp 0x1800163c7
mov ebx, 5
mov dword [rsp + 0x60], ebx
mov edx, 6
mov qword [rbp - 0x60], rdx
cmp ebx, 5
ja case.default.0x18001666d
mov eax, ebx
mov ecx, dword [r8 + rax*4 + 0x16c9c]
add rcx, r8
jmp rcx
mov eax, r13d
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
movsd xmm1, qword [r14]
subsd xmm1, xmm0
movsd qword [r14], xmm1
jmp case.default.0x18001666d
cvttsd2si r13, qword [r14]
mov rax, qword [r15]
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x60], 0xa
mov dword [rsp + 0x70], r13d
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0xae
lea r8, [rsp + 0x70]
mov rdx, r12
lea rcx, [rsp + 0x78]
call fcn.18001b570
mov rsi, rax
jmp 0x180016869
comisd xmm8, xmmword [r14]
jbe case.default.0x18001666d
mov eax, 0x29
cmp eax, 0x29
je 0x1800166ff
cmp eax, 0x161a
jne 0x180016707
dec qword [r15]
movsd xmm0, qword [r14]
xorps xmm0, xmm7
movsd qword [r14], xmm0
jmp 0x180016707
mov byte [r12], 0x2d
inc r12
add eax, 0x15f1
cmp eax, 0x2be2
jbe 0x1800166e1
jmp case.default.0x18001666d
add r12, rsi
sub qword [r15], rsi
jmp case.default.0x18001666d
movaps xmm6, xmm9
jmp case.default.0x18001666d
movsd xmm0, qword [r14]
comisd xmm0, xmm6
jbe case.default.0x18001666d
cmp qword [r15], 0
je case.default.0x18001666d
mov eax, 0x80
mov dword [rsp + 0x70], eax
nop
sub eax, 0x80
je 0x180016843
cmp eax, 1
jne 0x180016850
movsd xmm0, qword [r14]
comisd xmm0, xmm6
jbe 0x180016850
cmp qword [r15], 0
je 0x180016850
mov ebx, 0x85
cmp ebx, 0x85
je 0x1800167d8
cmp ebx, 0x315b
je 0x1800167d3
cmp ebx, 0x6231
je 0x1800167a9
cmp ebx, 0x9307
jne 0x180016820
lea edi, [rdi + rdi*4]
add edi, edi
jmp 0x180016820
sub qword [r15], rsi
mov eax, r13d
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movd xmm0, edi
cvtdq2pd xmm0, xmm0
divsd xmm2, xmm0
movsd xmm1, qword [r14]
subsd xmm1, xmm2
movsd qword [r14], xmm1
jmp 0x180016820
add r12, rsi
jmp 0x180016820
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [r14]
cvttsd2si r13, xmm0
mov rax, qword [r15]
mov qword [rbp - 0x30], rax
mov dword [rbp - 0x68], 0xa
mov dword [rsp + 0x78], r13d
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0xae
lea r8, [rsp + 0x78]
mov rdx, r12
lea rcx, [rbp - 0x30]
call fcn.18001b570
mov rsi, rax
add ebx, 0x30d6
cmp ebx, 0xc358
jbe 0x180016782
movsd xmm0, qword [r14]
comisd xmm0, xmm6
ja 0x180016773
jmp 0x180016850
mov edi, 0xa
mov byte [r12], 0x2e
inc r12
mov eax, dword [rsp + 0x70]
inc eax
mov dword [rsp + 0x70], eax
cmp eax, 0x82
jb 0x180016750
mov ebx, dword [rsp + 0x60]
lea r8, [0x180000000]
mov rdx, qword [rbp - 0x60]
dec ebx
mov dword [rsp + 0x60], ebx
sub rdx, 1
mov qword [rbp - 0x60], rdx
jne 0x180016657
mov ecx, dword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
movzx edx, byte [rsp + 0x40]
movzx r11d, byte [rsp + 0x41]
mov rax, r12
sub rax, qword [rsp + 0x68]
mov qword [rsp + 0x78], rax
jmp 0x1800163c7
movzx edx, byte [rbp + 0x110]
mov byte [rsp + 0x40], dl
jmp 0x1800163c7
movzx r11d, byte [rbp + 0x111]
mov byte [rsp + 0x41], r11b
lea r9, [rbp + 0x10]
mov qword [rsp + 0x58], r9
jmp 0x1800163c7
cmp ecx, 0xe25d
je case.0x1800169a3.80
cmp ecx, 0x10a18
jne 0x1800163c7
mov qword [rbp - 0x70], r12
cmp qword [r12 + 0x18], 0x10
jb 0x1800163c7
mov rax, qword [r12]
mov qword [rbp - 0x70], rax
jmp 0x1800163c7
lea r8, [r12 + 0x48]
mov dword [rsp + 0x20], 0x38
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call fcn.18001c940
mov byte [rsp + 0x78], al
add ebx, 0x8b
cmp ebx, 0x1a9
jb 0x180016600
jmp case.0x1800169a3.80
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0x48], r10
mov qword [rbp - 0x70], rax
mov rdi, qword [rsp + 0x68]
mov qword [rbp - 0x78], rdi
lea r15d, [r13 - 0xd]
mov dword [rbp + 0xad8], r15d
cmp r13d, r15d
jbe case.0x1800169a3.80
mov ebx, dword [rbp + 0xad8]
movzx r14d, byte [rbp + 0xad8]
movzx esi, byte [rbp + 0xad8]
lea eax, [r13 - 0x50]
cmp eax, 0x33
ja case.0x1800169a3.85
movzx eax, byte [r8 + rax + 0x16ce4]
mov ecx, dword [r8 + rax*4 + 0x16cb4]
add rcx, r8
jmp rcx
cmp r10, 0xffffffffffffffff
je case.0x1800169a3.85
mov edi, 0x50
mov eax, edi
sub eax, 0x4e
je 0x180016a49
sub eax, 1
je 0x180016a13
cmp eax, 1
jne 0x180016a52
nop dword [rax]
mov edi, 0x12
cmp edi, 0x12
je 0x180016a1e
cmp edi, 0x1e
je 0x180016a0a
cmp edi, 0x2a
jne 0x180016a3f
mov qword [rsp + 0x20], 0
lea r9, [rbp - 0x38]
mov r8d, dword [rbp + 0x120]
lea rdx, [rbp + 0x124]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x180016a3a
cmp dword [rbp + 0x120], 0
jne 0x180016a3f
mov edi, 0x4f
lea r13d, [rdi + 3]
jmp 0x180016a52
xor r9d, r9d
mov r8, r12
lea edx, [r9 + 0x61]
lea rcx, [rbp + 0x120]
call fcn.180014ba0
mov ebx, eax
test eax, eax
jne 0x180016a13
mov r10, qword [rsp + 0x48]
add edi, 0xc
cmp edi, 0x36
jb 0x1800169d5
jmp 0x1800169d0
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_CloseHandle]
dec edi
cmp edi, 0x4d
mov r10, qword [rsp + 0x48]
ja 0x1800169b4
jmp 0x180016c61
mov dword [rbp + 0x120], 4
xor r9d, r9d
lea r8, [rbp + 0x120]
mov edx, 0xc2
mov rcx, r12
call fcn.1800342b0
mov rbx, rax
jmp 0x180016c5c
lea r8, [rbp - 0x58]
xor edx, edx
lea ecx, [rdx + 0x2b]
call fcn.180007770
test al, al
jne 0x180016c5c
xor edx, edx
lea r8, [0x180000000]
nop
cmp edx, 5
ja case.0x180016ac0.0
mov ecx, dword [r8 + rdx*4 + 0x16d18]
add rcx, r8
jmp rcx
inc edx
lea eax, [rdx + 0x10c]
cmp eax, 0x112
jb 0x180016ab0
jmp 0x180016c5c
mov dword [rsp + 0x78], ebx
jmp case.0x1800169a3.85
cmp rdi, qword [r12 + 0x10]
jae 0x180016baf
movzx r15d, byte [rsp + 0x40]
mov r10, qword [rbp - 0x70]
nop dword [rax]
nop dword [rax + rax]
mov r8d, 0xc4
cmp r8d, 0xc4
je 0x180016b6a
cmp r8d, 0x62c4
je 0x180016b52
cmp r8d, 0xc4c4
je 0x180016b3c
cmp r8d, 0x126c4
jne 0x180016b75
movzx eax, sil
movzx ecx, byte [rax + r9]
xor byte [rdi + r10], cl
inc rdi
jmp 0x180016b75
movzx eax, r11b
mov byte [rax + r9], r14b
movzx eax, r15b
movzx esi, byte [rax + r9]
add sil, r14b
jmp 0x180016b75
movzx edx, r15b
movzx r14d, byte [rdx + r9]
movzx eax, r11b
movzx ecx, byte [rax + r9]
mov byte [rdx + r9], cl
jmp 0x180016b75
inc r15b
movzx eax, r15b
add r11b, byte [rax + r9]
add r8d, 0x6200
cmp r8d, 0x18800
jbe 0x180016b06
mov qword [rbp - 0x78], rdi
mov byte [rsp + 0x41], r11b
mov byte [rsp + 0x40], r15b
cmp rdi, qword [r12 + 0x10]
jb 0x180016b00
mov r15d, dword [rbp + 0xad8]
movzx edx, byte [rsp + 0x40]
mov r10, qword [rsp + 0x48]
mov byte [rbp + 0x110], dl
jmp case.0x1800169a3.85
movsd xmm0, qword [0x18007c888]
mulsd xmm0, qword [0x1800655c0]
addsd xmm0, qword [0x1800655b0]
cvttsd2si rax, xmm0
mov dword [rbp - 0x80], eax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
mov r9d, 0xb9
lea r8, [0x18007c808]
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x80]
call fcn.18003a350
jmp 0x180016c5c
mov r9d, 0x39
xor r8d, r8d
lea rdx, [rbp - 0x28]
xor ecx, ecx
call fcn.18003d000
test al, al
jne 0x180016c5c
xor edx, edx
lea r8, [0x180000000]
cmp edx, 5
ja case.0x180016c30.0
mov ecx, dword [r8 + rdx*4 + 0x16d30]
add rcx, r8
jmp rcx
inc edx
lea eax, [rdx + 0xb7]
cmp eax, 0xbd
jb 0x180016c20
jmp 0x180016c5c
mov byte [rbp + 0x111], r11b
jmp case.0x1800169a3.85
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [r9 + 0x1a]
call fcn.1800366a0
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x58]
movzx edx, byte [rsp + 0x40]
movzx r11d, byte [rsp + 0x41]
dec r13d
cmp r13d, r15d
jbe case.0x1800169a3.80
mov rdi, qword [rbp - 0x78]
lea r8, [0x180000000]
jmp 0x180016982
call fcn.180046e04
nop
call fcn.180046e04
int3