Function at 0x416710
Capabilities:
Write file on windows

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x188
mov rsi, qword [0x004471c0]
mov rbx, qword [rsi]
mov edx, dword [rbx + 0x7c]
test edx, edx
je 0x4169d0
lea rcx, [rsp + 0x30]
call sym.memory_get_current_pc
mov rax, qword [rsi]
lea rdx, str.First_chance_exception
lea rcx, str._s:
mov eax, dword [rax + 0x80]
test eax, eax
lea rax, str.Unhandled_exception
cmove rdx, rax
call sym.dbg_printf
mov edx, dword [rbx + 0x88]
cmp edx, 0xc0000096
ja 0x4168d0
cmp edx, 0xc000008b
ja 0x416800
cmp edx, 0x80000100
je 0x416be0
jbe 0x416820
cmp edx, 0xc0000005
je 0x416a58
cmp edx, 0xc000001d
jne 0x4168ab
lea rcx, str.illegal_instruction
call sym.dbg_printf
nop dword [rax + rax]
test byte [rbx + 0x8c], 8
jne 0x416998
mov eax, dword [rsp + 0x3c]
cmp eax, 2
je 0x4169b1
ja 0x416850
test eax, eax
je 0x4169f0
movzx edx, word [rsp + 0x38]
mov r8d, dword [rsp + 0x30]
lea rcx, str._in_segmented_32_bit_code___04x:_08x_
call sym.dbg_printf
jmp 0x416891
add edx, 0x3fffff73
cmp edx, 9
ja case.default.0x41681d
lea rcx, [0x0043c5f0]
movsxd rax, dword [rcx + rdx*4]
add rax, rcx
jmp rax
cmp edx, 0x80000003
je 0x416cc0
jbe 0x416940
cmp edx, 0x80000004
jne 0x416ca8
lea rcx, str.single_step
call sym.dbg_printf
jmp 0x4167c0
cmp eax, 3
jne 0x416a10
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x80]
xor r8d, r8d
call sym.memory_offset_to_string
lea rcx, str._in__ld_bit_code___s_
mov r8, rax
mov rax, qword [0x004471b0]
mov rax, qword [rax]
mov rax, qword [rax + 0x58]
mov edx, dword [rax + 4]
shl edx, 3
call sym.dbg_printf
lea rcx, [0x0043c5eb]
call sym.dbg_printf
nop
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop r12
ret
cmp edx, 0x80000101
jne 0x416ca8
lea rcx, str.assertion_failed
call sym.dbg_printf
jmp 0x4167c0
cmp edx, 0xc0000194
je 0x416c68
jbe 0x416968
cmp edx, 0xe06d7363
jne 0x416ca8
mov edx, dword [rbx + 0xa0]
mov r9, qword [rbx + 0xa8]
cmp edx, 3
je 0x416b89
cmp edx, 4
je 0x416d21
mov rax, qword [0x004471b0]
mov rax, qword [rax]
mov r8d, 0x10
test rax, rax
je 0x41692d
mov rax, qword [rax + 0x58]
mov r8d, dword [rax + 4]
add r8d, r8d
lea rcx, str.C_exception_with_strange_parameter_count__ld_or_magic_0x_0Ix
call sym.dbg_printf
jmp 0x4167c0
cmp edx, 0x40010005
je 0x416980
cmp edx, 0x80000002
jne 0x416ca8
lea rcx, str.Alignment
call sym.dbg_printf
jmp 0x4167c0
cmp edx, 0xc00000fd
je 0x416a40
cmp edx, 0xc000013a
jne 0x416ca8
lea rcx, [0x0043c3a8]
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.__invalid_program_stack
call sym.dbg_printf
mov eax, dword [rsp + 0x3c]
cmp eax, 2
jne 0x4167da
movzx edx, word [rsp + 0x38]
mov r8d, dword [rsp + 0x30]
lea rcx, str._in_vm86_code___04x:_04x_
call sym.dbg_printf
jmp 0x416891
lea rcx, str.Thread_isnt_in_an_exception_n
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop r12
jmp sym.dbg_printf
movzx edx, word [rsp + 0x38]
mov r8d, dword [rsp + 0x30]
lea rcx, str._in_16_bit_code___04x:_04x_
call sym.dbg_printf
jmp 0x416891
lea rcx, str._bad_address
call sym.dbg_printf
jmp 0x416891
lea rcx, str.divide_by_zero
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.stack_overflow
call sym.dbg_printf
jmp 0x4167c0
cmp dword [rbx + 0xa0], 2
jne 0x416d10
mov rax, qword [0x004471b0]
mov r9, qword [rbx + 0xb0]
mov r8d, 0x10
mov rax, qword [rax]
test rax, rax
je 0x416a8c
mov rax, qword [rax + 0x58]
mov r8d, dword [rax + 4]
add r8d, r8d
mov rax, qword [rbx + 0xa8]
lea rdx, str.write
cmp rax, 1
je 0x416ab6
cmp rax, 8
lea rdx, str.execute
lea rax, str.read
cmovne rdx, rax
lea rcx, str.page_fault_on__s_access_to_0x_0Ix
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.floating_point_overflow
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.floating_point_stack_check
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.inexact_float_result
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.denormal_float_operand
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.overflow
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.privileged_instruction
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.floating_point_underflow
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.invalid_float_operation
call sym.dbg_printf
jmp 0x4167c0
mov rax, qword [0x004471b0]
mov rax, qword [rax]
cmp r9, 0x19930520
jne 0x416917
mov rcx, qword [rbx + 0xb8]
mov edx, 0x10
test rax, rax
je 0x416bba
mov rax, qword [rax + 0x58]
mov edx, dword [rax + 4]
add edx, edx
mov r8, qword [rbx + 0xb0]
mov qword [rsp + 0x20], rcx
mov r9d, edx
lea rcx, str.C_exception_object__0x_0Ix__type__0x_0Ix_
call sym.dbg_printf
jmp 0x4167c0
mov rdi, qword [0x004471b0]
lea r12, [rsp + 0x40]
mov rdx, qword [rbx + 0xa8]
mov dword [rsp + 0x28], 0x40
mov qword [rsp + 0x20], r12
xor r9d, r9d
mov r8d, 1
mov rcx, qword [rdi]
call sym.memory_get_string
mov rdx, qword [rbx + 0xb0]
test edx, 0xffff0000
je 0x416cf0
lea rsi, [rsp + 0x80]
xor r9d, r9d
mov dword [rsp + 0x28], 0x100
mov r8d, 1
mov qword [rsp + 0x20], rsi
mov rcx, qword [rdi]
call sym.memory_get_string
mov r8, rsi
mov rdx, r12
lea rcx, str.unimplemented_function__s._s_called
call sym.dbg_printf
jmp 0x4167c0
mov dword [rsp + 0x8c], 3
mov rax, qword [rbx + 0xa8]
lea rcx, str.wait_failed_on_critical_section
mov qword [rsp + 0x80], rax
call sym.dbg_printf
lea rcx, [rsp + 0x80]
xor edx, edx
call sym.print_address
jmp 0x4167c0
lea rcx, str.0x_08lx
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.breakpoint
call sym.dbg_printf
jmp 0x4167c0
lea rcx, str.array_bounds
call sym.dbg_printf
jmp 0x4167c0
lea rsi, [rsp + 0x80]
mov r8, rdx
lea rdx, [0x0043bbd4]
mov rcx, rsi
call sym.sprintf.constprop.0
jmp 0x416c4a
lea rcx, str.page_fault
call sym.dbg_printf
jmp 0x4167c0
cmp r9, 0x19930520
jne 0x41690d
mov rdx, qword [rbx + 0xb0]
mov r9, qword [rbx + 0xc0]
lea rcx, str.C_exception_object___p__type___p__base___p_
mov r8, qword [rbx + 0xb8]
call sym.dbg_printf
jmp 0x4167c0