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

Disassembly:
push 0xffffffffffffffff
push 0x100aca54
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100d8dd0]
xor eax, esp
push eax
lea eax, [esp + 0xbc]
mov dword fs:[0], eax
lea eax, [esp + 0x20]
push eax
call fcn.100178b0
xor esi, esi
mov dword [esp + 0xc4], esi
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x5c]
push ecx
push 2
push esi
push edx
mov dword [esp + 0x6c], esi
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov ebp, eax
mov dword [esp + 0x78], ebp
mov byte [esp + 0xc4], 1
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
call fcn.10058f30
mov byte [esp + 0xc4], 2
mov ecx, dword [esp + 0xcc]
cmp byte [ecx + 0x34], 0
je 0x1004f791
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], 0xa
mov byte [esp + 0xc4], 3
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x60]
mov dword [esp + 0x30], 0x100b19a8
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], eax
call fcn.10068790
cmp ax, 9
jne 0x1004f500
push str.CatalogFile.ntamd64
lea ecx, [esp + 0x18]
call fcn.10001a70
mov bl, 4
mov byte [esp + 0xc4], bl
push str.Version
lea ecx, [esp + 0x1c]
call fcn.10001a70
mov byte [esp + 0xc4], 5
push esi
push 1
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.1005e0a0
add esp, 0x18
mov byte [esp + 0xc4], bl
lea ecx, [esp + 0x18]
call fcn.10001df0
mov byte [esp + 0xc4], 3
lea ecx, [esp + 0x14]
call fcn.10001df0
call fcn.10068790
mov ebx, 6
cmp ax, bx
jne 0x1004f576
push str.CatalogFile.ntia64
lea ecx, [esp + 0x18]
call fcn.10001a70
mov byte [esp + 0xc4], bl
push str.Version
lea ecx, [esp + 0x1c]
call fcn.10001a70
mov byte [esp + 0xc4], 7
push esi
push 1
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.1005e0a0
add esp, 0x18
mov byte [esp + 0xc4], bl
lea ecx, [esp + 0x18]
call fcn.10001df0
mov byte [esp + 0xc4], 3
lea ecx, [esp + 0x14]
call fcn.10001df0
call fcn.10068790
test ax, ax
jne 0x1004f5ec
push str.CatalogFile.ntx86
lea ecx, [esp + 0x18]
call fcn.10001a70
mov bl, 8
mov byte [esp + 0xc4], bl
push str.Version
lea ecx, [esp + 0x1c]
call fcn.10001a70
mov byte [esp + 0xc4], 9
push 0
push 1
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.1005e0a0
add esp, 0x18
mov byte [esp + 0xc4], bl
lea ecx, [esp + 0x18]
call fcn.10001df0
mov byte [esp + 0xc4], 3
lea ecx, [esp + 0x14]
call fcn.10001df0
xor esi, esi
cmp dword [esp + 0x68], esi
jne 0x1004f6cf
push str.CatalogFile.nt
lea ecx, [esp + 0x18]
call fcn.10001a70
mov byte [esp + 0xc4], 0xa
push str.Version
lea ecx, [esp + 0x1c]
call fcn.10001a70
mov byte [esp + 0xc4], 0xb
push esi
push 1
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.1005e0a0
add esp, 0x18
mov byte [esp + 0xc4], 0xa
lea ecx, [esp + 0x18]
call fcn.10001df0
mov byte [esp + 0xc4], 3
lea ecx, [esp + 0x14]
call fcn.10001df0
cmp dword [esp + 0x68], esi
jne 0x1004f6cf
push str.CatalogFile
lea ecx, [esp + 0x18]
call fcn.10001a70
mov bl, 0xc
mov byte [esp + 0xc4], bl
push str.Version
lea ecx, [esp + 0x1c]
call fcn.10001a70
mov byte [esp + 0xc4], 0xd
push 0
push 1
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.1005e0a0
add esp, 0x18
mov byte [esp + 0xc4], bl
lea ecx, [esp + 0x18]
call fcn.10001df0
mov byte [esp + 0xc4], 3
lea ecx, [esp + 0x14]
call fcn.10001df0
mov esi, dword [esp + 0x60]
test esi, esi
je 0x1004f77e
mov bl, 0xe
lea ecx, [ecx]
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x1004f7d8
mov eax, esi
mov esi, dword [esi]
add eax, 8
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.10051dc0
mov byte [esp + 0xc4], bl
lea ecx, [esp + 0x1c]
call fcn.10057920
test al, al
je 0x1004f74e
lea ecx, [esp + 0x1c]
call fcn.10057900
shr eax, 4
not al
test al, 1
je 0x1004f74e
mov edi, dword [esp + 0xcc]
push edi
lea ecx, [esp + 0x20]
call fcn.1004f320
test al, al
jne 0x1004f74e
mov eax, dword [edi]
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call edx
mov byte [esp + 0xc4], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004f776
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
jne 0x1004f6e0
mov byte [esp + 0xc4], 2
lea ecx, [esp + 0x60]
call fcn.10019c60
xor esi, esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], 0xa
mov byte [esp + 0xc4], 0x11
call fcn.10068790
mov ecx, dword [esp + 0x44]
movzx eax, ax
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.10050d60
mov ecx, dword [esp + 0x44]
cmp ecx, esi
je 0x1004f7ee
mov dword [ecx], eax
jmp 0x1004f7f2
push 0
push 0x514
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.10001ed0
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x88]
mov dword [esp + 0x44], eax
call fcn.1001a870
mov byte [esp + 0xc4], 0x12
mov edi, dword [esp + 0x40]
cmp edi, esi
je 0x1004fa0f
mov bl, 0x15
jmp 0x1004f822
xor esi, esi
xor eax, eax
cmp edi, esi
setne al
cmp eax, esi
je 0x1004fa9a
mov eax, edi
mov edi, dword [edi]
movzx esi, word [eax + 8]
push str.SourceDisksNames
lea ecx, [esp + 0x30]
call fcn.10001a70
mov byte [esp + 0xc4], 0x13
push esi
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x20]
push ebp
push eax
call fcn.1005c3d0
add esp, 0x10
mov byte [esp + 0xc4], bl
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004f88a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.SourceDisksFiles
lea ecx, [esp + 0x2c]
call fcn.10001a70
mov byte [esp + 0xc4], 0x17
push esi
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x1c]
push ebp
push edx
call fcn.1005c3d0
add esp, 0x10
mov byte [esp + 0xc4], 0x19
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004f8dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x100b9464
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x60]
push edx
call fcn.10013cb0
add esp, 0xc
mov byte [esp + 0xc4], 0x1b
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x24]
push edx
call fcn.10051d10
add esp, 0xc
mov byte [esp + 0xc4], 0x1d
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004f936
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x8c]
push eax
push ecx
lea ecx, [esp + 0x98]
call fcn.10011b70
test eax, eax
jne 0x1004f990
mov edx, dword [esp + 0x1c]
push 1
push edx
lea ecx, [esp + 0x90]
call fcn.10010af0
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0xd0]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x2c]
push edx
push ebp
push eax
call fcn.1004fab0
mov byte [esp + 0xc4], 0x19
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004f9b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc4], bl
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004f9df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc4], 0x12
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004fa07
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x1004f820
mov byte [esp + 0xc4], 0x11
lea ecx, [esp + 0x88]
call fcn.1001ad40
mov byte [esp + 0xc4], 2
lea esi, [esp + 0x40]
call fcn.10050cf0
mov byte [esp + 0xc4], 1
lea ecx, [esp + 0x24]
call fcn.10001df0
mov byte [esp + 0xc4], 0
or edi, 0xffffffff
cmp ebp, edi
je 0x1004fa6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebp
mov esi, eax
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
push esi
mov dword [esp + 0x7c], edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [esp + 0xc4], edi
lea ecx, [esp + 0x20]
call fcn.10001df0
mov ecx, dword [esp + 0xbc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret 4
push esi
push 0x514
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlcoll.h
push 0x80004005
call fcn.10001ed0
int3