Function at 0x415d70
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x499fe4
mov eax, dword fs:[0]
push eax
sub esp, 0x408
mov eax, dword [0x4ba700]
xor eax, esp
mov dword [esp + 0x400], eax
push ebx
push esi
push edi
mov eax, dword [0x4ba700]
xor eax, esp
push eax
lea eax, [esp + 0x418]
mov dword fs:[0], eax
mov ebx, ecx
push str.Entered_InitAuthenticate_n
mov ecx, 9
mov eax, 0x4bc990
mov dword [esp + 0x20], ebx
call fcn.00401110
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx]
mov eax, dword [eax + 0x120]
add esp, 4
lea edx, [esp + 0x34]
push edx
call eax
push str.c:dataultravncultravnc_project_rootultravncwinvncwinvnc_vncPasswd.h_:_PASSWD_:_ToText_called_n
mov ecx, 9
mov eax, 0x4bc990
call fcn.00401110
add esp, 4
push 9
call fcn.0047da45
add esp, 4
mov esi, eax
push 1
mov ecx, 0x4bbf04
mov dword [esp + 0x28], esi
call fcn.00401e20
add esp, 4
lea eax, [esp + 0x34]
call fcn.004023e0
mov byte [esi + 8], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x420], 0
cmp dword [ebx + 0x70], 0
je 0x415e3f
xor edi, edi
mov dword [esp + 0x18], edi
jmp 0x415e5e
mov ecx, dword [ebx + 0x64]
mov esi, dword [ebx + 0x68]
mov edi, dword [esi]
push ecx
call fcn.004536f0
mov edx, dword [edi + 0x194]
push eax
mov ecx, esi
call edx
mov edi, eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x304]
call fcn.00451550
test eax, eax
jne 0x415e9c
mov esi, dword [esp + 0x24]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415e77
sub eax, edx
push eax
push 0
push esi
call fcn.004858b0
add esp, 0xc
push esi
call fcn.0047d643
add esp, 4
xor eax, eax
jmp 0x416ac2
mov esi, 0x4a3fbe
lea eax, [esp + 0x304]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x415ec8
test cl, cl
je 0x415ec4
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x415ec8
add eax, 2
add esi, 2
test cl, cl
jne 0x415ea8
xor eax, eax
jmp 0x415ecd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x415ee6
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1bc]
call edx
test eax, eax
je 0x41611d
cmp edi, 1
jne 0x41611d
call fcn.004515c0
test eax, eax
je 0x415f25
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1bc]
call edx
test eax, eax
jne 0x415f25
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1ac]
call edx
mov edi, eax
dec edi
neg edi
sbb edi, edi
and edi, 2
jmp 0x41611d
push 0x1c
call fcn.0047c463
mov esi, eax
add esp, 4
mov dword [esp + 0x2c], esi
mov byte [esp + 0x420], 1
test esi, esi
je 0x415f93
mov eax, dword [ebx + 0x64]
push eax
call fcn.004536f0
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [edx + 0x1ac]
call eax
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x1b4]
call eax
push edi
mov dword [esi], vtable.vncAcceptDialog.0
mov dword [esi + 4], eax
call fcn.0047d6d1
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
add esp, 4
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], 0
mov dword [esi + 0x18], ecx
jmp 0x415f95
xor esi, esi
mov byte [esp + 0x420], 0
test esi, esi
jne 0x4160cc
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1ac]
call eax
cmp eax, 1
jne 0x416126
mov eax, dword [esp + 0x24]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x415fc2
sub eax, edx
jne 0x416208
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx]
mov edx, dword [eax + 0x188]
call edx
test eax, eax
je 0x416208
push str.._vncclient.cpp_:_no_password_specified_for_server___client_rejected_n
xor ecx, ecx
mov eax, 0x4bc990
call fcn.00401110
mov eax, str.This_server_does_not_have_a_valid_password_enabled.__Until_a_password_is_set__incoming_connections_cannot_be_accepted.
add esp, 4
mov dword [esp + 0x18], 0
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416010
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]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416023
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 edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416036
sub eax, edi
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 dword [esp + 0x1c], edx
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416050
sub eax, dword [esp + 0x1c]
shr ecx, 0x10
shl eax, 0x10
and edi, 0xff00
or eax, edi
mov edi, dword [ebx + 0x64]
and esi, 0xff0000
or esi, ecx
shl eax, 8
shr esi, 8
or eax, esi
mov dword [esp + 0x1c], eax
mov ecx, 4
lea eax, [esp + 0x18]
call fcn.00453a00
test eax, eax
je 0x4161f8
mov edi, dword [ebx + 0x64]
mov ecx, 4
lea eax, [esp + 0x1c]
call fcn.00453a00
test eax, eax
je 0x4161f8
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]
inc eax
test cl, cl
jne 0x4160b7
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.
jmp 0x4161f0
push 0x400001cf
push 0
push 0
call dword [sym.imp.USER32.dll_OpenInputDesktop]
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov ecx, dword [esp + 0x18]
push ecx
mov dword [esp + 0x24], eax
call dword [sym.imp.USER32.dll_SetThreadDesktop]
call fcn.00411280
test eax, eax
jne 0x416107
lea edi, [eax + 2]
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.USER32.dll_SetThreadDesktop]
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_CloseDesktop]
cmp edi, 2
jne 0x415fbb
mov eax, str.Your_connection_has_been_rejected.
mov dword [esp + 0x18], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416136
sub eax, edx
mov ecx, eax
mov eax, str.Your_connection_has_been_rejected.
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416150
sub eax, esi
mov esi, eax
mov eax, str.Your_connection_has_been_rejected.
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416163
sub eax, edi
mov edi, eax
mov eax, str.Your_connection_has_been_rejected.
lea edx, [eax + 1]
mov dword [esp + 0x1c], edx
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416180
sub eax, dword [esp + 0x1c]
shr ecx, 0x10
shl eax, 0x10
and edi, 0xff00
or eax, edi
mov edi, dword [ebx + 0x64]
and esi, 0xff0000
or esi, ecx
shl eax, 8
shr esi, 8
or eax, esi
mov dword [esp + 0x1c], eax
mov ecx, 4
lea eax, [esp + 0x18]
call fcn.00453a00
test eax, eax
je 0x4161f8
mov edi, dword [ebx + 0x64]
mov ecx, 4
lea eax, [esp + 0x1c]
call fcn.00453a00
test eax, eax
je 0x4161f8
mov eax, str.Your_connection_has_been_rejected.
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4161e0
sub eax, edx
mov ecx, eax
mov eax, str.Your_connection_has_been_rejected.
mov edi, dword [ebx + 0x64]
call fcn.00453a00
lea edi, [esp + 0x14]
call fcn.004146d0
xor eax, eax
jmp 0x416ac2
mov ecx, dword [ebx + 0x68]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c4]
call edx
test eax, eax
mov eax, dword [ebx + 0x64]
push eax
jne 0x416365
call fcn.00453750
push eax
call fcn.0047d6d1
mov ecx, dword [ebx + 0x64]
add esp, 4
push ecx
mov edi, eax
call fcn.004536f0
push eax
call fcn.0047d6d1
add esp, 4
mov dword [esp + 0x18], eax
test edi, edi
je 0x4163da
test eax, eax
je 0x4163da
push eax
push edi
call fcn.0047d85e
mov esi, eax
neg esi
sbb esi, esi
push edi
neg esi
call fcn.0047d643
mov edx, dword [esp + 0x24]
add esp, 0xc
push edx
call fcn.0047d643
add esp, 4
test esi, esi
jne 0x4163da
push str.._vncclient.cpp_:_loopback_connection_attempted___client_rejected_n
xor ecx, ecx
mov eax, 0x4bc990
call fcn.00401110
mov eax, str.Local_loop_back_connections_are_disabled.
add esp, 4
mov dword [esp + 0x18], esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4162a4
sub eax, edx
mov ecx, eax
mov eax, str.Local_loop_back_connections_are_disabled.
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4162b7
sub eax, esi
mov esi, eax
mov eax, str.Local_loop_back_connections_are_disabled.
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4162d0
sub eax, edi
mov edi, eax
mov eax, str.Local_loop_back_connections_are_disabled.
lea edx, [eax + 1]
mov dword [esp + 0x1c], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4162e7
sub eax, dword [esp + 0x1c]
shr ecx, 0x10
shl eax, 0x10
and edi, 0xff00
or eax, edi
mov edi, dword [ebx + 0x64]
and esi, 0xff0000
or esi, ecx
shl eax, 8
shr esi, 8
or eax, esi
mov dword [esp + 0x1c], eax
mov ecx, 4
lea eax, [esp + 0x18]
call fcn.00453a00
test eax, eax
je 0x4161f8
mov edi, dword [ebx + 0x64]
mov ecx, 4
lea eax, [esp + 0x1c]
call fcn.00453a00
test eax, eax
je 0x4161f8
mov eax, str.Local_loop_back_connections_are_disabled.
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416350
sub eax, edx
mov ecx, eax
mov eax, str.Local_loop_back_connections_are_disabled.
jmp 0x4161f0
call fcn.00453750
push eax
call fcn.0047d6d1
mov ecx, dword [ebx + 0x64]
add esp, 4
push ecx
mov edi, eax
call fcn.004536f0
push eax
call fcn.0047d6d1
add esp, 4
mov dword [esp + 0x18], eax
test edi, edi
je 0x4163da
test eax, eax
je 0x4163da
push eax
push edi
call fcn.0047d85e
mov esi, eax
neg esi
sbb esi, esi
push edi
neg esi
call fcn.0047d643
mov edx, dword [esp + 0x24]
add esp, 0xc
push edx
call fcn.0047d643
add esp, 4
test esi, esi
jne 0x4163da
push str.._vncclient.cpp_:_loopback_connection_attempted___client_accepted_n
xor ecx, ecx
mov eax, 0x4bc990
call fcn.00401110
mov eax, dword [ebx + 0x6c]
add esp, 4
mov dword [eax + 0x30], 1
cmp dword [ebx + 0x70], 0
jne 0x4169ed
mov eax, dword [esp + 0x24]
lea edx, [eax + 1]
jmp 0x4163f0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4163f0
sub eax, edx
je 0x4169ed
cmp dword [ebx + 0x78], 0
je 0x416426
mov edx, dword [ebx]
mov eax, dword [edx + 0x18]
mov ecx, ebx
call eax
test eax, eax
jne 0x4167f1
lea edi, [esp + 0x14]
call fcn.004146d0
xor eax, eax
jmp 0x416ac2
mov edi, dword [ebx + 0x64]
mov ecx, 4
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x2000000
call fcn.00453a00
test eax, eax
je 0x4161f8
lea ebx, [esp + 0x3c]
mov dword [esp + 0x20], 1
call fcn.00411640
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x48]
lea ebx, [esp + 0x7c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
call fcn.004116a0
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x78], 0
mov ecx, 9
mov eax, 0x4bc990
je 0x416691
push str.MS_Logon_authentication
call fcn.00401110
mov edi, dword [esi + 0x64]
add esp, 4
mov ecx, 0x40
mov eax, ebx
call fcn.00453a00
test eax, eax
je 0x4161f8
mov edi, dword [esi + 0x64]
mov ecx, 0x10
lea eax, [esp + 0x3c]
call fcn.00453a00
test eax, eax
je 0x4161f8
lea edx, [esp + 0x204]
push edx
mov edx, dword [esi + 0x64]
mov ecx, 0x100
call fcn.00453b00
test eax, eax
je 0x4161f8
mov edx, dword [esi + 0x64]
lea eax, [esp + 0xfc]
push eax
mov ecx, 0x100
call fcn.00453b00
test eax, eax
je 0x4161f8
mov edx, dword [esi + 0x64]
lea ecx, [esp + 0xbc]
push ecx
mov ecx, 0x40
call fcn.00453b00
test eax, eax
je 0x4161f8
lea edx, [esp + 0x6c]
push edx
mov edx, dword [esi + 0x64]
mov ecx, 0x10
call fcn.00453b00
test eax, eax
je 0x4161f8
xor eax, eax
lea esp, [esp]
movzx ecx, byte [esp + eax + 0xbc]
movzx edx, byte [esp + eax + 0x7d]
xor cl, byte [esp + eax + 0x7c]
xor dl, byte [esp + eax + 0xbd]
mov byte [esp + eax + 0x4c], cl
movzx ecx, byte [esp + eax + 0x7e]
xor cl, byte [esp + eax + 0xbe]
mov byte [esp + eax + 0x4d], dl
movzx edx, byte [esp + eax + 0x7f]
xor dl, byte [esp + eax + 0xbf]
mov byte [esp + eax + 0x4e], cl
mov byte [esp + eax + 0x4f], dl
add eax, 4
cmp eax, 0x20
jl 0x416550
lea eax, [esp + 0x4c]
push eax
call fcn.004115e0
mov edi, eax
lea eax, [esp + 0x208]
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4165b1
sub eax, edx
jne 0x416603
mov ecx, dword [esi + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x208]
call eax
test eax, eax
jne 0x416603
lea ecx, [eax + 9]
push str.No_user_specified__mslogon_not_required
mov eax, 0x4bc990
call fcn.00401110
mov ecx, dword [esp + 0x28]
add esp, 4
lea ebx, [esp + 0x3c]
call fcn.00411700
xor eax, eax
mov cl, byte [esp + eax + 0x3c]
cmp cl, byte [esp + eax + 0x6c]
jne 0x416654
inc eax
cmp eax, 0x10
jb 0x4165f1
jmp 0x41667b
push str.User_specified_or_mslogon_required
mov ecx, 9
mov eax, 0x4bc990
call fcn.00401110
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
add esp, 4
call eax
push eax
mov ebx, edi
lea ecx, [esp + 0x208]
call fcn.00441a80
mov ebx, eax
add esp, 4
push ebx
push str.CheckUserGroupPasswordUni_result_i
mov ecx, 9
mov eax, 0x4bc990
call fcn.00401110
add esp, 8
test ebx, ebx
jne 0x41665e
mov dword [esp + 0x20], 0
jmp 0x41667b
cmp ebx, 2
jne 0x41667b
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push 0
call eax
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
push 0
call eax
test edi, edi
je 0x41690b
push edi
call fcn.0047d643
add esp, 4
jmp 0x41690b
push str.password_authentication
call fcn.00401110
mov edi, dword [esi + 0x64]
add esp, 4
mov ecx, 0x10
lea eax, [esp + 0x3c]
call fcn.00453a00
test eax, eax
jne 0x4166da
push str.._vncclient.cpp_:_Failed_to_send_challenge_to_client_n
mov ecx, 4
mov eax, 0x4bc990
call fcn.00401110
add esp, 4
lea edi, [esp + 0x14]
call fcn.004146d0
xor eax, eax
jmp 0x416ac2
mov edx, dword [esi + 0x64]
lea ecx, [esp + 0x6c]
push ecx
mov ecx, 0x10
call fcn.00453b00
test eax, eax
jne 0x4166f7
push str.._vncclient.cpp_:_Failed_to_receive_challenge_response_from_client_n
jmp 0x4166b8
mov ecx, dword [esp + 0x24]
lea ebx, [esp + 0x3c]
call fcn.00411700
xor eax, eax
jmp 0x416710
mov dl, byte [esp + eax + 0x3c]
cmp dl, byte [esp + eax + 0x6c]
jne 0x41684c
inc eax
cmp eax, 0x10
jb 0x416710
cmp dword [esi + 0x78], 0
mov dword [esp + 0x18], 0
jne 0x4167d4
push 0x104
lea ecx, [esp + 0x100]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x41679b
lea edx, [esp + 0xfc]
push 0x5c
push edx
call fcn.0047e5be
mov byte [eax], 0
lea eax, [esp + 0x104]
add esp, 8
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x416770
mov ecx, dword [str.logging.dll]
mov edx, dword [0x4ab480]
mov dword [eax], ecx
mov ecx, dword [0x4ab484]
mov dword [eax + 4], edx
mov dl, byte [0x4ab488]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [esp + 0xfc]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x4167d4
push str.LOGLOGON
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx]
mov ebx, eax
mov eax, dword [edx + 0x3c]
call eax
push eax
call ebx
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, dword [esi + 0x64]
mov ecx, 4
lea eax, [esp + 0x18]
call fcn.00453a00
test eax, eax
je 0x4161f8
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebx + 0x64]
lea ecx, [esp + 0x2b]
push ecx
mov ecx, 1
call fcn.00453b00
test eax, eax
je 0x4161f8
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14c]
call eax
cmp eax, 3
jne 0x416a1e
cmp dword [ebx + 0x74], 0
jne 0x416a1e
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
test eax, eax
jbe 0x416a1e
push str.._vncclient.cpp_:_connections_already_exist___client_rejected_n
mov ecx, 1
jmp 0x4166bd
mov ecx, dword [esi + 0x68]
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x128]
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x24], 0
call eax
lea ecx, [esp + 0x34]
push ecx
lea edi, [esp + 0x28]
call fcn.00414680
mov byte [esp + 0x420], 2
mov edi, dword [esp + 0x24]
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416890
sub eax, edx
je 0x4168fa
push str.View_only_password_authentication
mov ecx, 9
mov eax, 0x4bc990
call fcn.00401110
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
add esp, 4
push 0
call eax
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
push 0
call eax
mov ecx, edi
lea ebx, [esp + 0x4c]
mov dword [esp + 0x20], 1
call fcn.00411700
xor eax, eax
nop
mov cl, byte [esp + eax + 0x4c]
cmp cl, byte [esp + eax + 0x6c]
jne 0x4168f2
inc eax
cmp eax, 0x10
jb 0x4168e0
jmp 0x4168fa
mov dword [esp + 0x20], 0
lea edi, [esp + 0x24]
mov byte [esp + 0x420], 0
call fcn.004146d0
cmp dword [esp + 0x20], 0
jne 0x416724
push str.._vncclient.cpp_:_authentication_failed_n
xor ecx, ecx
mov eax, 0x4bc990
call fcn.00401110
add esp, 4
push 0x104
lea edx, [esp + 0x100]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x41698b
lea eax, [esp + 0xfc]
push 0x5c
push eax
call fcn.0047e5be
mov byte [eax], 0
lea eax, [esp + 0x104]
add esp, 8
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x416960
mov ecx, dword [str.logging.dll]
mov edx, dword [0x4ab480]
mov dword [eax], ecx
mov ecx, dword [0x4ab484]
mov dword [eax + 4], edx
mov dl, byte [0x4ab488]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [esp + 0xfc]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x4169c4
push str.LOGFAILED
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esi + 0x6c]
mov edx, dword [ecx]
mov ebx, eax
mov eax, dword [edx + 0x3c]
call eax
push eax
call ebx
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, dword [esi + 0x64]
mov ecx, 4
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x1000000
call fcn.00453a00
lea edi, [esp + 0x14]
call fcn.004146d0
xor eax, eax
jmp 0x416ac2
mov edi, dword [ebx + 0x64]
mov ecx, 4
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x1000000
call fcn.00453a00
test eax, eax
jne 0x4167f1
lea edi, [esp + 0x14]
call fcn.004146d0
xor eax, eax
jmp 0x416ac2
cmp byte [esp + 0x2b], 0
jne 0x416a84
cmp dword [ebx + 0x74], 0
jne 0x416a84
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14c]
call eax
cmp eax, 1
jae 0x416a60
push str.._vncclient.cpp_:_non_shared_connection___disconnecting_old_clients_n
mov ecx, 9
mov eax, 0x4bc990
call fcn.00401110
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
add esp, 4
call eax
jmp 0x416a84
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14c]
call eax
cmp eax, 1
jbe 0x416a84
mov ecx, dword [ebx + 0x68]
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
test eax, eax
ja 0x41683d
push str.._vncclient.cpp_:_Leaving_InitAuthenticate_n
mov ecx, 1
mov eax, 0x4bc990
call fcn.00401110
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ecx]
mov ebx, dword [ebx + 0x68]
mov eax, dword [edx + 0x40]
mov esi, dword [ebx]
add esp, 4
call eax
mov edx, dword [esi + 0x10]
movzx ecx, ax
push ecx
mov ecx, ebx
call edx
lea edi, [esp + 0x14]
mov esi, eax
call fcn.004146d0
mov eax, esi
mov ecx, dword [esp + 0x418]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x400]
xor ecx, esp
call fcn.0047c3ff
mov esp, ebp
pop ebp
ret