Function at 0x100fd070
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10174cba
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x10206870]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x10], esi
mov edi, dword [ebp + 8]
xor ebx, ebx
cmp dword [edi + 0x2ec], 6
jb 0x100fd0ec
lea eax, [esp + 0x24]
mov dword [esp + 0x14], eax
push esi
mov esi, dword [esp + 0x18]
mov eax, 6
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 ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
shr ebx, 1
and ebx, 1
push edi
mov eax, 0x1a0
call fcn.100e7c00
test eax, eax
je 0x100fd10c
mov cl, byte [eax + 8]
xor edx, edx
and cl, 0x40
cmp cl, 0x40
setne dl
mov dword [esi + 0x34], edx
test ebx, ebx
jne 0x100fd121
mov eax, dword [esi + 0x34]
cmp eax, 1
jne 0x100fd11d
mov dword [esi + 0x30], ebx
jmp 0x100fd132
test eax, eax
jmp 0x100fd129
cmp ebx, 1
jne 0x100fd132
cmp dword [esi + 0x34], ebx
jne 0x100fd132
mov dword [esi + 0x30], 1
mov eax, dword [edi + 8]
test eax, eax
je 0x100fd226
cmp dword [eax + 0x1c], 0
je 0x100fd226
push 0x3c
call fcn.1003ddbb
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], 0
test eax, eax
je 0x100fd169
push eax
call fcn.100c62a0
jmp 0x100fd16b
xor eax, eax
mov dword [esp + 0x40], 0xffffffff
mov dword [esi + 0x10], eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0x18]
cmp eax, 0xffffffff
je 0x100fd226
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fstp dword [esp + 0x14]
fldz
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jp 0x100fd226
push 0x168
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100fd1c3
push 0
mov ecx, eax
call fcn.10055150
jmp 0x100fd1c5
xor eax, eax
mov dword [edi + 0x4b8], eax
or dword [eax + 0x144], 0x3801000
mov ecx, dword [edi + 0x4b8]
push 0x101d4b4c
add ecx, 4
push 0x100
push ecx
call fcn.1013b440
fld dword [esp + 0x20]
add esp, 0xc
push 1
push ecx
mov ecx, dword [edi + 0x4b8]
fstp dword [esp]
call fcn.10054a50
mov esi, dword [edi + 0x4b8]
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 esi, edi
call fcn.100fced0
call fcn.100fcb90
push esi
mov eax, 0x31
call fcn.100e7c00
push esi
mov eax, 0x35
call fcn.100e7c00
push esi
mov eax, 0x39
call fcn.100e7c00
push esi
mov eax, 0xc1
call fcn.100e7c00
push esi
mov eax, 0xc2
call fcn.100e7c00
push esi
mov eax, 0xc3
call fcn.100e7c00
push esi
mov eax, 0xc4
call fcn.100e7c00
push esi
mov eax, 0x186
call fcn.100e7c00
push esi
mov eax, 0x187
call fcn.100e7c00
push esi
mov eax, 0xce
call fcn.100e7c00
mov ebx, dword [esp + 0x10]
test eax, eax
je 0x100fd355
cmp dword [ebx + 0x44], 0xffffffff
jne 0x100fd2b9
movzx ecx, byte [eax + 0xd]
mov dword [ebx + 0x44], ecx
movzx ecx, byte [eax + 9]
mov dword [esp + 0x14], ecx
mov dword [ebx + 0x4c], ecx
fild dword [esp + 0x14]
fstp dword [esi + 0x3ac]
test dword [eax + 0xc], 0x30000000
je 0x100fd2de
mov dword [ebx + 0x2c], 1
push esi
mov eax, 0x1ad
call fcn.100e7c00
test eax, eax
je 0x100fd355
mov ecx, dword [eax + 0xc]
and ecx, 0xff
mov dword [ebx + 0x48], ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fstp dword [esi + 0x3a8]
mov edx, dword [eax + 0xc]
and edx, 0xff
mov dword [ebx + 0x54], edx
movzx ecx, byte [eax + 0xd]
mov dword [ebx + 0x60], ecx
movzx edx, byte [eax + 0xe]
mov dword [ebx + 0x6c], edx
movzx ecx, byte [eax + 0xf]
mov dword [ebx + 0x78], ecx
mov edx, dword [eax + 8]
and edx, 0xff
mov dword [ebx + 0x84], edx
movzx ecx, byte [eax + 9]
mov dword [ebx + 0x90], ecx
movzx edx, byte [eax + 0xa]
mov dword [ebx + 0x9c], edx
movzx eax, byte [eax + 0xb]
mov dword [ebx + 0xa8], eax
push esi
mov eax, 0x194
call fcn.100e7c00
test eax, eax
je 0x100fd370
mov ecx, dword [eax + 0xc]
shr ecx, 0x11
and ecx, 7
mov dword [ebx + 0x38], ecx
push esi
mov eax, 0x19a
call fcn.100e7c00
push esi
mov eax, 0x1a4
call fcn.100e7c00
push esi
mov eax, 0x1fc
call fcn.100e7c00
fld qword [0x101f7218]
push esi
fstp qword [ebx + 0x18]
mov eax, 0x606
call fcn.100e7c00
test eax, eax
je 0x100fd3e8
mov ecx, dword [eax + 0xc]
shr ecx, 8
and ecx, 0x1f
mov edx, 1
shl edx, cl
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fld1
mov edx, 1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp qword [ebx + 0x18]
mov eax, dword [eax + 0xc]
and eax, 0xf
mov ecx, eax
shl edx, cl
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fdivp st(1)
fstp qword [ebx + 0x20]
push esi
mov eax, 0x601
call fcn.100e7c00
push esi
mov eax, 0x602
call fcn.100e7c00
push esi
mov eax, 0x606
call fcn.100e7c00
push esi
mov eax, 0x610
call fcn.100e7c00
push esi
mov eax, 0x611
call fcn.100e7c00
test eax, eax
je 0x100fd493
push 0x188
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100fd441
push 0
mov ecx, eax
call fcn.10054f40
mov edi, eax
jmp 0x100fd443
xor edi, edi
mov dword [esi + 0x4a4], edi
or dword [edi + 0x144], 0x405000
mov eax, dword [esi + 0x4a4]
push 0x101d4b50
add eax, 4
push 0x100
push eax
call fcn.1013b440
add esp, 0xc
call fcn.1013c470
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx + 8]
mov dword [edi + 0x148], ecx
mov ecx, dword [eax + 0x38]
push edi
call fcn.100021e0
push ebx
mov eax, esi
call fcn.100fc7a0
fstp st(0)
push esi
mov eax, 0x639
call fcn.100e7c00
test eax, eax
je 0x100fd512
push 0x188
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100fd4c0
push 1
mov ecx, eax
call fcn.10054f40
mov edi, eax
jmp 0x100fd4c2
xor edi, edi
mov dword [esi + 0x4a8], edi
or dword [edi + 0x144], 0x805000
mov edx, dword [esi + 0x4a8]
push 0x101d4b58
add edx, 4
push 0x100
push edx
call fcn.1013b440
add esp, 0xc
call fcn.1013c470
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx + 8]
mov dword [edi + 0x148], ecx
mov ecx, dword [eax + 0x38]
push edi
call fcn.100021e0
push ebx
mov eax, esi
call fcn.100fc5e0
fstp st(0)
push esi
mov eax, 0x641
call fcn.100e7c00
test eax, eax
je 0x100fd581
push 0x188
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100fd53f
push 2
mov ecx, eax
call fcn.10054f40
mov edi, eax
jmp 0x100fd541
xor edi, edi
push 0x101d4b64
lea edx, [edi + 4]
push 0x100
push edx
mov dword [esi + 0x4ac], edi
call fcn.1013b440
add esp, 0xc
call fcn.1013c470
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx + 8]
mov dword [edi + 0x148], ecx
mov ecx, dword [eax + 0x38]
push edi
call fcn.100021e0
push ebx
mov eax, esi
call fcn.100fc420
fstp st(0)
cmp dword [esi + 0x4a4], 0
je 0x100fd5e9
cmp dword [esi + 0x4a8], 0
je 0x100fd5e9
push 0x188
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100fd5b1
push 3
mov ecx, eax
call fcn.10054f40
mov edi, eax
jmp 0x100fd5b3
xor edi, edi
push 0x101d4b68
lea edx, [edi + 4]
push 0x100
push edx
mov dword [esi + 0x4b0], edi
call fcn.1013b440
add esp, 0xc
call fcn.1013c470
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx + 8]
mov dword [edi + 0x148], ecx
mov ecx, dword [eax + 0x38]
push edi
call fcn.100021e0
push esi
mov eax, 0x619
call fcn.100e7c00
push esi
mov eax, 0x614
call fcn.100e7c00
test eax, eax
je 0x100fd659
mov edx, dword [eax + 0xc]
and edx, 0x7fff
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
test edx, edx
jge 0x100fd61e
fadd dword [0x101f69c0]
fmul qword [0x101f6ec8]
mov ecx, 0x7fff
fstp dword [esi + 0x3b4]
test word [eax + 0xe], cx
je 0x100fd644
mov edx, dword [eax + 0xc]
shr edx, 0x13
and edx, 0xfff
mov dword [ebx + 0x40], edx
mov eax, dword [eax + 8]
test eax, 0x7fff
je 0x100fd659
shr eax, 3
and eax, 0xfff
mov dword [ebx + 0x3c], eax
push esi
mov eax, 0x648
call fcn.100e7c00
mov edi, eax
test edi, edi
je 0x100fd6e9
fldz
fcomp dword [esi + 0x3b4]
fnstsw ax
test ah, 5
jp 0x100fd6e9
cmp dword [ebx + 0xb4], 0
jne 0x100fd6a8
push 0xc
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100fd6a0
xor ecx, ecx
mov dword [eax], vtable.CTList_struct_stTDPLevelEntry_.0
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
jmp 0x100fd6a2
xor eax, eax
mov dword [ebx + 0xb4], eax
push 8
call fcn.1003ddbb
add esp, 4
test eax, eax
je 0x100fd6c7
fld dword [0x101f69a8]
mov dword [eax], 0xffffffff
fstp dword [eax + 4]
jmp 0x100fd6c9
xor eax, eax
mov ecx, dword [edi + 0xc]
and ecx, 0xff
mov dword [eax], ecx
fld dword [esi + 0x3b4]
fstp dword [eax + 4]
mov edi, dword [ebx + 0xb4]
push eax
call fcn.10002750
push esi
mov eax, 0x649
call fcn.100e7c00
xor edi, edi
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x100fd789
mov edx, eax
mov eax, dword [edx + 0xc]
and eax, 0x7fff
mov dword [esp + 0x14], eax
jle 0x100fd789
fild dword [esp + 0x14]
fmul qword [ebx + 0x20]
fstp dword [esp + 0x14]
cmp dword [ebx + 0xb4], edi
jne 0x100fd749
push 0xc
call fcn.1003ddbb
add esp, 4
cmp eax, edi
je 0x100fd741
mov dword [eax], vtable.CTList_struct_stTDPLevelEntry_.0
mov dword [eax + 4], edi
mov dword [eax + 8], edi
jmp 0x100fd743
xor eax, eax
mov dword [ebx + 0xb4], eax
push 8
call fcn.1003ddbb
add esp, 4
cmp eax, edi
je 0x100fd768
fld dword [0x101f69a8]
mov dword [eax], 0xffffffff
fstp dword [eax + 4]
jmp 0x100fd76a
xor eax, eax
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x14]
movzx edx, byte [ecx + 0xe]
fstp dword [eax + 4]
mov dword [eax], edx
mov edi, dword [ebx + 0xb4]
push eax
call fcn.10002750
xor edi, edi
push esi
mov eax, 0x64a
call fcn.100e7c00
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x100fd826
mov ecx, dword [eax + 0xc]
and ecx, 0x7fff
mov dword [esp + 0x14], ecx
jle 0x100fd826
fild dword [esp + 0x14]
fmul qword [ebx + 0x20]
fstp dword [esp + 0x14]
cmp dword [ebx + 0xb4], edi
jne 0x100fd7e6
push 0xc
call fcn.1003ddbb
add esp, 4
cmp eax, edi
je 0x100fd7de
mov dword [eax], vtable.CTList_struct_stTDPLevelEntry_.0
mov dword [eax + 4], edi
mov dword [eax + 8], edi
jmp 0x100fd7e0
xor eax, eax
mov dword [ebx + 0xb4], eax
push 8
call fcn.1003ddbb
add esp, 4
cmp eax, edi
je 0x100fd805
fld dword [0x101f69a8]
mov dword [eax], 0xffffffff
fstp dword [eax + 4]
jmp 0x100fd807
xor eax, eax
mov edx, dword [esp + 0x10]
fld dword [esp + 0x14]
movzx ecx, byte [edx + 0xe]
fstp dword [eax + 4]
mov dword [eax], ecx
mov edi, dword [ebx + 0xb4]
push eax
call fcn.10002750
xor edi, edi
push esi
mov eax, 0x64b
call fcn.100e7c00
call fcn.1013c470
cmp dword [eax + 0x3c], edi
je 0x100fd9c5
mov dword [esp + 0x18], vtable.CTList_class_CDevice_.0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], 1
call fcn.1013c470
mov eax, dword [eax + 0x3c]
lea edx, [esp + 0x18]
push edx
push 0x3c80
push 0x8086
mov ecx, eax
call fcn.10074900
cmp eax, edi
jne 0x100fd899
call fcn.1013c470
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push 0x3c90
push 0x8086
mov ecx, eax
call fcn.10074900
cmp eax, edi
jle 0x100fd90b
mov eax, dword [esp + 0x1c]
mov edi, eax
test eax, eax
je 0x100fd90b
mov eax, dword [eax + 4]
test eax, eax
je 0x100fd90b
lea esp, [esp]
mov dword [esp + 0x10], 0xffffffff
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x100fd8f7
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
lea ebx, [esp + 0x10]
push ebx
movzx ebx, byte [eax + 0x16]
push 0xd4
push ebx
movzx ebx, byte [eax + 0x15]
movzx eax, byte [eax + 0x14]
push ebx
push eax
call edx
test eax, eax
je 0x100fd8f7
mov eax, dword [esp + 0x10]
and eax, 7
lea ecx, [eax*4 + 0x14]
mov dword [esi + 0x394], ecx
test edi, edi
je 0x100fd90b
mov eax, dword [edi + 8]
test eax, eax
je 0x100fd90b
mov edi, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x100fd8b0
call fcn.1013c470
mov eax, dword [eax + 0x3c]
lea edx, [esp + 0x18]
push edx
push 0xe80
push 0x8086
mov ecx, eax
call fcn.10074900
test eax, eax
jne 0x100fd94d
call fcn.1013c470
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push 0xe90
push 0x8086
mov ecx, eax
call fcn.10074900
test eax, eax
jle 0x100fd9b4
mov eax, dword [esp + 0x1c]
mov edi, eax
test eax, eax
je 0x100fd9b4
mov eax, dword [eax + 4]
test eax, eax
je 0x100fd9b4
mov dword [esp + 0x10], 0xffffffff
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x100fd9a0
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
lea ebx, [esp + 0x10]
push ebx
movzx ebx, byte [eax + 0x16]
push 0x80
push ebx
movzx ebx, byte [eax + 0x15]
movzx eax, byte [eax + 0x14]
push ebx
push eax
call edx
test eax, eax
je 0x100fd9a0
mov eax, dword [esp + 0x10]
and eax, 0x7f
mov dword [esi + 0x394], eax
test edi, edi
je 0x100fd9b4
mov eax, dword [edi + 8]
test eax, eax
je 0x100fd9b4
mov edi, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x100fd960
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], 0xffffffff
call fcn.100014a0
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4