Function at 0x1012b730
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10174f26
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x10206870]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov dword [esp + 0x14], ecx
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
lea ecx, [esp + 0x34]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
push esi
mov esi, dword [esp + 0x1c]
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 + 0x38]
mov eax, dword [esp + 0x40]
mov edx, ecx
shr edx, 0x18
shr eax, 0x1c
and eax, 1
mov dword [edi + 0x1c], edx
mov dword [edi + 0x368], eax
je 0x1012b7c3
shr ecx, 0x10
and ecx, 0xff
mov dword [edi + 0x58], ecx
cmp dword [edi + 0x2f0], 0x80000001
jb case.0x1012b889.1
lea eax, [esp + 0x34]
mov dword [esp + 0x18], eax
push esi
mov esi, dword [esp + 0x1c]
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 ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov eax, ecx
and eax, 0xffff
mov esi, eax
sar esi, 0xb
and esi, 0xf
mov dword [edx + 0x24], esi
mov esi, eax
and esi, 0xf
mov dword [edx + 0x28], esi
mov esi, eax
sar esi, 4
and esi, 0x7f
mov dword [edx + 0x20], esi
mov esi, eax
sar esi, 0xf
sar eax, 9
and esi, 1
and eax, 0x1f
shr ecx, 0x1c
mov dword [edx + 0x2c], esi
mov dword [edi + 0x2f8], eax
mov dword [edx + 0x1c], ecx
lea ecx, [edi + 0x164]
push str.Eng_Sample
push ecx
call fcn.1003de50
add esp, 8
test eax, eax
je 0x1012b86e
mov dword [edi + 0x364], 1
mov eax, dword [edi + 0x314]
and eax, 0xf0
cmp eax, 0x70
ja case.0x1012b889.1
movzx edx, byte [eax + 0x1012c14c]
jmp dword [edx*4 + 0x1012c134]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
sub eax, 1
je 0x1012b906
sub eax, 2
je 0x1012b8b9
sub eax, 2
jne case.0x1012b889.1
mov dword [edi + 0x2fc], 0x10030
jmp case.0x1012b889.1
mov dword [edi + 0x2fc], 0x10023
jmp case.0x1012b889.1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x1c]
test eax, eax
jl case.0x1012b889.1
cmp eax, 1
jle 0x1012b8f1
cmp eax, 2
jne case.0x1012b889.1
mov dword [edi + 0x2fc], 0x10042
jmp case.0x1012b889.1
mov dword [edi + 0x2fc], 0x10043
jmp case.0x1012b889.1
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x1c]
jmp 0x1012b897
mov dword [edi + 0x2fc], 0x10036
jmp case.0x1012b889.1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
sub eax, 0
je 0x1012b92f
sub eax, 1
jne case.0x1012b889.1
mov dword [edi + 0x2fc], 0x1004b
jmp case.0x1012b889.1
mov dword [edi + 0x2fc], 0x1004c
jmp case.0x1012b889.1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x1c]
cmp eax, 4
ja case.0x1012b889.1
jmp dword [eax*4 + 0x1012c1c0]
mov dword [edi + 0x2fc], 0x10051
jmp case.0x1012b889.1
mov dword [edi + 0x2fc], 0x10056
jmp case.0x1012b889.1
mov dword [edi + 0x2fc], 0x10057
cmp dword [edi + 0x2f0], reloc.OLEAUT32.dll_VariantInit
jb 0x1012bb3e
lea edx, [esp + 0x34]
mov dword [esp + 0x18], edx
push esi
mov esi, dword [esp + 0x1c]
mov eax, reloc.OLEAUT32.dll_VariantInit
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
test byte [esp + 0x40], 0x80
je 0x1012bb3e
push edi
mov eax, 0xc0010061
call fcn.100e7c00
push edi
mov eax, 0xc0010062
call fcn.100e7c00
push edi
mov eax, 0xc0010063
call fcn.100e7c00
xor esi, esi
lea ecx, [ecx]
lea eax, [esi - 0x3ffeff9c]
push edi
call fcn.100e7c00
inc esi
cmp esi, 5
jl 0x1012b9e0
mov eax, dword [edi + 0x314]
and eax, 0xf0
add eax, 0xfffffff0
xor esi, esi
cmp eax, 0x60
ja case.0x1012ba12.17
movzx eax, byte [eax + 0x1012c1e0]
jmp dword [eax*4 + 0x1012c1d4]
call fcn.1013c470
cmp dword [eax + 0x3c], 0
je case.0x1012ba12.17
call fcn.1013c470
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push 0xb8
push 0
push 0
push 0
mov ecx, eax
call fcn.10074b00
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + 0x24]
cmp eax, 1
jne 0x1012ba5c
mov esi, dword [ecx + 0x28]
jmp 0x1012ba68
cmp eax, 2
jne 0x1012ba66
mov esi, dword [ecx + 0x2c]
jmp 0x1012ba68
xor esi, esi
call fcn.10074720
test esi, esi
je 0x1012ba8a
mov edx, dword [esi]
mov eax, dword [edx + 0x1c]
push 0x1f428
push 0xb8
push 0
push 0
push 0
mov ecx, esi
call eax
call fcn.1013c470
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x10]
push ecx
push 0xbc
push 0
push 0
push 0
mov ecx, eax
call fcn.10074b00
mov esi, dword [esp + 0x10]
shr esi, 0x1d
and esi, 1
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + 0x24]
cmp eax, 1
jne 0x1012bac8
mov ebx, dword [ecx + 0x28]
jmp 0x1012bad4
cmp eax, 2
jne 0x1012bad2
mov ebx, dword [ecx + 0x2c]
jmp 0x1012bad4
xor ebx, ebx
call fcn.10074720
test ebx, ebx
je case.0x1012ba12.17
mov eax, dword [esp + 0x18]
mov edx, dword [ebx]
mov edx, dword [edx + 0x1c]
push eax
push 0xb8
push 0
push 0
push 0
mov ecx, ebx
call edx
jmp case.0x1012ba12.17
mov esi, 1
push 0x6c
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x50], 0
test eax, eax
je 0x1012bb20
push esi
push eax
call fcn.100c8bc0
jmp 0x1012bb22
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], 0xffffffff
mov dword [ecx + 0x10], eax
test eax, eax
je 0x1012bb3e
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
cmp dword [edi + 0x2f0], reloc.OLEAUT32.dll_VariantClear
jb 0x1012bbaa
lea ecx, [esp + 0x34]
mov dword [esp + 0x18], ecx
push esi
mov esi, dword [esp + 0x1c]
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 + 0x3c]
mov edx, dword [esp + 0x14]
and eax, 0xff
mov dword [edx + 0x30], eax
inc eax
mov edx, 3
mov dword [edi + 0x5c], eax
mov esi, edx
mov eax, edi
call fcn.100e72e0
test eax, eax
je 0x1012bbaa
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x30]
inc edx
mov dword [eax + 0x10], edx
push edi
mov eax, 0xc0010058
call fcn.100e7c00
mov esi, eax
test esi, esi
je 0x1012bc8a
test byte [esi + 0xc], 1
je 0x1012bc8a
call fcn.1013c470
cmp dword [eax + 0x3c], 0
je 0x1012bc8a
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
call fcn.10074720
test eax, eax
jne 0x1012bc8a
mov esi, dword [esi + 0xc]
push 0x2000000
and esi, 0xfff00000
push esi
push eax
call fcn.1013c470
mov ecx, eax
call fcn.1013ccb0
mov ebx, eax
test ebx, ebx
jne 0x1012bc3f
push 0x14
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x1012bc2f
push 0x1000
push esi
push ebx
mov ecx, eax
call fcn.1006aaa0
mov ebx, eax
jmp 0x1012bc31
xor ebx, ebx
call fcn.1013c470
mov ecx, dword [eax + 0x24]
push ebx
call fcn.10002150
push 0x20
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x50], 1
test eax, eax
je 0x1012bc65
push ebx
mov esi, eax
call fcn.100600f0
mov esi, eax
jmp 0x1012bc67
xor esi, esi
mov dword [esp + 0x50], 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 eax, dword [esp + 0x14]
push edi
push eax
call fcn.1012a020
test eax, eax
je 0x1012bf9d
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
test eax, eax
je 0x1012bf9d
mov ebx, dword [eax + 4]
xor esi, esi
cmp ebx, esi
je 0x1012bf9d
mov ecx, dword [ebx + 0x18]
movzx eax, word [ecx + 6]
mov edx, 0x1600
cmp ax, dx
jne case.0x1012bd0f.1
or eax, 0xffffffff
mov dword [esp + 0x10], eax
mov ecx, dword [ebx + 8]
cmp ecx, esi
je 0x1012bd00
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
lea edx, [esp + 0x10]
push edx
movzx edx, byte [ebx + 0x16]
push 0x88
push edx
movzx edx, byte [ebx + 0x15]
push edx
movzx edx, byte [ebx + 0x14]
push edx
call eax
mov eax, dword [esp + 0x10]
shr eax, 8
and eax, 0xf
cmp eax, 0x13
ja case.0x1012bd0f.1
jmp dword [eax*4 + 0x1012c244]
mov dword [edi + 0x394], 1
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 2
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 3
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 4
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 5
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 6
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 7
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 8
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 9
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 0xa
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 0xb
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 0xc
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 0xd
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 0xe
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 0xf
jmp case.0x1012bd0f.1
mov dword [edi + 0x394], 0x10
mov ecx, dword [ebx + 0x18]
movzx eax, word [ecx + 6]
movzx ecx, ax
mov edx, 0x1603
cmp cx, dx
je 0x1012be2f
movzx ecx, ax
mov edx, 0x1403
cmp cx, dx
je 0x1012be2f
movzx ecx, ax
mov edx, 0x141d
cmp cx, dx
je 0x1012be2f
movzx ecx, ax
mov edx, 0x1573
cmp cx, dx
je 0x1012be2f
movzx eax, ax
mov ecx, 0x15b3
cmp ax, cx
jne 0x1012bf7f
mov dword [esp + 0x28], vtable.CTList_class_CRegisterSpace_.0
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x54], 2
push 0x12
mov dword [esp + 0x20], esi
call fcn.1013c470
mov ecx, eax
call fcn.1013cbc0
mov edx, dword [esp + 0x2c]
test eax, eax
jle 0x1012beb5
test edx, edx
je 0x1012beb5
mov eax, dword [edx + 4]
test eax, eax
je 0x1012beb5
movzx esi, byte [ebx + 0x14]
mov ecx, dword [eax + 0x14]
cmp ecx, esi
jne 0x1012be96
movzx esi, byte [ebx + 0x15]
mov ecx, dword [eax + 0x18]
cmp ecx, esi
jne 0x1012be96
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], 1
mov dword [ecx + 0x18], eax
test edx, edx
je 0x1012beaa
mov eax, dword [edx + 8]
test eax, eax
je 0x1012beaa
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x1012be71
cmp dword [esp + 0x18], 0
jne 0x1012bf42
push 0xc
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x1012bed7
mov dword [eax], vtable.AMD_K10_ECS_Status.0
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov esi, eax
jmp 0x1012bed9
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 + 0x18], eax
mov byte [esp + 0x50], 3
test eax, eax
je 0x1012bf26
movzx ecx, byte [ebx + 0x15]
movzx edx, byte [ebx + 0x14]
push esi
push ecx
push edx
mov ecx, eax
call fcn.10062080
mov esi, eax
jmp 0x1012bf28
xor esi, esi
mov eax, dword [esp + 0x14]
mov byte [esp + 0x50], 2
mov dword [eax + 0x18], esi
call fcn.1013c470
mov ecx, dword [eax + 0x28]
push esi
call fcn.10001610
mov dword [esp + 0x50], 0xffffffff
mov ecx, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x28], vtable.CTList_class_CRegisterSpace_.0
mov esi, ecx
cmp ecx, ebx
je 0x1012bf75
mov edi, edi
mov esi, dword [esi + 8]
cmp ecx, ebx
je 0x1012bf6f
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, esi
cmp esi, ebx
jne 0x1012bf60
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
xor esi, esi
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x1012bf9f
mov eax, dword [eax + 8]
cmp eax, esi
je 0x1012bf9f
mov ebx, dword [eax + 4]
mov dword [esp + 0x24], eax
cmp ebx, esi
jne 0x1012bcb9
xor esi, esi
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x18]
cmp ecx, esi
jne 0x1012bfae
xor ebx, ebx
jmp 0x1012bfd2
lea edx, [esp + 0x10]
push edx
push 0x15c
push 4
mov ebx, ecx
call fcn.10061fa0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
shr eax, 2
and eax, 7
mov dword [ecx + 0x3c], eax
push edi
mov edi, dword [esp + 0x18]
call fcn.10127680
mov esi, dword [ebp + 8]
push esi
mov eax, 0xc0010015
call fcn.100e7c00
push esi
mov eax, 0xc001001f
call fcn.100e7c00
test ebx, ebx
je 0x1012c0fe
lea edx, [esp + 0x10]
push edx
push 0x1b8
push 4
mov ecx, ebx
call fcn.10061fa0
mov eax, dword [esp + 0x10]
mov esi, eax
shr eax, 0x10
mov edi, eax
lea eax, [esp + 0x10]
push eax
push 0xe8
push 5
mov ecx, ebx
and esi, 0xffff
call fcn.10061fa0
mov ecx, dword [esp + 0x10]
mov eax, ecx
mov edx, dword [ebp + 8]
shr eax, 0xa
and ecx, 0x3ff
shl ecx, 6
and eax, 0x3f
add eax, ecx
mov ecx, eax
imul eax, edi
imul ecx, esi
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fld qword [0x101f7218]
fmul st(1), st(0)
fxch st(1)
fstp dword [edx + 0x3b4]
fimul dword [esp + 0x18]
call fcn.1003f8e0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
test esi, esi
je 0x1012c0fe
lea edx, [esp + 0x10]
push edx
push 0x80
push 5
mov ecx, ebx
call fcn.10061fa0
test eax, eax
je 0x1012c0fe
mov ecx, dword [esi + 0x18]
add ecx, 0x10
mov eax, 1
shl eax, cl
test dword [esp + 0x10], eax
jne 0x1012c0fe
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x1012c101
mov esi, dword [eax + 4]
test esi, esi
je 0x1012c101
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x14]
test ecx, ecx
je 0x1012c105
mov eax, dword [ecx + 0x10]
cmp eax, 1
jle 0x1012c0e8
mov edx, dword [edi + 0x30]
inc edx
cmp eax, edx
jge 0x1012c0e8
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0x10], eax
test esi, esi
je 0x1012c105
mov eax, dword [esi + 8]
test eax, eax
je 0x1012c105
mov ecx, dword [eax + 4]
mov esi, eax
test ecx, ecx
jne 0x1012c0d0
jmp 0x1012c105
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x14]
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
push ebx
mov ecx, edi
call edx
fstp st(0)
mov eax, dword [edi]
mov edx, dword [eax + 0x24]
push ebx
mov ecx, edi
call edx
fstp st(0)
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4