Function at 0x54bbc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x62d040]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, edx
mov dword [esp + 0x2c], eax
push edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0x20]
test eax, 0x1000
jne 0x54bc13
mov ecx, esi
call fcn.00548660
or dword [esi + 0x20], 0x1000
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x28]
movups xmm0, xmmword [esi + 0x38]
test al, 4
movups xmmword [esp + 0x54], xmm0
mov eax, dword [esp + 0x5c]
je 0x54bc27
sub eax, dword [esi + 0x50]
mov edi, dword [esi + 0x48]
mov ebx, dword [esi + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 4]
sub eax, edi
mov dword [esp + 0x74], 0
cdq
idiv ebx
xor edx, edx
test eax, eax
cmovns edx, eax
mov eax, dword [esi + 0x68]
mov dword [esp + 0x10], eax
mov ecx, edx
mov eax, dword [esi + 0xb0]
sub eax, dword [esp + 0x40]
add eax, dword [esi + 0x68]
imul ecx, ebx
mov dword [esp + 0x7c], eax
add ecx, edi
mov dword [esp + 0x78], ecx
lea eax, [ecx + ebx]
mov ecx, dword [esi + 0x58]
mov dword [esp + 0x80], eax
lea eax, [edx + ecx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
sub eax, edi
dec eax
cdq
idiv ebx
add ecx, eax
mov eax, dword [esi + 0xd4]
mov eax, dword [eax]
cmp ecx, eax
lea edx, [eax - 1]
cmovl edx, ecx
xor cl, cl
test byte [esi + 0x20], 0x10
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
je 0x54bccd
mov eax, dword [esp + 0x28]
mov edx, 1
movzx ecx, cl
mov eax, dword [eax]
cmp eax, dword [esi + 0x60]
cmovl ecx, edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x68]
or edi, 0xffffffff
sub ecx, dword [esp + 0x40]
xor edx, edx
mov eax, dword [esi + 0xac]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x54bd6d
mov eax, dword [esi + 0xa4]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword ds:[eax]
mov eax, dword [eax + 0x10]
add eax, ecx
cmp eax, dword [esp + 0x10]
jl 0x54bd45
cmp eax, dword [esi]
jle 0x54bd45
cmp ecx, dword [esi + 8]
jge 0x54bd45
cmp ebx, ecx
jle 0x54bd39
mov ebx, ecx
mov dword [esp + 0x24], edx
cmp dword [esp + 0x44], eax
jge 0x54bd45
mov dword [esp + 0x44], eax
mov edi, edx
mov ecx, eax
inc edx
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
cmp edx, dword [esp + 0x2c]
jl 0x54bd15
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edi
cmp edi, eax
jl 0x54bd76
dec eax
mov dword [esp + 0x18], eax
push dword ds:[esi + 0x30]
mov ebx, dword [esp + 0x34]
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push 1
push ebx
call dword [sym.imp.GDI32.dll_SetBkMode]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
cmp ecx, edx
jg 0x54c1b6
nop
mov eax, dword [esi + 0xd4]
mov eax, dword [eax + 8]
mov edi, dword [eax + ecx*4]
mov ecx, esi
push edi
mov dword [esp + 0x3c], edi
call fcn.0054c7a0
mov ecx, dword ds:[esi + 0x20]
test ecx, 0x40000000
je 0x54bf0d
push 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [0x62dbbc]
push ebx
call dword [sym.imp.GDI32.dll_SetDCBrushColor]
mov eax, dword [0x635790]
test eax, eax
jne 0x54bdfc
push 0x12
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x635790], eax
push eax
lea eax, [esp + 0x78]
push eax
push ebx
call dword [sym.imp.USER32.dll_FillRect]
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esp + 0x14], eax
test eax, eax
je 0x54bfd8
push 1
push 1
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esp + 0x34], eax
test eax, eax
je 0x54befe
push eax
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [edi + 0x30]
movups xmm0, xmmword [0x6245b0]
mov dword [esp + 0x14], eax
push dword [esp + 0x18]
movups xmmword [esp + 0x8c], xmm0
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [edi + 0x2c]
cmp ecx, 0xffffff
je 0x54be6c
push ecx
jmp 0x54be72
push dword [0x62dbbc]
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_SetDCBrushColor]
mov eax, dword [0x635790]
test eax, eax
jne 0x54be92
push 0x12
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x635790], eax
push eax
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x1c]
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword ds:[esp + 0x80]
mov edx, dword [esp + 0x78]
sub eax, edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x2c], 0x600000
push dword [esp + 0x2c]
push 1
push 1
push 0
push 0
push dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x98]
sub eax, ecx
push eax
push edx
push ecx
push ebx
call dword [sym.imp.GDI32.dll_GdiAlphaBlend]
push dword [esp + 0x10]
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x34]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x54bfd8
test byte [edi], 2
je 0x54bf9c
mov eax, ecx
and eax, 0x10000000
jne 0x54bf28
nop
test ecx, 0x4000
jne 0x54bf9c
test ecx, 0x800
je 0x54bf68
test eax, eax
je 0x54bf4e
push dword ds:[esi + 0x168]
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [esi + 0x16c]
jmp 0x54bfa9
push 0xe
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0xd
call dword [sym.imp.USER32.dll_GetSysColorBrush]
jmp 0x54bfcb
test eax, eax
je 0x54bf82
push dword [esi + 0x168]
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword ds:[esi + 0x170]
jmp 0x54bfa9
push 0x12
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0xf
call dword [sym.imp.USER32.dll_GetSysColorBrush]
jmp 0x54bfcb
push dword [edi + 0x30]
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [edi + 0x2c]
push ebx
call dword [sym.imp.GDI32.dll_SetDCBrushColor]
mov eax, dword [0x635790]
test eax, eax
jne 0x54bfcb
push 0x12
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x635790], eax
push eax
lea eax, [esp + 0x78]
push eax
push ebx
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword ds:[esi + 0x20]
test eax, 0x10000000
jne 0x54c06a
test eax, 0x4000
je 0x54c06a
test byte [edi], 2
mov edx, dword [esi + 0x70]
je 0x54c022
nop word [eax + eax]
cmp dword [esp + 0x20], edx
jne 0x54c00d
mov ecx, 6
jmp 0x54c02f
mov ecx, eax
and ecx, 0x800
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffe
add ecx, 5
jmp 0x54c02f
mov ecx, dword [esp + 0x20]
cmp ecx, edx
jne 0x54c06e
mov ecx, 2
test al, 0x10
jne 0x54c03e
mov eax, dword [esi + 0x68]
sub eax, dword [esp + 0x40]
mov dword [esp + 0x74], eax
mov eax, dword [0x63573c]
mov dword [esp + 0x10], eax
test eax, eax
je 0x54c06a
push dword [esp + 0x28]
lea edx, [esp + 0x78]
push edx
push ecx
push 1
push ebx
push dword [esi + 0x15c]
mov ecx, eax
call dword [0x5a9914]
call dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
cmp byte [esp + 0x4c], 0
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x10], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x70], edx
je 0x54c0c6
mov eax, dword [esi + 0x60]
mov edx, ebx
push ecx
push ecx
push dword [esi + 0xb4]
mov dword [esp + 0x78], eax
mov ecx, esi
push edi
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 0
push eax
call fcn.0054c960
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x44]
jge 0x54c191
push 0
push 0
push 0
push 0
mov dword [esp + 0x74], eax
mov edi, eax
call dword [sym.imp.GDI32.dll_CreateRectRgn]
push eax
push ebx
mov dword [esp + 0x1c], eax
call dword [sym.imp.GDI32.dll_GetClipRgn]
cmp eax, 1
je 0x54c10c
mov eax, dword ds:[esp + 0x14]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [esp + 0x14], eax
push dword ds:[esp + 0x34]
push dword [esp + 0x20]
push dword [esp + 0x18]
push dword [esi + 0x68]
push ebx
call dword [sym.imp.GDI32.dll_IntersectClipRect]
mov eax, dword [esp + 0x24]
mov ecx, eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x18]
jg 0x54c17a
mov eax, dword [esi + 0xa4]
mov edx, ebx
push ecx
push dword [esp + 0x24]
mov dword [esp + 0x6c], edi
mov eax, dword [eax + ecx*4]
mov ecx, esi
push eax
push dword [esp + 0x44]
add edi, dword [eax + 0x10]
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x80], edi
call fcn.0054c960
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x18]
jg 0x54c17a
mov edi, dword [esp + 0x6c]
jmp 0x54c136
mov edi, dword [esp + 0x14]
push edi
push ebx
call dword [sym.imp.GDI32.dll_SelectClipRgn]
test edi, edi
je 0x54c191
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x4c]
inc ecx
add dword [esp + 0x78], eax
add dword [esp + 0x80], eax
mov dword [esp + 0x20], ecx
cmp ecx, dword [esp + 0x48]
jle 0x54bda0
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0xd4]
mov edi, dword [esp + 0x60]
mov eax, dword [eax]
dec eax
cmp edx, eax
jne 0x54c21c
test dword [esi + 0x20], 0x40000000
mov dword [esp + 0x80], edi
je 0x54c20e
push 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [0x62dbbc]
push ebx
call dword [sym.imp.GDI32.dll_SetDCBrushColor]
mov eax, dword [0x635790]
test eax, eax
jne 0x54c20b
push 0x12
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x635790], eax
push eax
jmp 0x54c210
push 6
lea eax, [esp + 0x78]
push eax
push ebx
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
cmp eax, edx
jge 0x54c29c
mov ecx, dword [esp + 0x28]
cmp edx, dword [ecx]
jle 0x54c29c
cmp eax, dword [ecx + 8]
jge 0x54c29c
test dword [esi + 0x20], 0x40000000
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edi
je 0x54c28e
push 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [0x62dbbc]
push ebx
call dword [sym.imp.GDI32.dll_SetDCBrushColor]
mov eax, dword [0x635790]
test eax, eax
jne 0x54c28b
push 0x12
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x635790], eax
push eax
jmp 0x54c290
push 6
lea eax, [esp + 0x78]
push eax
push ebx
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esi + 0xd4]
cmp dword [eax], 0
jne 0x54c4aa
cmp dword [esi + 0x1cc], 0
je 0x54c4aa
mov eax, dword [esi + 0x1b8]
mov ecx, 0xa
mul ecx
mov dword [esp + 0x64], 0x14
mov ecx, eax
add ecx, 0x30
mov eax, ecx
adc edx, 0
mov dword [esp + 0xc], edx
mov edx, 0xaaaaaaab
lea ebx, [edx - 1]
mul edx
mov dword [esp + 0x38], eax
mov edi, edx
mov eax, ecx
mov ecx, 0xaaaaaaab
mul ebx
mov ebx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
mul ecx
mov ecx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0xc]
mov edx, 0xaaaaaaaa
mul edx
add ecx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
adc edx, 0
mov dword [esp + 0xc], eax
add ebx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0xc]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x10]
adc eax, eax
add ebx, edx
adc ecx, eax
mov eax, dword [esi + 0x1b8]
shrd ebx, ecx, 6
mov ecx, 0x14
add ebx, dword [esi + 0x48]
mul ecx
mov dword [esp + 0x68], ebx
mov ecx, eax
add ecx, 0x30
mov eax, ecx
adc edx, 0
mov dword [esp + 0xc], edx
mov edx, 0xaaaaaaab
lea ebx, [edx - 1]
mul edx
mov dword [esp + 0x38], eax
mov edi, edx
mov eax, ecx
mov ecx, 0xaaaaaaab
mul ebx
mov ebx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
mul ecx
mov ecx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0xc]
mov edx, 0xaaaaaaaa
mul edx
add ecx, edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
adc eax, 0
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
add ebx, ecx
mov dword [esp + 0x38], ebx
adc edx, 0
xor ecx, ecx
add eax, edx
mov edx, dword [esp + 0xc]
adc ecx, ecx
add edx, eax
mov eax, dword [esp + 0x10]
adc eax, ecx
mov ecx, 5
shrd edx, eax, 6
mov eax, dword [esp + 0x1c]
sub eax, edx
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x1b8]
mul ecx
mov ecx, eax
add ecx, 0x30
mov eax, ecx
adc edx, 0
mov dword [esp + 0xc], edx
mov edx, 0xaaaaaaab
lea ebx, [edx - 1]
mul edx
mov dword [esp + 0x38], eax
mov edi, edx
mov eax, ecx
mov ecx, 0xaaaaaaab
mul ebx
mov ebx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
mul ecx
mov ecx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0xc]
mov edx, 0xaaaaaaaa
mul edx
add ecx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
adc edx, 0
mov dword [esp + 0xc], eax
add ebx, ecx
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0xc]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x10]
adc eax, eax
add ebx, edx
adc ecx, eax
mov eax, dword [esp + 0x60]
shrd ebx, ecx, 6
sub eax, ebx
test dword [esi + 0x20], 0x40000000
mov dword [esp + 0x70], eax
je 0x54c476
push 0xffffff
jmp 0x54c47f
push 0x11
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov ebx, dword [esp + 0x34]
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0x8801
lea eax, [esp + 0x68]
push eax
mov eax, dword [esi + 0x1cc]
shr eax, 1
push eax
push dword [esi + 0x1d0]
push ebx
call dword [sym.imp.USER32.dll_DrawTextW]
mov edx, dword [esi + 0x20]
test dl, 0x20
je 0x54c614
mov eax, dword ds:[esp + 0x28]
mov ecx, dword [esi + 0x60]
cmp ecx, dword [eax]
jl 0x54c614
cmp ecx, dword [eax + 8]
jge 0x54c614
test dl, 0x40
je 0x54c5bf
mov eax, dword [esi + 0xd0]
test eax, eax
jne 0x54c4ef
test dl, 8
je 0x54c614
jmp 0x54c4f8
cmp eax, 0x64
jae 0x54c5bf
mov eax, dword ds:[esi + 0x48]
mov ecx, dword [esi + 0x40]
push 0x777777
push dword [esi + 0x184]
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
call dword [sym.imp.GDI32.dll_SetDCPenColor]
mov eax, dword [0x635794]
test eax, eax
jne 0x54c53c
push 0x13
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x635794], eax
push eax
push dword [esi + 0x184]
call dword [sym.imp.GDI32.dll_SelectObject]
push 2
lea eax, [esp + 0x68]
push eax
push dword [esi + 0x184]
call dword [sym.imp.GDI32.dll_Polyline]
test byte [esi + 0x20], 8
mov word [esp + 0x1c], 0
mov byte [esp + 0x1f], 0
jne 0x54c588
imul ecx, dword [esi + 0xd0], 0xff
mov eax, 0x51eb851f
mul ecx
shr edx, 5
mov byte [esp + 0x1e], dl
jmp 0x54c596
mov al, byte [esi + 0xd0]
add al, al
add al, 0x37
mov byte [esp + 0x1e], al
push dword [esp + 0x1c]
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
sub eax, ecx
push eax
push 1
push ecx
push dword [esi + 0x40]
push dword [esi + 0x184]
push eax
push 1
push ecx
push dword [esi + 0x60]
push ebx
call dword [sym.imp.GDI32.dll_GdiAlphaBlend]
jmp 0x54c614
mov eax, dword ds:[esi + 0x48]
push 0x777777
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x44]
push ebx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
call dword [sym.imp.GDI32.dll_SetDCPenColor]
mov eax, dword [0x635794]
test eax, eax
jne 0x54c5fc
push 0x13
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x635794], eax
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push 2
lea eax, [esp + 0x68]
push eax
push ebx
call dword [sym.imp.GDI32.dll_Polyline]
mov edx, dword ds:[esi + 0x20]
test edx, 0x2000000
je 0x54c75b
movups xmm1, xmmword [esi + 0x1a8]
movaps xmm0, xmm1
movd eax, xmm1
psrldq xmm0, 8
movd ecx, xmm0
movups xmmword [esp + 0x64], xmm1
sub ecx, eax
je 0x54c75b
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x68]
je 0x54c75b
nop
test edx, 0x4000000
je 0x54c74f
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x54c74f
push 1
push 1
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esp + 0xc], eax
test eax, eax
je 0x54c748
push 0xd
call dword [sym.imp.USER32.dll_GetSysColorBrush]
push eax
lea eax, [esp + 0x68]
push eax
push ebx
call dword [sym.imp.USER32.dll_FrameRect]
push dword [esp + 0xc]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
movups xmm0, xmmword [0x6245b0]
mov edi, eax
lea eax, [esp + 0x84]
push 0x1b
push eax
push dword [esp + 0x38]
movups xmmword [esp + 0x90], xmm0
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword ds:[esp + 0x70]
mov edx, dword [esp + 0x68]
sub eax, edx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], 0x460000
push dword [esp + 0x18]
push 1
push 1
push 0
push 0
push dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x88]
sub eax, ecx
push eax
push edx
push ecx
push ebx
call dword [sym.imp.GDI32.dll_GdiAlphaBlend]
mov ebx, dword [esp + 0x30]
push edi
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_DeleteObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x54c75b
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
lea eax, [esp + 0x64]
push eax
push ebx
call dword [sym.imp.USER32.dll_DrawFocusRect]
test byte [esi + 0x1e0], 1
je 0x54c77c
mov eax, dword [esi + 0xc]
test eax, eax
je 0x54c77c
test byte [esi + 0x20], 2
jne 0x54c77c
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00583f9f
mov esp, ebp
pop ebp
ret 8