Function at 0x10126cb0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10174ee2
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 + 0x20], 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 0x10126d43
shr ecx, 0x10
and ecx, 0xff
mov dword [edi + 0x58], ecx
cmp dword [edi + 0x2f0], 0x80000001
jb 0x10126e38
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 0x101e8908
push ecx
call fcn.1003de50
add esp, 8
test eax, eax
je 0x10126dee
mov dword [edi + 0x364], 1
mov eax, dword [edi + 0x314]
and eax, 0xf0
je 0x10126e00
cmp eax, 0x30
jne 0x10126e38
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x1c]
sub eax, 0
je 0x10126e2e
sub eax, 1
je 0x10126e22
sub eax, 2
jne 0x10126e38
mov dword [edi + 0x2fc], 0x10051
jmp 0x10126e38
mov dword [edi + 0x2fc], 0x10046
jmp 0x10126e38
mov dword [edi + 0x2fc], 0x10045
cmp dword [edi + 0x2f0], reloc.OLEAUT32.dll_VariantInit
jb 0x10127055
lea eax, [esp + 0x34]
mov dword [esp + 0x18], eax
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 0x10127055
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
jmp 0x10126eb0
lea eax, [esi - 0x3ffeff9c]
push edi
call fcn.100e7c00
inc esi
cmp esi, 5
jl 0x10126eb0
xor ebx, ebx
call fcn.1013c470
cmp dword [eax + 0x3c], ebx
je 0x10127014
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x18], 0xffffffff
cmp eax, 1
jne 0x10126eef
mov esi, dword [ecx + 0x28]
jmp 0x10126efb
cmp eax, 2
jne 0x10126ef9
mov esi, dword [ecx + 0x2c]
jmp 0x10126efb
xor esi, esi
call fcn.10074720
test esi, esi
je 0x10126f29
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x24]
push eax
push 0xb8
push 0
push 0
push 0
mov ecx, esi
call edx
test eax, eax
je 0x10126f29
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + 0x24]
cmp eax, 1
jne 0x10126f3e
mov esi, dword [ecx + 0x28]
jmp 0x10126f4a
cmp eax, 2
jne 0x10126f48
mov esi, dword [ecx + 0x2c]
jmp 0x10126f4a
xor esi, esi
call fcn.10074720
test esi, esi
je 0x10126f6c
mov edx, dword [esi]
mov eax, dword [edx + 0x1c]
push 0x3f9d8
push 0xb8
push 0
push 0
push 0
mov ecx, esi
call eax
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x10], 0xffffffff
mov eax, dword [ecx + 0x24]
cmp eax, 1
jne 0x10126f89
mov esi, dword [ecx + 0x28]
jmp 0x10126f95
cmp eax, 2
jne 0x10126f93
mov esi, dword [ecx + 0x2c]
jmp 0x10126f95
xor esi, esi
call fcn.10074720
test esi, esi
je 0x10126fc5
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x24]
push eax
push 0xbc
push 0
push 0
push 0
mov ecx, esi
call edx
test eax, eax
je 0x10126fc5
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
jmp 0x10126fc9
mov eax, dword [esp + 0x10]
shr eax, 0x1d
and eax, 1
mov ebx, eax
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + 0x24]
cmp eax, 1
jne 0x10126fe6
mov esi, dword [ecx + 0x28]
jmp 0x10126ff2
cmp eax, 2
jne 0x10126ff0
mov esi, dword [ecx + 0x2c]
jmp 0x10126ff2
xor esi, esi
call fcn.10074720
test esi, esi
je 0x10127014
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
push ecx
push 0xb8
push 0
push 0
push 0
mov ecx, esi
call edx
push 0x6c
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], 0
test eax, eax
je 0x10127037
push ebx
push eax
call fcn.100c8640
jmp 0x10127039
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], 0xffffffff
mov dword [ecx + 0x10], eax
test eax, eax
je 0x10127055
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
cmp dword [edi + 0x2f0], reloc.OLEAUT32.dll_VariantClear
jb 0x101270c1
lea ecx, [esp + 0x34]
mov dword [esp + 0x24], ecx
push esi
mov esi, dword [esp + 0x28]
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 0x101270c1
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 0x101271a1
test byte [esi + 0xc], 1
je 0x101271a1
call fcn.1013c470
cmp dword [eax + 0x3c], 0
je 0x101271a1
call fcn.1013c470
mov ecx, dword [eax + 0x3c]
call fcn.10074720
test eax, eax
jne 0x101271a1
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 0x10127156
push 0x14
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x10127146
push 0x1000
push esi
push ebx
mov ecx, eax
call fcn.1006aaa0
mov ebx, eax
jmp 0x10127148
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 + 0x24], eax
mov dword [esp + 0x50], 1
test eax, eax
je 0x1012717c
push ebx
mov esi, eax
call fcn.100600f0
mov esi, eax
jmp 0x1012717e
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 eax
mov ecx, edi
call fcn.10126020
test eax, eax
je 0x10127360
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], edx
test edx, edx
je 0x10127360
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x10127360
nop
mov ecx, dword [ebx + 0x18]
movzx eax, word [ecx + 6]
movzx ecx, ax
mov esi, 0x1533
cmp cx, si
je 0x101271f5
movzx eax, ax
mov ecx, 0x1583
cmp ax, cx
jne 0x10127344
xor esi, esi
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
push 0x12
mov dword [esp + 0x58], 2
call fcn.1013c470
mov ecx, eax
call fcn.1013cbc0
mov edi, dword [esp + 0x2c]
test eax, eax
jle 0x10127279
mov edx, edi
test edi, edi
je 0x10127279
mov eax, dword [edi + 4]
test eax, eax
je 0x10127279
movzx edi, byte [ebx + 0x14]
mov ecx, dword [eax + 0x14]
cmp ecx, edi
jne 0x10127259
movzx edi, byte [ebx + 0x15]
mov ecx, dword [eax + 0x18]
cmp ecx, edi
jne 0x10127259
mov ecx, dword [esp + 0x14]
mov esi, 1
mov dword [ecx + 0x18], eax
test edx, edx
je 0x1012726d
mov eax, dword [edx + 8]
test eax, eax
je 0x1012726d
mov edx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x10127237
mov edi, dword [esp + 0x2c]
test esi, esi
jne 0x10127306
push 0xc
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x1012729b
mov dword [eax], vtable.AMD_K10_ECS_Status.0
mov dword [eax + 4], ebx
mov dword [eax + 8], 1
mov esi, eax
jmp 0x1012729d
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 + 0x24], eax
mov byte [esp + 0x50], 3
test eax, eax
je 0x101272ea
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 0x101272ec
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
xor ebx, ebx
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x28], vtable.CTList_class_CRegisterSpace_.0
mov ecx, edi
mov esi, edi
cmp edi, ebx
je 0x10127335
mov esi, dword [esi + 8]
cmp ecx, ebx
je 0x1012732f
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, esi
cmp esi, ebx
jne 0x10127320
mov edx, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
test edx, edx
je 0x10127360
mov eax, dword [edx + 8]
test eax, eax
je 0x10127360
mov ebx, dword [eax + 4]
mov edx, eax
mov dword [esp + 0x1c], edx
test ebx, ebx
jne 0x101271d0
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x18]
test ecx, ecx
jne 0x1012736f
xor ebx, ebx
jmp 0x1012738f
lea edx, [esp + 0x10]
push edx
push 0x15c
push 4
mov ebx, ecx
call fcn.10061fa0
mov eax, dword [esp + 0x10]
shr eax, 2
and eax, 7
mov dword [esi + 0x3c], eax
mov eax, edi
call fcn.10125e50
push edi
mov eax, 0xc0010015
call fcn.100e7c00
push edi
mov eax, 0xc001001f
call fcn.100e7c00
test ebx, ebx
je 0x101274b8
lea ecx, [esp + 0x10]
push ecx
push 0x1b8
push 4
mov ecx, ebx
call fcn.10061fa0
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x10]
push edx
mov esi, eax
push 0xe8
shr eax, 0x10
push 5
mov ecx, ebx
and esi, 0xffff
mov edi, eax
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 + 0x24], ecx
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
fld qword [0x101f7218]
fmul st(1), st(0)
fxch st(1)
fstp dword [edx + 0x3b4]
fimul dword [esp + 0x24]
call fcn.1003f8e0
cmp dword [esp + 0x20], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
je 0x101274b8
lea edx, [esp + 0x10]
push edx
push 0x80
push 5
mov ecx, ebx
call fcn.10061fa0
test eax, eax
je 0x101274b8
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x18]
add ecx, 0x10
mov edx, 1
shl edx, cl
test dword [esp + 0x10], edx
jne 0x101274b8
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x101274bb
mov esi, dword [eax + 4]
test esi, esi
je 0x101274bb
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x14]
test ecx, ecx
je 0x101274bf
mov eax, dword [ecx + 0x10]
cmp eax, 1
jle 0x101274a2
mov edx, dword [edi + 0x30]
inc edx
cmp eax, edx
jge 0x101274a2
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0x10], eax
test esi, esi
je 0x101274bf
mov eax, dword [esi + 8]
test eax, eax
je 0x101274bf
mov ecx, dword [eax + 4]
mov esi, eax
test ecx, ecx
jne 0x1012748a
jmp 0x101274bf
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