Function at 0x474f90
Capabilities:
Contain obfuscated stackstrings
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5e1f7b
mov eax, dword fs:[0]
push eax
sub esp, 0x6a8
mov eax, dword [0x66f040]
xor eax, esp
mov dword [esp + 0x6a0], eax
push ebx
push esi
push edi
mov eax, dword [0x66f040]
xor eax, esp
push eax
lea eax, [esp + 0x6b8]
mov dword fs:[0], eax
mov edi, ecx
mov ecx, dword [0x6803c0]
call fcn.004940f0
test dword [0x680674], 0x40000000
mov ecx, edi
mov dword [esp + 0x1c], eax
je 0x474ff6
push 0x6809a8
jmp 0x474ffa
add eax, 0x18
push eax
call fcn.004aa25c
push 0xffffffffffffffec
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x80000
push eax
push 0xffffffffffffffec
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 1
push 0
push dword [0x68068c]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [0x6739e0]
call dword [sym.imp.GDI32.dll_GetObjectW]
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x4c]
mov ebx, dword [esp + 0x28]
xorps xmm0, xmm0
push 0
push eax
push 0
push 0x30
mov dword [esp + 0x28], esi
movdqu xmmword [esp + 0x5c], xmm0
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
sub eax, esi
cdq
sub eax, edx
mov esi, eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
sub eax, ebx
sar esi, 1
add esi, dword [esp + 0x4c]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [edi + 0xa8]
push 4
push ebx
push dword [esp + 0x20]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x64]
sar edx, 1
add eax, esi
add edx, dword [esp + 0x5c]
add ecx, edx
push ecx
push eax
push 0
mov ecx, edi
call fcn.004aa220
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x31
push dword [edi + 0x20]
call ebx
push eax
call fcn.004b114a
push 0x3f6
mov ecx, edi
mov esi, eax
call fcn.004a99e6
test esi, esi
jne 0x4750e0
xor ecx, ecx
jmp 0x4750e3
mov ecx, dword [esi + 4]
push 1
push ecx
push 0x30
push dword [eax + 0x20]
call ebx
xor eax, eax
push 0x206
push eax
mov word [esp + 0x9c], ax
lea eax, [esp + 0x9e]
push eax
call fcn.005c7c50
add esp, 0xc
test dword [0x680674], 0x40000000
je 0x475148
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x94]
add esi, 0x18
push esi
push 0x64b928
push eax
call fcn.00463930
add esp, 0xc
push 0x6809a8
push 0x20
push esi
call fcn.005c1442
add esp, 0xc
jmp 0x47516a
mov eax, dword [esp + 0x1c]
push 0x134dacd
add eax, 0x18
push eax
lea eax, [esp + 0x9c]
push str._s_Ver:_d
push eax
call fcn.00463930
add esp, 0x10
push 0x3f6
mov ecx, edi
call fcn.004a99e6
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.004b1138
mov esi, eax
lea ecx, [esp + 0x14]
lea eax, [esp + 0x94]
push eax
call fcn.0048fb40
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x44]
push eax
push dword [ecx - 0xc]
push ecx
push dword [esi + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4751cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [esi + 4]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ReleaseDC]
lea eax, [esp + 0x5c]
xorps xmm0, xmm0
push eax
push dword [edi + 0x20]
movdqu xmmword [esp + 0x64], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x68]
mov ecx, edi
push 4
push dword [esp + 0x4c]
add eax, 0xffffffe7
push dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x6c]
add eax, 0x29
push eax
push 0
push 0x3f6
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
lea eax, [esp + 0x94]
mov ecx, edi
push eax
push 0x3f6
call fcn.004a99e6
mov ecx, eax
call fcn.004aa25c
test dword [0x680674], 0x40000000
je 0x47525a
push 0
push 0x3f6
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
mov ebx, dword [sym.imp.GDI32.dll_GetObjectW]
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0xb0]
call ebx
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [ecx + 0x94]
push dword [esp + 0x2c]
push eax
push dword [ecx + 0xbc]
push dword [ecx + 0xb8]
mov ecx, edi
push 0
push 1
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 1
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0xb8]
call ebx
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [ecx + 0xc0]
push dword [esp + 0x2c]
push eax
push dword [ecx + 0xe8]
push dword [ecx + 0xe4]
mov ecx, edi
push 0
push 2
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0xc0]
call ebx
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [ecx + 0xc]
push dword [esp + 0x2c]
push eax
push dword [ecx + 0x34]
push dword [ecx + 0x30]
mov ecx, edi
push 0
push 0x3e9
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0x3ea
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x47539a
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0xd0]
call ebx
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [ecx + 0x158]
push dword [esp + 0x2c]
push eax
push dword [ecx + 0x180]
push dword [ecx + 0x17c]
mov ecx, edi
push 0
push 0x3ea
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [eax + 0xf8]
push dword [eax + 0xf4]
push dword [eax + 0xf0]
push dword [eax + 0xec]
push 0
push 0x3eb
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0x64bc10
push 0x3eb
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa25c
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0xd8]
call ebx
mov edx, dword [edi + 0xa8]
push dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [0x6739e0]
mov dword [0x680bfc], eax
push eax
push dword [edx + 0x12c]
mov edx, dword [edx + 0x128]
call fcn.004869a0
add esp, 0xc
lea ecx, [edi + 0xe4]
push eax
call fcn.004b0ec4
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x475469
cmp dword [0x680bf8], 0
je 0x475469
push 0x3ec
mov ecx, edi
mov dword [0x680bf8], 0
call fcn.004a99e6
push 0
push 0
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0x12c]
push dword [eax + 0x128]
push 0
push 0x3ec
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0x6493b8
push 0x3ec
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa25c
push 0x3ec
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9d7b
push 0x3ec
mov ecx, edi
mov esi, eax
call fcn.004a99e6
test eax, eax
jne 0x4754db
xor ecx, ecx
jmp 0x4754de
mov ecx, dword [eax + 0x20]
or esi, 0xd
push esi
push 0xfffffffffffffff0
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongW]
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0xe0]
call ebx
mov edx, dword [edi + 0xa8]
push dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [0x6739e0]
mov dword [0x680bf4], eax
push eax
push dword [edx + 0x154]
mov edx, dword [edx + 0x150]
call fcn.004869a0
add esp, 0xc
lea ecx, [edi + 0xec]
push eax
call fcn.004b0ec4
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x47556d
cmp dword [0x680bf0], 0
je 0x47556d
push 0x3ed
mov ecx, edi
mov dword [0x680bf0], 0
call fcn.004a99e6
push 0
push 0
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0x154]
push dword [eax + 0x150]
push 0
push 0x3ed
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0x6493b8
push 0x3ed
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa25c
push 0x3ed
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9d7b
push 0x3ed
mov ecx, edi
mov esi, eax
call fcn.004a99e6
test eax, eax
je 0x4755de
mov eax, dword [eax + 0x20]
or esi, 0xd
push esi
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
lea eax, [edi + 0xf8]
mov dword [esp + 0x38], 8
mov ebx, 0x3ee
mov dword [esp + 0x14], eax
mov esi, 0xaf4
push ebx
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x47565e
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
push 0x18
push dword [eax]
call dword [sym.imp.GDI32.dll_GetObjectW]
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [esi + ecx - 0x960]
push dword [esp + 0x2c]
push eax
push dword [esi + ecx]
push dword [esi + ecx - 0x20]
mov ecx, edi
push 0
push ebx
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
add dword [esp + 0x14], 8
add esi, 4
inc ebx
dec dword [esp + 0x38]
jne 0x475607
push 0
push 0x64c198
lea ecx, [edi + 0x1a0]
push 0x64
call fcn.004b2f00
mov eax, dword [esp + 0x1c]
mov esi, 0x3fe
mov dword [esp + 0x14], 0xb74
mov dword [esp + 0x18], 8
lea ebx, [eax + 0xc6a]
add eax, 0x864
mov dword [esp + 0x44], eax
lea esp, [esp]
cmp byte [eax + esi], 0
mov ecx, edi
je 0x47579f
push esi
call fcn.004a99e6
mov edx, eax
lea eax, [edi + 0x1a0]
test eax, eax
jne 0x4756d2
xor ecx, ecx
jmp 0x4756d5
mov ecx, dword [eax + 4]
push 1
push ecx
push 0x30
push dword [edx + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
mov ecx, edi
call fcn.004a99e6
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.004b1138
push ebx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x20], eax
call fcn.0048fb40
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x20]
push dword [ecx - 0xc]
push ecx
push dword [eax + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov edx, dword [esp + 0x38]
or ecx, 0xffffffff
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x475740
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [edi + 0xa8]
mov ecx, dword [esp + 0x14]
push 4
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [ecx + eax + 0x20]
push dword [ecx + eax]
mov ecx, edi
push 0
push esi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push ebx
push esi
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa25c
push 1
push esi
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
jmp 0x4757ae
push 0
push esi
call fcn.004a99e6
mov ecx, eax
call fcn.004a98b8
add dword [esp + 0x14], 4
add ebx, 0x40
mov eax, dword [esp + 0x44]
inc esi
dec dword [esp + 0x18]
jne 0x4756b0
push 0x407
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
mov ebx, dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x47583f
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0x148]
call ebx
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [ecx + 0xd54]
push dword [esp + 0x2c]
push eax
push dword [ecx + 0xd7c]
push dword [ecx + 0xd78]
mov ecx, edi
push 0
push 0x407
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x407
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0x406
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x4758b3
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0x140]
call ebx
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [ecx + 0xd28]
push dword [esp + 0x2c]
push eax
push dword [ecx + 0xd50]
push dword [ecx + 0xd4c]
mov ecx, edi
push 0
push 0x406
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x406
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0x3fa
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x47591f
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0x150]
call ebx
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0xc28]
push dword [eax + 0xc24]
push 0
push 0x3fa
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x3fa
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0x3fb
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x47598b
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0x158]
call ebx
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0xc50]
push dword [eax + 0xc4c]
push 0
push 0x3fb
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x3fb
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0x3fc
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x4759f7
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0x160]
call ebx
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0xc78]
push dword [eax + 0xc74]
push 0
push 0x3fc
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x3fc
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0x3fd
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x475a63
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0x168]
call ebx
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0xca0]
push dword [eax + 0xc9c]
push 0
push 0x3fd
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x3fd
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0x3f9
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x475ad7
lea eax, [esp + 0x20]
push eax
push 0x18
push dword [edi + 0x170]
call ebx
mov ecx, dword [edi + 0xa8]
mov eax, dword [esp + 0x24]
cdq
push 4
idiv dword [ecx + 0xca4]
push dword [esp + 0x2c]
push eax
push dword [ecx + 0xccc]
push dword [ecx + 0xcc8]
mov ecx, edi
push 0
push 0x3f9
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x3f9
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0x409
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x475cd5
xor eax, eax
push 0x206
push eax
mov word [esp + 0x2a4], ax
lea eax, [esp + 0x2a6]
push eax
call fcn.005c7c50
add esp, 0xc
lea eax, [esp + 0x29c]
push 0x680928
push 0x64bbd4
push 0x64bbdc
push eax
call fcn.00463930
add esp, 0x10
lea eax, [esp + 0x29c]
push eax
push 0
push str.ChangeDisplay
push str.WinMode
call esi
mov dword [edi + 0x1b8], eax
test eax, eax
lea eax, [esp + 0x29c]
push eax
je 0x475b63
push 0
jmp 0x475b65
push 1
push str.Type
push str.WinMode
call esi
mov dword [edi + 0x1b4], eax
lea eax, [esp + 0x20]
cmp dword [edi + 0x1b4], 0
push eax
push 0x18
je 0x475b8f
push dword [edi + 0x180]
jmp 0x475b95
push dword [edi + 0x178]
call ebx
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0xd84]
push dword [eax + 0xd80]
push 0
push 0x409
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x409
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0
push 0
push 0x31
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.004b114a
push 0x3f8
mov ecx, edi
mov esi, eax
call fcn.004a99e6
test esi, esi
jne 0x475c08
xor ecx, ecx
jmp 0x475c0b
mov ecx, dword [esi + 4]
push 1
push ecx
push 0x30
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x64c1c0
push 0x3f8
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa25c
push 0x3f8
mov ecx, edi
call fcn.004a99e6
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.004b1138
push 0x64c1c0
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.0048fb40
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push eax
push dword [ecx - 0xc]
push ecx
push dword [esi + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov edx, dword [esp + 0x18]
or ecx, 0xffffffff
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x475c90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [esi + 4]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [edi + 0xa8]
push 4
push dword [esp + 0x44]
push dword [esp + 0x44]
mov eax, dword [ecx + 0xd84]
add eax, 2
push eax
mov eax, dword [ecx + 0xd80]
mov ecx, edi
add eax, 0x14
push eax
push 0
push 0x3f8
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0x40a
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004a9eb7
test eax, eax
je 0x47606f
call fcn.004aa5ff
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x475d0c
push 0x80004005
call fcn.00460d60
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x6c0], 0
call fcn.0047ded0
mov eax, dword [0x68045c]
cmp eax, 5
je 0x475d70
cmp eax, 6
je 0x475d70
push 0
push 0x40a
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0
push 0x3f7
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
mov esi, dword [esp + 0x14]
jmp 0x47604a
mov esi, dword [esp + 0x14]
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov eax, dword [edx]
mov dword [esp + 0x44], eax
je 0x475dcc
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x475da8
cmp dword [esi - 8], 0
jge 0x475d9c
push 0x80070057
call fcn.00460d60
mov dword [esi - 0xc], 0
mov byte [esi], 0
jmp 0x475dcc
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x475dbc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
xor eax, eax
push 0x206
push eax
mov word [esp + 0x4ac], ax
lea eax, [esp + 0x4ae]
push eax
call fcn.005c7c50
add esp, 0xc
lea eax, [esp + 0x4a4]
push 0x680928
push 0x64bbd4
push 0x64bbdc
push eax
call fcn.00463930
add esp, 0x10
mov dword [esp + 0x6c], 0x74004f
xor eax, eax
mov dword [esp + 0x70], 0x650068
mov word [esp + 0x90], ax
lea eax, [esp + 0x4a4]
mov dword [esp + 0x74], 0x72
push eax
push 2
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x70004f
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x88], 0x690074
push eax
mov dword [esp + 0x90], 0x69006d
mov dword [esp + 0x94], 0x61007a
mov dword [esp + 0x98], 0x690074
mov dword [esp + 0x9c], 0x6e006f
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor ecx, ecx
cmp eax, 2
lea eax, [esp + 0x20]
setge cl
mov dword [edi + 0x1bc], ecx
push eax
push 0x18
test ecx, ecx
je 0x475ead
push dword [edi + 0x180]
jmp 0x475eb3
push dword [edi + 0x178]
call ebx
mov eax, dword [edi + 0xa8]
mov ecx, edi
push 4
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [eax + 0xd84]
mov eax, dword [eax + 0xd80]
add eax, 0x3c
push eax
push 0
push 0x40a
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
push 0
push 0x40a
mov ecx, edi
call fcn.004a99e6
mov ecx, eax
call fcn.004aa2a0
push 0
push 0
push 0x31
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.004b114a
push 0x3f7
mov ecx, edi
mov ebx, eax
call fcn.004a99e6
test ebx, ebx
jne 0x475f2a
xor ecx, ecx
jmp 0x475f2d
mov ecx, dword [ebx + 4]
push 1
push ecx
push 0x30
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [0x68045c], 5
mov ecx, edi
jne 0x475f4d
push 0x64c1c8
jmp 0x475f52
push str.LHVM_Graphics
push 0x3f7
call fcn.004a99e6
mov ecx, eax
call fcn.004aa25c
push 0x3f7
mov ecx, edi
call fcn.004a99e6
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.004b1138
cmp dword [0x68045c], 5
mov ebx, eax
jne 0x475fb3
push 0x64c1c8
lea ecx, [esp + 0x1c]
call fcn.0048fb40
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push eax
push dword [ecx - 0xc]
push ecx
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov edx, dword [esp + 0x18]
jmp 0x475fdb
push str.LHVM_Graphics
lea ecx, [esp + 0x48]
call fcn.0048fb40
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x3c]
push ecx
push dword [eax - 0xc]
push eax
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
add edx, 0xfffffff0
mov dword [esp + 0x1c], eax
or ecx, 0xffffffff
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], eax
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x476005
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 4]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [edi + 0xa8]
push 4
push dword [esp + 0x3c]
push dword [esp + 0x24]
mov eax, dword [ecx + 0xd84]
add eax, 2
push eax
mov eax, dword [ecx + 0xd80]
mov ecx, edi
add eax, 0x50
push eax
push 0
push 0x3f7
call fcn.004a99e6
mov ecx, eax
call fcn.004aa220
add esi, 0xfffffff0
mov dword [esp + 0x6c0], 0xffffffff
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47606f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x6b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x6a0]
xor ecx, esp
call fcn.005c02df
mov esp, ebp
pop ebp
ret