Function at 0x45ffc0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5b3ce6
mov eax, dword fs:[0]
push eax
sub esp, 0x75c
mov eax, dword [0x62c930]
xor eax, esp
mov dword [esp + 0x758], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x62c930]
xor eax, esp
push eax
lea eax, [esp + 0x770]
mov dword fs:[0], eax
mov edx, dword [esp + 0x794]
mov eax, dword [esp + 0x78c]
mov ebp, dword [esp + 0x780]
mov ecx, dword [esp + 0x784]
mov edi, dword [esp + 0x788]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x798]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x79c]
xor ebx, ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x88], edx
cmp eax, ebx
je 0x4628c3
cmp ecx, ebx
je 0x4628c3
push edi
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x4628c3
mov eax, dword [esp + 0x7a4]
shr eax, 0xa
not al
and al, 1
mov esi, 0xa
push 0x28
mov byte [esp + 0x1e], al
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], esi
call fcn.00586165
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x778], ebx
push 0x28
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], esi
call fcn.00586165
add esp, 4
mov dword [esp + 0xa0], eax
push 0x28
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], esi
call fcn.00586165
add esp, 4
mov dword [esp + 0x64], eax
push 0x28
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], esi
call fcn.00586165
add esp, 4
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
lea eax, [esp + 0x164]
push eax
push ebp
mov dword [esp + 0x16c], ebx
call dword [sym.imp.GDI32.dll_GetClipBox]
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea ecx, [esp + 0x164]
push ecx
call esi
push edi
mov dword [esp + 0xe8], eax
call esi
mov dword [esp + 0x158], eax
cmp byte [esp + 0x1a], bl
je 0x46015e
push 1
push eax
push ebp
call dword [sym.imp.GDI32.dll_ExtSelectClipRgn]
mov ecx, dword [esp + 0x14]
push 0xffffffffffffffff
lea edx, [esp + 0x334]
xor eax, eax
push ecx
lea esi, [esp + 0x334]
mov dword [esp + 0x334], edx
mov word [esp + 0x338], ax
call fcn.00444050
mov edi, esi
mov byte [esp + 0x778], 4
call fcn.00443650
mov edx, dword [esp + 0x32c]
mov esi, dword [esp + 0x7a0]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], edx
mov ecx, esi
mov edx, edi
call fcn.00442810
add eax, 0x90
mov ecx, esi
mov edx, edi
mov dword [esp + 0x30], eax
call fcn.00442810
mov eax, dword [eax]
push eax
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
push 1
push ebp
mov dword [esp + 0x154], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esp + 0x790]
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_SetTextColor]
mov eax, dword [edi + 0x374]
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 eax, dword [esp + 0x7a4]
and eax, 1
mov dword [esp + 0x100], eax
jne 0x460257
test byte [esp + 0x7a4], 0xe
je 0x4603ae
test dword [esp + 0x7a4], 0x400
jne 0x4603ae
mov eax, dword [esp + 0x7a4]
mov edi, dword [esp + 0x38]
and eax, 0x20
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], 0x270f
mov dword [esp + 0xcc], 0x64
mov dword [esp + 0x58], eax
jne 0x4602b9
mov ecx, dword [edi + 8]
sub ecx, dword [edi]
mov edx, dword [edi + 0xc]
sub edx, dword [edi + 4]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0x7a4]
mov edx, dword [esp + 0x790]
or eax, 0x400
push eax
mov eax, dword [esp + 0x18]
push esi
lea ecx, [esp + 0x7c]
push ecx
push ebx
push ebx
push edx
mov edx, dword [esp + 0x54]
push eax
lea ecx, [esp + 0xdc]
push ecx
push edx
push ebp
mov dword [esp + 0x9c], ebx
call fcn.0045ffc0
add esp, 0x28
cmp dword [esp + 0x58], ebx
je 0x460353
mov esi, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc0]
cmp dword [esp + 0x100], ebx
je 0x460340
mov ecx, dword [edi]
mov eax, dword [edi + 8]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x74], eax
mov eax, esi
sub eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x74]
sar eax, 1
sub edx, eax
lea eax, [edx + ecx]
mov dword [edi], eax
sub eax, ebp
add eax, esi
mov dword [edi + 8], eax
test byte [esp + 0x7a4], 2
je 0x460353
mov eax, dword [edi + 8]
sub eax, esi
add eax, ebp
mov dword [edi], eax
test byte [esp + 0x7a4], 4
mov ecx, dword [esp + 0xcc]
mov esi, dword [esp + 0xc4]
je 0x460398
mov ebp, dword [edi + 4]
mov eax, dword [edi + 0xc]
sub eax, ebp
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x74], eax
mov eax, ecx
sub eax, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x74]
sar eax, 1
sub edx, eax
lea eax, [edx + ebp]
mov dword [edi + 4], eax
sub eax, esi
add eax, ecx
mov dword [edi + 0xc], eax
test byte [esp + 0x7a4], 8
je 0x4603b2
mov edx, dword [edi + 0xc]
sub edx, ecx
add edx, esi
mov dword [edi + 4], edx
jmp 0x4603b2
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x5d8]
xor ecx, ecx
mov byte [esp + 0x53], 0
mov dword [esp + 0x5d4], eax
mov word [esp + 0x5d8], cx
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0xf4]
mov eax, dword [eax + 0xf8]
mov ecx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x70]
cmp eax, dword [edx]
jge 0x46045e
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x40]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x460448
mov eax, dword [ebp]
push 0xffffffffffffffff
push eax
lea esi, [esp + 0x5dc]
call fcn.00444050
mov byte [esp + 0x53], 1
inc dword [esp + 0x70]
add dword [esp + 0x40], 0x10
add ebp, 0x84
cmp byte [esp + 0x53], 0
je 0x460403
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x10]
add eax, dword [ecx]
xor ebp, ebp
mov dword [esp + 0x48], edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov byte [esp + 0x1b], 0
mov byte [esp + 0x23], 0
mov byte [esp + 0x37], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0xec], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], ebx
mov byte [esp + 0x778], 9
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx]
xor esi, esi
mov dword [esp + 0xdc], ecx
mov byte [esp + 0x62], 0
mov byte [esp + 0x63], 0
mov byte [esp + 0x52], 0
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x84], esi
mov byte [esp + 0x19], 0
cmp dx, bx
je 0x46276a
jmp 0x46055b
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x44]
cmp ebx, eax
mov edi, dword [esp + 0x48]
mov dword [esp + 0x5c], eax
jge 0x462386
cmp dx, 0xa
je 0x46238c
cmp byte [esp + 0x1b], 0
jne 0x462386
cmp byte [esp + 0x23], 0
jne 0x461fd1
cmp dx, 0x3c
je 0x4605a6
cmp dx, 0x7b
jne 0x46192a
lea eax, [ecx + 2]
mov dword [esp + 0x5c], eax
movzx eax, word [eax]
cmp ax, 0x61
jb 0x46192a
cmp ax, 0x7a
ja 0x46192a
movzx eax, word [ecx + 4]
cmp ax, 0x20
je 0x4605de
cmp ax, 0x3e
je 0x4605de
cmp ax, 0x7d
jne 0x46192a
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
add ecx, 0xffffff9f
cmp ecx, 0x18
ja case.0x4605fc.100
movzx ecx, byte [ecx + 0x462a08]
jmp dword [ecx*4 + 0x4629d0]
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x46062d
mov esi, dword [sym.imp.USER32.dll_CharNextW]
cmp cx, 0x20
ja 0x46062d
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x460618
mov edx, dword [esp + 0x88]
cmp ebp, dword [edx]
jge 0x46069f
cmp byte [esp + 0x19], 0
jne 0x46069f
mov esi, ebp
imul esi, esi, 0x84
add esi, dword [esp + 0xb4]
mov edi, esi
call fcn.00444100
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx]
test ax, ax
je 0x46069f
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
cmp ax, 0x3e
je 0x46069f
cmp ax, 0x7d
je 0x46069f
push ecx
call ebx
mov ecx, dword [esp + 0x14]
mov edi, eax
cmp ecx, edi
jae 0x460697
movzx eax, word [ecx]
add ecx, 2
mov dword [esp + 0x14], ecx
call fcn.00444210
mov ecx, dword [esp + 0x14]
cmp ecx, edi
jb 0x460680
movzx eax, word [ecx]
test ax, ax
jne 0x460667
cmp byte [esp + 0x53], 0
mov edi, dword [esp + 0x3c]
mov ebx, dword [edi + 0x36c]
je 0x4606e1
mov eax, dword [esp + 0x88]
cmp ebp, dword [eax]
jge 0x4606e1
mov ecx, dword [esp + 0xb4]
imul ebp, ebp, 0x84
mov ecx, dword [ecx + ebp]
lea eax, [esp + 0x5d4]
call fcn.00444230
test al, al
je 0x4606e1
mov ebx, dword [edi + 0x370]
push ebx
lea esi, [esp + 0xa4]
call fcn.00443da0
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 + 0x20]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [esp + 0x7a0]
mov edx, edi
call fcn.00442810
mov ecx, dword [esp + 0x7c]
mov esi, eax
test ecx, ecx
jle 0x460743
lea eax, [ecx - 1]
test eax, eax
jl 0x460741
cmp eax, ecx
jge 0x460741
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx + eax*4]
jmp 0x460743
xor esi, esi
cmp byte [esi + 0x8d], 0
jne 0x460817
movzx edx, byte [esi + 0x8e]
movzx ecx, byte [esi + 0x8c]
mov eax, dword [esi + 4]
push edx
mov edx, dword [esi + 0x88]
push 1
push ecx
push edx
push eax
push edi
call fcn.00442570
test eax, eax
jne 0x4607a8
movzx ecx, byte [esi + 0x8c]
mov edx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x8e]
push eax
mov eax, dword [esi + 0x88]
push 1
push ecx
mov ecx, dword [0x62e79c]
push eax
push ecx
mov ecx, edi
call fcn.00442230
inc dword [0x62e79c]
push eax
mov edx, edi
push edx
call fcn.004428f0
mov edi, eax
push edi
lea esi, [esp + 0x7c]
call fcn.00443da0
mov eax, dword [edi]
mov ecx, dword [esp + 0x1c]
push eax
lea esi, [edi + 0x90]
push ecx
mov dword [esp + 0x38], esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [esp + 0x68]
lea eax, [edi - 1]
test eax, eax
jl 0x4607ed
cmp eax, edi
jge 0x4607ed
mov edx, dword [esp + 0x64]
mov ecx, dword [edx + eax*4]
jmp 0x4607ef
xor ecx, ecx
mov edx, dword [esi + 0x10]
mov esi, dword [esi]
add edx, esi
add ecx, edx
cmp dword [esp + 0x2c], ecx
jg 0x460817
test eax, eax
jl 0x46080f
cmp eax, edi
jge 0x46080f
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + eax*4]
jmp 0x460811
xor eax, eax
add edx, eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov byte [esp + 0x37], 1
jmp 0x4615f7
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x7a0]
add eax, 2
mov edx, edi
mov dword [esp + 0x14], eax
call fcn.00442810
mov ecx, dword [esp + 0x7c]
mov esi, eax
test ecx, ecx
jle 0x460870
lea eax, [ecx - 1]
test eax, eax
jl 0x46086e
cmp eax, ecx
jge 0x46086e
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx + eax*4]
jmp 0x460870
xor esi, esi
cmp byte [esi + 0x8c], 0
jne 0x4615f7
movzx edx, byte [esi + 0x8e]
movzx ecx, byte [esi + 0x8d]
mov eax, dword [esi + 4]
push edx
mov edx, dword [esi + 0x88]
push ecx
push 1
push edx
push eax
push edi
call fcn.00442570
test eax, eax
jne 0x4608d5
movzx ecx, byte [esi + 0x8d]
mov edx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x8e]
push eax
mov eax, dword [esi + 0x88]
push ecx
mov ecx, dword [0x62e79c]
push 1
push eax
push ecx
mov ecx, edi
call fcn.00442230
inc dword [0x62e79c]
push eax
mov edx, edi
push edx
call fcn.004428f0
mov edi, eax
push edi
lea esi, [esp + 0x7c]
call fcn.00443da0
mov eax, dword [edi]
mov ecx, dword [esp + 0x1c]
push eax
lea esi, [edi + 0x90]
push ecx
mov dword [esp + 0x38], esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x68]
lea eax, [ecx - 1]
test eax, eax
jl 0x46091a
cmp eax, ecx
jge 0x46091a
mov edx, dword [esp + 0x64]
mov edx, dword [edx + eax*4]
jmp 0x46091c
xor edx, edx
mov ecx, dword [esi + 0x10]
mov esi, dword [esi]
add ecx, esi
add edx, ecx
cmp dword [esp + 0x2c], edx
jg 0x4615f7
test eax, eax
jl 0x46094b
cmp eax, dword [esp + 0x68]
jge 0x46094b
mov edx, dword [esp + 0x64]
mov eax, dword [edx + eax*4]
add ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x4615f7
xor eax, eax
add ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x4615f7
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x460985
mov esi, dword [sym.imp.USER32.dll_CharNextW]
lea ecx, [ecx]
cmp cx, 0x20
ja 0x460985
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x460970
cmp word [eax], 0x23
jne 0x460992
add eax, 2
mov dword [esp + 0x14], eax
push 0x10
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00591696
add esp, 0xc
mov ebx, eax
push ebx
lea esi, [esp + 0xa4]
call fcn.00443da0
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 + 0x20]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp 0x4615f7
mov edi, dword [sym.imp.USER32.dll_CharNextW]
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x460a07
cmp cx, 0x20
ja 0x460a07
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x4609f2
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
mov esi, eax
call fcn.00591696
mov ecx, eax
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp esi, eax
je 0x460a55
mov edx, dword [esp + 0x3c]
call fcn.00442810
mov edi, eax
push edi
lea esi, [esp + 0x7c]
call fcn.00443da0
mov edx, dword [edi]
mov eax, dword [esp + 0x1c]
push edx
lea esi, [edi + 0x90]
push eax
mov dword [esp + 0x38], esi
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x460d3d
lea ecx, [esp + 0x440]
xor edx, edx
mov dword [esp + 0x43c], ecx
mov word [esp + 0x440], dx
lea ecx, [esp + 0x198]
mov dword [esp + 0x24], 0xa
mov dword [esp + 0x194], ecx
mov word [esp + 0x198], dx
mov byte [esp + 0x778], 0xb
movzx ecx, word [eax]
mov byte [esp + 0xd4], dl
mov byte [esp + 0xf4], dl
mov byte [esp + 0xfc], dl
test cx, cx
je 0x460b11
cmp cx, 0x3e
je 0x460b11
cmp cx, 0x7d
je 0x460b11
cmp cx, 0x20
je 0x460b11
push eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x460b09
nop
movzx ecx, word [eax]
add eax, 2
mov word [esp + 0xf0], cx
lea ecx, [esp + 0xf0]
mov dword [esp + 0x14], eax
push ecx
lea edx, [esp + 0x440]
xor eax, eax
push edx
mov word [esp + 0xfa], ax
call fcn.00443f10
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x460ad0
movzx ecx, word [eax]
test cx, cx
jne 0x460ab0
movzx ecx, word [eax]
test cx, cx
jbe 0x460b35
lea esp, [esp]
cmp cx, 0x20
ja 0x460b35
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x460b20
movzx eax, word [eax]
push eax
call fcn.0058704b
add esp, 4
test eax, eax
je 0x460b5d
mov edx, dword [esp + 0x14]
push 0xa
lea ecx, [esp + 0x18]
push ecx
push edx
call fcn.00591696
add esp, 0xc
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
test cx, cx
jbe 0x460b85
lea esp, [esp]
cmp cx, 0x20
ja 0x460b85
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x460b70
movzx ecx, word [eax]
test cx, cx
je 0x460bf1
lea ecx, [ecx]
cmp cx, 0x3e
je 0x460bf1
cmp cx, 0x7d
je 0x460bf1
push eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x460be9
lea esp, [esp]
movzx ecx, word [eax]
add eax, 2
mov word [esp + 0xf8], cx
lea ecx, [esp + 0xf8]
mov dword [esp + 0x14], eax
push ecx
lea edx, [esp + 0x198]
xor eax, eax
push edx
mov word [esp + 0x102], ax
call fcn.00443f10
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x460bb0
movzx ecx, word [eax]
test cx, cx
jne 0x460b90
mov eax, dword [esp + 0x194]
push eax
call fcn.005ac97a
mov ecx, dword [esp + 0x198]
add esp, 4
push str.bold
push ecx
call fcn.00584472
mov ecx, dword [esp + 0x19c]
add esp, 8
test eax, eax
je 0x460c2f
sub eax, ecx
sar eax, 1
js 0x460c2f
mov byte [esp + 0xd4], 1
push str.underline
push ecx
call fcn.00584472
mov ecx, dword [esp + 0x19c]
add esp, 8
test eax, eax
je 0x460c56
sub eax, ecx
sar eax, 1
js 0x460c56
mov byte [esp + 0xf4], 1
push str.italic
push ecx
call fcn.00584472
add esp, 8
test eax, eax
je 0x460c7b
sub eax, dword [esp + 0x194]
sar eax, 1
js 0x460c7b
mov byte [esp + 0xfc], 1
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf4]
mov ebx, dword [esp + 0xd4]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x43c]
mov ebp, dword [esp + 0x3c]
push esi
push edi
push ebx
push edx
push eax
push ebp
call fcn.00442570
test eax, eax
jne 0x460cd2
mov ecx, dword [esp + 0x24]
mov edx, dword [0x62e79c]
push eax
push esi
push edi
push ebx
push ecx
push edx
mov edx, dword [esp + 0x454]
mov ecx, ebp
call fcn.00442230
inc dword [0x62e79c]
push eax
mov eax, ebp
push eax
call fcn.004428f0
mov edi, eax
push edi
lea esi, [esp + 0x7c]
call fcn.00443da0
mov ecx, dword [edi]
mov edx, dword [esp + 0x1c]
push ecx
lea esi, [edi + 0x90]
push edx
mov dword [esp + 0x38], esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x194]
lea ecx, [esp + 0x198]
cmp eax, ecx
je 0x460d1a
push eax
call fcn.0058622f
add esp, 4
mov byte [esp + 0x778], 9
mov eax, dword [esp + 0x43c]
lea edx, [esp + 0x440]
cmp eax, edx
je 0x460d3d
push eax
call fcn.0058622f
add esp, 4
mov edi, dword [esp + 0x68]
lea eax, [edi - 1]
test eax, eax
jl 0x460d55
cmp eax, edi
jge 0x460d55
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + eax*4]
jmp 0x460d57
xor edx, edx
mov ecx, dword [esi + 0x10]
mov esi, dword [esi]
add ecx, esi
add edx, ecx
cmp dword [esp + 0x2c], edx
jg 0x4615f7
test eax, eax
jl 0x46094b
cmp eax, edi
jge 0x46094b
mov edx, dword [esp + 0x64]
mov eax, dword [edx + eax*4]
add ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x4615f7
lea ecx, [eax - 2]
add eax, 2
mov dword [esp + 0x14], eax
push eax
or edx, 0xffffffff
lea eax, [esp + 0x6e8]
mov dword [esp + 0x28], ecx
call fcn.00443ef0
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
mov edi, dword [sym.imp.USER32.dll_CharNextW]
xor ebp, ebp
cmp cx, bp
jbe 0x460dd5
mov edi, edi
cmp cx, 0x20
ja 0x460dd5
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
cmp cx, bp
ja 0x460dc0
lea edx, [esp + 0x2a8]
xor ecx, ecx
mov dword [esp + 0x2a4], edx
mov word [esp + 0x2a8], cx
mov byte [esp + 0x778], 0xd
movzx ecx, word [eax]
cmp cx, bp
je 0x460e71
lea ecx, [ecx]
cmp cx, 0x3e
je 0x460e61
cmp cx, 0x7d
je 0x460e61
cmp cx, 0x20
je 0x460e61
push eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x460e59
nop
movzx ecx, word [eax]
add eax, 2
mov dword [esp + 0x14], eax
lea eax, [esp + 0xd8]
mov word [esp + 0xd8], cx
push eax
lea ecx, [esp + 0x2a8]
xor edx, edx
push ecx
mov word [esp + 0xe2], dx
call fcn.00443f10
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x460e20
movzx ecx, word [eax]
cmp cx, bp
jne 0x460e00
mov edx, dword [esp + 0x2a4]
cmp word [edx], bp
jne 0x460f8f
mov ecx, dword [esp + 0x7a0]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], ebp
call fcn.00442810
mov ecx, dword [esp + 0x7c]
cmp ecx, ebp
mov esi, eax
jle 0x460ea5
lea eax, [ecx - 1]
cmp eax, ebp
jl 0x460ea3
cmp eax, ecx
jge 0x460ea3
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx + eax*4]
jmp 0x460ea5
xor esi, esi
cmp byte [esi + 0x8e], 0
jne 0x46151f
movzx edx, byte [esi + 0x8d]
movzx ecx, byte [esi + 0x8c]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x3c]
push 1
push edx
mov edx, dword [esi + 0x88]
push ecx
push edx
push eax
push edi
call fcn.00442570
test eax, eax
jne 0x460f0e
movzx ecx, byte [esi + 0x8c]
mov edx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x8d]
push 1
push eax
mov eax, dword [esi + 0x88]
push ecx
mov ecx, dword [0x62e79c]
push eax
push ecx
mov ecx, edi
call fcn.00442230
inc dword [0x62e79c]
push eax
mov edx, edi
push edx
call fcn.004428f0
mov edi, eax
push edi
lea esi, [esp + 0x7c]
call fcn.00443da0
mov eax, dword [edi]
mov ecx, dword [esp + 0x1c]
push eax
lea esi, [edi + 0x90]
push ecx
mov dword [esp + 0x38], esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [esp + 0x68]
lea eax, [edi - 1]
test eax, eax
jl 0x460f53
cmp eax, edi
jge 0x460f53
mov edx, dword [esp + 0x64]
mov ecx, dword [edx + eax*4]
jmp 0x460f55
xor ecx, ecx
mov edx, dword [esi + 0x10]
mov esi, dword [esi]
add edx, esi
add ecx, edx
cmp dword [esp + 0x2c], ecx
jg 0x46151f
test eax, eax
jl 0x460f82
cmp eax, edi
jge 0x460f82
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + eax*4]
add edx, eax
mov dword [esp + 0x2c], edx
jmp 0x46151f
xor eax, eax
add edx, eax
mov dword [esp + 0x2c], edx
jmp 0x46151f
movzx ecx, word [eax]
cmp cx, bp
jbe 0x460fac
cmp cx, 0x20
ja 0x460fac
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
cmp cx, bp
ja 0x460f97
push 0xa
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00591696
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
mov dword [esp + 0x58], eax
jg 0x460fcf
mov ebx, 1
mov dword [esp + 0x58], ebx
mov eax, dword [esp + 0x14]
movzx ecx, word [eax]
cmp cx, bp
jbe 0x460ff5
jmp 0x460fe0
cmp cx, 0x20
ja 0x460ff5
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
cmp cx, bp
ja 0x460fe0
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00591696
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x5c], eax
jl 0x461011
cmp eax, ebx
jl 0x461015
mov dword [esp + 0x5c], ebp
mov edx, dword [esp + 0x6e4]
push str.file
push edx
call fcn.00584472
add esp, 8
test eax, eax
jne 0x461066
mov eax, dword [esp + 0x6e4]
push str.res
push eax
call fcn.00584472
add esp, 8
test eax, eax
jne 0x461066
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x2a4]
push eax
push eax
push eax
push ecx
call fcn.00442a70
mov esi, eax
mov dword [esp + 0x58], esi
jmp 0x461358
lea edx, [esp + 0x660]
xor eax, eax
mov dword [esp + 0x65c], edx
mov word [esp + 0x660], ax
lea ecx, [esp + 0x550]
xor edx, edx
mov dword [esp + 0x54c], ecx
mov word [esp + 0x550], dx
mov ebp, dword [esp + 0x6e4]
lea eax, [esp + 0x220]
xor ecx, ecx
mov dword [esp + 0x21c], eax
mov word [esp + 0x220], cx
lea edx, [esp + 0x4c8]
xor eax, eax
mov dword [esp + 0x4c4], edx
mov word [esp + 0x4c8], ax
mov byte [esp + 0x778], 0x11
cmp word [ebp], ax
je 0x4612c1
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x4610f0
lea edi, [esp + 0x21c]
call fcn.00444100
lea edi, [esp + 0x4c4]
call fcn.00444100
movzx eax, word [ebp]
test ax, ax
jbe 0x461125
cmp ax, 0x20
ja 0x461125
push ebp
call ebx
mov ebp, eax
movzx eax, word [ebp]
test ax, ax
ja 0x461111
movzx eax, word [ebp]
test ax, ax
je 0x46117e
cmp ax, 0x3d
je 0x46117e
cmp ax, 0x20
jbe 0x46117e
push ebp
call ebx
mov esi, eax
cmp ebp, esi
jae 0x461175
mov cx, word [ebp]
lea eax, [esp + 0xe0]
mov word [esp + 0xe0], cx
push eax
lea ecx, [esp + 0x220]
xor edx, edx
push ecx
mov word [esp + 0xea], dx
call fcn.00443f10
add ebp, 2
cmp ebp, esi
jb 0x461143
movzx eax, word [ebp]
test ax, ax
jne 0x46112e
movzx eax, word [ebp]
test ax, ax
jbe 0x46119b
cmp ax, 0x20
ja 0x46119b
push ebp
call ebx
mov ebp, eax
movzx eax, word [ebp]
test ax, ax
ja 0x461187
mov dx, word [ebp]
add ebp, 2
cmp dx, 0x3d
jne 0x4612bd
movzx eax, word [ebp]
test ax, ax
jbe 0x4611c9
cmp ax, 0x20
ja 0x4611c9
push ebp
call ebx
mov ebp, eax
movzx eax, word [ebp]
test ax, ax
ja 0x4611b5
mov ax, word [ebp]
add ebp, 2
cmp ax, 0x27
jne 0x4612bd
movzx eax, word [ebp]
test ax, ax
je 0x46122d
cmp ax, 0x27
je 0x46122d
push ebp
call ebx
mov esi, eax
cmp ebp, esi
jae 0x461224
mov cx, word [ebp]
lea eax, [esp + 0xe8]
mov word [esp + 0xe8], cx
push eax
lea ecx, [esp + 0x4c8]
xor edx, edx
push ecx
mov word [esp + 0xf2], dx
call fcn.00443f10
add ebp, 2
cmp ebp, esi
jb 0x4611f2
movzx eax, word [ebp]
test ax, ax
jne 0x4611e3
mov dx, word [ebp]
add ebp, 2
cmp dx, 0x27
jne 0x4612bd
mov esi, dword [esp + 0x4c4]
cmp word [esi], 0
je 0x4612a5
mov ecx, 0x60274c
lea eax, [esp + 0x21c]
call fcn.00444230
test al, al
jne 0x461296
mov ecx, 0x60c468
lea eax, [esp + 0x21c]
call fcn.00444230
test al, al
jne 0x461296
mov ecx, str.restype
lea eax, [esp + 0x21c]
call fcn.00444230
test al, al
je 0x4612a5
push 0xffffffffffffffff
push esi
lea esi, [esp + 0x664]
jmp 0x4612a0
push 0xffffffffffffffff
push esi
lea esi, [esp + 0x554]
call fcn.00444050
mov ax, word [ebp]
add ebp, 2
cmp ax, 0x20
jne 0x4612bd
cmp word [ebp], 0
jne 0x4610f0
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x65c]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x54c]
push 0
push 0
push ecx
push edx
call fcn.00442a70
mov esi, eax
mov eax, dword [esp + 0x4c4]
lea ecx, [esp + 0x4c8]
mov dword [esp + 0x58], esi
cmp eax, ecx
je 0x4612ff
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x21c]
lea edx, [esp + 0x220]
cmp eax, edx
je 0x46131a
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x54c]
lea ecx, [esp + 0x550]
cmp eax, ecx
je 0x461335
push eax
call fcn.0058622f
add esp, 4
mov byte [esp + 0x778], 0xd
mov eax, dword [esp + 0x65c]
lea edx, [esp + 0x660]
cmp eax, edx
je 0x461358
push eax
call fcn.0058622f
add esp, 4
test esi, esi
je 0x461517
cmp ebx, 1
mov edi, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
jle 0x461372
mov eax, edi
cdq
idiv ebx
mov edi, eax
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
lea eax, [edi + ecx]
cmp eax, dword [ebx + 8]
mov dword [esp + 0x40], eax
jle 0x4613a6
mov edx, dword [ebx]
cmp ecx, edx
jle 0x4613a6
test byte [esp + 0x7a4], 0x20
jne 0x4613a6
sub ecx, edx
mov byte [esp + 0x1b], 1
mov dword [esp + 0x40], ecx
jmp 0x46151f
cmp byte [esp + 0x1a], 0
mov dword [esp + 0x24], 0
je 0x4614ed
cmp byte [esp + 0x19], 0
je 0x4614ed
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x48]
lea eax, [edx + ecx]
add edx, edi
add edx, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x4c]
sub eax, esi
mov dword [esp + 0x13c], edx
mov edx, dword [esp + 0x90]
add ecx, ebp
lea ebx, [eax + ebp]
mov dword [esp + 0x138], ebx
mov dword [esp + 0x140], ecx
test edx, edx
jle 0x461462
lea ebx, [edx - 1]
test ebx, ebx
jl 0x46144b
cmp ebx, edx
jge 0x46144b
mov edx, dword [esp + 0x8c]
mov ebx, dword [edx + ebx*4]
cmp ebx, 4
jne 0x461447
cmp esi, dword [esp + 0x4c]
jge 0x461462
cdq
sub eax, edx
sar eax, 1
neg eax
add ecx, eax
mov dword [esp + 0x140], ecx
sub ecx, esi
mov dword [esp + 0x138], ecx
jmp 0x461462
test ebx, ebx
jne 0x461462
cmp esi, dword [esp + 0x4c]
jge 0x461462
lea eax, [esi + ebp]
mov dword [esp + 0x140], eax
mov dword [esp + 0x138], ebp
mov eax, dword [esp + 0x5c]
mov edx, eax
inc eax
imul edx, edi
imul eax, edi
xor ecx, ecx
push ecx
push ecx
push ecx
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x184], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ecx
movzx ecx, byte [eax + 0x14]
push 0xff
push ecx
mov dword [esp + 0x188], edx
lea edx, [esp + 0x148]
push edx
mov ecx, edx
mov edx, dword [eax]
mov eax, dword [esp + 0x34]
push ecx
push edx
push eax
lea eax, [esp + 0x1a8]
lea edi, [esp + 0x198]
mov dword [esp + 0x1a4], esi
call fcn.0045daf0
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
add esp, 0x24
jmp 0x4614f1
mov ebp, dword [esp + 0x48]
cmp esi, dword [esp + 0x2c]
jle 0x4614fb
mov dword [esp + 0x2c], esi
cmp dword [esp + 0x54], eax
mov dword [esp + 0x44], eax
jg 0x461509
mov dword [esp + 0x54], eax
sub eax, dword [ebx]
add esi, ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x74], esi
jmp 0x46151f
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x2a4]
lea ecx, [esp + 0x2a8]
cmp eax, ecx
je 0x46153a
push eax
call fcn.0058622f
add esp, 4
mov byte [esp + 0x778], 9
mov eax, dword [esp + 0x6e4]
lea edx, [esp + 0x6e8]
cmp eax, edx
je 0x46155d
push eax
call fcn.0058622f
add esp, 4
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4615f7
mov dword [esp + 0x14], ecx
jmp 0x46258d
add eax, 2
test byte [esp + 0x7a4], 0x20
mov dword [esp + 0x14], eax
jne case.0x4605fc.100
mov byte [esp + 0x1b], 1
jmp case.0x4605fc.100
mov ecx, dword [esp + 0x38]
add eax, 2
cmp ebx, dword [ecx]
mov dword [esp + 0x14], eax
jle 0x46159e
mov byte [esp + 0x1b], 1
movzx ecx, word [eax]
test cx, cx
jbe 0x4615c5
mov esi, dword [sym.imp.USER32.dll_CharNextW]
lea esp, [esp]
cmp cx, 0x20
ja 0x4615c5
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x4615b0
push 0xa
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00591696
add esp, 0xc
mov edi, eax
push edi
lea esi, [esp + 0x68]
call fcn.00443da0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax]
lea eax, [ecx + edi]
cmp dword [esp + 0x2c], eax
jg 0x4615f7
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 0x46162b
lea esp, [esp]
cmp cx, 0x3e
je 0x46162b
cmp cx, 0x7d
je 0x46162b
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jne 0x461610
push eax
call esi
mov ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x46258d
mov edi, dword [sym.imp.USER32.dll_CharNextW]
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x461665
mov edi, edi
cmp cx, 0x20
ja 0x461665
push eax
call edi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x461650
xor ecx, ecx
lea edx, [esp + 0x3b8]
mov dword [esp + 0x3b4], edx
mov word [esp + 0x3b8], cx
movzx ecx, word [eax]
test cx, cx
je 0x4616e1
cmp cx, 0x3e
je 0x4616e1
cmp cx, 0x7d
je 0x4616e1
push eax
call edi
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x4616d9
mov edi, edi
movzx ecx, word [eax]
add eax, 2
mov dword [esp + 0x14], eax
lea eax, [esp + 0xd0]
mov word [esp + 0xd0], cx
push eax
lea ecx, [esp + 0x3b8]
xor edx, edx
push ecx
mov word [esp + 0xda], dx
call fcn.00443f10
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x4616a0
movzx ecx, word [eax]
test cx, cx
jne 0x461685
mov edx, dword [esp + 0x3b4]
push str.center
push edx
mov esi, 8
call fcn.00584130
add esp, 8
test eax, eax
jne 0x461704
lea esi, [eax + 4]
jmp 0x46171f
mov eax, dword [esp + 0x3b4]
push 0x60acf8
push eax
call fcn.00584130
add esp, 8
test eax, eax
jne 0x46171f
xor esi, esi
push esi
lea esi, [esp + 0x90]
call fcn.00443da0
mov eax, dword [esp + 0x3b4]
lea ecx, [esp + 0x3b8]
cmp eax, ecx
je 0x4615f7
push eax
call fcn.0058622f
add esp, 4
jmp 0x4615f7
add eax, 2
mov dword [esp + 0x14], eax
mov byte [esp + 0x23], 1
jmp case.0x4605fc.100
add eax, 2
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x14], eax
sete cl
cmp byte [esp + 0x1a], 0
mov byte [esp + 0x2b], cl
je case.0x4605fc.100
cmp byte [esp + 0x19], 0
je case.0x4605fc.100
test cl, cl
je 0x4617a0
mov edx, dword [esp + 0x1c]
push 2
push edx
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x4615f7
mov eax, dword [esp + 0x1c]
push 1
push eax
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x4615f7
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x7a0]
add eax, 2
mov edx, edi
mov dword [esp + 0x14], eax
call fcn.00442810
mov ecx, dword [esp + 0x7c]
mov esi, eax
test ecx, ecx
jle 0x4617eb
lea eax, [ecx - 1]
test eax, eax
jl 0x4617e9
cmp eax, ecx
jge 0x4617e9
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx + eax*4]
jmp 0x4617eb
xor esi, esi
cmp byte [esi + 0x8d], 0
jne 0x4615f7
movzx edx, byte [esi + 0x8e]
movzx ecx, byte [esi + 0x8c]
mov eax, dword [esi + 4]
push edx
mov edx, dword [esi + 0x88]
push 1
push ecx
push edx
push eax
push edi
call fcn.00442570
test eax, eax
jne 0x461850
movzx ecx, byte [esi + 0x8c]
mov edx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x8e]
push eax
mov eax, dword [esi + 0x88]
push 1
push ecx
mov ecx, dword [0x62e79c]
push eax
push ecx
mov ecx, edi
call fcn.00442230
inc dword [0x62e79c]
push eax
mov edx, edi
push edx
call fcn.004428f0
mov edi, eax
push edi
lea esi, [esp + 0x7c]
call fcn.00443da0
mov eax, dword [edi]
mov ecx, dword [esp + 0x1c]
push eax
lea esi, [edi + 0x90]
push ecx
mov dword [esp + 0x38], esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [esp + 0x68]
lea eax, [edi - 1]
test eax, eax
jl 0x460d55
cmp eax, edi
jge 0x460d55
mov edx, dword [esp + 0x64]
mov edx, dword [edx + eax*4]
jmp 0x460d57
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x4618ca
mov esi, dword [sym.imp.USER32.dll_CharNextW]
cmp cx, 0x20
ja 0x4618ca
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x4618b5
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00591696
add esp, 0xc
add ebx, eax
mov dword [esp + 0x44], ebx
jmp 0x4615f7
add eax, 2
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
jbe 0x461915
mov esi, dword [sym.imp.USER32.dll_CharNextW]
lea ebx, [ebx]
cmp cx, 0x20
ja 0x461915
push eax
call esi
mov dword [esp + 0x14], eax
movzx ecx, word [eax]
test cx, cx
ja 0x461900
push 0xa
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00591696
add esp, 0xc
jmp 0x4615f3
cmp dx, 0x3c
je 0x46193a
cmp dx, 0x7b
jne 0x461cd2
cmp word [ecx + 2], 0x2f
jne 0x461cd2
add ecx, 4
mov dword [esp + 0x14], ecx
movzx eax, word [ecx]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x461962.100
movzx eax, byte [eax + 0x462a40]
jmp dword [eax*4 + 0x462a24]
add ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xa4]
lea esi, [ecx - 1]
test esi, esi
jl 0x461997
lea ecx, [esp + 0xa0]
push ecx
mov edi, 1
call fcn.00443ea0
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x790]
test ecx, ecx
jle 0x4619bb
lea eax, [ecx - 1]
test eax, eax
jl 0x4619b9
cmp eax, ecx
jge 0x4619b9
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
jmp 0x4619bb
xor eax, eax
mov ecx, eax
shr ecx, 8
movzx edx, cl
movzx ecx, al
shl ecx, 8
or edx, ecx
mov ecx, dword [esp + 0x1c]
shr eax, 0x10
movzx eax, al
shl edx, 8
or edx, eax
push edx
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp 0x461c95
mov edx, dword [esp + 0x38]
add ecx, 2
cmp ebx, dword [edx]
mov dword [esp + 0x14], ecx
jle 0x4619fb
mov byte [esp + 0x1b], 1
mov edi, dword [esp + 0x68]
lea esi, [edi - 1]
test esi, esi
jl 0x461a1d
lea eax, [esp + 0x64]
push eax
mov edi, 1
call fcn.00443ea0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
lea eax, [edi - 1]
test eax, eax
jl 0x461a31
cmp eax, edi
jge 0x461a31
mov edx, dword [esp + 0x64]
mov edx, dword [edx + eax*4]
jmp 0x461a33
xor edx, edx
mov esi, dword [esp + 0x30]
mov ebx, dword [esi + 0x10]
mov esi, dword [esi]
add esi, ebx
add edx, esi
cmp dword [esp + 0x2c], edx
jg case.0x461962.100
test eax, eax
jl 0x461a64
cmp eax, edi
jge 0x461a64
mov edx, dword [esp + 0x64]
mov eax, dword [edx + eax*4]
add esi, eax
mov dword [esp + 0x2c], esi
jmp case.0x461962.100
xor eax, eax
add esi, eax
mov dword [esp + 0x2c], esi
jmp case.0x461962.100
mov esi, dword [esp + 0x90]
add ecx, 2
add esi, 0xffffffff
mov dword [esp + 0x14], ecx
js case.0x461962.100
lea eax, [esp + 0x8c]
push eax
mov edi, 1
call fcn.00443ea0
jmp 0x461c95
add ecx, 2
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x14], ecx
sete al
cmp byte [esp + 0x1a], 0
mov byte [esp + 0x2b], al
je case.0x461962.100
cmp byte [esp + 0x19], 0
je case.0x461962.100
test al, al
je 0x461ade
mov ecx, dword [esp + 0x1c]
push 2
push ecx
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x461c95
mov edx, dword [esp + 0x1c]
push 1
push edx
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x461c95
mov eax, dword [esp + 0x88]
cmp ebp, dword [eax]
jge 0x461b37
cmp byte [esp + 0x19], 0
jne 0x461b32
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
add ecx, edi
push ecx
push ebx
mov ecx, ebp
push edx
shl ecx, 4
add ecx, dword [esp + 0xc4]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetRect]
inc ebp
mov dword [esp + 0x70], ebp
mov ecx, dword [esp + 0xa4]
lea esi, [ecx - 1]
test esi, esi
jl 0x461b5e
lea edx, [esp + 0xa0]
push edx
mov edi, 1
call fcn.00443ea0
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x790]
test ecx, ecx
jle 0x461b82
lea eax, [ecx - 1]
test eax, eax
jl 0x461b80
cmp eax, ecx
jge 0x461b80
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + eax*4]
jmp 0x461b82
xor eax, eax
mov edx, eax
shr edx, 8
movzx ecx, dl
movzx edx, al
shl edx, 8
or ecx, edx
shr eax, 0x10
movzx eax, al
shl ecx, 8
or ecx, eax
push ecx
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x37], 0
add ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x7c]
lea esi, [ecx - 1]
test esi, esi
jl 0x461bd7
lea edx, [esp + 0x78]
push edx
mov edi, 1
call fcn.00443ea0
mov ecx, dword [esp + 0x7c]
lea eax, [ecx - 1]
test eax, eax
jl 0x461bed
cmp eax, ecx
jge 0x461bed
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx + eax*4]
test esi, esi
jne 0x461bff
mov ecx, dword [esp + 0x7a0]
mov edx, dword [esp + 0x3c]
call fcn.00442810
mov esi, eax
mov edx, dword [esp + 0x30]
cmp byte [edx + 0x34], 0
je 0x461c3b
cmp byte [esi + 0x8e], 0
jne 0x461c3b
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0xc0]
push eax
push 0x20
push 0x20
push ecx
call dword [sym.imp.GDI32.dll_GetCharABCWidthsW]
mov eax, dword [esp + 0xc8]
cdq
sub eax, edx
sar eax, 1
add ebx, eax
mov dword [esp + 0x44], ebx
mov edx, dword [esi]
mov eax, dword [esp + 0x1c]
push edx
lea edi, [esi + 0x90]
push eax
mov dword [esp + 0x38], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [esp + 0x68]
lea eax, [esi - 1]
test eax, eax
jl 0x461c6b
cmp eax, esi
jge 0x461c6b
mov ecx, dword [esp + 0x64]
mov ecx, dword [ecx + eax*4]
jmp 0x461c6d
xor ecx, ecx
mov edx, dword [edi + 0x10]
mov edi, dword [edi]
add edx, edi
add ecx, edx
cmp dword [esp + 0x2c], ecx
jg 0x461c95
test eax, eax
jl 0x461c8d
cmp eax, esi
jge 0x461c8d
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + eax*4]
jmp 0x461c8f
xor eax, eax
add eax, edx
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
test ax, ax
je 0x461cc4
cmp ax, 0x3e
je 0x461cc4
cmp ax, 0x7d
je 0x461cc4
push ecx
call esi
mov ecx, eax
mov dword [esp + 0x14], ecx
movzx eax, word [ecx]
test ax, ax
jne 0x461ca7
push ecx
call esi
mov ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x46258d
cmp dx, 0x3c
jne 0x461de0
cmp word [ecx + 4], 0x3e
jne 0x461de0
movzx ebp, word [ecx + 2]
lea eax, [ecx + 2]
cmp bp, 0x7b
je 0x461cfe
cmp bp, 0x7d
jne 0x461de0
mov ebp, dword [esp + 0x1c]
lea edx, [esp + 0x15c]
push edx
push 1
xor ecx, ecx
push eax
push ebp
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x1a], 0
je 0x461db1
cmp byte [esp + 0x19], 0
je 0x461db1
mov ecx, dword [esp + 0x90]
test ecx, ecx
jle 0x461d8d
lea eax, [ecx - 1]
test eax, eax
jl 0x461d80
cmp eax, ecx
jge 0x461d80
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + eax*4]
cmp eax, 4
jne 0x461d7c
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
sub eax, dword [ecx + 0x10]
mov edx, dword [esp + 0x14]
sub eax, dword [ecx]
add edx, 2
push 1
push edx
cdq
sub eax, edx
sar eax, 1
add eax, edi
push eax
jmp 0x461da7
test eax, eax
jne 0x461d8d
mov eax, dword [esp + 0x14]
push 1
add eax, 2
push eax
push edi
jmp 0x461da7
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
sub edx, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
sub edx, dword [eax]
push 1
add ecx, 2
push ecx
add edx, edi
push edx
add esi, ebx
push esi
push ebp
call dword [sym.imp.GDI32.dll_TextOutW]
add ebx, dword [esp + 0x15c]
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x44], ebx
jg 0x461dc6
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
sub ebx, dword [eax]
add ecx, 6
mov dword [esp + 0x40], ebx
mov dword [esp + 0x14], ecx
jmp 0x46258d
cmp dx, 0x7b
jne 0x461eee
cmp word [ecx + 4], 0x7d
jne 0x461eee
movzx ebp, word [ecx + 2]
lea eax, [ecx + 2]
cmp bp, 0x3c
je 0x461e0c
cmp bp, 0x3e
jne 0x461eee
mov ebp, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], ecx
lea ecx, [esp + 0x150]
push ecx
push 1
push eax
push ebp
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x1a], 0
je 0x461ebf
cmp byte [esp + 0x19], 0
je 0x461ebf
mov ecx, dword [esp + 0x90]
test ecx, ecx
jle 0x461e9b
lea eax, [ecx - 1]
test eax, eax
jl 0x461e8e
cmp eax, ecx
jge 0x461e8e
mov edx, dword [esp + 0x8c]
mov eax, dword [edx + eax*4]
cmp eax, 4
jne 0x461e8a
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
add eax, 2
push 1
push eax
mov eax, dword [esp + 0x54]
sub eax, dword [ecx + 0x10]
sub eax, dword [ecx]
cdq
sub eax, edx
sar eax, 1
add eax, edi
push eax
jmp 0x461eb5
test eax, eax
jne 0x461e9b
mov ecx, dword [esp + 0x14]
push 1
add ecx, 2
push ecx
push edi
jmp 0x461eb5
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
sub ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x14]
sub ecx, dword [eax]
push 1
add edx, 2
push edx
add ecx, edi
push ecx
add esi, ebx
push esi
push ebp
call dword [sym.imp.GDI32.dll_TextOutW]
add ebx, dword [esp + 0x150]
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x44], ebx
jg 0x461ed4
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
sub ebx, dword [edx]
add ecx, 6
mov dword [esp + 0x40], ebx
mov dword [esp + 0x14], ecx
jmp 0x46258d
cmp dx, 0x20
jne 0x461fd1
mov ebp, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
lea eax, [esp + 0x144]
push eax
push 1
push 0x60c514
push ebp
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x1a], 0
je 0x461fa2
cmp byte [esp + 0x19], 0
je 0x461fa2
mov ecx, dword [esp + 0x90]
test ecx, ecx
jle 0x461f81
lea eax, [ecx - 1]
test eax, eax
jl 0x461f77
cmp eax, ecx
jge 0x461f77
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + eax*4]
cmp eax, 4
jne 0x461f73
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
sub eax, dword [ecx + 0x10]
push 1
sub eax, dword [ecx]
push 0x60c514
cdq
sub eax, edx
sar eax, 1
add eax, edi
push eax
jmp 0x461f98
test eax, eax
jne 0x461f81
push 1
push 0x60c514
push edi
jmp 0x461f98
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
sub edx, dword [eax + 0x10]
push 1
sub edx, dword [eax]
push 0x60c514
add edx, edi
push edx
add esi, ebx
push esi
push ebp
call dword [sym.imp.GDI32.dll_TextOutW]
add ebx, dword [esp + 0x144]
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x44], ebx
jg 0x461fb7
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
sub ebx, dword [eax]
add ecx, 2
mov dword [esp + 0x40], ebx
mov dword [esp + 0x14], ecx
jmp 0x46258d
xor edx, edx
xor ebp, ebp
cmp byte [esp + 0x23], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x58], edx
mov esi, ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edx
jne 0x461ffe
cmp word [ecx], 0x3c
je 0x462004
cmp word [ecx], 0x7b
jne 0x462010
mov ebp, 1
lea esi, [ecx + 2]
mov dword [esp + 0x24], ebp
movzx eax, word [esi]
cmp ax, dx
je 0x462070
mov ebx, dword [esp + 0x24]
lea esp, [esp]
cmp ax, 0xa
je 0x46206c
cmp byte [esp + 0x23], 0
je 0x4620d8
cmp ax, 0x3c
je 0x462041
cmp ax, 0x7b
jne 0x4620e4
cmp word [esi + 2], 0x2f
jne 0x4620e4
cmp word [esi + 4], 0x72
jne 0x4620e4
movzx eax, word [esi + 6]
cmp ax, 0x3e
je 0x462067
cmp ax, 0x7d
jne 0x4620e4
mov byte [esp + 0x23], 0
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x24]
lea edx, [esp + 0xac]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp byte [esp + 0x1a], 0
je 0x46234f
cmp byte [esp + 0x19], 0
je 0x46234f
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x5c], 8
test ecx, ecx
jle 0x46228f
lea eax, [ecx - 1]
test eax, eax
jl 0x46222c
cmp eax, ecx
jge 0x46222c
mov edx, dword [esp + 0x8c]
mov eax, dword [edx + eax*4]
jmp 0x46222e
cmp ax, 0x3c
je 0x46206c
cmp ax, 0x7b
je 0x46206c
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov edx, dword [esp + 0x30]
mov edi, eax
mov eax, dword [edx + 0x18]
inc ebp
imul eax, ebp
mov ecx, edi
sub ecx, esi
sar ecx, 1
add ebx, ecx
mov ecx, dword [esp + 0x44]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x38]
cmp edx, dword [ecx + 8]
mov dword [esp + 0xac], eax
jl 0x462137
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xac]
push edx
push ebx
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
add edx, eax
cmp edx, dword [ecx + 8]
jg 0x462195
movzx eax, word [esi]
cmp ax, 0x61
jb 0x462155
cmp ax, 0x7a
jbe 0x462169
cmp ax, 0x41
jb 0x462161
cmp ax, 0x5a
jbe 0x462169
mov dword [esp + 0x40], ebp
mov dword [esp + 0x58], ebx
cmp ax, 0x20
jne 0x462177
mov dword [esp + 0x40], ebp
mov dword [esp + 0x58], ebx
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, dword [esp + 0x14]
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x462020
jmp 0x46206c
mov edx, dword [esp + 0x44]
add eax, edx
cmp eax, dword [ecx + 8]
mov dword [esp + 0x24], ebx
jle 0x4621b4
cmp ebp, 1
jle 0x4621b4
sub edi, esi
sar edi, 1
dec ebp
sub ebx, edi
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x7a4]
test cl, 0x10
je 0x4621d2
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4621d2
mov ebx, dword [esp + 0x58]
mov ebp, eax
mov dword [esp + 0x24], ebx
test ecx, 0x8000
je 0x462210
test ebp, ebp
jle 0x462210
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.USER32.dll_CharPrevW]
push esi
push eax
call edi
dec ebp
test ebp, ebp
jle 0x4621f9
mov ecx, dword [esp + 0x14]
push eax
push ecx
call edi
mov edx, dword [esp + 0x38]
sub esi, eax
mov eax, dword [edx + 8]
sar esi, 1
sub ebx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x44], eax
mov edx, eax
cmp dword [esp + 0x54], edx
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x1b], 1
jg 0x462070
mov dword [esp + 0x54], edx
jmp 0x462070
xor eax, eax
mov dword [esp + 0x5c], eax
cmp eax, 4
jne 0x46225c
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x50]
sub eax, dword [esi + 0x10]
push ecx
sub eax, dword [esi]
cdq
sub eax, edx
sar eax, 1
add eax, ebp
push eax
jmp 0x4622ad
test eax, eax
jne 0x46228f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push ebp
lea eax, [ebx + edi]
push eax
push ecx
call dword [sym.imp.GDI32.dll_TextOutW]
mov esi, dword [esp + 0x30]
jmp 0x4622c7
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x24]
sub ecx, dword [esi]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x48]
push edx
push eax
add ecx, ebp
push ecx
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x28]
lea edx, [ebx + edi]
push edx
push eax
call dword [sym.imp.GDI32.dll_TextOutW]
mov ecx, dword [esp + 0x38]
cmp edi, dword [ecx + 8]
jl 0x462353
test dword [esp + 0x7a4], 0x8000
je 0x462353
mov eax, dword [esp + 0x5c]
push 3
push 0x60c518
cmp eax, 4
jne 0x46231b
mov eax, dword [esp + 0x54]
sub eax, dword [esi + 0x10]
sub eax, dword [esi]
cdq
sub eax, edx
mov edx, dword [esp + 0xb4]
sar eax, 1
add eax, ebp
push eax
mov eax, dword [esp + 0x28]
add edx, ebx
add edx, edi
push edx
push eax
call dword [sym.imp.GDI32.dll_TextOutW]
jmp 0x462353
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x24]
add ecx, ebx
add ecx, edi
test eax, eax
jne 0x462339
push ebp
push ecx
push edx
call dword [sym.imp.GDI32.dll_TextOutW]
jmp 0x462353
mov eax, dword [esp + 0x54]
sub eax, dword [esi + 0x10]
sub eax, dword [esi]
add eax, ebp
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_TextOutW]
jmp 0x462353
mov edi, dword [esp + 0x44]
add edi, dword [esp + 0xac]
cmp dword [esp + 0x54], edi
mov dword [esp + 0x44], edi
jg 0x462368
mov dword [esp + 0x54], edi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
sub edi, dword [eax]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], ecx
jmp 0x46258d
cmp dx, 0xa
jne 0x462393
add ecx, 2
mov dword [esp + 0x14], ecx
cmp byte [esp + 0x1b], 0
je 0x46239f
mov byte [esp + 0x1b], 0
cmp byte [esp + 0x19], 0
jne 0x462463
cmp byte [esp + 0x37], 0
je 0x46241b
mov eax, dword [esp + 0x88]
cmp ebp, dword [eax]
jge 0x46241b
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jl 0x4623c6
mov ebx, eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x9c]
add ecx, edi
push ecx
mov ecx, dword [esp + 0x9c]
push ebx
mov eax, ebp
shl eax, 4
add eax, dword [esp + 0xc0]
push edx
push ecx
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0xb4]
inc ebp
mov edx, ebp
imul edx, edx, 0x84
mov ecx, dword [edx + eax - 0x84]
lea esi, [edx + eax]
push 0xffffffffffffffff
push ecx
mov dword [esp + 0x78], ebp
call fcn.00444050
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0xec]
cmp ebx, ebp
jge 0x46244b
mov edx, dword [esp + 0x2c]
lea esi, [edx + edi]
mov edx, dword [esp + 0xb8]
mov eax, ebx
shl eax, 4
lea edx, [eax + edx + 0xc]
mov eax, ebp
sub eax, ebx
mov dword [edx], esi
add edx, 0x10
sub eax, 1
jne 0x462441
mov dl, byte [esp + 0x1a]
test dl, dl
je 0x46248a
mov al, byte [esp + 0x63]
mov ebp, ebx
mov byte [esp + 0x37], al
mov dword [esp + 0x70], ebp
jmp 0x46248a
mov al, byte [esp + 0x37]
test al, al
je 0x46247b
mov edx, dword [esp + 0x88]
cmp ebp, dword [edx]
jge 0x46247b
inc ebp
mov dword [esp + 0x70], ebp
mov dl, byte [esp + 0x1a]
mov byte [esp + 0x63], al
mov dword [esp + 0xec], ebp
mov eax, dword [esp + 0x7a4]
and eax, 0x20
mov dword [esp + 0x58], eax
je 0x4624b4
test dl, dl
je 0x46276a
mov al, byte [esp + 0x19]
test al, al
jne 0x46276a
mov edi, dword [esp + 0x48]
jmp 0x4624b8
mov al, byte [esp + 0x19]
mov ebx, dword [esp + 0x38]
test dl, dl
je 0x4624c9
test al, al
sete al
mov byte [esp + 0x19], al
mov esi, dword [ebx]
mov dword [esp + 0x44], esi
mov dword [esp + 0x84], 0
test al, al
je 0x462530
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x462538
cmp dword [esp + 0x100], eax
je 0x46250d
mov eax, dword [ebx + 8]
sub eax, esi
sub eax, dword [esp + 0xbc]
cdq
sub eax, edx
mov dl, byte [esp + 0x1a]
sar eax, 1
mov dword [esp + 0x84], eax
jmp 0x462538
test eax, eax
jne 0x462538
test byte [esp + 0x7a4], 2
je 0x462538
mov eax, dword [ebx + 8]
sub eax, esi
sub eax, dword [esp + 0xbc]
mov dword [esp + 0x84], eax
jmp 0x462538
add edi, dword [esp + 0x2c]
mov dword [esp + 0x48], edi
cmp edi, dword [ebx + 0xc]
jle 0x46254d
test dl, dl
jne 0x46276a
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x68]
lea eax, [edx - 1]
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], edi
test eax, eax
jl 0x462573
cmp eax, edx
jge 0x462573
mov edx, dword [esp + 0x64]
mov edx, dword [edx + eax*4]
jmp 0x462575
xor edx, edx
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x10]
add eax, dword [edi]
add eax, edx
cmp esi, dword [ebx + 8]
mov dword [esp + 0x2c], eax
jge 0x462766
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
cmp eax, dword [edx + 8]
jge 0x4625a8
movzx eax, word [ecx]
cmp ax, 0xa
je 0x4625a8
test ax, ax
jne 0x4625ad
mov byte [esp + 0x1b], 1
cmp byte [esp + 0x1a], 0
je 0x46275a
cmp byte [esp + 0x1b], 0
je 0x46275a
cmp byte [esp + 0x19], 0
jne 0x4628eb
mov edi, dword [esp + 0x12c]
push edi
lea esi, [esp + 0x7c]
call fcn.00443d50
mov ecx, dword [esp + 0x128]
mov ebx, dword [esp + 0x78]
lea eax, [edi*4]
push eax
push ecx
push ebx
call fcn.00588160
mov edi, dword [esp + 0x12c]
add esp, 0xc
push edi
lea esi, [esp + 0xa4]
call fcn.00443d50
mov eax, dword [esp + 0x11c]
mov ebp, dword [esp + 0xa0]
lea edx, [edi*4]
push edx
push eax
push ebp
call fcn.00588160
mov edi, dword [esp + 0x114]
add esp, 0xc
push edi
lea esi, [esp + 0x68]
call fcn.00443d50
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0x64]
lea ecx, [edi*4]
push ecx
push edx
push eax
call fcn.00588160
mov edi, dword [esp + 0x120]
add esp, 0xc
push edi
lea esi, [esp + 0x90]
call fcn.00443d50
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x8c]
lea ecx, [edi*4]
push ecx
push edx
push eax
call fcn.00588160
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xc8], ecx
mov cl, byte [esp + 0x6e]
mov byte [esp + 0x2f], cl
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x58], edx
mov dl, byte [esp + 0x5e]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x790]
mov byte [esp + 0x2b], dl
test ecx, ecx
jle 0x4626e5
lea eax, [ecx - 1]
test eax, eax
jl 0x4626e3
cmp eax, ecx
jge 0x4626e3
mov eax, dword [ebp + eax*4]
jmp 0x4626e5
xor eax, eax
mov esi, dword [esp + 0x1c]
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 esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [esp + 0x7c]
lea eax, [ecx - 1]
test eax, eax
jl 0x462722
cmp eax, ecx
jge 0x462722
mov eax, dword [ebx + eax*4]
test eax, eax
jne 0x462732
mov ecx, dword [esp + 0x7a0]
mov edx, dword [esp + 0x3c]
call fcn.00442810
mov edx, dword [eax]
push edx
lea ecx, [eax + 0x90]
push esi
mov dword [esp + 0x38], ecx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp byte [esp + 0x52], 0
je 0x462756
push 2
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx]
test dx, dx
jne 0x460550
mov ebp, dword [esp + 0x70]
test dword [esp + 0x7a4], 0x400
mov eax, dword [esp + 0x88]
mov dword [eax], ebp
je 0x4627ac
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x74]
cmp ecx, eax
jle 0x462795
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 8]
cmp eax, edx
jl 0x4627a9
mov eax, edx
mov dword [ecx + 8], eax
cmp byte [esp + 0x1a], 0
je 0x4627c6
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov edx, dword [esp + 0xe4]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push edx
call esi
mov eax, dword [esp + 0x158]
push eax
call esi
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x110]
test eax, eax
je 0x462807
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x104]
test eax, eax
je 0x46281b
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x46282f
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x128]
test eax, eax
je 0x462843
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x5d4]
lea ecx, [esp + 0x5d8]
cmp eax, ecx
je 0x46285e
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x32c]
lea edx, [esp + 0x330]
cmp eax, edx
je 0x462879
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x46288d
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x64]
test eax, eax
je 0x46289e
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x4628b2
push eax
call fcn.0058622f
add esp, 4
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4628c3
push eax
call fcn.0058622f
add esp, 4
mov ecx, dword [esp + 0x770]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x758]
xor ecx, esp
call fcn.005832f8
add esp, 0x768
ret
mov edi, dword [esp + 0x7c]
push edi
lea esi, [esp + 0x12c]
call fcn.00443d50
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x128]
lea eax, [edi*4]
push eax
push ecx
push edx
call fcn.00588160
mov edi, dword [esp + 0xb0]
add esp, 0xc
push edi
lea esi, [esp + 0x120]
call fcn.00443d50
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x11c]
lea eax, [edi*4]
push eax
push ecx
push edx
call fcn.00588160
mov edi, dword [esp + 0x74]
add esp, 0xc
push edi
lea esi, [esp + 0x108]
call fcn.00443d50
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x104]
lea eax, [edi*4]
push eax
push ecx
push edx
call fcn.00588160
mov edi, dword [esp + 0x9c]
add esp, 0xc
push edi
lea esi, [esp + 0x114]
call fcn.00443d50
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x110]
lea eax, [edi*4]
push eax
push ecx
push edx
call fcn.00588160
mov ecx, dword [esp + 0x20]
mov al, byte [esp + 0x37]
mov dl, byte [esp + 0x2f]
add esp, 0xc
mov dword [esp + 0xdc], ecx
mov byte [esp + 0x52], al
mov byte [esp + 0x62], dl
jmp 0x46275a