Function at 0x707c4450
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
test byte [0x707c7028], 8
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
jne 0x707c4d80
mov dword [esp], 1
mov esi, 0x12bc
mov dword [esp + 4], esi
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
mov ebp, eax
je 0x707c5839
add edi, ebx
cmp ebx, edi
je 0x707c458a
lea eax, [eax + 0x67c]
mov esi, ebx
mov dword [esp + 0x70], eax
lea eax, [ebp + 0x678]
mov ebx, edi
mov dword [esp + 0x74], eax
lea esi, [esi]
nop
movzx ecx, byte [esi]
mov al, cl
and al, 3
cmp al, 3
je 0x707c4508
movzx edi, al
lea edx, [esi + edi]
cmp ebx, edx
jb 0x707c51a8
test al, al
jne 0x707c4540
xor eax, eax
xor edi, edi
mov dword [esp + 0x6c], eax
xor edx, edx
mov dword [ebp + 0x61c], edx
mov al, cl
and al, 0xfc
sub al, 4
cmp al, 0xbc
ja case.0x707c44fa.5
movzx eax, al
jmp dword [eax*4 + 0x707c9aec]
lea eax, [esi + 4]
cmp ebx, eax
jb 0x707c526f
mov edx, dword [esi + 1]
mov al, cl
and al, 0xfc
sub al, 4
cmp al, 0xbc
mov dword [esp + 0x6c], edx
mov dword [ebp + 0x61c], edx
ja case.0x707c4531.5
movzx eax, al
jmp dword [eax*4 + 0x707c9de0]
cmp edi, 1
jne 0x707c4881
movzx edx, byte [esi + 1]
mov dword [ebp + 0x61c], edx
movsx eax, dl
mov dword [esp + 0x6c], eax
mov al, cl
and al, 0xfc
sub al, 4
cmp al, 0xbc
jbe 0x707c44f7
lea esi, [esi]
lea esi, [esi]
nop
inc edi
test byte [0x707c7028], 1
jne 0x707c4f2a
nop
add esi, edi
cmp ebx, esi
jne 0x707c44c0
movzx edx, word [ebp + 0x12b0]
movzx eax, word [ebp + 0x12ae]
add eax, edx
movzx edx, word [ebp + 0x12b2]
add eax, edx
lea edx, [eax + eax*2]
lea ebx, [eax + edx*4]
movzx eax, word [ebp + 0xa]
shl ebx, 3
shl eax, 4
lea esi, [ebx + eax + 0x2c]
mov eax, dword [esp + 0xa8]
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._ExAllocatePool_8
sub esp, 8
test eax, eax
mov dword [esp + 0x6c], eax
je 0x707c47b0
test al, 1
mov edx, esi
mov edi, eax
jne 0x707c54c0
test edi, 2
jne 0x707c54cc
test edi, 4
jne 0x707c54dc
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
jne 0x707c4f62
test dl, 1
jne 0x707c4f5a
mov edi, dword [esp + 0x6c]
mov eax, dword [ebp]
movzx esi, word [ebp + 0x12aa]
movzx edx, word [ebp + 0x12ae]
mov word [edi + 0x28], bx
lea ebx, [edi + 0x2c]
mov dword [edi + 8], eax
mov eax, dword [ebp + 0x12a8]
mov word [edi + 0x1e], si
movzx esi, word [ebp + 0x12b2]
mov word [edi + 0x12], dx
mov word [edi + 0x14], dx
mov word [edi + 0x16], ax
movzx eax, word [ebp + 0x12b0]
mov word [edi + 0x18], dx
mov word [edi + 0x22], si
mov dword [edi], 0x50646948
mov dword [edi + 4], 0x52444b20
lea ecx, [edx + eax]
mov word [edi + 0x10], 0
movzx ecx, cx
mov word [edi + 0x1c], cx
mov word [edi + 0x20], cx
add ecx, esi
mov esi, dword [ebp + 0x690]
mov word [edi + 0x24], cx
mov ecx, dword [ebp + 0x12ac]
mov word [edi + 0x1a], ax
mov dword [esp + 0x70], ebx
mov word [edi + 0x26], cx
movzx ecx, word [ebp + 0xa]
mov word [edi + 0x2a], cx
lea ecx, [edx + edx*2]
mov edi, ebx
lea edx, [edx + ecx*4]
shl edx, 3
cmp edx, 8
mov ecx, edx
jae 0x707c4f75
rep movsb byte es:[edi], byte [esi]
lea ecx, [eax + eax*2]
lea ecx, [eax + ecx*4]
shl ecx, 3
cmp ecx, 8
mov eax, dword [esp + 0x70]
mov esi, dword [ebp + 0x694]
lea edi, [eax + edx]
jae 0x707c4fe0
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0x6c]
mov esi, dword [ebp + 0x698]
movzx eax, word [ebx + 0x20]
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
movzx eax, word [ebx + 0x22]
lea ecx, [eax + eax*2]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
shl ecx, 3
cmp ecx, 8
lea edi, [eax + edx*8]
jae 0x707c4fa9
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
movzx edi, word [eax + 0x28]
movzx eax, word [eax + 0x2a]
add edi, ebx
test eax, eax
mov ebx, eax
je 0x707c4798
mov edx, dword [ebp + 0x688]
mov eax, edi
xor ecx, ecx
mov dword [esp + 0x74], ebp
mov ebp, ebx
nop
movzx ebx, word [edx]
test ecx, ecx
mov esi, dword [edx + 0xc]
mov word [eax + 2], bx
movzx ebx, word [edx + 0x3c]
mov word [eax], bx
movzx ebx, word [edx + 0x12]
mov dword [eax + 0xc], esi
mov word [eax + 0xa], 0
mov word [eax + 8], 0
mov word [eax + 4], bx
mov word [eax + 6], 0
je 0x707c4789
shl ebx, 4
lea esi, [edi + ebx]
movzx ebx, word [edi + ebx + 0xa]
mov word [eax + 8], bx
inc word [esi + 6]
mov word [esi + 0xa], cx
inc ecx
add edx, 0x68
add eax, 0x10
cmp ebp, ecx
jne 0x707c4740
mov ebp, dword [esp + 0x74]
test byte [0x707c7028], 8
jne 0x707c52c8
lea esi, [esi]
lea esi, [esi]
mov eax, dword [ebp + 0x680]
test eax, eax
je 0x707c47ee
test byte [0x707c7028], 2
je 0x707c4830
mov dword [esp + 0x10], eax
mov edx, str.free_parser_state
mov eax, str._lu_unpopped_device_caps_on_the_stack_n
mov dword [esp + 0xc], eax
mov ecx, 0x707c7028
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp + 0x684]
test eax, eax
je 0x707c4830
test byte [0x707c7028], 2
je 0x707c4830
mov dword [esp + 0x10], eax
mov eax, str._lu_unpopped_device_collection_on_the_stack_n
mov dword [esp + 0xc], eax
mov eax, str.free_parser_state
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
lea esi, [esi]
mov eax, dword [ebp + 0x678]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], eax
call ebx
mov eax, dword [ebp + 0x688]
mov dword [esp], eax
call ebx
mov eax, dword [ebp + 0x690]
mov dword [esp], eax
call ebx
mov eax, dword [ebp + 0x694]
mov dword [esp], eax
call ebx
mov eax, dword [ebp + 0x698]
mov dword [esp], eax
call ebx
mov dword [esp], ebp
call ebx
mov eax, dword [esp + 0x6c]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx edx, word [esi + 1]
mov edi, 2
movsx eax, dx
mov dword [esp + 0x6c], eax
jmp 0x707c44e7
xor ecx, ecx
test byte [0x707c7028], 1
mov dword [esp + 0x6c], ecx
je 0x707c47b0
mov dword [esp + 0x10], edx
mov eax, str.delimiter__d_not_implemented__n
mov edx, 0x707c7028
mov dword [esp + 0xc], eax
mov eax, str.parse_descriptor
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp + 0x680]
test eax, eax
jne 0x707c47ba
jmp 0x707c47ee
mov edi, 4
mov ecx, dword [ebp + 0x680]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
call sym._array_reserve
test eax, eax
je 0x707c51f0
mov eax, dword [ebp + 0x680]
inc edi
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 0x678]
lea eax, [eax + edx*8]
movzx edx, word [ebp + 0x610]
mov word [eax], dx
mov edx, dword [ebp + 0x660]
mov dword [eax + 0x50], edx
mov edx, dword [ebp + 0x664]
mov dword [eax + 0x54], edx
mov edx, dword [ebp + 0x668]
mov dword [eax + 0x58], edx
mov edx, dword [ebp + 0x66c]
mov dword [eax + 0x5c], edx
mov edx, dword [ebp + 0x674]
mov dword [eax + 0x64], edx
mov edx, dword [ebp + 0x670]
mov dword [eax + 0x60], edx
movzx edx, word [ebp + 0x614]
mov word [eax + 4], dx
movzx ecx, byte [ebp + 0x612]
mov byte [eax + 2], cl
movzx edx, word [ebp + 0x616]
mov word [eax + 6], dx
inc dword [ebp + 0x680]
jmp 0x707c4580
mov edi, 4
mov ecx, dword [ebp + 0x684]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
call sym._array_reserve
test eax, eax
jne 0x707c5080
test byte [0x707c7028], 2
jne 0x707c5017
mov edx, dword [ebp + 0x680]
xor eax, eax
mov dword [esp + 0x6c], eax
test edx, edx
je 0x707c47ee
jmp 0x707c4830
mov edi, 4
mov edx, 1
mov eax, ebp
call sym._parse_new_value_caps
test eax, eax
je 0x707c49fb
inc edi
jmp 0x707c4580
mov edi, 4
xor edx, edx
mov eax, ebp
call sym._parse_new_value_caps
test eax, eax
jne 0x707c49e3
xor ebx, ebx
mov dword [esp + 0x6c], ebx
jmp 0x707c47b0
mov edi, 4
mov eax, dword [ebp + 0x680]
test eax, eax
je 0x707c5230
dec eax
inc edi
mov dword [ebp + 0x680], eax
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 0x678]
lea eax, [eax + edx*8]
movzx edx, word [eax]
mov word [ebp + 0x610], dx
mov edx, dword [eax + 0x50]
mov dword [ebp + 0x660], edx
mov edx, dword [eax + 0x54]
mov dword [ebp + 0x664], edx
mov edx, dword [eax + 0x58]
mov dword [ebp + 0x668], edx
mov edx, dword [eax + 0x5c]
mov dword [ebp + 0x66c], edx
mov edx, dword [eax + 0x64]
mov dword [ebp + 0x674], edx
mov edx, dword [eax + 0x60]
mov dword [ebp + 0x670], edx
movzx edx, word [eax + 4]
mov word [ebp + 0x614], dx
movzx ecx, byte [eax + 2]
mov byte [ebp + 0x612], cl
movzx eax, word [eax + 6]
mov word [ebp + 0x616], ax
jmp 0x707c4580
mov edi, 4
mov edx, 2
mov eax, ebp
call sym._parse_new_value_caps
test eax, eax
je 0x707c49fb
inc edi
jmp 0x707c4580
mov edi, 4
mov eax, dword [ebp + 0x684]
test eax, eax
jne 0x707c5160
test byte [0x707c7028], 2
je 0x707c49b5
mov dword [esp], 1
mov eax, str.parse_end_collection
mov edi, str.HID_parser_collection_stack_underflow__n
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_1
xor eax, eax
mov dword [esp + 0x6c], eax
jmp 0x707c47b0
inc edi
mov word [ebp + 0x616], dx
jmp 0x707c4580
inc edi
and dword [ebp + 0x628], 0xffffffbf
movzx edx, dx
mov word [ebp + 0x652], dx
mov word [ebp + 0x650], dx
jmp 0x707c4580
inc edi
mov word [ebp + 0x614], dx
jmp 0x707c4580
inc edi
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x670], eax
jmp 0x707c4580
inc edi
or dword [ebp + 0x628], 0x80
mov word [ebp + 0x656], dx
jmp 0x707c4580
inc edi
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x674], eax
jmp 0x707c4580
inc edi
or dword [ebp + 0x628], 0x80
mov word [ebp + 0x654], dx
jmp 0x707c4580
inc edi
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x66c], eax
jmp 0x707c4580
inc edi
and dword [ebp + 0x628], 0xffffff7f
movzx edx, dx
mov word [ebp + 0x656], dx
mov word [ebp + 0x654], dx
jmp 0x707c4580
inc edi
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x668], eax
jmp 0x707c4580
inc edi
movzx ecx, dx
movzx edx, word [ebp + 0x610]
mov eax, dword [ebp + 0x628]
test al, 0x10
jne 0x707c4beb
mov word [ebp + 0x20c], 0
mov word [ebp + 0xc], dx
or eax, 0x10
mov dword [ebp + 0x628], eax
mov eax, 1
mov word [ebp + 0x40c], cx
mov word [ebp + 0x64e], cx
mov dword [ebp + 0x60c], eax
jmp 0x707c4580
inc edi
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x664], eax
jmp 0x707c4580
inc edi
movzx ecx, dx
movzx edx, word [ebp + 0x610]
mov eax, dword [ebp + 0x628]
test al, 0x10
jne 0x707c4c44
mov word [ebp + 0x40c], 0
mov word [ebp + 0xc], dx
or eax, 0x10
mov dword [ebp + 0x628], eax
mov eax, 1
mov word [ebp + 0x20c], cx
mov word [ebp + 0x64c], cx
mov dword [ebp + 0x60c], eax
jmp 0x707c4580
inc edi
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x660], eax
jmp 0x707c4580
inc edi
mov word [ebp + 0x610], dx
jmp 0x707c4580
inc edi
or dword [ebp + 0x628], 0x40
mov word [ebp + 0x652], dx
jmp 0x707c4580
inc edi
or dword [ebp + 0x628], 0x40
mov word [ebp + 0x650], dx
jmp 0x707c4580
inc edi
mov byte [ebp + 0x612], dl
jmp 0x707c4580
movzx eax, dx
movzx ecx, word [ebp + 0x610]
mov dword [esp + 0x6c], ecx
mov edx, dword [ebp + 0x628]
mov ecx, edx
and ecx, 0xffffffef
test dl, 0x10
mov dword [esp + 0x78], ecx
je 0x707c4e78
mov word [ebp + 0x20c], ax
mov edx, dword [esp + 0x6c]
inc edi
mov word [ebp + 0x40c], ax
mov word [ebp + 0x64c], ax
mov word [ebp + 0x64e], ax
mov eax, 1
mov word [ebp + 0xc], dx
mov dword [ebp + 0x628], ecx
mov dword [ebp + 0x60c], eax
jmp 0x707c4580
movzx ecx, dx
shr edx, 0x10
je 0x707c5970
movzx edx, dx
mov edi, 5
jmp 0x707c4bd8
mov eax, edx
mov edi, 4
shr eax, 0x10
mov dword [esp + 0x6c], eax
movzx eax, dx
shr edx, 0x10
jne 0x707c4cce
jmp 0x707c4cc3
movzx ecx, dx
shr edx, 0x10
je 0x707c5966
movzx edx, dx
mov edi, 5
jmp 0x707c4c31
mov dword [esp], 0x707c7028
call sym.___wine_dbg_get_channel_flags
and al, 8
je 0x707c4475
test byte [0x707c7028], 8
jne 0x707c5294
test edi, edi
je 0x707c5819
movzx eax, byte [0x707c7028]
xor esi, esi
test al, 8
je 0x707c4dcd
jmp 0x707c4e3b
inc esi
test esi, 0xf
je 0x707c4e20
cmp edi, esi
jbe 0x707c4e20
mov dl, al
and dl, 8
je 0x707c4dc0
movzx eax, byte [ebx + esi]
mov ecx, str.__02x
mov ebp, str.parse_descriptor
mov dword [esp + 0xc], ecx
inc esi
mov dword [esp + 8], ebp
mov dword [esp], 3
mov dword [esp + 0x10], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [0x707c7028]
mov dl, al
and dl, 8
test esi, 0xf
jne 0x707c4dc9
lea esi, [esi]
nop
test dl, dl
jne 0x707c5050
cmp edi, esi
jbe 0x707c4475
movzx eax, byte [0x707c7028]
test al, 8
je 0x707c4dcd
mov dword [esp + 0x10], esi
mov eax, str._08x
mov dword [esp + 0xc], eax
mov eax, str.parse_descriptor
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [0x707c7028]
jmp 0x707c4dcd
mov ecx, dword [ebp + 0x60c]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x7c], ecx
lea ecx, [ebp + ecx*2]
mov word [ecx + 0x20c], ax
mov word [ecx + 0x40c], ax
mov word [ecx + 0xc], dx
mov ecx, dword [esp + 0x7c]
mov word [ebp + 0x64c], ax
mov word [ebp + 0x64e], ax
mov eax, dword [esp + 0x78]
cmp ecx, 0xff
mov dword [ebp + 0x628], eax
lea eax, [ecx + 1]
mov dword [ebp + 0x60c], eax
jne 0x707c4f03
test byte [0x707c7028], 2
je 0x707c49b5
mov eax, str.HID_parser_usages_stack_overflow__n
mov edx, str.parse_local_usage
mov dword [esp + 0xc], eax
mov ecx, 0x707c7028
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp + 0x60c]
cmp eax, 0xff
jbe 0x707c49e3
jmp 0x707c49fb
test byte [0x707c7028], 1
mov edi, 5
je 0x707c4580
mov dword [esp + 0x10], ecx
mov eax, str.item_type__x_not_implemented__n
mov dword [esp + 0xc], eax
mov eax, str.parse_descriptor
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c4580
mov byte [edi], 0
jmp 0x707c4618
mov word [edi], 0
add edi, 2
test dl, 1
je 0x707c4618
jmp 0x707c4f5a
test bl, 1
jne 0x707c5888
test edi, 2
jne 0x707c5873
test edi, 4
je 0x707c46c0
mov ebx, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], ebx
jmp 0x707c46c0
test edi, 1
jne 0x707c5850
test edi, 2
jne 0x707c585e
test edi, 4
je 0x707c4714
mov eax, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], eax
jmp 0x707c4714
test edi, 1
jne 0x707c58b2
test edi, 2
jne 0x707c589d
test edi, 4
je 0x707c46e1
mov eax, dword [esi]
add edi, 4
add esi, 4
sub ecx, 4
mov dword [edi - 4], eax
jmp 0x707c46e1
mov esi, str.HID_parser_stack_overflow__n
mov dword [esp + 0xc], esi
mov dword [esp], 1
mov eax, str.parse_new_collection
mov edx, 0x707c7028
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call sym._wine_dbg_log.constprop.0_1
xor ecx, ecx
mov dword [esp + 0x6c], ecx
jmp 0x707c47b0
mov dword [esp], 3
mov eax, 0x707c97c4
mov edx, 0x707c7028
mov dword [esp + 0xc], eax
mov eax, str.parse_descriptor
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c4e28
movzx ecx, word [ebp + 0xa]
lea edx, [ebp + 0x68c]
lea eax, [ebp + 0x688]
call sym._array_reserve
test eax, eax
je 0x707c5279
mov eax, dword [ebp + 0x684]
lea edx, [eax + eax*2]
lea ecx, [eax + edx*4]
mov edx, dword [ebp + 0x678]
inc eax
lea edx, [edx + ecx*8]
movzx ecx, word [ebp + 0x622]
mov word [edx + 0x12], cx
movzx ecx, word [ebp + 0x624]
mov word [edx + 0x14], cx
movzx ecx, word [ebp + 0x626]
mov word [edx + 0x16], cx
mov dword [ebp + 0x684], eax
mov eax, dword [ebp + 0x20c]
mov word [ebp + 0x64c], ax
mov eax, dword [ebp + 0x40c]
mov word [ebp + 0x64e], ax
movzx eax, word [ebp + 0xa]
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 0x688]
lea edx, [eax + edx*8]
xor eax, eax
mov ecx, dword [ebp + eax + 0x610]
mov dword [edx + eax], ecx
add eax, 4
cmp eax, 0x68
jb 0x707c5109
movzx eax, word [ebp + 0xa]
movzx ecx, word [ebp + 0x610]
movzx edx, word [ebp + 0x64c]
mov word [ebp + 0x622], ax
test eax, eax
mov word [ebp + 0x624], cx
mov word [ebp + 0x626], dx
jne 0x707c514e
mov word [ebp + 2], cx
mov word [ebp], dx
inc eax
inc edi
mov word [ebp + 0xa], ax
mov eax, ebp
call sym._reset_local_items
jmp 0x707c4580
dec eax
inc edi
mov dword [ebp + 0x684], eax
lea edx, [eax + eax*2]
lea edx, [eax + edx*4]
mov eax, dword [ebp + 0x678]
movzx ecx, word [eax + edx*8 + 0x12]
mov word [ebp + 0x622], cx
movzx ecx, word [eax + edx*8 + 0x14]
movzx eax, word [eax + edx*8 + 0x16]
mov word [ebp + 0x624], cx
mov word [ebp + 0x626], ax
mov eax, ebp
call sym._reset_local_items
jmp 0x707c4580
mov esi, edi
test byte [0x707c7028], 2
je 0x707c49b5
mov dword [esp + 0x10], esi
mov eax, str.parse_descriptor
mov edi, str.Need__d_bytes_to_read_item_value_n
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
xor eax, eax
mov dword [esp + 0x6c], eax
jmp 0x707c47b0
test byte [0x707c7028], 2
je 0x707c49b5
mov edx, str.HID_parser_stack_overflow__n
mov ecx, str.parse_global_push
mov dword [esp + 0xc], edx
mov ebx, 0x707c7028
xor esi, esi
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
mov dword [esp + 0x6c], esi
jmp 0x707c47b0
xor eax, eax
test byte [0x707c7028], 2
mov dword [esp + 0x6c], eax
je 0x707c4830
mov dword [esp], 1
mov eax, str.HID_parser_global_stack_underflow__n
mov dword [esp + 0xc], eax
mov eax, str.parse_global_pop
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c47b0
mov esi, 4
jmp 0x707c51aa
test byte [0x707c7028], 2
je 0x707c49b5
mov ebx, str.HID_parser_collections_overflow__n
mov dword [esp + 0xc], ebx
jmp 0x707c5020
mov edx, str.parse_descriptor
mov ecx, 0x707c7028
mov dword [esp + 0x14], edi
mov eax, str.descriptor__p__length__u:_n
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c4da1
mov dword [esp], 0x707c7028
call sym.___wine_dbg_get_channel_flags
and al, 8
je 0x707c47b0
mov eax, dword [esp + 0x6c]
test byte [0x707c7028], 8
movzx esi, word [eax + 0x12]
jne 0x707c58c0
xor ebx, ebx
test esi, esi
je 0x707c54f1
mov dword [esp + 0x74], ebp
mov edi, dword [esp + 0x70]
mov ebp, esi
mov esi, ebx
mov ebx, dword [esp + 0x6c]
jmp 0x707c5319
inc esi
cmp ebp, esi
je 0x707c54ed
test byte [0x707c7028], 8
je 0x707c5310
movzx eax, word [ebx + 0x10]
add eax, esi
lea ecx, [eax + eax*2]
lea eax, [eax + ecx*4]
lea eax, [edi + eax*8]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x48], ecx
movzx ecx, word [eax + 6]
mov dword [esp + 0x44], ecx
movzx ecx, word [eax + 4]
mov dword [esp + 0x40], ecx
movzx ecx, word [eax + 0x16]
mov dword [esp + 0x3c], ecx
movzx ecx, word [eax + 0x14]
mov dword [esp + 0x38], ecx
movzx ecx, word [eax + 0x12]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax + 0x46]
mov dword [esp + 0x28], ecx
movzx ecx, word [eax + 0x44]
mov dword [esp + 0x24], ecx
movzx ecx, word [eax + 0x42]
mov dword [esp + 0x20], ecx
movzx ecx, word [eax + 0x40]
mov dword [esp + 0x1c], ecx
movzx ecx, word [eax + 0x4a]
mov dword [esp + 0x18], ecx
movzx ecx, word [eax + 0x48]
mov dword [esp + 0x14], ecx
movzx ecx, word [eax + 0x3e]
mov dword [esp + 0x10], ecx
movzx ecx, word [eax + 0x3c]
mov dword [esp + 0xc], ecx
movzx ecx, word [eax]
mov dword [esp + 8], ecx
movzx eax, byte [eax + 2]
mov dword [esp], str.RId__d__Usg__02x:_02x__02x_Dat__02x__02x__Str__d__d__Des__d__d__Bits__02lx_Flags__lx__LCol__d_LUsg__02x:_02x__BitSz__d__RCnt__d__Unit__lx_E_ld__Log__ld__ld__Phy__ld__ld
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
mov dword [esp + 0x10], esi
mov dword [esp], 3
mov dword [esp + 0x14], eax
mov eax, str.input__d:__s_n
mov dword [esp + 0xc], eax
mov eax, str.debug_print_preparsed
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c5310
mov edi, 5
jmp 0x707c4c17
mov edi, 5
jmp 0x707c4bbe
mov edi, 5
jmp 0x707c4c80
mov edi, 5
jmp 0x707c4b14
mov edi, 5
jmp 0x707c4b32
mov edi, 5
jmp 0x707c4b3f
mov edi, 5
jmp 0x707c4b4f
mov edi, 5
jmp 0x707c4b66
mov edi, 5
jmp 0x707c4b76
mov edi, 5
jmp 0x707c4b8d
mov edi, 5
jmp 0x707c4b9d
mov edi, 5
jmp 0x707c4c8d
mov edi, 5
jmp 0x707c4b07
mov edi, 5
jmp 0x707c4ca1
mov edi, 5
jmp 0x707c4cb5
mov edi, 5
jmp 0x707c4c70
mov byte [eax], 0
lea edi, [eax + 1]
dec edx
jmp 0x707c45e5
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x707c45f1
mov dword [edi], 0
sub edx, 4
add edi, 4
jmp 0x707c45fd
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
xor ebx, ebx
movzx esi, word [eax + 0x1a]
test esi, esi
je 0x707c562c
mov dword [esp + 0x74], ebp
mov edi, dword [esp + 0x70]
mov ebp, esi
mov esi, ebx
mov ebx, dword [esp + 0x6c]
jmp 0x707c5521
inc esi
cmp ebp, esi
je 0x707c5628
test byte [0x707c7028], 8
je 0x707c5518
movzx eax, word [ebx + 0x18]
add eax, esi
lea ecx, [eax + eax*2]
lea eax, [eax + ecx*4]
lea eax, [edi + eax*8]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x48], ecx
movzx ecx, word [eax + 6]
mov dword [esp + 0x44], ecx
movzx ecx, word [eax + 4]
mov dword [esp + 0x40], ecx
movzx ecx, word [eax + 0x16]
mov dword [esp + 0x3c], ecx
movzx ecx, word [eax + 0x14]
mov dword [esp + 0x38], ecx
movzx ecx, word [eax + 0x12]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax + 0x46]
mov dword [esp + 0x28], ecx
movzx ecx, word [eax + 0x44]
mov dword [esp + 0x24], ecx
movzx ecx, word [eax + 0x42]
mov dword [esp + 0x20], ecx
movzx ecx, word [eax + 0x40]
mov dword [esp + 0x1c], ecx
movzx ecx, word [eax + 0x4a]
mov dword [esp + 0x18], ecx
movzx ecx, word [eax + 0x48]
mov dword [esp + 0x14], ecx
movzx ecx, word [eax + 0x3e]
mov dword [esp + 0x10], ecx
movzx ecx, word [eax + 0x3c]
mov dword [esp + 0xc], ecx
movzx ecx, word [eax]
mov dword [esp + 8], ecx
movzx eax, byte [eax + 2]
mov dword [esp], str.RId__d__Usg__02x:_02x__02x_Dat__02x__02x__Str__d__d__Des__d__d__Bits__02lx_Flags__lx__LCol__d_LUsg__02x:_02x__BitSz__d__RCnt__d__Unit__lx_E_ld__Log__ld__ld__Phy__ld__ld
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
mov edx, str.output__d:__s_n
mov ecx, str.debug_print_preparsed
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], 3
mov dword [esp + 0x14], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c5518
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
xor ebx, ebx
movzx esi, word [eax + 0x22]
test esi, esi
je 0x707c5764
mov dword [esp + 0x74], ebp
mov edi, dword [esp + 0x70]
mov ebp, esi
mov esi, ebx
mov ebx, dword [esp + 0x6c]
jmp 0x707c5659
inc esi
cmp ebp, esi
je 0x707c5760
test byte [0x707c7028], 8
je 0x707c5650
movzx eax, word [ebx + 0x20]
add eax, esi
lea ecx, [eax + eax*2]
lea eax, [eax + ecx*4]
lea eax, [edi + eax*8]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x48], ecx
movzx ecx, word [eax + 6]
mov dword [esp + 0x44], ecx
movzx ecx, word [eax + 4]
mov dword [esp + 0x40], ecx
movzx ecx, word [eax + 0x16]
mov dword [esp + 0x3c], ecx
movzx ecx, word [eax + 0x14]
mov dword [esp + 0x38], ecx
movzx ecx, word [eax + 0x12]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax + 0x46]
mov dword [esp + 0x28], ecx
movzx ecx, word [eax + 0x44]
mov dword [esp + 0x24], ecx
movzx ecx, word [eax + 0x42]
mov dword [esp + 0x20], ecx
movzx ecx, word [eax + 0x40]
mov dword [esp + 0x1c], ecx
movzx ecx, word [eax + 0x4a]
mov dword [esp + 0x18], ecx
movzx ecx, word [eax + 0x48]
mov dword [esp + 0x14], ecx
movzx ecx, word [eax + 0x3e]
mov dword [esp + 0x10], ecx
movzx ecx, word [eax + 0x3c]
mov dword [esp + 0xc], ecx
movzx ecx, word [eax]
mov dword [esp + 8], ecx
movzx eax, byte [eax + 2]
mov dword [esp], str.RId__d__Usg__02x:_02x__02x_Dat__02x__02x__Str__d__d__Des__d__d__Bits__02lx_Flags__lx__LCol__d_LUsg__02x:_02x__BitSz__d__RCnt__d__Unit__lx_E_ld__Log__ld__ld__Phy__ld__ld
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
mov dword [esp + 0x10], esi
mov dword [esp], 3
mov dword [esp + 0x14], eax
mov eax, str.feature__d:__s_n
mov dword [esp + 0xc], eax
mov eax, str.debug_print_preparsed
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c5650
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
xor ebx, ebx
movzx esi, word [eax + 0x2a]
test esi, esi
je 0x707c47b0
mov edi, esi
mov esi, ebx
mov ebx, dword [esp + 0x6c]
jmp 0x707c5789
inc esi
cmp edi, esi
je 0x707c47b0
test byte [0x707c7028], 8
je 0x707c5780
movzx eax, word [ebx + 0x28]
mov ecx, esi
mov edx, dword [esp + 0x70]
shl ecx, 4
add eax, ecx
add eax, edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x1c], ecx
movzx ecx, word [eax + 0xa]
mov dword [esp + 0x18], ecx
movzx ecx, word [eax + 6]
mov dword [esp + 0x14], ecx
movzx ecx, word [eax + 8]
mov dword [esp + 0x10], ecx
movzx ecx, word [eax + 4]
mov dword [esp + 0xc], ecx
movzx ecx, word [eax]
mov dword [esp + 8], ecx
movzx eax, word [eax + 2]
mov dword [esp], str.Usg__02x:_02x__Parent__u__Next__u__NbChild__u__Child__u__Type__02lx
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
mov ecx, str.collection__d:__s_n
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ecx
mov dword [esp], 3
mov dword [esp + 0x14], eax
mov eax, str.debug_print_preparsed
mov dword [esp + 8], eax
mov eax, 0x707c7028
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_1
jmp 0x707c5780
mov dword [esp], 1
mov ecx, 0x12bc
mov dword [esp + 4], ecx
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
mov ebp, eax
jne 0x707c458a
mov dword [esp + 0x6c], 0
jmp 0x707c4872
movzx eax, byte [esi]
inc edi
inc esi
dec ecx
mov byte [edi - 1], al
jmp 0x707c4fb5
movzx eax, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], ax
jmp 0x707c4fc1
movzx ebx, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], bx
jmp 0x707c4f8a
movzx ebx, byte [esi]
lea ecx, [edx - 1]
inc esi
mov byte [edi], bl
mov ebx, dword [esp + 0x6c]
lea edi, [ebx + 0x2d]
jmp 0x707c4f7e
movzx eax, word [esi]
add edi, 2
add esi, 2
sub ecx, 2
mov word [edi - 2], ax
jmp 0x707c4ff8
movzx eax, byte [esi]
inc edi
inc esi
dec ecx
mov byte [edi - 1], al
jmp 0x707c4fec
mov ebx, eax
movzx eax, word [eax + 0x2a]
mov edx, str.debug_print_preparsed
mov ecx, 0x707c7028
mov dword [esp + 0x48], eax
movzx eax, word [ebx + 0x26]
mov dword [esp + 0x44], eax
movzx eax, word [ebx + 0x24]
mov dword [esp + 0x40], eax
movzx eax, word [ebx + 0x22]
mov dword [esp + 0x3c], eax
movzx eax, word [ebx + 0x20]
mov dword [esp + 0x38], eax
movzx eax, word [ebx + 0x1e]
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x1c]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x1a]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0x18]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0x16]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0x14]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0x10]
mov dword [esp + 0x18], eax
movzx eax, word [ebx + 8]
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xa]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x10], eax
mov eax, str.usage__02x:_02x_input__u___u___u__report_len__u_output__u___u___u__report_len__u_feature__u___u___u__report_len__u_collections__u_n
mov dword [esp + 0xc], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
movzx esi, word [ebx + 0x12]
jmp 0x707c52f1
mov edi, 5
jmp 0x707c4c2a
mov edi, 5
jmp 0x707c4bd1