Function at 0x428c80
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45f802
mov eax, dword fs:[0]
push eax
sub esp, 0x400
mov eax, dword [0x47b0b0]
xor eax, esp
mov dword [esp + 0x3f8], eax
push ebx
push esi
push edi
mov eax, dword [0x47b0b0]
xor eax, esp
push eax
lea eax, [esp + 0x410]
mov dword fs:[0], eax
mov dword [esp + 0x3c], edx
mov edi, ecx
mov dword [esp + 0x2c], edi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [esp + 0xb8], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0xd0], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x80], ecx
test eax, eax
je 0x42aff5
test edx, edx
je 0x42aff5
push ebx
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x42aff5
mov eax, dword [ebp + 0x20]
shr eax, 0xa
not al
push 0x28
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0xa
and eax, 0xffffff01
mov dword [esp + 0x3c], eax
call fcn.0044e3b2
add esp, 4
mov dword [esp + 0x68], eax
mov dword [esp + 0x418], 0
push 0x28
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0xa
call fcn.0044e3b2
add esp, 4
mov dword [esp + 0x90], eax
push 0x28
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xa
call fcn.0044e3b2
add esp, 4
mov dword [esp + 0x54], eax
lea eax, [esp + 0x16c]
mov byte [esp + 0x418], 2
push eax
xorps xmm0, xmm0
push edi
mov dword [esp + 0x174], 0
movq qword [esp + 0x178], xmm0
mov dword [esp + 0x180], 0
call dword [sym.imp.GDI32.dll_GetClipBox]
mov esi, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea eax, [esp + 0x16c]
push eax
call esi
push ebx
mov dword [esp + 0x108], eax
call esi
cmp byte [esp + 0x38], 0
mov dword [esp + 0x124], eax
je 0x428dff
push 1
push eax
push edi
call dword [sym.imp.GDI32.dll_ExtSelectClipRgn]
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
call fcn.004238a0
add eax, 0x50
mov ecx, ebx
mov dword [esp + 0x50], eax
call fcn.004238a0
push dword [eax]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push 1
push edi
mov dword [esp + 0x120], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebp + 0x10]
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 edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, ebx
call fcn.00423870
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 edi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [ebp + 0x20]
mov esi, eax
and esi, 1
mov dword [esp + 0x128], esi
jne 0x428e9a
test al, 0xe
je 0x428fc4
test eax, 0x400
jne 0x428fc4
or eax, 0x400
push eax
lea eax, [esp + 0x88]
push eax
push 0
push 0
push dword [ebp + 0x10]
lea eax, [esp + 0x160]
push dword [esp + 0x28]
mov edx, ebx
push eax
mov ecx, edi
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0x270f
mov dword [esp + 0x174], 0x64
mov dword [esp + 0xa0], 0
call fcn.00428c80
mov edx, dword [ebp + 0x20]
add esp, 0x1c
test dl, 0x20
je 0x428f67
mov edi, dword [esp + 0x154]
mov ebx, dword [esp + 0x14c]
test esi, esi
je 0x428f55
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
mov eax, dword [eax + 8]
sub eax, esi
cdq
sub eax, edx
mov ecx, eax
mov eax, edi
sub eax, ebx
cdq
sub eax, edx
mov edx, dword [ebp + 0x20]
sar eax, 1
sar ecx, 1
sub ecx, eax
lea eax, [ecx + esi]
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
sub eax, ebx
add eax, edi
mov dword [ecx + 8], eax
jmp 0x428f59
mov ecx, dword [esp + 0x30]
test dl, 2
je 0x428f67
mov eax, dword [ecx + 8]
sub eax, edi
add eax, ebx
mov dword [ecx], eax
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x150]
test dl, 4
je 0x428fac
mov eax, dword [esp + 0x30]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
sub eax, esi
cdq
sub eax, edx
mov ecx, eax
mov eax, edi
sub eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x30]
sar eax, 1
sar ecx, 1
sub ecx, eax
mov eax, edi
add ecx, esi
sub eax, ebx
add eax, ecx
mov dword [edx + 4], ecx
mov dword [edx + 0xc], eax
jmp 0x428fb0
mov edx, dword [esp + 0x30]
test byte [ebp + 0x20], 8
je 0x428fc0
mov eax, dword [edx + 0xc]
sub eax, edi
add eax, ebx
mov dword [edx + 4], eax
mov ebx, dword [esp + 0x3c]
lea eax, [esp + 0x3c0]
mov byte [esp + 0x46], 0
mov dword [esp + 0x3bc], eax
mov byte [esp + 0x3c0], 0
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x84], eax
mov dword [esp + 0xc4], ecx
xor esi, esi
mov edx, dword [esp + 0x80]
cmp esi, dword [edx]
jge 0x429050
push ecx
push eax
push ebx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x429033
push 0xffffffffffffffff
push dword [edi]
lea ecx, [esp + 0x3c4]
call fcn.00436ca0
mov al, 1
mov byte [esp + 0x46], al
jmp 0x429037
mov al, byte [esp + 0x46]
mov ecx, dword [esp + 0xc4]
inc esi
add ebx, 0x10
add edi, 0x44
test al, al
mov eax, dword [esp + 0x84]
je 0x429003
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x50]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
mov esi, dword [ebx]
mov dword [esp + 0x48], eax
xor ah, ah
xor edx, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0x64], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x37], ah
mov byte [esp + 0x2a], ah
mov dword [esp + 0xc8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], edx
mov byte [esp + 0x418], 6
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov al, byte [edx]
mov dword [esp + 0xc4], edx
mov byte [esp + 0x62], ah
mov byte [esp + 0x63], ah
mov byte [esp + 0x47], ah
mov dword [esp + 0x74], 0
mov byte [esp + 0x1b], ah
test al, al
je 0x42aef0
mov ebx, dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 8]
cmp esi, ecx
jge 0x42a9eb
cmp al, 0xa
je 0x42a9ef
cmp byte [esp + 0x64], 0
jne 0x42a9eb
mov ah, byte [esp + 0x2b]
test ah, ah
jne 0x42a6fb
cmp al, 0x3c
je 0x42917c
cmp al, 0x7b
jne 0x42a1f0
mov cl, byte [edx + 1]
lea esi, [edx + 1]
cmp cl, 0x61
jl 0x42a1ec
cmp cl, 0x7a
jg 0x42a1ec
mov cl, byte [edx + 2]
cmp cl, 0x20
je 0x4291aa
cmp cl, 0x3e
je 0x4291aa
cmp cl, 0x7d
jne 0x42a1ec
mov dword [esp + 0x14], esi
movsx eax, byte [esi]
add eax, 0xffffff9f
cmp eax, 0x18
ja case.0x4291c4.100
movzx eax, byte [eax + 0x42b050]
jmp dword [eax*4 + 0x42b01c]
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jle 0x4291e9
cmp al, 0x20
jg 0x4291e9
push esi
call ebx
mov esi, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jg 0x4291d6
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x40]
cmp edx, dword [esi]
jge 0x429285
cmp byte [esp + 0x1b], 0
jne 0x429285
mov ecx, dword [esp + 0xd0]
mov eax, edx
shl eax, 4
add eax, edx
lea edi, [ecx + eax*4]
mov ecx, edi
call fcn.00436d50
mov eax, dword [esp + 0x14]
mov cl, byte [eax]
test cl, cl
je 0x429281
lea esp, [esp]
cmp cl, 0x3e
je 0x42927a
cmp cl, 0x7d
je 0x42927a
push eax
call ebx
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x429274
mov cl, byte [eax]
inc eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0xa0]
mov byte [esp + 0xa0], cl
push eax
mov ecx, edi
mov byte [esp + 0xa5], 0
call fcn.00436bb0
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x429247
mov cl, byte [eax]
test cl, cl
jne 0x429230
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, edi
call fcn.00423810
cmp byte [esp + 0x46], 0
mov ebx, eax
je 0x4292ca
cmp edx, dword [esi]
jge 0x4292ca
mov eax, dword [esp + 0xd0]
mov ecx, edx
shl ecx, 4
add ecx, edx
push dword [eax + ecx*4]
push dword [esp + 0x3c0]
call fcn.0044d1af
add esp, 8
test eax, eax
jne 0x4292ca
mov ecx, edi
call fcn.00423840
mov ebx, eax
push ebx
lea ecx, [esp + 0x94]
call fcn.00436a00
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
shl eax, 8
or ecx, eax
shr ebx, 0x10
movzx eax, bl
mov ebx, dword [esp + 0x2c]
shl ecx, 8
or ecx, eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, edi
call fcn.004238a0
mov esi, eax
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0x429325
lea esi, [eax - 1]
test esi, esi
js 0x429323
cmp esi, eax
jge 0x429323
mov eax, dword [esp + 0x68]
mov esi, dword [eax + esi*4]
jmp 0x429325
xor esi, esi
cmp byte [esi + 0x4d], 0
jne 0x4293ca
movzx eax, byte [esi + 0x4e]
push eax
movzx eax, byte [esi + 0x4c]
push 1
push eax
push dword [esi + 0x48]
mov ecx, edi
push dword [esi + 4]
call fcn.00423c30
test eax, eax
jne 0x429365
movzx eax, byte [esi + 0x4e]
push eax
movzx eax, byte [esi + 0x4c]
push 1
push eax
push dword [esi + 0x48]
mov ecx, edi
push dword [esi + 4]
call fcn.00423a60
push eax
mov ecx, edi
call fcn.00423da0
mov esi, eax
push esi
lea ecx, [esp + 0x6c]
call fcn.00436a00
push dword [esi]
lea edi, [esi + 0x50]
push ebx
mov dword [esp + 0x58], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [esp + 0x58]
lea edx, [ebx - 1]
test edx, edx
js 0x4293a1
cmp edx, ebx
jge 0x4293a1
mov eax, dword [esp + 0x54]
mov esi, dword [eax + edx*4]
jmp 0x4293a3
xor esi, esi
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
lea eax, [ecx + esi]
cmp dword [esp + 0x24], eax
jg 0x4293ca
test edx, edx
js 0x4293c2
cmp edx, ebx
jge 0x4293c2
mov eax, dword [esp + 0x54]
mov eax, dword [eax + edx*4]
jmp 0x4293c4
xor eax, eax
add eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xcc], eax
mov byte [esp + 0x37], 1
jmp 0x42a1a7
mov ebx, dword [esp + 0x3c]
inc esi
mov ecx, ebx
mov dword [esp + 0x14], esi
call fcn.004238a0
mov edi, dword [esp + 0x6c]
mov esi, eax
test edi, edi
jle 0x42941a
lea esi, [edi - 1]
test esi, esi
js 0x429418
cmp esi, edi
jge 0x429418
mov eax, dword [esp + 0x68]
mov esi, dword [eax + esi*4]
jmp 0x42941a
xor esi, esi
cmp byte [esi + 0x4c], 0
jne 0x42a1a7
movzx eax, byte [esi + 0x4e]
push eax
movzx eax, byte [esi + 0x4d]
push eax
push 1
push dword [esi + 0x48]
mov ecx, ebx
push dword [esi + 4]
call fcn.00423c30
test eax, eax
jne 0x42945a
movzx eax, byte [esi + 0x4e]
push eax
movzx eax, byte [esi + 0x4d]
push eax
push 1
push dword [esi + 0x48]
mov ecx, ebx
push dword [esi + 4]
call fcn.00423a60
push eax
mov ecx, ebx
call fcn.00423da0
mov esi, eax
push esi
lea ecx, [esp + 0x6c]
call fcn.00436a00
push dword [esi]
lea edi, [esi + 0x50]
push dword [esp + 0x30]
mov dword [esp + 0x58], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [esp + 0x58]
lea edx, [ebx - 1]
test edx, edx
js 0x429499
cmp edx, ebx
jge 0x429499
mov eax, dword [esp + 0x54]
mov esi, dword [eax + edx*4]
jmp 0x42949b
xor esi, esi
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
lea eax, [ecx + esi]
cmp dword [esp + 0x24], eax
jg 0x42a1a7
test edx, edx
js 0x4294c3
cmp edx, ebx
jge 0x4294c3
mov eax, dword [esp + 0x54]
mov eax, dword [eax + edx*4]
add eax, ecx
jmp 0x42a1a3
xor eax, eax
mov eax, ecx
jmp 0x42a1a3
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jle 0x4294ea
cmp al, 0x20
jg 0x4294ea
push esi
call ebx
mov esi, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jg 0x4294d7
cmp byte [esi], 0x23
jne 0x4294f4
inc esi
mov dword [esp + 0x14], esi
push 0x10
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0044d4af
add esp, 0xc
mov ebx, eax
push ebx
lea ecx, [esp + 0x94]
call fcn.00436a00
mov ecx, ebx
shr ecx, 8
movzx edx, cl
movzx ecx, bl
shl ecx, 8
shr ebx, 0x10
or edx, ecx
movzx eax, bl
shl edx, 8
or edx, eax
push edx
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp 0x42a1a7
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jle 0x429563
lea esp, [esp]
cmp al, 0x20
jg 0x429563
push esi
call ebx
mov esi, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jg 0x429550
push 0xa
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0044d4af
mov ecx, eax
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp esi, eax
je 0x42958c
push ecx
mov ecx, dword [esp + 0x40]
call fcn.00423d30
jmp 0x429462
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x29c], ecx
mov byte [esp + 0x2a0], 0
lea ecx, [esp + 0x180]
mov dword [esp + 0x78], 0xa
mov dword [esp + 0x17c], ecx
mov byte [esp + 0x180], 0
mov byte [esp + 0x418], 8
mov cl, byte [eax]
mov byte [esp + 0xdc], 0
mov byte [esp + 0xd8], 0
mov byte [esp + 0xd4], 0
test cl, cl
je 0x42963a
cmp cl, 0x3e
je 0x42963a
cmp cl, 0x7d
je 0x42963a
cmp cl, 0x20
je 0x42963a
push eax
call ebx
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x429634
mov cl, byte [eax]
inc eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x9c]
mov byte [esp + 0x9c], cl
push eax
lea ecx, [esp + 0x2a0]
mov byte [esp + 0xa1], 0
call fcn.00436bb0
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x429602
mov cl, byte [eax]
test cl, cl
jne 0x4295e6
mov cl, byte [eax]
test cl, cl
jle 0x429652
cmp cl, 0x20
jg 0x429652
push eax
call ebx
mov dword [esp + 0x14], eax
mov cl, byte [eax]
test cl, cl
jg 0x429640
movsx eax, byte [eax]
push eax
call fcn.0044e387
add esp, 4
test eax, eax
je 0x429679
push 0xa
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1c]
call fcn.0044d4af
add esp, 0xc
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
mov cl, byte [eax]
test cl, cl
jle 0x429695
cmp cl, 0x20
jg 0x429695
push eax
call ebx
mov dword [esp + 0x14], eax
mov cl, byte [eax]
test cl, cl
jg 0x429683
mov cl, byte [eax]
test cl, cl
je 0x4296ef
jmp 0x4296a0
cmp cl, 0x3e
je 0x4296ef
cmp cl, 0x7d
je 0x4296ef
push eax
call ebx
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x4296e9
mov cl, byte [eax]
inc eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0xa4]
mov byte [esp + 0xa4], cl
push eax
lea ecx, [esp + 0x180]
mov byte [esp + 0xa9], 0
call fcn.00436bb0
mov eax, dword [esp + 0x14]
cmp eax, esi
jb 0x4296b7
mov cl, byte [eax]
test cl, cl
jne 0x4296a0
push dword [esp + 0x17c]
call fcn.0044e917
add esp, 4
push str.bold
push dword [esp + 0x180]
call fcn.0044d520
mov ecx, dword [esp + 0x184]
add esp, 8
mov ebx, 1
test eax, eax
je 0x429736
sub eax, ecx
movzx eax, byte [esp + 0xdc]
cmovns eax, ebx
mov byte [esp + 0xdc], al
push str.underline
push ecx
call fcn.0044d520
mov ecx, dword [esp + 0x184]
add esp, 8
test eax, eax
je 0x429763
sub eax, ecx
movzx eax, byte [esp + 0xd8]
cmovns eax, ebx
mov byte [esp + 0xd8], al
push str.italic
push ecx
call fcn.0044d520
add esp, 8
test eax, eax
je 0x42978e
sub eax, dword [esp + 0x17c]
movzx eax, byte [esp + 0xd4]
cmovns eax, ebx
mov byte [esp + 0xd4], al
mov esi, dword [esp + 0xd4]
mov edi, dword [esp + 0xd8]
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x3c]
push esi
push edi
push ebx
push dword [esp + 0x84]
push dword [esp + 0x2ac]
call fcn.00423c30
test eax, eax
jne 0x4297db
mov ecx, dword [esp + 0x3c]
push esi
push edi
push ebx
push dword [esp + 0x84]
push dword [esp + 0x2ac]
call fcn.00423a60
mov ecx, dword [esp + 0x3c]
push eax
call fcn.00423da0
mov esi, eax
push esi
lea ecx, [esp + 0x6c]
call fcn.00436a00
push dword [esi]
lea edi, [esi + 0x50]
push dword [esp + 0x30]
mov dword [esp + 0x58], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x17c]
lea ecx, [esp + 0x180]
cmp eax, ecx
je 0x42981f
push eax
call fcn.0044e444
add esp, 4
mov byte [esp + 0x418], 6
mov eax, dword [esp + 0x29c]
lea ecx, [esp + 0x2a0]
cmp eax, ecx
je 0x429481
push eax
call fcn.0044e444
add esp, 4
jmp 0x429481
lea eax, [esi - 1]
mov dword [esp + 0x20], eax
inc esi
push 0xffffffffffffffff
lea eax, [esp + 0x25c]
push esi
lea ecx, [esp + 0x25c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x25c], eax
mov byte [esp + 0x260], 0
call fcn.00436ca0
mov edx, dword [esp + 0x14]
mov al, byte [edx]
test al, al
jle 0x429899
cmp al, 0x20
jg 0x429899
push edx
call ebx
mov edx, eax
mov dword [esp + 0x14], edx
mov al, byte [edx]
test al, al
jg 0x429886
lea eax, [esp + 0x2e8]
mov dword [esp + 0x2e4], eax
mov byte [esp + 0x2e8], 0
mov byte [esp + 0x418], 0xa
mov al, byte [edx]
test al, al
je 0x429e35
cmp al, 0x3e
je 0x429918
cmp al, 0x7d
je 0x429918
cmp al, 0x20
je 0x429918
push edx
call ebx
mov edx, dword [esp + 0x14]
mov esi, eax
cmp edx, esi
jae 0x429912
lea ebx, [ebx]
mov cl, byte [edx]
lea eax, [esp + 0xa8]
inc edx
mov byte [esp + 0xa8], cl
push eax
lea ecx, [esp + 0x2e8]
mov dword [esp + 0x18], edx
mov byte [esp + 0xad], 0
call fcn.00436bb0
mov edx, dword [esp + 0x14]
cmp edx, esi
jb 0x4298e0
mov al, byte [edx]
test al, al
jne 0x4298c1
mov eax, dword [esp + 0x2e4]
cmp byte [eax], 0
je 0x429e35
mov al, byte [edx]
test al, al
jle 0x429943
mov edi, edi
cmp al, 0x20
jg 0x429943
push edx
call ebx
mov edx, eax
mov dword [esp + 0x14], edx
mov al, byte [edx]
test al, al
jg 0x429930
push 0xa
lea eax, [esp + 0x18]
push eax
push edx
call fcn.0044d4af
mov edi, eax
add esp, 0xc
test edi, edi
mov eax, 1
cmovle edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], edi
mov cl, byte [eax]
test cl, cl
jle 0x429982
lea ecx, [ecx]
cmp cl, 0x20
jg 0x429982
push eax
call ebx
mov dword [esp + 0x14], eax
mov cl, byte [eax]
test cl, cl
jg 0x429970
push 0xa
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.0044d4af
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x88], ebx
test ebx, ebx
js 0x4299a3
cmp ebx, edi
jl 0x4299ae
mov dword [esp + 0x88], 0
push str.file
push dword [esp + 0x258]
call fcn.0044d520
add esp, 8
test eax, eax
jne 0x4299fe
push str.res
push dword [esp + 0x258]
call fcn.0044d520
add esp, 8
test eax, eax
jne 0x4299fe
mov ecx, dword [esp + 0x3c]
push eax
push eax
push dword [esp + 0x2ec]
call fcn.00423e80
mov esi, eax
mov dword [esp + 0x8c], esi
jmp 0x429caa
lea eax, [esp + 0x378]
mov dword [esp + 0x374], eax
mov byte [esp + 0x378], 0
lea ecx, [esp + 0x330]
mov dword [esp + 0x32c], ecx
mov byte [esp + 0x330], 0
mov esi, dword [esp + 0x254]
lea edx, [esp + 0x210]
mov dword [esp + 0x20c], edx
mov byte [esp + 0x210], 0
lea edx, [esp + 0x1c8]
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 0
mov byte [esp + 0x418], 0xe
cmp byte [esi], 0
je 0x429c20
mov ebx, dword [sym.imp.USER32.dll_CharNextA]
lea ecx, [esp + 0x20c]
call fcn.00436d50
lea ecx, [esp + 0x1c4]
call fcn.00436d50
mov al, byte [esi]
test al, al
jle 0x429aa1
cmp al, 0x20
jg 0x429aa1
push esi
call ebx
mov esi, eax
mov al, byte [esi]
test al, al
jg 0x429a92
mov al, byte [esi]
test al, al
je 0x429af0
cmp al, 0x3d
je 0x429af0
cmp al, 0x20
jle 0x429af0
push esi
call ebx
mov edi, eax
cmp esi, edi
jae 0x429aea
jmp 0x429ac0
mov cl, byte [esi]
lea eax, [esp + 0xac]
mov byte [esp + 0xac], cl
push eax
lea ecx, [esp + 0x210]
mov byte [esp + 0xb1], 0
call fcn.00436bb0
inc esi
cmp esi, edi
jb 0x429ac0
mov al, byte [esi]
test al, al
jne 0x429aa7
mov al, byte [esi]
test al, al
jle 0x429b05
cmp al, 0x20
jg 0x429b05
push esi
call ebx
mov esi, eax
mov al, byte [esi]
test al, al
jg 0x429af6
mov al, byte [esi]
inc esi
cmp al, 0x3d
jne 0x429c0e
mov al, byte [esi]
test al, al
jle 0x429b25
cmp al, 0x20
jg 0x429b25
push esi
call ebx
mov esi, eax
mov al, byte [esi]
test al, al
jg 0x429b16
mov al, byte [esi]
inc esi
cmp al, 0x27
jne 0x429c0e
mov al, byte [esi]
test al, al
je 0x429b80
cmp al, 0x27
je 0x429b80
push esi
call ebx
mov edi, eax
cmp esi, edi
jae 0x429b7a
jmp 0x429b50
mov cl, byte [esi]
lea eax, [esp + 0xb0]
mov byte [esp + 0xb0], cl
push eax
lea ecx, [esp + 0x1c8]
mov byte [esp + 0xb5], 0
call fcn.00436bb0
inc esi
cmp esi, edi
jb 0x429b50
mov al, byte [esi]
test al, al
jne 0x429b36
cmp byte [esi], 0x27
jne 0x429c0e
mov eax, dword [esp + 0x1c4]
cmp byte [eax], 0
je 0x429bfb
push 0x470dac
push dword [esp + 0x210]
call fcn.0044d1af
add esp, 8
test eax, eax
je 0x429be6
push 0x470db4
push dword [esp + 0x210]
call fcn.0044d1af
add esp, 8
test eax, eax
je 0x429be6
push str.restype
push dword [esp + 0x210]
call fcn.0044d1af
add esp, 8
test eax, eax
jne 0x429bfb
lea ecx, [esp + 0x374]
jmp 0x429bed
lea ecx, [esp + 0x32c]
push 0xffffffffffffffff
push dword [esp + 0x1c8]
call fcn.00436ca0
mov al, byte [esi + 1]
add esi, 2
cmp al, 0x20
jne 0x429c0e
cmp byte [esi], 0
jne 0x429a74
mov eax, dword [esp + 0x374]
mov ecx, dword [esp + 0x32c]
mov edi, dword [esp + 0x7c]
push 0
push eax
push ecx
mov ecx, dword [esp + 0x48]
call fcn.00423e80
mov esi, eax
mov eax, dword [esp + 0x1c4]
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x8c], esi
cmp eax, ecx
je 0x429c51
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0x20c]
lea ecx, [esp + 0x210]
cmp eax, ecx
je 0x429c6c
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0x32c]
lea ecx, [esp + 0x330]
cmp eax, ecx
je 0x429c87
push eax
call fcn.0044e444
add esp, 4
mov byte [esp + 0x418], 0xa
mov eax, dword [esp + 0x374]
lea ecx, [esp + 0x378]
cmp eax, ecx
je 0x429caa
push eax
call fcn.0044e444
add esp, 4
test esi, esi
je 0x429e2a
mov ebx, dword [esi + 4]
mov esi, dword [esi + 8]
cmp edi, 1
jle 0x429cc4
mov eax, ebx
cdq
idiv edi
mov ebx, eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
lea edi, [ebx + ecx]
cmp edi, dword [eax + 8]
jle 0x429cec
cmp ecx, dword [eax]
jle 0x429cec
test byte [ebp + 0x20], 0x20
jne 0x429cec
mov ebx, dword [esp + 0x20]
mov byte [esp + 0x64], 1
jmp 0x429f11
xor eax, eax
mov dword [esp + 0x20], eax
cmp byte [esp + 0x38], al
je 0x429df0
cmp byte [esp + 0x1b], al
je 0x429df0
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x48]
sub eax, esi
mov dword [esp + 0x15c], ecx
lea ecx, [eax + edx]
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0x74]
add ecx, edx
mov dword [esp + 0x164], edi
mov dword [esp + 0x168], ecx
cmp esi, dword [esp + 0x74]
jge 0x429d54
cdq
sub eax, edx
sar eax, 1
neg eax
add ecx, eax
mov dword [esp + 0x168], ecx
sub ecx, esi
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov eax, ecx
imul eax, ebx
mov dword [esp + 0x12c], eax
lea eax, [ecx + 1]
imul eax, ebx
mov ecx, dword [esp + 0x2c]
push 0
push 0
mov dword [esp + 0x13c], eax
movzx eax, byte [edx + 0xc]
mov edx, dword [edx]
push 0
push 0xff
push eax
lea eax, [esp + 0x150]
push eax
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0x178]
push eax
push eax
mov dword [esp + 0x154], 0
mov dword [esp + 0x15c], esi
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
call fcn.00426760
add esp, 0x24
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
cmp esi, edx
cmovg edx, esi
add eax, esi
mov esi, edi
cmp dword [esp + 0x4c], esi
mov dword [esp + 0x84], eax
mov eax, esi
cmovg eax, dword [esp + 0x4c]
mov ecx, edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], eax
jmp 0x429f15
xor ebx, ebx
mov dword [esp + 0x20], ebx
jmp 0x429f11
mov ecx, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x20], ebx
call fcn.004238a0
mov edi, dword [esp + 0x6c]
mov esi, eax
test edi, edi
jle 0x429e64
lea esi, [edi - 1]
test esi, esi
js 0x429e62
cmp esi, edi
jge 0x429e62
mov eax, dword [esp + 0x68]
mov esi, dword [eax + esi*4]
jmp 0x429e64
xor esi, esi
cmp byte [esi + 0x4e], bl
jne 0x429f11
movzx eax, byte [esi + 0x4d]
mov edi, dword [esp + 0x3c]
push 1
push eax
movzx eax, byte [esi + 0x4c]
push eax
push dword [esi + 0x48]
mov ecx, edi
push dword [esi + 4]
call fcn.00423c30
test eax, eax
jne 0x429ea7
movzx eax, byte [esi + 0x4d]
push 1
push eax
movzx eax, byte [esi + 0x4c]
push eax
push dword [esi + 0x48]
mov ecx, edi
push dword [esi + 4]
call fcn.00423a60
push eax
mov ecx, edi
call fcn.00423da0
mov esi, eax
push esi
lea ecx, [esp + 0x6c]
call fcn.00436a00
push dword [esi]
lea edi, [esi + 0x50]
push dword [esp + 0x30]
mov dword [esp + 0x58], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x58]
lea edx, [eax - 1]
test edx, edx
js 0x429ee6
cmp edx, eax
jge 0x429ee6
mov eax, dword [esp + 0x54]
mov esi, dword [eax + edx*4]
jmp 0x429ee8
xor esi, esi
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
lea eax, [ecx + esi]
cmp dword [esp + 0x24], eax
jg 0x429f11
test edx, edx
js 0x429f09
cmp edx, dword [esp + 0x58]
jge 0x429f09
mov eax, dword [esp + 0x54]
mov eax, dword [eax + edx*4]
jmp 0x429f0b
xor eax, eax
add eax, ecx
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x2e4]
lea ecx, [esp + 0x2e8]
cmp eax, ecx
je 0x429f30
push eax
call fcn.0044e444
add esp, 4
mov byte [esp + 0x418], 6
mov eax, dword [esp + 0x254]
lea ecx, [esp + 0x258]
cmp eax, ecx
je 0x429f53
push eax
call fcn.0044e444
add esp, 4
test ebx, ebx
je 0x42a1a7
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], ebx
jmp 0x42ab8d
inc esi
test byte [ebp + 0x20], 0x20
mov dword [esp + 0x14], esi
jne case.0x4291c4.100
mov byte [esp + 0x64], 1
jmp case.0x4291c4.100
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
inc esi
cmp ecx, dword [eax]
movzx edx, dl
mov eax, 1
cmovg edx, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
mov dword [esp + 0x64], edx
test al, al
jle 0x429fc3
lea esp, [esp]
cmp al, 0x20
jg 0x429fc3
push esi
call ebx
mov esi, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jg 0x429fb0
push 0xa
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0044d4af
add esp, 0xc
mov esi, eax
push esi
lea ecx, [esp + 0x58]
call fcn.00436a00
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
lea eax, [ecx + esi]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x24], eax
jg case.0x4291c4.100
mov dword [esp + 0x24], eax
jmp case.0x4291c4.100
inc esi
mov dword [esp + 0x14], esi
mov byte [esp + 0x2b], 1
jmp case.0x4291c4.100
inc esi
cmp byte [esp + 0x2a], 0
mov dword [esp + 0x14], esi
sete al
cmp byte [esp + 0x38], 0
mov byte [esp + 0x2a], al
je case.0x4291c4.100
cmp byte [esp + 0x1b], 0
je case.0x4291c4.100
test al, al
je 0x42a049
push 2
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x42a1a7
push 1
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x42a1a7
mov ebx, dword [esp + 0x3c]
inc esi
mov ecx, ebx
mov dword [esp + 0x14], esi
call fcn.004238a0
mov esi, eax
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0x42a08a
lea esi, [eax - 1]
test esi, esi
js 0x42a088
cmp esi, eax
jge 0x42a088
mov eax, dword [esp + 0x68]
mov esi, dword [eax + esi*4]
jmp 0x42a08a
xor esi, esi
cmp byte [esi + 0x4d], 0
jne 0x42a1a7
movzx eax, byte [esi + 0x4e]
push eax
movzx eax, byte [esi + 0x4c]
push 1
push eax
push dword [esi + 0x48]
mov ecx, ebx
push dword [esi + 4]
call fcn.00423c30
test eax, eax
jne 0x42a0ca
movzx eax, byte [esi + 0x4e]
push eax
movzx eax, byte [esi + 0x4c]
push 1
push eax
push dword [esi + 0x48]
mov ecx, ebx
push dword [esi + 4]
call fcn.00423a60
push eax
mov ecx, ebx
call fcn.00423da0
mov esi, eax
push esi
lea ecx, [esp + 0x6c]
call fcn.00436a00
push dword [esi]
lea edi, [esi + 0x50]
push dword [esp + 0x30]
mov dword [esp + 0x58], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [esp + 0x58]
lea edx, [ebx - 1]
test edx, edx
js 0x42a114
cmp edx, ebx
jge 0x42a114
mov eax, dword [esp + 0x54]
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
mov esi, dword [eax + edx*4]
lea eax, [esi + ecx]
jmp 0x4294a3
mov ecx, dword [edi + 0x10]
xor esi, esi
add ecx, dword [edi]
lea eax, [esi + ecx]
jmp 0x4294a3
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jle 0x42a143
mov edi, edi
cmp al, 0x20
jg 0x42a143
push esi
call ebx
mov esi, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jg 0x42a130
push 0xa
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0044d4af
mov ecx, dword [esp + 0x28]
add ecx, eax
add esp, 0xc
cmp dword [esp + 0x4c], ecx
mov eax, ecx
cmovg eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], eax
jmp 0x42a1a7
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jle 0x42a193
lea esp, [esp]
cmp al, 0x20
jg 0x42a193
push esi
call ebx
mov esi, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jg 0x42a180
push 0xa
lea eax, [esp + 0x18]
push eax
push esi
call fcn.0044d4af
add esp, 0xc
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x14]
mov cl, byte [esi]
test cl, cl
je 0x42a1ce
cmp cl, 0x3e
je 0x42a1ce
cmp cl, 0x7d
je 0x42a1ce
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
mov dword [esp + 0x14], esi
mov cl, byte [esi]
test cl, cl
jne 0x42a1b1
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov ebx, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
jmp 0x42ab8d
mov esi, dword [esp + 0x1c]
cmp al, 0x3c
je 0x42a1fc
cmp al, 0x7b
jne 0x42a532
cmp byte [edx + 1], 0x2f
jne 0x42a532
add edx, 2
mov dword [esp + 0x14], edx
movsx eax, byte [edx]
add eax, 0xffffff9f
cmp eax, 0x14
ja case.0x42a223.100
movzx eax, byte [eax + 0x42b084]
jmp dword [eax*4 + 0x42b06c]
mov eax, dword [esp + 0x94]
inc edx
dec eax
mov dword [esp + 0x14], edx
js 0x42a246
push eax
lea ecx, [esp + 0x94]
call fcn.00436b40
mov eax, dword [esp + 0x94]
mov edx, dword [ebp + 0x10]
test eax, eax
jle 0x42a26d
lea edx, [eax - 1]
test edx, edx
js 0x42a26b
cmp edx, eax
jge 0x42a26b
mov eax, dword [esp + 0x90]
mov edx, dword [eax + edx*4]
jmp 0x42a26d
xor edx, edx
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
shl eax, 8
or ecx, eax
shr edx, 0x10
movzx eax, dl
shl ecx, 8
or ecx, eax
push ecx
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esp + 0x14]
jmp case.0x42a223.100
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
inc edx
cmp esi, dword [ecx]
movzx eax, al
mov ecx, 1
cmovg eax, ecx
mov byte [esp + 0x64], al
mov eax, dword [esp + 0x58]
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], edx
js 0x42a2d7
push eax
lea ecx, [esp + 0x58]
call fcn.00436b40
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
lea edx, [eax - 1]
test edx, edx
js 0x42a2ef
cmp edx, eax
jge 0x42a2ef
mov eax, dword [esp + 0x54]
mov esi, dword [eax + edx*4]
jmp 0x42a2f1
xor esi, esi
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
lea eax, [ecx + esi]
cmp dword [esp + 0x24], eax
jg 0x42a31a
test edx, edx
js 0x42a312
cmp edx, dword [esp + 0x58]
jge 0x42a312
mov eax, dword [esp + 0x54]
mov eax, dword [eax + edx*4]
jmp 0x42a314
xor eax, eax
add ecx, eax
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
mov al, byte [edx]
test al, al
je 0x42a33b
cmp al, 0x3e
je 0x42a33b
cmp al, 0x7d
je 0x42a33b
push edx
call ebx
mov edx, eax
mov dword [esp + 0x14], edx
mov al, byte [edx]
test al, al
jne 0x42a324
push edx
call ebx
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov ebx, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
jmp 0x42ab8d
inc edx
cmp byte [esp + 0x2a], 0
mov dword [esp + 0x14], edx
sete al
cmp byte [esp + 0x38], 0
mov byte [esp + 0x2a], al
je case.0x42a223.100
cmp byte [esp + 0x1b], 0
je case.0x42a223.100
test al, al
je 0x42a38a
push 2
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov edx, dword [esp + 0x14]
jmp case.0x42a223.100
push 1
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov edx, dword [esp + 0x14]
jmp case.0x42a223.100
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x40]
cmp ecx, dword [eax]
jge 0x42a3e7
cmp byte [esp + 0x1b], 0
jne 0x42a3e2
mov eax, dword [edi + 0x10]
add eax, dword [edi]
add eax, dword [esp + 0x48]
push eax
push esi
push dword [esp + 0xd4]
mov eax, ecx
push dword [esp + 0xc0]
shl eax, 4
add eax, dword [esp + 0xc8]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x40]
inc ecx
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x94]
dec eax
js 0x42a3fe
push eax
lea ecx, [esp + 0x94]
call fcn.00436b40
mov eax, dword [esp + 0x94]
mov edx, dword [ebp + 0x10]
test eax, eax
jle 0x42a425
lea edx, [eax - 1]
test edx, edx
js 0x42a423
cmp edx, eax
jge 0x42a423
mov eax, dword [esp + 0x90]
mov edx, dword [eax + edx*4]
jmp 0x42a425
xor edx, edx
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
shl eax, 8
or ecx, eax
shr edx, 0x10
movzx eax, dl
shl ecx, 8
or ecx, eax
push ecx
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esp + 0x14]
xor al, al
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x6c]
inc edx
dec eax
mov dword [esp + 0x14], edx
js 0x42a46b
push eax
lea ecx, [esp + 0x6c]
call fcn.00436b40
mov eax, dword [esp + 0x6c]
lea esi, [eax - 1]
test esi, esi
js 0x42a485
cmp esi, eax
jge 0x42a485
mov eax, dword [esp + 0x68]
mov esi, dword [eax + esi*4]
test esi, esi
jne 0x42a490
mov ecx, dword [esp + 0x3c]
call fcn.004238a0
mov esi, eax
cmp byte [edi + 0x30], 0
je 0x42a4c2
cmp byte [esi + 0x4e], 0
jne 0x42a4c2
lea eax, [esp + 0x14c]
push eax
push 0x20
push 0x20
push dword [esp + 0x38]
call dword [sym.imp.GDI32.dll_GetCharABCWidthsA]
mov eax, dword [esp + 0x154]
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x1c], eax
push dword [esi]
lea edi, [esi + 0x50]
push dword [esp + 0x30]
mov dword [esp + 0x58], edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x58]
lea edx, [eax - 1]
test edx, edx
js 0x42a4ed
cmp edx, eax
jge 0x42a4ed
mov eax, dword [esp + 0x54]
mov esi, dword [eax + edx*4]
jmp 0x42a4ef
xor esi, esi
mov ecx, dword [edi + 0x10]
add ecx, dword [edi]
lea eax, [esi + ecx]
cmp dword [esp + 0x24], eax
jg 0x42a293
test edx, edx
js 0x42a521
cmp edx, dword [esp + 0x58]
jge 0x42a521
mov eax, dword [esp + 0x54]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x24], eax
jmp case.0x42a223.100
mov edx, dword [esp + 0x14]
xor eax, eax
mov eax, ecx
mov dword [esp + 0x24], eax
jmp case.0x42a223.100
cmp al, 0x3c
jne 0x42a5b6
cmp byte [edx + 2], 0x3e
jne 0x42a5b6
mov cl, byte [edx + 1]
inc edx
cmp cl, 0x7b
je 0x42a54e
cmp cl, 0x7d
jne 0x42a5b2
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x108]
push eax
push 1
push edx
push ebx
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
cmp byte [esp + 0x38], 0
je 0x42a5a6
cmp byte [esp + 0x1b], 0
je 0x42a5a6
mov eax, dword [esp + 0x14]
inc eax
push 1
push eax
mov eax, dword [esp + 0x7c]
sub eax, dword [edi + 0x10]
sub eax, dword [edi]
add eax, dword [esp + 0x50]
push eax
push esi
push ebx
call dword [sym.imp.GDI32.dll_TextOutA]
add esi, dword [esp + 0x108]
jmp 0x42a639
mov edx, dword [esp + 0x20]
cmp al, 0x7b
jne 0x42a664
cmp byte [edx + 2], 0x7d
jne 0x42a664
mov cl, byte [edx + 1]
inc edx
cmp cl, 0x3c
je 0x42a5da
cmp cl, 0x3e
jne 0x42a664
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x110]
push eax
push 1
push edx
push ebx
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
cmp byte [esp + 0x38], 0
je 0x42a632
cmp byte [esp + 0x1b], 0
je 0x42a632
mov eax, dword [esp + 0x14]
inc eax
push 1
push eax
mov eax, dword [esp + 0x7c]
sub eax, dword [edi + 0x10]
sub eax, dword [edi]
add eax, dword [esp + 0x50]
push eax
push esi
push ebx
call dword [sym.imp.GDI32.dll_TextOutA]
add esi, dword [esp + 0x110]
cmp dword [esp + 0x4c], esi
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov eax, esi
cmovg eax, dword [esp + 0x4c]
add ebx, 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
jmp 0x42ab8d
cmp al, 0x20
jne 0x42a6f7
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x11c]
push eax
push 1
push 0x470e08
push ebx
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
cmp byte [esp + 0x38], 0
je 0x42a6c7
cmp byte [esp + 0x1b], 0
je 0x42a6c7
mov eax, dword [esp + 0x74]
sub eax, dword [edi + 0x10]
push 1
sub eax, dword [edi]
push 0x470e08
add eax, dword [esp + 0x50]
push eax
push esi
push ebx
call dword [sym.imp.GDI32.dll_TextOutA]
add esi, dword [esp + 0x11c]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x4c], esi
mov edx, dword [esp + 0x38]
mov eax, esi
cmovg eax, dword [esp + 0x4c]
inc ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
jmp 0x42ab8d
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x78], esi
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ecx
mov edi, edx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], ecx
test ah, ah
jne 0x42a72f
cmp al, 0x3c
je 0x42a733
cmp al, 0x7b
jne 0x42a741
mov ebx, 1
mov esi, ebx
lea edi, [edx + 1]
mov dword [esp + 0x20], esi
mov al, byte [edi]
test al, al
je 0x42a77f
cmp al, 0xa
je 0x42a77f
test ah, ah
je 0x42a7e6
cmp al, 0x3c
je 0x42a75f
cmp al, 0x7b
jne 0x42a7ee
cmp byte [edi + 1], 0x2f
jne 0x42a7ee
cmp byte [edi + 2], 0x72
jne 0x42a7ee
mov al, byte [edi + 3]
cmp al, 0x3e
je 0x42a77a
cmp al, 0x7d
jne 0x42a7ee
mov byte [esp + 0x2b], 0
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0xbc]
push eax
push esi
push edx
push dword [esp + 0x38]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
cmp byte [esp + 0x38], 0
je 0x42a9b6
cmp byte [esp + 0x1b], 0
je 0x42a9b6
mov ecx, dword [ebp + 0x20]
mov eax, ecx
and eax, 0x20
jne 0x42a944
cmp dword [esp + 0x128], eax
je 0x42a944
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x78]
mov eax, dword [ecx + 8]
sub eax, dword [esp + 0xbc]
sub eax, dword [ecx]
cdq
sub eax, edx
sar eax, 1
jmp 0x42a961
cmp al, 0x3c
je 0x42a77f
cmp al, 0x7b
je 0x42a77f
push edi
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [esp + 0x50]
inc ebx
mov edx, dword [ecx + 0x18]
mov ecx, dword [esp + 0x1c]
imul edx, ebx
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x7c], esi
sub esi, edi
add eax, esi
mov esi, dword [esp + 0x30]
add ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0xbc], edx
cmp ecx, dword [esi + 8]
jl 0x42a846
lea ecx, [esp + 0xbc]
push ecx
push eax
push dword [esp + 0x1c]
push dword [esp + 0x38]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + ecx]
cmp eax, dword [esi + 8]
mov esi, dword [esp + 0x7c]
jg 0x42a8b2
mov al, byte [edi]
cmp al, 0x61
jl 0x42a860
cmp al, 0x7a
jle 0x42a87c
cmp al, 0x41
jl 0x42a868
cmp al, 0x5a
jle 0x42a87c
mov esi, dword [esp + 0x20]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], esi
jmp 0x42a880
mov esi, dword [esp + 0x20]
cmp al, 0x20
jne 0x42a892
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], esi
push edi
call dword [sym.imp.USER32.dll_CharNextA]
mov edx, dword [esp + 0x14]
mov edi, eax
mov al, byte [edi]
test al, al
je 0x42a77f
mov ah, byte [esp + 0x2b]
jmp 0x42a747
lea eax, [edx + ecx]
mov edx, dword [esp + 0x30]
cmp eax, dword [edx + 8]
jle 0x42a8cf
cmp ecx, dword [edx]
je 0x42a8cf
mov eax, edi
sub eax, esi
mov esi, dword [esp + 0x20]
dec ebx
add esi, eax
jmp 0x42a8d3
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0x20]
test al, 0x10
je 0x42a8ee
mov ecx, dword [esp + 0x8c]
test ecx, ecx
jle 0x42a8ee
mov esi, dword [esp + 0x88]
mov ebx, ecx
test eax, 0x8000
je 0x42a923
test ebx, ebx
jle 0x42a923
push edi
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_CharPrevA]
lea ecx, [ebx - 1]
test ecx, ecx
jle 0x42a916
push eax
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_CharPrevA]
sub eax, edi
add esi, eax
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + 8]
jmp 0x42a927
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x14]
mov eax, ebx
cmovg eax, dword [esp + 0x4c]
mov byte [esp + 0x64], 1
mov dword [esp + 0x4c], eax
jmp 0x42a783
mov edi, dword [esp + 0x78]
test eax, eax
jne 0x42a963
test cl, 2
je 0x42a963
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 8]
sub eax, dword [esp + 0xbc]
sub eax, dword [ecx]
add edi, eax
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
sub eax, dword [ecx + 0x10]
push esi
sub eax, dword [ecx]
push dword [esp + 0x18]
add eax, dword [esp + 0x7c]
push eax
push edi
push dword [esp + 0x3c]
call dword [sym.imp.GDI32.dll_TextOutA]
mov eax, dword [esp + 0x30]
cmp ebx, dword [eax + 8]
jl 0x42a9b6
test dword [ebp + 0x20], 0x8000
je 0x42a9b6
mov eax, dword [esp + 0xbc]
push 3
push 0x470e0c
push dword [esp + 0x50]
add eax, edi
push eax
push dword [esp + 0x3c]
call dword [sym.imp.GDI32.dll_TextOutA]
add ebx, dword [esp + 0xbc]
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], ebx
mov eax, ebx
mov ebx, dword [esp + 0x14]
cmovg eax, dword [esp + 0x4c]
add ebx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
jmp 0x42ab8d
cmp al, 0xa
jne 0x42a9f8
inc edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], edx
mov al, byte [esp + 0x1b]
mov byte [esp + 0x64], 0
test al, al
jne 0x42ab47
mov ebx, dword [esp + 0x24]
test ah, ah
je 0x42aa7d
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x40]
cmp eax, dword [edx]
jge 0x42aa7d
mov eax, dword [esp + 0x48]
cmp esi, ecx
cmovl ecx, esi
mov esi, dword [esp + 0x40]
add eax, ebx
push eax
push ecx
push dword [esp + 0xd4]
mov eax, esi
push dword [esp + 0xc0]
shl eax, 4
add eax, dword [esp + 0xc8]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0xd0]
inc esi
mov eax, esi
shl eax, 4
add eax, esi
push 0xffffffffffffffff
push dword [ecx + eax*4 - 0x44]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x48], esi
call fcn.00436ca0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
jmp 0x42aa81
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc8]
cmp ecx, esi
jge 0x42aabf
mov edx, dword [esp + 0x48]
mov eax, ecx
mov ecx, dword [esp + 0xb8]
add ecx, 0xc
shl eax, 4
add eax, ecx
mov ecx, esi
add edx, ebx
sub ecx, dword [esp + 0xc8]
lea esp, [esp]
mov dword [eax], edx
add eax, 0x10
dec ecx
jne 0x42aab0
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x38]
test dl, dl
je 0x42aad3
mov al, byte [esp + 0x63]
mov byte [esp + 0x37], al
mov dword [esp + 0x40], ecx
mov al, byte [esp + 0x1b]
test byte [ebp + 0x20], 0x20
je 0x42aaed
test dl, dl
je 0x42aee8
test al, al
jne 0x42aee8
test dl, dl
je 0x42aafa
test al, al
sete al
mov byte [esp + 0x1b], al
mov ebx, dword [esp + 0x30]
test al, al
mov esi, dword [ebx]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], esi
jne 0x42ab14
add eax, dword [esp + 0x24]
mov dword [esp + 0x48], eax
cmp eax, dword [ebx + 0xc]
jle 0x42ab21
test dl, dl
jne 0x42aeec
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xcc], eax
lea eax, [ecx - 1]
mov dword [esp + 0xb4], esi
test eax, eax
js 0x42ab73
cmp eax, ecx
jge 0x42ab73
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + eax*4]
jmp 0x42ab75
mov esi, dword [esp + 0x40]
test ah, ah
je 0x42ab5f
mov ecx, dword [esp + 0x80]
cmp esi, dword [ecx]
jge 0x42ab5f
inc esi
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x38]
mov byte [esp + 0x63], ah
mov dword [esp + 0xc8], esi
jmp 0x42aad7
xor eax, eax
mov ecx, dword [edi + 0x10]
add ecx, eax
add ecx, dword [edi]
mov dword [esp + 0x24], ecx
cmp esi, dword [ebx + 8]
jge 0x42aef0
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
cmp esi, dword [eax + 8]
jge 0x42aba0
mov al, byte [ebx]
cmp al, 0xa
je 0x42aba0
test al, al
jne 0x42abab
mov eax, 1
mov dword [esp + 0x64], eax
jmp 0x42abaf
mov eax, dword [esp + 0x64]
test dl, dl
je 0x42aecc
test al, al
je 0x42aecc
cmp byte [esp + 0x1b], 0
jne 0x42ad96
mov eax, dword [esp + 0x68]
test eax, eax
je 0x42abdb
push eax
call fcn.0044e444
add esp, 4
mov edi, dword [esp + 0xf0]
lea esi, [edi*4]
push esi
call fcn.0044e3b2
add esp, 4
mov ebx, eax
push esi
push 0
push ebx
mov dword [esp + 0x74], ebx
call fcn.00452d00
add esp, 0xc
mov dword [esp + 0x70], edi
push esi
push dword [esp + 0xf0]
mov dword [esp + 0x74], edi
push ebx
call fcn.00450620
mov eax, dword [esp + 0x9c]
add esp, 0xc
test eax, eax
je 0x42ac31
push eax
call fcn.0044e444
add esp, 4
mov esi, dword [esp + 0xe4]
shl esi, 2
push esi
call fcn.0044e3b2
add esp, 4
mov edi, eax
push esi
push 0
push edi
mov dword [esp + 0x9c], edi
call fcn.00452d00
mov eax, dword [esp + 0xf0]
add esp, 0xc
mov dword [esp + 0x98], eax
push esi
push dword [esp + 0xe4]
mov dword [esp + 0x9c], eax
push edi
call fcn.00450620
mov eax, dword [esp + 0x60]
add esp, 0xc
test eax, eax
je 0x42ac90
push eax
call fcn.0044e444
add esp, 4
mov esi, dword [esp + 0xfc]
shl esi, 2
push esi
call fcn.0044e3b2
add esp, 4
mov dword [esp + 0x54], eax
push esi
push 0
push eax
call fcn.00452d00
mov eax, dword [esp + 0x108]
add esp, 0xc
mov dword [esp + 0x5c], eax
push esi
push dword [esp + 0xfc]
mov dword [esp + 0x60], eax
push dword [esp + 0x5c]
call fcn.00450620
mov eax, dword [esp + 0x30]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x6e]
mov byte [esp + 0x37], al
mov al, byte [esp + 0x53]
mov byte [esp + 0x36], al
mov eax, dword [esp + 0xf0]
add esp, 0xc
test eax, eax
jle 0x42ad1c
lea edx, [eax - 1]
test edx, edx
js 0x42ad1a
cmp edx, eax
jge 0x42ad1a
mov edx, dword [edi + edx*4]
jmp 0x42ad1c
xor edx, edx
mov esi, dword [esp + 0x2c]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
shl eax, 8
or ecx, eax
shr edx, 0x10
movzx eax, dl
shl ecx, 8
or ecx, eax
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esp + 0xf0]
lea eax, [edx - 1]
test eax, eax
js 0x42ad5c
cmp eax, edx
jge 0x42ad5c
mov eax, dword [ebx + eax*4]
test eax, eax
jne 0x42ad65
mov ecx, dword [esp + 0x3c]
call fcn.004238a0
push dword [eax]
lea edi, [eax + 0x50]
push esi
mov dword [esp + 0x58], edi
call dword [sym.imp.GDI32.dll_SelectObject]
cmp byte [esp + 0x47], 0
je 0x42ad85
push 2
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
jmp 0x42aed4
mov eax, dword [esp + 0xec]
test eax, eax
je 0x42adaa
push eax
call fcn.0044e444
add esp, 4
mov ebx, dword [esp + 0x6c]
lea esi, [ebx*4]
push esi
call fcn.0044e3b2
add esp, 4
mov edi, eax
push esi
push 0
push edi
mov dword [esp + 0xf8], edi
call fcn.00452d00
add esp, 0xc
mov dword [esp + 0xf4], ebx
push esi
push dword [esp + 0x6c]
mov dword [esp + 0xf8], ebx
push edi
call fcn.00450620
mov eax, dword [esp + 0xec]
add esp, 0xc
test eax, eax
je 0x42ae03
push eax
call fcn.0044e444
add esp, 4
mov ebx, dword [esp + 0x94]
lea esi, [ebx*4]
push esi
call fcn.0044e3b2
add esp, 4
mov edi, eax
push esi
push 0
push edi
mov dword [esp + 0xec], edi
call fcn.00452d00
add esp, 0xc
mov dword [esp + 0xe8], ebx
push esi
push dword [esp + 0x94]
mov dword [esp + 0xec], ebx
push edi
call fcn.00450620
mov eax, dword [esp + 0x104]
add esp, 0xc
test eax, eax
je 0x42ae62
push eax
call fcn.0044e444
add esp, 4
mov ebx, dword [esp + 0x58]
lea esi, [ebx*4]
push esi
call fcn.0044e3b2
add esp, 4
mov edi, eax
push esi
push 0
push edi
mov dword [esp + 0x104], edi
call fcn.00452d00
add esp, 0xc
mov dword [esp + 0x100], ebx
push esi
push dword [esp + 0x58]
mov dword [esp + 0x104], ebx
push edi
call fcn.00450620
mov al, byte [esp + 0x36]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov byte [esp + 0x53], al
mov al, byte [esp + 0x37]
add esp, 0xc
mov dword [esp + 0x20], edx
mov dword [esp + 0xc4], edx
mov byte [esp + 0x62], al
jmp 0x42aed0
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x50]
mov al, byte [edx]
mov ebx, dword [sym.imp.USER32.dll_CharNextA]
mov ah, byte [esp + 0x37]
test al, al
jne 0x429142
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
test dword [ebp + 0x20], 0x400
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x40]
mov dword [edx], eax
je 0x42af2c
mov eax, dword [esp + 0x48]
add eax, ecx
cmp dword [esp + 0x84], eax
mov ecx, dword [esp + 0x4c]
cmovg eax, dword [esp + 0x84]
cmp dword [ebx + 8], ecx
mov dword [ebx + 0xc], eax
cmovl ecx, dword [ebx + 8]
mov dword [ebx + 8], ecx
cmp byte [esp + 0x38], 0
mov esi, dword [esp + 0x104]
je 0x42af45
push esi
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SelectClipRgn]
push esi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [esp + 0x124]
call esi
push dword [esp + 0x118]
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x42af7c
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x42af90
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0xec]
test eax, eax
je 0x42afa4
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0x3bc]
lea ecx, [esp + 0x3c0]
cmp eax, ecx
je 0x42afbf
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x42afd0
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0x90]
test eax, eax
je 0x42afe4
push eax
call fcn.0044e444
add esp, 4
mov eax, dword [esp + 0x68]
test eax, eax
je 0x42aff5
push eax
call fcn.0044e444
add esp, 4
mov ecx, dword [esp + 0x410]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3f8]
xor ecx, esp
call fcn.0044d04f
mov esp, ebp
pop ebp
ret