Function at 0x101232e0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10174e9e
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x10206870]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x18], edi
lea eax, [esp + 0x4c]
mov dword [esp + 0x34], eax
push esi
mov esi, dword [esp + 0x38]
mov eax, 1
mov ebx, 0
mov ecx, 0
mov edx, 0
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
pop esi
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov dword [edi + 0x48], 0
mov edi, dword [ebp + 8]
mov edx, ecx
shr edx, 0x18
shr eax, 0x1c
and eax, 1
mov dword [edi + 0x1c], edx
mov dword [edi + 0x368], eax
je 0x10123375
shr ecx, 0x10
and ecx, 0xff
mov dword [edi + 0x58], ecx
cmp dword [edi + 0x2f0], 0x80000001
jb 0x101236c5
lea eax, [esp + 0x4c]
mov dword [esp + 0x34], eax
push esi
mov esi, dword [esp + 0x38]
mov eax, SysReAllocString
mov ebx, 0
mov ecx, 0
mov edx, 0
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
pop esi
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov eax, edx
and eax, 0xffff
mov esi, eax
sar esi, 0xb
and esi, 0xf
mov dword [ecx + 0x38], esi
mov esi, eax
and esi, 0xf
mov dword [ecx + 0x3c], esi
mov esi, eax
sar esi, 4
and esi, 0x7f
mov dword [ecx + 0x34], esi
mov esi, eax
sar eax, 9
sar esi, 0xf
and eax, 0x1f
and esi, 1
mov dword [ecx + 0x40], esi
mov dword [edi + 0x2f8], eax
mov eax, edx
shr eax, 0x1c
mov dword [ecx + 0x30], eax
mov ecx, dword [edi + 0x310]
sub ecx, 0x17
je 0x10123543
sub ecx, 2
je 0x10123460
sub ecx, 1
jne case.0x1012356d.3
mov ecx, dword [edi + 0x314]
cmp ecx, 0x20
je 0x10123448
cmp ecx, 0x40
jne case.0x1012356d.3
test eax, eax
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x10077
jmp case.0x1012356d.3
sub eax, 1
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x10078
jmp case.0x1012356d.3
mov ecx, dword [edi + 0x314]
cmp ecx, 0xa0
ja case.0x1012356d.3
movzx ecx, byte [ecx + 0x10124afc]
jmp dword [ecx*4 + 0x10124adc]
cmp eax, 4
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x1007e
jmp case.0x1012356d.3
cmp eax, 8
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x1007b
jmp case.0x1012356d.3
sub eax, 0
je 0x101235de
sub eax, 2
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x10056
jmp case.0x1012356d.3
cmp eax, 5
ja case.0x1012356d.3
jmp dword [eax*4 + 0x10124ba0]
sub eax, 0
je case.0x101234da.2
sub eax, 1
je 0x101234f4
sub eax, 3
jmp 0x1012349b
mov dword [edi + 0x2fc], 0x10080
jmp case.0x1012356d.3
cmp eax, 5
ja case.0x1012356d.3
jmp dword [eax*4 + 0x10124bb8]
mov dword [edi + 0x2fc], 0x10076
jmp case.0x1012356d.3
cmp eax, 4
je 0x101234a1
cmp eax, 8
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x1007c
jmp case.0x1012356d.3
mov ecx, dword [edi + 0x314]
cmp ecx, 0xa0
ja case.0x1012356d.3
movzx edx, byte [ecx + 0x10124bec]
jmp dword [edx*4 + 0x10124bd0]
dec eax
cmp eax, 6
ja case.0x1012356d.3
jmp dword [eax*4 + 0x10124c90]
mov dword [edi + 0x2fc], 0x10059
jmp case.0x1012356d.3
mov dword [edi + 0x2fc], 0x1005f
jmp case.0x1012356d.3
sub eax, 0
je 0x101235ab
sub eax, 2
je case.0x1012356d.2
sub eax, 1
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x10074
jmp case.0x1012356d.3
mov dword [edi + 0x2fc], 0x1005a
jmp case.0x1012356d.3
cmp eax, 4
je case.0x1012356d.4
cmp eax, 7
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x10066
jmp case.0x1012356d.3
mov dword [edi + 0x2fc], 0x10058
jmp case.0x1012356d.3
sub eax, 0
jne 0x10123591
mov dword [edi + 0x2fc], 0x1006e
jmp case.0x1012356d.3
sub eax, 1
jne case.0x1012356d.3
mov dword [edi + 0x2fc], 0x1007d
lea esi, [edi + 0x164]
push 0x101e6b20
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b2c
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b30
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b34
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b38
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b3c
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b40
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b44
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b48
push esi
call fcn.1003de50
add esp, 8
test eax, eax
jne 0x101236bb
push 0x101e6b4c
push esi
call fcn.1003de50
add esp, 8
test eax, eax
je 0x101236c5
mov dword [edi + 0x364], 1
cmp dword [edi + 0x2f0], 0x8000001e
jb 0x1012378f
lea eax, [esp + 0x4c]
mov dword [esp + 0x34], eax
push esi
mov esi, dword [esp + 0x38]
mov eax, reloc.OLEAUT32.dll_VariantClear
mov ebx, 0
mov ecx, 0
mov edx, 0
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
pop esi
mov eax, dword [esp + 0x54]
mov ecx, eax
and ecx, 0xff
shr eax, 0xc
mov dword [esp + 0x30], ecx
and eax, 0xf
lea ecx, [esp + 0x4c]
mov dword [edi + 0x3c0], eax
mov dword [esp + 0x34], ecx
push esi
mov esi, dword [esp + 0x38]
mov eax, 0x8000001e
mov ebx, 0
mov ecx, 0
mov edx, 0
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
pop esi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, eax
shr eax, 8
and eax, 7
inc eax
mov dword [ecx + 0x4c], eax
mov eax, dword [esp + 0x30]
and edx, 0xff
mov dword [ecx + 0x48], edx
mov ecx, dword [esp + 0x50]
shr ecx, 8
inc eax
and ecx, 3
inc ecx
cdq
idiv ecx
cmp eax, 1
mov dword [edi + 0x5c], eax
jge 0x1012378c
mov eax, 1
mov dword [edi + 0x5c], eax
mov eax, dword [esp + 0x18]
push edi
call fcn.10167410
mov esi, edi
call fcn.100e6440
mov ebx, eax
call fcn.100e64b0
mov edi, dword [edi + 0x58]
cmp edi, ebx
mov ecx, eax
mov dword [esp + 0x14], edi
jge 0x101237b8
mov dword [esp + 0x14], ebx
mov eax, esi
mov eax, dword [eax + 0x60]
mov edi, 1
cmp eax, 0xffffffff
jne 0x101237d0
test ecx, ecx
jle 0x101237d2
mov eax, ebx
cdq
idiv ecx
mov edi, eax
mov ecx, esi
mov edx, dword [ecx + 0x1c]
mov esi, 1
or al, 0xff
xor cl, cl
cmp dword [esp + 0x14], esi
jle 0x101237f4
mov ebx, dword [esp + 0x14]
add esi, esi
add al, al
inc cl
cmp esi, ebx
jl 0x101237ea
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x3c0]
test esi, esi
jle 0x10123819
movzx ebx, cl
cmp ebx, esi
jge 0x10123819
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x3c0]
mov al, 1
shl al, cl
dec al
not al
mov esi, edx
sar esi, cl
mov ecx, dword [ebp + 8]
movzx eax, al
mov dword [ecx + 0x24], esi
not eax
mov esi, 1
and edx, eax
or bl, 0xff
xor cl, cl
cmp edi, esi
jle 0x10123842
add esi, esi
add bl, bl
inc cl
cmp esi, edi
jl 0x10123838
mov esi, edx
sar esi, cl
mov ecx, esi
mov esi, dword [ebp + 8]
and eax, dword [esi + 0x1c]
mov dword [esi + 0x28], ecx
movzx ecx, bl
not ecx
and ecx, edx
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x310]
sub ecx, 0x17
je 0x10123e3b
sub ecx, 2
je 0x10123a18
sub ecx, 1
jne case.0x10123e5a.1
mov eax, dword [esi + 0x314]
and eax, 0xf0
cmp eax, 0x20
je 0x1012389a
cmp eax, 0x40
je 0x1012389a
cmp eax, 0x70
jne case.0x10123e5a.1
cmp dword [esi + 0x2f0], 0x80000026
jb case.0x10123e5a.1
xor edi, edi
lea edx, [esp + 0x4c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x3c], edx
push esi
mov esi, dword [esp + 0x40]
mov eax, 0x80000026
mov ecx, dword [esp + 0x18]
mov edx, 0
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
pop esi
movzx eax, word [esp + 0x50]
test eax, eax
je 0x101239c2
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x54]
shr ecx, 8
and ecx, 0xf
dec ecx
and eax, 0x1f
cmp ecx, 3
ja case.default.0x10123925
jmp dword [ecx*4 + 0x10124cac]
mov dword [esp + 0x2c], eax
mov ecx, 1
test eax, eax
jle case.default.0x10123925
mov edx, dword [esp + 0x1c]
or edx, ecx
rol ecx, 1
sub eax, 1
jne 0x10123941
inc dword [esp + 0x14]
mov dword [esp + 0x1c], edx
jmp 0x101238d4
mov dword [esp + 0x30], eax
mov ecx, 1
test eax, eax
jle case.default.0x10123925
mov edx, dword [esp + 0x20]
or edx, ecx
rol ecx, 1
sub eax, 1
jne 0x10123965
inc dword [esp + 0x14]
mov dword [esp + 0x20], edx
jmp 0x101238d4
mov dword [esp + 0x34], eax
mov ecx, 1
test eax, eax
jle case.default.0x10123925
mov edx, dword [esp + 0x24]
lea esp, [esp]
or edx, ecx
rol ecx, 1
sub eax, 1
jne 0x10123990
inc dword [esp + 0x14]
mov dword [esp + 0x24], edx
jmp 0x101238d4
mov ecx, 1
test eax, eax
jle case.default.0x10123925
nop
or edi, ecx
rol ecx, 1
sub eax, 1
jne 0x101239b0
inc dword [esp + 0x14]
jmp 0x101238d4
mov esi, dword [esp + 0x28]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x3c]
mov ecx, dword [esp + 0x1c]
and ecx, esi
mov dword [edx], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
and edx, esi
shr edx, cl
mov ecx, dword [eax + 0x3c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
and edx, esi
shr edx, cl
mov ecx, dword [eax + 0x3c]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 0x3c]
and edi, esi
mov esi, dword [ebp + 8]
shr edi, cl
mov dword [edx + 0xc], edi
mov eax, dword [eax + 0x3c]
mov dword [eax + 0x10], 0
jmp case.0x10123e5a.1
mov ecx, dword [esi + 0x314]
and ecx, 0xf0
mov edx, 8
cmp ecx, 0xa0
ja case.0x10123e5a.1
movzx ecx, byte [ecx + 0x10124cc4]
jmp dword [ecx*4 + 0x10124cbc]
cmp dword [esi + 0x2f0], 0x80000026
jb 0x10123bb1
xor edi, edi
lea edx, [esp + 0x4c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x3c], edx
lea ecx, [ecx]
push esi
mov esi, dword [esp + 0x40]
mov eax, 0x80000026
mov ecx, dword [esp + 0x18]
mov edx, 0
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
pop esi
movzx eax, word [esp + 0x50]
test eax, eax
je 0x10123b72
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x54]
shr ecx, 8
and ecx, 0xf
dec ecx
and eax, 0x1f
cmp ecx, 3
ja case.default.0x10123ad1
jmp dword [ecx*4 + 0x10124d68]
mov dword [esp + 0x30], eax
mov ecx, 1
test eax, eax
jle case.default.0x10123ad1
mov edx, dword [esp + 0x24]
lea ecx, [ecx]
or edx, ecx
rol ecx, 1
sub eax, 1
jne 0x10123af0
inc dword [esp + 0x14]
mov dword [esp + 0x24], edx
jmp 0x10123a80
mov dword [esp + 0x2c], eax
mov ecx, 1
test eax, eax
jle case.default.0x10123ad1
mov edx, dword [esp + 0x20]
or edx, ecx
rol ecx, 1
sub eax, 1
jne 0x10123b17
inc dword [esp + 0x14]
mov dword [esp + 0x20], edx
jmp 0x10123a80
mov dword [esp + 0x28], eax
mov ecx, 1
test eax, eax
jle case.default.0x10123ad1
mov edx, dword [esp + 0x1c]
mov edi, edi
or edx, ecx
rol ecx, 1
sub eax, 1
jne 0x10123b40
inc dword [esp + 0x14]
mov dword [esp + 0x1c], edx
jmp 0x10123a80
mov ecx, 1
test eax, eax
jle case.default.0x10123ad1
nop
or edi, ecx
rol ecx, 1
sub eax, 1
jne 0x10123b60
inc dword [esp + 0x14]
jmp 0x10123a80
mov esi, dword [esp + 0x34]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x3c]
mov ecx, dword [esp + 0x24]
and ecx, esi
mov dword [edx], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
and edx, esi
shr edx, cl
mov ecx, dword [eax + 0x3c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
and edx, esi
shr edx, cl
mov ecx, dword [eax + 0x3c]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x28]
jmp 0x101239fc
cmp dword [esi + 0x2ec], 0xb
jb 0x10123ce9
xor eax, eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], ecx
push esi
mov esi, dword [esp + 0x40]
mov eax, 0xb
mov ecx, dword [esp + 0x18]
mov edx, 0
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
pop esi
mov eax, dword [esp + 0x50]
test eax, eax
je 0x10123c30
mov edx, dword [esp + 0x58]
and eax, 0x3ff
mov ecx, eax
mov eax, dword [esp + 0x54]
shr eax, 8
and eax, 0xf
sub eax, 1
mov dword [esp + 0x34], edx
je 0x10123c28
sub eax, 1
jne 0x10123c2a
mov eax, dword [ebp + 8]
inc dword [esp + 0x14]
mov dword [eax + 0x58], ecx
jmp 0x10123bd0
mov edi, ecx
inc dword [esp + 0x14]
jmp 0x10123bd0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov dword [ecx + 0x10], 0
or bl, 0xff
mov eax, 1
lea esi, [edi*8]
xor cl, cl
cmp esi, eax
mov byte [esp + 0x13], bl
jle 0x10123c64
add eax, eax
add bl, bl
inc cl
cmp eax, esi
jl 0x10123c56
mov byte [esp + 0x13], bl
mov eax, dword [esp + 0x34]
mov ebx, eax
shr ebx, cl
mov ecx, dword [edx + 0x3c]
mov byte [esp + 0x12], 0
mov dword [ecx + 0xc], ebx
movzx ecx, byte [esp + 0x13]
not ecx
and eax, ecx
mov ecx, 1
cmp esi, ecx
mov byte [esp + 0x13], 0xff
jle 0x10123c9c
shl byte [esp + 0x13], 1
inc byte [esp + 0x12]
add ecx, ecx
cmp ecx, esi
jl 0x10123c8e
mov cl, byte [esp + 0x12]
mov esi, eax
shr esi, cl
mov ecx, dword [edx + 0x3c]
or bl, 0xff
mov dword [ecx + 8], esi
movzx ecx, byte [esp + 0x13]
not ecx
and eax, ecx
mov esi, 1
xor cl, cl
cmp edi, esi
jle 0x10123ccb
add esi, esi
add bl, bl
inc cl
cmp esi, edi
jl 0x10123cc1
mov esi, eax
shr esi, cl
mov ecx, dword [edx + 0x3c]
mov dword [ecx + 4], esi
mov edx, dword [edx + 0x3c]
mov esi, dword [ebp + 8]
movzx ecx, bl
not ecx
and eax, ecx
mov dword [edx], eax
jmp case.0x10123e5a.1
mov esi, dword [esi + 0x40]
test esi, esi
je 0x10123d71
mov ebx, dword [esi]
xor ecx, ecx
test bl, bl
je 0x10123d01
mov ecx, 1
test ebx, 0xff00
je 0x10123d0a
inc ecx
test ebx, 0xff0000
je 0x10123d13
inc ecx
test ebx, 0xff000000
je 0x10123d1c
inc ecx
mov dword [esi + 8], ecx
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x40]
mov ebx, dword [esi]
xor ecx, ecx
test bl, 1
je 0x10123d33
mov ecx, 1
test bl, 2
je 0x10123d39
inc ecx
test bl, 4
je 0x10123d3f
inc ecx
test dl, bl
je 0x10123d44
inc ecx
test bl, 0x10
je 0x10123d4a
inc ecx
test bl, 0x20
je 0x10123d50
inc ecx
test bl, 0x40
je 0x10123d56
inc ecx
test bl, bl
jns 0x10123d5b
inc ecx
cmp ecx, 2
jg 0x10123d67
mov edx, 2
jmp 0x10123d71
cmp ecx, 4
jg 0x10123d71
mov edx, 4
mov ebx, dword [ebp + 8]
imul edx, edi
mov ecx, dword [ebx + 0x3c]
mov esi, 1
cmp edx, esi
mov dword [ecx + 0x10], 0
mov byte [esp + 0x13], 0xff
mov byte [esp + 0x12], 0
jle 0x10123da2
shl byte [esp + 0x13], 1
inc byte [esp + 0x12]
add esi, esi
cmp esi, edx
jl 0x10123d94
mov cl, byte [esp + 0x12]
mov esi, eax
sar esi, cl
mov ecx, dword [ebx + 0x3c]
mov byte [esp + 0x12], 0
mov dword [ecx + 0xc], esi
movzx ecx, byte [esp + 0x13]
not ecx
mov esi, 1
and eax, ecx
cmp edx, esi
mov byte [esp + 0x13], 0xff
jle 0x10123dde
lea esp, [esp]
shl byte [esp + 0x13], 1
inc byte [esp + 0x12]
add esi, esi
cmp esi, edx
jl 0x10123dd0
mov cl, byte [esp + 0x12]
mov edx, eax
sar edx, cl
mov ecx, dword [ebx + 0x3c]
mov byte [esp + 0x12], 0xff
mov dword [ecx + 8], edx
movzx edx, byte [esp + 0x13]
not edx
and eax, edx
mov edx, 1
cmp edi, edx
mov byte [esp + 0x13], 0
jle 0x10123e1e
jmp 0x10123e10
shl byte [esp + 0x12], 1
inc byte [esp + 0x13]
add edx, edx
cmp edx, edi
jl 0x10123e10
mov cl, byte [esp + 0x13]
mov edx, eax
sar edx, cl
mov ecx, dword [ebx + 0x3c]
mov esi, ebx
mov dword [ecx + 4], edx
movzx edx, byte [esp + 0x12]
mov ecx, dword [ebx + 0x3c]
jmp 0x10123f8a
mov ecx, dword [esi + 0x314]
and ecx, 0xf0
cmp ecx, 0xa0
ja case.0x10123e5a.1
movzx edx, byte [ecx + 0x10124d84]
jmp dword [edx*4 + 0x10124d78]
mov edx, 1
lea esi, [edi*8]
or bl, 0xff
xor cl, cl
cmp esi, edx
jle 0x10123e80
add edx, edx
add bl, bl
inc cl
cmp edx, esi
jl 0x10123e76
mov edx, eax
sar edx, cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x3c]
lea esi, [edi*4]
mov dword [ecx + 0x10], edx
movzx edx, bl
not edx
and eax, edx
mov edx, 1
or bl, 0xff
xor cl, cl
cmp esi, edx
jle 0x10123eba
lea esp, [esp]
add edx, edx
add bl, bl
inc cl
cmp edx, esi
jl 0x10123eb0
mov esi, dword [ebp + 8]
mov edx, eax
sar edx, cl
mov ecx, dword [esi + 0x3c]
mov dword [ecx + 8], edx
movzx edx, bl
not edx
and eax, edx
mov edx, 1
or bl, 0xff
xor cl, cl
cmp edi, edx
jle 0x10123f7a
add edx, edx
add bl, bl
inc cl
cmp edx, edi
jl 0x10123ee0
jmp 0x10123f7a
mov edx, dword [esi + 0x3c]
mov dword [edx + 0x10], 0
mov edx, 1
lea esi, [edi*8]
or bl, 0xff
xor cl, cl
cmp esi, edx
jle 0x10123f1a
mov edi, edi
add edx, edx
add bl, bl
inc cl
cmp edx, esi
jl 0x10123f10
mov edx, eax
sar edx, cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x3c]
lea esi, [edi*4]
mov dword [ecx + 0xc], edx
movzx edx, bl
not edx
and eax, edx
mov edx, 1
or bl, 0xff
xor cl, cl
cmp esi, edx
jle 0x10123f4d
add edx, edx
add bl, bl
inc cl
cmp edx, esi
jl 0x10123f43
mov esi, dword [ebp + 8]
mov edx, eax
sar edx, cl
mov ecx, dword [esi + 0x3c]
mov dword [ecx + 8], edx
movzx edx, bl
not edx
and eax, edx
mov edx, 1
or bl, 0xff
xor cl, cl
cmp edi, edx
jle 0x10123f7a
nop
add edx, edx
add bl, bl
inc cl
cmp edx, edi
jl 0x10123f70
mov edx, eax
sar edx, cl
mov ecx, dword [esi + 0x3c]
mov dword [ecx + 4], edx
mov ecx, dword [esi + 0x3c]
movzx edx, bl
not edx
and eax, edx
mov dword [ecx], eax
call fcn.1013c470
cmp dword [eax + 0x3c], 0
je case.0x10123fd4.1
mov eax, dword [esi + 0x310]
sub eax, 0x17
je 0x101240fa
sub eax, 2
jne case.0x10123fd4.1
mov eax, dword [esi + 0x314]
and eax, 0xf0
cmp eax, 0xa0
ja case.0x10123fd4.1
movzx edx, byte [eax + 0x10124e34]
jmp dword [edx*4 + 0x10124e28]
mov edi, dword [esi + 0x24]
add edi, 0x18
call fcn.1013c470
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + 0x24]
cmp ecx, 1
jne 0x10123ff6
mov ebx, dword [eax + 0x28]
jmp 0x10124002
cmp ecx, 2
jne 0x10124000
mov ebx, dword [eax + 0x2c]
jmp 0x10124002
xor ebx, ebx
call fcn.1013c470
mov eax, dword [eax + 0x28]
test eax, eax
je 0x1012403a
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1012403a
mov eax, dword [ecx + 4]
test eax, eax
je 0x1012403a
mov edx, 3
cmp dword [eax + 4], edx
je 0x1012403a
test ecx, ecx
je 0x1012403a
mov eax, dword [ecx + 8]
test eax, eax
je 0x1012403a
mov ecx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x10124021
test ebx, ebx
je case.0x10123fd4.1
mov eax, dword [ebx]
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x3c]
push ecx
jmp 0x1012417a
mov edi, dword [esi + 0x24]
add edi, 0x18
call fcn.1013c470
call fcn.1013c470
mov eax, dword [eax + 0x28]
test eax, eax
je case.0x10123fd4.1
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x10123fd4.1
mov eax, dword [ecx + 4]
test eax, eax
je case.0x10123fd4.1
cmp dword [eax + 4], 3
je 0x101240a9
test ecx, ecx
je case.0x10123fd4.1
mov eax, dword [ecx + 8]
test eax, eax
je case.0x10123fd4.1
mov ecx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x10124082
jmp case.0x10123fd4.1
mov dword [esp + 0x34], 0xffffffff
call fcn.1013c470
cmp dword [eax + 0x20], 0
je case.0x10123fd4.1
call fcn.1013c470
mov eax, dword [eax + 0x20]
lea ecx, [esp + 0x34]
push ecx
push 4
push 0xc04
push 0
push edi
push 0
mov ecx, eax
call fcn.1001a6d9
test eax, eax
je case.0x10123fd4.1
mov edx, dword [esp + 0x34]
and edx, 0xff
mov dword [esi + 0x50], edx
jmp case.0x10123fd4.1
mov eax, dword [esi + 0x314]
and eax, 0xf0
cmp al, 0x30
jne case.0x10123fd4.1
mov edi, dword [esi + 0x24]
add edi, 0x18
call fcn.1013c470
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + 0x24]
cmp ecx, 1
jne 0x10124128
mov ebx, dword [eax + 0x28]
jmp 0x10124134
cmp ecx, 2
jne 0x10124132
mov ebx, dword [eax + 0x2c]
jmp 0x10124134
xor ebx, ebx
call fcn.1013c470
mov eax, dword [eax + 0x28]
test eax, eax
je 0x1012416c
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1012416c
mov eax, dword [ecx + 4]
test eax, eax
je 0x1012416c
mov edx, 3
cmp dword [eax + 4], edx
je 0x1012416c
test ecx, ecx
je 0x1012416c
mov eax, dword [ecx + 8]
test eax, eax
je 0x1012416c
mov ecx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x10124153
test ebx, ebx
je case.0x10123fd4.1
mov edx, dword [ebx]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x3c]
push eax
push 0x84
push 0
push edi
push 0
mov ecx, ebx
call edx
test eax, eax
je case.0x10123fd4.1
mov eax, dword [esp + 0x3c]
and eax, 0xff
mov dword [esi + 0x50], eax
push esi
mov eax, 0xc0010058
call fcn.100e7c00
mov edi, eax
test edi, edi
je 0x101242b7
test byte [edi + 0xc], 1
je 0x101242b7
call fcn.1013c470
cmp dword [eax + 0x3c], 0
je 0x101242b7
call fcn.1013c470
call fcn.1013c470
mov eax, dword [eax + 0x28]
test eax, eax
je 0x1012420d
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1012420d
mov eax, dword [ecx + 4]
test eax, eax
je 0x1012420d
mov edx, 3
lea ebx, [ebx]
cmp dword [eax + 4], edx
je 0x101242b7
test ecx, ecx
je 0x1012420d
mov eax, dword [ecx + 8]
test eax, eax
je 0x1012420d
mov ecx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x101241f0
mov esi, dword [edi + 0xc]
push 0x2000000
and esi, 0xfff00000
push esi
xor ebx, ebx
push ebx
call fcn.1013c470
mov ecx, eax
call fcn.1013ccb0
mov edi, eax
cmp edi, ebx
jne 0x1012426d
push 0x14
call fcn.1003ddbb
add esp, 4
cmp eax, ebx
je 0x1012425d
mov dword [eax + 4], 0x2000000
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], 0x1000
mov dword [eax], vtable.CMemoryIOSpace.0
mov edi, eax
jmp 0x1012425f
xor edi, edi
call fcn.1013c470
mov ecx, dword [eax + 0x24]
push edi
call fcn.10002150
push 0x20
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x68], ebx
cmp eax, ebx
je 0x1012428f
push edi
mov esi, eax
call fcn.100600f0
mov esi, eax
jmp 0x10124291
xor esi, esi
mov dword [esp + 0x68], 0xffffffff
call fcn.1013c470
mov ecx, dword [eax + 0x28]
push esi
call fcn.10001610
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
call fcn.100756a0
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x18]
cmp dword [ebx + 0x2c], 0
jne 0x1012436d
push 1
push 0xcd0
push 0
call fcn.1013c470
mov ecx, eax
call fcn.1013cc30
mov edi, eax
test edi, edi
jne 0x1012436a
push 0x14
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x10124314
mov dword [eax + 4], 0x1000000
mov dword [eax + 8], edi
mov dword [eax + 0xc], 0xcd0
mov dword [eax + 0x10], 0x100
mov dword [eax], vtable.CPortIOSpace.0
mov ebx, eax
jmp 0x10124316
xor ebx, ebx
push 0x20
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x68], 1
test eax, eax
je 0x10124340
push 1
push 0
push ebx
mov ecx, eax
call fcn.10060990
mov edi, eax
jmp 0x10124342
xor edi, edi
mov dword [esp + 0x68], 0xffffffff
call fcn.1013c470
mov ecx, dword [eax + 0x28]
push edi
call fcn.10001610
call fcn.1013c470
mov ecx, dword [eax + 0x24]
push ebx
call fcn.10002150
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x2c], edi
push esi
push ebx
call fcn.10122a20
test eax, eax
je 0x10124524
mov ecx, dword [eax + 4]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x10124524
mov edi, dword [ecx + 4]
test edi, edi
je 0x10124524
jmp 0x101243a0
mov edx, dword [edi + 0x18]
movzx eax, word [edx + 6]
mov edx, 0x1463
cmp ax, dx
jne 0x10124508
xor esi, esi
mov dword [esp + 0x40], vtable.CTList_class_CRegisterSpace_.0
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
lea eax, [esp + 0x40]
push eax
push 0x12
mov dword [esp + 0x70], 2
call fcn.1013c470
mov ecx, eax
call fcn.1013cbc0
mov ebx, dword [esp + 0x44]
test eax, eax
jle 0x10124439
mov edx, ebx
test ebx, ebx
je 0x10124439
mov eax, dword [ebx + 4]
test eax, eax
je 0x10124439
movzx ebx, byte [edi + 0x14]
mov ecx, dword [eax + 0x14]
cmp ecx, ebx
jne 0x10124419
movzx ebx, byte [edi + 0x15]
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
jne 0x10124419
mov ecx, dword [esp + 0x18]
mov esi, 1
mov dword [ecx + 0x28], eax
test edx, edx
je 0x1012442d
mov eax, dword [edx + 8]
test eax, eax
je 0x1012442d
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x101243f7
mov ebx, dword [esp + 0x44]
test esi, esi
jne 0x101244c6
push 0xc
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x1012445b
mov dword [eax], vtable.AMD_K10_ECS_Status.0
mov dword [eax + 4], edi
mov dword [eax + 8], 1
mov esi, eax
jmp 0x1012445d
xor esi, esi
call fcn.1013c470
mov ecx, dword [eax + 0x18]
push esi
call fcn.10002270
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
push 0x20
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x3c], eax
mov byte [esp + 0x68], 3
test eax, eax
je 0x101244aa
movzx ecx, byte [edi + 0x15]
movzx edx, byte [edi + 0x14]
push esi
push ecx
push edx
mov ecx, eax
call fcn.10062080
mov esi, eax
jmp 0x101244ac
xor esi, esi
mov eax, dword [esp + 0x18]
mov byte [esp + 0x68], 2
mov dword [eax + 0x28], esi
call fcn.1013c470
mov ecx, dword [eax + 0x28]
push esi
call fcn.10001610
xor edi, edi
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x40], vtable.CTList_class_CRegisterSpace_.0
mov ecx, ebx
mov esi, ebx
cmp ebx, edi
je 0x101244f5
mov esi, dword [esi + 8]
cmp ecx, edi
je 0x101244ef
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, esi
cmp esi, edi
jne 0x101244e0
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
test ecx, ecx
je 0x10124524
mov eax, dword [ecx + 8]
test eax, eax
je 0x10124524
mov edi, dword [eax + 4]
mov ecx, eax
mov dword [esp + 0x38], ecx
test edi, edi
jne 0x101243a0
mov ecx, dword [esi + 0x310]
cmp ecx, 0x17
jne 0x1012453c
cmp dword [esi + 0x314], 0x47
je 0x101247ea
cmp ecx, 0x1a
jne 0x1012456a
push 0x5c
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x68], 4
test eax, eax
je 0x10124649
push eax
call fcn.100c7900
jmp 0x1012464b
cmp ecx, 0x19
jne 0x101245cd
mov eax, dword [esi + 0x314]
and eax, 0xf0
cmp eax, 0x10
je 0x10124595
cmp eax, 0x40
je 0x10124595
cmp eax, 0x60
je 0x10124595
cmp eax, 0x70
je 0x10124595
cmp eax, 0xa0
jne 0x101245cd
push 0x5c
call fcn.1003ddbb
mov edi, eax
add esp, 4
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], 5
test edi, edi
je 0x10124618
push edi
call fcn.100c8140
mov dword [edi], vtable.K19_FIDVID_Control.0
mov dword [esp + 0x68], 0xffffffff
mov dword [ebx + 0x10], edi
jmp 0x10124656
cmp ecx, 0x17
jne 0x10124627
mov ecx, dword [esi + 0x314]
and ecx, 0xf0
cmp cl, 0xa0
jne 0x10124627
push 0x5c
call fcn.1003ddbb
mov edi, eax
add esp, 4
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], 6
test edi, edi
je 0x10124618
push edi
call fcn.100c8140
mov dword [edi], vtable.K17_2_FIDVID_Control.0
mov dword [esp + 0x68], 0xffffffff
mov dword [ebx + 0x10], edi
jmp 0x10124656
xor edi, edi
mov dword [esp + 0x68], 0xffffffff
mov dword [ebx + 0x10], edi
jmp 0x10124656
push 0x5c
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x68], 7
test eax, eax
je 0x10124649
push eax
call fcn.100c8140
jmp 0x1012464b
xor eax, eax
mov dword [esp + 0x68], 0xffffffff
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x101247ea
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x18]
cmp eax, 0xffffffff
je 0x101247ea
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fstp dword [esp + 0x34]
fldz
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 5
jp 0x101247ea
push 0x168
call fcn.1003ddbb
mov esi, eax
add esp, 4
test esi, esi
je 0x10124731
fld dword [0x101f69a8]
push 0x10180938
fst dword [esi + 0x154]
lea eax, [esi + 0x104]
fstp dword [esi + 0x158]
or ecx, 0xffffffff
fld1
push 0x40
fstp dword [esi + 0x164]
push eax
fld dword [0x101f69a4]
mov dword [esi + 0x144], 0x1000
fstp dword [esi + 0x15c]
mov dword [esi + 0x148], ecx
fld dword [0x101f69a0]
mov byte [esi + 4], 0
fstp dword [esi + 0x160]
mov byte [eax], 0
mov dword [esi + 0x14c], ecx
mov dword [esi + 0x150], 0
mov dword [esi], vtable.CVoltageSensor.0
call fcn.1013b440
fld dword [0x101f69a0]
fstp dword [esi + 0x158]
add esp, 0xc
jmp 0x10124733
xor esi, esi
mov edi, dword [ebp + 8]
mov dword [edi + 0x4b8], esi
or dword [esi + 0x144], 0x3801000
mov ecx, dword [edi + 0x4b8]
push 0x101e6b50
add ecx, 4
push 0x100
push ecx
call fcn.1013b440
mov esi, dword [edi + 0x4b8]
fld dword [esi + 0x164]
mov edx, dword [esi]
fmul dword [esp + 0x40]
mov eax, dword [edx + 4]
add esp, 0xc
mov ecx, esi
fstp dword [esi + 0x158]
call eax
test eax, eax
je 0x101247c7
fld dword [esi + 0x158]
fld dword [esi + 0x160]
fcompp
fnstsw ax
test ah, 5
jp 0x101247a6
fld dword [esi + 0x158]
fstp dword [esi + 0x160]
fld dword [esi + 0x158]
fld dword [esi + 0x15c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x101247c7
fld dword [esi + 0x158]
fstp dword [esi + 0x15c]
mov edi, dword [edi + 0x4b8]
call fcn.1013c470
mov ecx, dword [eax + 0x38]
mov edx, dword [ecx + 8]
mov dword [edi + 0x148], edx
mov ecx, dword [eax + 0x38]
push edi
call fcn.100021e0
mov esi, dword [ebp + 8]
push esi
mov eax, 0xc0010063
call fcn.100e7c00
push esi
mov eax, 0xc0010292
call fcn.100e7c00
push esi
mov eax, 0xc0010293
call fcn.100e7c00
xor edi, edi
lea ecx, [ecx]
lea eax, [edi - 0x3ffeff9c]
push esi
call fcn.100e7c00
inc edi
cmp edi, 8
jl 0x10124810
fld qword [0x101f7218]
push esi
mov eax, 0xc0010299
fstp qword [ebx + 0x18]
call fcn.100e7c00
test eax, eax
je 0x10124859
mov ecx, dword [eax + 0xc]
shr ecx, 8
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fld1
fdivrp st(1)
fstp qword [ebx + 0x18]
push esi
mov eax, 0xc001029b
call fcn.100e7c00
mov ebx, 0x5000
test eax, eax
je 0x10124977
push 0x188
call fcn.1003ddbb
mov esi, eax
add esp, 4
test esi, esi
je 0x1012491c
fld dword [0x101f69a8]
push 0x10180948
fst dword [esi + 0x154]
lea eax, [esi + 0x104]
fstp dword [esi + 0x158]
or ecx, 0xffffffff
fld1
push 0x40
fstp dword [esi + 0x164]
push eax
fld dword [0x101f69a4]
mov dword [esi + 0x144], ebx
fstp dword [esi + 0x15c]
mov dword [esi + 0x148], ecx
fld dword [0x101f69a0]
mov byte [esi + 4], 0
fstp dword [esi + 0x160]
mov byte [eax], 0
mov dword [esi + 0x14c], ecx
mov dword [esi + 0x150], 0
mov dword [esi], vtable.CPowerSensor.0
call fcn.1013b440
fld qword [0x101f69b0]
fst qword [esi + 0x170]
add esp, 0xc
fst qword [esi + 0x168]
fst qword [esi + 0x180]
fstp qword [esi + 0x178]
jmp 0x1012491e
xor esi, esi
mov edi, dword [ebp + 8]
mov dword [edi + 0x4a4], esi
or dword [esi + 0x144], 0x405000
mov ecx, dword [edi + 0x4a4]
push 0x101e6b54
add ecx, 4
push 0x100
push ecx
call fcn.1013b440
add esp, 0xc
call fcn.1013c470
mov edx, dword [eax + 0x38]
mov ecx, dword [edx + 8]
mov dword [esi + 0x148], ecx
mov ecx, dword [eax + 0x38]
push esi
call fcn.100021e0
mov edx, dword [esp + 0x18]
push edx
mov eax, edi
call fcn.1011e210
fstp st(0)
mov esi, edi
push esi
mov eax, 0xc001029a
call fcn.100e7c00
test eax, eax
je 0x10124a96
push 0x188
call fcn.1003ddbb
mov esi, eax
add esp, 4
test esi, esi
je 0x10124a3b
fld dword [0x101f69a8]
push 0x10180948
fst dword [esi + 0x154]
lea eax, [esi + 0x104]
fstp dword [esi + 0x158]
or ecx, 0xffffffff
fld1
push 0x40
fstp dword [esi + 0x164]
push eax
fld dword [0x101f69a4]
mov dword [esi + 0x144], ebx
fstp dword [esi + 0x15c]
mov dword [esi + 0x148], ecx
fld dword [0x101f69a0]
mov byte [esi + 4], 0
fstp dword [esi + 0x160]
mov byte [eax], 0
mov dword [esi + 0x14c], ecx
mov dword [esi + 0x150], 0
mov dword [esi], vtable.CPowerSensor.0
call fcn.1013b440
fld qword [0x101f69b0]
fst qword [esi + 0x170]
add esp, 0xc
inc dword [esi + 0x144]
fst qword [esi + 0x168]
fst qword [esi + 0x180]
fstp qword [esi + 0x178]
jmp 0x10124a3d
xor esi, esi
mov edi, dword [ebp + 8]
mov dword [edi + 0x4a8], esi
or dword [esi + 0x144], 0xc05000
mov eax, dword [edi + 0x4a8]
push 0x101e6b5c
add eax, 4
push 0x100
push eax
call fcn.1013b440
add esp, 0xc
call fcn.1013c470
mov ecx, dword [eax + 0x38]
mov edx, dword [ecx + 8]
mov dword [esi + 0x148], edx
mov ecx, dword [eax + 0x38]
push esi
call fcn.100021e0
mov eax, dword [esp + 0x18]
push eax
mov eax, edi
call fcn.1011e030
fstp st(0)
mov esi, edi
push esi
mov eax, 0xc00102b1
call fcn.100e7c00
test eax, eax
je 0x10124ac4
test byte [eax + 0xc], 1
je 0x10124ac4
push esi
mov eax, 0xc00102b0
call fcn.100e7c00
test eax, eax
je 0x10124ac4
movzx ecx, byte [eax + 0xf]
mov dword [esi + 0x320], ecx
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4