Function at 0x100b5e80
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x18
push esi
push edi
push str.HID.dll
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [esi + 0x19c], eax
test eax, eax
je 0x100b634d
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.HidD_GetPreparsedData
push eax
call edi
mov dword [esi + 0x3f8], eax
mov eax, dword [esi + 0x19c]
push str.HidP_GetCaps
push eax
call edi
mov ecx, dword [esi + 0x19c]
push str.HidD_FreePreparsedData
push ecx
mov dword [esi + 0x3fc], eax
call edi
mov edx, dword [esi + 0x19c]
push str.HidD_GetFeature
push edx
mov dword [esi + 0x400], eax
call edi
mov dword [esi + 0x404], eax
mov eax, dword [esi + 0x19c]
push str.HidP_GetValueCaps
push eax
call edi
mov ecx, dword [esi + 0x19c]
push str.HidP_GetUsageValue
push ecx
mov dword [esi + 0x40c], eax
call edi
cmp dword [esi + 0x3f8], 0
mov dword [esi + 0x41c], eax
je 0x100b634d
cmp dword [esi + 0x3fc], 0
je 0x100b634d
cmp dword [esi + 0x40c], 0
je 0x100b634d
cmp dword [esi + 0x404], 0
je 0x100b634d
test eax, eax
je 0x100b634d
cmp dword [esi + 0x400], 0
je 0x100b634d
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
lea edx, [esi + 0x1e4]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x100b634d
mov ecx, dword [esi + 0x3f8]
lea eax, [esp + 0xc]
push eax
push edi
call ecx
test al, al
je 0x100b6346
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x3fc]
lea edx, [esi + 0x1a4]
push edx
push eax
call ecx
cmp eax, 0x110000
jne 0x100b6339
cmp dword [esi + 0x1a0], 0
jne 0x100b5ff2
movzx eax, word [esi + 0x1e0]
xor ecx, ecx
mov edx, 0x48
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003de3e
add esp, 4
mov dword [esi + 0x1a0], eax
movzx eax, word [esi + 0x1e0]
mov ecx, dword [esp + 0xc]
push ecx
mov ecx, dword [esi + 0x40c]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x1a0]
push edx
push eax
push 2
call ecx
cmp eax, 0x110000
jne 0x100b6339
mov edx, dword [esp + 0xc]
push 0x30
push 0x84
push edx
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
test eax, eax
je 0x100b60bb
push 0x168
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100b605d
push 0
mov ecx, eax
call fcn.10055150
jmp 0x100b605f
xor eax, eax
push 0x101bab3c
mov dword [esi + 0x184], eax
add eax, 4
push 0x100
push eax
call fcn.1013b440
mov eax, dword [esi + 0x184]
add esp, 0xc
mov ecx, esi
call fcn.100c4870
fild dword [esp + 8]
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x184]
fdiv qword [0x101f6c38]
push 1
push ecx
mov dword [eax + 0x14c], ecx
mov ecx, dword [esi + 0x184]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.10054a50
mov edx, dword [esp + 0xc]
push 0x36
push 0x84
push edx
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
test eax, eax
je 0x100b615d
push 0x16c
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100b60f9
push 0
mov ecx, eax
call fcn.100550e0
jmp 0x100b60fb
xor eax, eax
push 0x101bab44
mov dword [esi + 0x188], eax
add eax, 4
push 0x100
push eax
call fcn.1013b440
mov eax, dword [esi + 0x188]
add esp, 0xc
mov ecx, esi
call fcn.100c4870
fild dword [esp + 8]
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x188]
fdiv qword [0x101f6eb0]
push 1
push ecx
mov dword [eax + 0x14c], ecx
mov ecx, dword [esi + 0x188]
fsub qword [0x101f6fe8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.10054a50
mov edx, dword [esp + 0xc]
push 0x40
push 0x84
push edx
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
mov eax, dword [esp + 0xc]
push 0x44
push 0x84
push eax
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
test eax, eax
je 0x100b619f
mov ecx, dword [esp + 8]
mov dword [esi + 0x198], ecx
mov edx, dword [esp + 0xc]
push 0x35
push 0x84
push edx
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
test eax, eax
je 0x100b6251
push 0x168
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100b61db
xor ecx, ecx
call fcn.10054d30
jmp 0x100b61dd
xor eax, eax
push str.Power_Load
mov dword [esi + 0x18c], eax
add eax, 4
push 0x100
push eax
call fcn.1013b440
mov eax, dword [esi + 0x18c]
add esp, 0xc
mov ecx, esi
call fcn.100c4870
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x18c]
mov dword [eax + 0x14c], ecx
mov ecx, dword [esi + 0x18c]
mov edx, dword [ecx + 0x14c]
fild dword [ecx + 0x14c]
push 1
test edx, edx
jge 0x100b6234
fadd dword [0x101f69c0]
fld qword [esp + 0x1c]
push ecx
fstp dword [esp + 0x1c]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.10054a50
mov eax, dword [esp + 0xc]
push 0x32
push 0x84
push eax
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
mov ecx, dword [esp + 0xc]
push 0x66
push 0x85
push ecx
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
test eax, eax
je 0x100b6305
push 0x168
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100b62a3
xor ecx, ecx
call fcn.10054d30
jmp 0x100b62a5
xor eax, eax
push str.Battery
mov dword [esi + 0x190], eax
add eax, 4
push 0x100
push eax
call fcn.1013b440
mov eax, dword [esi + 0x190]
add esp, 0xc
mov ecx, esi
call fcn.100c4870
mov edx, dword [esi + 0x190]
mov eax, dword [esp + 8]
mov dword [edx + 0x14c], eax
mov ecx, dword [esi + 0x190]
mov edx, dword [ecx + 0x14c]
fild dword [ecx + 0x14c]
push 1
test edx, edx
jge 0x100b62fc
fadd dword [0x101f69c0]
push ecx
fstp dword [esp]
call fcn.10054a50
mov eax, dword [esp + 0xc]
push 0x67
push 0x85
push eax
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
mov ecx, dword [esp + 0xc]
push 0x68
push 0x85
push ecx
push edi
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
call fcn.100b55f0
mov edx, dword [esp + 0xc]
mov eax, dword [esi + 0x400]
push edx
call eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret