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

Disassembly:
sub esp, 0x138
mov eax, dword [0x5b7a9c]
xor eax, esp
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x144]
mov edx, ecx
push ebp
mov ebp, dword [esp + 0x144]
xor ecx, ecx
push esi
mov esi, dword [esp + 0x144]
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], ebp
cmp dword [edx + 0x58], ecx
je 0x454087
push ebx
push edi
cmp eax, ecx
jne 0x453432
mov eax, dword [edx + 0x74]
mov edi, dword [edx + 0x78]
xor edx, edx
mov dword [esp + 0x20], eax
xor ebx, ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x2c], 2
jmp 0x45344d
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x2c], ecx
mov ecx, dword [0x5c31b4]
mov eax, ecx
imul eax, edi
mov edi, dword [ebp + 4]
sub edx, eax
cmp ebx, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x74], edx
jle 0x45346b
mov edi, ebx
mov eax, edi
sub eax, ebx
cdq
idiv dword [0x5c31a0]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x78], eax
sub edi, edx
mov eax, edi
sub eax, ebx
cdq
idiv dword [0x5c31a0]
mov edx, dword [esp + 0x20]
add eax, edx
xor edx, edx
test eax, eax
setl dl
dec edx
and eax, edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x58]
mov ebx, dword [edx + 0x70]
mov dword [esp + 0x94], ebx
mov ebx, dword [edx + 0x54]
mov edx, dword [edx + 0x58]
add edx, ebx
mov dword [esp + 0x28], edx
mov edx, ecx
imul edx, edx, 0xb
mov dword [esp + 0x88], edx
mov edx, ecx
imul edx, edx, 0x3b
mov dword [esp + 0x60], edx
mov edx, ecx
imul ecx, ecx, 0x4d
imul edx, edx, 0x3d
shl eax, 4
cmp edi, dword [esp + 0x78]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x90], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x10], eax
jge 0x45403a
jmp 0x453500
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x94]
jge 0x45403a
push 0x4e
lea ecx, [esp + 0xac]
mov edx, eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x58]
push edx
call fcn.00451550
mov ebx, dword [0x5c31b4]
mov ecx, dword [esp + 0x74]
imul ebx, ebx, 0xb
sub ebx, dword [esp + 0x24]
cmp ecx, dword [ebp + 8]
jge 0x45357c
cmp ebx, dword [ebp]
jle 0x45357c
mov edx, dword [0x5ba1b8]
push edx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [0x5ba128]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov edx, dword [esp + 0x74]
push 0
push 0xa
lea ecx, [esp + 0xb0]
push ecx
push ebp
push 4
push edi
push edx
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [0x5ba1a8]
push eax
push esi
mov dword [esp + 0x1c], ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [0x5ba118]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [0x5c31a0]
push 0
push 0
push 0
mov edx, ebx
sub edx, dword [0x5c31b4]
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x3c]
push edx
push 0
push 0
add eax, edi
push esi
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0x90], eax
call dword [sym.imp.GDI32.dll_ExtTextOutW]
cmp dword [esp + 0x5c], 0
jne 0x453e0c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x58]
cmp dword [ecx + 0x58], 0
je 0x453e0c
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x28]
jg 0x453e0c
add eax, 0x10
cmp eax, dword [esp + 0x58]
jle 0x453e0c
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0x24]
mov edx, ebx
cmp edx, dword [ebp + 8]
mov dword [esp + 0x80], eax
jge 0x453a23
cmp eax, dword [ebp]
jle 0x453a23
mov eax, dword [esp + 0x40]
xor ebp, ebp
push eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x24], ebp
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x10]
cmp eax, ebx
jle 0x453705
lea ecx, [ebx + 0x10]
cmp eax, ecx
jge 0x453705
sub eax, ebx
cmp eax, 7
lea ebp, [eax + eax*2 + 0xb]
jle 0x45367f
inc ebp
add ebp, 0xfffffff5
test ebp, ebp
jle 0x4536fd
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
push 0
push ebp
lea ecx, [esp + 0xc6]
push ecx
push edx
push 4
push edi
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov ecx, dword [esp + 0x18]
mov ebx, ebp
imul ebx, dword [0x5c31b4]
cmp dword [ecx + 0x88], 0
je 0x4536f5
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp dword [esp + 0x28], eax
jle 0x4536f5
mov eax, dword [esp + 0x14]
lea edx, [ebx + eax]
mov dword [esp + 0x30], eax
mov eax, dword [0x5c31a0]
lea eax, [eax + edi - 1]
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], eax
push ecx
inc eax
push esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
call dword [sym.imp.USER32.dll_InvertRect]
add dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], 1
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x88], 0
jne 0x45372d
mov eax, dword [0x5ba1b4]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [0x5ba124]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
jl 0x45380e
lea eax, [ebx + 0x10]
cmp ecx, eax
jg 0x45380e
mov eax, ecx
sub eax, ebx
cmp eax, 7
lea ecx, [eax + eax*2 + 0xb]
jle 0x45375f
cmp eax, 8
jle 0x45375f
inc ecx
test eax, eax
jle 0x453764
dec ecx
lea eax, [ecx - 0xb]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x4537de
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
push 0
mov ebx, eax
sub ebx, ebp
push ebx
lea eax, [esp + ebp*2 + 0xc6]
push eax
push ecx
push 4
push edi
push edx
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
imul ebx, dword [0x5c31b4]
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x88], 0
mov ebp, dword [esp + 0x14]
je 0x4537d4
mov edx, dword [0x5c31a0]
lea eax, [edx + edi - 1]
mov dword [esp + 0x34], eax
inc eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [ebx + ebp]
push esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], ecx
call dword [sym.imp.USER32.dll_InvertRect]
add ebx, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x88], 0
jne 0x453806
mov edx, dword [0x5ba1a8]
push edx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [0x5ba118]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov dword [esp + 0x20], 1
push 0
push 1
push 0x10
call fcn.00452710
mov edx, dword [esp + 0x4c]
add esp, 0xc
push 0
mov ebx, eax
mov eax, dword [esp + 0x20]
sub ebx, 0xb
sub ebx, ebp
push ebx
lea ecx, [esp + ebp*2 + 0xc6]
push ecx
push edx
push 4
push edi
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov ecx, dword [0x5c31b4]
mov edx, dword [esp + 0x18]
imul ebx, ecx
cmp dword [edx + 0x88], 0
jne 0x453880
mov eax, dword [0x5ba1a8]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [0x5ba118]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
add dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x1c]
jmp 0x4539bd
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
lea eax, [edx + 0x10]
cmp ebp, eax
jl 0x4538fb
lea eax, [edx + 0x20]
cmp ebp, eax
jge 0x4538fb
mov eax, ebp
sub eax, edx
sub eax, 0x10
cmp eax, 7
lea ebp, [eax + eax*2 + 0xb]
jle 0x4538ac
cmp eax, 8
jle 0x4538ac
inc ebp
test eax, eax
jle 0x4538b1
dec ebp
lea eax, [ebp - 0xb]
mov ebp, dword [esp + 0x24]
test eax, eax
jle 0x4538ff
mov edx, dword [0x5c31a0]
imul eax, ecx
mov ecx, dword [esp + 0x1c]
sub eax, ebp
add eax, dword [esp + 0x88]
add ebx, ecx
mov dword [esp + 0x30], eax
lea eax, [edx + edi - 1]
mov dword [esp + 0x34], eax
inc eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x30]
push eax
push esi
mov dword [esp + 0x40], ebx
call dword [sym.imp.USER32.dll_InvertRect]
mov edx, dword [esp + 0x10]
jmp 0x4538ff
mov ebp, dword [esp + 0x24]
cmp edx, dword [esp + 0x28]
je 0x4539a7
cmp dword [esp + 0x44], 0
je 0x453916
mov eax, dword [esp + 0x14]
jmp 0x45391f
mov eax, dword [esp + 0x88]
sub eax, ebp
mov ebx, dword [esp + 0x20]
mov edx, dword [0x5c31a0]
mov dword [esp + 0x30], eax
inc eax
xor ecx, ecx
test ebx, ebx
setne cl
mov dword [esp + 0x38], eax
lea eax, [esp + 0x30]
push eax
push esi
mov dword [esp + 0x3c], edi
sub edx, ecx
add edx, edi
mov dword [esp + 0x44], edx
call dword [sym.imp.USER32.dll_InvertRect]
test ebx, ebx
je 0x45395b
mov eax, dword [esp + 0x1c]
jmp 0x453961
mov eax, dword [esp + 0x60]
sub eax, ebp
mov ecx, dword [0x5c31a0]
push 0
push 0
push 0
mov dword [esp + 0x3c], eax
inc eax
lea edx, [esp + 0x3c]
push edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
push eax
push 0
push 0
add ecx, edi
push esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], ecx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
lea ecx, [esp + 0x30]
push ecx
push esi
call dword [sym.imp.USER32.dll_InvertRect]
mov eax, dword [esp + 0x38]
jmp 0x4539b1
mov eax, dword [esp + 0x60]
sub eax, ebp
mov dword [esp + 0x38], eax
mov ebx, dword [esp + 0x60]
sub ebx, ebp
cmp ebx, eax
jg 0x4539bd
mov ebx, eax
push 0
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov edx, dword [0x5ba1a8]
push edx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [0x5ba118]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov ecx, dword [esp + 0x80]
mov edx, dword [0x5c31a0]
push 0
push 0
push 0
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x3c]
push ecx
push 0
push 0
add edx, edi
push esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], edx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x84]
sub ebx, dword [esp + 0x24]
cmp eax, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], ebx
jge 0x453fcf
cmp ebx, dword [ebp]
jle 0x453fcf
xor ebx, ebx
push ebp
mov dword [esp + 0x80], ebx
mov dword [esp + 0x90], ebx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x58], edx
mov ecx, edx
jl 0x453b3d
mov eax, dword [esp + 0x58]
lea edx, [ecx + 0x10]
cmp eax, edx
jge 0x453b3d
mov ebx, eax
sub ebx, ecx
test ebx, ebx
jle 0x453b35
cmp dword [0x5ed6b0], 0
je 0x453ab7
mov ecx, dword [esp + 0x14]
push ebx
lea eax, [esp + 0x126]
push eax
push ebp
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push esi
call fcn.00452750
jmp 0x453ad2
mov eax, dword [esp + 0x14]
push 0
push ebx
lea edx, [esp + 0x12a]
push edx
push ebp
push 4
push edi
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov ecx, dword [esp + 0x18]
mov eax, ebx
imul eax, dword [0x5c31b4]
cmp dword [ecx + 0x88], 0
mov dword [esp + 0x20], eax
jne 0x453b2d
mov ecx, dword [esp + 0x10]
add ecx, 0x10
cmp dword [esp + 0x28], ecx
jle 0x453b2d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
add edx, eax
mov dword [esp + 0x48], eax
mov eax, dword [0x5c31a0]
lea eax, [eax + edi - 1]
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], eax
push ecx
inc eax
push esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
call dword [sym.imp.USER32.dll_InvertRect]
mov eax, dword [esp + 0x20]
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x7c], 1
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x88], 0
je 0x453b69
mov eax, dword [0x5ba1b4]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [0x5ba124]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp eax, ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
jl 0x453c5e
lea edx, [ecx + 0x10]
cmp eax, edx
jg 0x453c5e
sub eax, ecx
mov dword [esp + 0x20], eax
test eax, eax
jle 0x453c2b
sub eax, ebx
cmp dword [0x5ed6b0], 0
mov dword [esp + 0x1c], eax
je 0x453bc1
mov ecx, dword [esp + 0x14]
push eax
lea eax, [esp + ebx*2 + 0x126]
push eax
push ebp
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push esi
call fcn.00452750
jmp 0x453bdc
push 0
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + ebx*2 + 0x12a]
push edx
push ebp
push 4
push edi
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
imul ebx, dword [0x5c31b4]
cmp dword [ecx + 0x88], 0
mov ebp, dword [esp + 0x14]
jne 0x453c21
mov eax, dword [0x5c31a0]
lea eax, [eax + edi - 1]
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], eax
push ecx
lea edx, [ebx + ebp]
inc eax
push esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
call dword [sym.imp.USER32.dll_InvertRect]
add ebx, ebp
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x88], 0
je 0x453c53
mov eax, dword [0x5ba1a8]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [0x5ba118]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov dword [esp + 0x8c], 1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov ebp, 0x10
sub ebp, ebx
cmp dword [0x5ed6b0], 0
lea edx, [esp + ebx*2 + 0x122]
je 0x453c8e
push ebp
push edx
push eax
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push esi
call fcn.00452750
jmp 0x453c9e
push 0
push ebp
push edx
push eax
push 4
push edi
push ecx
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov ecx, dword [0x5c31b4]
mov edx, dword [esp + 0x18]
imul ebp, ecx
cmp dword [edx + 0x88], 0
je 0x453ce5
mov eax, dword [0x5ba1a8]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [0x5ba118]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov ebx, dword [esp + 0x44]
push 0
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov ebp, dword [esp + 0x40]
jmp 0x453fcf
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea eax, [ebx + 0x10]
cmp edx, eax
jl 0x453d49
lea eax, [ebx + 0x20]
cmp edx, eax
jge 0x453d49
mov eax, edx
sub eax, ebx
sub eax, 0x10
test eax, eax
jle 0x453d49
mov edx, dword [0x5c31a0]
imul eax, ecx
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
add eax, dword [esp + 0x90]
add ebp, ecx
mov dword [esp + 0x48], eax
lea eax, [edx + edi - 1]
mov dword [esp + 0x4c], eax
inc eax
mov dword [esp + 0x54], eax
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x54], ebp
mov ebp, dword [sym.imp.USER32.dll_InvertRect]
push esi
call ebp
mov edx, dword [esp + 0x28]
jmp 0x453d4f
mov ebp, dword [sym.imp.USER32.dll_InvertRect]
cmp ebx, edx
je 0x453dea
cmp dword [esp + 0x7c], 0
mov eax, dword [esp + 0x14]
jne 0x453d69
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x8c]
mov edx, dword [0x5c31a0]
mov dword [esp + 0x48], eax
inc eax
xor ecx, ecx
test ebx, ebx
setne cl
mov dword [esp + 0x50], eax
lea eax, [esp + 0x48]
push eax
push esi
mov dword [esp + 0x54], edi
sub edx, ecx
add edx, edi
mov dword [esp + 0x5c], edx
call ebp
mov eax, dword [esp + 0x1c]
test ebx, ebx
mov ebx, dword [esp + 0x44]
jne 0x453da8
mov eax, ebx
mov ecx, dword [0x5c31a0]
push 0
push 0
push 0
mov dword [esp + 0x54], eax
inc eax
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
push eax
push 0
push 0
add ecx, edi
push esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], ecx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
lea ecx, [esp + 0x48]
push ecx
push esi
call ebp
mov eax, dword [esp + 0x50]
jmp 0x453df4
mov ebx, dword [esp + 0x44]
mov eax, ebx
mov dword [esp + 0x50], eax
cmp ebx, eax
jg 0x453dfa
mov ebx, eax
push 0
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov ebp, dword [esp + 0x40]
jmp 0x453fcf
cmp dword [0x5ed6b0], 0
push 0
lea edx, [esp + 0xc2]
je 0x453e51
push 0x32
push edx
push ebp
push 4
push edi
push ebx
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov ecx, dword [0x5c31b4]
imul ecx, ecx, 0x32
push 0x10
lea eax, [esp + 0x126]
push eax
push ebp
push edi
add ecx, ebx
push ecx
mov ecx, dword [esp + 0x2c]
push esi
call fcn.00452750
jmp 0x453e60
push 0x42
push edx
push ebp
push 4
push edi
push ebx
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
cmp dword [esp + 0x5c], 0
jne 0x453e8d
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x58]
cmp dword [eax + 0x58], 0
jne 0x453e8d
mov eax, dword [esp + 0x10]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp eax, dword [ecx + 0x6c]
jne 0x453e8d
push 0
call fcn.00452ae0
mov ebx, dword [esp + 0x84]
sub ebx, dword [esp + 0x24]
mov edx, dword [0x5c31a0]
push 0
push 0
push 0
inc ebx
lea ecx, [ebx - 1]
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x3c]
push ecx
push 0
push 0
add edx, edi
push esi
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0x90], edx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
cmp dword [esp + 0x5c], 0
jne 0x453fcf
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x58]
cmp dword [eax + 0x58], 0
jle 0x453fcf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x58]
lea edx, [eax + 0x10]
cmp ecx, edx
jl 0x453fcf
add eax, 0x20
cmp ecx, eax
jge 0x453fcf
push ebp
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x88]
sub ecx, 0x10
test eax, eax
jne 0x453f3f
lea edx, [ecx + 0x3d]
jmp 0x453f49
cmp ecx, 7
lea edx, [ecx + ecx*2 + 0xb]
jle 0x453f49
inc edx
imul edx, dword [0x5c31b4]
sub edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x10]
add edx, 0x20
cmp ecx, edx
jge 0x453f8d
sub ecx, dword [esp + 0x10]
sub ecx, 0x10
test eax, eax
jne 0x453f77
lea eax, [ecx + 0x3d]
jmp 0x453f97
cmp ecx, 7
lea eax, [ecx + ecx*2 + 0xb]
jle 0x453f86
cmp ecx, 8
jle 0x453f86
inc eax
test ecx, ecx
jle 0x453f97
dec eax
jmp 0x453f97
neg eax
sbb eax, eax
and eax, 0xffffffee
add eax, 0x4d
imul eax, dword [0x5c31b4]
sub eax, dword [esp + 0x24]
mov ecx, dword [0x5c31a0]
inc eax
mov dword [esp + 0x6c], eax
lea eax, [ecx + edi - 1]
lea edx, [esp + 0x64]
mov dword [esp + 0x68], eax
push edx
inc eax
push esi
mov dword [esp + 0x78], eax
call dword [sym.imp.USER32.dll_InvertRect]
push 0
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov eax, dword [ebp + 8]
cmp ebx, eax
jge 0x454025
mov ecx, dword [ebp]
cmp ecx, ebx
mov dword [esp + 0x98], ecx
jg 0x453feb
mov dword [esp + 0x98], ebx
mov edx, dword [esp + 0x2c]
push 0
push 0
push 0
lea ecx, [esp + 0xa4]
push ecx
push edx
mov dword [esp + 0xb4], eax
mov eax, dword [0x5c31a0]
push 0
push 0
add eax, edi
push esi
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc4], eax
call dword [sym.imp.GDI32.dll_ExtTextOutW]
add edi, dword [0x5c31a0]
add dword [esp + 0x10], 0x10
cmp edi, dword [esp + 0x78]
jl 0x453500
cmp edi, dword [ebp + 0xc]
jge 0x454085
mov eax, dword [0x5ba118]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [ebp]
push ecx
push edx
push edi
push eax
lea ecx, [esp + 0xa8]
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x2c]
push 0
push 0
push 0
lea edx, [esp + 0xa4]
push edx
push eax
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
pop edi
pop ebx
mov ecx, dword [esp + 0x13c]
pop esi
pop ebp
xor ecx, esp
call fcn.0053fa67
add esp, 0x138
ret 0xc