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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x565a60
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x5c0490]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
xor ebx, ebx
push ebx
lea eax, [esp + 0x30]
push str.CUNINSTALLERDlg::CheckDriver
push eax
call fcn.00401190
add esp, 0xc
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
push ecx
mov dword [esp + 0x84], ebx
mov eax, dword [edx]
push eax
push esi
push str.pCheckDriver___s__strVersion___s__lpDrvFile___s
lea ecx, [esp + 0x3c]
push 1
push ecx
call fcn.00401410
add esp, 0x18
push esi
lea ecx, [esp + 0x1c]
call fcn.00404f00
mov byte [esp + 0x80], 1
call fcn.0044b52d
mov edx, dword [eax + 4]
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
cmp dword [ecx + 0x114], ebx
jle 0x43629c
jmp 0x4360b4
mov eax, dword [esp + 0x1c]
test eax, eax
js 0x4362ca
cmp eax, dword [ecx + 0x114]
jge 0x4362ca
mov ecx, dword [ecx + 0x110]
mov edi, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [edi - 4], 0
lea ecx, [edi - 4]
jl 0x4360fa
cmp eax, dword [edi - 0x10]
jne 0x4360fa
lea esi, [edi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x436132
mov ecx, dword [edi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x4361fa
mov eax, dword [edi - 0xc]
mov dword [esi + 4], eax
mov eax, dword [edi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [esi + 0x10]
push eax
call fcn.0053d708
add esp, 0x10
lea edi, [esi + 0x10]
mov dword [esp + 0x28], edi
mov byte [esp + 0x80], 2
mov eax, dword [edi - 0xc]
test eax, eax
je 0x4361b9
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], eax
jne 0x4361b9
push eax
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x20]
call fcn.00410460
mov byte [esp + 0x80], 3
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4362c0
push eax
push edi
call fcn.0053d3bf
add esp, 8
test eax, eax
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
sete byte [esp + 0x17]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4361b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
jne 0x4361ff
add edi, 0xfffffff0
mov byte [esp + 0x80], 1
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4361dd
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [ecx + 0x114]
jl 0x4360b0
jmp 0x43629c
call fcn.00405640
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x138]
mov eax, dword [esp + 0x1c]
inc ecx
cmp eax, ecx
jl 0x436238
add edi, 0xfffffff0
mov byte [esp + 0x80], 1
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x43629c
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
jmp 0x43629c
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x13c]
jge 0x4362ca
mov ecx, dword [ecx + 0x138]
mov esi, dword [ebp + 0x10]
lea eax, [ecx + eax*4]
push eax
mov ecx, esi
call fcn.004063a0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
push edx
push esi
push eax
call fcn.004363f0
mov ebx, eax
neg ebx
sbb ebx, ebx
add edi, 0xfffffff0
inc ebx
mov byte [esp + 0x80], 1
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x436294
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
test ebx, ebx
jne 0x43637c
mov eax, dword [esp + 0x18]
push 0
push eax
call fcn.00443720
test eax, eax
je 0x43637c
call fcn.00448c3f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4362cf
push 0x80004005
call fcn.00404160
call fcn.004490bd
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0x84], 4
call fcn.00406b00
lea eax, [esp + 0x34]
mov byte [esp + 0x80], 5
call fcn.00406d60
push 0
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x64]
mov ebx, 2
call fcn.00406e90
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
lea edi, [esp + 0x3c]
call fcn.00406fd0
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
push esi
push 0x104
push eax
call fcn.0053e407
add esp, 0xc
mov ecx, edi
mov ebx, 1
mov byte [esp + 0x80], 4
call fcn.00406c10
lea eax, [esi - 0x10]
mov byte [esp + 0x80], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43637c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
push str.return___08x
lea ecx, [esp + 0x34]
push 2
push ecx
call fcn.00401410
mov byte [esp + 0x90], 0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4363b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x80], 0xffffffff
call fcn.00401370
mov eax, ebx
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10