Function at 0x43afb0
Capabilities:
Check os version
Link many functions at runtime

Disassembly:
sub esp, 0x5b8
mov eax, dword [0x48ea40]
xor eax, esp
mov dword [esp + 0x5b4], eax
mov eax, dword [esp + 0x5bc]
mov ecx, dword [esp + 0x5c0]
mov dword [esp], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5c4]
lea edx, [esp + 0x1b4]
push esi
mov dword [esp + 8], ecx
sub edx, eax
mov esi, 1
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, esi
test cl, cl
jne 0x43b000
call fcn.0043af30
test al, al
jne 0x43b035
call fcn.0043af90
test al, al
jne 0x43b035
xor eax, eax
pop esi
mov ecx, dword [esp + 0x5b4]
xor ecx, esp
call fcn.0045c20d
add esp, 0x5b8
ret
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x43b01d
cmp dword [esp + 0x30], 2
jne 0x43b06b
mov eax, dword [esp + 0x24]
cmp eax, 4
jne 0x43b062
mov dword [esp + 0xc], esi
jmp 0x43b06b
cmp eax, 5
jb 0x43b06b
mov dword [esp + 0x10], esi
push ebx
push ebp
push edi
call fcn.0043a4c0
mov esi, eax
call fcn.0043a690
mov edi, eax
call fcn.0043a860
push 1
mov ebx, eax
call fcn.0043a940
push 0
mov ebp, eax
call fcn.0043ab30
push 0
mov dword [esp + 0x2c], eax
call fcn.0043ad20
mov ecx, dword [0x47c700]
mov dx, word [0x47c704]
mov dword [esp + 0x30], eax
mov eax, dword [str.VNCACCESS]
mov dword [esp + 0x4d0], eax
mov eax, dword [str.Administrators]
mov dword [esp + 0x4d4], ecx
mov ecx, dword [0x47c6f0]
mov word [esp + 0x4d8], dx
mov edx, dword [0x47c6f4]
mov dword [esp + 0x2d0], eax
mov ax, word [0x47c6f8]
mov dword [esp + 0x2d4], ecx
mov cl, byte [0x47c6fa]
mov dword [esp + 0x2d8], edx
mov edx, dword [str.VNCVIEWONLY]
mov word [esp + 0x2dc], ax
mov eax, dword [0x47c6e4]
mov byte [esp + 0x2de], cl
mov ecx, dword [0x47c6e8]
add esp, 0xc
test esi, esi
mov dword [esp + 0x3c4], edx
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x3cc], ecx
je 0x43b14f
lea edx, [esp + 0x4c4]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x43b143
test edi, edi
je 0x43b16c
lea edx, [esp + 0x2c4]
mov eax, edi
sub edx, edi
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x43b160
test ebx, ebx
je 0x43b18c
lea edx, [esp + 0x3c4]
mov eax, ebx
sub edx, ebx
jmp 0x43b180
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x43b180
lea edx, [esp + 0x4c4]
push edx
call fcn.0043a3d0
lea eax, [esp + 0x2c8]
push eax
call fcn.0043a5a0
lea ecx, [esp + 0x3cc]
push ecx
call fcn.0043a770
push ebp
call fcn.0043aa40
mov edx, dword [esp + 0x30]
push edx
call fcn.0043ac30
mov eax, dword [esp + 0x38]
push eax
call fcn.0043ae20
add esp, 0x18
test esi, esi
je 0x43b1f5
lea edx, [esp + 0x4c4]
mov eax, esi
sub edx, esi
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x43b1e0
push esi
call fcn.0045c39e
add esp, 4
test edi, edi
je 0x43b219
lea edx, [esp + 0x2c4]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x43b204
push edi
call fcn.0045c39e
add esp, 4
test ebx, ebx
je 0x43b23d
lea edx, [esp + 0x3c4]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x43b228
push ebx
call fcn.0045c39e
add esp, 4
mov edi, 0x475e64
lea esi, [esp + 0x4c4]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x43b75a
push 0x104
lea eax, [esp + 0xc4]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b2d8
lea ecx, [esp + 0xc0]
push 0x5c
push ecx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b297
mov edx, dword [str.workgrpdomnt4.dll]
mov ecx, dword [0x47c6d0]
mov dword [eax], edx
mov edx, dword [0x47c6d4]
mov dword [eax + 4], ecx
mov ecx, dword [0x47c6d8]
mov dword [eax + 8], edx
mov dx, word [0x47c6dc]
mov dword [eax + 0xc], ecx
mov cl, byte [0x47c6de]
mov word [eax + 0x10], dx
mov byte [eax + 0x12], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43b343
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [esp + 0x14]
push ebp
lea eax, [esp + 0x4c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
jmp 0x43b347
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
jne 0x43b359
cmp dword [esp + 0x1c], 0
je 0x43b438
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b3d8
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b3a0
mov ecx, dword [str._authadmin.dll]
mov edx, dword [0x47c6b8]
mov dword [eax], ecx
mov ecx, dword [0x47c6bc]
mov dword [eax + 4], edx
mov dx, word [0x47c6c0]
mov dword [eax + 8], ecx
mov cl, byte [0x47c6c2]
mov word [eax + 0xc], dx
mov byte [eax + 0xe], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43b438
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [esp + 0x14]
push ebp
lea eax, [esp + 0x4c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
call fcn.0043af10
test al, al
je 0x43b536
cmp dword [esp + 0x1c], 0
je 0x43b536
cmp ebp, 2
je 0x43b467
cmp ebp, 3
jne 0x43b536
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b4d6
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b4a7
mov ecx, dword [str.ldapauth.dll]
mov edx, dword [0x47c6a8]
mov dword [eax], ecx
mov ecx, dword [0x47c6ac]
mov dword [eax + 4], edx
mov dx, word [0x47c6b0]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43b536
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esp + 0x14]
push ebp
lea ecx, [esp + 0x4c8]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1cc]
push edx
push eax
push ecx
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
call fcn.0043af10
test al, al
je 0x43b648
cmp dword [esp + 0x18], 0
je 0x43b648
call fcn.0043af50
test al, al
je 0x43b648
cmp ebp, 2
je 0x43b572
cmp ebp, 3
jne 0x43b648
push 0x104
lea edx, [esp + 0xc4]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b5e8
lea eax, [esp + 0xc0]
push 0x5c
push eax
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b5b2
mov ecx, dword [str.ldapauthnt4.dll]
mov edx, dword [0x47c694]
mov dword [eax], ecx
mov ecx, dword [0x47c698]
mov dword [eax + 4], edx
mov edx, dword [0x47c69c]
mov dword [eax + 8], ecx
mov cl, byte [0x47c6a0]
mov dword [eax + 0xc], edx
mov byte [eax + 0x10], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43b648
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [esp + 0x14]
push ebp
lea eax, [esp + 0x4c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
call fcn.0043af10
test al, al
je 0x43b74f
cmp dword [esp + 0x18], 0
jne 0x43b74f
cmp dword [esp + 0x1c], 0
jne 0x43b74f
cmp ebp, 2
je 0x43b682
cmp ebp, 3
jne 0x43b74f
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b6ef
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b6c2
mov ecx, dword [str.ldapauth9x.dll]
mov edx, dword [0x47c684]
mov dword [eax], ecx
mov ecx, dword [0x47c688]
mov dword [eax + 4], edx
mov edx, dword [0x47c68c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43b74f
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esp + 0x14]
push ebp
lea ecx, [esp + 0x4c8]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1cc]
push edx
push eax
push ecx
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
jmp 0x43b75e
mov ebx, dword [esp + 0x28]
mov edi, 0x475e64
lea esi, [esp + 0x2c4]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x43bc78
push 0x104
lea eax, [esp + 0xc4]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b7f9
lea ecx, [esp + 0xc0]
push 0x5c
push ecx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b7b8
mov edx, dword [str.workgrpdomnt4.dll]
mov ecx, dword [0x47c6d0]
mov dword [eax], edx
mov edx, dword [0x47c6d4]
mov dword [eax + 4], ecx
mov ecx, dword [0x47c6d8]
mov dword [eax + 8], edx
mov dx, word [0x47c6dc]
mov dword [eax + 0xc], ecx
mov cl, byte [0x47c6de]
mov word [eax + 0x10], dx
mov byte [eax + 0x12], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43b85f
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x2c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x43b863
mov edi, dword [esp + 0x20]
cmp ebx, 1
je 0x43bf78
cmp dword [esp + 0x18], 0
jne 0x43b87e
cmp dword [esp + 0x1c], 0
je 0x43b958
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b8f8
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov edi, edi
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b8c0
mov ecx, dword [str._authadmin.dll]
mov edx, dword [0x47c6b8]
mov dword [eax], ecx
mov ecx, dword [0x47c6bc]
mov dword [eax + 4], edx
mov dx, word [0x47c6c0]
mov dword [eax + 8], ecx
mov cl, byte [0x47c6c2]
mov word [eax + 0xc], dx
mov byte [eax + 0xe], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43b958
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x2c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
call fcn.0043af10
test al, al
je 0x43ba56
cmp dword [esp + 0x1c], 0
je 0x43ba56
cmp edi, 2
je 0x43b987
cmp edi, 3
jne 0x43ba56
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43b9f6
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43b9c7
mov ecx, dword [str.ldapauth.dll]
mov edx, dword [0x47c6a8]
mov dword [eax], ecx
mov ecx, dword [0x47c6ac]
mov dword [eax + 4], edx
mov dx, word [0x47c6b0]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43ba56
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x2c8]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1cc]
push edx
push eax
push ecx
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
call fcn.0043af10
test al, al
je 0x43bb68
cmp dword [esp + 0x18], 0
je 0x43bb68
call fcn.0043af50
test al, al
je 0x43bb68
cmp edi, 2
je 0x43ba92
cmp edi, 3
jne 0x43bb68
push 0x104
lea edx, [esp + 0xc4]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43bb08
lea eax, [esp + 0xc0]
push 0x5c
push eax
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43bad2
mov ecx, dword [str.ldapauthnt4.dll]
mov edx, dword [0x47c694]
mov dword [eax], ecx
mov ecx, dword [0x47c698]
mov dword [eax + 4], edx
mov edx, dword [0x47c69c]
mov dword [eax + 8], ecx
mov cl, byte [0x47c6a0]
mov dword [eax + 0xc], edx
mov byte [eax + 0x10], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43bb68
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x2c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
call fcn.0043af10
test al, al
je 0x43bc6f
cmp dword [esp + 0x18], 0
jne 0x43bc6f
cmp dword [esp + 0x1c], 0
jne 0x43bc6f
cmp edi, 2
je 0x43bba2
cmp edi, 3
jne 0x43bc6f
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43bc0f
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43bbe2
mov ecx, dword [str.ldapauth9x.dll]
mov edx, dword [0x47c684]
mov dword [eax], ecx
mov ecx, dword [0x47c688]
mov dword [eax + 4], edx
mov edx, dword [0x47c68c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43bc6f
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x2c8]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1cc]
push edx
push eax
push ecx
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
mov edi, 0x475e64
lea esi, [esp + 0x3c4]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x43c2c3
push 0x104
lea eax, [esp + 0xc4]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43bd13
lea ecx, [esp + 0xc0]
push 0x5c
push ecx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43bcd2
mov edx, dword [str.workgrpdomnt4.dll]
mov ecx, dword [0x47c6d0]
mov dword [eax], edx
mov edx, dword [0x47c6d4]
mov dword [eax + 4], ecx
mov ecx, dword [0x47c6d8]
mov dword [eax + 8], edx
mov dx, word [0x47c6dc]
mov dword [eax + 0xc], ecx
mov cl, byte [0x47c6de]
mov word [eax + 0x10], dx
mov byte [eax + 0x12], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43bd79
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x3c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x43bd7d
mov edi, dword [esp + 0x24]
cmp ebx, 1
je 0x43bf78
cmp dword [esp + 0x18], 0
jne 0x43bd98
cmp dword [esp + 0x1c], 0
je 0x43be70
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43be10
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43bdd8
mov ecx, dword [str._authadmin.dll]
mov edx, dword [0x47c6b8]
mov dword [eax], ecx
mov ecx, dword [0x47c6bc]
mov dword [eax + 4], edx
mov dx, word [0x47c6c0]
mov dword [eax + 8], ecx
mov cl, byte [0x47c6c2]
mov word [eax + 0xc], dx
mov byte [eax + 0xe], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43be70
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x3c8]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1cc]
push ecx
push edx
push eax
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43bf78
call fcn.0043af10
test al, al
je 0x43bf6f
cmp dword [esp + 0x1c], 0
je 0x43bf6f
cmp edi, 2
je 0x43be9f
cmp edi, 3
jne 0x43bf6f
push 0x104
lea ecx, [esp + 0xc4]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43bf0f
lea edx, [esp + 0xc0]
push 0x5c
push edx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
nop
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43bee0
mov ecx, dword [str.ldapauth.dll]
mov edx, dword [0x47c6a8]
mov dword [eax], ecx
mov ecx, dword [0x47c6ac]
mov dword [eax + 4], edx
mov dx, word [0x47c6b0]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43bf6f
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x3c8]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1cc]
push edx
push eax
push ecx
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
jne 0x43bfff
push 0x104
lea edx, [esp + 0xc4]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43bfdd
lea eax, [esp + 0xc0]
push 0x5c
push eax
call fcn.0045c1e0
mov byte [eax], 0
lea eax, [esp + 0xc8]
add esp, 8
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43bfb0
mov ecx, dword [str.logging.dll]
mov edx, dword [0x4770c4]
mov dword [eax], ecx
mov ecx, dword [0x4770c8]
mov dword [eax + 4], edx
mov dl, byte [0x4770cc]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43c366
push str.LOGLOGONUSER
jmp 0x43c346
call fcn.0043af10
test al, al
je 0x43c108
cmp dword [esp + 0x18], 0
je 0x43c108
call fcn.0043af50
test al, al
je 0x43c108
cmp edi, 2
je 0x43c032
cmp edi, 3
jne 0x43c108
push 0x104
lea eax, [esp + 0xc4]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43c0a8
lea ecx, [esp + 0xc0]
push 0x5c
push ecx
call fcn.0045c1e0
add esp, 8
test eax, eax
je 0x43c171
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43c072
mov edx, dword [str.ldapauthnt4.dll]
mov ecx, dword [0x47c694]
mov dword [eax], edx
mov edx, dword [0x47c698]
mov dword [eax + 4], ecx
mov ecx, dword [0x47c69c]
mov dword [eax + 8], edx
mov dl, byte [0x47c6a0]
mov dword [eax + 0xc], ecx
mov byte [eax + 0x10], dl
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43c108
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x3c8]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1cc]
push edx
push eax
push ecx
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
je 0x43c21b
call fcn.0043af10
test al, al
je 0x43c212
cmp dword [esp + 0x18], 0
jne 0x43c212
cmp dword [esp + 0x1c], 0
jne 0x43c212
cmp edi, 2
je 0x43c142
cmp edi, 3
jne 0x43c212
push 0x104
lea edx, [esp + 0xc4]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43c1b2
lea eax, [esp + 0xc0]
push 0x5c
push eax
call fcn.0045c1e0
add esp, 8
test eax, eax
jne 0x43c178
xor eax, eax
jmp 0x43c368
mov byte [eax], 0
lea eax, [esp + 0xc0]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43c185
mov ecx, dword [str.ldapauth9x.dll]
mov edx, dword [0x47c684]
mov dword [eax], ecx
mov ecx, dword [0x47c688]
mov dword [eax + 4], edx
mov edx, dword [0x47c68c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43c212
push str.CUGP
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
mov dword [0x4a5498], eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x3c8]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1cc]
push edx
push eax
push ecx
call dword [0x4a5498]
add esp, 0x14
mov ebx, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
jne 0x43c2c3
push 0x104
lea edx, [esp + 0xc4]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43c280
lea eax, [esp + 0xc0]
push 0x5c
push eax
call fcn.0045c1e0
mov byte [eax], 0
lea eax, [esp + 0xc8]
add esp, 8
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43c253
mov ecx, dword [str.logging.dll]
mov edx, dword [0x4770c4]
mov dword [eax], ecx
mov ecx, dword [0x4770c8]
mov dword [eax + 4], edx
mov dl, byte [0x4770cc]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43c2b9
push str.LOGLOGONUSER
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x1c8]
push edx
call eax
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 2
jmp 0x43c368
push 0x104
lea eax, [esp + 0xc4]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x43c32d
lea ecx, [esp + 0xc0]
push 0x5c
push ecx
call fcn.0045c1e0
mov byte [eax], 0
lea eax, [esp + 0xc8]
add esp, 8
add eax, 0xffffffff
jmp 0x43c300
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x43c300
mov edx, dword [str.logging.dll]
mov ecx, dword [0x4770c4]
mov dword [eax], edx
mov edx, dword [0x4770c8]
mov dword [eax + 4], ecx
mov cl, byte [0x4770cc]
mov dword [eax + 8], edx
mov byte [eax + 0xc], cl
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x43c366
push str.LOGFAILEDUSER
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x1c8]
push edx
call eax
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, ebx
mov ecx, dword [esp + 0x5c4]
pop edi
pop ebp
pop ebx
pop esi
xor ecx, esp
call fcn.0045c20d
add esp, 0x5b8
ret