Function at 0x40fe00
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x426950
mov eax, dword fs:[0]
push eax
sub esp, 0x514
mov eax, dword [0x435080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x344], ecx
mov dword [ebp - 0x350], 0
mov ecx, dword [ebp - 0x344]
add ecx, 0x2904
call fcn.0040da50
movzx eax, al
test eax, eax
je 0x40ff0a
mov ecx, dword [0x439df4]
mov edx, dword fs:[0x2c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [0x438924]
cmp ecx, dword [eax + 4]
jle 0x40fea9
push 0x438924
call fcn.004250f6
add esp, 4
cmp dword [0x438924], 0xffffffff
jne 0x40fea9
mov edx, dword [0x435b0c]
add edx, dword [ebp + 8]
mov dword [0x438920], edx
push 0x438924
call fcn.004250a5
add esp, 4
mov eax, dword [ebp + 8]
cmp eax, dword [0x438920]
jb 0x40ff0a
mov ecx, dword [0x435b0c]
add ecx, dword [ebp + 8]
mov dword [0x438920], ecx
lea edx, [ebp - 0x58]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2904
call fcn.0040ea90
mov dword [ebp - 4], 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4cc], esp
lea eax, [ebp - 0x58]
push eax
call fcn.00405e60
call fcn.00415af0
add esp, 0x18
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.00402d10
mov ecx, dword [ebp - 0x344]
movzx edx, byte [ecx + 0x28de]
test edx, edx
je 0x40ff79
call fcn.00424050
mov dword [ebp - 0x39c], eax
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x39c]
cmp ecx, dword [eax + 0x28ec]
jbe 0x40ff79
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4d0], esp
push 0x429ce8
call fcn.00405ef0
call fcn.00415af0
add esp, 0x18
push str.COM:INFO:PROTOCOL:binary_mode_continue_request
call fcn.004194a0
add esp, 4
mov edx, dword [ebp - 0x39c]
add edx, 0x64
mov eax, dword [ebp - 0x344]
mov dword [eax + 0x28ec], edx
cmp dword [0x435990], 0
jle 0x40ffca
mov dword [ebp - 0x3b0], 0
mov ecx, dword [ebp - 0x344]
cmp dword [ecx + 0x28d4], 0
je 0x40ffca
mov edx, dword [ebp - 0x344]
mov eax, dword [edx + 0x28d4]
push eax
call dword [sym.imp.KERNEL32.dll_ClearCommBreak]
push 0
lea ecx, [ebp - 0x3b0]
push ecx
mov edx, dword [ebp - 0x344]
mov eax, dword [edx + 0x28d4]
push eax
call dword [sym.imp.KERNEL32.dll_ClearCommError]
cmp dword [0x435990], 0
jle 0x41000b
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x28d0]
push edx
mov eax, dword [ebp - 0x344]
add eax, 8
push eax
mov ecx, dword [ebp - 0x344]
mov edx, dword [ecx + 0x28d4]
push edx
call fcn.00413f00
add esp, 0xc
mov dword [ebp - 0x350], eax
jmp 0x41018a
cmp dword [0x435990], 0
jge 0x41018a
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x28dc]
test ecx, ecx
je 0x4100bb
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x28dc]
push eax
push str.COM:INFO:fake_sframe_caching_d
lea ecx, [ebp - 0x118]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3b4], eax
mov edx, dword [ebp - 0x3b4]
mov dword [ebp - 0x3b8], edx
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x3b8]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x118]
call fcn.00406240
mov dword [ebp - 0x350], 0
mov eax, dword [ebp - 0x344]
mov cx, word [eax + 0x28dc]
sub cx, 1
mov edx, dword [ebp - 0x344]
mov word [edx + 0x28dc], cx
jmp 0x41018a
push 0x800
mov eax, dword [ebp - 0x344]
add eax, 0x200a
push eax
call fcn.00414080
add esp, 8
mov dword [ebp - 0x350], eax
mov ecx, dword [ebp - 0x344]
movzx edx, byte [ecx + 0x2831]
test edx, edx
je 0x410165
cmp dword [ebp - 0x350], 0
jle 0x410165
push 0x429d3c
mov eax, dword [ebp - 0x344]
mov ecx, dword [eax + 0x2834]
push ecx
push 0x435c70
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s]
add esp, 0xc
mov dword [ebp - 0x3bc], eax
cmp dword [ebp - 0x3bc], 0
je 0x41012f
mov dword [0x435c70], 0
jmp 0x410165
mov edx, dword [0x435c70]
push edx
mov eax, dword [ebp - 0x350]
push eax
push 1
mov ecx, dword [ebp - 0x344]
add ecx, 0x200a
push ecx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
mov edx, dword [0x435c70]
push edx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x350]
mov dword [eax + 0x280c], ecx
cmp dword [ebp - 0x350], 0
jge 0x41018a
mov dword [ebp - 0x350], 0
mov edx, dword [ebp - 0x344]
movzx eax, byte [edx + 0x28de]
test eax, eax
je 0x4101f5
mov ecx, dword [ebp - 0x350]
push ecx
push str.COM:INFO:rcv_bytes_d
lea edx, [ebp - 0xd0]
push edx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3c0], eax
mov eax, dword [ebp - 0x3c0]
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x3c4]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.00406240
call fcn.0040ca80
mov ecx, dword [ebp - 0x344]
cmp dword [ecx + 0x28f0], 2
jne 0x410291
mov edx, dword [ebp - 0x344]
cmp dword [edx + 0x2918], 0xa
jae 0x41027f
mov eax, dword [ebp - 0x344]
mov ecx, dword [eax + 0x28e4]
mov edx, dword [ebp - 0x344]
add ecx, dword [edx + 0x2900]
mov eax, dword [ebp - 0x344]
mov dword [eax + 0x2900], ecx
mov ecx, dword [0x435afc]
mov edx, dword [ebp - 0x344]
cmp dword [edx + 0x2900], ecx
jb 0x41027d
push 3
mov ecx, dword [ebp - 0x344]
call fcn.00414120
push str.COM:ERR:connection_lost:com_lost_timeout
mov ecx, 0x438c48
call fcn.0041ff00
mov eax, dword [0x438a3c]
add eax, 1
mov dword [0x438a3c], eax
jmp 0x41028f
mov ecx, dword [ebp - 0x344]
mov dword [ecx + 0x2900], 0
jmp 0x4102a1
mov edx, dword [ebp - 0x344]
mov dword [edx + 0x2900], 0
cmp dword [ebp - 0x350], 0
je 0x411ddb
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x350]
mov dword [eax + 0x2914], ecx
mov edx, dword [ebp - 0x344]
mov eax, dword [edx + 0x291c]
add eax, dword [ebp - 0x350]
mov ecx, dword [ebp - 0x344]
mov dword [ecx + 0x291c], eax
mov edx, dword [ebp - 0x344]
movzx eax, byte [edx + 0x28de]
test eax, eax
je 0x411a2f
cmp dword [0x435990], 0
jge 0x411a0e
cmp dword [ebp - 0x350], 0x200
jl 0x411a0c
mov ecx, dword [ebp - 0x344]
mov byte [ecx + 0x2858], 1
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x28da]
test eax, eax
je 0x4103ce
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x28dc]
test edx, edx
jne 0x4103ce
mov eax, dword [ebp - 0x344]
mov cx, word [eax + 0x28da]
sub cx, 1
mov edx, dword [ebp - 0x344]
mov word [edx + 0x28da], cx
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x28da]
add ecx, 1
push ecx
push str.process_com_port_data:fake_sframe_error:frame_dropped:_d
lea edx, [ebp - 0xb8]
push edx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x3c8]
mov dword [ebp - 0x3cc], eax
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x3cc]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xb8]
call fcn.00406240
jmp 0x410912
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x344]
movzx eax, byte [edx + ecx + 0x200a]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x344]
movzx ecx, byte [edx + ecx + 0x200a]
add eax, ecx
mov edx, dword [ebp - 0x344]
mov word [edx + 0x283a], ax
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x344]
mov dx, word [ecx + 0x283a]
mov word [eax + 0x2008], dx
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp - 0x344]
movzx eax, byte [edx + ecx + 0x200a]
shl eax, 0x18
mov ecx, 1
shl ecx, 2
mov edx, dword [ebp - 0x344]
movzx ecx, byte [edx + ecx + 0x200a]
shl ecx, 0x10
add eax, ecx
mov edx, 1
imul ecx, edx, 5
mov edx, dword [ebp - 0x344]
movzx ecx, byte [edx + ecx + 0x200a]
shl ecx, 8
add eax, ecx
mov edx, 1
imul ecx, edx, 6
mov edx, dword [ebp - 0x344]
movzx ecx, byte [edx + ecx + 0x200a]
add eax, ecx
mov dword [ebp - 0x390], eax
mov edx, dword [ebp - 0x390]
push edx
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x283a]
push ecx
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283a]
push eax
push str.process_com_port_data:incoming_sframe_id:_u_0x_04X__CRC:0x_08X
lea ecx, [ebp - 0x280]
push ecx
call fcn.00418d50
add esp, 0x14
mov dword [ebp - 0x3d0], eax
mov edx, dword [ebp - 0x3d0]
mov dword [ebp - 0x3d4], edx
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x3d4]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x280]
call fcn.00406240
push 0
mov eax, dword [ebp - 0x344]
mov ecx, dword [eax + 0x280c]
sub ecx, 7
push ecx
mov edx, 1
imul eax, edx, 7
mov ecx, dword [ebp - 0x344]
lea edx, [ecx + eax + 0x200a]
push edx
call fcn.00415e60
add esp, 0xc
mov dword [ebp - 0x3a0], eax
mov eax, dword [ebp - 0x390]
cmp eax, dword [ebp - 0x3a0]
je 0x410619
mov ecx, dword [ebp - 0x3a0]
push ecx
mov edx, dword [ebp - 0x390]
push edx
push 0x429e00
lea eax, [ebp - 0xa0]
push eax
call fcn.00418d50
add esp, 0x10
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x3d8]
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x3dc]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa0]
call fcn.00406240
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283a]
push eax
push str.crc_error:sframe_id:_d
lea ecx, [ebp - 0x88]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3e0], eax
mov edx, dword [ebp - 0x3e0]
mov dword [ebp - 0x3e4], edx
mov dword [ebp - 4], 6
mov ecx, dword [ebp - 0x3e4]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x88]
call fcn.00406240
jmp 0x410912
mov byte [ebp - 0x389], 0
mov dword [ebp - 0x35c], 0
jmp 0x41063b
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.004145e0
cmp dword [ebp - 0x35c], eax
jae 0x410787
mov ecx, dword [ebp - 0x344]
movzx esi, word [ecx + 0x283a]
mov edx, dword [ebp - 0x35c]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040b870
movzx eax, word [eax]
sub esi, eax
mov dword [ebp - 0x37c], esi
cmp dword [ebp - 0x37c], 0xffff8000
jge 0x4106a6
mov ecx, dword [ebp - 0x37c]
add ecx, 0x10000
mov dword [ebp - 0x37c], ecx
mov eax, dword [ebp - 0x37c]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x344]
cmp eax, dword [edx + 0x281c]
jle 0x410782
mov eax, dword [ebp - 0x35c]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040b870
movzx ecx, word [eax]
push ecx
push str.process_com_port_data:purged_old_sframe:sframe_id:_d
lea edx, [ebp - 0x70]
push edx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebp - 0x3e8]
mov dword [ebp - 0x450], eax
mov dword [ebp - 4], 7
mov ecx, dword [ebp - 0x450]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.00406240
mov ecx, dword [ebp - 0x35c]
push ecx
lea edx, [ebp - 0x4d4]
push edx
lea eax, [ebp - 0x4d8]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040ca40
mov ecx, eax
call fcn.0040b8c0
mov ecx, dword [eax]
mov dword [ebp - 0x44c], ecx
mov edx, dword [ebp - 0x44c]
push edx
lea eax, [ebp - 0x4dc]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040d120
jmp 0x410787
jmp 0x41062c
mov ecx, dword [ebp - 0x344]
add ecx, 0x2008
push ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.00413e20
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.004145e0
cmp eax, 0x14
jbe 0x4107fa
lea edx, [ebp - 0x4e0]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040ca40
mov eax, dword [eax]
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x448]
push ecx
lea edx, [ebp - 0x50c]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040d120
mov eax, dword [ebp - 0x344]
movzx ecx, byte [eax + 0x2844]
test ecx, ecx
je 0x41084c
mov edx, dword [ebp - 0x344]
mov byte [edx + 0x2844], 0
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x344]
mov dx, word [ecx + 0x283a]
mov word [eax + 0x283c], dx
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x344]
mov dx, word [ecx + 0x283a]
mov word [eax + 0x2840], dx
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x283a]
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283c]
sub ecx, eax
mov dword [ebp - 0x360], ecx
cmp dword [ebp - 0x360], 0xffff8000
jge 0x41088c
mov ecx, dword [ebp - 0x360]
add ecx, 0x10000
mov dword [ebp - 0x360], ecx
cmp dword [ebp - 0x360], 1
jg 0x41089e
cmp dword [ebp - 0x360], 0
jge 0x4108f8
mov edx, dword [ebp - 0x360]
push edx
push str.process_com_port_data:sframe_error:delta_incoming:_d
lea eax, [ebp - 0x340]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x444], eax
mov ecx, dword [ebp - 0x444]
mov dword [ebp - 0x440], ecx
mov dword [ebp - 4], 8
mov ecx, dword [ebp - 0x440]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x340]
call fcn.00406240
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x344]
mov cx, word [eax + 0x283a]
mov word [edx + 0x283c], cx
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x284c]
jb 0x41097a
mov ecx, dword [ebp - 0x344]
mov edx, dword [ebp + 8]
add edx, dword [ecx + 0x2850]
mov eax, dword [ebp - 0x344]
mov dword [eax + 0x284c], edx
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x2856]
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x2854]
cmp edx, ecx
jge 0x41097a
mov edx, dword [ebp - 0x344]
mov ax, word [edx + 0x2856]
add ax, 1
mov ecx, dword [ebp - 0x344]
mov word [ecx + 0x2856], ax
mov byte [ebp - 0x345], 1
mov dword [ebp - 0x394], 0
movzx edx, byte [ebp - 0x345]
test edx, edx
je 0x411a0c
mov eax, dword [ebp - 0x394]
add eax, 1
mov dword [ebp - 0x394], eax
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x2840]
add edx, 1
mov eax, dword [ebp - 0x344]
mov word [eax + 0x283e], dx
mov ecx, dword [ebp - 0x344]
movzx edx, byte [ecx + 0x2830]
test edx, edx
je 0x410baf
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x283e]
push ecx
push str.process_com_port_data:dump_sframe_vector:sframe_id_required:_d
lea edx, [ebp - 0x328]
push edx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x4c0], eax
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x4c0]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x328]
call fcn.00406240
mov dword [ebp - 0x380], 0
jmp 0x410a57
mov ecx, dword [ebp - 0x380]
add ecx, 1
mov dword [ebp - 0x380], ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.004145e0
cmp dword [ebp - 0x380], eax
jae 0x410ae4
mov edx, dword [ebp - 0x380]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040b870
movzx eax, word [eax]
push eax
push str.process_com_port_data:dump_sframe_vector:sframe_rcv_vec:sframe_id:_d
lea ecx, [ebp - 0x310]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x4bc], eax
mov edx, dword [ebp - 0x4bc]
mov dword [ebp - 0x4b8], edx
mov dword [ebp - 4], 0xa
mov ecx, dword [ebp - 0x4b8]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x310]
call fcn.00406240
jmp 0x410a48
mov dword [ebp - 0x368], 0
jmp 0x410aff
mov eax, dword [ebp - 0x368]
add eax, 1
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.00414610
cmp dword [ebp - 0x368], eax
jae 0x410baf
mov ecx, dword [ebp - 0x368]
push ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040b8a0
mov edx, dword [eax + 4]
sub edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x368]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040b8a0
movzx ecx, word [eax]
push ecx
push str.process_com_port_data:dump_sframe_vector:wait_for_resend_timeout_vec:sframe_id:_d_time_ms:_d
lea edx, [ebp - 0x2f8]
push edx
call fcn.00418d50
add esp, 0x10
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 4], 0xb
mov ecx, dword [ebp - 0x4b0]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2f8]
call fcn.00406240
jmp 0x410af0
mov byte [ebp - 0x345], 0
mov dword [ebp - 0x36c], 0
jmp 0x410bd1
mov ecx, dword [ebp - 0x36c]
add ecx, 1
mov dword [ebp - 0x36c], ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.004145e0
cmp dword [ebp - 0x36c], eax
jae 0x410c51
mov edx, dword [ebp - 0x36c]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040b870
movzx eax, word [eax]
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x283e]
cmp eax, edx
jne 0x410c4c
mov eax, dword [ebp - 0x36c]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040b870
mov edi, dword [ebp - 0x344]
add edi, 0x2008
mov ecx, 0x202
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x345], 1
jmp 0x410c51
jmp 0x410bc2
mov ecx, dword [ebp - 0x344]
mov edx, dword [ebp - 0x344]
mov ax, word [edx + 0x2008]
mov word [ecx + 0x283a], ax
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x283a]
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x2840]
sub edx, ecx
mov dword [ebp - 0x34c], edx
cmp dword [ebp - 0x34c], 0xffff8000
jge 0x410cab
mov edx, dword [ebp - 0x34c]
add edx, 0x10000
mov dword [ebp - 0x34c], edx
cmp dword [ebp - 0x34c], 0
jne 0x410cc0
mov byte [ebp - 0x345], 0
jmp 0x411a07
cmp dword [ebp - 0x34c], 1
jne 0x41114a
mov eax, dword [ebp - 0x344]
mov ecx, dword [eax + 0x280c]
sub ecx, 7
je 0x410efa
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283a]
push eax
push str.process_com_port_data:process_com_port_binary_mode_data:sframe_id:_d
lea ecx, [ebp - 0x130]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x4ac], eax
mov edx, dword [ebp - 0x4ac]
mov dword [ebp - 0x4a8], edx
mov dword [ebp - 4], 0xc
mov ecx, dword [ebp - 0x4a8]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call fcn.00406240
mov ecx, dword [ebp - 0x344]
call fcn.0040dd20
mov eax, dword [ebp - 0x344]
mov ecx, dword [eax + 0x280c]
sub ecx, 7
push ecx
mov edx, dword [ebp - 0x344]
add edx, 0x2011
push edx
mov ecx, dword [ebp - 0x344]
call fcn.0040ecb0
mov ecx, dword [ebp - 0x344]
call fcn.00414660
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp - 0x344]
movzx eax, byte [edx + ecx + 0x200a]
shl eax, 0x18
mov ecx, 1
shl ecx, 2
mov edx, dword [ebp - 0x344]
movzx ecx, byte [edx + ecx + 0x200a]
shl ecx, 0x10
add eax, ecx
mov edx, 1
imul ecx, edx, 5
mov edx, dword [ebp - 0x344]
movzx ecx, byte [edx + ecx + 0x200a]
shl ecx, 8
add eax, ecx
mov edx, 1
imul ecx, edx, 6
mov edx, dword [ebp - 0x344]
movzx ecx, byte [edx + ecx + 0x200a]
add eax, ecx
mov dword [ebp - 0x3a8], eax
push 0
mov edx, dword [ebp - 0x344]
mov eax, dword [edx + 0x280c]
sub eax, 7
push eax
mov ecx, 1
imul edx, ecx, 7
mov eax, dword [ebp - 0x344]
lea ecx, [eax + edx + 0x200a]
push ecx
call fcn.00415e60
add esp, 0xc
mov dword [ebp - 0x3a4], eax
mov edx, dword [ebp - 0x3a8]
cmp edx, dword [ebp - 0x3a4]
je 0x410efa
mov eax, dword [ebp - 0x3a4]
push eax
mov ecx, dword [ebp - 0x3a8]
push ecx
push str.process_com_port_data:incoming_sframe:crc_error:crc32_header:0x_08X__crc32_data:0x_08X_
lea edx, [ebp - 0x2e0]
push edx
call fcn.00418d50
add esp, 0x10
mov dword [ebp - 0x4a4], eax
mov eax, dword [ebp - 0x4a4]
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 4], 0xd
mov ecx, dword [ebp - 0x4a0]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2e0]
call fcn.00406240
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x283a]
push edx
push str.crc_error_redundant:sframe_id:_d
lea eax, [ebp - 0x2c8]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x49c]
mov dword [ebp - 0x498], ecx
mov dword [ebp - 4], 0xe
mov ecx, dword [ebp - 0x498]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c8]
call fcn.00406240
mov dword [ebp - 0x374], 0
jmp 0x410f15
mov edx, dword [ebp - 0x374]
add edx, 1
mov dword [ebp - 0x374], edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.004145e0
cmp dword [ebp - 0x374], eax
jae 0x410fb7
mov eax, dword [ebp - 0x374]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040b870
movzx ecx, word [eax]
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283a]
cmp ecx, eax
jne 0x410fb2
mov ecx, dword [ebp - 0x374]
push ecx
lea edx, [ebp - 0x51c]
push edx
lea eax, [ebp - 0x4e4]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040ca40
mov ecx, eax
call fcn.0040b8c0
mov ecx, dword [eax]
mov dword [ebp - 0x494], ecx
mov edx, dword [ebp - 0x494]
push edx
lea eax, [ebp - 0x4e8]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040d120
jmp 0x410f06
mov dword [ebp - 0x358], 0
jmp 0x410fd2
mov ecx, dword [ebp - 0x358]
add ecx, 1
mov dword [ebp - 0x358], ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.00414610
cmp dword [ebp - 0x358], eax
jae 0x411124
mov edx, dword [ebp - 0x358]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040b8a0
movzx eax, word [eax]
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x283a]
cmp eax, edx
jne 0x411074
mov eax, dword [ebp - 0x358]
push eax
lea ecx, [ebp - 0x4ec]
push ecx
lea edx, [ebp - 0x4f0]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040ca40
mov ecx, eax
call fcn.0040b8f0
mov eax, dword [eax]
mov dword [ebp - 0x48c], eax
mov ecx, dword [ebp - 0x48c]
push ecx
lea edx, [ebp - 0x4f4]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040d200
jmp 0x41111f
mov eax, dword [ebp - 0x358]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040b8a0
movzx ecx, word [eax]
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283a]
sub ecx, eax
mov dword [ebp - 0x378], ecx
cmp dword [ebp - 0x378], 0xffff8000
jge 0x4110c2
mov ecx, dword [ebp - 0x378]
add ecx, 0x10000
mov dword [ebp - 0x378], ecx
cmp dword [ebp - 0x378], 0
jge 0x41111f
mov edx, dword [ebp - 0x358]
push edx
lea eax, [ebp - 0x4f8]
push eax
lea ecx, [ebp - 0x4fc]
push ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040ca40
mov ecx, eax
call fcn.0040b8f0
mov edx, dword [eax]
mov dword [ebp - 0x488], edx
mov eax, dword [ebp - 0x488]
push eax
lea ecx, [ebp - 0x500]
push ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040d200
jmp 0x410fc3
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x344]
mov cx, word [eax + 0x283a]
mov word [edx + 0x2840], cx
mov byte [ebp - 0x345], 1
jmp 0x411a07
cmp dword [ebp - 0x34c], 1
jle 0x411755
cmp dword [ebp - 0x34c], 0x14
jge 0x411755
mov byte [ebp - 0x352], 0
mov dword [ebp - 0x364], 0
jmp 0x411186
mov edx, dword [ebp - 0x364]
add edx, 1
mov dword [ebp - 0x364], edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.00414610
cmp dword [ebp - 0x364], eax
jae 0x4112df
mov eax, dword [ebp - 0x364]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040b8a0
movzx ecx, word [eax]
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283e]
cmp ecx, eax
jne 0x4112da
mov byte [ebp - 0x352], 1
mov ecx, dword [ebp - 0x364]
push ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040b8a0
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 8]
ja 0x4112d1
mov eax, dword [ebp - 0x364]
push eax
lea ecx, [ebp - 0x504]
push ecx
lea edx, [ebp - 0x508]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040ca40
mov ecx, eax
call fcn.0040b8f0
mov eax, dword [eax]
mov dword [ebp - 0x484], eax
mov ecx, dword [ebp - 0x484]
push ecx
lea edx, [ebp - 0x520]
push edx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040d200
mov eax, dword [ebp - 0x344]
mov cx, word [eax + 0x2840]
add cx, 1
mov edx, dword [ebp - 0x344]
mov word [edx + 0x2840], cx
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x283e]
push ecx
push str.process_com_port_data:sframe_id_required:timeout_error:skip_sframe:_d
lea edx, [ebp - 0x2b0]
push edx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x480]
mov dword [ebp - 0x47c], eax
mov dword [ebp - 4], 0xf
mov ecx, dword [ebp - 0x47c]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2b0]
call fcn.00406240
mov byte [ebp - 0x345], 0
jmp 0x4112df
jmp 0x411177
movzx ecx, byte [ebp - 0x352]
test ecx, ecx
jne 0x411750
cmp dword [ebp - 0x34c], 0xa
jg 0x41165e
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x283a]
mov ecx, dword [ebp - 0x34c]
sub ecx, 1
sub eax, ecx
mov dword [ebp - 0x370], eax
jns 0x41132d
mov edx, dword [ebp - 0x370]
add edx, 0x10000
mov dword [ebp - 0x370], edx
mov eax, dword [ebp - 0x34c]
sub eax, 1
push eax
mov ecx, dword [ebp - 0x370]
push ecx
push str.r_d._d_r_n
lea edx, [ebp - 0x298]
push edx
call fcn.00418d50
add esp, 0x10
mov dword [ebp - 0x478], eax
mov eax, dword [ebp - 0x478]
push eax
lea ecx, [ebp - 0x28]
call fcn.00402710
mov dword [ebp - 4], 0x10
lea ecx, [ebp - 0x298]
call fcn.00406240
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x2856]
cmp dword [ebp - 0x34c], edx
jle 0x4113a3
mov eax, dword [ebp - 0x344]
movzx ecx, byte [eax + 0x2848]
test ecx, ecx
je 0x41148c
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x2856]
sub eax, dword [ebp - 0x34c]
mov ecx, dword [ebp - 0x344]
mov word [ecx + 0x2856], ax
lea ecx, [ebp - 0x28]
call fcn.00404660
push eax
mov edx, dword [ebp - 0x344]
movzx eax, word [edx + 0x2846]
push eax
push str.process_com_port_data:sframe_resend_request:_u_x__s
lea ecx, [ebp - 0x100]
push ecx
call fcn.00418d50
add esp, 0x10
mov dword [ebp - 0x474], eax
mov edx, dword [ebp - 0x474]
mov dword [ebp - 0x470], edx
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x470]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x100]
call fcn.00406240
mov dword [ebp - 0x398], 1
jmp 0x411442
mov eax, dword [ebp - 0x398]
add eax, 1
mov dword [ebp - 0x398], eax
mov ecx, dword [ebp - 0x344]
movzx edx, word [ecx + 0x2846]
cmp dword [ebp - 0x398], edx
jg 0x411475
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x510], esp
lea eax, [ebp - 0x28]
push eax
call fcn.00405e60
call fcn.00415af0
add esp, 0x18
jmp 0x411433
mov ecx, dword [ebp - 0x344]
mov edx, dword [ecx + 0x2820]
mov dword [ebp - 0x3ac], edx
jmp 0x4115e2
lea ecx, [ebp - 0x28]
call fcn.00404660
push eax
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x2856]
push ecx
push str.process_com_port_data:resend_suppressed:bugdet:_d:sframe_resend_request:_s
lea edx, [ebp - 0x268]
push edx
call fcn.00418d50
add esp, 0x10
mov dword [ebp - 0x46c], eax
mov eax, dword [ebp - 0x46c]
mov dword [ebp - 0x468], eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x468]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x268]
call fcn.00406240
mov dword [ebp - 0x3ac], 0
lea ecx, [ebp - 0x28]
call fcn.00404660
push eax
push str.suppressed_b_:_s
lea ecx, [ebp - 0x250]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x464], eax
mov edx, dword [ebp - 0x464]
mov dword [ebp - 0x460], edx
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x460]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x250]
call fcn.00406240
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x344]
mov dx, word [ecx + 0x283a]
mov word [eax + 0x2840], dx
mov eax, dword [ebp - 0x34c]
push eax
push str.process_com_port_data:suppressed_resend:skip_sframes:_d
lea ecx, [ebp - 0x238]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x45c], eax
mov edx, dword [ebp - 0x45c]
mov dword [ebp - 0x458], edx
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x458]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x238]
call fcn.00406240
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040cc70
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040cc70
mov dword [ebp - 0x384], 0
jmp 0x4115fd
mov eax, dword [ebp - 0x384]
add eax, 1
mov dword [ebp - 0x384], eax
mov ecx, dword [ebp - 0x34c]
sub ecx, 1
cmp dword [ebp - 0x384], ecx
jge 0x41164a
mov edx, dword [ebp - 0x370]
add edx, dword [ebp - 0x384]
mov word [ebp - 0x4c8], dx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3ac]
mov dword [ebp - 0x4c4], eax
lea ecx, [ebp - 0x4c8]
push ecx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.00413e40
jmp 0x4115ee
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00402d10
jmp 0x411750
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x344]
mov cx, word [eax + 0x283a]
mov word [edx + 0x2840], cx
mov edx, dword [ebp - 0x34c]
push edx
push 0x42a1b8
lea eax, [ebp - 0x220]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x454], eax
mov ecx, dword [ebp - 0x454]
mov dword [ebp - 0x490], ecx
mov dword [ebp - 4], 0x15
mov ecx, dword [ebp - 0x490]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x220]
call fcn.00406240
mov edx, dword [ebp - 0x34c]
push edx
push str.suppressed_fw_limit_:_d
lea eax, [ebp - 0x208]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3ec], eax
mov ecx, dword [ebp - 0x3ec]
mov dword [ebp - 0x3f0], ecx
mov dword [ebp - 4], 0x16
mov ecx, dword [ebp - 0x3f0]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x208]
call fcn.00406240
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040cc70
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040cc70
jmp 0x411a07
cmp dword [ebp - 0x34c], 0x14
jle 0x411859
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x344]
mov cx, word [eax + 0x283a]
mov word [edx + 0x2840], cx
mov edx, dword [ebp - 0x34c]
push edx
push str.process_com_port_data:suppressed_resend:sframe_buffer_exceeded:skip_sframes:_d
lea eax, [ebp - 0x1d8]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3f4], eax
mov ecx, dword [ebp - 0x3f4]
mov dword [ebp - 0x3f8], ecx
mov dword [ebp - 4], 0x17
mov ecx, dword [ebp - 0x3f8]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d8]
call fcn.00406240
mov edx, dword [ebp - 0x34c]
push edx
push str.suppressed_m_:_d
lea eax, [ebp - 0x1c0]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x3fc], eax
mov ecx, dword [ebp - 0x3fc]
mov dword [ebp - 0x400], ecx
mov dword [ebp - 4], 0x18
mov ecx, dword [ebp - 0x400]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c0]
call fcn.00406240
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040cc70
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040cc70
jmp 0x411a07
mov edx, dword [ebp - 0x34c]
push edx
push str.process_com_port_data:resent_frame_too_late:delta:_d
lea eax, [ebp - 0xe8]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x404], eax
mov ecx, dword [ebp - 0x404]
mov dword [ebp - 0x408], ecx
mov dword [ebp - 4], 0x19
mov ecx, dword [ebp - 0x408]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.00406240
push str.resent_frame_too_late
lea edx, [ebp - 0x1a8]
push edx
call fcn.00418d50
add esp, 8
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x40c]
mov dword [ebp - 0x410], eax
mov dword [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x410]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1a8]
call fcn.00406240
mov eax, dword [ebp - 0x34c]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x411a07
mov ecx, dword [ebp - 0x34c]
push ecx
push str.process_com_port_data:resent_frame_too_late:exceeds_resync_threshold:delta:_d
lea edx, [ebp - 0x190]
push edx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x414], eax
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x418], eax
mov dword [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x418]
call fcn.00404660
push eax
call fcn.004194a0
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00406240
push str.sframe_resync
lea ecx, [ebp - 0x178]
push ecx
call fcn.00418d50
add esp, 8
mov dword [ebp - 0x41c], eax
mov edx, dword [ebp - 0x41c]
mov dword [ebp - 0x420], edx
mov dword [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x420]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x178]
call fcn.00406240
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x344]
mov dx, word [ecx + 0x283a]
mov word [eax + 0x2840], dx
mov ecx, dword [ebp - 0x344]
add ecx, 0x2810
call fcn.0040cc70
mov ecx, dword [ebp - 0x344]
add ecx, 0x2824
call fcn.0040cc70
jmp 0x41098b
jmp 0x411a2a
mov eax, dword [ebp - 0x350]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 8
push ecx
mov ecx, dword [ebp - 0x344]
call fcn.0040ecb0
jmp 0x411dd9
mov edx, dword [0x439df4]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edx*4]
mov edx, dword [0x438940]
cmp edx, dword [ecx + 4]
jle 0x411a94
push 0x438940
call fcn.004250f6
add esp, 4
cmp dword [0x438940], 0xffffffff
jne 0x411a94
mov dword [ebp - 4], 0x1d
mov ecx, 0x438928
call fcn.00406070
push 0x427b70
call fcn.00424cdf
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x438940
call fcn.004250a5
add esp, 4
cmp dword [ebp - 0x350], 0
je 0x411dd9
cmp dword [ebp - 0x350], 0
jle 0x411dd9
cmp dword [ebp - 0x350], 0x1e
jge 0x411dd9
mov eax, dword [ebp - 0x344]
movzx ecx, word [eax + 0x28d0]
cmp dword [ebp - 0x350], ecx
jge 0x411dd9
cmp dword [0x435990], 0
jge 0x411b02
mov edx, dword [ebp - 0x350]
push edx
mov eax, dword [ebp - 0x344]
add eax, 0x200a
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 8
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [ebp - 0x344]
add edx, dword [ebp - 0x350]
mov byte [edx + 8], 0
mov byte [ebp - 0x353], 1
mov dword [ebp - 0x388], 0
jmp 0x411b34
mov eax, dword [ebp - 0x388]
add eax, 1
mov dword [ebp - 0x388], eax
mov ecx, dword [ebp - 0x388]
cmp ecx, dword [ebp - 0x350]
jae 0x411b92
mov edx, dword [ebp - 0x344]
add edx, dword [ebp - 0x388]
mov al, byte [edx + 8]
mov byte [ebp - 0x351], al
movsx ecx, byte [ebp - 0x351]
cmp ecx, 0x20
jl 0x411b6f
movsx edx, byte [ebp - 0x351]
cmp edx, 0x7f
jle 0x411b87
movsx eax, byte [ebp - 0x351]
cmp eax, 0xd
je 0x411b87
movsx ecx, byte [ebp - 0x351]
cmp ecx, 0xa
jne 0x411b89
jmp 0x411b90
mov byte [ebp - 0x353], 0
jmp 0x411b25
movzx edx, byte [ebp - 0x353]
test edx, edx
je 0x411d9a
mov eax, dword [ebp - 0x344]
add eax, 8
push eax
mov ecx, 0x438928
call fcn.0040c870
push 0xffffffffffffffff
push 0x42a338
mov ecx, 0x438928
call fcn.0040d380
cmp eax, 0xffffffff
je 0x411d9a
mov ecx, 0x438928
call fcn.00418f50
mov ecx, 0x438928
call fcn.00404660
push eax
push str.ASCII_Mode:_s
lea ecx, [ebp - 0x160]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x424], eax
mov edx, dword [ebp - 0x424]
mov dword [ebp - 0x428], edx
mov dword [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x428]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00406240
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x514], esp
push str.FW_REV
call fcn.00405ef0
mov ecx, 0x438928
call fcn.00418ec0
mov byte [ebp - 0x354], al
movzx eax, byte [ebp - 0x354]
test eax, eax
je 0x411cdd
mov ecx, 0x438928
call fcn.00404660
push eax
push str.detected_firmware:_s
lea ecx, [ebp - 0x148]
push ecx
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x42c], eax
mov edx, dword [ebp - 0x42c]
mov dword [ebp - 0x430], edx
mov dword [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x430]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x148]
call fcn.00406240
push 0x438928
mov ecx, 0x438980
call fcn.00406310
jmp 0x411d62
push 0xffffffffffffffff
push str.Master
mov ecx, 0x438928
call fcn.004140b0
cmp eax, 0xffffffff
je 0x411d62
mov ecx, 0x438928
call fcn.00404660
push eax
push str.detected_firmware_type:_s
lea eax, [ebp - 0x1f0]
push eax
call fcn.00418d50
add esp, 0xc
mov dword [ebp - 0x434], eax
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 0x438], ecx
mov dword [ebp - 4], 0x20
mov ecx, dword [ebp - 0x438]
call fcn.00404660
push eax
mov ecx, 0x438c48
call fcn.0041ff00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1f0]
call fcn.00406240
push 0x438928
mov ecx, 0x438998
call fcn.00406310
mov ecx, 0x438928
call fcn.0040cbf0
mov ecx, 0x438980
call fcn.00405170
test eax, eax
jbe 0x411d9a
mov ecx, 0x438998
call fcn.00405170
test eax, eax
jbe 0x411d9a
mov edx, dword [ebp - 0x344]
mov byte [edx + 0x28de], 1
call fcn.0040e7c0
push 0x42a390
lea ecx, [ebp - 0x40]
call fcn.00405ef0
mov dword [ebp - 4], 0x21
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x518], esp
lea eax, [ebp - 0x40]
push eax
call fcn.00405e60
call fcn.00415af0
add esp, 0x18
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00402d10
jmp 0x411df6
mov ecx, dword [ebp - 0x344]
mov edx, dword [ecx + 0x28f8]
add edx, 1
mov eax, dword [ebp - 0x344]
mov dword [eax + 0x28f8], edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00424a63
mov esp, ebp
pop ebp
ret 4