Function at 0x140011050
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
mov rax, qword [0x140116008]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov eax, dword [0x1409640cc]
xor edi, edi
lea r13d, [rdi + 1]
test eax, eax
je 0x1400110c3
cmp eax, 0xd
je 0x1400110cc
cmp word [0x1401186e0], di
je 0x1400110c3
call fcn.140009a00
sub ax, word [0x1401186e0]
cmp ax, 5
jbe case.default.0x1400110ed
mov eax, dword [0x1409640cc]
mov word [0x1401186e0], di
cmp eax, 0xd
ja case.default.0x1400110ed
lea r12, [0x140000000]
cdqe
lea rbx, [0x140963a00]
mov r15d, 2
mov ecx, dword [r12 + rax*4 + 0x12144]
add rcx, r12
jmp rcx
lea rcx, str.Wait_for_device
call fcn.14000f7d0
xor r8d, r8d
mov dword [rbp - 0x79], edi
lea rdx, [rbp - 0x79]
mov qword [rbp - 0x71], rdi
lea rcx, [rbp - 0x71]
call fcn.140012890
test eax, eax
js 0x140011178
mov rsi, qword [rbp - 0x71]
mov r10d, edi
mov r11d, dword [rbp - 0x79]
mov r9, rsi
test r11d, r11d
jle 0x14001116b
lea r14, [0x14096403a]
cmp word [r9 + 2], r15w
ja 0x14001115c
lea rax, [r9 + 8]
mov r8, r14
sub r8, rax
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140011154
inc rax
test ecx, ecx
jne 0x140011141
test edx, edx
je 0x1400111e5
inc r10d
add r9, 0x5b0
cmp r10d, r11d
jl 0x140011130
test rsi, rsi
je 0x140011178
mov rcx, rsi
call fcn.140052f7c
call fcn.140009a00
cmp dword [0x1409640dc], eax
jns case.default.0x1400110ed
lea rax, str.device_not_present
cmp edi, 0x100
jae 0x1400111a2
inc rax
inc edi
cmp byte [rax], 0
jne 0x140011190
lea eax, [rdi + 1]
cmp eax, 0x100
jbe 0x1400112ec
lea r9, str.ymemory
mov dword [rsp + 0x20], 0x14c
lea r8, str.YPANIC:_s:_d_n
mov edx, 0x14c
lea rcx, str.ymemory
call fcn.14000a9a0
xor eax, eax
mov byte [0x1409640f2], 0
jmp 0x140011329
mov rcx, rbx
mov rdx, r9
mov r8d, 0x5b0
call fcn.140050fe0
mov rcx, rsi
call fcn.140052f7c
lea rcx, str.Device_detected
mov word [0x1409640c8], r15w
call fcn.14000f7d0
mov dword [0x1409640cc], r13d
lea rcx, [0x140963a38]
call fcn.14000b890
lea rcx, [0x140963b80]
call fcn.14000b890
xor eax, eax
mov qword [0x140963ec8], rbx
xor r9d, r9d
mov qword [0x140963ed0], rax
xor r8d, r8d
mov qword [0x140963ed8], rax
xor edx, edx
mov qword [0x140963ee0], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
lea r9, [0x140963ec8]
mov qword [rsp + 0x28], rdi
lea r8, [0x1400137a0]
mov qword [0x140963ed0], rax
xor edx, edx
mov dword [rsp + 0x20], edi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, qword [0x140963ed0]
mov qword [0x140963ee0], rax
test rax, rax
jne 0x1400112f5
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rax, str.Unable_to_open_connection_to_the_device
cmp edi, 0x100
jae 0x1400112b9
inc rax
inc edi
cmp byte [rax], 0
jne 0x1400112a7
lea eax, [rdi + 1]
cmp eax, 0x100
ja 0x1400111b0
lea rdx, str.Unable_to_open_connection_to_the_device
mov r8d, edi
lea rcx, [0x1409640f2]
mov ebx, edi
call fcn.140050fe0
xor eax, eax
mov byte [rbx + r12 + 0x9640f2], 0
jmp 0x140011329
lea rdx, str.device_not_present
jmp 0x1400112ce
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x140963ed0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.Device_connected
call fcn.14000f7d0
mov dword [0x1409640cc], r15d
mov dword [0x1409640e8], edi
mov eax, r13d
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14004ee60
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14000f8d0
mov ecx, dword [0x1409640cc]
test eax, eax
mov edx, recv
mov word [0x1409640c8], r15w
cmovs ecx, edx
mov dword [0x1409640cc], ecx
jmp case.default.0x1400110ed
mov r8d, 0x90
lea rdx, [rbp - 0x69]
xor ecx, ecx
call fcn.1400414e0
cmp dword [rbp - 0x69], 0x4e5942
movzx r8d, word [0x1409640c4]
mov r14d, dword [0x140964030]
je 0x1400113b5
lea r9, str.Not_a_valid_.byn_file
mov eax, 0xc9
jmp 0x140011689
mov rcx, 0xffffffffffffffff
lea rdx, [rbp - 0x63]
mov rax, rcx
inc rax
cmp byte [rdx + rax], dil
jne 0x1400113c3
cmp eax, 0x14
jl 0x1400113e2
lea r9, str.Invalid_serial
mov eax, 0xcc
jmp 0x140011689
lea rdx, [rbp - 0x3b]
mov rax, rcx
nop dword [rax]
inc rax
cmp byte [rdx + rax], dil
jne 0x1400113f0
cmp eax, 0x1c
jl 0x14001140f
lea r9, str.Invalid_product_name
mov eax, 0xcf
jmp 0x140011689
lea rdx, [rbp - 0x1f]
mov rax, rcx
inc rax
cmp byte [rdx + rax], dil
jne 0x140011416
cmp eax, 0x16
jl 0x140011435
lea r9, str.Invalid_firmware_revision
mov eax, 0xd2
jmp 0x140011689
movzx edx, word [rbp - 0x65]
mov esi, 0x80
sub edx, 4
je 0x14001158c
sub edx, r13d
je 0x1400114f8
cmp edx, r13d
je 0x140011466
lea r9, str.Unsupported_file_format__please_upgrade_your_VirtualHub_or_Yoctopuce_library
mov eax, 0x109
jmp 0x140011689
lea rax, [rbp + 7]
nop word [rax + rax]
inc rcx
cmp byte [rax + rcx], dil
jne 0x140011470
cmp ecx, 0x14
jl 0x14001148f
lea r9, str.Invalid_programming_tools_revision_or_corrupt_file
mov eax, 0xf4
jmp 0x140011689
test r13b, r8b
jne 0x1400114c6
cmp byte [rbp + 7], dil
je 0x1400114c6
lea rcx, [rbp + 7]
call fcn.1400539b4
lea rcx, [0x14010acbc]
mov ebx, eax
call fcn.1400539b4
cmp ebx, eax
jle 0x1400114c6
lea r9, str.This_firmware_is_too_recent__please_upgrade_your_VirtualHub_or_Yoctopuce_library
mov eax, 0xfb
jmp 0x140011689
cmp byte [rbp + 0x1d], 0x10
jbe 0x1400114dd
lea r9, str.Too_many_ROM_zones_in_.byn_file
mov eax, 0x100
jmp 0x140011689
cmp byte [rbp + 0x1e], 4
jbe 0x1400115c0
lea r9, str.Too_many_FLASH_zones_in_.byn_file
mov eax, 0x103
jmp 0x140011689
lea rax, [rbp - 9]
nop dword [rax]
inc rcx
cmp byte [rax + rcx], dil
jne 0x140011500
cmp ecx, 0x14
jl 0x14001151f
lea r9, str.Invalid_programming_tools_revision_or_corrupt_file
mov eax, 0xe0
jmp 0x140011689
test r13b, r8b
jne 0x140011556
cmp byte [rbp - 9], dil
je 0x140011556
lea rcx, [rbp - 9]
call fcn.1400539b4
lea rcx, [0x14010acbc]
mov ebx, eax
call fcn.1400539b4
cmp ebx, eax
jle 0x140011556
lea r9, str.This_firmware_is_too_recent__please_upgrade_your_VirtualHub_or_Yoctopuce_library
mov eax, 0xe7
jmp 0x140011689
cmp dword [rbp + 0xf], 0x10
jbe 0x14001156d
lea r9, str.Too_many_zones_in_.byn_file
mov eax, 0xec
jmp 0x140011689
mov eax, dword [rbp + 0x13]
mov rcx, r14
sub rcx, rsi
cmp rax, rcx
je 0x1400115c0
lea r9, str.Incorrect_file_size_or_corrupt_file
mov eax, 0xef
jmp 0x140011689
cmp dword [rbp - 9], 0x10
jbe 0x1400115a3
lea r9, str.Too_many_zones_in_.byn_file
mov eax, 0xd8
jmp 0x140011689
mov eax, dword [rbp - 5]
lea rcx, [r14 - 0x68]
cmp rax, rcx
je 0x1400115c0
lea r9, str.Incorrect_file_size_or_corrupt_file
mov eax, 0xdb
jmp 0x140011689
mov r8d, 8
lea rdx, [0x14096403a]
lea rcx, [rbp - 0x63]
call fcn.140052cd0
test eax, eax
je 0x1400115e4
mov eax, 0x111
jmp 0x140011682
movzx ecx, byte [0x140963fc0]
lea eax, [rcx - 0x41]
cmp al, r13b
jbe 0x140011604
lea r9, str.This_device_is_too_recent__please_use_V2_of_the_VirtualHub_or_Yoctopuce_library
mov eax, 0x115
jmp 0x140011689
movzx ecx, cl
lea r8, str.Unknown_CPU_model
sub ecx, 5
je 0x14001165d
sub ecx, 7
je 0x14001164b
sub ecx, 0x35
je 0x140011634
cmp ecx, r13d
jne 0x14001166d
cmp byte [0x140963fc1], 7
jne 0x14001166d
lea r8, str.PIC24FJ64GB002
jmp 0x14001166d
cmp byte [0x140963fc1], 0xc
mov rax, r8
lea r8, str.PIC24FJ256DA206
cmovne r8, rax
jmp 0x14001166d
cmp byte [0x140963fc1], r13b
jne 0x14001166d
lea r8, str.MSP432E401Y
jmp 0x14001166d
cmp byte [0x140963fc1], r13b
jne 0x14001166d
lea r8, str.TM4C123GH6PM
lea rdx, [rbp - 0x4f]
mov rcx, r8
call fcn.140052e3c
test eax, eax
je 0x1400116c3
mov eax, 0x11c
lea r9, str.This_BYN_file_is_not_designed_for_your_device
mov dword [rsp + 0x28], eax
lea r8, str._s___s:_d_
lea rax, str.yprog
mov edx, 0x100
lea rcx, [0x1409640f2]
mov qword [rsp + 0x20], rax
call fcn.1400217a0
mov edx, recv
xor eax, eax
mov dword [0x1409640cc], edx
jmp 0x140011329
movzx ecx, word [rbp - 0x65]
sub ecx, 4
je 0x140011702
sub ecx, r13d
je 0x1400116f6
cmp ecx, r13d
jne 0x140011724
movzx eax, byte [rbp + 0x1d]
mov byte [0x1409640ba], al
movzx eax, byte [rbp + 0x1e]
mov byte [0x1409640bb], al
mov dword [0x1409640e0], 0x90
jmp 0x14001171d
movzx eax, byte [rbp + 0xf]
mov dword [0x1409640e0], esi
jmp 0x140011710
movzx eax, byte [rbp - 9]
mov dword [0x1409640e0], 0x68
mov byte [0x1409640bb], dil
mov byte [0x1409640ba], al
mov word [0x1409640c6], di
cmp word [0x140963fd0], di
mov eax, 3
mov word [0x1409640c8], ax
mov dword [0x1409640cc], 4
je case.default.0x1400110ed
movzx eax, word [0x140963fd2]
mov word [0x1409640ee], ax
jmp case.default.0x1400110ed
movzx ecx, word [0x140963fd0]
mov dword [0x1409640d0], edi
mov dword [0x1409640e8], edi
test cx, cx
je 0x140011994
movzx edx, word [0x1409640ee]
movzx r8d, word [0x140963fcc]
mov eax, edx
movzx ecx, cx
sub ecx, edx
movzx eax, cx
cmp r8w, 0x16
je 0x1400117a4
cmp r8w, 0x17
je 0x1400117a4
mov esi, 0x80
jmp 0x1400117a9
mov esi, reloc.WS2_32.dll_recv
xor r8d, r8d
mov qword [0x140963fe0], r8
mov qword [0x140963fe8], r8
mov qword [0x140963ff0], r8
mov qword [0x140963ff8], r8
mov qword [0x140964000], r8
mov qword [0x140964008], r8
mov qword [0x140964010], r8
mov qword [0x140964018], r8
mov r8d, 0x3fff
and dx, r8w
mov word [0x140963fe0], 0x40
cmp ecx, esi
mov word [0x140963fe2], dx
mov rcx, qword [0x140963cb0]
cmovle si, ax
mov word [0x140963fe4], si
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x140963ba8]
test ebx, ebx
jne 0x1400118a9
mov ecx, 0x48
mov ebx, edi
call fcn.140056e8c
movups xmm0, xmmword [0x140963fe0]
mov rcx, rax
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140963ff0]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140964000]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [0x140964010]
mov qword [rax + 0x40], rdi
movups xmmword [rax + 0x30], xmm1
cmp qword [0x140963b80], rbx
jne 0x14001188a
mov rcx, qword [0x140963cc0]
mov qword [0x140963b80], rax
mov qword [0x140963b88], rax
call qword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x14001189c
mov rax, qword [0x140963b88]
mov qword [rax + 0x40], rcx
mov qword [0x140963b88], rcx
inc dword [0x140963b90]
inc qword [0x140963b98]
mov rcx, qword [0x140963cb8]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
js 0x140011988
mov rcx, qword [0x140963f20]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x140963cc0]
mov edx, 0x1388
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x140963ba8]
test ebx, ebx
jne 0x14001190c
cmp qword [0x140963b80], rdi
cmove ebx, r13d
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [0x140118680]
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rax, qword [0x140118680]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14001193c
call rcx
mov ecx, 0x80000000
lea eax, [rbx + rcx]
test ecx, eax
jne 0x140011967
cmp ebx, 0xfffffff9
je 0x140011967
test ebx, ebx
js 0x140011988
add word [0x1409640ee], si
sar ebx, 0x1f
mov dword [0x1409640cc], 5
jmp 0x1400119a4
test ebx, ebx
jle 0x140011983
add word [0x1409640ee], si
mov ebx, edi
sar ebx, 0x1f
mov dword [0x1409640cc], 5
jmp 0x1400119a4
mov ebx, 0xfffffff9
add word [0x1409640ee], si
sar ebx, 0x1f
jmp 0x1400119a4
mov edx, 5
movzx ecx, r15b
call fcn.14000fdb0
mov ebx, eax
test ebx, ebx
jns case.default.0x1400110ed
lea rax, str.Unable_to_blank_flash
cmp edi, 0x100
jae 0x1400119c5
inc rax
inc edi
cmp byte [rax], 0
jne 0x1400119b3
lea eax, [rdi + 1]
cmp eax, 0x100
jbe 0x140011a0d
lea r9, str.ymemory
mov dword [rsp + 0x20], 0x14c
lea r8, str.YPANIC:_s:_d_n
mov edx, 0x14c
lea rcx, str.ymemory
call fcn.14000a9a0
mov edx, recv
mov byte [0x1409640f2], 0
mov dword [0x1409640cc], edx
jmp case.default.0x1400110ed
lea rdx, str.Unable_to_blank_flash
mov r8d, edi
lea rcx, [0x1409640f2]
mov ebx, edi
call fcn.140050fe0
mov edx, recv
mov byte [rbx + r12 + 0x9640f2], 0
mov dword [0x1409640cc], edx
jmp case.default.0x1400110ed
cmp dword [0x1409640e8], edi
jne 0x140011c0a
cmp word [0x140963fd0], di
je 0x140011bfa
mov rcx, qword [0x140963cb0]
xor eax, eax
mov qword [0x140963fe0], rax
mov byte [0x140963fe0], 0xa0
mov qword [0x140963fe8], rax
mov qword [0x140963ff0], rax
mov qword [0x140963ff8], rax
mov qword [0x140964000], rax
mov qword [0x140964008], rax
mov qword [0x140964010], rax
mov qword [0x140964018], rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x140963ba8]
test ebx, ebx
jne 0x140011b36
mov ecx, 0x48
mov ebx, edi
call fcn.140056e8c
movups xmm0, xmmword [0x140963fe0]
mov rcx, rax
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140963ff0]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140964000]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [0x140964010]
mov qword [rax + 0x40], rdi
movups xmmword [rax + 0x30], xmm1
cmp qword [0x140963b80], rbx
jne 0x140011b17
mov rcx, qword [0x140963cc0]
mov qword [0x140963b80], rax
mov qword [0x140963b88], rax
call qword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x140011b29
mov rax, qword [0x140963b88]
mov qword [rax + 0x40], rcx
mov qword [0x140963b88], rcx
inc dword [0x140963b90]
inc qword [0x140963b98]
mov rcx, qword [0x140963cb8]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
js case.default.0x1400110ed
mov rcx, qword [0x140963f20]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x140963cc0]
mov edx, 0x1388
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x140963ba8]
test ebx, ebx
jne 0x140011b99
cmp qword [0x140963b80], rdi
cmove ebx, r13d
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [0x140118680]
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rax, qword [0x140118680]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x140011bc9
call rcx
mov ecx, 0x80000000
lea eax, [rbx + rcx]
test ecx, eax
jne 0x140011bf2
cmp ebx, 0xfffffff9
je 0x140011bf2
test ebx, ebx
js case.default.0x1400110ed
call fcn.140009a00
mov dword [0x1409640e8], eax
jmp case.default.0x1400110ed
test ebx, ebx
jle case.default.0x1400110ed
call fcn.140009a00
mov dword [0x1409640e8], eax
jmp case.default.0x1400110ed
cmp word [0x140963fd0], di
je 0x140011d29
xor r8d, r8d
lea rdx, [0x140963fe0]
lea rcx, [0x140963a00]
call fcn.14000f700
test eax, eax
jns 0x140011cdc
call fcn.140009a00
sub eax, dword [0x1409640e8]
cmp eax, 0x7d0
jb case.default.0x1400110ed
lea rax, str.Timeout_blanking_flash
mov ecx, edi
cmp ecx, 0x100
jae 0x140011c66
inc rax
inc ecx
cmp byte [rax], dil
jne 0x140011c54
lea eax, [rcx + 1]
cmp eax, 0x100
jbe 0x140011cad
lea r9, str.ymemory
mov dword [rsp + 0x20], 0x14c
lea r8, str.YPANIC:_s:_d_n
mov edx, 0x14c
lea rcx, str.ymemory
call fcn.14000a9a0
mov byte [0x1409640f2], dil
mov dword [0x1409640cc], 6
jmp 0x140011320
mov ebx, ecx
lea rdx, str.Timeout_blanking_flash
mov r8d, ecx
lea rcx, [0x1409640f2]
call fcn.140050fe0
mov byte [rbx + r12 + 0x9640f2], dil
mov dword [0x1409640cc], 6
jmp 0x140011320
movzx ecx, word [0x140963fd0]
xor edx, edx
movzx eax, word [0x1409640ee]
lea eax, [rax + rax*8]
add eax, eax
div ecx
lea rcx, str.Erasing_flash
add ax, 3
mov word [0x1409640c8], ax
call fcn.14000f7d0
movzx eax, word [0x140963fd0]
cmp word [0x1409640ee], ax
jae 0x140011d4b
mov dword [0x1409640cc], 4
jmp case.default.0x1400110ed
mov ebx, dword [0x140963fb8]
shr ebx, 5
add ebx, 0x3e8
call fcn.140009a00
sub eax, dword [0x1409640e8]
cmp eax, ebx
jb case.default.0x1400110ed
mov dword [0x1409640cc], 6
jmp 0x140011320
cmp word [0x140963fd0], di
je 0x140011d6a
call fcn.1400105e0
jmp 0x140011d6f
call fcn.14000ff80
test eax, eax
jns case.default.0x1400110ed
mov edx, recv
mov dword [0x1409640cc], edx
jmp case.default.0x1400110ed
call fcn.14000f8d0
test eax, eax
jns 0x140011dc3
lea rax, str.Last_communication_before_reboot_failed
cmp edi, 0x100
jae 0x140011da9
inc rax
inc edi
cmp byte [rax], 0
jne 0x140011d97
lea eax, [rdi + 1]
cmp eax, 0x100
ja 0x1400119cf
lea rdx, str.Last_communication_before_reboot_failed
jmp 0x140011a14
cmp eax, r13d
jne case.default.0x1400110ed
mov dword [0x1409640cc], 8
jmp case.default.0x1400110ed
mov eax, 0x5f
movzx ecx, r13b
mov word [0x1409640c8], ax
lea edx, [rax - 0x56]
call fcn.14000fdb0
mov dword [0x1409640cc], 9
call fcn.140009a00
add eax, 0x4e20
mov dword [0x1409640dc], eax
jmp case.default.0x1400110ed
xor r8d, r8d
mov dword [rbp - 0x79], edi
lea rdx, [rbp - 0x79]
mov qword [rbp - 0x71], rdi
lea rcx, [rbp - 0x71]
call fcn.140012890
test eax, eax
js 0x140011e92
mov r10d, dword [rbp - 0x79]
mov r11, qword [rbp - 0x71]
test r10d, r10d
jle 0x140011e85
lea r9, [r11 + 8]
lea r14, [0x14096403a]
cmp word [r9 - 6], r15w
ja 0x140011e77
mov r8, r14
mov rax, r9
sub r8, r9
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140011e73
inc rax
test ecx, ecx
jne 0x140011e60
test edx, edx
je 0x140011ead
inc edi
add r9, 0x5b0
cmp edi, r10d
jl 0x140011e45
test r11, r11
je 0x140011e92
mov rcx, r11
call fcn.140052f7c
mov eax, 0x62
mov dword [0x1409640cc], 0xb
mov word [0x1409640c8], ax
jmp case.default.0x1400110ed
mov rcx, r11
call fcn.140052f7c
call fcn.140009a00
cmp dword [0x1409640dc], eax
jns case.default.0x1400110ed
cmp dword [0x1409640e0], 0
jne 0x140011eea
lea rcx, str.reboot_failed_try_again...
call fcn.14000f7d0
mov dword [0x1409640cc], 7
jmp case.default.0x1400110ed
lea rcx, str.Device_still_in_bootloader
call fcn.14000f7d0
dec dword [0x1409640e0]
lea rcx, str.Device_still_in_bootloader
call fcn.14000f7d0
mov edx, recv
mov dword [0x1409640cc], edx
jmp case.default.0x1400110ed
mov rcx, qword [0x140963cb0]
mov eax, 0x62
mov word [0x1409640c8], ax
xor eax, eax
mov qword [0x140963fe0], rax
mov qword [0x140963fe8], rax
mov qword [0x140963ff0], rax
mov qword [0x140963ff8], rax
mov qword [0x140964000], rax
mov qword [0x140964008], rax
mov qword [0x140964010], rax
mov qword [0x140964018], rax
mov eax, 0x4662
mov word [0x140963fe4], ax
mov byte [0x140963fe0], 0x20
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x140963ba8]
test ebx, ebx
jne 0x14001200f
mov ecx, 0x48
mov ebx, edi
call fcn.140056e8c
movups xmm0, xmmword [0x140963fe0]
mov rcx, rax
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140963ff0]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140964000]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [0x140964010]
mov qword [rax + 0x40], rdi
movups xmmword [rax + 0x30], xmm1
cmp qword [0x140963b80], rbx
jne 0x140011ff0
mov rcx, qword [0x140963cc0]
mov qword [0x140963b80], rax
mov qword [0x140963b88], rax
call qword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x140012002
mov rax, qword [0x140963b88]
mov qword [rax + 0x40], rcx
mov qword [0x140963b88], rcx
inc dword [0x140963b90]
inc qword [0x140963b98]
mov rcx, qword [0x140963cb8]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
js 0x140012089
mov rcx, qword [0x140963f20]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x140963cc0]
mov edx, 0x1388
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [0x140963cb0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [0x140118680]
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rax, qword [0x140118680]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x140012089
call rcx
mov dword [0x1409640cc], 0xb
jmp case.default.0x1400110ed
lea rax, str.Flash_succeeded
nop
cmp edi, 0x100
jae 0x1400120b2
inc rax
inc edi
cmp byte [rax], 0
jne 0x1400120a0
lea eax, [rdi + 1]
cmp eax, 0x100
jbe 0x1400120ec
lea r9, str.ymemory
mov dword [rsp + 0x20], 0x14c
lea r8, str.YPANIC:_s:_d_n
mov edx, 0x14c
lea rcx, str.ymemory
call fcn.14000a9a0
mov byte [0x1409640f2], 0
jmp 0x14001210d
mov r8d, edi
lea rdx, str.Flash_succeeded
lea rcx, [0x1409640f2]
mov ebx, edi
call fcn.140050fe0
mov byte [rbx + r12 + 0x9640f2], 0
mov eax, 0x64
mov edx, recv
mov word [0x1409640c8], ax
mov dword [0x1409640cc], edx
lea rcx, [0x140963a00]
call fcn.140014080
mov dword [0x1409640cc], 0xd
xor eax, eax
jmp 0x140011329