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

Disassembly:
mov eax, 0x101e430
call fcn.0101ced0
sub esp, 0x438
push ebx
push esi
xor esi, esi
push edi
mov ebx, ecx
mov edx, 0x80
xor eax, eax
mov ecx, edx
lea edi, [ebp - 0x23e]
mov word [ebp - 0x240], si
rep stosd dword es:[edi], eax
mov ecx, edx
lea edi, [ebp - 0x442]
mov word [ebp - 0x444], si
rep stosd dword es:[edi], eax
mov al, byte [ebp - 0x35]
mov byte [ebp - 0x30], al
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
mov eax, dword [ebx + 0x3d4]
mov eax, dword [eax + 0x78]
cmp eax, 0x29
mov dword [ebp - 4], esi
jbe 0x100cda1
mov esi, 0x8000ffff
jmp 0x100d32c
cmp dword [0x10289dc], esi
lea edi, [eax + 2]
je 0x100cdae
inc edi
inc edi
cmp edi, esi
jle 0x100cde7
mov eax, edi
shl eax, 4
push eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x10], eax
cmp eax, esi
mov byte [ebp - 4], 1
je 0x100cddc
push fcn.01016e35
push edi
push 0x10
push eax
call fcn.0100a820
mov eax, dword [ebp - 0x10]
jmp 0x100cdde
xor eax, eax
and byte [ebp - 4], 0
mov dword [ebp - 0x14], eax
jmp 0x100cdea
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], esi
jne 0x100cdf9
mov esi, 0x8007000e
jmp 0x100d32c
push 0x100
lea eax, [ebp - 0x240]
push eax
mov eax, dword [ebx + 0x3d4]
push dword [eax + 8]
call sub.HID.DLL_HidD_GetProductString
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebx + 0x74]
call fcn.0100390c
mov eax, dword [ebx + 0x3d4]
movzx eax, word [eax + 0x66]
push eax
push 0x1001c40
lea eax, [ebp - 0x444]
push 0x101
push eax
call fcn.01008fd3
mov dword [ebp - 0x1c], eax
add esp, 0x10
lea eax, [ebp - 0x444]
push eax
lea ecx, [ebx + 0x78]
call fcn.0100390c
mov eax, dword [ebx + 0x3d4]
mov dword [ebx + 0x9c], esi
mov cx, word [eax + 0x20]
cmp cx, 2
je 0x100ce7a
cmp cx, 3
je 0x100ce7a
cmp cx, 4
jne 0x100ce84
mov dword [ebx + 0x9c], 1
or dword [ebx + 0x9c], 4
xor edi, edi
cmp dword [eax + 0x78], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x34], edi
jbe 0x100d050
mov ecx, dword [ebp - 0x14]
add ecx, 8
mov dword [ebp - 0x20], ecx
mov edx, dword [eax + 0x74]
add edx, edi
push 0x11
mov dword [ebp - 0x10], edx
pop ecx
mov edx, 0x2354
mov esi, dword [ebp - 0x10]
movzx esi, word [esi]
cmp esi, dword [edx + 0x10221bc]
jne 0x100ced2
mov esi, dword [ebp - 0x10]
movzx esi, word [esi + 0x18]
cmp esi, dword [edx + 0x10221c0]
je 0x100cee1
add edx, 0x214
inc ecx
cmp edx, 0x4ce4
jb 0x100ceb5
cmp ecx, 0x24
ja 0x100d035
imul ecx, ecx, 0x214
lea esi, [ecx + 0x10223c8]
push dword [esi]
lea ecx, [ebx + 0xd4]
mov dword [ebp - 0x3c], esi
call fcn.0101b195
mov eax, dword [ebx + 0x3d4]
mov eax, dword [eax + 0x74]
lea eax, [eax + edi + 0x14]
push eax
push dword [esi]
lea ecx, [ebx + 0xd4]
call fcn.0101b15f
mov eax, dword [ebx + 0x3d4]
mov eax, dword [eax + 0x74]
add eax, edi
mov cl, byte [eax + 0x1c]
and cl, 0xf
xor edx, edx
cmp byte [edx*4 + 0x102218c], cl
je 0x100cf43
inc edx
cmp edx, 0xb
jb 0x100cf34
cmp edx, 0xb
jb 0x100cf4a
xor edx, edx
mov ecx, dword [eax + 0x20]
mov esi, dword [eax + 0x24]
mov eax, dword [ebp - 0x20]
mov dx, word [edx*4 + 0x102218e]
mov dword [eax - 8], esi
mov esi, dword [ebx + 0x3d4]
mov esi, dword [esi + 0x74]
mov esi, dword [esi + edi + 0x28]
shr ecx, 4
and ecx, 0xf
cmp ecx, 5
mov dword [eax - 4], esi
jae 0x100cf84
mov ecx, dword [ecx*4 + 0x1022178]
mov dword [eax], ecx
jmp 0x100cf87
and dword [eax], 0
mov eax, dword [ebx + 0x3d4]
mov eax, dword [eax + 0x74]
lea esi, [eax + edi]
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fld qword [0x1001c38]
movsx eax, dx
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
call sub.msvcrt.dll__CIpow
fst dword [ebp - 0x10]
mov eax, dword [esi + 0x30]
sub eax, dword [esi + 0x2c]
inc dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
fimul dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
add dword [ebp - 0x20], 0x10
lea ecx, [ebp - 0x30]
fdivp st(1)
fstp dword [eax + 4]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
push dword [eax*4 + 0x10276f0]
push dword [ebp - 0x28]
call fcn.0100c0ed
mov eax, dword [ebx + 0x3d4]
mov ecx, dword [eax + 0x74]
add ecx, edi
cmp word [ecx], 1
jne 0x100d035
cmp word [ecx + 0x18], 0x30
jne 0x100d013
mov ecx, dword [ecx + 0x24]
mov dword [ebx + 0x7c], ecx
mov ecx, dword [eax + 0x74]
mov ecx, dword [edi + ecx + 0x28]
mov dword [ebx + 0x84], ecx
mov ecx, dword [eax + 0x74]
add ecx, edi
cmp word [ecx + 0x18], 0x31
jne 0x100d035
mov ecx, dword [ecx + 0x24]
mov dword [ebx + 0x80], ecx
mov ecx, dword [eax + 0x74]
mov ecx, dword [edi + ecx + 0x28]
mov dword [ebx + 0x88], ecx
inc dword [ebp - 0x34]
mov ecx, dword [ebx + 0x3d4]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x18]
add edi, 0x3c
cmp edx, dword [ecx + 0x78]
jb 0x100cea5
mov ecx, dword [ebp - 0x14]
fldz
mov eax, esi
shl eax, 4
add eax, ecx
and dword [eax], 0
fstp dword [eax + 0xc]
and dword [eax + 8], 0
mov dword [eax + 4], 8
push dword [0x10276fc]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x28]
inc esi
call fcn.0100c0ed
xor edi, edi
cmp dword [0x10289dc], edi
je 0x100d0e8
mov ecx, dword [ebp - 0x14]
fldz
mov eax, esi
shl eax, 4
add eax, ecx
fstp dword [eax + 0xc]
mov dword [eax], 0x80000000
mov dword [eax + 4], 0x7fffffff
mov dword [eax + 8], edi
push dword [0x10277e0]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x28]
inc esi
call fcn.0100c0ed
fldz
mov eax, dword [ebp - 0x14]
shl esi, 4
add eax, esi
fstp dword [eax + 0xc]
mov dword [eax], 0x80000000
mov dword [eax + 4], 0x7fffffff
mov dword [eax + 8], edi
push dword [0x10277e4]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x28]
call fcn.0100c0ed
cmp dword [ebp - 0x2c], edi
mov esi, dword [ebp - 0x28]
mov dword [ebx + 0xf8], edi
mov dword [ebx + 0xcc], edi
mov dword [ebx + 0xd0], edi
jne 0x100d106
xor eax, eax
jmp 0x100d10e
mov eax, esi
sub eax, dword [ebp - 0x2c]
sar eax, 4
shl eax, 4
push eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebx + 0xb8], eax
je 0x100d2ae
push eax
push esi
push dword [ebp - 0x2c]
call fcn.0100ac76
cmp dword [ebp - 0x2c], edi
jne 0x100d139
xor esi, esi
jmp 0x100d13f
sub esi, dword [ebp - 0x2c]
sar esi, 4
lea eax, [ebx + 0xc0]
mov dword [ebx + 0xb4], esi
push eax
lea esi, [ebx + 0xbc]
push esi
mov ecx, ebx
call fcn.0100ca0c
cmp dword [esi], edi
je 0x100d19a
push 4
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
push 4
mov dword [ebx + 0xc4], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov edx, dword [ebx + 0xc4]
cmp edx, edi
pop ecx
pop ecx
lea ecx, [ebx + 0xc8]
mov dword [ecx], eax
je 0x100d2ae
cmp eax, edi
je 0x100d2ae
or dword [edx], 0xffffffff
mov eax, dword [ecx]
or dword [eax], 0xffffffff
mov eax, dword [ebx + 0xa8]
cmp eax, edi
je 0x100d1b7
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov dword [ebx + 0xa4], edi
mov dword [ebx + 0xa8], edi
mov eax, dword [ebx + 0xb0]
cmp eax, edi
je 0x100d1d4
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov dword [ebx + 0xac], edi
mov dword [ebx + 0xb0], edi
mov eax, dword [ebx + 0xb4]
cmp eax, edi
mov dword [ebx + 0xa4], eax
je 0x100d242
shl eax, 5
push eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebx + 0xa8], eax
je 0x100d2ae
xor edx, edx
cmp dword [ebx + 0xa4], edi
jbe 0x100d242
xor ecx, ecx
xor eax, eax
mov esi, dword [ebx + 0xb8]
mov edi, dword [ebx + 0xa8]
add esi, eax
add edi, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0xa8]
mov esi, dword [ebp - 0x14]
add esi, eax
lea edi, [ecx + edi + 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc edx
movsd dword es:[edi], dword [esi]
add eax, 0x10
add ecx, 0x20
cmp edx, dword [ebx + 0xa4]
jb 0x100d20a
xor edi, edi
mov eax, dword [ebx + 0xbc]
cmp eax, edi
mov dword [ebx + 0xac], eax
je 0x100d287
shl eax, 4
push eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, edi
pop ecx
mov dword [ebx + 0xb0], eax
je 0x100d2ae
mov ecx, dword [ebx + 0xac]
mov esi, dword [ebx + 0xc0]
shl ecx, 4
mov edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
mov eax, dword [ebx + 0xac]
push dword [ebp - 0x14]
add eax, 0x1f
shr eax, 5
add eax, dword [ebx + 0xa4]
shl eax, 2
mov dword [ebx + 0xa0], eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0x1c], edi
jge 0x100d329
mov eax, dword [ebx + 0xb8]
cmp eax, edi
je 0x100d2c4
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov eax, dword [ebx + 0xc4]
cmp eax, edi
je 0x100d2d5
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov eax, dword [ebx + 0xc8]
cmp eax, edi
je 0x100d2e6
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
push 8
xor eax, eax
pop ecx
lea edi, [ebx + 0xb4]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x100d304
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x100d315
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
xor eax, eax
lea edi, [ebx + 0xa0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x1c], 0x8007000e
mov esi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
call fcn.0100b3ec
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret