Function at 0x10232f90
Capabilities:
Check for time delay via queryperformancecounter
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2cc
mov eax, dword [0x11ad127c]
xor eax, esp
mov dword [esp + 0x2c8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [esp + 0x38], eax
mov ebx, ecx
mov eax, dword [ebp + 0x10]
push 0x9c
mov dword [esp + 0x24], eax
lea eax, [esp + 0x7c]
push 0
push eax
mov dword [esp + 0x24], ebx
mov byte [esp + 0x20], 0
call fcn.10425c00
mov esi, dword [ebx]
add esp, 0xc
cmp dword [0x11d0c744], 0
je 0x1023300e
cmp dword [esi + 4], 0x58544e43
jne 0x1023300e
mov eax, dword fs:[0x2c]
mov ecx, dword [0x11d0c5b8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi]
mov dword [ecx + 0x10], eax
mov dword [esi + 8], 0
jmp 0x10233010
xor esi, esi
lea eax, [esp + 0x24]
mov dword [ebx + 0x5780], 0
push eax
push 0x20119
push 0
push 0x1046f960
lea edi, [ebx + 0x5780]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1023306e
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 4
push eax
push edi
lea eax, [esp + 0x30]
push eax
push 0
push 0x1046f990
push dword [esp + 0x38]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x9c
mov word [esp + 0x9c], ax
mov eax, dword [esi + 0xf7c]
push 1
cmp dword [eax + 0x1838], 0x57ad
mov al, byte [ebx + 0xb0]
setne cl
and al, 0xbf
dec cl
and cl, 0x40
or cl, al
lea eax, [esp + 0x2c4]
mov byte [ebx + 0xb0], cl
mov ebx, dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push eax
call ebx
mov edi, dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
lea eax, [esp + 0x2c0]
push 0
push 0
push 1
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
lea eax, [esp + 0x2c0]
push 0x1046e370
push 0
mov dword [esp + 0x34], eax
lea eax, [esp + 0x30]
push 1
push eax
mov dword [esp + 0x38], 0xc
mov dword [esp + 0x40], 0
call esi
mov ecx, dword [esp + 0x18]
push 1
mov dword [ecx + 0xfc], eax
lea eax, [esp + 0x2c4]
push eax
call ebx
push 0
push 0
push 1
lea eax, [esp + 0x2cc]
push eax
call edi
push 0x1046e3b0
lea eax, [esp + 0x2c4]
mov dword [esp + 0x2c], 0xc
push 0
mov dword [esp + 0x34], eax
lea eax, [esp + 0x30]
push 1
push eax
mov dword [esp + 0x40], 0
call esi
mov ebx, dword [esp + 0x18]
lea ecx, [ebx + 0x53c8]
mov dword [ebx + 0x104], eax
call fcn.1021d170
mov cl, byte [ebx + 0xb3]
mov dword [ebx + 0x53c4], eax
and cl, 0xfd
mov eax, dword [ebx + 0x53c8]
mov byte [ebx + 0xb3], cl
test eax, eax
je 0x10233193
mov al, byte [eax + 0xbc]
and al, 1
add al, al
or al, cl
mov byte [ebx + 0xb3], al
mov byte [esp + 0x12], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [esp + 0x2c4]
push 0x10470080
push eax
call fcn.100086a0
add esp, 0xc
lea eax, [esp + 0x2c0]
push eax
push 0
push 0xf001f
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov esi, eax
test esi, esi
jne 0x102331f0
lea eax, [esp + 0x2c0]
push eax
push 0x28
push esi
push 4
push esi
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov esi, eax
mov byte [esp + 0x12], 1
test esi, esi
je 0x1023322a
push 0x28
push 0
push 0
push 0xf001f
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebx + 0x53d0], eax
test eax, eax
je 0x1023322a
cmp byte [esp + 0x12], 0
je 0x10233222
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movq qword [eax + 0x20], xmm0
mov eax, dword [ebx + 0x53d0]
inc dword [eax]
mov ecx, ebx
mov dword [ebx + 0x53cc], esi
call fcn.1022fec0
push 0
push dword [ebx + 0x53a4]
mov ecx, ebx
call fcn.1022ec70
mov cl, byte [ebx + 0xa8]
and cl, 0x7f
shl al, 7
or cl, al
mov byte [ebx + 0xa8], cl
mov ecx, ebx
call fcn.1022a900
push 0x30
lea edi, [ebx + 0x4a64]
mov byte [esp + 0x17], 0
push 0
push edi
call fcn.10425c00
add esp, 0xc
mov dword [ebx + 0x4ab4], 0
test byte [ebx + 0xb0], 4
je 0x102333c0
push dword [ebx + 0x75c]
lea ecx, [ebx + 0x9b8]
push 0x1046f4e0
call fcn.102008e0
push 0x1046de20
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
call fcn.101fedc0
test al, al
je 0x102333ba
test esi, esi
jne 0x102332dc
call fcn.101ff770
push 0x1046de20
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
je 0x102332ea
push 0x1046de30
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x102333ba
call edi
test eax, eax
je 0x102333ba
mov eax, dword [eax + 0x14]
call eax
cmp eax, 1
jne 0x102333ba
cmp dword [ebx + 0x59d8], 0
jne 0x1023331a
mov ecx, ebx
call fcn.10203390
mov al, byte [ebx + 0xa8]
lea edi, [ebx + 0x4a64]
shr al, 7
movzx eax, al
push eax
lea eax, [ebx + 0x754]
push eax
push edi
push dword [ebx + 0x59dc]
push dword [ebx + 0x59d8]
call fcn.10202310
test eax, eax
setne byte [esp + 0x12]
test eax, eax
je 0x1023335d
mov eax, dword [ebx + 0x4a74]
mov dword [ebx + 0x4ab4], eax
push 0x24
push dword [ebx + 0x59d8]
call fcn.1045088a
mov al, byte [esp + 0x1a]
add esp, 8
mov dword [ebx + 0x59d8], 0
mov dword [ebx + 0x59dc], 0
mov byte [esp + 0x13], al
test al, al
je 0x102333c0
test byte [ebx + 0xab], 2
mov byte [esp + 0x13], al
je 0x102333c0
test dword [ebx + 0x4a74], 0x400000
mov byte [esp + 0x13], al
je 0x102333c0
mov dword [ebx + 0x4a68], 1
mov byte [esp + 0x13], al
jmp 0x102333c0
lea edi, [ebx + 0x4a64]
mov ecx, ebx
call fcn.10231d30
mov ecx, ebx
call fcn.1022acc0
test al, al
je 0x102341de
cmp dword [ebx + 0x4a70], 0x9000
jne 0x10233414
test dword [ebx + 0x4aa8], 0x400
je 0x10233414
mov al, byte [ebx + 0xaa]
test al, 8
jne 0x10233408
cmp dword [ebx + 0x4a74], 0x4000
jne 0x10233408
xor cl, cl
jmp 0x1023340a
mov cl, 8
and al, 0xf7
or al, cl
mov byte [ebx + 0xaa], al
inc dword [0x11d0d8f0]
cmp dword [ebx + 0x5724], 0
jne 0x10233438
push 0x1046f9b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebx + 0x5724], eax
mov ecx, ebx
call fcn.1021e060
mov ecx, ebx
call fcn.1021ea60
mov ecx, ebx
mov dword [esp + 0x18], 0
call fcn.1021e3a0
test al, al
je 0x10233479
lea eax, [esp + 0x18]
push eax
push 0x1046d2c0
lea ecx, [ebx + 0x9b8]
call fcn.10200690
lea ecx, [ebx + 0x9b8]
call fcn.102000a0
cmp dword [esp + 0x18], 0
sete byte [esp + 0x1c]
cmp dword [edi], 0
je 0x1023354b
test dword [ebx + 0x4ab4], 0x80000
je 0x1023354b
push 0x105
mov byte [esp + 0x16], 1
call fcn.10450898
add esp, 4
mov edi, eax
push 0x105
call fcn.10450898
add esp, 4
mov esi, eax
test edi, edi
je 0x1023352d
test esi, esi
je 0x10233524
mov edx, 0x104
mov ecx, esi
call fcn.101fe5a0
push 0x104
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
call fcn.1043a9cb
add esp, 4
push esi
call fcn.1043a9cb
add esp, 4
push 0x1046f9d0
push edi
call fcn.10425570
add esp, 8
test eax, eax
je 0x1023351f
push esi
push edi
call fcn.10425570
add esp, 8
mov byte [esp + 0x12], 0
test eax, eax
jne 0x10233524
mov byte [esp + 0x12], 1
push edi
call fcn.10450877
add esp, 4
test esi, esi
je 0x1023353a
push esi
call fcn.10450877
add esp, 4
cmp byte [esp + 0x12], 0
jne 0x102341de
lea edi, [ebx + 0x4a64]
cmp byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
je 0x10233563
cmp dword [ebx + 0x4a68], 0
setne byte [esp + 0x12]
mov edx, dword [ebx + 0x6c]
and edx, 0xe0060000
mov dword [ebx + 0x3f90], 0
cmp dword [edi], 0
mov dword [ebx + 0x6c], edx
je 0x102335b0
mov ecx, dword [ebx + 0x4ab4]
mov eax, ecx
and eax, 0x7000000
cmp eax, 0x7000000
jne 0x1023359a
or edx, 0x60040000
jmp 0x102335bf
and ecx, 0x3000000
cmp ecx, 0x3000000
jne 0x102335b0
or edx, 0x40040000
jmp 0x102335bf
test byte [ebx + 0x4aa8], 0x80
je 0x102335c2
or edx, 0x80020000
mov dword [ebx + 0x6c], edx
test edx, 0x20000
jne 0x10233614
mov eax, edx
and eax, 0x40040000
cmp eax, 0x40040000
setne cl
and edx, 0x20040000
cmp edx, 0x20040000
setne al
test al, cl
je 0x10233614
mov eax, dword [ebx + 0x53a8]
cmp eax, 0xffffffff
je 0x10233610
push eax
push 2
push ebx
lea ecx, [ebx + 0x4a5c]
call fcn.102279a0
mov dword [ebx + 0x4a60], eax
test eax, eax
jne 0x10233614
xor cl, cl
jmp 0x10233616
mov cl, 1
cmp byte [esp + 0x13], 0
je 0x10233666
cmp dword [0x11c4d988], 0x10234530
jne 0x10233690
cmp byte [esp + 0x12], 0
je 0x1023365b
mov edx, dword [ebx + 0x4a70]
mov eax, edx
and eax, 0xf0000
cmp eax, 0x20000
jne 0x1023364c
test edx, 0xf00dffff
je 0x10233690
cmp eax, 0x40000
jne 0x1023365b
test edx, 0xf00bffff
je 0x10233690
test cl, cl
jne 0x10233690
mov byte [esp + 0x14], 1
jmp 0x10233690
cmp dword [0x11c4d988], 0x10234530
jne 0x10233690
test cl, cl
jne 0x10233690
mov eax, dword [esp + 0x14]
mov ecx, 1
cmp byte [ebx + 0xa8], 0
movzx eax, al
cmovge eax, ecx
mov dword [esp + 0x14], eax
mov al, byte [ebx + 0xa4]
mov ecx, dword [esp + 0x14]
and al, 0xfb
mov esi, dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
shl cl, 2
or al, cl
mov dword [esp + 0xf0], 0
mov byte [ebx + 0xa4], al
mov eax, dword [ebx + 0x53c8]
test eax, eax
je 0x102336d0
mov eax, dword [eax + 8]
mov dword [esp + 0xf0], eax
test eax, eax
jne 0x102336f3
lea eax, [esp + 0x78]
push eax
push 0xffffffffffffffff
push 0
call esi
test eax, eax
je 0x102336f3
mov ecx, dword [ebx + 0x53c8]
test ecx, ecx
je 0x102336f3
mov eax, dword [esp + 0xf0]
mov dword [ecx + 8], eax
lea eax, [esp + 0x78]
push eax
push 0xffffffffffffffff
push 0
call esi
cmp dword [esp + 0xac], 0
jne 0x102341de
mov ecx, dword [ebx + 0x4a70]
mov eax, ecx
and eax, 0xf0000
cmp eax, 0x30000
jne 0x10233785
test ecx, 0xf00cffff
jne 0x10233785
lea eax, [ebx + 0xecc]
push 0x1046f9e0
push eax
call fcn.10425570
add esp, 8
test eax, eax
je 0x10233785
push 0
push 0x1046c220
lea ecx, [ebx + 0x9b8]
mov dword [esp + 0x20], 0
call fcn.101ffd90
lea eax, [esp + 0x18]
push eax
push 0x1046f9f0
lea ecx, [ebx + 0x9b8]
call fcn.10200690
lea ecx, [ebx + 0x9b8]
call fcn.102000a0
cmp dword [esp + 0x18], 0
je 0x102341de
mov eax, dword [esp + 0x38]
mov ecx, ebx
mov eax, dword [eax + 0xf7c]
mov dword [eax + 0xb3c], ebx
call fcn.1022a440
test byte [ebx + 0xab], 0x10
je 0x10233810
push 0x1046de20
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
call fcn.101fedc0
test al, al
je 0x102341de
test esi, esi
jne 0x102337db
call fcn.101ff770
push 0x1046de20
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
je 0x102337e9
push 0x1046de40
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x102341de
call edi
mov esi, eax
test esi, esi
je 0x102341de
mov ecx, dword [esi]
call ecx
cmp eax, 2
jl 0x102341de
mov dword [ebx + 0x5758], esi
push dword [esp + 0x1c]
mov edx, dword [ebp + 0xc]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
call fcn.1022c980
test byte [ebx + 0xa4], 1
je 0x10233834
mov ecx, ebx
call fcn.10206310
mov eax, dword [ebx]
mov edi, dword fs:[0x2c]
mov byte [ebx + 0x5731], 0
mov eax, dword [eax + 0xf7c]
cmp byte [eax + 0xb38], 0
mov eax, dword [0x11d0c5b8]
jl 0x102338ac
mov eax, dword [edi + eax*4]
mov dword [0x11d0d828], 1
mov edi, dword [eax + 0x10]
cmp byte [edi + 0x804c], 0
je 0x102338a0
mov esi, dword [edi + 0x7a68]
mov esi, dword [esi + 8]
mov eax, dword [esi + 0x20]
add eax, 8
cmp eax, dword [esi + 0x24]
jb 0x10233891
push 2
mov ecx, esi
call fcn.101e4a10
mov eax, dword [esi + 0x20]
mov dword [eax], 0x8000065a
add eax, 4
mov dword [esi + 0x20], eax
mov byte [edi + 0x804c], 0
jmp 0x10233b98
mov edi, dword [edi + eax*4]
mov cl, byte [ebx + 0xb1]
and cl, 0xfd
mov byte [ebx + 0xb1], cl
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x162c]
shr eax, 0xf
test al, 1
je 0x102338da
or cl, 2
mov byte [ebx + 0xb1], cl
push 0x105
mov dword [esp + 0x2d0], 0
mov dword [esp + 0x2c4], 0
mov dword [esp + 0x2c8], 0
call fcn.10450898
add esp, 4
mov dword [esp + 0x2c8], eax
test eax, eax
je 0x10233916
mov byte [eax], 0
inc dword [0x11d0d904]
lea eax, [esp + 0x118]
mov edx, 0x1046c220
mov dword [esp + 0x14], 1
mov esi, eax
mov cl, 0x53
sub edx, esi
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10233936
mov byte [eax], cl
lea eax, [esp + 0x118]
push 0
push eax
lea ecx, [esp + 0x2c8]
call fcn.101ffd90
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x20], 4
test eax, eax
jne 0x10233999
cmp dword [esp + 0x2c0], eax
jne 0x10233999
mov ecx, dword [esp + 0x2cc]
test ecx, ecx
je 0x10233a20
lea eax, [esp + 0x14]
push eax
push 0x1046fa00
call fcn.10200690
jmp 0x10233a20
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
push ecx
push 0
push 0x1046fa00
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
sub eax, 0
je 0x10233a18
mov ecx, dword [esp + 0x2c0]
test ecx, ecx
je 0x10233976
cmp byte [0x11d213c0], 0
je 0x102339fe
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
push 0x1046fa00
call fcn.100f6950
test al, al
je 0x10233a20
cmp dword [esp + 0x1c], 0
jne 0x10233a20
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x1c]
call fcn.100f76e0
jmp 0x10233a20
mov edx, 0x1046fa00
call fcn.101ff260
test eax, eax
je 0x10233a20
cmp word [eax + 2], 4
jne 0x10233a20
mov eax, dword [eax + 6]
jmp 0x10233a1c
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x2c0]
call fcn.102000a0
cmp dword [esp + 0x14], 0
jne 0x10233a40
cmp byte [ebx + 0x5730], 0
je 0x10233ac8
cmp dword [0x11d0c744], 0
mov esi, dword [ebx]
je 0x10233a65
cmp dword [esi + 4], 0x58544e43
jne 0x10233a65
mov eax, dword [esi]
mov dword [edi + 0x10], eax
mov dword [esi + 8], 0
jmp 0x10233a67
xor esi, esi
cmp dword [esi + 0x12dc], 0
jne 0x10233aae
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx + 0x140]
and eax, 0x18000000
cmp eax, 0x18000000
jne 0x10233aa5
mov eax, dword [ecx + 0x162c]
shr eax, 0xf
test al, 1
jne 0x10233aa5
test byte [ebx + 0xa8], 0x10
jne 0x10233aa5
mov ecx, esi
call fcn.101fc5c0
cmp dword [esi + 0x12dc], 0
je 0x10233ac8
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x162c]
shr eax, 0xf
test al, 1
jne 0x10233ac8
mov byte [ebx + 0x5731], 1
cmp dword [esp + 0x2c4], 0
je 0x10233ade
lea ecx, [esp + 0x2c0]
call fcn.102000a0
mov eax, dword [0x11d0d904]
dec eax
mov dword [0x11d0d904], eax
test eax, eax
jg 0x10233b67
mov eax, dword [0x11d0d920]
mov dword [0x11d0d920], 0
test eax, eax
je 0x10233b09
push eax
call fcn.10450877
add esp, 4
mov eax, dword [0x11d0d918]
mov dword [0x11d0d918], 0
test eax, eax
je 0x10233b25
push eax
call fcn.10450877
add esp, 4
mov eax, dword [0x11d0d91c]
mov dword [0x11d0d91c], 0
test eax, eax
je 0x10233b41
push eax
call fcn.10450877
add esp, 4
mov eax, dword [0x11d0d914]
mov dword [0x11d0d914], 0
test eax, eax
je 0x10233b5d
push eax
call fcn.10450877
add esp, 4
mov dword [0x11d0d904], 0
mov eax, dword [esp + 0x2c8]
test eax, eax
je 0x10233b7b
push eax
call fcn.10450877
add esp, 4
mov esi, dword [esp + 0x2cc]
test esi, esi
je 0x10233b98
mov ecx, esi
call fcn.101ffa20
push 0x10
push esi
call fcn.1045088a
add esp, 8
cmp dword [ebx + 0x4a64], 0
je 0x10233c08
mov ecx, dword [ebx + 0x4ab4]
test ecx, 0x10000
je 0x10233bc1
mov al, byte [ebx + 0xae]
test al, 0x10
jne 0x10233bc1
or al, 8
mov byte [ebx + 0xae], al
test ecx, 0x50000
je 0x10233c08
mov esi, dword [ebx + 0xec]
lea edi, [ebx + 0xec]
mov dword [esp + 0x14], edi
cmp esi, 1
jne 0x10233be5
call fcn.1022fe70
jmp 0x10233be7
xor eax, eax
mov edx, dword [ebx + 0x53ac]
lea ecx, [ebx + 0x53ac]
mov dword [ebx + 0x53b4], eax
test edx, edx
jne 0x10233c01
mov dword [ecx], eax
mov edx, eax
cmp edx, 1
jne 0x10233c2a
jmp 0x10233c24
mov esi, dword [ebx + 0xec]
lea eax, [ebx + 0xec]
lea ecx, [ebx + 0x53ac]
mov dword [esp + 0x14], eax
mov dword [ecx], 1
mov dword [ecx], 0
cmp byte [0x11d0d1ea], 0
jne 0x10233d3e
cmp esi, 1
jne 0x10233d3e
cmp dword [ebx + 0x53a8], 0xffffffff
je 0x10233d3e
push 3
mov ecx, ebx
call fcn.102069c0
mov eax, dword [ebx + 0x53c8]
test eax, eax
je 0x10233c6d
test dword [eax + 4], 0x100
jne 0x10233d3e
cmp dword [ebx + 0x5404], 1
jne 0x10233c9b
push 4
mov ecx, ebx
call fcn.102069c0
cmp eax, 0x20000000
je 0x10233c8d
mov ecx, ebx
call fcn.102324b0
push 1
mov ecx, ebx
call fcn.10232590
jmp 0x10233d3e
lea eax, [esp + 0x118]
mov dword [esp + 0x18], 0
mov edx, 0x1046f900
mov esi, eax
mov cl, 0x53
sub edx, esi
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [eax + edx]
test cl, cl
jne 0x10233cb5
mov byte [eax], cl
lea eax, [esp + 0x118]
push 0
push eax
lea ecx, [ebx + 0x9b8]
mov dword [ebx + 0x5408], 0
call fcn.101ffd90
test al, al
je 0x10233d14
lea eax, [esp + 0x18]
push eax
push 0x1046f940
lea ecx, [ebx + 0x9b8]
call fcn.10200690
test al, al
je 0x10233d09
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x5408], eax
lea ecx, [ebx + 0x9b8]
call fcn.102000a0
cmp dword [ebx + 0x5408], 0
jbe 0x10233d35
mov ecx, ebx
call fcn.10232860
mov ecx, ebx
mov dword [ebx + 0x5408], 0
call fcn.1021d240
push 3
mov ecx, ebx
call fcn.102069c0
cmp byte [esp + 0x13], 0
je 0x10233d7e
test byte [ebx + 0xae], 0x20
jne 0x10233d7e
test dword [ebx + 0x4ab4], 0x20000
je 0x10233d7e
mov eax, dword [ebx + 0x53c8]
test eax, eax
je 0x10233d7e
test byte [eax + 4], 0x80
jne 0x10233d7e
mov ecx, ebx
call fcn.10232ae0
mov eax, dword [ebx + 0x53c8]
or dword [eax + 4], 0x80
mov ecx, ebx
call fcn.1022b130
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, 0x1046fa10
mov dword [ebx + 0x53c0], eax
call fcn.10202080
mov dword [ebx + 0x1394], eax
mov dword [ebx + 0x1398], 0
test eax, eax
je 0x10233dc1
push 0x1046fa20
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 0x1398], eax
push 0x105
call fcn.10450898
mov esi, eax
add esp, 4
test esi, esi
je 0x10233dd7
mov byte [esi], 0
mov eax, dword [0x11d0d904]
and byte [ebx + 0xad], 0xbf
mov dword [ebx + 0x4a48], 0
mov dword [ebx + 0x4a4c], 0
mov dword [0x11d0d904], eax
test eax, eax
jg 0x10233e7a
mov eax, dword [0x11d0d920]
mov dword [0x11d0d920], 0
test eax, eax
je 0x10233e1c
push eax
call fcn.10450877
add esp, 4
mov eax, dword [0x11d0d918]
mov dword [0x11d0d918], 0
test eax, eax
je 0x10233e38
push eax
call fcn.10450877
add esp, 4
mov eax, dword [0x11d0d91c]
mov dword [0x11d0d91c], 0
test eax, eax
je 0x10233e54
push eax
call fcn.10450877
add esp, 4
mov eax, dword [0x11d0d914]
mov dword [0x11d0d914], 0
test eax, eax
je 0x10233e70
push eax
call fcn.10450877
add esp, 4
mov dword [0x11d0d904], 0
test esi, esi
je 0x10233e87
push esi
call fcn.10450877
add esp, 4
cmp dword [0x11d0c744], 0
mov edi, dword [ebx]
je 0x10233ebb
cmp dword [edi + 4], 0x58544e43
jne 0x10233ebb
mov eax, dword [0x11d0c5b8]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edi]
mov dword [ecx + 0x10], eax
mov dword [edi + 8], 0
jmp 0x10233ebd
xor edi, edi
xor ecx, ecx
xorps xmm0, xmm0
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x2d0], ecx
and ecx, 0xfffffffe
mov eax, dword [edi + 0x11cc]
mov dword [esp + 0x2c0], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x2c4], ecx
xor ecx, ecx
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2cc], 0x3c
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x58], xmm0
movlpd qword [esp + 0x60], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x4c], 0x7000126
mov dword [esp + 0x3c], 0x4e564441
mov dword [esp + 0x40], 0x10002
mov dword [esp + 0x48], 0x4e564458
mov dword [esp + 0x44], 0x3c
mov esi, dword [edi + 0x10b4]
test esi, esi
je 0x10233fec
mov eax, dword [edi]
test eax, eax
je 0x10233fec
mov edx, dword [eax + 0xbe28]
test edx, edx
je 0x10233fec
mov edx, dword [edx + 0x14]
test edx, edx
je 0x10233fec
cmp dword [eax + 0xd45c], 1
jne 0x10233fdf
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [edi + 0x1428]
push eax
call esi
mov ecx, dword [edi + 0x10b4]
lea eax, [esp + 0x2c0]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0xbe28]
push dword [eax + 0x14]
call ecx
mov dword [esp + 0x20], eax
xorps xmm0, xmm0
lea eax, [esp + 0x28]
movlpd qword [esp + 0x28], xmm0
push eax
call esi
mov ecx, dword [esp + 0x28]
sub ecx, dword [edi + 0x1428]
mov eax, dword [esp + 0x2c]
sbb eax, dword [edi + 0x142c]
add dword [edi + 0x1420], ecx
mov ecx, dword [esp + 0x20]
adc dword [edi + 0x1424], eax
jmp 0x10233fec
lea eax, [esp + 0x2c0]
push eax
push edx
call esi
mov ecx, eax
xor eax, eax
mov dword [ebx + 0x1238], eax
mov word [ebx + 0x123c], ax
test ecx, ecx
js 0x1023400c
cmp dword [esp + 0x74], eax
setne al
mov byte [ebx + 0x1238], al
cmp byte [ebx + 0x1238], 0
je 0x10234024
lea eax, [ebx + 0x1239]
push eax
push ecx
mov ecx, ebx
call fcn.10223500
mov eax, dword [ebx]
mov eax, dword [eax + 0xf7c]
cmp byte [eax + 0xb38], 0
jge 0x10234053
or dword [ebx + 0x4644], 0x10000
mov dword [ebx + 0x4750], 0xffffffff
mov dword [ebx + 0x4754], 0x7fffffff
test byte [ebx + 0xa8], 0x10
je 0x10234065
test byte [ebx + 0xaa], 8
je 0x102340d0
test byte [ebx + 0xac], 2
je 0x102340d0
cmp byte [ebx + 0x573c], 0
jne 0x102340d0
test byte [ebx + 0xa4], 1
jne 0x102340d0
mov eax, dword [ebx + 0xc8]
shr eax, 1
test al, 1
je 0x10234095
test byte [ebx + 0xb0], 0x40
jne 0x102340d0
cmp dword [ebx + 0x53e8], 2
jne 0x102340d0
mov ecx, ebx
call fcn.10222de0
and byte [ebx + 0xac], 0xfd
cmp byte [ebx + 0x1238], 0
mov dword [ebx + 0x9cc], 1
mov dword [ebx + 0x9d0], 1
je 0x102340d0
mov byte [ebx + 0x123e], 1
mov eax, dword [esp + 0x14]
cmp dword [eax], 1
jne 0x102340e7
mov eax, dword [ebx + 0x53c8]
test eax, eax
je 0x102340e7
or dword [eax + 4], 0x20
xor edi, edi
mov dword [esp + 0x118], 0x1a8
push edi
lea eax, [esp + 0x11c]
xor esi, esi
push eax
push edi
push edi
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
je 0x10234143
nop dword [eax + eax]
test byte [esp + 0x1bc], 1
lea eax, [esi + 1]
push 0
cmove eax, esi
mov dword [esp + 0x11c], 0x1a8
mov esi, eax
inc edi
lea eax, [esp + 0x11c]
push eax
push edi
push 0
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
jne 0x10234110
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x5750], esi
cmp dword [eax], 0x20
jne 0x10234198
push 0x1046de20
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
call fcn.101fedc0
test al, al
je 0x10234192
test esi, esi
jne 0x10234184
call fcn.101ff770
push 0x1046de20
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
je 0x10234192
push 0x1046fa30
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
mov dword [ebx + 0x577c], edi
mov eax, dword [ebx]
mov eax, dword [eax + 0xf7c]
cmp byte [eax + 0xb38], 0
jge 0x102341c5
mov eax, dword [0x11d0c5b8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x10]
and byte [eax + 0xd29f], 0xbf
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2c8]
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2d4]
pop edi
pop esi
mov eax, dword [eax + 0xf7c]
pop ebx
xor ecx, esp
mov dword [eax + 0xb3c], 0
xor al, al
call fcn.1045066c
mov esp, ebp
pop ebp
ret 0xc