Function at 0x41c720
Capabilities:
Check os version
Contain obfuscated stackstrings
Get number of processors
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ca111
mov eax, dword fs:[0]
push eax
sub esp, 0x6ac
mov eax, dword [0x63fbf0]
xor eax, esp
mov dword [esp + 0x6a4], eax
push ebx
push edi
mov eax, dword [0x63fbf0]
xor eax, esp
push eax
lea eax, [esp + 0x6b8]
mov dword fs:[0], eax
mov ecx, dword [0x64d974]
call fcn.0043efa0
test dword [0x64dbc8], 0x40000000
mov dword [esp + 0x30], eax
mov ecx, esi
je 0x41c783
push 0x64d868
jmp 0x41c787
add eax, 0x18
push eax
call fcn.00454eba
mov eax, dword [esi + 0x20]
push 0xffffffffffffffec
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [esi + 0x20]
or eax, 0x80000
push eax
push 0xffffffffffffffec
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov edx, dword [0x64dbac]
mov eax, dword [esi + 0x20]
push 1
push 0
push edx
push eax
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
mov edx, dword [0x644d3c]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
xor eax, eax
push eax
lea ecx, [esp + 0x50]
push ecx
push eax
push 0x30
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
push 4
sub eax, edi
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
push ebx
sub eax, ebx
cdq
sub eax, edx
mov edx, dword [esi + 0xa4]
push edi
mov edi, dword [edx + 0x68]
mov edx, dword [edx + 0x64]
sar eax, 1
add eax, dword [esp + 0x5c]
sar ecx, 1
add ecx, dword [esp + 0x58]
add edi, eax
push edi
add edx, ecx
push edx
push 0
mov ecx, esi
call fcn.0045516d
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x31
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.0045c750
push 0x3f6
mov ecx, esi
mov edi, eax
call fcn.00454da4
xor ebx, ebx
test edi, edi
je 0x41c870
mov edi, dword [edi + 4]
mov ecx, dword [eax + 0x20]
push 1
push edi
push 0x30
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x206
lea eax, [esp + 0x9a]
xor edx, edx
push ebx
push eax
mov word [esp + 0xa0], dx
call fcn.0054b8b0
add esp, 0xc
test dword [0x64dbc8], 0x40000000
lea edx, [esp + 0x94]
je 0x41c8d6
mov edi, dword [esp + 0x30]
add edi, 0x18
push edi
push 0x619c2c
call fcn.004098c0
push 0x64d868
push 0x20
push edi
call fcn.00545549
add esp, 0x14
jmp 0x41c8f0
mov ecx, dword [esp + 0x30]
push 0x134dacd
add ecx, 0x18
push ecx
push str._s_Ver:_d
call fcn.004098c0
add esp, 0xc
push 0x3f6
mov ecx, esi
call fcn.00454da4
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.0045c47c
mov edi, eax
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x40]
call fcn.0043ab40
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x34]
push edx
push ecx
push eax
mov eax, dword [edi + 8]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c957
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x20]
push ecx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x5c]
push eax
push ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
push 4
push edx
mov edx, dword [esp + 0x64]
push eax
add ecx, 0xffffffe7
push ecx
add edx, 0x29
push edx
push ebx
push 0x3f6
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
lea eax, [esp + 0x94]
push eax
push 0x3f6
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454eba
test dword [0x64dbc8], 0x40000000
je 0x41c9ef
push ebx
push 0x3f6
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
mov edx, dword [esi + 0xac]
mov edi, dword [sym.imp.GDI32.dll_GetObjectW]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0xa4]
push 4
push eax
mov eax, dword [esp + 0x20]
cdq
idiv dword [ecx + 0x94]
mov edx, dword [ecx + 0xbc]
push eax
mov eax, dword [ecx + 0xb8]
push edx
push eax
push ebx
push 1
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push ebx
push 1
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
mov edx, dword [esi + 0xb4]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0xa4]
push 4
push eax
mov eax, dword [esp + 0x20]
cdq
idiv dword [ecx + 0xc0]
mov edx, dword [ecx + 0xe8]
push eax
mov eax, dword [ecx + 0xe4]
push edx
push eax
push ebx
push 2
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
mov edx, dword [esi + 0xbc]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0xa4]
push 4
push eax
mov eax, dword [esp + 0x20]
cdq
idiv dword [ecx + 0xc]
mov edx, dword [ecx + 0x34]
push eax
mov eax, dword [ecx + 0x30]
push edx
push eax
push ebx
push 0x3e9
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0x3ea
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41cb3a
mov edx, dword [esi + 0xcc]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0xa4]
push 4
push eax
mov eax, dword [esp + 0x20]
cdq
idiv dword [ecx + 0x158]
mov edx, dword [ecx + 0x180]
push eax
mov eax, dword [ecx + 0x17c]
push edx
push eax
push ebx
push 0x3ea
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
mov eax, dword [esi + 0xa4]
mov ecx, dword [eax + 0xf8]
mov edx, dword [eax + 0xf4]
push 4
push ecx
mov ecx, dword [eax + 0xf0]
push edx
mov edx, dword [eax + 0xec]
push ecx
push edx
push ebx
push 0x3eb
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0x61c030
push 0x3eb
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454eba
mov ecx, dword [esi + 0xd4]
lea eax, [esp + 0x14]
push eax
push 0x18
push ecx
call edi
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0xa4]
mov edx, dword [0x644d3c]
push ebx
mov dword [0x64d97c], ecx
mov ebx, dword [eax + 0x12c]
mov eax, dword [eax + 0x128]
push ebx
push eax
push edx
call fcn.00431740
add esp, 0x10
push eax
lea ecx, [esi + 0xe0]
call fcn.0045c764
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x41cc13
cmp dword [0x64d980], 0
je 0x41cc13
push 0x3ec
mov ecx, esi
mov dword [0x64d980], 0
call fcn.00454da4
mov edx, dword [eax + 0x20]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x18]
push 4
push ecx
mov ecx, dword [eax + 0x12c]
push edx
mov edx, dword [eax + 0x128]
push ecx
push edx
push 0
push 0x3ec
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0x619a14
push 0x3ec
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454eba
push 0x3ec
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454e2e
push 0x3ec
mov ecx, esi
mov ebx, eax
call fcn.00454da4
test eax, eax
je 0x41cc88
mov eax, dword [eax + 0x20]
or ebx, 0xd
push ebx
mov ebx, dword [sym.imp.USER32.dll_SetWindowLongW]
push 0xfffffffffffffff0
push eax
call ebx
mov ecx, dword [esi + 0xdc]
lea eax, [esp + 0x14]
push eax
push 0x18
push ecx
call edi
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0xa4]
mov edx, dword [0x644d3c]
push edi
mov dword [0x64d984], ecx
mov edi, dword [eax + 0x154]
mov eax, dword [eax + 0x150]
push edi
push eax
push edx
call fcn.00431740
add esp, 0x10
push eax
lea ecx, [esi + 0xe8]
call fcn.0045c764
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x41cd20
cmp dword [0x64d988], 0
je 0x41cd20
push 0x3ed
mov ecx, esi
mov dword [0x64d988], 0
call fcn.00454da4
mov edx, dword [eax + 0x20]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x18]
push 4
push ecx
mov ecx, dword [eax + 0x154]
push edx
mov edx, dword [eax + 0x150]
push ecx
push edx
push 0
push 0x3ed
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0x619a14
push 0x3ed
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454eba
push 0x3ed
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454e2e
push 0x3ed
mov ecx, esi
mov edi, eax
call fcn.00454da4
test eax, eax
je 0x41cd95
mov eax, dword [eax + 0x20]
or edi, 0xd
push edi
push 0xfffffffffffffff0
push eax
call ebx
lea eax, [esi + 0xf4]
mov ebx, 0x3ee
mov edi, 0xaf4
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], 8
lea ebx, [ebx]
push ebx
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41ce1b
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xa4]
push 4
push edx
cdq
idiv dword [ecx + edi - 0x960]
push eax
mov eax, dword [ecx + edi]
mov ecx, dword [ecx + edi - 0x20]
push eax
push ecx
push 0
push ebx
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
add dword [esp + 0x10], 8
add edi, 4
inc ebx
dec dword [esp + 0x3c]
jne 0x41cdc0
push 0
push 0x61c5b8
lea ecx, [esi + 0x19c]
push 0x64
call fcn.0045e987
mov edx, dword [esp + 0x30]
add edx, 0xc6a
mov edi, 0x3fe
mov dword [esp + 0x3c], 0xb74
mov dword [esp + 0x2c], edx
lea esp, [esp]
mov eax, dword [esp + 0x30]
cmp byte [eax + edi + 0x864], 0
mov ecx, esi
je 0x41cfea
push edi
call fcn.00454da4
lea ecx, [esi + 0x19c]
test ecx, ecx
je 0x41ce87
mov ecx, dword [ecx + 4]
push 1
push ecx
mov ecx, dword [eax + 0x20]
push 0x30
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
mov ecx, esi
call fcn.00454da4
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.0045c47c
mov dword [esp + 0x34], eax
call fcn.0045590c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x41d4de
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x6c0], 0
je 0x41cf12
mov eax, dword [esp + 0x2c]
test eax, 0xffff0000
jne 0x41cf16
movzx eax, ax
push eax
call fcn.00456e27
test eax, eax
je 0x41cf42
movzx ecx, word [esp + 0x2c]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00406700
jmp 0x41cf3e
xor eax, eax
jmp 0x41cf2f
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41cf20
sub eax, edx
sar eax, 1
mov ecx, dword [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00406b80
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x6c0], 0xffffffff
mov eax, dword [ebx - 0xc]
lea edx, [esp + 0x44]
push edx
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 8]
push ebx
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
lea eax, [ebx - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41cf81
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
mov eax, dword [esi + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x48]
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x44]
push 4
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [eax + ecx + 0x20]
mov eax, dword [eax + ecx]
push edx
push eax
push 0
push edi
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
mov ecx, dword [esp + 0x2c]
push ecx
push edi
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454eba
push 1
push edi
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
jmp 0x41cff9
push 0
push edi
call fcn.00454da4
mov ecx, eax
call fcn.00454fc7
add dword [esp + 0x3c], 4
add dword [esp + 0x2c], 0x40
inc edi
lea edx, [edi - 0x3fe]
cmp edx, 8
jl 0x41ce60
push 0x407
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d08f
mov ecx, dword [esi + 0x144]
lea eax, [esp + 0x14]
push eax
push 0x18
push ecx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xa4]
push 4
push edx
cdq
idiv dword [ecx + 0xd54]
push eax
mov eax, dword [ecx + 0xd7c]
mov ecx, dword [ecx + 0xd78]
push eax
push ecx
push 0
push 0x407
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x407
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
mov ebx, dword [sym.imp.GDI32.dll_GetObjectW]
push 0x406
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d10d
mov eax, dword [esi + 0x13c]
lea edx, [esp + 0x14]
push edx
push 0x18
push eax
call ebx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xa4]
push 4
push edx
cdq
idiv dword [ecx + 0xd28]
push eax
mov eax, dword [ecx + 0xd50]
mov ecx, dword [ecx + 0xd4c]
push eax
push ecx
push 0
push 0x406
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x406
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
push 0x3fa
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d17e
mov eax, dword [esi + 0x14c]
lea edx, [esp + 0x14]
push edx
push 0x18
push eax
call ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x18]
push 4
push ecx
mov ecx, dword [eax + 0xc28]
push edx
mov edx, dword [eax + 0xc24]
push ecx
push edx
push 0
push 0x3fa
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x3fa
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
push 0x3fb
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d1ef
mov ecx, dword [esi + 0x154]
lea eax, [esp + 0x14]
push eax
push 0x18
push ecx
call ebx
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0xa4]
mov ecx, dword [esp + 0x18]
push 4
push edx
mov edx, dword [eax + 0xc50]
mov eax, dword [eax + 0xc4c]
push ecx
push edx
push eax
push 0
push 0x3fb
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x3fb
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
push 0x3fc
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d260
mov edx, dword [esi + 0x15c]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x18]
push 4
push ecx
mov ecx, dword [eax + 0xc78]
push edx
mov edx, dword [eax + 0xc74]
push ecx
push edx
push 0
push 0x3fc
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x3fc
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
push 0x3fd
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d2d1
mov ecx, dword [esi + 0x164]
lea eax, [esp + 0x14]
push eax
push 0x18
push ecx
call ebx
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0xa4]
mov ecx, dword [esp + 0x18]
push 4
push edx
mov edx, dword [eax + 0xca0]
mov eax, dword [eax + 0xc9c]
push ecx
push edx
push eax
push 0
push 0x3fd
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x3fd
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
push 0x3f9
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d349
mov edx, dword [esi + 0x16c]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0xa4]
push 4
push eax
mov eax, dword [esp + 0x20]
cdq
idiv dword [ecx + 0xca4]
mov edx, dword [ecx + 0xccc]
push eax
mov eax, dword [ecx + 0xcc8]
push edx
push eax
push 0
push 0x3f9
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x3f9
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
push 0x409
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x41d5d8
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2a6]
push edx
mov word [esp + 0x2a8], cx
call fcn.0054b8b0
add esp, 0xc
push 0x64d7e8
push 0x61bff4
push 0x61bffc
lea edx, [esp + 0x2a8]
call fcn.004098c0
add esp, 0xc
lea eax, [esp + 0x29c]
push eax
push 0
push str.ChangeDisplay
push str.WinMode
call edi
mov dword [esi + 0x1b4], eax
test eax, eax
je 0x41d3d4
lea ecx, [esp + 0x29c]
push ecx
push 0
jmp 0x41d3de
lea edx, [esp + 0x29c]
push edx
push 1
push str.Type
push str.WinMode
call edi
mov dword [esi + 0x1b0], eax
test eax, eax
je 0x41d404
mov ecx, dword [esi + 0x17c]
lea eax, [esp + 0x14]
push eax
push 0x18
push ecx
jmp 0x41d412
mov eax, dword [esi + 0x174]
lea edx, [esp + 0x14]
push edx
push 0x18
push eax
call ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x18]
push 4
push ecx
mov ecx, dword [eax + 0xd84]
push edx
mov edx, dword [eax + 0xd80]
push ecx
push edx
push 0
push 0x409
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x409
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x31
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.0045c750
push 0x3f8
mov ecx, esi
mov edi, eax
call fcn.00454da4
test edi, edi
je 0x41d489
mov edi, dword [edi + 4]
mov ecx, dword [eax + 0x20]
push 1
push edi
push 0x30
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x61c5e0
push 0x3f8
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454eba
push 0x3f8
mov ecx, esi
call fcn.00454da4
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.0045c47c
mov ebx, eax
call fcn.0045590c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d4e8
push 0x80004005
call fcn.00406d40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x10], edi
mov ecx, 0x61c5e0
mov dword [esp + 0x6c0], 1
test ecx, 0xffff0000
jne 0x41d534
mov edx, ecx
movzx eax, dx
push eax
mov dword [esp + 0x38], eax
call fcn.00456e27
test eax, eax
je 0x41d548
mov ecx, dword [esp + 0x34]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00406700
jmp 0x41d544
push 3
push 0x61c5e0
lea ecx, [esp + 0x18]
call fcn.00406b80
mov edi, dword [esp + 0x10]
mov dword [esp + 0x6c0], 0xffffffff
mov eax, dword [edi - 0xc]
lea edx, [esp + 0x44]
push edx
push eax
mov eax, dword [ebx + 8]
push edi
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
add edi, 0xfffffff0
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d583
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push 4
push edx
mov edx, dword [eax + 0xd84]
mov eax, dword [eax + 0xd80]
push ecx
add edx, 2
push edx
add eax, 0x14
push eax
push 0
push 0x3f8
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebx, dword [sym.imp.GDI32.dll_GetObjectW]
push 0x40a
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454fac
test eax, eax
je 0x41d98a
call fcn.0045590c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d60d
push 0x80004005
call fcn.00406d40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x6c0], 2
call fcn.00428870
mov eax, dword [0x64dde0]
cmp eax, 5
je 0x41d66f
cmp eax, 6
je 0x41d66f
push 0
push 0x40a
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
push 0
push 0x3f7
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
jmp 0x41d95f
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 0xc], 0
mov edx, dword [ecx - 0x10]
lea eax, [ecx - 0x10]
mov dword [esp + 0x34], edx
je 0x41d6d0
cmp dword [eax + 0xc], 0
lea edx, [eax + 0xc]
jge 0x41d6a8
cmp dword [ecx - 8], 0
jge 0x41d69c
push 0x80070057
call fcn.00406d40
mov dword [ecx - 0xc], 0
mov byte [ecx], 0
jmp 0x41d6d0
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d6be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x4ae]
push edx
mov word [esp + 0x4b0], cx
call fcn.0054b8b0
add esp, 0xc
push 0x64d7e8
push 0x61bff4
push 0x61bffc
lea edx, [esp + 0x4b0]
call fcn.004098c0
add esp, 0xc
lea ecx, [esp + 0x4a4]
push ecx
xor eax, eax
push 2
lea edx, [esp + 0x80]
mov word [esp + 0x98], ax
push edx
lea eax, [esp + 0x78]
push eax
mov dword [esp + 0x7c], 0x74004f
mov dword [esp + 0x80], 0x650068
mov dword [esp + 0x84], 0x72
mov dword [esp + 0x88], 0x70004f
mov dword [esp + 0x8c], 0x690074
mov dword [esp + 0x90], 0x69006d
mov dword [esp + 0x94], 0x61007a
mov dword [esp + 0x98], 0x690074
mov dword [esp + 0x9c], 0x6e006f
call edi
xor ecx, ecx
cmp eax, 2
setge cl
mov eax, ecx
mov dword [esi + 0x1b8], eax
test eax, eax
je 0x41d7b5
mov eax, dword [esi + 0x17c]
lea edx, [esp + 0x14]
push edx
push 0x18
push eax
jmp 0x41d7c3
mov edx, dword [esi + 0x174]
lea ecx, [esp + 0x14]
push ecx
push 0x18
push edx
call ebx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0xa4]
push 4
push ecx
mov ecx, dword [eax + 0xd84]
push edx
mov edx, dword [eax + 0xd80]
push ecx
add edx, 0x3c
push edx
push 0
push 0x40a
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
push 0
push 0x40a
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.00454f85
mov eax, dword [esi + 0x20]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x31
push eax
call ebx
push eax
call fcn.0045c750
push 0x3f7
mov ecx, esi
mov edi, eax
call fcn.00454da4
test edi, edi
je 0x41d83f
mov edi, dword [edi + 4]
mov ecx, dword [eax + 0x20]
push 1
push edi
push 0x30
push ecx
call ebx
mov ebx, 5
mov ecx, esi
cmp dword [0x64dde0], ebx
jne 0x41d860
push 0x61c5e8
jmp 0x41d865
push str.LHVM_Graphics
push 0x3f7
call fcn.00454da4
mov ecx, eax
call fcn.00454eba
push 0x3f7
mov ecx, esi
call fcn.00454da4
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.0045c47c
mov edi, eax
cmp dword [0x64dde0], ebx
jne 0x41d8c8
push 0x61c5e8
lea ecx, [esp + 0x38]
call fcn.0043ab40
mov eax, dword [esp + 0x34]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x44]
push edx
push ecx
push eax
mov eax, dword [edi + 8]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x34]
jmp 0x41d8f2
push str.LHVM_Graphics
lea ecx, [esp + 0x34]
call fcn.0043ab40
mov eax, dword [esp + 0x30]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x44]
push edx
push ecx
push eax
mov eax, dword [edi + 8]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
add eax, 0xfffffff0
mov dword [esp + 0x40], ecx
or ecx, 0xffffffff
lea edx, [eax + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d91a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x20]
push ecx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esi + 0xa4]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + 0xd84]
mov eax, dword [eax + 0xd80]
push 4
push ecx
push ebx
add edx, 2
push edx
add eax, 0x50
push eax
push 0
push 0x3f7
mov ecx, esi
call fcn.00454da4
mov ecx, eax
call fcn.0045516d
mov dword [esp + 0x6c0], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d98a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x6b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov ecx, dword [esp + 0x6a4]
xor ecx, esp
call fcn.00544a28
mov esp, ebp
pop ebp
ret