Function at 0x4211f0
Capabilities:
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4e5bfb
mov eax, dword fs:[0]
push eax
sub esp, 0x6ac
mov eax, dword [0x520628]
xor eax, esp
mov dword [esp + 0x6a4], eax
push ebx
push edi
mov eax, dword [0x520628]
xor eax, esp
push eax
lea eax, [esp + 0x6b8]
mov dword fs:[0], eax
mov ecx, dword [0x52a92c]
call fcn.0044a600
test dword [0x52ab80], 0x40000000
mov dword [esp + 0x14], eax
mov ecx, esi
je 0x421253
push 0x52a820
jmp 0x421257
add eax, 0x18
push eax
call fcn.0045fedc
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 [0x52ab64]
mov eax, dword [esi + 0x20]
push 1
push 0
push edx
push eax
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
mov edx, dword [0x5256c4]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
push 0
lea eax, [esp + 0x50]
push eax
push 0
push 0x30
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 + 0x84]
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.004601ef
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x31
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.00466034
push 0x3f6
mov ecx, esi
mov edi, eax
call fcn.0045fe1e
test edi, edi
je 0x42132e
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]
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x9e]
push eax
mov word [esp + 0xa0], dx
call fcn.00473d40
mov ebx, 0x40000000
add esp, 0xc
lea edx, [esp + 0x94]
test dword [0x52ab80], ebx
je 0x421395
mov edi, dword [esp + 0x14]
add edi, 0x18
push edi
push 0x50f688
call fcn.0040a600
push 0x52a820
push 0x20
push edi
call fcn.0046ec66
add esp, 0x14
jmp 0x4213af
mov ecx, dword [esp + 0x14]
push 0x134dacd
add ecx, 0x18
push ecx
push str._s_Ver:_d
call fcn.0040a600
add esp, 0xc
push 0x3f6
mov ecx, esi
call fcn.0045fe1e
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.00465d62
mov edi, eax
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x1c]
call fcn.00446d10
mov eax, dword [esp + 0x18]
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 + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421416
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
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 0
push 0x3f6
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
lea eax, [esp + 0x94]
push eax
push 0x3f6
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fedc
test dword [0x52ab80], ebx
je 0x42149c
push 0
push 0x3f6
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
mov edx, dword [esi + 0x8c]
mov edi, dword [sym.imp.GDI32.dll_GetObjectW]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x84]
push 4
push eax
mov eax, dword [esp + 0x28]
cdq
idiv dword [ecx + 0x94]
mov edx, dword [ecx + 0xbc]
push eax
mov eax, dword [ecx + 0xb8]
push edx
push eax
push 0
push 1
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 1
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
mov edx, dword [esi + 0x94]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x84]
push 4
push eax
mov eax, dword [esp + 0x28]
cdq
idiv dword [ecx + 0xc0]
mov edx, dword [ecx + 0xe8]
push eax
mov eax, dword [ecx + 0xe4]
push edx
push eax
push 0
push 2
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
mov edx, dword [esi + 0x9c]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x84]
push 4
push eax
mov eax, dword [esp + 0x28]
cdq
idiv dword [ecx + 0xc]
mov edx, dword [ecx + 0x34]
push eax
mov eax, dword [ecx + 0x30]
push edx
push eax
push 0
push 0x3e9
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0x3ea
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x4215ec
mov edx, dword [esi + 0xac]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x84]
push 4
push eax
mov eax, dword [esp + 0x28]
cdq
idiv dword [ecx + 0x158]
mov edx, dword [ecx + 0x180]
push eax
mov eax, dword [ecx + 0x17c]
push edx
push eax
push 0
push 0x3ea
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
mov eax, dword [esi + 0x84]
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 0
push 0x3eb
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0x511a48
push 0x3eb
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fedc
mov ecx, dword [esi + 0xb4]
lea eax, [esp + 0x1c]
push eax
push 0x18
push ecx
call edi
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x84]
push edx
mov dword [0x52a934], ecx
mov edx, dword [eax + 0x12c]
mov eax, dword [eax + 0x128]
push edx
mov edx, dword [0x5256c4]
push eax
push edx
call fcn.00439580
add esp, 0x10
push eax
lea ecx, [esi + 0xc0]
call fcn.00466048
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4216c6
cmp dword [0x52a938], 0
je 0x4216c6
push 0x3ec
mov ecx, esi
mov dword [0x52a938], 0
call fcn.0045fe1e
mov ecx, dword [eax + 0x20]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x84]
mov ecx, dword [esp + 0x20]
push 4
push edx
mov edx, dword [eax + 0x12c]
mov eax, dword [eax + 0x128]
push ecx
push edx
push eax
push 0
push 0x3ec
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0x50f494
push 0x3ec
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fedc
push 0x3ec
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fea8
push 0x3ec
mov ecx, esi
mov ebx, eax
call fcn.0045fe1e
test eax, eax
je 0x42173b
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 edx, dword [esi + 0xbc]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call edi
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x84]
push edx
mov dword [0x52a93c], ecx
mov edx, dword [eax + 0x154]
mov eax, dword [eax + 0x150]
push edx
mov edx, dword [0x5256c4]
push eax
push edx
call fcn.00439580
add esp, 0x10
push eax
lea ecx, [esi + 0xc8]
call fcn.00466048
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4217d3
cmp dword [0x52a940], 0
je 0x4217d3
push 0x3ed
mov ecx, esi
mov dword [0x52a940], 0
call fcn.0045fe1e
mov ecx, dword [eax + 0x20]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x84]
mov ecx, dword [esp + 0x20]
push 4
push edx
mov edx, dword [eax + 0x154]
mov eax, dword [eax + 0x150]
push ecx
push edx
push eax
push 0
push 0x3ed
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0x50f494
push 0x3ed
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fedc
push 0x3ed
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fea8
push 0x3ed
mov ecx, esi
mov edi, eax
call fcn.0045fe1e
test eax, eax
je 0x421848
mov eax, dword [eax + 0x20]
or edi, 0xd
push edi
push 0xfffffffffffffff0
push eax
call ebx
lea ecx, [esi + 0xd4]
mov ebx, 0x3ee
mov edi, 0xaf4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 8
lea ecx, [ecx]
push ebx
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x4218cb
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push 0x18
push ecx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x84]
push 4
push edx
cdq
idiv dword [edi + ecx - 0x960]
push eax
mov eax, dword [edi + ecx]
mov ecx, dword [edi + ecx - 0x20]
push eax
push ecx
push 0
push ebx
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
add dword [esp + 0x10], 8
add edi, 4
inc ebx
sub dword [esp + 0x18], 1
jne 0x421870
push 0
push 0x511fd0
lea ecx, [esi + 0x17c]
push 0x64
call fcn.00466af7
mov eax, dword [esp + 0x14]
lea edx, [eax + 0xc62]
add eax, 0xc6a
mov edi, 0x3fe
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 0xb74
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], 8
mov ebx, 1
mov eax, dword [esp + 0x18]
cmp byte [eax], 0
mov ecx, esi
je 0x421a1b
push edi
call fcn.0045fe1e
lea ecx, [esi + 0x17c]
test ecx, ecx
je 0x421942
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.0045fe1e
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.00465d62
mov ebx, eax
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x48]
call fcn.00446d10
mov eax, dword [esp + 0x44]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x3c]
push edx
push ecx
push eax
mov eax, dword [ebx + 8]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4219b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x20]
push ecx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x84]
mov edx, dword [esp + 0x3c]
push 4
push eax
mov eax, dword [esp + 0x1c]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
mov ecx, dword [esp + 0x10]
push ecx
push edi
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fedc
push 1
push edi
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
mov ebx, 1
jmp 0x421a2a
push 0
push edi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffc0
add dword [esp + 0x14], 4
add dword [esp + 0x18], ebx
add dword [esp + 0x10], 0x40
add edi, ebx
sub dword [esp + 0x34], ebx
jne 0x421920
push 0x407
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
mov edi, dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x421ac2
mov eax, dword [esi + 0x124]
lea edx, [esp + 0x1c]
push edx
push 0x18
push eax
call edi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x84]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x407
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0x406
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x421b3a
mov eax, dword [esi + 0x11c]
lea edx, [esp + 0x1c]
push edx
push 0x18
push eax
call edi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x84]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x406
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0x3fa
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x421bab
mov eax, dword [esi + 0x12c]
lea edx, [esp + 0x1c]
push edx
push 0x18
push eax
call edi
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x84]
mov edx, dword [esp + 0x20]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x3fa
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0x3fb
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x421c1c
mov ecx, dword [esi + 0x134]
lea eax, [esp + 0x1c]
push eax
push 0x18
push ecx
call edi
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x84]
mov ecx, dword [esp + 0x20]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x3fb
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0x3fc
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x421c8d
mov edx, dword [esi + 0x13c]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call edi
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x84]
mov edx, dword [esp + 0x20]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x3fc
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0x3fd
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x421cfe
mov ecx, dword [esi + 0x144]
lea eax, [esp + 0x1c]
push eax
push 0x18
push ecx
call edi
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x84]
mov ecx, dword [esp + 0x20]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x3fd
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0x3f9
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x421d76
mov edx, dword [esi + 0x14c]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x84]
push 4
push eax
mov eax, dword [esp + 0x28]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x3f9
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0x409
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x421f8a
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2a6]
push edx
mov word [esp + 0x2a8], cx
call fcn.00473d40
add esp, 0xc
push 0x52a7a0
push 0x511a0c
push 0x511a14
lea edx, [esp + 0x2a8]
call fcn.0040a600
add esp, 0xc
lea eax, [esp + 0x29c]
push eax
push 0
push str.ChangeDisplay
push str.WinMode
call ebx
mov dword [esi + 0x194], eax
test eax, eax
je 0x421e01
lea ecx, [esp + 0x29c]
push ecx
push 0
jmp 0x421e0b
lea edx, [esp + 0x29c]
push edx
push 1
push str.Type
push str.WinMode
call ebx
mov dword [esi + 0x190], eax
test eax, eax
je 0x421e31
mov ecx, dword [esi + 0x15c]
lea eax, [esp + 0x1c]
push eax
push 0x18
push ecx
jmp 0x421e3f
mov eax, dword [esi + 0x154]
lea edx, [esp + 0x1c]
push edx
push 0x18
push eax
call edi
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x84]
mov edx, dword [esp + 0x20]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x409
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
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.00466034
push 0x3f8
mov ecx, esi
mov edi, eax
call fcn.0045fe1e
test edi, edi
je 0x421eb8
mov edi, dword [edi + 4]
mov ecx, dword [eax + 0x20]
push 1
push edi
push 0x30
push ecx
call ebx
push 0x511ff8
push 0x3f8
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fedc
push 0x3f8
mov ecx, esi
call fcn.0045fe1e
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.00465d62
push 0x511ff8
lea ecx, [esp + 0x38]
mov edi, eax
call fcn.00446d10
mov eax, dword [esp + 0x34]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x3c]
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]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421f3f
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 + 0x84]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push 4
push ecx
mov ecx, dword [eax + 0xd84]
push edx
mov edx, dword [eax + 0xd80]
add ecx, 2
push ecx
add edx, 0x14
push edx
push 0
push 0x3f8
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.004601ef
jmp 0x421f90
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0x40a
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ffa5
test eax, eax
je 0x4223b3
call fcn.00460929
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x421fc5
push 0x80004005
call fcn.00407820
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], 0
call fcn.0042dd60
mov eax, dword [0x52ad98]
cmp eax, 5
je 0x422027
cmp eax, 6
je 0x422027
push 0
push 0x40a
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
push 0
push 0x3f7
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
jmp 0x422388
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 0xc], 0
mov edi, dword [ecx - 0x10]
lea eax, [ecx - 0x10]
je 0x422082
cmp dword [eax + 0xc], 0
lea edx, [eax + 0xc]
jge 0x42205c
cmp dword [ecx - 8], 0
jge 0x422050
push 0x80070057
call fcn.00407820
mov dword [ecx - 0xc], 0
mov byte [ecx], 0
jmp 0x422082
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x422072
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
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.00473d40
add esp, 0xc
push 0x52a7a0
push 0x511a0c
push 0x511a14
lea edx, [esp + 0x4b0]
call fcn.0040a600
mov ecx, 0x74
mov word [esp + 0x7a], cx
mov eax, 0x4f
mov word [esp + 0x78], ax
mov ecx, 0x72
mov word [esp + 0x80], cx
mov edx, 0x68
mov word [esp + 0x7c], dx
xor edx, edx
mov eax, 0x65
mov word [esp + 0x7e], ax
mov word [esp + 0x82], dx
mov ecx, 0x70
mov word [esp + 0x86], cx
mov eax, 0x4f
mov word [esp + 0x84], ax
mov ecx, 0x6d
mov word [esp + 0x8c], cx
mov edx, 0x74
mov word [esp + 0x88], dx
mov eax, 0x69
mov edx, eax
mov word [esp + 0x8a], ax
mov ecx, 0x61
mov word [esp + 0x8e], dx
mov word [esp + 0x92], cx
add esp, 0xc
mov eax, 0x7a
mov word [esp + 0x84], ax
mov ecx, 0x6f
mov edx, 0x74
mov word [esp + 0x88], dx
mov word [esp + 0x8c], cx
mov eax, 0x69
lea ecx, [esp + 0x4a4]
push ecx
mov word [esp + 0x8e], ax
mov edx, 0x6e
xor eax, eax
mov word [esp + 0x92], dx
push 2
lea edx, [esp + 0x80]
mov word [esp + 0x98], ax
push edx
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor ecx, ecx
cmp eax, 2
setge cl
mov eax, ecx
mov dword [esi + 0x198], eax
test eax, eax
je 0x4221e3
mov eax, dword [esi + 0x15c]
lea edx, [esp + 0x1c]
push edx
push 0x18
push eax
jmp 0x4221f1
mov edx, dword [esi + 0x154]
lea ecx, [esp + 0x1c]
push ecx
push 0x18
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x84]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
push 0
push 0x40a
mov ecx, esi
call fcn.0045fe1e
mov ecx, eax
call fcn.0045ff7e
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x31
push eax
call ebx
push eax
call fcn.00466034
push 0x3f7
mov ecx, esi
mov edi, eax
call fcn.0045fe1e
test edi, edi
je 0x42226b
mov edi, dword [edi + 4]
mov ecx, dword [eax + 0x20]
push 1
push edi
push 0x30
push ecx
call ebx
cmp dword [0x52ad98], 5
mov ecx, esi
jne 0x422288
push 0x512000
jmp 0x42228d
push str.LHVM_Graphics
push 0x3f7
call fcn.0045fe1e
mov ecx, eax
call fcn.0045fedc
push 0x3f7
mov ecx, esi
call fcn.0045fe1e
mov edx, dword [eax + 0x20]
push edx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.00465d62
cmp dword [0x52ad98], 5
mov edi, eax
jne 0x4222f1
push 0x512000
lea ecx, [esp + 0x38]
call fcn.00446d10
mov eax, dword [esp + 0x34]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x3c]
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 0x42231b
push str.LHVM_Graphics
lea ecx, [esp + 0x18]
call fcn.00446d10
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0x3c]
push edx
push ecx
push eax
mov eax, dword [edi + 8]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x48], ecx
or ecx, 0xffffffff
lea edx, [eax + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x422343
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 + 0x84]
mov ecx, dword [esp + 0x48]
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.0045fe1e
mov ecx, eax
call fcn.004601ef
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 0x4223b3
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.0046e186
mov esp, ebp
pop ebp
ret