Function at 0x402120
Capabilities:
Check if file exists
Get hostname
Initialize winsock library
Query or enumerate registry value
Resolve dns

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x428ffb
mov eax, dword fs:[0]
push eax
sub esp, 0x8d8
mov eax, dword [0x434dc0]
xor eax, esp
mov dword [esp + 0x8d0], eax
push ebx
push esi
push edi
mov eax, dword [0x434dc0]
xor eax, esp
push eax
lea eax, [esp + 0x8e8]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x28], edi
call fcn.004065e4
mov eax, dword [edi + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.0040f6a1
mov esi, eax
test esi, esi
je 0x402226
call fcn.0040f825
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4021a1
push 0x80004005
call fcn.00404af0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x24], ebx
push 0x65
mov dword [esp + 0x8f4], 0
call fcn.0040fc7c
test eax, eax
je 0x4021d7
push 0x65
push eax
lea ecx, [esp + 0x2c]
call fcn.004049e0
mov ebx, dword [esp + 0x24]
cmp dword [ebx - 0xc], 0
je 0x4021ff
mov ecx, dword [esi + 4]
push 0
push 0
push 0x800
push ecx
call dword [sym.imp.USER32.dll_AppendMenuA]
mov edx, dword [esi + 4]
push ebx
push 0x10
push 0
push edx
call dword [sym.imp.USER32.dll_AppendMenuA]
add ebx, 0xfffffff0
mov dword [esp + 0x8f0], 0xffffffff
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402226
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [edi + 0x74]
mov edx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push ecx
push 1
push 0x80
push edx
call esi
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x20]
push eax
push 0
push 0x80
push ecx
call esi
call fcn.00401600
lea edx, [esp + 0x2c]
push edx
push 0x202
mov dword [0x4388cc], eax
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 0xff
lea eax, [esp + 0x5e1]
push 0
push eax
mov byte [esp + 0x5e8], 0
call fcn.00416320
add esp, 0xc
push pe_nt_image_headers32
lea ecx, [esp + 0x5e0]
push ecx
call dword [sym.imp.WS2_32.dll_gethostname]
lea edx, [esp + 0x5dc]
push edx
call dword [sym.imp.WS2_32.dll_gethostbyname]
push 0x1ff
mov ebx, eax
lea eax, [esp + 0x3e1]
push 0
push eax
mov byte [esp + 0x3e8], 0
call fcn.00416320
add esp, 0xc
push 0x1f4
push 0x438ed8
push 0x73
call fcn.0040fc22
push 0x1f4
lea ecx, [esp + 0x3e0]
push ecx
push 0x72
call fcn.0040fc22
lea edx, [esp + 0x3dc]
push edx
push 0x3fc
mov ecx, edi
call fcn.00406d03
push 0x3fc
mov ecx, edi
call fcn.00406c58
mov eax, dword [eax + 0x20]
push 0
push 1
push eax
call dword [sym.imp.USER32.dll_ShowScrollBar]
push pe_nt_image_headers32
lea ecx, [esp + 0x3e0]
push ecx
push 0x66
call fcn.0040fc22
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
test eax, eax
je 0x4023bf
mov dword [esp + 0x24], 0
movsx ecx, word [ebx + 0xa]
push ecx
push eax
lea edx, [esp + 0x24]
push edx
call fcn.0041ba10
mov eax, dword [esp + 0x28]
add esp, 0xc
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402365
lea edi, [esp + 0x3dc]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402378
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x3dc]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x402396
mov eax, dword [esp + 0x24]
mov ecx, dword [0x42e700]
add eax, 4
mov dword [edi], ecx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [eax + edx]
test eax, eax
jne 0x402345
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x3dc]
push eax
push 0x3fb
mov ecx, edi
xor esi, esi
call fcn.00406d03
push 0x200
push esi
push 0x438ad8
call fcn.00416320
add esp, 0xc
push 0x200
push 0x438ad8
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x438ad8
push 0x200
push 0x4388d8
call fcn.0041450f
add esp, 0xc
push 0x4388d8
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
push str.rmtserver.exe
push 0x4388d8
push str._s_s
mov edx, 0x438cd8
call fcn.00404770
add esp, 0xc
push 0x438cd8
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x402483
push esi
push 0x3eb
mov ecx, edi
call fcn.00406c58
mov ecx, eax
call fcn.00406e1c
push pe_nt_image_headers32
lea ecx, [esp + 0x3e0]
push ecx
push 0x67
call fcn.0040fc22
push esi
push 0x438ed8
lea edx, [esp + 0x3e4]
push edx
mov ecx, edi
call fcn.00408593
push 0x1ff
lea eax, [esp + 0x6e1]
push esi
push eax
mov dword [0x4390d8], 0x1447
mov dword [0x43911c], esi
mov dword [0x4391f4], esi
mov dword [0x4391f0], 0x18
mov dword [0x4391f8], 0x800
mov dword [0x4391fc], 0x64
mov dword [0x439200], 0x28
mov dword [0x4391e0], esi
mov dword [0x4391e4], esi
mov dword [0x4391e8], esi
mov dword [0x4391ec], esi
mov dword [0x439204], esi
mov dword [0x439208], esi
mov byte [esp + 0x6e8], 0
call fcn.00416320
push str.rmtserver.ini
push 0x4388d8
push str._s_s
lea edx, [esp + 0x6f4]
call fcn.00404770
add esp, 0x18
lea ecx, [esp + 0x6dc]
call fcn.004058c0
mov ebx, eax
mov dword [esp + 0x1c], ebx
cmp ebx, esi
je 0x4029cc
push 0xffffffffffffffff
push str.localinfo:localport
push ebx
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x402554
mov eax, dword [0x4390d8]
jmp 0x40255f
push esi
push esi
push eax
call fcn.00415972
add esp, 0xc
push esi
push str.localinfo:localkey
push ebx
mov dword [0x4390d8], eax
call fcn.00405100
add esp, 0xc
mov edi, 0x4390dc
cmp eax, esi
jne 0x402585
mov byte [0x4390dc], 0
jmp 0x4025d1
cmp byte [eax], 0x20
mov ecx, eax
jne 0x402596
lea esp, [esp]
inc ecx
cmp byte [ecx], 0x20
je 0x402590
mov dword [esp + 0x24], ecx
mov ecx, eax
lea esi, [ecx + 1]
nop
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4025a0
sub ecx, esi
cmp byte [ecx + eax - 1], 0x20
lea eax, [ecx + eax - 1]
jne 0x4025ba
dec eax
cmp byte [eax], 0x20
je 0x4025b4
mov ecx, dword [esp + 0x24]
cmp ecx, eax
ja 0x4025cc
mov dl, byte [ecx]
mov byte [edi], dl
inc ecx
inc edi
cmp ecx, eax
jbe 0x4025c2
mov byte [edi], 0
xor esi, esi
push 0xffffffffffffffff
push str.p2pinfo:enable
push ebx
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4025ed
mov eax, dword [0x43911c]
jmp 0x4025f8
push esi
push esi
push eax
call fcn.00415972
add esp, 0xc
push esi
push str.p2pinfo:p2pname
push ebx
mov dword [0x43911c], eax
call fcn.00405100
add esp, 0xc
mov edi, 0x439120
cmp eax, esi
jne 0x40261e
mov byte [0x439120], 0
jmp 0x402665
cmp byte [eax], 0x20
mov ecx, eax
jne 0x40262b
inc ecx
cmp byte [ecx], 0x20
je 0x402625
mov ebx, ecx
mov ecx, eax
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x402632
sub ecx, esi
cmp byte [ecx + eax - 1], 0x20
lea eax, [ecx + eax - 1]
jne 0x40264c
dec eax
cmp byte [eax], 0x20
je 0x402646
mov ecx, ebx
cmp ebx, eax
ja 0x40265c
mov dl, byte [ecx]
mov byte [edi], dl
inc ecx
inc edi
cmp ecx, eax
jbe 0x402652
mov ebx, dword [esp + 0x1c]
mov byte [edi], 0
xor esi, esi
push esi
push str.p2pinfo:p2pkey
push ebx
call fcn.00405100
add esp, 0xc
mov edi, 0x439160
cmp eax, esi
jne 0x402686
mov byte [0x439160], 0
jmp 0x4026d3
cmp byte [eax], 0x20
mov ecx, eax
jne 0x402696
lea ecx, [ecx]
inc ecx
cmp byte [ecx], 0x20
je 0x402690
mov ebx, ecx
mov ecx, eax
lea esi, [ecx + 1]
lea ecx, [ecx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4026a0
sub ecx, esi
cmp byte [ecx + eax - 1], 0x20
lea eax, [ecx + eax - 1]
jne 0x4026ba
dec eax
cmp byte [eax], 0x20
je 0x4026b4
mov ecx, ebx
cmp ebx, eax
ja 0x4026ca
mov dl, byte [ecx]
mov byte [edi], dl
inc ecx
inc edi
cmp ecx, eax
jbe 0x4026c0
mov ebx, dword [esp + 0x1c]
mov byte [edi], 0
xor esi, esi
push esi
push str.p2pinfo:p2psn
push ebx
call fcn.00405100
add esp, 0xc
mov edi, 0x4391a0
cmp eax, esi
jne 0x4026f4
mov byte [0x4391a0], 0
jmp 0x402743
cmp byte [eax], 0x20
mov ecx, eax
jne 0x402706
jmp 0x402700
inc ecx
cmp byte [ecx], 0x20
je 0x402700
mov ebx, ecx
mov ecx, eax
lea esi, [ecx + 1]
lea ecx, [ecx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x402710
sub ecx, esi
cmp byte [ecx + eax - 1], 0x20
lea eax, [ecx + eax - 1]
jne 0x40272a
dec eax
cmp byte [eax], 0x20
je 0x402724
mov ecx, ebx
cmp ebx, eax
ja 0x40273a
mov dl, byte [ecx]
mov byte [edi], dl
inc ecx
inc edi
cmp ecx, eax
jbe 0x402730
mov ebx, dword [esp + 0x1c]
mov byte [edi], 0
xor esi, esi
push 0xffffffffffffffff
push str.screen:bitsperpixel
push ebx
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40275f
mov eax, dword [0x4391f0]
jmp 0x40276a
push esi
push esi
push eax
call fcn.00415972
add esp, 0xc
mov dword [0x4391f0], eax
cmp eax, 0x18
je 0x402783
cmp eax, 0x20
je 0x402783
mov dword [0x4391f0], 0x18
push 0xffffffffffffffff
push str.screen:forcebitblt
push ebx
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40279f
mov eax, dword [0x4391f4]
jmp 0x4027aa
push esi
push esi
push eax
call fcn.00415972
add esp, 0xc
push 0xffffffffffffffff
push str.screen:abrbitrate
push ebx
mov dword [0x4391f4], eax
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4027cb
mov eax, dword [0x4391f8]
jmp 0x4027d6
push esi
push esi
push eax
call fcn.00415972
add esp, 0xc
cmp eax, 0x2000
mov dword [0x4391f8], eax
jl 0x4027ee
mov dword [0x4391f8], 0x2000
jmp 0x4027ff
cmp eax, 0x200
jg 0x4027ff
mov dword [0x4391f8], 0x200
push 0xffffffffffffffff
push str.screen:minsleep
push ebx
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40281b
mov eax, dword [0x439200]
jmp 0x402826
push esi
push esi
push eax
call fcn.00415972
add esp, 0xc
cmp eax, 0x3e8
mov esi, eax
mov dword [0x439200], esi
jle 0x40283c
mov esi, 0x3e8
jmp 0x402842
test eax, eax
jge 0x402848
xor esi, esi
mov dword [0x439200], esi
push 0xffffffffffffffff
push str.screen:maxsleep
push ebx
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x402864
mov eax, dword [0x4391fc]
jmp 0x402877
push 0
push 0
push eax
call fcn.00415972
mov esi, dword [0x439200]
add esp, 0xc
cmp eax, 0x3e8
mov dword [0x4391fc], eax
jl 0x40288d
mov eax, 0x3e8
mov dword [0x4391fc], eax
cmp eax, esi
jg 0x402897
mov dword [0x4391fc], esi
push 0xffffffffffffffff
push str.privilege:cvenable
push ebx
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4028b3
mov eax, dword [0x4391e0]
jmp 0x4028c0
push 0
push 0
push eax
call fcn.00415972
add esp, 0xc
push 0xffffffffffffffff
push str.privilege:mouseenable
push ebx
mov dword [0x4391e0], eax
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4028e1
mov eax, dword [0x4391e4]
jmp 0x4028ee
push 0
push 0
push eax
call fcn.00415972
add esp, 0xc
push 0xffffffffffffffff
push str.privilege:keyboardenable
push ebx
mov dword [0x4391e4], eax
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40290f
mov eax, dword [0x4391e8]
jmp 0x40291c
push 0
push 0
push eax
call fcn.00415972
add esp, 0xc
push 0xffffffffffffffff
push str.privilege:audioclient
push ebx
mov dword [0x4391e8], eax
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40293d
mov eax, dword [0x4391ec]
jmp 0x40294a
push 0
push 0
push eax
call fcn.00415972
add esp, 0xc
push 0xffffffffffffffff
push str.encoder:disablegpu
push ebx
mov dword [0x4391ec], eax
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40296b
mov eax, dword [0x439208]
jmp 0x402978
push 0
push 0
push eax
call fcn.00415972
add esp, 0xc
push 0xffffffffffffffff
push str.encoder:encoder
push ebx
mov dword [0x439208], eax
call fcn.00405100
add esp, 0xc
cmp eax, 0xffffffff
jne 0x402999
mov eax, dword [0x439204]
jmp 0x4029a6
push 0
push 0
push eax
call fcn.00415972
add esp, 0xc
mov dword [0x439204], eax
test eax, eax
je 0x4029be
cmp eax, 1
je 0x4029be
mov dword [0x439204], 0
mov ebx, dword [esp + 0x1c]
call fcn.00405040
jmp 0x403005
mov eax, 4
push 0x1ff
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1e1]
push 0
push eax
mov dword [esp + 0x24], 0
mov byte [esp + 0x1e8], 0
call fcn.00416320
add esp, 0xc
mov ecx, 7
mov esi, str.SOFTWAREShareBit_rmtserver
lea edi, [esp + 0x1c0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x18]
push ecx
push 0xf003f
push 0
lea edx, [esp + 0x1cc]
push edx
push connect
mov dword [esp + 0x38], 1
mov dword [esp + 0x30], 0x200
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, 2
jne 0x402a6e
push 0
lea eax, [esp + 0x1c]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea ecx, [esp + 0x1dc]
push ecx
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x402ff6
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0
push str.localport
mov esi, 4
push edx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402aaf
mov eax, dword [esp + 0x14]
mov dword [0x4390d8], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x1e0]
push edx
lea eax, [esp + 0x2c]
push eax
push 0
push str.localkey
push ecx
mov dword [esp + 0x34], 0x200
call ebx
test eax, eax
jne 0x402b4c
cmp byte [esp + 0x1dc], 0x20
mov esi, 0x4390dc
lea eax, [esp + 0x1dc]
jne 0x402af7
inc eax
cmp byte [eax], 0x20
je 0x402af1
mov edx, eax
lea eax, [esp + 0x1dc]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402b03
sub eax, edi
cmp byte [esp + eax + 0x1db], 0x20
lea eax, [esp + eax + 0x1db]
jne 0x402b26
lea ecx, [ecx]
dec eax
cmp byte [eax], 0x20
je 0x402b20
cmp edx, eax
ja 0x402b44
sub eax, edx
inc eax
mov esi, eax
push esi
push edx
push 0x4390dc
call fcn.0041ba10
add esp, 0xc
lea esi, [esi + 0x4390dc]
mov byte [esi], 0
mov esi, 4
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0
push str.p2penable
push edx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402b7a
mov eax, dword [esp + 0x14]
mov dword [0x43911c], eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x1e0]
push edx
lea eax, [esp + 0x2c]
push eax
push 0
push str.p2pname
push ecx
mov dword [esp + 0x34], 0x200
call ebx
test eax, eax
jne 0x402c1c
cmp byte [esp + 0x1dc], 0x20
mov esi, 0x439120
lea eax, [esp + 0x1dc]
jne 0x402bc6
lea esp, [esp]
inc eax
cmp byte [eax], 0x20
je 0x402bc0
mov edx, eax
lea eax, [esp + 0x1dc]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402bd2
sub eax, edi
cmp byte [esp + eax + 0x1db], 0x20
lea eax, [esp + eax + 0x1db]
jne 0x402bf6
lea esp, [esp]
dec eax
cmp byte [eax], 0x20
je 0x402bf0
cmp edx, eax
ja 0x402c14
sub eax, edx
inc eax
mov esi, eax
push esi
push edx
push 0x439120
call fcn.0041ba10
add esp, 0xc
lea esi, [esi + 0x439120]
mov byte [esi], 0
mov esi, 4
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x1e0]
push eax
lea ecx, [esp + 0x2c]
push ecx
push 0
push str.p2pkey
push edx
mov dword [esp + 0x34], 0x200
call ebx
test eax, eax
jne 0x402cbc
cmp byte [esp + 0x1dc], 0x20
mov esi, 0x439160
lea eax, [esp + 0x1dc]
jne 0x402c66
mov edi, edi
inc eax
cmp byte [eax], 0x20
je 0x402c60
mov edx, eax
lea eax, [esp + 0x1dc]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402c72
sub eax, edi
cmp byte [esp + eax + 0x1db], 0x20
lea eax, [esp + eax + 0x1db]
jne 0x402c96
lea esp, [esp]
dec eax
cmp byte [eax], 0x20
je 0x402c90
cmp edx, eax
ja 0x402cb4
sub eax, edx
inc eax
mov esi, eax
push esi
push edx
push 0x439160
call fcn.0041ba10
add esp, 0xc
lea esi, [esi + 0x439160]
mov byte [esi], 0
mov esi, 4
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x1e0]
push ecx
lea edx, [esp + 0x2c]
push edx
push 0
push str.p2psn
push eax
mov dword [esp + 0x34], 0x200
call ebx
test eax, eax
jne 0x402d5c
cmp byte [esp + 0x1dc], 0x20
mov esi, 0x4391a0
lea eax, [esp + 0x1dc]
jne 0x402d06
mov edi, edi
inc eax
cmp byte [eax], 0x20
je 0x402d00
mov edx, eax
lea eax, [esp + 0x1dc]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402d12
sub eax, edi
cmp byte [esp + eax + 0x1db], 0x20
lea eax, [esp + eax + 0x1db]
jne 0x402d36
lea esp, [esp]
dec eax
cmp byte [eax], 0x20
je 0x402d30
cmp edx, eax
ja 0x402d54
sub eax, edx
inc eax
mov esi, eax
push esi
push edx
push 0x4391a0
call fcn.0041ba10
add esp, 0xc
lea esi, [esi + 0x4391a0]
mov byte [esi], 0
mov esi, 4
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x28]
push eax
xor edi, edi
push edi
push str.cvenable
push ecx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402d8c
mov edx, dword [esp + 0x14]
mov dword [0x4391e0], edx
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
push edi
push str.mouseenable
push eax
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402dba
mov ecx, dword [esp + 0x14]
mov dword [0x4391e4], ecx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
push edi
push str.keyboardenable
push edx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402de7
mov eax, dword [esp + 0x14]
mov dword [0x4391e8], eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x28]
push eax
push edi
push str.audioclient
push ecx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402e15
mov edx, dword [esp + 0x14]
mov dword [0x4391ec], edx
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
push edi
push str.bitsperpixel
push eax
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402e43
mov ecx, dword [esp + 0x14]
mov dword [0x4391f0], ecx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
push edi
push str.forcebitblt
push edx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402e70
mov eax, dword [esp + 0x14]
mov dword [0x4391f4], eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x28]
push eax
push edi
push str.abrbitrate
push ecx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402ea0
mov ecx, dword [esp + 0x14]
mov dword [0x4391f8], ecx
jmp 0x402ea6
mov ecx, dword [0x4391f8]
mov eax, dword [0x4391f0]
cmp eax, 0x18
je 0x402ebf
cmp eax, 0x20
je 0x402ebf
mov dword [0x4391f0], 0x18
cmp ecx, 0x2000
jl 0x402ed3
mov dword [0x4391f8], 0x2000
jmp 0x402ee5
cmp ecx, 0x200
jg 0x402ee5
mov dword [0x4391f8], 0x200
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
push ecx
push edi
push str.minsleep
push edx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402f14
mov eax, dword [esp + 0x14]
mov dword [0x439200], eax
jmp 0x402f19
mov eax, dword [0x439200]
cmp eax, 0x3e8
jle 0x402f2c
mov dword [0x439200], 0x3e8
jmp 0x402f36
cmp eax, edi
jge 0x402f36
mov dword [0x439200], edi
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
push edi
push str.maxsleep
push eax
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402f65
mov eax, dword [esp + 0x14]
mov dword [0x4391fc], eax
jmp 0x402f6a
mov eax, dword [0x4391fc]
mov ecx, dword [0x439200]
cmp eax, ecx
jge 0x402f7b
mov eax, ecx
mov dword [0x4391fc], eax
cmp eax, 0x3e8
jle 0x402f8c
mov dword [0x4391fc], 0x3e8
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x28]
push eax
push edi
push str.disablegpu
push ecx
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402fba
mov edx, dword [esp + 0x14]
mov dword [0x439208], edx
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x28]
push edx
push edi
push str.encoder
push eax
mov dword [esp + 0x28], esi
call ebx
test eax, eax
jne 0x402ff6
mov eax, dword [esp + 0x14]
mov dword [0x439204], eax
cmp eax, edi
je 0x402ff6
cmp eax, 1
je 0x402ff6
mov dword [0x439204], edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x403005
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [0x4390d8]
mov esi, dword [esp + 0x28]
push 0
push ecx
push 0x3ec
mov ecx, esi
call fcn.00406cd6
push 0x4390dc
push 0x401
mov ecx, esi
call fcn.00406d03
mov edx, dword [0x43911c]
push edx
push 0x3ed
mov ecx, esi
call fcn.00406c07
push 0x439120
push 0x3f0
mov ecx, esi
call fcn.00406d03
push 0x439160
push 0x3f1
mov ecx, esi
call fcn.00406d03
push 0x4391a0
push 0x3f2
mov ecx, esi
call fcn.00406d03
mov eax, dword [0x4391e0]
push eax
push 0x3fd
mov ecx, esi
call fcn.00406c07
mov ecx, dword [0x4391e4]
push ecx
push 0x3f3
mov ecx, esi
call fcn.00406c07
mov edx, dword [0x4391e8]
push edx
push 0x3f4
mov ecx, esi
call fcn.00406c07
mov eax, dword [0x4391ec]
push eax
push 0x407
mov ecx, esi
call fcn.00406c07
mov eax, dword [0x4391f0]
cmp eax, 0x10
jne 0x4030d0
push 0x3f5
jmp 0x4030e1
cmp eax, 0x20
jne 0x4030dc
push 0x3f7
jmp 0x4030e1
push 0x3f6
push 0x3f7
push 0x3f5
mov ecx, esi
call fcn.00406c2e
mov ecx, dword [0x4391f8]
push 1
push ecx
push 0x3f8
mov ecx, esi
call fcn.00406cd6
mov edx, dword [0x439200]
push 1
push edx
push 0x40e
mov ecx, esi
call fcn.00406cd6
mov eax, dword [0x4391fc]
push 1
push eax
push 0x40f
mov ecx, esi
call fcn.00406cd6
mov ecx, dword [0x439204]
add ecx, 0x40a
push ecx
push 0x40b
push 0x40a
mov ecx, esi
call fcn.00406c2e
mov eax, 1
mov ecx, dword [esp + 0x8e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x8d0]
xor ecx, esp
call fcn.00413f05
mov esp, ebp
pop ebp
ret