Function at 0x43fa60
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x59a607
mov eax, dword fs:[0]
push eax
sub esp, 0xa48
mov eax, dword [0x619e70]
xor eax, esp
mov dword [esp + 0xa40], eax
push ebx
push esi
push edi
mov eax, dword [0x619e70]
xor eax, esp
push eax
lea eax, [esp + 0xa58]
mov dword fs:[0], eax
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x24], vtable.CTList_class_CDevice_.0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x108]
mov dword [esp + 0xa60], ebx
mov dword [esp + 0x10], ebx
mov dword [edi + 0x410], ebx
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x4406b4
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
cmp eax, ebx
je 0x4406b4
mov eax, dword [eax + 0x24]
cmp eax, ebx
je 0x43fb03
push 0x800
push ebx
push str.nvapi.dll
call eax
mov dword [edi + 0x10c], eax
cmp eax, ebx
jne 0x43fb14
push str.nvapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [edi + 0x10c], eax
mov eax, dword [edi + 0x10c]
cmp eax, ebx
je 0x43fdd7
push str.nvapi_QueryInterface
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
je 0x43fdd7
push 0x150e828
call esi
push 0xd22bdd7e
mov dword [edi + 0x438], eax
call esi
push 0xe5ac921f
mov dword [edi + 0x43c], eax
call esi
push 0xceee8e9f
mov dword [edi + 0x440], eax
call esi
push 0x2ddfb66e
mov dword [edi + 0x444], eax
call esi
push 0x1be0b8e5
mov dword [edi + 0x448], eax
call esi
push 0x2a0a350f
mov dword [edi + 0x44c], eax
call esi
push 0xe3640a56
mov dword [edi + 0x450], eax
call esi
push 0x5f608315
mov dword [edi + 0x454], eax
call esi
push 0xda141340
mov dword [edi + 0x458], eax
call esi
push 0x465f9bcf
mov dword [edi + 0x45c], eax
call esi
push 0x927da4f6
mov dword [edi + 0x460], eax
call esi
push 0xba94c56e
mov dword [edi + 0x464], eax
call esi
push 0x60ded2ed
mov dword [edi + 0x468], eax
call esi
push 0x7f9b368
mov dword [edi + 0x46c], eax
call esi
push 0xedcf624e
mov dword [edi + 0x470], eax
call esi
add esp, 0x40
push 0x1ea54a3b
mov dword [edi + 0x474], eax
call esi
push 0xdcb616c3
mov dword [edi + 0x478], eax
call esi
push 0x7bcf4ac
mov dword [edi + 0x47c], eax
call esi
push 0x57f7caac
mov dword [edi + 0x480], eax
call esi
push 0x42aea16a
mov dword [edi + 0x484], eax
call esi
push 0x2fde12c5
mov dword [edi + 0x488], eax
call esi
push 0x409d9841
mov dword [edi + 0x48c], eax
call esi
push 0x3d358a0c
mov dword [edi + 0x490], eax
call esi
push 0x22d54523
mov dword [edi + 0x494], eax
call esi
push 0xfb85b01e
mov dword [edi + 0x498], eax
call esi
push 0x35aed5e8
mov dword [edi + 0x49c], eax
call esi
push 0xfdc129fa
mov dword [edi + 0x4a0], eax
call esi
push 0xc7026a87
mov dword [edi + 0x4a4], eax
call esi
push 0x63e2f56f
mov dword [edi + 0x4a8], eax
call esi
push 0xbe17923
mov dword [edi + 0x4ac], eax
call esi
push 0x86f05d7a
mov dword [edi + 0x4b0], eax
call esi
add esp, 0x40
push 0x4e2f76a8
mov dword [edi + 0x4b4], eax
call esi
push 0xae5fbcfe
mov dword [edi + 0x4b8], eax
call esi
push 0xb6d62591
mov dword [edi + 0x4bc], eax
call esi
push 0xd988f0f3
mov dword [edi + 0x4c0], eax
call esi
push 0xd8265d24
mov dword [edi + 0x4c4], eax
call esi
push 0xd048c3b1
mov dword [edi + 0x4c8], eax
call esi
push 0x7975c581
mov dword [edi + 0x4cc], eax
call esi
push 0x17073a3c
mov dword [edi + 0x4d0], eax
call esi
push 0xafd1b02c
mov dword [edi + 0x4d4], eax
call esi
push ebx
mov dword [edi + 0x4d8], eax
call esi
push 0xbc8163d
mov dword [edi + 0x4dc], eax
call esi
push 0x65fe3aad
mov dword [edi + 0x4e0], eax
call esi
push 0xfc13ee11
mov dword [edi + 0x4e4], eax
call esi
push 0x46fbeb03
mov dword [edi + 0x4e8], eax
call esi
push 0x11104158
mov dword [edi + 0x4ec], eax
call esi
push 0xdb9ed906
mov dword [edi + 0x4f0], eax
call esi
add esp, 0x40
push 0x1b4ff3df
mov dword [edi + 0x4f4], eax
call esi
push 0xc12eb19e
mov dword [edi + 0x4f8], eax
call esi
push 0xf40238ef
mov dword [edi + 0x4fc], eax
call esi
add esp, 0xc
mov dword [edi + 0x500], eax
mov eax, dword [edi + 0x438]
cmp eax, ebx
je 0x4406b4
cmp dword [edi + 0x440], ebx
je 0x4406b4
cmp dword [edi + 0x444], ebx
je 0x4406b4
cmp dword [edi + 0x448], ebx
je 0x4406b4
cmp dword [edi + 0x44c], ebx
je 0x4406b4
cmp dword [edi + 0x450], ebx
je 0x4406b4
call eax
cmp eax, ebx
jne 0x44069a
lea ecx, [edi + 0x410]
push ecx
mov ecx, dword [edi + 0x440]
lea eax, [edi + 0x310]
push eax
mov dword [esp + 0x18], 1
call ecx
add esp, 8
test eax, eax
jne 0x44069a
mov eax, dword [edi + 0x410]
test eax, eax
jbe 0x44069a
xor ebx, ebx
test eax, eax
jle 0x44069a
lea esp, [esp]
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x54]
push eax
mov eax, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [edi + 0x448]
lea edx, [esp + 0x28]
lea esi, [edi + 0x310]
push edx
push eax
call ecx
add esp, 0x14
test eax, eax
jne 0x44068d
mov ecx, dword [edi + 0x44c]
lea edx, [esp + 0x54]
mov dword [esp + 0x20], eax
mov eax, dword [esi + ebx*4]
push edx
push eax
call ecx
add esp, 8
test eax, eax
jne 0x43fec9
mov edx, dword [esp + 0x54]
mov dword [esp + 0x20], edx
mov ecx, dword [esi + ebx*4]
mov edx, dword [edi + 0x450]
lea eax, [esp + 0x58]
push eax
push ecx
call edx
add esp, 8
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x20]
mov ecx, eax
shr ecx, 0x10
push ecx
mov ecx, dword [esp + 0x20]
push eax
call fcn.0044c8e0
test eax, eax
jne 0x43ff14
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x24]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x24]
call fcn.0044c8e0
test eax, eax
jle 0x43ff60
lea edx, [esp + 0x24]
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], 0
call fcn.0041c700
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x43ff60
lea esp, [esp]
mov ecx, esi
call fcn.00458690
cmp eax, dword [esp + 0x20]
je 0x43ff8f
lea ecx, [esp + 0x48]
call fcn.0041c720
mov esi, eax
mov dword [esp + 0x14], eax
test esi, esi
jne 0x43ff40
push 0x668
call fcn.0056cb85
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0xa60], 1
test eax, eax
je 0x4404db
mov ecx, eax
call fcn.00455d10
mov esi, eax
jmp 0x4404dd
push ebx
push edi
mov ecx, esi
call fcn.004562e0
mov ecx, dword [edi + ebx*4 + 0x310]
mov edx, dword [edi + 0x444]
lea eax, [esp + 0x90c]
push eax
lea eax, [edi + 0x310]
push ecx
call edx
add esp, 8
test eax, eax
jne 0x440089
mov esi, str.Graphics_Device
lea eax, [esp + 0x90c]
lea ecx, [ecx]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x43fff0
test cl, cl
je 0x43ffec
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x43fff0
add eax, 2
add esi, 2
test cl, cl
jne 0x43ffd0
xor eax, eax
jmp 0x43fff5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x440089
lea eax, [esp + 0x90c]
push str.NVIDIA
push eax
call fcn.0057e930
add esp, 8
test eax, eax
jne 0x44006c
lea ecx, [esp + 0x90c]
push str.NVidia
push ecx
call fcn.0057e930
add esp, 8
test eax, eax
jne 0x44006c
lea edx, [esp + 0x90c]
push str.nvidia
push edx
call fcn.0057e930
add esp, 8
test eax, eax
jne 0x44006c
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x90c]
push eax
push 0x5a6170
add ecx, 0x10
push 0x100
push ecx
call fcn.0043a290
add esp, 0x10
jmp 0x440089
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x90c]
push edx
add eax, 0x10
push 0x100
push eax
call fcn.0057eed3
add esp, 0xc
mov eax, dword [edi + 0x498]
test eax, eax
je 0x440166
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0xb4]
lea esi, [edi + 0x310]
push ecx
push edx
mov dword [esp + 0xbc], 0x30224
call eax
add esp, 8
test eax, eax
je 0x440133
mov ecx, dword [esi + ebx*4]
mov edx, dword [edi + 0x498]
lea eax, [esp + 0xb4]
push eax
push ecx
mov dword [esp + 0xbc], 0x30224
call edx
add esp, 8
test eax, eax
je 0x440133
mov ecx, dword [esi + ebx*4]
mov edx, dword [edi + 0x498]
lea eax, [esp + 0xb4]
push eax
push ecx
mov dword [esp + 0xbc], 0x2002c
call edx
add esp, 8
test eax, eax
je 0x440133
mov ecx, dword [esi + ebx*4]
mov edx, dword [edi + 0x498]
lea eax, [esp + 0xb4]
push eax
push ecx
mov dword [esp + 0xbc], 0x10014
call edx
add esp, 8
test eax, eax
jne 0x440166
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xb8]
push eax
lea ecx, [esi + 0x430]
push 0x20
push ecx
call fcn.0057eed3
lea edx, [esp + 0xd4]
push edx
push 0x20
add esi, 0x450
push esi
call fcn.0057eed3
add esp, 0x18
mov ecx, dword [edi + 0x4a4]
xor esi, esi
cmp ecx, esi
je 0x4401a0
mov edx, dword [edi + ebx*4 + 0x310]
lea eax, [esp + 0x10]
push eax
lea eax, [edi + 0x310]
push edx
mov dword [esp + 0x18], esi
call ecx
add esp, 8
cmp eax, esi
jne 0x4401a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x4b8], eax
mov ecx, dword [edi + 0x4a8]
cmp ecx, esi
je 0x4401d4
lea edx, [esp + 0x10]
lea eax, [edi + 0x310]
mov eax, dword [eax + ebx*4]
push edx
push eax
mov dword [esp + 0x18], esi
call ecx
add esp, 8
cmp eax, esi
jne 0x4401d4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x4bc], ecx
mov eax, dword [edi + 0x4ac]
cmp eax, esi
je 0x4401fa
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x310]
push edx
mov dword [esp + 0x18], esi
call eax
add esp, 8
mov eax, dword [edi + 0x4b0]
cmp eax, esi
je 0x440220
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x310]
push edx
mov dword [esp + 0x18], esi
call eax
add esp, 8
mov eax, dword [edi + 0x4b4]
cmp eax, esi
je 0x440246
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x310]
push edx
mov dword [esp + 0x18], esi
call eax
add esp, 8
mov eax, dword [edi + 0x4b8]
cmp eax, esi
je 0x44026c
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x310]
push edx
mov dword [esp + 0x18], esi
call eax
add esp, 8
mov eax, dword [edi + 0x4bc]
cmp eax, esi
je 0x440292
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x310]
push edx
mov dword [esp + 0x18], esi
call eax
add esp, 8
mov eax, dword [edi + 0x4c0]
cmp eax, esi
je 0x4402b8
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0x310]
push edx
mov dword [esp + 0x18], esi
call eax
add esp, 8
cmp dword [edi + 0x4d8], esi
je 0x44030d
push 0x50
lea eax, [esp + 0x68]
push esi
push eax
call fcn.0057f470
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x70]
lea eax, [edi + 0x310]
push ecx
push edx
mov dword [esp + 0x78], 0x20050
call dword [edi + 0x4d8]
add esp, 0x14
cmp eax, esi
jne 0x44030d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [eax + 0x4c8], ecx
mov dword [eax + 0x4c4], edx
cmp dword [edi + 0x49c], esi
je 0x440352
push 0x62c
lea eax, [esp + 0x2e0]
push esi
push eax
call fcn.0057f470
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x2e8]
lea eax, [edi + 0x310]
push ecx
push edx
mov dword [esp + 0x2f0], 0x1062c
call dword [edi + 0x49c]
add esp, 0x14
mov ecx, dword [edi + 0x4c4]
cmp ecx, esi
je 0x440398
mov edx, dword [edi + ebx*4 + 0x310]
lea eax, [esp + 0xa0c]
push eax
lea eax, [edi + 0x310]
push edx
call ecx
add esp, 8
cmp eax, esi
jne 0x440398
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xa0c]
push eax
add ecx, 0x490
push 0x10
push ecx
call fcn.0057eed3
add esp, 0xc
mov ecx, dword [edi + 0x4c8]
cmp ecx, esi
je 0x4403e6
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
lea edx, [esp + 0x34]
lea eax, [edi + 0x310]
mov eax, dword [eax + ebx*4]
push edx
push eax
mov dword [esp + 0x3c], 0x20010
call ecx
add esp, 8
cmp eax, esi
jne 0x4403e6
mov ecx, dword [esp + 0x3c]
or ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x4ac], ecx
mov eax, dword [edi + 0x4cc]
cmp eax, esi
je 0x440408
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x60]
push ecx
lea ecx, [edi + 0x310]
push edx
call eax
add esp, 8
mov eax, dword [edi + 0x4d4]
cmp eax, esi
je 0x44042a
mov edx, dword [edi + ebx*4 + 0x310]
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [edi + 0x310]
push edx
call eax
add esp, 8
mov ecx, dword [esp + 0x14]
call fcn.004563d0
cmp eax, esi
je 0x44047a
mov eax, dword [eax + 0x18]
movzx eax, word [eax + 6]
and eax, 0xfff0
cmp eax, 0x1e00
jne 0x44047a
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x4b8]
cmp eax, 0x58
je 0x44046c
cmp eax, 0x60
jne 0x44047e
fld dword [0x5a616c]
fstp dword [ecx + 0x4d0]
jmp 0x44047e
fld dword [0x5a6168]
fstp dword [ecx + 0x4d0]
jmp 0x44047e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x4b0]
and eax, 0xfffff000
cmp eax, 0x10b0000
ja 0x4404ad
je 0x4404b4
cmp eax, 0x1090000
je 0x4404b4
cmp eax, 0x10a0000
je 0x4404b4
mov dword [esp + 0x10], 1
jmp 0x44068d
cmp eax, 0x10c0000
jne 0x4404ce
mov eax, dword [ecx + 0x4bc]
cmp eax, 0xffffffff
je 0x4404ce
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [ecx + 0x4c0], eax
mov dword [esp + 0x10], 1
jmp 0x44068d
xor esi, esi
mov ecx, dword [esp + 0x18]
mov byte [esp + 0xa60], 0
call fcn.0044c960
mov ecx, dword [esp + 0x20]
inc eax
mov dword [esi + 0x4f4], eax
mov dword [esi + 0x50c], ecx
mov dword [esi + 0x4b0], 0x1000000
mov edx, dword [esp + 0x1c]
and edx, 0xffff
mov dword [esi + 0x518], edx
mov eax, dword [esp + 0x1c]
shr eax, 0x10
mov dword [esi + 0x51c], eax
mov ecx, dword [esp + 0x50]
mov dword [esi + 0x520], ecx
mov edx, dword [esp + 0x30]
and edx, 0xffff
mov dword [esi + 0x524], edx
mov eax, dword [esp + 0x30]
shr eax, 0x10
mov ecx, esi
mov dword [esi + 0x528], eax
call fcn.00456410
mov ecx, esi
call fcn.00455bf0
push 0x10c
call fcn.0056cb85
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0xa60], 2
test eax, eax
je 0x44058c
mov ecx, dword [edi + 0x108]
push ecx
mov ecx, eax
call fcn.0046ff10
mov dword [esp + 0x14], eax
jmp 0x440594
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
push esi
mov byte [esp + 0xa64], 0
call fcn.00470000
test eax, eax
je 0x4405ba
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push edx
call fcn.0044c6d0
jmp 0x4405cd
cmp dword [esp + 0x14], 0
je 0x4405cd
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [edi + ebx*4 + 0x310]
mov edx, dword [edi + 0x444]
lea eax, [esp + 0x90c]
push eax
lea eax, [edi + 0x310]
push ecx
call edx
add esp, 8
test eax, eax
jne 0x44067a
lea eax, [esp + 0x90c]
push str.NVIDIA
push eax
call fcn.0057e930
add esp, 8
test eax, eax
jne 0x440661
lea ecx, [esp + 0x90c]
push str.NVidia
push ecx
call fcn.0057e930
add esp, 8
test eax, eax
jne 0x440661
lea edx, [esp + 0x90c]
push str.nvidia
push edx
call fcn.0057e930
add esp, 8
test eax, eax
jne 0x440661
lea eax, [esp + 0x90c]
push eax
push 0x5a6170
lea ecx, [esi + 0x10]
push 0x100
push ecx
call fcn.0043a290
add esp, 0x10
jmp 0x44067a
lea edx, [esp + 0x90c]
push edx
lea eax, [esi + 0x10]
push 0x100
push eax
call fcn.0057eed3
add esp, 0xc
push ebx
push edi
mov ecx, esi
call fcn.004562e0
mov ecx, dword [esp + 0x18]
push esi
call fcn.0044c6e0
inc ebx
cmp ebx, dword [edi + 0x410]
jl 0x43fe70
lea ecx, [esp + 0x24]
mov dword [esp + 0xa60], 0xffffffff
call fcn.0041c7a0
mov eax, dword [esp + 0x10]
jmp 0x4406ca
lea ecx, [esp + 0x24]
mov dword [esp + 0xa60], 0xffffffff
call fcn.0041c7a0
xor eax, eax
mov ecx, dword [esp + 0xa58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa40]
xor ecx, esp
call fcn.0057db4c
mov esp, ebp
pop ebp
ret