Function at 0x41be30
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1824
call fcn.0043b580
mov eax, dword [0x47c554]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0xe000
push 0
push 0x509de0
mov dword [ebp - 0x181c], esi
mov byte [0x5095d0], 0xff
call fcn.0043d400
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventA]
add esp, 0xc
mov edi, 0x509e10
nop dword [eax]
push 0
push 0
push 1
push 0
call ebx
mov dword [edi - 4], eax
call fcn.0043b350
mov dword [edi], eax
add edi, 0x38
cmp edi, 0x517e10
jl 0x41be80
mov edi, 0x509dd4
push 0
push 0
push 1
push 0
call ebx
mov dword [edi], eax
add edi, 4
cmp edi, 0x509de0
jl 0x41bea4
lea eax, [ebp - 0x1824]
push eax
push 0
push 0
push 0x41f3f0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x41de40
push 0
push 0x5095d1
mov dword [0x5095cc], eax
mov byte [ebp - 0x1809], 1
mov dword [0x5095c0], 0
call sub.USBCAN32.dll_UcanInitHardware
mov byte [ebp - 0x17fc], al
push dword [ebp - 0x17fc]
call fcn.0041fae0
add esp, 4
test al, al
je 0x41cf03
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x3e8
call ebx
movzx eax, byte [esi + 0xf40]
push 0
push 0xffffffffffffffff
push eax
movsx eax, word [esi + 0xf40]
shr eax, 8
push eax
movzx eax, byte [0x5095d1]
push eax
call sub.USBCAN32.dll_UcanInitCan
mov byte [ebp - 0x17fc], al
push dword [ebp - 0x17fc]
call fcn.0041fae0
add esp, 4
test al, al
je 0x41cee6
push 0x3e8
call ebx
push 0x9fc
lea eax, [esi + 0xf34]
push 0
push eax
call fcn.0043d400
movzx eax, byte [0x5095d1]
add esp, 0xc
push 0xf002
push 0
push eax
call sub.USBCAN32.dll_UcanResetCanEx
movzx eax, al
push eax
call fcn.0041fae0
xorps xmm0, xmm0
mov word [ebp - 0x17e4], 0
add esp, 4
mov edi, 1
movups xmmword [ebp - 0x17f4], xmm0
nop word [eax + eax]
push edi
push 0x80
push 2
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e4b0
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.00420120
inc edi
add esp, 0x24
cmp edi, 0x7f
jle 0x41bfc0
push 0x3e8
call ebx
xor ebx, ebx
nop dword [eax]
push 0
push 1
push 0x1018
lea edi, [ebx + 1]
push edi
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 1
push eax
call fcn.00420120
add esp, 0x28
mov dword [ebp + ebx*4 - 0x17e0], eax
mov ebx, edi
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp ebx, 0x7e
jle 0x41c000
mov dword [ebp - 0x1818], ebx
nop
xor edi, edi
mov ecx, dword [ebp + edi*4 - 0x17e0]
cmp ecx, 0xffffffff
je 0x41c078
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [eax*8 + 0x509de0]
cmp eax, 1
je 0x41c07d
cmp eax, 2
je 0x41c07d
inc edi
cmp edi, ebx
jl 0x41c052
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, ebx
jl 0x41c050
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
xor edx, edx
mov dword [ebp - 0x1800], edx
nop dword [eax]
mov edi, dword [ebp + edx*4 - 0x17e0]
cmp edi, 0xffffffff
je 0x41c1b0
cmp edi, 0x3ff
ja 0x41c19d
lea ecx, [edi*8]
sub ecx, edi
cmp dword [ecx*8 + 0x509de0], 3
jne 0x41c19d
movups xmm0, xmmword [ecx*8 + 0x509de4]
mov ax, word [ecx*8 + 0x509df4]
mov word [ebp - 0x17e4], ax
movups xmmword [ebp - 0x17f4], xmm0
mov dword [ecx*8 + 0x509de0], 0
psrldq xmm0, 4
movd eax, xmm0
shr eax, 0x10
cmp al, 0x80
je 0x41c1b0
test al, 3
je 0x41c11c
test al, 0xc
jne 0x41c1b0
mov eax, dword [esi + 0xf38]
mov ecx, dword [ebp - 0x17f4]
add ecx, 0xfffffa80
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 0xf44], ecx
mov eax, dword [esi + 0xf38]
mov ecx, dword [ebp - 0x17ec]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 0xf48], 0
mov eax, dword [ebp - 0x17e8]
shr eax, 8
movzx edx, al
movzx eax, byte [ebp - 0x17e8]
shl edx, 8
or edx, eax
mov eax, ecx
shl edx, 8
shr eax, 0x18
or edx, eax
shr ecx, 0x10
shl edx, 8
movzx eax, cl
or edx, eax
mov eax, dword [esi + 0xf38]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 0xf4c], edx
inc dword [esi + 0xf38]
mov edx, dword [ebp - 0x1800]
jmp 0x41c1b8
xorps xmm0, xmm0
mov word [ebp - 0x17e4], 0
movups xmmword [ebp - 0x17f4], xmm0
cmp edi, 0x3ff
ja 0x41c1cc
lea eax, [edi*8]
sub eax, edi
mov dword [eax*8 + 0x509de0], 0
inc edx
mov dword [ebp - 0x1800], edx
cmp edx, ebx
jl 0x41c0a0
xor edi, edi
cmp dword [esi + 0xf38], edi
jle 0x41c242
lea ebx, [esi + 0xf44]
nop dword [eax + eax]
push 0
push 2
push 0x1018
push dword [ebx]
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 1
push eax
call fcn.00420120
add esp, 0x28
mov dword [ebp + edi*4 - 0x17e0], eax
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
lea ebx, [ebx + 0x14]
cmp edi, dword [esi + 0xf38]
jl 0x41c1f0
mov ebx, dword [ebp - 0x1818]
xor edi, edi
mov ecx, dword [ebp + edi*4 - 0x17e0]
cmp ecx, 0xffffffff
je 0x41c26a
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [eax*8 + 0x509de0]
cmp eax, 1
je 0x41c26f
cmp eax, 2
je 0x41c26f
inc edi
cmp edi, ebx
jl 0x41c244
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, dword [esi + 0xf38]
jl 0x41c242
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
xor ebx, ebx
lea eax, [esi + 0xf50]
mov dword [ebp - 0x1818], eax
cmp dword [esi + 0xf38], ebx
jle 0x41c528
mov edx, eax
mov dword [ebp - 0x17fc], eax
nop dword [eax]
mov edi, dword [ebp + ebx*4 - 0x17e0]
cmp edi, 0xffffffff
je 0x41c376
cmp edi, 0x3ff
ja 0x41c363
lea ecx, [edi*8]
sub ecx, edi
cmp dword [ecx*8 + 0x509de0], 3
jne 0x41c363
movups xmm0, xmmword [ecx*8 + 0x509de4]
mov ax, word [ecx*8 + 0x509df4]
mov word [ebp - 0x17e4], ax
movups xmmword [ebp - 0x17f4], xmm0
mov dword [ecx*8 + 0x509de0], 0
psrldq xmm0, 4
movd eax, xmm0
shr eax, 0x10
cmp al, 0x80
je 0x41c376
test al, 3
je 0x41c324
test al, 0xc
jne 0x41c376
mov eax, dword [ebp - 0x17e8]
mov ecx, dword [ebp - 0x17ec]
shr eax, 8
movzx edx, al
movzx eax, byte [ebp - 0x17e8]
shl edx, 8
or edx, eax
mov eax, ecx
shl edx, 8
shr eax, 0x18
or edx, eax
shr ecx, 0x10
shl edx, 8
movzx eax, cl
or edx, eax
mov eax, dword [ebp - 0x17fc]
mov dword [eax], edx
mov edx, eax
jmp 0x41c37e
xorps xmm0, xmm0
mov word [ebp - 0x17e4], 0
movups xmmword [ebp - 0x17f4], xmm0
cmp edi, 0x3ff
ja 0x41c392
lea eax, [edi*8]
sub eax, edi
mov dword [eax*8 + 0x509de0], 0
mov eax, dword [esi + 0xf38]
inc ebx
add edx, 0x14
mov dword [ebp - 0x17fc], edx
cmp ebx, eax
jl 0x41c2b0
xor ebx, ebx
mov dword [ebp - 0x1804], ebx
mov dword [ebp - 0x1800], ebx
test eax, eax
jle 0x41c530
lea edi, [esi + 0xf50]
mov dword [ebp - 0x17f8], edi
nop dword [eax]
cmp dword [edi - 8], 0
jne 0x41c4fc
push dword [edi]
lea eax, [ebp - 0x408]
push dword [edi - 4]
push str.Can_DeviceList_V_08X_D_08X_ModuleDiscoveryMsg
push 0x401
push eax
call fcn.004038d0
push 0
lea eax, [ebp - 0x408]
push eax
push dword [0x4b07c0]
call fcn.00403610
add esp, 0x20
mov dword [ebp - 0x1810], eax
test eax, eax
je 0x41c450
lea ecx, [ebp - 0x17fc]
push ecx
push 0x45cf70
push eax
call fcn.0040c170
add esp, 0xc
cmp eax, 1
je 0x41c43a
mov dword [ebp - 0x17fc], 0
push dword [ebp - 0x1810]
call fcn.0044af5d
mov eax, dword [ebp - 0x17fc]
add esp, 4
jmp 0x41c458
xor eax, eax
mov dword [ebp - 0x17fc], eax
cmp eax, 0x1027
je 0x41c4c2
cmp eax, 0x4002
jne 0x41c4fc
mov esi, dword [ebp - 0x17f8]
mov edi, 1
push 0
push edi
push 0x4002
push dword [esi - 0xc]
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 1
push eax
call fcn.00420120
mov dword [ebp + ebx*4 - 0x17e0], eax
inc edi
add esp, 0x28
inc ebx
cmp edi, 8
jle 0x41c475
mov esi, dword [ebp - 0x181c]
mov edi, dword [ebp - 0x17f8]
jmp 0x41c4fc
push 0
push 0
push 0x1027
push dword [edi - 0xc]
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 1
push eax
call fcn.00420120
add esp, 0x28
mov dword [ebp + ebx*4 - 0x17e0], eax
inc ebx
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x1800]
add edi, 0x14
inc eax
mov dword [ebp - 0x17f8], edi
mov dword [ebp - 0x1800], eax
cmp eax, dword [esi + 0xf38]
jl 0x41c3d0
jmp 0x41c52a
xor ebx, ebx
mov dword [ebp - 0x1804], ebx
xor edi, edi
test ebx, ebx
jle 0x41c56b
nop word [eax + eax]
mov ecx, dword [ebp + edi*4 - 0x17e0]
cmp ecx, 0xffffffff
je 0x41c566
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [eax*8 + 0x509de0]
cmp eax, 1
je 0x41c56b
cmp eax, 2
je 0x41c56b
inc edi
cmp edi, ebx
jl 0x41c540
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, ebx
jl 0x41c530
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
mov dword [ebp - 0x17f8], eax
test ebx, ebx
jle 0x41c8ce
nop dword [eax]
nop word [eax + eax]
mov edi, dword [ebp + eax*4 - 0x17e0]
mov dword [ebp - 0x1810], edi
cmp edi, 0xffffffff
je 0x41c89d
cmp edi, 0x3ff
ja 0x41c882
lea ecx, [edi*8]
sub ecx, edi
cmp dword [ecx*8 + 0x509de0], 3
jne 0x41c882
movups xmm0, xmmword [ecx*8 + 0x509de4]
mov ax, word [ecx*8 + 0x509df4]
mov dword [ecx*8 + 0x509de0], 0
movups xmmword [ebp - 0x17f4], xmm0
mov word [ebp - 0x17e4], ax
psrldq xmm0, 4
movd edx, xmm0
mov ecx, edx
shr ecx, 0x10
cmp cl, 0x80
je 0x41c897
movzx eax, byte [ebp - 0x17ec]
shl eax, 8
shr edx, 0x18
add eax, edx
cmp eax, 0x1027
je 0x41c770
cmp eax, 0x4002
jne 0x41c897
test cl, 3
je 0x41c8a5
and cl, 0xc
cmp cl, 8
jne 0x41c8a5
mov ecx, dword [esi + 0xf38]
xor edx, edx
mov dword [ebp - 0x1800], edx
test ecx, ecx
jle 0x41c68f
mov edi, dword [ebp - 0x17f4]
lea eax, [esi + 0xf48]
add edi, 0xfffffa80
cmp dword [eax - 4], edi
jne 0x41c681
cmp dword [eax], 0
je 0x41c689
inc edx
add eax, 0x14
cmp edx, ecx
jl 0x41c677
mov dword [ebp - 0x1800], edx
movzx eax, byte [ebp - 0x17e9]
xor ecx, ecx
mov ebx, dword [ebp - 0x17f4]
shl eax, 8
mov dword [ebp - 0x17fc], eax
movzx eax, byte [ebp - 0x17ea]
lea edi, [ecx + 1]
or dword [ebp - 0x17fc], eax
mov eax, dword [ebp - 0x17fc]
mov dword [ebp - 0x1808], ecx
test eax, edi
je 0x41c74d
mov eax, dword [esi + 0xf38]
lea ecx, [ebx - 0x580]
lea edx, [edx + edx*4]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 0xf44], ecx
movzx eax, byte [ebp - 0x17eb]
mov ecx, dword [ebp - 0x1808]
shl eax, 4
add ecx, 0xfffffff1
add ecx, eax
mov eax, dword [esi + 0xf38]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 0xf48], ecx
mov eax, dword [esi + 0xf38]
lea ecx, [eax + eax*4]
mov eax, dword [esi + edx*4 + 0xf4c]
mov edx, dword [ebp - 0x1800]
mov dword [esi + ecx*4 + 0xf4c], eax
mov eax, dword [esi + 0xf38]
mov ecx, dword [ebp - 0x1808]
add eax, 0xc4
lea eax, [eax + eax*4]
mov dword [esi + eax*4], 0
inc dword [esi + 0xf38]
mov eax, dword [ebp - 0x17fc]
inc ecx
rol edi, 1
mov dword [ebp - 0x1808], ecx
cmp ecx, 0x10
jl 0x41c6c3
mov ebx, dword [ebp - 0x1804]
mov edi, dword [ebp - 0x1810]
jmp 0x41c8a5
mov al, byte [ebp - 0x17ee]
test al, 3
je 0x41c8a5
and al, 0xc
cmp al, 0xc
jne 0x41c897
mov edx, dword [esi + 0xf38]
xor ecx, ecx
test edx, edx
jle 0x41c7c9
mov eax, dword [ebp - 0x17f4]
add eax, 0xfffffa80
mov dword [ebp - 0x1800], eax
lea eax, [esi + 0xf48]
mov ebx, dword [ebp - 0x1800]
cmp dword [eax - 4], ebx
jne 0x41c7bb
cmp dword [eax], 0
je 0x41c7c3
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x41c7b1
mov ebx, dword [ebp - 0x1804]
movzx eax, byte [ebp - 0x17ea]
mov dword [ebp - 0x1808], eax
mov dword [ebp - 0x1800], 0
test eax, eax
je 0x41c897
mov edi, dword [ebp - 0x1800]
lea eax, [ecx*4 + 0x3d3]
mov ebx, dword [ebp - 0x1808]
add eax, ecx
lea eax, [esi + eax*4]
mov dword [ebp - 0x17fc], eax
nop word [eax + eax]
mov ecx, dword [ebp - 0x17f4]
lea eax, [edx + edx*4]
add ecx, 0xfffffa80
inc edi
mov dword [esi + eax*4 + 0xf44], ecx
mov eax, dword [esi + 0xf38]
lea eax, [eax + eax*4]
mov dword [esi + eax*4 + 0xf48], edi
mov eax, dword [esi + 0xf38]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x17fc]
mov eax, dword [eax]
mov dword [esi + ecx*4 + 0xf4c], eax
mov eax, dword [esi + 0xf38]
add eax, 0xc4
lea eax, [eax + eax*4]
mov dword [esi + eax*4], 0
inc dword [esi + 0xf38]
mov edx, dword [esi + 0xf38]
cmp edi, ebx
jl 0x41c810
mov edi, dword [ebp - 0x1810]
mov ebx, dword [ebp - 0x1804]
jmp 0x41c8a5
xorps xmm0, xmm0
mov word [ebp - 0x17e4], 0
movups xmmword [ebp - 0x17f4], xmm0
jmp 0x41c89d
mov eax, dword [ebp - 0x17f8]
cmp edi, 0x3ff
ja 0x41c8bf
lea eax, [edi*8]
sub eax, edi
mov dword [eax*8 + 0x509de0], 0
mov eax, dword [ebp - 0x17f8]
inc eax
mov dword [ebp - 0x17f8], eax
cmp eax, ebx
jl 0x41c5a0
mov edx, dword [esi + 0xf38]
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x1804], ebx
mov dword [ebp - 0x1810], eax
test edx, edx
jle 0x41cc13
lea ecx, [esi + 0xf44]
mov dword [ebp - 0x17f8], eax
lea edi, [esi + 0xf48]
mov dword [ebp - 0x1800], ecx
mov dword [ebp - 0x17fc], edi
nop word [eax + eax]
cmp dword [edi + 8], 0
jne 0x41cbec
cmp dword [edi], 0
je 0x41cbec
xor ecx, ecx
test edx, edx
jle 0x41c95b
mov eax, dword [ebp - 0x1800]
mov eax, dword [eax]
mov dword [ebp - 0x1814], eax
lea eax, [esi + 0xf48]
mov ebx, dword [ebp - 0x1814]
cmp dword [eax - 4], ebx
jne 0x41c94d
cmp dword [eax], 0
je 0x41c955
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x41c943
mov ebx, dword [ebp - 0x1804]
lea eax, [ecx + ecx*4]
push dword [esi + eax*4 + 0xf50]
lea eax, [ecx + ecx*4]
push dword [esi + eax*4 + 0xf4c]
lea eax, [ebp - 0x408]
push str.Can_DeviceList_V_08X_D_08X_ModuleDiscoveryMsg
push 0x401
push eax
call fcn.004038d0
push 0
lea eax, [ebp - 0x408]
push eax
push dword [0x4b07c0]
call fcn.00403610
add esp, 0x20
mov dword [ebp - 0x1814], eax
test eax, eax
je 0x41c9e0
lea ecx, [ebp - 0x1808]
push ecx
push 0x45cf70
push eax
call fcn.0040c170
add esp, 0xc
cmp eax, 1
je 0x41c9ca
mov dword [ebp - 0x1808], 0
push dword [ebp - 0x1814]
call fcn.0044af5d
mov eax, dword [ebp - 0x1808]
add esp, 4
jmp 0x41c9e8
xor eax, eax
mov dword [ebp - 0x1808], eax
cmp eax, 0x1027
je 0x41cb89
cmp eax, 0x4002
jne 0x41cbd8
push 0
push dword [edi]
lea eax, [ebp - 0x17f4]
push 0x6000
push dword [edi - 4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 1
push eax
call fcn.00420120
mov ecx, dword [ebp - 0x17f8]
push 0
push dword [edi]
push 0x6100
push dword [edi - 4]
mov dword [ebp + ecx - 0x17e0], eax
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
add esp, 0x40
lea eax, [ebp - 0x17f4]
push 0x1f4
push 0
push 1
push eax
call fcn.00420120
mov ecx, dword [ebp - 0x17f8]
push 0
push dword [edi]
push 0x6120
push dword [edi - 4]
mov dword [ebp + ecx - 0x17dc], eax
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 1
push eax
call fcn.00420120
mov ecx, dword [ebp - 0x17f8]
push 0
push dword [edi]
push 0x6200
push dword [edi - 4]
mov dword [ebp + ecx - 0x17d8], eax
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
add esp, 0x50
lea eax, [ebp - 0x17f4]
push 0x1f4
push 0
push 1
push eax
call fcn.00420120
mov ecx, dword [ebp - 0x17f8]
push 0
mov dword [ebp + ecx - 0x17d4], eax
lea edi, [ecx + 0x10]
mov eax, dword [ebp - 0x17fc]
push dword [eax]
push 0x6300
push dword [eax - 4]
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
push 1
lea eax, [ebp - 0x17f4]
push eax
call fcn.00420120
mov dword [ebp + edi - 0x17e0], eax
mov eax, dword [ebp - 0x17fc]
push 0
push dword [eax]
push 0x6320
push dword [eax - 4]
lea eax, [ebp - 0x17f4]
push 0
push eax
call fcn.0041e500
add esp, 0x50
lea eax, [ebp - 0x17f4]
push 0x1f4
push 0
push 1
push eax
call fcn.00420120
mov dword [ebp + edi - 0x17dc], eax
add esp, 0x10
lea eax, [edi + 8]
add ebx, 6
mov edi, dword [ebp - 0x17fc]
mov dword [ebp - 0x17f8], eax
jmp 0x41cbd2
push 0
push dword [edi]
lea eax, [ebp - 0x17f4]
push 0x1027
push dword [edi - 4]
push 0
push eax
call fcn.0041e500
push 0x1f4
push 0
lea eax, [ebp - 0x17f4]
push 1
push eax
call fcn.00420120
mov ecx, dword [ebp - 0x17f8]
add esp, 0x28
inc ebx
mov dword [ebp + ecx - 0x17e0], eax
add ecx, 4
mov dword [ebp - 0x17f8], ecx
mov dword [ebp - 0x1804], ebx
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x1810]
mov ecx, dword [ebp - 0x1800]
mov edx, dword [esi + 0xf38]
inc eax
add ecx, 0x14
mov dword [ebp - 0x1810], eax
add edi, 0x14
mov dword [ebp - 0x1800], ecx
mov dword [ebp - 0x17fc], edi
cmp eax, edx
jl 0x41c910
xor edi, edi
test ebx, ebx
jle 0x41cc4b
nop dword [eax]
mov ecx, dword [ebp + edi*4 - 0x17e0]
cmp ecx, 0xffffffff
je 0x41cc46
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [eax*8 + 0x509de0]
cmp eax, 1
je 0x41cc4b
cmp eax, 2
je 0x41cc4b
inc edi
cmp edi, ebx
jl 0x41cc20
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, ebx
jl 0x41cc13
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
mov dword [ebp - 0x17f8], eax
test ebx, ebx
jle 0x41cea9
nop dword [eax]
nop word [eax + eax]
mov edi, dword [ebp + eax*4 - 0x17e0]
cmp edi, 0xffffffff
je 0x41ce78
cmp edi, 0x3ff
ja 0x41ce9a
lea ecx, [edi*8]
sub ecx, edi
cmp dword [ecx*8 + 0x509de0], 3
jne 0x41ce78
movups xmm0, xmmword [ecx*8 + 0x509de4]
mov dword [ecx*8 + 0x509de0], 0
movups xmmword [ebp - 0x17f4], xmm0
psrldq xmm0, 4
movd edx, xmm0
mov ecx, edx
shr ecx, 0x10
cmp cl, 0x80
je 0x41ce72
movzx eax, byte [ebp - 0x17ec]
shl eax, 8
shr edx, 0x18
add edx, eax
cmp edx, 0x6120
ja 0x41cde4
je 0x41cdf9
cmp edx, 0x1027
je 0x41cd2a
cmp edx, 0x6000
je 0x41cdf9
cmp edx, 0x6100
je 0x41cdf9
jmp 0x41ce80
test cl, 3
je 0x41ce80
and cl, 0xc
cmp cl, 8
jne 0x41ce72
mov ebx, dword [esi + 0xf38]
xor edx, edx
test ebx, ebx
jle 0x41cd80
mov eax, dword [ebp - 0x17f4]
lea ecx, [esi + 0xf48]
add eax, 0xfffffa80
mov dword [ebp - 0x1814], eax
cmp dword [ecx - 4], eax
jne 0x41cd78
movzx eax, byte [ebp - 0x17eb]
cmp dword [ecx], eax
je 0x41cdb8
mov eax, dword [ebp - 0x1814]
inc edx
add ecx, 0x14
cmp edx, ebx
jl 0x41cd62
movzx ecx, byte [ebp - 0x17e9]
movzx eax, byte [ebp - 0x17ea]
shl ecx, 8
add ecx, eax
mov eax, dword [ebp - 0x17f4]
push ecx
add eax, 0xfffffa80
push eax
push str.Unexpected_device__08X_on_node__u_during_detection
call fcn.0040e800
mov ebx, dword [ebp - 0x1804]
add esp, 0xc
jmp 0x41ce80
cmp edx, ebx
jge 0x41cd80
movzx ecx, byte [ebp - 0x17e9]
movzx eax, byte [ebp - 0x17ea]
mov ebx, dword [ebp - 0x1804]
shl ecx, 8
or ecx, eax
lea eax, [edx + edx*4]
mov dword [esi + eax*4 + 0xf50], ecx
jmp 0x41ce80
mov eax, edx
sub eax, 0x6200
je 0x41cdf9
sub eax, 0x100
je 0x41cdf9
sub eax, 0x20
jne 0x41ce72
mov al, byte [ebp - 0x17ee]
test al, 3
je 0x41ce80
and al, 0xc
cmp al, 8
jne 0x41ce72
mov ebx, dword [esi + 0xf38]
xor ecx, ecx
test ebx, ebx
jle 0x41ce4a
mov eax, dword [ebp - 0x1818]
nop dword [eax + eax]
mov esi, dword [ebp - 0x17f4]
add esi, 0xfffffa80
cmp dword [eax - 0xc], esi
mov esi, dword [ebp - 0x181c]
mov ebx, dword [esi + 0xf38]
jne 0x41ce42
cmp dword [eax], 0
je 0x41ce5c
inc ecx
add eax, 0x14
cmp ecx, ebx
jl 0x41ce20
mov eax, dword [ebp - 0x17f4]
add eax, 0xfffffa80
push eax
push edx
jmp 0x41cda0
cmp ecx, ebx
jge 0x41ce4a
mov ebx, dword [ebp - 0x1804]
lea eax, [ecx + ecx*4]
mov dword [esi + eax*4 + 0xf50], edx
jmp 0x41ce80
mov eax, dword [ebp - 0x17f8]
cmp edi, 0x3ff
ja 0x41ce9a
lea eax, [edi*8]
sub eax, edi
mov dword [eax*8 + 0x509de0], 0
mov eax, dword [ebp - 0x17f8]
inc eax
mov dword [ebp - 0x17f8], eax
cmp eax, ebx
jl 0x41cc80
push 0x41e5a0
push 0x14
push dword [esi + 0xf38]
add esi, 0xf44
push esi
call fcn.0044a570
movzx eax, byte [0x5095d1]
add esp, 0x10
push eax
call sub.USBCAN32.dll_UcanDeinitCan
movzx eax, al
push eax
call fcn.0041fae0
mov bl, byte [ebp - 0x1809]
add esp, 4
jmp 0x41cee8
xor bl, bl
movzx eax, byte [0x5095d1]
push eax
call sub.USBCAN32.dll_UcanDeinitHardware
movzx eax, al
push eax
call fcn.0041fae0
add esp, 4
jmp 0x41cf05
xor bl, bl
push dword [0x509dd4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov esi, dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
lea eax, [ebp - 0x1820]
push eax
push dword [0x5095cc]
call esi
cmp eax, 1
jne 0x41cf53
mov edi, dword [sym.imp.KERNEL32.dll_SwitchToThread]
cmp dword [ebp - 0x1820], 0x103
jne 0x41cf53
call edi
lea eax, [ebp - 0x1820]
push eax
push dword [0x5095cc]
call esi
cmp eax, 1
je 0x41cf31
push dword [0x5095cc]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
mov esi, 0x509dd4
push dword [esi]
call edi
add esi, 4
cmp esi, 0x509de0
jl 0x41cf66
mov esi, 0x509e10
nop word [eax + eax]
push dword [esi - 4]
call edi
push dword [esi]
call fcn.0043b340
add esi, 0x38
add esp, 4
cmp esi, 0x517e10
jl 0x41cf80
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043b572
mov esp, ebp
pop ebp
ret