Function at 0x411a38
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x470f89
mov eax, dword fs:[0]
push eax
sub esp, 0x3e8
mov eax, dword [0x48ea40]
xor eax, esp
mov dword [esp + 0x3e4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48ea40]
xor eax, esp
push eax
lea eax, [esp + 0x3fc]
mov dword fs:[0], eax
push str.Entered_InitAuthenticate
push 9
push 0x490660
mov ebp, ecx
call fcn.00401810
mov ecx, dword [ebp + 0x64]
mov eax, dword [ecx]
mov eax, dword [eax + 0x110]
add esp, 0xc
lea edx, [esp + 0x48]
push edx
call eax
push str.d:wm_projectsultravnc_105_srcultravnc_project_rootultravncwinvncwinvnc_vncPasswd.h_:_PASSWD_:_ToText_called_n
push 9
push 0x490660
call fcn.00401810
lea ecx, [esp + 0x54]
push ecx
call fcn.0040e990
mov esi, eax
add esp, 0x10
mov dword [esp + 0x14], esi
xor ebx, ebx
cmp dword [ebp + 0x6c], ebx
mov dword [esp + 0x404], ebx
je 0x411a6b
mov dword [esp + 0x18], ebx
jmp 0x411a89
mov edi, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x60]
mov ebx, dword [edi]
call fcn.004499b0
mov edx, dword [ebx + 0x178]
push eax
mov ecx, edi
call edx
mov ebx, eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x2f4]
push 0x101
push eax
call fcn.004483c0
add esp, 8
test eax, eax
jne 0x411ad4
test esi, esi
je 0x411acd
mov eax, esi
lea edx, [eax + 1]
jmp 0x411ab0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411ab0
sub eax, edx
push eax
push 0
push esi
call fcn.0045c220
push esi
call fcn.0045dca8
add esp, 0x10
xor eax, eax
jmp 0x4124d7
mov edi, 0x475e64
lea esi, [esp + 0x2f4]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411b00
mov ecx, dword [ebp + 0x64]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1a0]
call edx
test eax, eax
je 0x411cda
cmp ebx, 1
jne 0x411cda
push 0x1c
call fcn.0045c2ef
mov ebx, eax
add esp, 4
mov dword [esp + 0x1c], ebx
test ebx, ebx
mov byte [esp + 0x404], 1
je 0x411b58
mov esi, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x60]
mov edi, esi
call fcn.004499b0
push eax
mov eax, dword [esi]
mov edx, dword [eax + 0x190]
mov ecx, esi
call edx
push eax
mov eax, dword [edi]
mov edx, dword [eax + 0x198]
mov ecx, edi
call edx
push eax
mov ecx, ebx
call fcn.0040e5c0
mov esi, eax
jmp 0x411b5a
xor esi, esi
test esi, esi
mov byte [esp + 0x404], 0
jne 0x411c8e
mov ecx, dword [ebp + 0x64]
mov eax, dword [ecx]
mov edx, dword [eax + 0x190]
call edx
cmp eax, 1
jne 0x411ce3
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411b87
sub eax, edx
jne 0x411db9
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x16c]
call eax
test eax, eax
je 0x411db9
push str.._vncclient.cpp_:_no_password_specified_for_server___client_rejected_n
push 0
push 0x490660
call fcn.00401810
mov eax, str.This_server_does_not_have_a_valid_password_enabled.__Until_a_password_is_set__incoming_connections_cannot_be_accepted.
add esp, 0xc
mov dword [esp + 0x1c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411bd1
sub eax, edx
mov edi, eax
mov eax, str.This_server_does_not_have_a_valid_password_enabled.__Until_a_password_is_set__incoming_connections_cannot_be_accepted.
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411be6
sub eax, edx
mov ecx, eax
mov eax, str.This_server_does_not_have_a_valid_password_enabled.__Until_a_password_is_set__incoming_connections_cannot_be_accepted.
lea esi, [eax + 1]
jmp 0x411c00
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x411c00
sub eax, esi
mov esi, eax
mov eax, str.This_server_does_not_have_a_valid_password_enabled.__Until_a_password_is_set__incoming_connections_cannot_be_accepted.
lea ebx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x411c15
sub eax, ebx
and ecx, 0xff0000
shl eax, 0x10
and esi, 0xff00
or eax, esi
shr edi, 0x10
or ecx, edi
shr ecx, 8
shl eax, 8
or eax, ecx
push 4
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 0x60]
mov dword [esp + 0x20], eax
call fcn.00449cc0
test eax, eax
je 0x411da9
mov ecx, dword [ebp + 0x60]
push 4
lea edx, [esp + 0x1c]
push edx
call fcn.00449cc0
test eax, eax
je 0x411da9
mov eax, str.This_server_does_not_have_a_valid_password_enabled.__Until_a_password_is_set__incoming_connections_cannot_be_accepted.
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411c78
sub eax, edx
push eax
push str.This_server_does_not_have_a_valid_password_enabled.__Until_a_password_is_set__incoming_connections_cannot_be_accepted.
jmp 0x411da1
push 0x400001cf
push 0
push 0
call dword [sym.imp.USER32.dll_OpenInputDesktop]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
push edi
mov ebx, eax
call dword [sym.imp.USER32.dll_SetThreadDesktop]
mov ecx, esi
call fcn.0040e8c0
test eax, eax
jne 0x411cc8
mov dword [esp + 0x18], 2
push edi
call dword [sym.imp.USER32.dll_CloseDesktop]
push ebx
call dword [sym.imp.USER32.dll_SetThreadDesktop]
mov ebx, dword [esp + 0x18]
cmp ebx, 2
jne 0x411b80
mov eax, str.Your_connection_has_been_rejected.
mov dword [esp + 0x18], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411cf3
sub eax, edx
mov edi, eax
mov eax, str.Your_connection_has_been_rejected.
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411d08
sub eax, edx
mov ecx, eax
mov eax, str.Your_connection_has_been_rejected.
lea esi, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x411d20
sub eax, esi
mov esi, eax
mov eax, str.Your_connection_has_been_rejected.
lea ebx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x411d35
sub eax, ebx
shl eax, 0x10
and ecx, 0xff0000
and esi, 0xff00
or eax, esi
shr edi, 0x10
or ecx, edi
shl eax, 8
shr ecx, 8
or eax, ecx
mov ecx, dword [ebp + 0x60]
mov dword [esp + 0x1c], eax
push 4
lea eax, [esp + 0x1c]
push eax
call fcn.00449cc0
test eax, eax
je 0x411da9
push 4
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 0x60]
call fcn.00449cc0
test eax, eax
je 0x411da9
mov eax, str.Your_connection_has_been_rejected.
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411d90
sub eax, edx
push eax
push str.Your_connection_has_been_rejected.
mov ecx, dword [ebp + 0x60]
call fcn.00449cc0
lea ecx, [esp + 0x14]
call fcn.00410ec0
xor eax, eax
jmp 0x4124d7
mov ecx, dword [ebp + 0x64]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1a8]
call edx
test eax, eax
mov ecx, dword [ebp + 0x60]
jne 0x411f09
call fcn.00449a00
push eax
call fcn.0045e027
mov ecx, dword [ebp + 0x60]
add esp, 4
mov edi, eax
call fcn.004499b0
push eax
call fcn.0045e027
add esp, 4
test edi, edi
mov ebx, eax
je 0x411f73
test ebx, ebx
je 0x411f73
push ebx
push edi
call fcn.0045dab4
mov esi, eax
neg esi
sbb esi, esi
push edi
neg esi
call fcn.0045dca8
push ebx
call fcn.0045dca8
add esp, 0x10
test esi, esi
jne 0x411f73
push str.._vncclient.cpp_:_loopback_connection_attempted___client_rejected_n
push esi
push 0x490660
call fcn.00401810
mov eax, str.Local_loop_back_connections_are_disabled.
add esp, 0xc
mov dword [esp + 0x1c], esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411e50
sub eax, edx
mov ecx, str.Local_loop_back_connections_are_disabled.
mov edi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
add ecx, 1
test al, al
jne 0x411e65
mov eax, str.Local_loop_back_connections_are_disabled.
sub ecx, edx
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x411e78
sub eax, esi
mov esi, eax
mov eax, str.Local_loop_back_connections_are_disabled.
lea ebx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x411e90
sub eax, ebx
and ecx, 0xff0000
shl eax, 0x10
shr edi, 0x10
or ecx, edi
and esi, 0xff00
or eax, esi
shr ecx, 8
shl eax, 8
or ecx, eax
push 4
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x60]
push eax
call fcn.00449cc0
test eax, eax
je 0x411da9
push 4
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebp + 0x60]
call fcn.00449cc0
test eax, eax
je 0x411da9
mov eax, str.Local_loop_back_connections_are_disabled.
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411ef3
sub eax, edx
push eax
push str.Local_loop_back_connections_are_disabled.
jmp 0x411da1
call fcn.00449a00
push eax
call fcn.0045e027
mov ecx, dword [ebp + 0x60]
add esp, 4
mov edi, eax
call fcn.004499b0
push eax
call fcn.0045e027
add esp, 4
test edi, edi
mov ebx, eax
je 0x411f73
test ebx, ebx
je 0x411f73
push ebx
push edi
call fcn.0045dab4
mov esi, eax
neg esi
sbb esi, esi
push edi
neg esi
call fcn.0045dca8
push ebx
call fcn.0045dca8
add esp, 0x10
test esi, esi
jne 0x411f73
push str.._vncclient.cpp_:_loopback_connection_attempted___client_accepted_n
push esi
push 0x490660
call fcn.00401810
mov edx, dword [ebp + 0x68]
add esp, 0xc
mov dword [edx + 0x34], 1
cmp dword [ebp + 0x6c], 0
jne 0x4123cf
mov esi, dword [esp + 0x14]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x411f86
sub eax, edx
je 0x4123cf
cmp dword [ebp + 0x74], 0
je 0x411fbf
mov eax, dword [ebp]
mov edx, dword [eax + 0x18]
mov ecx, ebp
call edx
test eax, eax
jne 0x4123ee
lea ecx, [esp + 0x14]
call fcn.00410ec0
xor eax, eax
jmp 0x4124d7
mov ecx, dword [ebp + 0x60]
push 4
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], 0x2000000
call fcn.00449cc0
test eax, eax
je 0x411da9
lea ecx, [esp + 0x28]
push ecx
mov ebx, 1
call fcn.0040ea30
lea edx, [esp + 0x74]
push edx
call fcn.0040ea90
add esp, 8
cmp dword [ebp + 0x74], 0
je 0x4122ab
push str.MS_Logon_authentication
push 9
push 0x490660
call fcn.00401810
mov ecx, dword [ebp + 0x60]
add esp, 0xc
push 0x40
lea eax, [esp + 0x74]
push eax
call fcn.00449cc0
test eax, eax
je 0x411da9
push 0x10
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [ebp + 0x60]
call fcn.00449cc0
test eax, eax
je 0x411da9
mov ecx, dword [ebp + 0x60]
push pe_nt_image_headers32
lea edx, [esp + 0x1f8]
push edx
call fcn.00449e10
test eax, eax
je 0x411da9
mov ecx, dword [ebp + 0x60]
push pe_nt_image_headers32
lea eax, [esp + 0xf4]
push eax
call fcn.00449e10
test eax, eax
je 0x411da9
push 0x40
lea ecx, [esp + 0xb4]
push ecx
mov ecx, dword [ebp + 0x60]
call fcn.00449e10
test eax, eax
je 0x411da9
mov ecx, dword [ebp + 0x60]
push 0x10
lea edx, [esp + 0x3c]
push edx
call fcn.00449e10
test eax, eax
je 0x411da9
xor eax, eax
movzx ecx, byte [esp + eax + 0xb0]
movzx edx, byte [esp + eax + 0x71]
xor cl, byte [esp + eax + 0x70]
xor dl, byte [esp + eax + 0xb1]
mov byte [esp + eax + 0x50], cl
movzx ecx, byte [esp + eax + 0x72]
xor cl, byte [esp + eax + 0xb2]
mov byte [esp + eax + 0x51], dl
movzx edx, byte [esp + eax + 0x73]
xor dl, byte [esp + eax + 0xb3]
mov byte [esp + eax + 0x52], cl
mov byte [esp + eax + 0x53], dl
add eax, 4
cmp eax, 0x20
jl 0x4120b3
lea eax, [esp + 0x50]
push eax
call fcn.0040e9c0
mov edi, eax
lea eax, [esp + 0x1f8]
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x412114
sub eax, edx
jne 0x412167
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1e4]
call eax
test eax, eax
jne 0x412167
push str.No_user_specified__mslogon_not_required
push 9
push 0x490660
call fcn.00401810
lea ecx, [esp + 0x34]
push esi
push ecx
call fcn.0040eaf0
add esp, 0x14
xor eax, eax
mov dl, byte [esp + eax + 0x28]
cmp dl, byte [esp + eax + 0x38]
jne 0x4121af
add eax, 1
cmp eax, 0x10
jb 0x412153
jmp 0x4121d0
push str.User_specified_or_mslogon_required
push 9
push 0x490660
call fcn.00401810
mov ecx, dword [ebp + 0x68]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
add esp, 0xc
call edx
push eax
lea eax, [esp + 0x1f8]
push edi
push eax
call fcn.0043c4e0
mov esi, eax
push esi
push str.CheckUserGroupPasswordUni_result_i
push 9
push 0x490660
call fcn.00401810
add esp, 0x1c
test esi, esi
jne 0x4121b3
xor ebx, ebx
jmp 0x4121d0
cmp esi, 2
jne 0x4121d0
mov ecx, dword [ebp + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push 0
call eax
mov ecx, dword [ebp + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
push 0
call eax
test edi, edi
je 0x4121dd
push edi
call fcn.0045dca8
add esp, 4
test ebx, ebx
jne 0x412316
push str.._vncclient.cpp_:_authentication_failed_n
push 0
push 0x490660
call fcn.00401810
add esp, 0xc
push 0x104
lea edx, [esp + 0xf4]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x41225e
lea eax, [esp + 0xf0]
push 0x5c
push eax
call fcn.0045e20a
mov byte [eax], 0
lea eax, [esp + 0xf8]
add esp, 8
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x412231
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 + 0xf0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x412297
push str.LOGFAILED
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp + 0x68]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [edx + 0x3c]
call eax
push eax
call edi
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0x1000000
push ecx
jmp 0x411da1
push str.password_authentication
push 9
push 0x490660
call fcn.00401810
add esp, 0xc
push 0x10
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [ebp + 0x60]
call fcn.00449cc0
test eax, eax
je 0x411da9
mov ecx, dword [ebp + 0x60]
push 0x10
lea edx, [esp + 0x3c]
push edx
call fcn.00449e10
test eax, eax
je 0x411da9
lea eax, [esp + 0x28]
push esi
push eax
call fcn.0040eaf0
add esp, 8
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x28]
cmp cl, byte [esp + eax + 0x38]
jne 0x4121e5
add eax, 1
cmp eax, 0x10
jb 0x412300
cmp dword [ebp + 0x74], 0
mov dword [esp + 0x18], 0
jne 0x4123c6
push 0x104
lea edx, [esp + 0xf4]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x41238d
lea eax, [esp + 0xf0]
push 0x5c
push eax
call fcn.0045e20a
mov byte [eax], 0
lea eax, [esp + 0xf8]
add esp, 8
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x412360
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 + 0xf0]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x4123c6
push str.LOGLOGON
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp + 0x68]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [edx + 0x3c]
call eax
push eax
call edi
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 4
lea ecx, [esp + 0x1c]
push ecx
jmp 0x4123de
push 4
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0x1000000
push edx
mov ecx, dword [ebp + 0x60]
call fcn.00449cc0
test eax, eax
je 0x411da9
mov ecx, dword [ebp + 0x60]
push 1
lea eax, [esp + 0x27]
push eax
call fcn.00449e10
test eax, eax
je 0x411da9
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x130]
call eax
cmp eax, 3
jne 0x41244f
cmp dword [ebp + 0x70], 0
jne 0x41244f
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
test eax, eax
jbe 0x41244f
push str.._vncclient.cpp_:_connections_already_exist___client_rejected_n
push 1
push 0x490660
call fcn.00401810
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.00410ec0
xor eax, eax
jmp 0x4124d7
cmp byte [esp + 0x23], 0
jne 0x4124b2
cmp dword [ebp + 0x70], 0
jne 0x4124b2
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x130]
call eax
cmp eax, 1
jae 0x41248e
push str.._vncclient.cpp_:_non_shared_connection___disconnecting_old_clients_n
push 9
push 0x490660
call fcn.00401810
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
add esp, 0xc
call eax
jmp 0x4124b2
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x130]
call eax
cmp eax, 1
jbe 0x4124b2
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
test eax, eax
ja 0x41242b
mov ecx, dword [ebp + 0x68]
mov edx, dword [ecx]
mov ebp, dword [ebp + 0x64]
mov eax, dword [edx + 0x40]
mov esi, dword [ebp]
call eax
mov edx, dword [esi + 0xc]
mov ecx, ebp
push eax
call edx
lea ecx, [esp + 0x14]
mov esi, eax
call fcn.00410ec0
mov eax, esi
mov ecx, dword [esp + 0x3fc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3e4]
xor ecx, esp
call fcn.0045c20d
add esp, 0x3f4
ret