Function at 0x5c799f
Capabilities:
Enumerate pe sections

Disassembly:
push 0xffffffffffffffff
push 0x7be6a5
mov eax, dword fs:[0]
push eax
sub esp, 0x658
mov eax, dword [0x89b044]
xor eax, esp
mov dword [esp + 0x654], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x89b044]
xor eax, esp
push eax
lea eax, [esp + 0x66c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x690]
mov ebp, dword [esp + 0x67c]
mov edx, dword [esp + 0x680]
mov esi, dword [esp + 0x684]
mov ecx, dword [esp + 0x688]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x694]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x698]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x6a4]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x120], eax
test eax, eax
je 0x5c7496
mov byte [eax], 0
test ecx, ecx
je 0x5c9ad8
test edx, edx
je 0x5c9ad8
push esi
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x5c9ad8
mov ebx, dword [esp + 0x69c]
shr ebx, 0xa
not bl
and bl, 1
push 0xa
lea ecx, [esp + 0x58]
mov byte [esp + 0x1d], bl
call fcn.0059c800
xor edi, edi
push 0xa
lea ecx, [esp + 0x70]
mov dword [esp + 0x678], edi
call fcn.0059c800
push 0xa
lea ecx, [esp + 0x64]
mov byte [esp + 0x678], 1
call fcn.0059c800
lea ecx, [esp + 0x13c]
xor eax, eax
push ecx
push ebp
mov byte [esp + 0x67c], 2
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
call dword [sym.imp.GDI32.dll_GetClipBox]
mov edi, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea edx, [esp + 0x13c]
push edx
call edi
push esi
mov dword [esp + 0xe4], eax
call edi
mov dword [esp + 0x124], eax
test bl, bl
je 0x5c755e
push 1
push eax
push ebp
call dword [sym.imp.GDI32.dll_ExtSelectClipRgn]
mov eax, dword [esp + 0x6a0]
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0xb0], ebx
cmp eax, 0xffffffff
je 0x5c7594
mov ecx, dword [esp + 0x1c]
push eax
call fcn.00597fd0
cmp eax, ebx
je 0x5c75c3
lea ebx, [eax + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x28], ebx
push eax
jmp 0x5c75b5
mov edi, dword [esp + 0x1c]
mov ecx, edi
call fcn.005977f0
mov ebx, eax
add ebx, 0x90
mov ecx, edi
mov dword [esp + 0x28], ebx
call fcn.005977f0
mov ecx, dword [eax]
push ecx
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0xb0], eax
push 1
push ebp
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esp + 0x68c]
mov edx, eax
shr edx, 8
movzx ecx, dl
movzx edx, al
shl edx, 8
shr eax, 0x10
or ecx, edx
movzx eax, al
shl ecx, 8
or ecx, eax
push ecx
push ebp
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [esp + 0x1c]
call fcn.005977b0
mov ecx, eax
shr ecx, 8
movzx edx, cl
movzx ecx, al
shl ecx, 8
shr eax, 0x10
or edx, ecx
movzx eax, al
shl edx, 8
or edx, eax
push edx
push ebp
call dword [sym.imp.GDI32.dll_SetBkColor]
mov edi, dword [esp + 0x69c]
and edi, 1
mov dword [esp + 0x128], edi
jne 0x5c7643
test byte [esp + 0x69c], 0xe
je 0x5c7785
test dword [esp + 0x69c], 0x400
jne 0x5c7785
mov ecx, dword [esp + 0x69c]
xor eax, eax
push eax
push 0xffffffffffffffff
or ecx, 0x400
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x8c]
push edx
push eax
push eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x6a4]
push eax
mov eax, dword [esp + 0x38]
push ecx
lea edx, [esp + 0xd4]
push edx
push eax
push ebp
mov dword [esp + 0xe8], 0x270f
mov dword [esp + 0xec], 0x64
call fcn.005c73f0
add esp, 0x2c
test byte [esp + 0x69c], 0x20
je 0x5c771f
mov ebp, dword [esp + 0xb4]
test edi, edi
mov edi, dword [esp + 0xbc]
je 0x5c770c
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x80], eax
mov eax, edi
sub eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x80]
sar eax, 1
sub edx, eax
lea eax, [edx + ecx]
mov dword [esi], eax
sub eax, ebp
add eax, edi
mov dword [esi + 8], eax
test byte [esp + 0x69c], 2
je 0x5c771f
mov ecx, dword [esi + 8]
sub ecx, edi
add ecx, ebp
mov dword [esi], ecx
test byte [esp + 0x69c], 4
mov ebp, dword [esp + 0xc0]
mov ecx, dword [esp + 0xb8]
je 0x5c7771
mov edi, dword [esi + 4]
mov eax, dword [esi + 0xc]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x80], eax
mov eax, ebp
sub eax, ecx
mov ecx, dword [esp + 0x80]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
lea eax, [ecx + edi]
mov ecx, dword [esp + 0xb8]
mov dword [esi + 4], eax
sub eax, ecx
add eax, ebp
mov dword [esi + 0xc], eax
test byte [esp + 0x69c], 8
je 0x5c7785
mov edx, dword [esi + 0xc]
sub edx, ebp
add edx, ecx
mov dword [esi + 4], edx
lea ecx, [esp + 0x5e4]
mov byte [esp + 0x53], 0
call fcn.0059cc50
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x14c]
push eax
mov byte [esp + 0x678], 3
call fcn.00596800
mov ecx, dword [esp + 0xac]
mov ebp, dword [esp + 0xa8]
xor edi, edi
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x88]
cmp edi, dword [edx]
jge 0x5c7812
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x7c]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x5c77ff
push ebp
lea ecx, [esp + 0x5e8]
call fcn.0059cf20
mov byte [esp + 0x53], 1
add dword [esp + 0x7c], 0x10
inc edi
add ebp, 0x84
cmp byte [esp + 0x53], 0
je 0x5c77c3
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [esp + 0x40], ecx
xor ebp, ebp
lea ecx, [esp + 0x60]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x7c], ebp
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [ebx + 0x10]
push ebp
add eax, dword [ebx]
lea ecx, [esp + 0x118]
mov dword [esp + 0x30], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], ebp
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1f], 0
mov byte [esp + 0x37], 0
mov byte [esp + 0x27], 0
mov dword [esp + 0xf0], ebp
call fcn.0059c800
push ebp
lea ecx, [esp + 0x100]
mov byte [esp + 0x678], 4
call fcn.0059c800
push ebp
lea ecx, [esp + 0x10c]
mov byte [esp + 0x678], 5
call fcn.0059c800
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov byte [esp + 0x674], 6
mov dword [esp + 0xdc], eax
mov byte [esp + 0x7a], 0
mov byte [esp + 0x7b], 0
mov byte [esp + 0x4b], 0
mov dword [esp + 0x84], ebp
mov byte [esp + 0x18], 0
cmp cx, bp
je 0x5c99c6
jmp 0x5c78f0
mov edx, dword [esp + 0x4c]
mov edx, dword [edx + 8]
mov ebx, dword [esp + 0x3c]
cmp ebx, edx
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x34], edx
jge 0x5c962b
cmp cx, 0xa
je 0x5c9631
cmp byte [esp + 0x1a], 0
jne 0x5c962b
cmp byte [esp + 0x1b], 0
jne 0x5c90e3
cmp cx, 0x3c
je 0x5c7942
cmp cx, 0x7b
jne 0x5c896a
lea edx, [eax + 2]
mov dword [esp + 0x34], edx
movzx edx, word [edx]
cmp dx, 0x61
jb 0x5c896a
cmp dx, 0x7a
ja 0x5c896a
movzx edx, word [eax + 4]
cmp dx, 0x20
je 0x5c797a
cmp dx, 0x3e
je 0x5c797a
cmp dx, 0x7d
jne 0x5c896a
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
add ecx, 0xffffff9f
cmp ecx, 0x18
ja case.0x5c7998.100
movzx ecx, byte [ecx + 0x5c9c20]
jmp dword [ecx*4 + 0x5c9bec]
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x5c79c9
cmp cx, 0x20
ja 0x5c79c9
push eax
call ebx
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c79b4
mov edx, dword [esp + 0x88]
cmp ebp, dword [edx]
jge 0x5c7a42
cmp byte [esp + 0x18], 0
jne 0x5c7a42
mov esi, ebp
imul esi, esi, 0x84
add esi, dword [esp + 0xa8]
mov ecx, esi
call fcn.0059ced0
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
test cx, cx
je 0x5c7a42
lea ecx, [ecx]
cmp cx, 0x3e
je 0x5c7a42
cmp cx, 0x7d
je 0x5c7a42
push eax
call ebx
mov edi, eax
mov eax, dword [esp + 0x14]
cmp eax, edi
jae 0x5c7a3a
lea esp, [esp]
movzx ecx, word [eax]
add eax, 2
push ecx
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.0059d100
mov eax, dword [esp + 0x14]
cmp eax, edi
jb 0x5c7a20
movzx ecx, word [eax]
test cx, cx
jne 0x5c7a00
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.00597730
cmp byte [esp + 0x53], 0
mov ebx, eax
je 0x5c7a8f
mov eax, dword [esp + 0x88]
cmp ebp, dword [eax]
jge 0x5c7a8f
imul ebp, ebp, 0x84
add ebp, dword [esp + 0xa8]
mov ecx, ebp
call fcn.0059ccc0
push eax
lea ecx, [esp + 0x5e8]
call fcn.0059d600
test al, al
je 0x5c7a8f
mov ecx, esi
call fcn.00597770
mov ebx, eax
push ebx
lea ecx, [esp + 0x70]
call fcn.0059c8f0
mov ecx, ebx
shr ecx, 8
movzx eax, bl
movzx edx, cl
shl eax, 8
or edx, eax
shr ebx, 0x10
movzx ecx, bl
shl edx, 8
or edx, ecx
push edx
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x6a0]
mov ecx, esi
cmp eax, 0xffffffff
je 0x5c7ad6
push eax
call fcn.00597fd0
jmp 0x5c7adb
call fcn.005977f0
lea ecx, [esp + 0x54]
call fcn.0059ca80
test eax, eax
jle 0x5c7afc
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
mov byte [esp + 0x33], 1
jmp 0x5c7c35
mov ecx, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6a0]
cmp eax, 0xffffffff
je 0x5c7b3b
push eax
call fcn.00597fd0
jmp 0x5c7b40
call fcn.005977f0
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.0059ca80
test eax, eax
jle 0x5c7b65
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov esi, eax
cmp byte [esi + 0x8c], 0
jne 0x5c7c35
movzx edx, byte [esi + 0x8e]
movzx eax, byte [esi + 0x8d]
mov ecx, dword [esi + 0x88]
push edx
push eax
push 1
lea edi, [esi + 4]
push ecx
mov ecx, edi
call fcn.0059ccc0
mov ebx, dword [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.00597c10
test eax, eax
jne 0x5c7bcd
movzx edx, byte [esi + 0x8e]
movzx eax, byte [esi + 0x8d]
mov ecx, dword [esi + 0x88]
push edx
push eax
push 1
push ecx
mov ecx, edi
call fcn.0059ccc0
push eax
mov ecx, ebx
call fcn.00599220
push eax
mov ecx, ebx
call fcn.00598050
mov edi, eax
push edi
lea ecx, [esp + 0x58]
call fcn.0059c8f0
mov edx, dword [edi]
mov eax, dword [esp + 0x24]
push edx
push eax
lea esi, [edi + 0x90]
mov dword [esp + 0x30], esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [esi]
add eax, dword [esi + 0x10]
cmp dword [esp + 0x2c], eax
jg 0x5c7c35
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [esi]
add eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
test cx, cx
je 0x5c7c62
cmp cx, 0x3e
je 0x5c7c62
cmp cx, 0x7d
je 0x5c7c62
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jne 0x5c7c47
push eax
call esi
mov dword [esp + 0x14], eax
jmp 0x5c97cc
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x5c7c98
mov esi, dword [sym.imp.USER32.dll_CharNextW]
cmp cx, 0x20
ja 0x5c7c98
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c7c83
cmp word [eax], 0x23
jne 0x5c7ca5
add eax, 2
mov dword [esp + 0x14], eax
push 0x10
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.0072c7d5
add esp, 0xc
mov ebx, eax
push ebx
lea ecx, [esp + 0x70]
call fcn.0059c8f0
mov edx, ebx
shr edx, 8
movzx ecx, bl
movzx eax, dl
shl ecx, 8
or eax, ecx
shr ebx, 0x10
movzx edx, bl
shl eax, 8
or eax, edx
push eax
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp 0x5c7c35
mov edi, dword [sym.imp.USER32.dll_CharNextW]
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x5c7d17
cmp cx, 0x20
ja 0x5c7d17
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c7d02
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
mov esi, eax
call fcn.0072c7d5
add esp, 0xc
cmp esi, dword [esp + 0x14]
je 0x5c7d62
mov ecx, dword [esp + 0x1c]
push eax
call fcn.00597fd0
mov esi, eax
push esi
lea ecx, [esp + 0x58]
call fcn.0059c8f0
mov edx, dword [esi]
mov eax, dword [esp + 0x24]
push edx
lea edi, [esi + 0x90]
push eax
mov dword [esp + 0x30], edi
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x5c7fc9
lea ecx, [esp + 0x350]
call fcn.0059cc50
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x674], 7
mov dword [esp + 0x38], 0xa
call fcn.0059cc50
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov byte [esp + 0x674], 8
mov byte [esp + 0xe4], 0
mov byte [esp + 0xf0], 0
mov byte [esp + 0xe8], 0
test cx, cx
je 0x5c7dfc
cmp cx, 0x3e
je 0x5c7dfc
cmp cx, 0x7d
je 0x5c7dfc
cmp cx, 0x20
je 0x5c7dfc
push eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x5c7df4
movzx ecx, word [eax]
add eax, 2
push ecx
lea ecx, [esp + 0x354]
mov dword [esp + 0x18], eax
call fcn.0059d100
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x5c7dd5
movzx ecx, word [eax]
test cx, cx
jne 0x5c7db6
movzx ecx, word [eax]
test cx, cx
jbe 0x5c7e19
cmp cx, 0x20
ja 0x5c7e19
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c7e04
movzx ecx, word [eax]
push ecx
call fcn.00724465
add esp, 4
test eax, eax
je 0x5c7e41
mov eax, dword [esp + 0x14]
push 0xa
lea edx, [esp + 0x18]
push edx
push eax
call fcn.0072c7d5
add esp, 0xc
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
test cx, cx
jbe 0x5c7e65
lea ecx, [ecx]
cmp cx, 0x20
ja 0x5c7e65
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c7e50
movzx ecx, word [eax]
test cx, cx
je 0x5c7eb7
lea ecx, [ecx]
cmp cx, 0x3e
je 0x5c7eb7
cmp cx, 0x7d
je 0x5c7eb7
push eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x5c7eaf
lea esp, [esp]
movzx ecx, word [eax]
add eax, 2
push ecx
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x18], eax
call fcn.0059d100
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x5c7e90
movzx ecx, word [eax]
test cx, cx
jne 0x5c7e70
lea ecx, [esp + 0x1c4]
call fcn.0059d1c0
push 0
push str.bold
lea ecx, [esp + 0x1cc]
call fcn.0059d220
test eax, eax
jl 0x5c7ee2
mov byte [esp + 0xe4], 1
push 0
push str.underline
lea ecx, [esp + 0x1cc]
call fcn.0059d220
test eax, eax
jl 0x5c7f01
mov byte [esp + 0xf0], 1
push 0
push str.italic
lea ecx, [esp + 0x1cc]
call fcn.0059d220
test eax, eax
jl 0x5c7f20
mov byte [esp + 0xe8], 1
mov edi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xf0]
mov ebp, dword [esp + 0xe4]
mov ecx, dword [esp + 0x38]
push edi
push ebx
push ebp
push ecx
lea ecx, [esp + 0x360]
call fcn.0059ccc0
mov esi, dword [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00597c10
test eax, eax
jne 0x5c7f75
mov edx, dword [esp + 0x38]
push edi
push ebx
push ebp
push edx
lea ecx, [esp + 0x360]
call fcn.0059ccc0
push eax
mov ecx, esi
call fcn.00599220
push eax
mov ecx, esi
call fcn.00598050
mov esi, eax
push esi
lea ecx, [esp + 0x58]
call fcn.0059c8f0
mov eax, dword [esi]
mov ecx, dword [esp + 0x24]
push eax
lea edi, [esi + 0x90]
push ecx
mov dword [esp + 0x30], edi
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x674], 7
call fcn.0059cc80
lea ecx, [esp + 0x350]
mov byte [esp + 0x674], 6
call fcn.0059cc80
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [edi]
add eax, dword [edi + 0x10]
cmp dword [esp + 0x2c], eax
jg 0x5c7c35
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [edi]
add eax, dword [edi + 0x10]
jmp 0x5c7c31
lea ebp, [eax - 2]
add eax, 2
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x460]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x1c], eax
call fcn.0059d4a0
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
mov byte [esp + 0x674], 9
test cx, cx
jbe 0x5c8056
cmp cx, 0x20
ja 0x5c8056
push eax
call ebx
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c8041
lea ecx, [esp + 0x3d4]
call fcn.0059cc50
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov byte [esp + 0x674], 0xa
test cx, cx
je 0x5c80bc
cmp cx, 0x3e
je 0x5c80bc
cmp cx, 0x7d
je 0x5c80bc
cmp cx, 0x20
je 0x5c80bc
push eax
call ebx
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x5c80b4
movzx ecx, word [eax]
add eax, 2
push ecx
lea ecx, [esp + 0x3d8]
mov dword [esp + 0x18], eax
call fcn.0059d100
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x5c8095
movzx ecx, word [eax]
test cx, cx
jne 0x5c8076
lea ecx, [esp + 0x3d4]
call fcn.0059cec0
test al, al
je 0x5c81ed
mov eax, dword [esp + 0x6a0]
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, 0xffffffff
je 0x5c80ea
push eax
call fcn.00597fd0
jmp 0x5c80ef
call fcn.005977f0
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.0059ca80
test eax, eax
jle 0x5c8114
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov esi, eax
cmp byte [esi + 0x8e], 0
jne 0x5c86d2
movzx edx, byte [esi + 0x8d]
movzx eax, byte [esi + 0x8c]
mov ecx, dword [esi + 0x88]
push 1
push edx
push eax
lea edi, [esi + 4]
push ecx
mov ecx, edi
call fcn.0059ccc0
mov ebx, dword [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.00597c10
test eax, eax
jne 0x5c817c
movzx edx, byte [esi + 0x8d]
movzx eax, byte [esi + 0x8c]
mov ecx, dword [esi + 0x88]
push 1
push edx
push eax
push ecx
mov ecx, edi
call fcn.0059ccc0
push eax
mov ecx, ebx
call fcn.00599220
push eax
mov ecx, ebx
call fcn.00598050
mov esi, eax
push esi
lea ecx, [esp + 0x58]
call fcn.0059c8f0
mov edx, dword [esi]
mov eax, dword [esp + 0x24]
push edx
lea edi, [esi + 0x90]
push eax
mov dword [esp + 0x30], edi
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [edi]
add eax, dword [edi + 0x10]
cmp dword [esp + 0x2c], eax
jg 0x5c86d2
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [edi]
add eax, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
jmp 0x5c86d2
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
test cx, cx
jbe 0x5c8215
lea esp, [esp]
cmp cx, 0x20
ja 0x5c8215
push eax
call ebx
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c8200
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.0072c7d5
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], eax
test esi, esi
jg 0x5c8238
mov esi, 1
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
test cx, cx
jbe 0x5c8259
cmp cx, 0x20
ja 0x5c8259
push eax
call ebx
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c8244
push 0xa
lea edx, [esp + 0x18]
push edx
push eax
call fcn.0072c7d5
add esp, 0xc
mov dword [esp + 0x94], eax
test eax, eax
jl 0x5c8278
cmp eax, esi
jl 0x5c8283
mov dword [esp + 0x94], 0
push 0x8027fc
lea ecx, [esp + 0x45c]
call fcn.0059cef0
push eax
call fcn.00723723
add esp, 8
test eax, eax
jne 0x5c82de
push str.res
lea ecx, [esp + 0x45c]
call fcn.0059cef0
push eax
call fcn.00723723
add esp, 8
test eax, eax
jne 0x5c82de
push eax
push eax
lea ecx, [esp + 0x3dc]
call fcn.0059ccc0
mov ecx, dword [esp + 0x24]
push eax
call fcn.0059c210
mov ebx, eax
jmp 0x5c8564
lea ecx, [esp + 0x560]
call fcn.0059cc50
lea ecx, [esp + 0x4dc]
mov byte [esp + 0x674], 0xb
call fcn.0059cc50
lea ecx, [esp + 0x458]
mov byte [esp + 0x674], 0xc
call fcn.0059cef0
lea ecx, [esp + 0x2cc]
mov esi, eax
call fcn.0059cc50
lea ecx, [esp + 0x248]
mov byte [esp + 0x674], 0xd
call fcn.0059cc50
cmp word [esi], 0
mov byte [esp + 0x674], 0xe
je 0x5c84e9
lea ecx, [esp + 0x2cc]
call fcn.0059ced0
lea ecx, [esp + 0x248]
call fcn.0059ced0
movzx eax, word [esi]
test ax, ax
jbe 0x5c8379
cmp ax, 0x20
ja 0x5c8379
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
ja 0x5c8366
movzx eax, word [esi]
test ax, ax
je 0x5c83bf
cmp ax, 0x3d
je 0x5c83bf
cmp ax, 0x20
jbe 0x5c83bf
push esi
call ebx
mov edi, eax
cmp esi, edi
jae 0x5c83b7
jmp 0x5c83a0
movzx eax, word [esi]
push eax
lea ecx, [esp + 0x2d0]
call fcn.0059d100
add esi, 2
cmp esi, edi
jb 0x5c83a0
movzx eax, word [esi]
test ax, ax
jne 0x5c8381
movzx eax, word [esi]
test ax, ax
jbe 0x5c83da
cmp ax, 0x20
ja 0x5c83da
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
ja 0x5c83c7
mov ax, word [esi]
add esi, 2
cmp ax, 0x3d
jne 0x5c84e9
movzx eax, word [esi]
test ax, ax
jbe 0x5c8405
cmp ax, 0x20
ja 0x5c8405
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
ja 0x5c83f2
mov cx, word [esi]
add esi, 2
cmp cx, 0x27
jne 0x5c84e9
movzx eax, word [esi]
test ax, ax
je 0x5c844f
cmp ax, 0x27
je 0x5c844f
push esi
call ebx
mov edi, eax
cmp esi, edi
jae 0x5c8447
lea esp, [esp]
movzx eax, word [esi]
push eax
lea ecx, [esp + 0x24c]
call fcn.0059d100
add esi, 2
cmp esi, edi
jb 0x5c8430
movzx eax, word [esi]
test ax, ax
jne 0x5c841d
mov dx, word [esi]
add esi, 2
cmp dx, 0x27
jne 0x5c84e9
lea ecx, [esp + 0x248]
call fcn.0059cec0
test al, al
jne 0x5c84d3
push 0x8027e4
lea ecx, [esp + 0x2d0]
call fcn.0059d600
test al, al
jne 0x5c84bf
push 0x8027dc
lea ecx, [esp + 0x2d0]
call fcn.0059d600
test al, al
jne 0x5c84bf
push str.restype
lea ecx, [esp + 0x2d0]
call fcn.0059d600
test al, al
je 0x5c84d3
lea eax, [esp + 0x248]
push eax
lea ecx, [esp + 0x564]
jmp 0x5c84ce
lea ecx, [esp + 0x248]
push ecx
lea ecx, [esp + 0x4e0]
call fcn.0059cf20
mov dx, word [esi]
add esi, 2
cmp dx, 0x20
jne 0x5c84e9
cmp word [esi], 0
jne 0x5c8346
push 0
lea ecx, [esp + 0x564]
call fcn.0059ccc0
push eax
lea ecx, [esp + 0x4e4]
call fcn.0059ccc0
mov ecx, dword [esp + 0x24]
push eax
call fcn.0059c210
lea ecx, [esp + 0x248]
mov ebx, eax
mov byte [esp + 0x674], 0xd
call fcn.0059cc80
lea ecx, [esp + 0x2cc]
mov byte [esp + 0x674], 0xc
call fcn.0059cc80
lea ecx, [esp + 0x4dc]
mov byte [esp + 0x674], 0xb
call fcn.0059cc80
lea ecx, [esp + 0x560]
mov byte [esp + 0x674], 0xa
call fcn.0059cc80
mov ebp, dword [esp + 0x38]
test ebx, ebx
je 0x5c86d0
mov ecx, dword [esp + 0x34]
cmp ecx, 1
mov edi, dword [ebx + 4]
mov esi, dword [ebx + 8]
jle 0x5c8582
mov eax, edi
cdq
idiv ecx
mov edi, eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
lea ecx, [edi + eax]
cmp ecx, dword [edx + 8]
mov dword [esp + 0x34], ecx
jle 0x5c85ae
cmp eax, dword [edx]
jle 0x5c85ae
test byte [esp + 0x69c], 0x20
jne 0x5c85ae
mov byte [esp + 0x1a], 1
jmp 0x5c86d2
xor ebp, ebp
cmp byte [esp + 0x19], 0
mov dword [esp + 0x38], ebp
je 0x5c86a7
cmp byte [esp + 0x18], 0
je 0x5c86a7
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x40]
mov ebp, ecx
add ecx, edx
push ecx
mov ecx, dword [esp + 0x38]
push ecx
sub ebp, esi
add edx, ebp
push edx
push eax
lea ecx, [esp + 0x13c]
call fcn.0059c6a0
cmp esi, dword [esp + 0x84]
jge 0x5c861e
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [esp + 0x138]
neg ecx
add eax, ecx
mov dword [esp + 0x138], eax
sub eax, esi
mov dword [esp + 0x130], eax
push esi
push edi
push 0
push 0
lea ecx, [esp + 0x1b4]
call fcn.0059c6a0
mov eax, dword [esp + 0x94]
mov edx, eax
inc eax
imul edx, edi
imul eax, edi
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x1c4]
mov dword [esp + 0x1b4], edx
mov dword [esp + 0x1bc], eax
call fcn.0059c6a0
movzx eax, byte [ebx + 0xc]
push 0
push 0
push 0
push 0
push 0xff
push eax
lea ecx, [esp + 0x1cc]
push ecx
lea edx, [esp + 0x1c0]
push edx
mov edx, dword [ebx]
lea eax, [esp + 0x14c]
push eax
mov ecx, eax
mov eax, dword [esp + 0x48]
push ecx
push edx
push eax
call fcn.005c4ee0
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
add esp, 0x30
cmp esi, dword [esp + 0x2c]
jle 0x5c86b1
mov dword [esp + 0x2c], esi
mov eax, ecx
mov ecx, dword [esp + 0x40]
add esi, ecx
cmp dword [esp + 0x44], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x80], esi
jg 0x5c86d2
mov dword [esp + 0x44], eax
jmp 0x5c86d2
xor ebp, ebp
lea ecx, [esp + 0x3d4]
mov byte [esp + 0x674], 9
call fcn.0059cc80
lea ecx, [esp + 0x458]
mov byte [esp + 0x674], 6
call fcn.0059cc80
test ebp, ebp
je 0x5c7c35
mov eax, ebp
mov dword [esp + 0x14], eax
jmp 0x5c97cc
add eax, 2
test byte [esp + 0x69c], 0x20
mov dword [esp + 0x14], eax
jne case.0x5c7998.100
mov byte [esp + 0x1a], 1
jmp case.0x5c7998.100
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
add eax, 2
cmp edx, dword [ecx]
mov dword [esp + 0x14], eax
jle 0x5c8744
mov byte [esp + 0x1a], 1
movzx ecx, word [eax]
test cx, cx
jbe 0x5c8767
mov esi, dword [sym.imp.USER32.dll_CharNextW]
cmp cx, 0x20
ja 0x5c8767
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c8752
push 0xa
lea edx, [esp + 0x18]
push edx
push eax
call fcn.0072c7d5
add esp, 0xc
mov esi, eax
push esi
lea ecx, [esp + 0x64]
call fcn.0059c8f0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax]
lea eax, [ecx + esi]
cmp dword [esp + 0x2c], eax
jg 0x5c7c35
jmp 0x5c7c31
add eax, 2
mov dword [esp + 0x14], eax
mov byte [esp + 0x1b], 1
jmp case.0x5c7998.100
add eax, 2
cmp byte [esp + 0x23], 0
mov dword [esp + 0x14], eax
sete cl
cmp byte [esp + 0x19], 0
mov byte [esp + 0x23], cl
je case.0x5c7998.100
cmp byte [esp + 0x18], 0
je case.0x5c7998.100
test cl, cl
je 0x5c87ee
mov edx, dword [esp + 0x24]
push 2
push edx
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x5c7c35
mov eax, dword [esp + 0x24]
push 1
push eax
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x5c7c35
mov ecx, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6a0]
cmp eax, 0xffffffff
je 0x5c881f
push eax
call fcn.00597fd0
jmp 0x5c8824
call fcn.005977f0
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.0059ca80
test eax, eax
jle 0x5c8849
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov esi, eax
cmp byte [esi + 0x8d], 0
jne 0x5c7c35
movzx ecx, byte [esi + 0x8e]
movzx edx, byte [esi + 0x8c]
mov eax, dword [esi + 0x88]
push ecx
push 1
push edx
lea edi, [esi + 4]
push eax
mov ecx, edi
call fcn.0059ccc0
mov ebx, dword [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.00597c10
test eax, eax
jne 0x5c88b1
movzx ecx, byte [esi + 0x8e]
movzx edx, byte [esi + 0x8c]
mov eax, dword [esi + 0x88]
push ecx
push 1
push edx
push eax
mov ecx, edi
call fcn.0059ccc0
push eax
mov ecx, ebx
call fcn.00599220
push eax
mov ecx, ebx
call fcn.00598050
mov edi, eax
push edi
lea ecx, [esp + 0x58]
call fcn.0059c8f0
mov ecx, dword [edi]
mov edx, dword [esp + 0x24]
push ecx
push edx
jmp 0x5c7be9
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x5c88fc
mov esi, dword [sym.imp.USER32.dll_CharNextW]
cmp cx, 0x20
ja 0x5c88fc
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c88e7
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.0072c7d5
mov ecx, dword [esp + 0x48]
add ecx, eax
add esp, 0xc
cmp dword [esp + 0x44], ecx
mov dword [esp + 0x3c], ecx
jg 0x5c7c35
mov edx, ecx
mov dword [esp + 0x44], edx
jmp 0x5c7c35
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x5c8955
mov esi, dword [sym.imp.USER32.dll_CharNextW]
cmp cx, 0x20
ja 0x5c8955
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x5c8940
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.0072c7d5
add esp, 0xc
jmp 0x5c7c31
cmp cx, 0x3c
je 0x5c897a
cmp cx, 0x7b
jne 0x5c8c8a
cmp word [eax + 2], 0x2f
jne 0x5c8c8a
add eax, 4
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
add ecx, 0xffffff9f
cmp ecx, 0x14
ja case.0x5c89a2.100
movzx edx, byte [ecx + 0x5c9c54]
jmp dword [edx*4 + 0x5c9c3c]
add eax, 2
lea ecx, [esp + 0x6c]
mov dword [esp + 0x14], eax
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059ca10
mov ebx, dword [esp + 0x68c]
lea ecx, [esp + 0x6c]
call fcn.0059ca80
test eax, eax
jle 0x5c89ee
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov ebx, eax
mov eax, ebx
shr eax, 8
movzx edx, bl
movzx ecx, al
shl edx, 8
or ecx, edx
shr ebx, 0x10
movzx eax, bl
shl ecx, 8
or ecx, eax
push ecx
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ebx, dword [esp + 0x3c]
jmp 0x5c8c51
mov edx, dword [esp + 0x4c]
add eax, 2
cmp ebx, dword [edx]
mov dword [esp + 0x14], eax
jle 0x5c8a32
mov byte [esp + 0x1a], 1
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059ca10
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
mov esi, dword [esp + 0x28]
jmp 0x5c8c29
add eax, 2
cmp byte [esp + 0x23], 0
mov dword [esp + 0x14], eax
sete cl
cmp byte [esp + 0x19], 0
mov byte [esp + 0x23], cl
je case.0x5c89a2.100
cmp byte [esp + 0x18], 0
je case.0x5c89a2.100
test cl, cl
je 0x5c8aa2
mov eax, dword [esp + 0x24]
push 2
push eax
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x5c8c51
mov ecx, dword [esp + 0x24]
push 1
push ecx
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x5c8c51
mov edx, dword [esp + 0x88]
cmp ebp, dword [edx]
jge 0x5c8afb
cmp byte [esp + 0x18], 0
jne 0x5c8af6
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
add ecx, esi
push ecx
push ebx
mov ecx, ebp
push edx
shl ecx, 4
add ecx, dword [esp + 0xb8]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetRect]
inc ebp
mov dword [esp + 0x7c], ebp
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059ca10
mov ebx, dword [esp + 0x68c]
lea ecx, [esp + 0x6c]
call fcn.0059ca80
test eax, eax
jle 0x5c8b39
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov ebx, eax
mov edx, ebx
shr edx, 8
movzx ecx, bl
movzx eax, dl
shl ecx, 8
or eax, ecx
shr ebx, 0x10
movzx edx, bl
shl eax, 8
or eax, edx
push eax
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
mov byte [esp + 0x33], 0
add eax, 2
lea ecx, [esp + 0x54]
mov dword [esp + 0x14], eax
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059ca10
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov edi, eax
test edi, edi
jne 0x5c8bc1
mov eax, dword [esp + 0x6a0]
mov ecx, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x5c8bba
push eax
call fcn.00597fd0
jmp 0x5c8bbf
call fcn.005977f0
mov edi, eax
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x34], 0
je 0x5c8bfd
cmp byte [edi + 0x8e], 0
jne 0x5c8bfd
mov eax, dword [esp + 0x24]
lea edx, [esp + 0xb4]
push edx
push 0x20
push 0x20
push eax
call dword [sym.imp.GDI32.dll_GetCharABCWidthsW]
mov eax, dword [esp + 0xbc]
cdq
sub eax, edx
sar eax, 1
add ebx, eax
mov dword [esp + 0x3c], ebx
mov ecx, dword [edi]
mov edx, dword [esp + 0x24]
push ecx
lea esi, [edi + 0x90]
push edx
mov dword [esp + 0x30], esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [esi]
add eax, dword [esi + 0x10]
cmp dword [esp + 0x2c], eax
jg 0x5c8c51
lea ecx, [esp + 0x60]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
add eax, dword [esi]
add eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
test cx, cx
je 0x5c8c7e
cmp cx, 0x3e
je 0x5c8c7e
cmp cx, 0x7d
je 0x5c8c7e
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jne 0x5c8c63
push eax
call esi
mov dword [esp + 0x14], eax
jmp 0x5c97d0
cmp cx, 0x3c
jne 0x5c8dff
cmp word [eax + 4], 0x3e
jne 0x5c8dff
movzx ebp, word [eax + 2]
lea edx, [eax + 2]
cmp bp, 0x7b
je 0x5c8cb6
cmp bp, 0x7d
jne 0x5c8dff
mov ebp, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc4]
push eax
push 1
push edx
push ebp
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x19], 0
je 0x5c8df3
cmp byte [esp + 0x18], 0
je 0x5c8df3
mov ecx, dword [esp + 0x1c]
call fcn.00596ad0
test al, al
je 0x5c8dd5
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov dword [esp + 0x34], eax
test eax, eax
jne 0x5c8d2c
mov ecx, dword [esp + 0x1c]
call fcn.005977f0
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov edx, edi
sub edx, ecx
sub edx, eax
add edx, esi
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0xc4]
add edx, ebx
mov dword [esp + 0x18c], edx
mov edx, dword [esp + 0xc8]
sub edx, ecx
sub edx, eax
add edx, edi
add edx, esi
mov esi, dword [esp + 0x68c]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x184], ebx
mov dword [esp + 0x190], edx
call fcn.0059ca80
test eax, eax
jle 0x5c8da1
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov esi, eax
or esi, 0xff000000
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
push 1
push 0x100
lea eax, [esp + 0x18c]
push eax
mov eax, dword [edx]
add ecx, 2
push ecx
push esi
push eax
push ebp
call fcn.005c6e70
add esp, 0x1c
add ebx, dword [esp + 0xc4]
jmp 0x5c8f65
mov eax, dword [esp + 0x28]
sub edi, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
sub edi, dword [eax]
push 1
add ecx, 2
push ecx
add edi, esi
push edi
push ebx
push ebp
call dword [sym.imp.GDI32.dll_TextOutW]
add ebx, dword [esp + 0xc4]
jmp 0x5c8f65
cmp cx, 0x7b
jne 0x5c8f83
cmp word [eax + 4], 0x7d
jne 0x5c8f83
movzx ebp, word [eax + 2]
lea edx, [eax + 2]
cmp bp, 0x3c
je 0x5c8e2b
cmp bp, 0x3e
jne 0x5c8f83
mov ebp, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xcc]
push eax
push 1
push edx
push ebp
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x19], 0
je 0x5c8f5e
cmp byte [esp + 0x18], 0
je 0x5c8f5e
mov ecx, dword [esp + 0x1c]
call fcn.00596ad0
test al, al
je 0x5c8f40
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov dword [esp + 0x34], eax
test eax, eax
jne 0x5c8ea1
mov ecx, dword [esp + 0x1c]
call fcn.005977f0
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov edx, edi
sub edx, ecx
sub edx, eax
add edx, esi
mov dword [esp + 0x158], edx
mov edx, dword [esp + 0xcc]
add edx, ebx
mov dword [esp + 0x15c], edx
mov edx, dword [esp + 0xd0]
sub edx, ecx
sub edx, eax
add edx, edi
add edx, esi
mov esi, dword [esp + 0x68c]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x154], ebx
mov dword [esp + 0x160], edx
call fcn.0059ca80
test eax, eax
jle 0x5c8f16
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov esi, eax
or esi, 0xff000000
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
push 1
push 0x100
lea eax, [esp + 0x15c]
push eax
mov eax, dword [edx]
add ecx, 2
push ecx
push esi
push eax
push ebp
call fcn.005c6e70
add esp, 0x1c
jmp 0x5c8f5e
mov eax, dword [esp + 0x28]
sub edi, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
sub edi, dword [eax]
push 1
add ecx, 2
push ecx
add edi, esi
push edi
push ebx
push ebp
call dword [sym.imp.GDI32.dll_TextOutW]
add ebx, dword [esp + 0xcc]
cmp dword [esp + 0x44], ebx
mov dword [esp + 0x3c], ebx
jg 0x5c8f73
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x14]
add eax, 6
mov dword [esp + 0x14], eax
jmp 0x5c97d0
cmp cx, 0x20
jne 0x5c90e3
mov ebp, dword [esp + 0x24]
lea edx, [esp + 0xd4]
push edx
push 1
xor eax, eax
push 0x8027d8
push ebp
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x19], 0
je 0x5c90be
cmp byte [esp + 0x18], 0
je 0x5c90be
mov ecx, dword [esp + 0x1c]
call fcn.00596ad0
test al, al
je 0x5c90a3
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov dword [esp + 0x34], eax
test eax, eax
jne 0x5c9007
mov ecx, dword [esp + 0x1c]
call fcn.005977f0
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov edx, edi
sub edx, ecx
sub edx, eax
add edx, esi
mov dword [esp + 0x168], edx
mov edx, dword [esp + 0xd4]
add edx, ebx
mov dword [esp + 0x16c], edx
mov edx, dword [esp + 0xd8]
sub edx, ecx
sub edx, eax
add edx, edi
add edx, esi
mov esi, dword [esp + 0x68c]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x164], ebx
mov dword [esp + 0x170], edx
call fcn.0059ca80
test eax, eax
jle 0x5c907c
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov esi, eax
or esi, 0xff000000
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
push 1
push 0x100
lea eax, [esp + 0x16c]
push eax
push 0x8027d8
push esi
push edx
push ebp
call fcn.005c6e70
add esp, 0x1c
jmp 0x5c90be
mov eax, dword [esp + 0x28]
sub edi, dword [eax + 0x10]
push 1
sub edi, dword [eax]
push 0x8027d8
add edi, esi
push edi
push ebx
push ebp
call dword [sym.imp.GDI32.dll_TextOutW]
add ebx, dword [esp + 0xd4]
cmp dword [esp + 0x44], ebx
mov dword [esp + 0x3c], ebx
jg 0x5c90d3
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x5c97d0
xor edx, edx
mov dword [esp + 0x8c], ebx
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x90], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x94], edx
mov dword [esp + 0x34], edx
mov esi, eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
cmp byte [esp + 0x1b], bl
jne 0x5c9122
cmp word [eax], 0x3c
je 0x5c9128
cmp word [eax], 0x7b
jne 0x5c9136
mov ebp, 1
mov ebx, ebp
lea esi, [eax + 2]
mov dword [esp + 0x38], ebx
movzx ecx, word [esi]
cmp cx, dx
je 0x5c9194
mov edi, edi
cmp cx, 0xa
je 0x5c9190
cmp byte [esp + 0x1b], 0
je 0x5c9200
cmp cx, 0x3c
je 0x5c9161
cmp cx, 0x7b
jne 0x5c920c
cmp word [esi + 2], 0x2f
jne 0x5c920c
cmp word [esi + 4], 0x72
jne 0x5c920c
movzx ecx, word [esi + 6]
cmp cx, 0x3e
je 0x5c918b
cmp cx, 0x7d
jne 0x5c920c
mov byte [esp + 0x1b], 0
mov dword [esp + 0x38], ebx
mov edi, dword [esp + 0x24]
lea ecx, [esp + 0x98]
push ecx
push ebx
push eax
push edi
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x19], 0
je 0x5c9602
cmp byte [esp + 0x18], 0
je 0x5c9602
mov ecx, dword [esp + 0x69c]
mov eax, ecx
and eax, 0x20
jne 0x5c935b
cmp dword [esp + 0x128], eax
je 0x5c935b
mov ebp, dword [esp + 0x4c]
mov eax, dword [ebp + 8]
sub eax, dword [ebp]
sub eax, dword [esp + 0x98]
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x8c], eax
jmp 0x5c9382
cmp cx, 0x3c
je 0x5c9190
cmp cx, 0x7b
je 0x5c9190
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov edi, eax
sub eax, esi
sar eax, 1
add ebx, eax
mov eax, dword [ecx + 0x18]
inc ebp
imul eax, ebp
lea ecx, [eax + edx]
mov edx, dword [esp + 0x4c]
cmp ecx, dword [edx + 8]
mov dword [esp + 0x98], eax
jl 0x5c925d
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x98]
push eax
push ebx
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x3c]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x4c]
cmp edx, dword [ecx + 8]
jg 0x5c92c2
movzx eax, word [esi]
cmp ax, 0x61
jb 0x5c927c
cmp ax, 0x7a
jbe 0x5c9293
cmp ax, 0x41
jb 0x5c9288
cmp ax, 0x5a
jbe 0x5c9293
mov dword [esp + 0x94], ebp
mov dword [esp + 0x34], ebx
cmp ax, 0x20
jne 0x5c92a4
mov dword [esp + 0x94], ebp
mov dword [esp + 0x34], ebx
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
mov eax, dword [esp + 0x14]
test cx, cx
jne 0x5c9140
jmp 0x5c9190
mov edx, dword [esp + 0x3c]
add eax, edx
cmp eax, dword [ecx + 8]
mov dword [esp + 0x38], ebx
jle 0x5c92e0
cmp edx, dword [ecx]
je 0x5c92e0
sub edi, esi
sar edi, 1
dec ebp
sub ebx, edi
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x69c]
test cl, 0x10
je 0x5c9301
mov eax, dword [esp + 0x94]
test eax, eax
jle 0x5c9301
mov ebx, dword [esp + 0x34]
mov ebp, eax
mov dword [esp + 0x38], ebx
test ecx, 0x8000
je 0x5c933f
test ebp, ebp
jle 0x5c933f
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.USER32.dll_CharPrevW]
push esi
push eax
dec ebp
call edi
test ebp, ebp
jle 0x5c9328
mov ecx, dword [esp + 0x14]
push eax
push ecx
call edi
mov edx, dword [esp + 0x4c]
sub esi, eax
mov eax, dword [edx + 8]
sar esi, 1
sub ebx, esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov edx, eax
cmp dword [esp + 0x44], edx
mov eax, dword [esp + 0x14]
mov byte [esp + 0x1a], 1
jg 0x5c9194
mov dword [esp + 0x44], edx
jmp 0x5c9194
test eax, eax
jne 0x5c937e
test cl, 2
je 0x5c937e
mov ebp, dword [esp + 0x4c]
mov edx, dword [ebp + 8]
sub edx, dword [ebp]
sub edx, dword [esp + 0x98]
add dword [esp + 0x8c], edx
jmp 0x5c9382
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.00596ad0
test al, al
je 0x5c947c
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov ebp, eax
test ebp, ebp
jne 0x5c93b8
mov ecx, esi
call fcn.005977f0
mov ebp, eax
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x8c]
sub ebx, ecx
sub ebx, eax
mov dword [esp + 0x174], esi
add ebx, edx
mov dword [esp + 0x178], ebx
mov ebx, dword [esp + 0x98]
add esi, ebx
mov dword [esp + 0x17c], esi
mov esi, dword [esp + 0x9c]
sub esi, ecx
sub esi, eax
add esi, dword [esp + 0x90]
lea ecx, [esp + 0x6c]
add esi, edx
mov dword [esp + 0x180], esi
mov esi, dword [esp + 0x68c]
call fcn.0059ca80
test eax, eax
jle 0x5c9445
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov esi, eax
or esi, 0xff000000
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x69c]
mov edx, dword [esp + 0x14]
push ebx
or eax, 0x100
push eax
mov eax, dword [ebp]
lea ecx, [esp + 0x17c]
push ecx
push edx
push esi
push eax
push edi
call fcn.005c6e70
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x68]
add esp, 0x1c
jmp 0x5c94a9
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x90]
sub edx, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
sub edx, dword [eax]
mov eax, dword [esp + 0x8c]
add edx, dword [esp + 0x84]
push ebx
push ecx
push edx
push eax
push edi
call dword [sym.imp.GDI32.dll_TextOutW]
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [ebp + 8]
jl 0x5c9602
mov eax, dword [esp + 0x120]
test eax, eax
je 0x5c94c4
mov byte [eax], 1
cmp ecx, dword [ebp + 8]
jl 0x5c9602
test dword [esp + 0x69c], 0x8000
je 0x5c9602
mov ecx, esi
call fcn.00596ad0
test al, al
je 0x5c95db
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
mov ebp, eax
test ebp, ebp
jne 0x5c9510
mov ecx, esi
call fcn.005977f0
mov ebp, eax
lea ecx, [esp + 0xf4]
push ecx
push 3
xor eax, eax
push 0x8027d0
push edi
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0xf4]
lea edx, [ecx + eax]
add esi, ecx
add esi, eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x194], edx
mov edx, dword [esp + 0x90]
add eax, edx
mov dword [esp + 0x19c], esi
mov esi, dword [esp + 0x68c]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x198], edx
mov dword [esp + 0x1a0], eax
call fcn.0059ca80
test eax, eax
jle 0x5c95ae
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov esi, eax
or esi, 0xff000000
mov ecx, dword [esp + 0x69c]
mov eax, dword [ebp]
push 3
or ecx, 0x100
push ecx
lea edx, [esp + 0x19c]
push edx
push 0x8027d0
push esi
push eax
push edi
call fcn.005c6e70
add esp, 0x1c
jmp 0x5c9602
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x8c]
push 3
push 0x8027d0
push ecx
add eax, edx
push eax
push edi
call dword [sym.imp.GDI32.dll_TextOutW]
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x98]
cmp dword [esp + 0x44], eax
mov dword [esp + 0x3c], eax
jg 0x5c961b
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x14]
lea eax, [ecx + ebx*2]
mov dword [esp + 0x14], eax
jmp 0x5c97cc
cmp cx, 0xa
jne 0x5c9638
add eax, 2
mov dword [esp + 0x14], eax
cmp byte [esp + 0x1a], 0
je 0x5c9644
mov byte [esp + 0x1a], 0
cmp byte [esp + 0x18], 0
jne 0x5c9703
cmp byte [esp + 0x33], 0
je 0x5c96bc
mov edx, dword [esp + 0x88]
cmp ebp, dword [edx]
jge 0x5c96bc
mov eax, dword [esp + 0x34]
cmp ebx, eax
jl 0x5c966b
mov ebx, eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xa4]
add ecx, esi
push ecx
mov ecx, dword [esp + 0xa4]
push ebx
mov eax, ebp
shl eax, 4
add eax, dword [esp + 0xb4]
push edx
push ecx
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0xa8]
inc ebp
mov edx, ebp
imul edx, edx, 0x84
lea ecx, [edx + eax]
lea eax, [ecx - 0x84]
push eax
mov dword [esp + 0x80], ebp
call fcn.0059cf20
mov edi, dword [esp + 0xec]
cmp edi, ebp
jge 0x5c96ec
mov ecx, dword [esp + 0x2c]
lea edx, [ecx + esi]
mov ecx, dword [esp + 0xac]
mov eax, edi
shl eax, 4
lea ecx, [eax + ecx + 0xc]
mov eax, ebp
sub eax, edi
mov dword [ecx], edx
add ecx, 0x10
sub eax, 1
jne 0x5c96e2
cmp byte [esp + 0x19], 0
je 0x5c9726
mov dl, byte [esp + 0x7b]
mov ebp, edi
mov byte [esp + 0x33], dl
mov dword [esp + 0x7c], ebp
jmp 0x5c9726
mov al, byte [esp + 0x33]
test al, al
je 0x5c971b
mov ecx, dword [esp + 0x88]
cmp ebp, dword [ecx]
jge 0x5c971b
inc ebp
mov dword [esp + 0x7c], ebp
mov byte [esp + 0x7b], al
mov dword [esp + 0xec], ebp
test byte [esp + 0x69c], 0x20
je 0x5c974a
cmp byte [esp + 0x19], 0
je 0x5c99c6
cmp byte [esp + 0x18], 0
jne 0x5c99c6
mov esi, dword [esp + 0x40]
mov al, byte [esp + 0x19]
test al, al
je 0x5c975e
cmp byte [esp + 0x18], 0
sete dl
mov byte [esp + 0x18], dl
cmp byte [esp + 0x18], 0
mov ecx, dword [esp + 0x4c]
mov edi, dword [ecx]
mov dword [esp + 0x3c], edi
jne 0x5c9777
add esi, dword [esp + 0x2c]
mov dword [esp + 0x40], esi
cmp esi, dword [ecx + 0xc]
jle 0x5c978c
test al, al
jne 0x5c99c6
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x60]
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], esi
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059caa0
mov ecx, dword [esp + 0x28]
add eax, dword [ecx + 0x10]
add eax, dword [ecx]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
cmp edi, dword [eax + 8]
jge 0x5c99c6
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
cmp ebx, dword [ecx + 8]
jge 0x5c97e7
movzx ecx, word [eax]
cmp cx, 0xa
je 0x5c97e7
test cx, cx
jne 0x5c97ec
mov byte [esp + 0x1a], 1
cmp byte [esp + 0x19], 0
je 0x5c99b6
cmp byte [esp + 0x1a], 0
je 0x5c99b6
cmp byte [esp + 0x18], 0
jne 0x5c9b00
lea ecx, [esp + 0x114]
call fcn.0059ca80
push eax
lea ecx, [esp + 0x58]
call fcn.0059c880
lea ecx, [esp + 0x114]
call fcn.0059ca80
add eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x118]
call fcn.0059ca90
push eax
lea ecx, [esp + 0x5c]
call fcn.0059ca90
push eax
call fcn.007248d0
add esp, 0xc
lea ecx, [esp + 0xfc]
call fcn.0059ca80
push eax
lea ecx, [esp + 0x70]
call fcn.0059c880
lea ecx, [esp + 0xfc]
call fcn.0059ca80
add eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x100]
call fcn.0059ca90
push eax
lea ecx, [esp + 0x74]
call fcn.0059ca90
push eax
call fcn.007248d0
add esp, 0xc
lea ecx, [esp + 0x108]
call fcn.0059ca80
push eax
lea ecx, [esp + 0x64]
call fcn.0059c880
lea ecx, [esp + 0x108]
call fcn.0059ca80
add eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x10c]
call fcn.0059ca90
push eax
lea ecx, [esp + 0x68]
call fcn.0059ca90
push eax
call fcn.007248d0
mov edx, dword [esp + 0x38]
mov cl, byte [esp + 0x86]
mov eax, dword [esp + 0xe8]
mov ebx, dword [esp + 0x698]
mov dword [esp + 0x90], edx
mov dl, byte [esp + 0x57]
mov byte [esp + 0x27], cl
add esp, 0xc
lea ecx, [esp + 0x6c]
mov dword [esp + 0x14], eax
mov byte [esp + 0x23], dl
call fcn.0059ca80
test eax, eax
jle 0x5c9932
lea ecx, [esp + 0x6c]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059caa0
mov ebx, eax
mov esi, dword [esp + 0x24]
mov eax, ebx
shr eax, 8
movzx edx, bl
movzx ecx, al
shl edx, 8
or ecx, edx
shr ebx, 0x10
movzx eax, bl
shl ecx, 8
or ecx, eax
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
lea ecx, [esp + 0x54]
call fcn.0059ca80
dec eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059caa0
test eax, eax
jne 0x5c998e
mov eax, dword [esp + 0x6a0]
mov ecx, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x5c9989
push eax
call fcn.00597fd0
jmp 0x5c998e
call fcn.005977f0
mov edx, dword [eax]
push edx
lea ecx, [eax + 0x90]
push esi
mov dword [esp + 0x30], ecx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp byte [esp + 0x4b], 0
je 0x5c99b2
push 2
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov ebp, dword [esp + 0x7c]
test cx, cx
jne 0x5c78f0
test dword [esp + 0x69c], 0x400
mov eax, dword [esp + 0x88]
mov dword [eax], ebp
je 0x5c9a0b
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x80]
cmp ecx, eax
jle 0x5c99f4
mov eax, ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
cmp eax, edx
jl 0x5c9a08
mov eax, edx
mov dword [ecx + 8], eax
cmp byte [esp + 0x19], 0
je 0x5c9a25
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov edx, dword [esp + 0xe0]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push edx
call esi
mov eax, dword [esp + 0x124]
push eax
call esi
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x24]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x108]
mov byte [esp + 0x674], 5
call fcn.0059c840
lea ecx, [esp + 0xfc]
mov byte [esp + 0x674], 4
call fcn.0059c840
lea ecx, [esp + 0x114]
mov byte [esp + 0x674], 3
call fcn.0059c840
lea ecx, [esp + 0x5e4]
mov byte [esp + 0x674], 2
call fcn.0059cc80
lea ecx, [esp + 0x60]
mov byte [esp + 0x674], 1
call fcn.0059c840
lea ecx, [esp + 0x6c]
mov byte [esp + 0x674], 0
call fcn.0059c840
lea ecx, [esp + 0x54]
mov dword [esp + 0x674], 0xffffffff
call fcn.0059c840
mov ecx, dword [esp + 0x66c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x654]
xor ecx, esp
call fcn.0071fe0b
add esp, 0x664
ret
lea ecx, [esp + 0x54]
call fcn.0059ca80
push eax
lea ecx, [esp + 0x118]
call fcn.0059c880
lea ecx, [esp + 0x54]
call fcn.0059ca80
add eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x58]
call fcn.0059ca90
push eax
lea ecx, [esp + 0x11c]
call fcn.0059ca90
push eax
call fcn.007248d0
add esp, 0xc
lea ecx, [esp + 0x6c]
call fcn.0059ca80
push eax
lea ecx, [esp + 0x100]
call fcn.0059c880
lea ecx, [esp + 0x6c]
call fcn.0059ca80
add eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x70]
call fcn.0059ca90
push eax
lea ecx, [esp + 0x104]
call fcn.0059ca90
push eax
call fcn.007248d0
add esp, 0xc
lea ecx, [esp + 0x60]
call fcn.0059ca80
push eax
lea ecx, [esp + 0x10c]
call fcn.0059c880
lea ecx, [esp + 0x60]
call fcn.0059ca80
add eax, eax
add eax, eax
push eax
lea ecx, [esp + 0x64]
call fcn.0059ca90
push eax
lea ecx, [esp + 0x110]
call fcn.0059ca90
push eax
call fcn.007248d0
mov eax, dword [esp + 0x20]
mov cl, byte [esp + 0x2f]
mov dl, byte [esp + 0x27]
add esp, 0xc
mov dword [esp + 0xdc], eax
mov byte [esp + 0x4b], cl
mov byte [esp + 0x7a], dl
jmp 0x5c99b6