Function at 0x408ed0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4cd169
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x870
mov eax, dword [esp + 0x880]
push ebx
xor ebx, ebx
push ebp
push esi
mov byte [eax + 0x24], bl
mov byte [eax + 0x38], bl
mov byte [eax + 0x4c], bl
mov eax, dword [str.ECOP_CL_RES_CONFIG]
push edi
mov edi, ecx
push eax
mov dword [esp + 0x28], edi
mov byte [esp + 0x880], bl
mov byte [esp + 0x47c], bl
mov byte [esp + 0x78], bl
call fcn.0044b1e0
mov ecx, eax
call fcn.0044b650
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x408f72
mov ecx, dword [str.ECOP_CL_RES_CONFIG]
lea edx, [edi + 0x55]
push ecx
push 0x4e05ac
push 0xfff
push edx
call fcn.00466ca7
mov ecx, dword [0x4d1764]
mov eax, dword [edi]
add esp, 0x10
push 0x544
push str.GetBackupInfo__
push ecx
mov ecx, edi
call dword [eax + 0x10]
mov eax, 0x10
jmp 0x4096cf
mov edx, dword [str.SOFTWAREBaosightlsagenthardware]
mov ecx, eax
push edx
call fcn.0043f780
cmp eax, ebx
jne 0x408fac
mov eax, dword [str.SOFTWAREBaosightlsagenthardware]
lea ecx, [edi + 0x55]
push eax
push 0x4e0a5c
push 0xfff
push ecx
call fcn.00466ca7
mov edx, dword [edi]
add esp, 0x10
push 0x54c
jmp 0x40953d
mov ebp, dword [eax + 0x44]
cmp ebp, ebx
je 0x409272
jmp 0x408fbd
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x20]
push eax
mov eax, dword [0x4d17e0]
lea edx, [esp + 0x7c]
push ecx
push edx
push eax
mov ecx, ebp
mov dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0x400
call fcn.0043f300
cmp eax, 0x10
jae 0x4092b3
push 0x34
call fcn.00467824
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
cmp esi, ebx
mov dword [esp + 0x888], ebx
je 0x409059
mov cl, byte [esp + 0x13]
sub esp, 0x10
mov edx, esp
lea edi, [esp + 0x88]
xor eax, eax
mov dword [esp + 0x28], esp
mov byte [edx], cl
or ecx, 0xffffffff
mov dword [edx + 4], ebx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x88]
push ecx
push eax
mov ecx, edx
call fcn.0040dc30
mov ecx, esi
call fcn.00483fa0
mov edi, dword [esp + 0x24]
mov esi, eax
mov dword [esp + 0x18], esi
jmp 0x40905f
mov dword [esp + 0x18], ebx
mov esi, ebx
cmp esi, ebx
mov dword [esp + 0x888], 0xffffffff
je 0x4092f9
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
mov ecx, dword [str.deviceid]
lea eax, [esp + 0x7c]
push edx
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0x400
call fcn.0043f300
cmp eax, 0x10
jae 0x409348
mov al, byte [esp + 0x13]
sub esp, 0x10
mov edx, esp
lea edi, [esp + 0x88]
or ecx, 0xffffffff
mov dword [esp + 0x38], esp
mov byte [edx], al
xor eax, eax
mov dword [edx + 4], ebx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x8c]
push ecx
mov ecx, edx
call fcn.0040dc30
mov ecx, esi
call fcn.00484750
mov eax, 4
lea edx, [esp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x20]
push edx
mov edx, dword [str.propertycount]
lea ecx, [esp + 0x30]
push eax
push ecx
push edx
mov ecx, ebp
call fcn.0043f300
cmp eax, 0x10
jae 0x409371
mov eax, dword [esp + 0x2c]
xor esi, esi
cmp eax, ebx
jbe 0x409247
mov eax, dword [str.propertyname]
push esi
push eax
push str._s_d
lea ecx, [esp + 0x40]
push 0x40
push ecx
call fcn.00466ca7
add esp, 0x14
lea edx, [esp + 0x1c]
lea eax, [esp + 0x20]
lea ecx, [esp + 0x78]
push edx
push eax
lea edx, [esp + 0x3c]
mov edi, 1
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], 0x400
call fcn.0043f300
cmp eax, 0x10
jae 0x4093ab
mov eax, dword [str.propertyvalue]
push esi
push eax
push str._s_d
lea ecx, [esp + 0x40]
push 0x40
push ecx
call fcn.00466ca7
add esp, 0x14
lea edx, [esp + 0x1c]
lea eax, [esp + 0x20]
lea ecx, [esp + 0x47c]
push edx
push eax
lea edx, [esp + 0x3c]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], 0x400
call fcn.0043f300
cmp eax, 0x10
jae 0x4093e4
mov al, byte [esp + 0x13]
sub esp, 0x10
mov edx, esp
lea edi, [esp + 0x48c]
or ecx, 0xffffffff
mov dword [esp + 0x38], esp
mov byte [edx], al
xor eax, eax
mov dword [edx + 4], ebx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x490]
push ecx
mov ecx, edx
call fcn.0040dc30
sub esp, 0x10
lea edx, [esp + 0x33]
mov ecx, esp
mov dword [esp + 0x50], esp
lea eax, [esp + 0x98]
push edx
push eax
mov dword [esp + 0x8b0], 1
call fcn.0040d2c0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x8a8], 0xffffffff
call fcn.00484570
mov eax, dword [esp + 0x2c]
inc esi
cmp esi, eax
jb 0x409129
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x894]
call fcn.00480840
mov ebp, dword [ebp + 0x4c]
cmp ebp, ebx
jne 0x408fb9
mov eax, dword [esp + 0x890]
mov edi, dword [esp + 0x24]
mov byte [eax + 0x24], 1
mov ecx, dword [str.SOFTWAREBaosightlsagent_software]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0043f780
cmp eax, ebx
jne 0x40941d
mov edx, dword [str.SOFTWAREBaosightlsagent_software]
lea eax, [edi + 0x55]
push edx
push 0x4e0a5c
push 0xfff
push eax
call fcn.00466ca7
mov edx, dword [edi]
add esp, 0x10
push 0x5a9
jmp 0x40953d
mov edx, dword [0x4d17e0]
lea eax, [edi + 0x55]
push edx
push ebp
push 0x4e0a3c
push 0xfff
push eax
call fcn.00466ca7
mov edx, dword [edi]
add esp, 0x14
push 0x55c
mov eax, dword [0x4d1760]
push str.GetBackupInfo__
push eax
mov ecx, edi
call dword [edx + 0x10]
mov edx, dword [str.ECOP_CL_RES_CONFIG]
lea ecx, [esp + 0x14]
push ecx
push edx
jmp 0x409724
push 0x4e0a1c
lea eax, [edi + 0x55]
push 0xfff
push eax
call fcn.00466ca7
mov eax, dword [0x4d1764]
mov edx, dword [edi]
add esp, 0xc
mov ecx, edi
push 0x563
push str.GetBackupInfo__
push eax
call dword [edx + 0x10]
mov edx, dword [str.ECOP_CL_RES_CONFIG]
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.0044b1e0
mov ecx, eax
call fcn.0044b740
mov eax, 0x12
jmp 0x4096cf
mov eax, dword [str.deviceid]
lea ecx, [edi + 0x55]
push eax
push ebp
push 0x4e0a3c
push 0xfff
push ecx
call fcn.00466ca7
mov edx, dword [edi]
add esp, 0x14
push 0x56f
jmp 0x4092d8
mov eax, dword [str.propertycount]
mov esi, dword [esp + 0x24]
push eax
push ebp
push 0x4e0a3c
lea ecx, [esi + 0x55]
push 0xfff
push ecx
call fcn.00466ca7
mov eax, dword [0x4d1760]
mov edx, dword [esi]
add esp, 0x14
mov ecx, esi
push 0x57c
push str.GetBackupInfo__
push eax
jmp 0x4092e5
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x34]
push eax
push ebp
push 0x4e0a3c
lea ecx, [esi + 0x55]
push 0xfff
push ecx
call fcn.00466ca7
mov eax, dword [0x4d1760]
mov edx, dword [esi]
add esp, 0x14
mov ecx, esi
push 0x58b
push str.GetBackupInfo__
push eax
jmp 0x4092e5
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x34]
push eax
push ebp
push 0x4e0a3c
lea ecx, [esi + 0x55]
push 0xfff
push ecx
call fcn.00466ca7
mov eax, dword [0x4d1760]
mov edx, dword [esi]
add esp, 0x14
mov ecx, esi
push 0x597
push str.GetBackupInfo__
push eax
jmp 0x4092e5
mov esi, dword [eax + 0x48]
cmp esi, ebx
mov dword [esp + 0x18], esi
je 0x4094f6
jmp 0x409436
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x7c]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], 0x400
call fcn.0043f090
cmp eax, 0x10
jae 0x40956f
mov al, byte [esp + 0x13]
sub esp, 0x10
mov ebp, esp
lea edi, [esp + 0x88]
or ecx, 0xffffffff
mov dword [esp + 0x40], esp
mov byte [ebp], al
xor eax, eax
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
mov ecx, ebp
push edi
mov dword [esp + 0x40], edi
call fcn.00404fd0
test al, al
je 0x4094cc
mov ecx, edi
mov edi, dword [ebp + 4]
mov edx, ecx
lea esi, [esp + 0x88]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x28]
mov dword [ebp + 8], eax
mov byte [ecx + eax], bl
mov ecx, dword [esp + 0x8a0]
call fcn.00480f60
mov esi, dword [esi + 0x50]
cmp esi, ebx
mov dword [esp + 0x18], esi
jne 0x40942e
mov ecx, dword [esp + 0x890]
mov edi, dword [esp + 0x24]
mov byte [ecx + 0x38], 1
call fcn.004753b0
test eax, 0x10000
je 0x4096b6
mov edx, dword [str.SOFTWAREBaosightlsagenthotfix]
mov ecx, dword [esp + 0x14]
push edx
call fcn.0043f780
cmp eax, ebx
jne 0x409592
mov eax, dword [str.SOFTWAREBaosightlsagenthotfix]
lea ecx, [edi + 0x55]
push eax
push 0x4e0a5c
push 0xfff
push ecx
call fcn.00466ca7
mov edx, dword [edi]
add esp, 0x10
push 0x5c7
mov eax, dword [0x4d1760]
push str.GetBackupInfo__
push eax
mov ecx, edi
call dword [edx + 0x10]
mov edx, dword [str.ECOP_CL_RES_CONFIG]
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.0044b1e0
mov ecx, eax
call fcn.0044b740
mov eax, 0x23
jmp 0x4096cf
push esi
push 0x4e0a04
lea edx, [edi + 0x55]
push 0xfff
push edx
call fcn.00466ca7
mov eax, dword [edi]
add esp, 0x10
push 0x5b7
jmp 0x409708
mov esi, dword [eax + 0x48]
cmp esi, ebx
mov dword [esp + 0x18], esi
je 0x4096b6
jmp 0x4095ab
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x7c]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], 0x400
call fcn.0043f090
cmp eax, 0x10
jae 0x4096ea
mov al, byte [esp + 0x13]
sub esp, 0x10
mov ebp, esp
lea edi, [esp + 0x88]
or ecx, 0xffffffff
mov dword [esp + 0x40], esp
mov byte [ebp], al
xor eax, eax
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
cmp edi, 0xfffffffd
mov dword [esp + 0x38], edi
jbe 0x409614
call fcn.00463c83
mov ecx, dword [ebp + 4]
cmp ecx, ebx
je 0x409639
mov al, byte [ecx - 1]
cmp al, bl
je 0x409639
cmp al, 0xff
je 0x409639
cmp edi, ebx
jne 0x40965d
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, ebp
call fcn.00403b70
jmp 0x409690
cmp edi, ebx
jne 0x409648
push 1
mov ecx, ebp
call fcn.00403b70
jmp 0x409690
mov eax, dword [ebp + 0xc]
cmp eax, 0x1f
ja 0x409654
cmp eax, edi
jae 0x409665
push 1
mov ecx, ebp
call fcn.00403b70
push edi
mov ecx, ebp
call fcn.004054e0
mov ecx, edi
mov edi, dword [ebp + 4]
mov edx, ecx
lea esi, [esp + 0x88]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x38]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x28]
mov dword [ebp + 8], eax
mov byte [ecx + eax], bl
mov ecx, dword [esp + 0x8a0]
call fcn.004811f0
mov eax, dword [esi + 0x50]
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x4095a3
mov ecx, dword [esp + 0x890]
mov byte [ecx + 0x4c], 1
mov eax, dword [str.ECOP_CL_RES_CONFIG]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.0044b1e0
mov ecx, eax
call fcn.0044b740
xor eax, eax
mov ecx, dword [esp + 0x880]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x87c
ret 4
push esi
push 0x4e0a04
lea edx, [edi + 0x55]
push 0xfff
push edx
call fcn.00466ca7
mov eax, dword [edi]
add esp, 0x10
push 0x5d5
mov ecx, dword [0x4d1760]
push str.GetBackupInfo__
push ecx
mov ecx, edi
call dword [eax + 0x10]
mov eax, dword [str.ECOP_CL_RES_CONFIG]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.0044b1e0
mov ecx, eax
call fcn.0044b740
mov eax, 0x32
jmp 0x4096cf