Function at 0x5037a6
Capabilities:
Enumerate pe sections

Disassembly:
push 0xffffffffffffffff
push 0x599b18
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x614b80]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x1c], esi
xor edi, edi
mov dword [esp + 0x24], vtable.CTList_class_CDevice_.0
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
call fcn.0043b760
cmp dword [eax + 0x38], edi
jne 0x503238
mov esi, dword [esi + 0xc]
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], 0xffffffff
call fcn.0041c2c0
mov eax, esi
jmp 0x5039c7
cmp dword [esi + 0xc], edi
jne 0x50325e
push 0xc
call fcn.00568473
add esp, 4
cmp eax, edi
je 0x503259
mov dword [eax], vtable.CTList_class_CDevice_.0
mov dword [eax + 4], edi
mov dword [eax + 8], edi
jmp 0x50325b
xor eax, eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 8]
cmp eax, edi
jne 0x503986
or eax, 0xffffffff
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
call fcn.0043b760
mov eax, dword [eax + 0x38]
lea ecx, [esp + 0x24]
push ecx
push 0x1600
push 0x1022
mov ecx, eax
call fcn.00440420
mov ebx, dword [esp + 0x40]
test eax, eax
jle 0x503451
mov eax, dword [esp + 0x28]
mov ebp, eax
test eax, eax
je 0x503451
mov edi, dword [eax + 4]
test edi, edi
je 0x503451
lea ebx, [ebx]
lea edx, [esp + 0x20]
push edx
push 0x60
mov ecx, edi
call fcn.00475660
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
and eax, 7
imul ecx, eax
mov eax, 1
or dl, 0xff
cmp esi, eax
jle 0x5032f8
lea ebx, [ebx]
add eax, eax
add dl, dl
cmp eax, esi
jl 0x5032f0
movzx eax, dl
and eax, dword [ebx + 0x18]
cmp eax, ecx
je 0x503323
test ebp, ebp
je 0x503451
mov eax, dword [ebp + 8]
test eax, eax
je 0x503451
mov edi, dword [eax + 4]
mov ebp, eax
test edi, edi
jne 0x5032c0
jmp 0x503451
movzx ecx, byte [edi + 0x15]
movzx esi, byte [edi + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ecx, dword [edx + 0xc]
push edi
mov dword [esp + 0x1c], esi
call fcn.0041c300
cmp esi, 0xffffffff
je 0x503451
cmp dword [esp + 0x14], 0xffffffff
je 0x503451
call fcn.0043b760
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x503451
mov edi, dword [eax + 4]
test edi, edi
je 0x503451
mov eax, dword [edi + 4]
test eax, eax
je 0x503451
lea ebx, [ebx]
test byte [eax + 4], 1
je 0x503439
mov ecx, dword [eax + 0x18]
movzx edx, word [ecx + 4]
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x5033ac
movzx esi, word [ecx + 6]
mov ebp, 0x1601
cmp si, bp
je 0x503418
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x5033c7
movzx esi, word [ecx + 6]
mov ebp, 0x1602
cmp si, bp
je 0x503418
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x5033e2
movzx esi, word [ecx + 6]
mov ebp, 0x1603
cmp si, bp
je 0x503418
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x5033fd
movzx esi, word [ecx + 6]
mov ebp, 0x1604
cmp si, bp
je 0x503418
movzx edx, dx
mov esi, 0x1022
cmp dx, si
jne 0x503439
movzx ecx, word [ecx + 6]
mov edx, 0x1605
cmp cx, dx
jne 0x503439
movzx ecx, byte [eax + 0x14]
cmp ecx, dword [esp + 0x18]
jne 0x503439
movzx edx, byte [eax + 0x15]
cmp edx, dword [esp + 0x14]
jne 0x503439
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
call fcn.0041c300
test edi, edi
je 0x503451
mov eax, dword [edi + 8]
test eax, eax
je 0x503451
mov edi, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x503380
call fcn.0043b760
mov eax, dword [eax + 0x38]
lea ecx, [esp + 0x24]
push ecx
push 0x1400
push 0x1022
mov ecx, eax
call fcn.00440420
test eax, eax
jle 0x503604
mov eax, dword [esp + 0x28]
mov ebp, eax
test eax, eax
je 0x5034f7
mov edi, dword [eax + 4]
test edi, edi
je 0x5034f7
lea edx, [esp + 0x20]
push edx
push 0x60
mov ecx, edi
call fcn.00475660
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
and eax, 7
imul ecx, eax
mov eax, 1
or dl, 0xff
cmp esi, eax
jle 0x5034ba
add eax, eax
add dl, dl
cmp eax, esi
jl 0x5034b2
movzx eax, dl
and eax, dword [ebx + 0x18]
cmp eax, ecx
je 0x5034da
test ebp, ebp
je 0x5034f7
mov eax, dword [ebp + 8]
test eax, eax
je 0x5034f7
mov edi, dword [eax + 4]
mov ebp, eax
test edi, edi
jne 0x503488
jmp 0x5034f7
movzx ecx, byte [edi + 0x14]
movzx edx, byte [edi + 0x15]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc]
push edi
mov dword [esp + 0x18], edx
call fcn.0041c300
cmp dword [esp + 0x18], 0xffffffff
je 0x503604
cmp dword [esp + 0x14], 0xffffffff
je 0x503604
call fcn.0043b760
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x503604
mov edi, dword [eax + 4]
test edi, edi
je 0x503604
mov eax, dword [edi + 4]
test eax, eax
je 0x503604
test byte [eax + 4], 1
je 0x5035ec
mov ecx, dword [eax + 0x18]
movzx edx, word [ecx + 4]
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x50355f
movzx esi, word [ecx + 6]
mov ebp, 0x1401
cmp si, bp
je 0x5035cb
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x50357a
movzx esi, word [ecx + 6]
mov ebp, 0x1402
cmp si, bp
je 0x5035cb
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x503595
movzx esi, word [ecx + 6]
mov ebp, 0x1403
cmp si, bp
je 0x5035cb
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x5035b0
movzx esi, word [ecx + 6]
mov ebp, 0x1404
cmp si, bp
je 0x5035cb
movzx edx, dx
mov esi, 0x1022
cmp dx, si
jne 0x5035ec
movzx ecx, word [ecx + 6]
mov edx, 0x1405
cmp cx, dx
jne 0x5035ec
movzx ecx, byte [eax + 0x14]
cmp ecx, dword [esp + 0x18]
jne 0x5035ec
movzx edx, byte [eax + 0x15]
cmp edx, dword [esp + 0x14]
jne 0x5035ec
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
call fcn.0041c300
test edi, edi
je 0x503604
mov eax, dword [edi + 8]
test eax, eax
je 0x503604
mov edi, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x503533
call fcn.0043b760
mov eax, dword [eax + 0x38]
lea ecx, [esp + 0x24]
push ecx
push 0x141a
push 0x1022
mov ecx, eax
call fcn.00440420
test eax, eax
jle 0x5037c2
mov eax, dword [esp + 0x28]
mov ebp, eax
test eax, eax
je 0x5036b5
mov edi, dword [eax + 4]
test edi, edi
je 0x5036b5
nop
lea edx, [esp + 0x20]
push edx
push 0x60
mov ecx, edi
call fcn.00475660
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
and eax, 7
imul ecx, eax
mov eax, 1
or dl, 0xff
cmp esi, eax
jle 0x503678
lea ebx, [ebx]
add eax, eax
add dl, dl
cmp eax, esi
jl 0x503670
movzx eax, dl
and eax, dword [ebx + 0x18]
cmp eax, ecx
je 0x503698
test ebp, ebp
je 0x5036b5
mov eax, dword [ebp + 8]
test eax, eax
je 0x5036b5
mov edi, dword [eax + 4]
mov ebp, eax
test edi, edi
jne 0x503640
jmp 0x5036b5
movzx ecx, byte [edi + 0x14]
movzx edx, byte [edi + 0x15]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc]
push edi
mov dword [esp + 0x18], edx
call fcn.0041c300
cmp dword [esp + 0x18], 0xffffffff
je 0x5037c2
cmp dword [esp + 0x14], 0xffffffff
je 0x5037c2
call fcn.0043b760
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x5037c2
mov edi, dword [eax + 4]
test edi, edi
je 0x5037c2
mov eax, dword [edi + 4]
test eax, eax
je 0x5037c2
test byte [eax + 4], 1
je 0x5037aa
mov ecx, dword [eax + 0x18]
movzx edx, word [ecx + 4]
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x50371d
movzx esi, word [ecx + 6]
mov ebp, 0x141b
cmp si, bp
je 0x503789
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x503738
movzx esi, word [ecx + 6]
mov ebp, 0x141c
cmp si, bp
je 0x503789
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x503753
movzx esi, word [ecx + 6]
mov ebp, 0x141d
cmp si, bp
je 0x503789
movzx esi, dx
mov ebp, 0x1022
cmp si, bp
jne 0x50376e
movzx esi, word [ecx + 6]
mov ebp, 0x141e
cmp si, bp
je 0x503789
movzx edx, dx
mov esi, 0x1022
cmp dx, si
jne 0x5037aa
movzx ecx, word [ecx + 6]
mov edx, 0x141f
cmp cx, dx
jne 0x5037aa
movzx ecx, byte [eax + 0x14]
cmp ecx, dword [esp + 0x18]
jne 0x5037aa
movzx edx, byte [eax + 0x15]
cmp edx, dword [esp + 0x14]
jne 0x5037aa
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
call fcn.0041c300
test edi, edi
je 0x5037c2
mov eax, dword [edi + 8]
test eax, eax
je 0x5037c2
mov edi, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x5036f1
call fcn.0043b760
mov eax, dword [eax + 0x38]
lea ecx, [esp + 0x24]
push ecx
push 0x1570
push 0x1022
mov ecx, eax
call fcn.00440420
test eax, eax
jle 0x503986
mov eax, dword [esp + 0x28]
mov ebp, eax
test eax, eax
je 0x503879
mov edi, dword [eax + 4]
test edi, edi
je 0x503879
lea edx, [esp + 0x20]
push edx
push 0x60
mov ecx, edi
call fcn.00475660
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
and eax, 7
imul ecx, eax
mov eax, 1
or dl, 0xff
cmp esi, eax
jle 0x503838
jmp 0x503830
add eax, eax
add dl, dl
cmp eax, esi
jl 0x503830
movzx eax, dl
and eax, dword [ebx + 0x18]
cmp eax, ecx
je 0x503858
test ebp, ebp
je 0x503875
mov eax, dword [ebp + 8]
test eax, eax
je 0x503875
mov edi, dword [eax + 4]
mov ebp, eax
test edi, edi
jne 0x503801
jmp 0x503875
movzx ecx, byte [edi + 0x14]
movzx edx, byte [edi + 0x15]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc]
push edi
mov dword [esp + 0x18], edx
call fcn.0041c300
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0xffffffff
je 0x50398a
cmp dword [esp + 0x14], 0xffffffff
je 0x50398a
call fcn.0043b760
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x503986
mov edi, dword [eax + 4]
test edi, edi
je 0x503986
mov eax, dword [edi + 4]
test eax, eax
je 0x503986
test byte [eax + 4], 1
je 0x50396e
mov ecx, dword [eax + 0x18]
movzx edx, word [ecx + 4]
movzx esi, dx
mov ebx, 0x1022
cmp si, bx
jne 0x5038e1
movzx esi, word [ecx + 6]
mov ebx, 0x1571
cmp si, bx
je 0x50394d
movzx esi, dx
mov ebx, 0x1022
cmp si, bx
jne 0x5038fc
movzx esi, word [ecx + 6]
mov ebx, 0x1572
cmp si, bx
je 0x50394d
movzx esi, dx
mov ebx, 0x1022
cmp si, bx
jne 0x503917
movzx esi, word [ecx + 6]
mov ebx, 0x1573
cmp si, bx
je 0x50394d
movzx esi, dx
mov ebx, 0x1022
cmp si, bx
jne 0x503932
movzx esi, word [ecx + 6]
mov ebx, 0x1574
cmp si, bx
je 0x50394d
movzx edx, dx
mov esi, 0x1022
cmp dx, si
jne 0x50396e
movzx ecx, word [ecx + 6]
mov edx, 0x1575
cmp cx, dx
jne 0x50396e
movzx ecx, byte [eax + 0x14]
cmp ecx, dword [esp + 0x18]
jne 0x50396e
movzx edx, byte [eax + 0x15]
cmp edx, dword [esp + 0x14]
jne 0x50396e
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
call fcn.0041c300
test edi, edi
je 0x503986
mov eax, dword [edi + 8]
test eax, eax
je 0x503986
mov edi, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x5038b5
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x24], vtable.CTList_class_CDevice_.0
mov ecx, eax
mov esi, eax
test eax, eax
je 0x5039c5
lea esp, [esp]
mov esi, dword [esi + 8]
test ecx, ecx
je 0x5039bf
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, esi
test esi, esi
jne 0x5039b0
mov eax, edi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4