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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x45fb1a
push eax
mov eax, 0x7558
mov dword fs:[0], esp
call fcn.0045ed70
mov eax, dword [esp + 0x7568]
push ebx
mov ebx, dword [esp + 0x7570]
push ebp
mov ebp, ecx
push esi
cmp ebx, eax
push edi
mov dword [esp + 0x68], ebp
jle 0x41573e
lea edi, [ebp + 4]
lea esi, [ebx - 1]
push esi
mov ecx, edi
call fcn.004022c0
test eax, eax
je 0x41572a
push esi
mov ecx, edi
call fcn.004022c0
cmp byte [eax], 0
jne 0x415737
mov eax, dword [esp + 0x7578]
dec ebx
dec esi
cmp ebx, eax
jg 0x415711
mov dword [esp + 0x757c], ebx
mov esi, dword [ebp + 0xa4]
mov edx, dword [esp + 0x7578]
mov eax, ebx
add esi, 0x54
mov ecx, 0x107
lea edi, [esp + 0x810]
sub eax, edx
push 0
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 0x108], eax
mov eax, 0x51eb851f
push 0x4702e4
imul ecx
mov cl, byte [esp + 0x818]
push str.PRINTERSETUP
sar edx, 5
mov eax, edx
mov byte [esp + 0x27], cl
shr eax, 0x1f
add edx, eax
mov ecx, 0x473414
mov dword [esp + 0xc8], 0
mov dword [ebp + 0xb8], edx
call fcn.00441d50
push 0
push str.USESYNTAXCOLORS
push str.PRINTERSETUP
mov ecx, 0x473414
mov byte [esp + 0xbf], al
call fcn.00441d50
push 0
push str.PRINTHEADER
push str.PRINTERSETUP
mov ecx, 0x473414
mov byte [esp + 0x3f], al
call fcn.00441d50
push 0
push str.PRINTFOOTER
push str.PRINTERSETUP
mov ecx, 0x473414
mov byte [esp + 0x3e], al
call fcn.00441d50
push 0
push str.USETEMPLATE
push str.PRINTERSETUP
mov ecx, 0x473414
mov byte [esp + 0x26], al
call fcn.00441d50
push 0
push str.SENDFORMFEED
push str.PRINTERSETUP
mov ecx, 0x473414
mov byte [esp + 0x87], al
call fcn.00441d50
mov edx, dword [esp + 0xc24]
lea ecx, [esp + 0xc2c]
push 0x400
mov byte [esp + 0x17], al
mov eax, dword [esp + 0xc2c]
push ecx
push str.LEFTMARGIN
push str.PRINTERSETUP
mov ecx, 0x473414
mov dword [esp + 0x70], edx
mov dword [esp + 0xac], eax
call fcn.00441a30
push 0
push str.LEFTMARGININCH
push str.PRINTERSETUP
mov ecx, 0x473414
call fcn.00441d50
test al, al
je 0x4158a2
mov dword [esp + 0x70], 0x851eb852
mov dword [esp + 0x74], 0x400451eb
jmp 0x4158b2
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0x3ff00000
lea edx, [esp + 0xc2c]
push edx
call fcn.0044b210
fmul qword [esp + 0x74]
add esp, 4
lea eax, [esp + 0xc2c]
mov ecx, 0x473414
push 0x400
push eax
fstp qword [esp + 0xe8]
push str.RIGHTMARGIN
push str.PRINTERSETUP
call fcn.00441a30
push 0
push str.RIGHTMARGININCH
push str.PRINTERSETUP
mov ecx, 0x473414
call fcn.00441d50
test al, al
je 0x41591a
mov dword [esp + 0x70], 0x851eb852
mov dword [esp + 0x74], 0x400451eb
jmp 0x41592a
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0x3ff00000
lea ecx, [esp + 0xc2c]
push ecx
call fcn.0044b210
fmul qword [esp + 0x74]
add esp, 4
mov ecx, 0x473414
push 0xf4240
push 1
fstp qword [esp + 0x78]
push 0x50
push str.PAPERWIDTH
push str.PRINTERSETUP
call fcn.00441b50
push 0xf4240
push 0
push 0x40
push str.PAPERHEIGHT
push str.PRINTERSETUP
mov ecx, 0x473414
mov ebx, eax
call fcn.00441b50
mov edx, dword [ebp + 0xa4]
mov esi, dword [0x47340c]
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 0x4c]
cmp eax, 0xfffffffe
jne 0x4159dd
test esi, esi
jl 0x4159bb
cmp esi, 0x40
jge 0x4159bb
mov eax, dword [esi*4 + 0x473308]
test eax, eax
je 0x4159bb
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x4159bb
mov eax, esi
jmp 0x4159dd
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x4159d1
cmp byte [edx + 0x81a], 0
jne 0x415a2f
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x4159c2
or eax, 0xffffffff
test eax, eax
jl 0x4159f1
cmp eax, 0x40
jge 0x4159f1
mov eax, dword [eax*4 + 0x473308]
test eax, eax
jne 0x4159f6
mov eax, 0x473408
cmp byte [eax], 0
je 0x415b2b
mov eax, dword [ebp + 0xa4]
mov eax, dword [eax + 0x4c]
cmp eax, 0xfffffffe
jne 0x415a5f
test esi, esi
jl 0x415a39
cmp esi, 0x40
jge 0x415a39
mov eax, dword [esi*4 + 0x473308]
test eax, eax
je 0x415a39
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x415a39
mov eax, esi
jmp 0x415a5f
mov esi, eax
mov dword [0x47340c], esi
jmp 0x4159dd
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x415a53
cmp byte [edx + 0x81a], 0
jne 0x415adb
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x415a40
or eax, 0xffffffff
test eax, eax
jl 0x415a73
cmp eax, 0x40
jge 0x415a73
mov eax, dword [eax*4 + 0x473308]
test eax, eax
jne 0x415a78
mov eax, 0x473408
lea ecx, [esp + 0x1c38]
push eax
push ecx
call fcn.0044b3e0
mov edx, dword [ebp + 0xa4]
add esp, 8
mov eax, dword [edx + 0x4c]
cmp eax, 0xfffffffe
jne 0x415aef
mov eax, dword [0x47340c]
test eax, eax
jl 0x415aba
cmp eax, 0x40
jge 0x415aba
mov ecx, dword [eax*4 + 0x473308]
test ecx, ecx
je 0x415aba
mov dl, byte [ecx + 0x81a]
test dl, dl
jne 0x415aef
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x415ad0
cmp byte [edx + 0x81a], 0
jne 0x415ae5
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x415ac1
jmp 0x415aec
mov dword [0x47340c], eax
jmp 0x415a5f
mov dword [0x47340c], eax
jmp 0x415aef
or eax, 0xffffffff
test eax, eax
jl 0x415b03
cmp eax, 0x40
jge 0x415b03
mov eax, dword [eax*4 + 0x473308]
test eax, eax
jne 0x415b08
mov eax, 0x473408
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1230]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x415b80
mov edx, dword [0x483a50]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0x1c38]
mov edi, dword [edx + 0x57c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
lea ebp, [esp + 0x1230]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x57c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov al, byte [esp + 0xb3]
and ecx, 3
test al, al
rep movsb byte es:[edi], byte [esi]
je 0x416191
mov eax, dword [0x4702e4]
xor edi, edi
fld qword [esp + 0xe0]
mov dword [esp + 0xf8], eax
mov dword [esp + 0x50], edi
mov byte [esp + 0x1b], 0
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x70]
mov ebp, eax
mov dword [esp + 0x40], ebp
call sub.MSVCRT.dll__ftol
lea ecx, [esp + 0x1230]
mov esi, eax
mov dword [esp + 0x134], ecx
lea eax, [esp + 0x14]
push edi
lea ecx, [esp + 0x824]
lea edx, [esp + 0xfc]
push eax
push ecx
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], edx
call sub.WINSPOOL.DRV_OpenPrinterA
test eax, eax
je 0x416122
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x134]
push edx
push 1
push eax
call sub.WINSPOOL.DRV_StartDocPrinterA
mov edi, eax
test edi, edi
je 0x416126
mov ecx, dword [esp + 0x14]
push ecx
call sub.WINSPOOL.DRV_StartPagePrinter
test eax, eax
je 0x416126
mov edx, ebx
sub edx, esi
sub edx, ebp
cmp edx, 0xa
jge 0x415c56
mov eax, esi
sub eax, ebx
lea eax, [eax + ebp + 0xa]
cdq
sub eax, edx
sar eax, 1
sub ebp, eax
sub esi, eax
mov dword [esp + 0x40], ebp
test ebp, ebp
jge 0x415c5e
xor ebp, ebp
jmp 0x415c68
cmp ebp, 0x64
jle 0x415c6c
mov ebp, 0x64
mov dword [esp + 0x40], ebp
test esi, esi
jge 0x415c72
xor esi, esi
mov ecx, 0x140
mov eax, 0x20202020
lea edi, [esp + 0x5858]
sub ebx, esi
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [esp + 0x757c]
sub ebx, ebp
mov ebp, dword [esp + 0x7578]
xor esi, esi
cmp ebp, eax
mov dword [esp + 0x48], ebx
jge 0x415cee
mov ecx, dword [esp + 0x68]
lea ebx, [ecx + 4]
push ebp
mov ecx, ebx
call fcn.004022c0
test eax, eax
je 0x415ce2
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x48]
not ecx
dec ecx
mov eax, ecx
cdq
idiv edi
mov eax, ecx
neg edx
sbb edx, edx
neg edx
mov dword [esp + 0x7c], edx
cdq
idiv edi
mov edx, dword [esp + 0x7c]
add eax, esi
lea esi, [eax + edx]
mov eax, dword [esp + 0x757c]
inc ebp
cmp ebp, eax
jl 0x415ca9
mov ecx, dword [esp + 0x8c]
mov eax, esi
cdq
dec ecx
mov ebp, dword [esp + 0x48]
idiv ecx
mov eax, esi
mov esi, 1
mov ebx, edx
neg ebx
cdq
sbb ebx, ebx
idiv ecx
mov ecx, dword [esp + 0x757c]
neg ebx
add ebx, eax
mov eax, dword [esp + 0x7578]
mov edi, eax
cmp eax, ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], edi
jge 0x416039
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x9c]
cmp esi, ecx
jl 0x415d4a
cmp esi, eax
jg 0x415d4a
mov bl, 1
jmp 0x415d4c
xor bl, bl
cmp esi, eax
jg 0x416024
mov edx, dword [esp + 0x68]
push edi
lea ecx, [edx + 4]
call fcn.004022c0
mov edx, eax
test edx, edx
je 0x416010
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x54], eax
cmp ecx, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], eax
jle 0x415f9d
sub edx, ebp
mov dword [esp + 0x94], ebp
mov dword [esp + 0x7c], edx
mov edi, ecx
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x415dc2
test bl, bl
je 0x415e1f
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x4c]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x585c]
push ecx
push edx
push eax
call sub.WINSPOOL.DRV_WritePrinter
test bl, bl
je 0x415e1f
cmp dword [esp + 0x94], edi
jle 0x415dd6
mov eax, edi
cdq
idiv ebp
jmp 0x415dd8
mov edx, ebp
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x84]
add edx, eax
push edx
push ecx
call sub.WINSPOOL.DRV_WritePrinter
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x54], eax
lea eax, [esp + 0x4c]
push eax
push 2
push 0x4701bc
push ecx
call sub.WINSPOOL.DRV_WritePrinter
jmp 0x415e35
cmp dword [esp + 0x94], edi
jle 0x415e2f
mov eax, edi
cdq
idiv ebp
jmp 0x415e31
mov edx, ebp
add dword [esp + 0x54], edx
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x415f76
mov ecx, dword [esp + 0x50]
inc ecx
dec eax
cmp ecx, eax
mov dword [esp + 0x50], ecx
jne 0x415f76
mov al, byte [esp + 0x13]
mov ecx, 0x47023c
test al, al
jne 0x415e68
mov ecx, 0x472b1c
mov edx, dword [esp + 0x64]
mov eax, esi
push ecx
push edx
push eax
lea eax, [esp + 0x218]
push str._d__d_r_n_s
push eax
inc esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
test bl, bl
je 0x415f46
lea ecx, [esp + 0x4c]
lea edi, [esp + 0x20c]
push ecx
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
mov al, byte [esp + 0x17]
not ecx
dec ecx
test al, al
mov eax, dword [esp + 0x44]
setne dl
add edx, 2
add edx, ebp
add edx, eax
lea eax, [esp + 0x585c]
sub edx, ecx
mov ecx, dword [esp + 0x18]
push edx
push eax
push ecx
call sub.WINSPOOL.DRV_WritePrinter
lea edi, [esp + 0x20c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x4c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
push ecx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x214]
push eax
push ecx
call sub.WINSPOOL.DRV_WritePrinter
cmp esi, dword [esp + 0x60]
jl 0x415f31
cmp esi, dword [esp + 0x9c]
jg 0x415f31
mov edx, dword [esp + 0x14]
mov bl, 1
push edx
call sub.WINSPOOL.DRV_StartPagePrinter
mov eax, dword [esp + 0x14]
push eax
call sub.WINSPOOL.DRV_EndPagePrinter
mov edi, dword [esp + 0x48]
mov byte [esp + 0x1b], bl
mov dword [esp + 0x50], 0
jmp 0x415f7b
mov edi, dword [esp + 0x48]
xor bl, bl
mov byte [esp + 0x1b], 1
mov dword [esp + 0x50], 0
jmp 0x415f7b
cmp esi, dword [esp + 0x60]
jl 0x415f65
cmp esi, dword [esp + 0x9c]
jg 0x415f65
mov bl, 1
mov dword [esp + 0x50], 0
mov byte [esp + 0x1b], bl
jmp 0x415f7b
xor bl, bl
mov byte [esp + 0x1b], 1
mov dword [esp + 0x50], 0
jmp 0x415f7b
mov byte [esp + 0x1b], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x94]
add eax, ebp
add edx, ebp
cmp eax, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x94], edx
jl 0x415d9a
mov edi, dword [esp + 0x7580]
xor ebx, ebx
cmp edi, ebx
je 0x415ffe
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x68]
mov ecx, eax
inc eax
mov dword [esp + 0xbc], eax
mov eax, dword [edx + 0xb8]
cmp ecx, eax
jle 0x415ffe
fild dword [esp + 0x6c]
mov eax, dword [esp + 0x104]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], eax
fmul qword [0x464c68]
fild qword [esp + 0x70]
fdivp st(1)
call sub.MSVCRT.dll__ftol
push eax
push edi
call fcn.0043ab50
add esp, 8
mov dword [esp + 0xbc], ebx
mov ecx, dword [esp + 0x68]
mov al, byte [ecx + 0xf582]
test al, al
jne 0x416024
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x757c]
inc edi
cmp edi, eax
mov dword [esp + 0x6c], edi
jl 0x415d33
mov al, byte [esp + 0x1b]
mov esi, dword [esp + 0x8c]
test al, al
jne 0x4160ff
jmp 0x416040
mov esi, dword [esp + 0x8c]
test esi, esi
je 0x4160ff
mov eax, dword [esp + 0x50]
inc eax
cmp eax, esi
jge 0x41606c
sub esi, eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x4c]
push edx
push 2
push 0x4701bc
push eax
call sub.WINSPOOL.DRV_WritePrinter
dec esi
jne 0x416053
mov bl, byte [esp + 0x13]
mov eax, 0x47023c
test bl, bl
jne 0x41607e
mov eax, 0x472b1c
push eax
mov eax, dword [esp + 0x68]
push eax
push eax
lea ecx, [esp + 0x218]
push str._d__d_r_n_s
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x220]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x4c]
test bl, bl
mov ebx, dword [esp + 0x40]
push edx
setne al
add eax, 2
mov edx, dword [esp + 0x18]
add eax, ebp
add eax, ebx
sub eax, ecx
lea ecx, [esp + 0x585c]
push eax
push ecx
push edx
call sub.WINSPOOL.DRV_WritePrinter
lea eax, [esp + 0x4c]
lea edi, [esp + 0x20c]
push eax
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x214]
push ecx
push edx
call sub.WINSPOOL.DRV_WritePrinter
mov eax, dword [esp + 0x14]
push eax
call sub.WINSPOOL.DRV_EndPagePrinter
mov ecx, dword [esp + 0x14]
push ecx
call sub.WINSPOOL.DRV_EndDocPrinter
mov edx, dword [esp + 0x14]
push edx
call sub.WINSPOOL.DRV_ClosePrinter
jmp 0x4192fd
mov edi, dword [esp + 0x70]
mov ecx, dword [0x483a50]
lea eax, [esp + 0x820]
push eax
lea eax, [esp + 0x410]
mov edx, dword [ecx + 0x120c]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov ecx, dword [0x483a50]
add esp, 0xc
lea eax, [esp + 0x40c]
mov edx, dword [ecx + 0x4e0]
push 0x2010
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test edi, edi
je 0x41617c
mov ecx, dword [esp + 0x14]
push ecx
call sub.WINSPOOL.DRV_EndDocPrinter
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41618a
push eax
call sub.WINSPOOL.DRV_ClosePrinter
xor al, al
jmp 0x4192ff
lea ecx, [esp + 0x1c]
call fcn.0045e3e0
mov edx, dword [esp + 0x818]
lea ecx, [esp + 0x1c]
push edx
mov dword [esp + 0x7574], 0
call sub.MFC42.DLL_CDC::Attach
lea eax, [esp + 0x1230]
lea ecx, [esp + 0x1c]
push eax
call sub.MFC42.DLL_CDC::StartDocA
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.GDI32.dll_StartPage]
lea ecx, [esp + 0x140]
call fcn.0045e3e0
push 0
lea edx, [esp + 0x824]
push 0
push edx
push str.winspool
mov byte [esp + 0x7580], 1
lea ebx, [esp + 0x150]
call dword [sym.imp.GDI32.dll_CreateDCA]
push eax
lea ecx, [esp + 0x144]
call sub.MFC42.DLL_CDC::Attach
test eax, eax
jne 0x416219
lea ebx, [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebp, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 8
push eax
call ebp
mov ecx, dword [esp + 0x24]
mov esi, eax
push 0xa
push ecx
mov dword [esp + 0xf8], esi
call ebp
mov edx, dword [esp + 0x818]
mov edi, eax
push 4
push edx
mov dword [esp + 0x128], edi
call ebp
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
fcom qword [0x464c90]
fnstsw ax
test ah, 0x40
jne 0x416275
fld qword [esp + 0xe0]
fmul qword [0x464cb8]
fdiv st(1)
jmp 0x41627b
fld qword [0x464cb0]
call sub.MSVCRT.dll__ftol
fcom qword [0x464c90]
mov dword [esp + 0x14], eax
fnstsw ax
test ah, 0x40
jne 0x41629f
fld qword [esp + 0x70]
fmul qword [0x464cb8]
fdivrp st(1)
jmp 0x4162a7
fstp st(0)
fld qword [0x464cb0]
call sub.MSVCRT.dll__ftol
push esi
mov ebp, eax
push edi
push 0x3e8
mov dword [esp + 0x94], ebp
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x8c], eax
mov eax, 0x3e8
sub eax, ebp
sub eax, edx
cmp eax, 0x12c
jge 0x4162fa
mov ecx, edx
lea eax, [ecx + ebp - 0x2bc]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
sub ebp, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x88], ebp
mov ecx, dword [esp + 0x14]
mov eax, 1
cmp ecx, eax
jge 0x41630b
mov dword [esp + 0x14], eax
cmp ebp, eax
jge 0x416316
mov dword [esp + 0x88], eax
push 7
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetMapMode
push 0x3e8
lea ecx, [esp + 0x84]
push 0x3e8
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetWindowExt
push edi
lea edx, [esp + 0x84]
push esi
push edx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetViewportExt
push 0
lea eax, [esp + 0x84]
push 0
push eax
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetViewportOrg
push 0x18
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov edx, dword [ebx]
push 7
mov ecx, ebx
call dword [edx + 0x3c]
mov eax, dword [ebx]
push 0x3e8
lea ecx, [esp + 0x84]
push 0x3e8
push ecx
mov ecx, ebx
call dword [eax + 0x50]
mov edx, dword [ebx]
push edi
lea eax, [esp + 0x84]
push esi
push eax
mov ecx, ebx
call dword [edx + 0x48]
mov edx, dword [ebx]
push 0
lea eax, [esp + 0x84]
push 0
push eax
mov ecx, ebx
call dword [edx + 0x40]
push 0x18
mov ecx, ebx
call sub.MFC42.DLL_CDC::SetTextAlign
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0x464c2c
push 0
push 2
push 0
mov byte [esp + 0x757c], 2
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
lea ecx, [esp + 0xdc]
call sub.MFC42.DLL_CGdiObject::Attach
mov cl, byte [esp + 0x810]
neg cl
sbb ecx, ecx
and ecx, 0x8000
push ecx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextColor
lea edx, [esp + 0xd8]
lea ecx, [esp + 0x1c]
push edx
call sub.MFC42.DLL_CDC::SelectObject
mov ecx, 0x603
xor eax, eax
lea edi, [esp + 0x5d5c]
rep stosd dword es:[edi], eax
mov al, byte [esp + 0x7b]
test al, al
je 0x416513
lea eax, [esp + 0x40c]
push 0x400
push eax
push str.TEMPLATE
push str.PRINTERSETUP
mov ecx, 0x473414
mov byte [esp + 0x41c], 0
call fcn.00441a80
lea edi, [esp + 0x40c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41653d
xor ebp, ebp
lea ecx, [esp + 0x1834]
push 1
push ecx
push ebp
mov ecx, 0x473410
call fcn.0043c6d0
test eax, eax
je 0x4164d7
lea edi, [esp + 0x1834]
lea esi, [esp + 0x40c]
mov dl, byte [esi]
mov cl, byte [edi]
mov al, dl
cmp dl, cl
jne 0x4164ce
test al, al
je 0x4164ca
mov cl, byte [esi + 1]
mov dl, byte [edi + 1]
mov al, cl
cmp cl, dl
jne 0x4164ce
add esi, 2
add edi, 2
test al, al
jne 0x4164a6
xor eax, eax
jmp 0x4164d3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4164ea
inc ebp
cmp ebp, 0x100
jl 0x41647f
mov byte [esp + 0x1834], 0
jmp 0x41653d
cmp ebp, 0x100
jge 0x4164e0
lea edx, [esp + 0x1834]
push 0
push edx
push ebp
mov ecx, 0x473410
call fcn.0043c6d0
mov byte [esp + 0x1a], 1
mov byte [esp + 0x32], 1
jmp 0x416551
mov al, byte [esp + 0x32]
test al, al
jne 0x416527
mov al, byte [esp + 0x1a]
test al, al
je 0x4165e1
lea eax, [esp + 0x1834]
push 0
push eax
push 0xffffffffffffffff
mov ecx, 0x473410
call fcn.0043c6d0
mov al, byte [esp + 0x32]
test al, al
jne 0x416551
mov al, byte [esp + 0x1a]
test al, al
je 0x4165e1
mov ebp, dword [sym.imp.MSVCRT.dll_strchr]
lea ecx, [esp + 0x1834]
push 0x2c
push ecx
call ebp
add esp, 8
test eax, eax
je 0x41657e
lea edx, [esp + 0x1834]
push 0x2c
push edx
call ebp
mov esi, eax
add esp, 8
inc esi
jmp 0x416580
xor esi, esi
test esi, esi
mov dword [esp + 0x48], 0
je 0x4165e1
lea edi, [esp + 0x5d5c]
cmp dword [esp + 0x48], 6
jge 0x4165e1
push 0x20
push esi
push edi
call dword [sym.imp.MSVCRT.dll_strncpy]
push 0x2c
push edi
mov byte [edi + 0x20], 0
call ebp
add esp, 0x14
test eax, eax
je 0x4165bf
push 0x2c
push edi
call ebp
add esp, 8
mov byte [eax], 0
push 0x2c
push esi
call ebp
mov esi, eax
add esp, 8
test esi, esi
je 0x4165e1
mov edx, dword [esp + 0x48]
inc esi
inc edx
add edi, 0x402
test esi, esi
mov dword [esp + 0x48], edx
jne 0x416593
xor ebp, ebp
mov eax, 0x464c54
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], eax
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc0], eax
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xb4], eax
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xc8], eax
mov ecx, 0xf
mov esi, 0x475abc
lea edi, [esp + 0x150]
lea eax, [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov edi, dword [esp + 0x160]
push eax
mov byte [esp + 0x7574], 7
mov byte [esp + 0x168], 0
call esi
push eax
lea ecx, [esp + 0x5c]
call sub.MFC42.DLL_CGdiObject::Attach
lea ecx, [esp + 0x150]
mov dword [esp + 0x160], 0x2bc
push ecx
call esi
push eax
lea ecx, [esp + 0xc4]
call sub.MFC42.DLL_CGdiObject::Attach
lea edx, [esp + 0x150]
mov byte [esp + 0x164], 1
push edx
call esi
push eax
lea ecx, [esp + 0xcc]
call sub.MFC42.DLL_CGdiObject::Attach
lea eax, [esp + 0x150]
mov dword [esp + 0x160], edi
push eax
call esi
push eax
lea ecx, [esp + 0xb8]
call sub.MFC42.DLL_CGdiObject::Attach
lea ecx, [esp + 0x150]
mov byte [esp + 0x164], 0
push ecx
mov dword [esp + 0x154], 0xfffffff4
call esi
push eax
lea ecx, [esp + 0xac]
call sub.MFC42.DLL_CGdiObject::Attach
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
lea edx, [esp + 0xb4]
mov ecx, 0x201
xor eax, eax
lea edi, [esp + 0x203c]
test edx, edx
rep stosd dword es:[edi], eax
je 0x416729
mov eax, dword [esp + 0xb8]
cmp eax, ebp
je 0x416729
push eax
mov eax, dword [esp + 0x24]
push eax
call esi
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x1d4]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
lea eax, [esp + 0x58]
test eax, eax
je 0x416763
mov eax, dword [esp + 0x5c]
cmp eax, ebp
je 0x416763
mov ecx, dword [esp + 0x20]
push eax
push ecx
call esi
mov eax, dword [esp + 0x5c]
cmp eax, ebp
je 0x416763
mov edx, dword [ebx + 4]
push eax
push edx
call esi
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1dc]
mov edx, dword [esp + 0x1e0]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x10c]
mov dword [esp + 0xa0], ebp
push eax
mov dword [esp + 0x104], ecx
mov dword [esp + 0xf8], edx
call sub.MFC42.DLL_CTime::GetTickCount
lea ecx, [esp + 0xd4]
push 0x470214
push ecx
lea ecx, [esp + 0x114]
call sub.MFC42.DLL_CTime::Format
push ebp
lea ecx, [esp + 0xd8]
mov byte [esp + 0x7574], 8
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x20c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x470210
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x114]
call sub.MFC42.DLL_CTime::Format
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x7574], 9
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x7c]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push ebp
lea ecx, [esp + 0xd8]
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x30c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebp, dword [esp + 0x7578]
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x4c], ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x757c]
and ecx, 3
cmp ebp, eax
rep movsb byte es:[edi], byte [esi]
jge 0x416bed
mov ecx, dword [esp + 0x68]
push ebp
lea esi, [ecx + 4]
mov ecx, esi
call fcn.004022c0
test eax, eax
je 0x416bd9
push ebp
mov ecx, esi
call fcn.004022c0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x50], esi
test esi, esi
mov edi, ecx
je 0x416bd9
mov al, byte [esp + 0x1b]
test al, al
jne 0x4168cc
mov al, byte [esp + 0x33]
test al, al
je 0x41690b
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0x203c]
push edx
push esi
call fcn.00411090
mov al, byte [esp + 0x1b]
test al, al
jne 0x41690b
mov al, byte [esp + 0x33]
test al, al
je 0x41690b
xor eax, eax
test edi, edi
jle 0x41690b
cmp byte [esp + eax + 0x203c], 0x1e
jae 0x416906
mov byte [esp + eax + 0x203c], 0
inc eax
cmp eax, edi
jl 0x4168f4
mov al, byte [esi]
mov edi, dword [esp + 0x14]
test al, al
mov dword [esp + 0x44], 0
mov dword [esp + 0x2c], 0x1e
je 0x416bbc
mov al, byte [esp + 0x33]
xor edx, edx
test al, al
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], edx
je 0x416954
test eax, eax
jle 0x416954
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x1e
je 0x41694d
cmp ecx, 0x21
jne 0x416954
add edi, dword [esp + 0xf4]
xor ecx, ecx
mov cl, byte [esp + eax + 0x203c]
mov ebp, ecx
mov ecx, dword [esp + 0x50]
add eax, ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x7c], eax
cmp byte [eax], 0
je 0x416991
lea esi, [esp + 0x203c]
sub esi, ecx
xor ecx, ecx
mov cl, byte [esi + eax]
cmp ecx, ebp
jne 0x41698d
mov cl, byte [eax + 1]
inc edx
inc eax
test cl, cl
jne 0x41697b
mov dword [esp + 0x38], edx
mov al, byte [esp + 0x33]
test al, al
je 0x416a15
lea eax, [ebp - 0x1e]
cmp eax, 5
ja case.default.0x4169a1
jmp dword [eax*4 + 0x41931c]
lea edx, [esp + 0xb4]
test edx, edx
je 0x416a15
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x416a15
jmp 0x416a0a
lea ecx, [esp + 0xc8]
test ecx, ecx
je 0x416a15
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x416a15
mov edx, dword [ebx + 4]
push eax
push edx
jmp 0x416a0f
lea eax, [esp + 0x58]
test eax, eax
je 0x416a15
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x416a15
mov ecx, dword [ebx + 4]
push eax
push ecx
jmp 0x416a0f
lea edx, [esp + 0xc0]
test edx, edx
je 0x416a15
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x416a15
push eax
mov eax, dword [ebx + 4]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov al, byte [esp + 0x1b]
test al, al
je 0x416a48
cmp ebp, 0x100
jge 0x416a2b
test ebp, ebp
mov eax, ebp
jge 0x416a30
mov eax, 0x1e
mov ecx, dword [esp + 0x68]
mov edx, dword [ebx]
mov eax, dword [ecx + eax*4 + 0x13c0]
mov ecx, ebx
and eax, 0xffffff
push eax
call dword [edx + 0x38]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x7c]
mov edx, dword [ebx]
push eax
push 0
push 0
push esi
push ecx
push 0x64
lea eax, [esp + 0x98]
push edi
push eax
mov ecx, ebx
call dword [edx + 0x6c]
mov ecx, dword [eax]
mov ebp, dword [esp + 0x88]
add ecx, edi
mov edx, dword [eax + 4]
mov eax, 0x3e8
sub eax, ebp
mov dword [esp + 0x74], edx
cmp ecx, eax
mov dword [esp + 0x90], eax
jle 0x416b9a
test esi, esi
jle 0x416ba6
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebx]
lea ebp, [eax + ecx]
mov eax, dword [esp + 0x14]
push eax
push 0
push 0
push 1
push ebp
push 0x64
lea ecx, [esp + 0x110]
push edi
push ecx
mov ecx, ebx
call dword [edx + 0x6c]
mov eax, dword [esp + 0x38]
xor esi, esi
test eax, eax
jle 0x416b0a
mov eax, dword [esp + 0x14]
mov edx, dword [ebx]
push eax
push 0
push 0
push esi
push ebp
push 0x64
lea ecx, [esp + 0xf8]
push edi
push ecx
mov ecx, ebx
call dword [edx + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x90]
add eax, edi
cmp eax, ecx
jg 0x416b05
mov eax, dword [esp + 0x38]
inc esi
cmp esi, eax
jl 0x416ad0
cmp esi, 2
jge 0x416b2d
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x14]
inc ecx
xor edx, edx
cmp eax, 1
setle dl
mov dword [esp + 0xa0], ecx
mov esi, edx
jmp 0x416b7c
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx]
push ecx
push 0
push 0
push esi
push ebp
push 0x64
lea edx, [esp + 0x13c]
push edi
push edx
mov ecx, ebx
call dword [eax + 0x6c]
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
lea ecx, [eax + edi]
cmp ecx, edx
jle 0x416b7a
mov eax, dword [esp + 0x14]
mov edx, dword [ebx]
push eax
dec esi
push 0
push 0
push esi
push ebp
push 0x64
lea ecx, [esp + 0x144]
push edi
push ecx
mov ecx, ebx
call dword [edx + 0x6c]
mov eax, dword [eax]
add edi, eax
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x44]
sub eax, esi
add ebp, esi
test eax, eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x38], eax
jg 0x416a9d
jmp 0x416ba6
mov eax, dword [esp + 0x44]
mov edi, ecx
add eax, esi
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
cmp byte [edx + eax], 0
jne 0x416929
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa0]
inc ecx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x68]
mov al, byte [ecx + 0xf582]
test al, al
jne 0x416bed
mov eax, dword [esp + 0x757c]
inc ebp
cmp ebp, eax
mov dword [esp + 0x4c], ebp
jl 0x416881
mov edx, dword [esp + 0x68]
mov al, byte [edx + 0xf582]
test al, al
je 0x416d03
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.GDI32.dll_EndDoc]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CDC::Detach
mov ecx, dword [esp + 0x81c]
test ecx, ecx
je 0x416c25
mov edx, dword [ecx]
push 1
call dword [edx + 4]
lea ecx, [esp + 0xd4]
mov dword [esp + 0x81c], 0
mov byte [esp + 0x7570], 7
call sub.MFC42.DLL_CString::CString
mov edi, 0x464b9c
mov dword [esp + 0xc8], edi
lea ecx, [esp + 0xc8]
mov byte [esp + 0x7570], 0xa
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov esi, 0x464b88
mov dword [esp + 0xb4], edi
mov dword [esp + 0xc8], esi
lea ecx, [esp + 0xb4]
mov byte [esp + 0x7570], 0xb
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0xb4], esi
mov dword [esp + 0xc0], edi
lea ecx, [esp + 0xc0]
mov byte [esp + 0x7570], 0xc
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0xc0], esi
mov dword [esp + 0x58], edi
lea ecx, [esp + 0x58]
mov byte [esp + 0x7570], 0xd
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0x58], esi
mov dword [esp + 0xa8], edi
lea ecx, [esp + 0xa8]
mov byte [esp + 0x7570], 0xe
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0xa8], esi
mov dword [esp + 0xd8], edi
mov byte [esp + 0x7570], 0xf
jmp 0x4192c2
lea eax, [esp + 0xa8]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x44], ebx
je 0x416d2b
mov eax, dword [esp + 0xac]
test eax, eax
je 0x416d2b
mov ecx, dword [esp + 0x20]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [0x483a50]
lea ecx, [esp + 0x2c]
mov eax, dword [edx + 0x1214]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x2c]
mov esi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
lea edx, [esp + 0x80]
mov ecx, dword [eax - 8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call esi
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x84]
test eax, eax
jle 0x416d75
mov ebx, eax
mov ecx, dword [0x483a50]
mov edx, dword [ecx + 0x1218]
lea ecx, [esp + 0x2c]
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x80]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call esi
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x84]
cmp eax, ebx
jle 0x416db9
mov ebx, eax
mov ecx, dword [0x483a50]
mov edx, dword [ecx + 0x1210]
lea ecx, [esp + 0x2c]
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x70]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call esi
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x74]
cmp eax, ebx
jle 0x416df7
mov ebx, eax
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x416e03
mov dword [esp + 0x44], eax
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextColor
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
cmp dword [esp + 0x60], 2
jge 0x416e6f
mov ecx, dword [0x483a50]
mov edx, dword [ecx + 0x1210]
lea ecx, [esp + 0x2c]
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x10
mov ecx, dword [eax - 8]
push ecx
push eax
lea eax, [ebp + 4]
push 0x36
push eax
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
jmp 0x416e73
mov ebp, dword [esp + 0x14]
or ecx, 0xffffffff
lea edi, [esp + 0x20c]
xor eax, eax
lea edx, [esp + 0x1634]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1634]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x470090
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x1634]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x30c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x58]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x416f1c
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x416f1c
mov ecx, dword [esp + 0x20]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x60]
lea esi, [ebx + 0x3a]
cmp eax, 2
mov dword [esp + 0x64], esi
jge 0x416f6f
lea edx, [esp + 0x1634]
lea ecx, [esp + 0x2c]
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x11
mov ecx, dword [eax - 8]
push ecx
push eax
lea eax, [ebp + 4]
push esi
push eax
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x1634]
lea ecx, [esp + 0x2c]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x70]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x44]
lea edx, [ebx + ecx + 0xc]
mov ecx, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x38], edx
jle 0x416fbc
mov eax, ecx
add eax, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x60]
cmp eax, 2
jge 0x417049
push 0x32
lea eax, [esp + 0x84]
push ebp
push eax
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::MoveTo
mov ebx, dword [esp + 0x88]
mov esi, 0x3e8
sub esi, ebx
push 0x32
push esi
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 0x32]
lea ecx, [esp + 0x1c]
push edi
push esi
call sub.MFC42.DLL_CDC::LineTo
push edi
push ebp
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
push 0x32
push ebp
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
mov edx, dword [esp + 0x44]
push 0x32
lea eax, [esp + 0x84]
lea ecx, [esp + 0x20]
lea esi, [edx + ebp]
push esi
push eax
call sub.MFC42.DLL_CDC::MoveTo
push edi
push esi
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
mov esi, dword [0x482fc0]
mov ecx, dword [esp + 0x38]
xor ebx, ebx
mov dword [esp + 0x40], ecx
test esi, esi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x3f], bl
je 0x417128
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0xa4]
mov eax, dword [eax + 0x4c]
cmp eax, 0xfffffffe
jne 0x4170c7
mov eax, dword [0x47340c]
test eax, eax
jl 0x4170a1
cmp eax, 0x40
jge 0x4170a1
mov ecx, dword [eax*4 + 0x473308]
test ecx, ecx
je 0x4170a1
mov dl, byte [ecx + 0x81a]
test dl, dl
jne 0x4170c7
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x4170bb
cmp byte [edx + 0x81a], 0
jne 0x417162
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x4170a8
or eax, 0xffffffff
test eax, eax
jl 0x4170db
cmp eax, 0x40
jge 0x4170db
mov eax, dword [eax*4 + 0x473308]
test eax, eax
jne 0x4170e0
mov eax, 0x473408
lea ecx, [esp + 0x3f]
push ecx
push eax
push 0x43d
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x417128
mov ecx, eax
mov edx, dword [ecx]
test edx, edx
je 0x417118
mov dword [esp + ebx*4 + 0x1030], edx
mov edx, dword [ecx + 4]
mov dword [esp + ebx*4 + 0x1130], edx
inc ebx
add ecx, 8
cmp ebx, 0x40
jl 0x4170f8
push eax
mov dword [esp + 0x98], ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp dword [esp + 0x60], 2
jge 0x417691
test ebx, ebx
jle 0x417691
mov al, byte [esp + 0x3f]
test al, al
je 0x41714d
test bl, 1
mov byte [esp + 0x13], 1
jne 0x417152
mov byte [esp + 0x13], 0
test al, al
je 0x41716c
lea eax, [ebx + 1]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
jmp 0x41716e
mov dword [0x47340c], eax
jmp 0x4170c7
mov edi, ebx
test edi, edi
mov dword [esp + 0x48], edi
jle 0x4171ef
mov eax, dword [esp + 0x88]
mov ebx, 0x3e8
sub ebx, eax
mov eax, dword [esp + 0x38]
mov ecx, edi
lea esi, [eax + 0x32]
mov dword [esp + 0x2c], ecx
push esi
lea edx, [esp + 0x84]
push ebp
push edx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::MoveTo
push esi
push ebx
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x1c]
lea edi, [eax + esi]
push edi
push ebx
call sub.MFC42.DLL_CDC::LineTo
push edi
push ebp
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
push esi
push ebp
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
mov eax, dword [esp + 0x2c]
mov esi, edi
dec eax
mov dword [esp + 0x2c], eax
jne 0x417191
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x94]
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x88]
test al, al
mov eax, 0x3e8
je 0x417229
sub eax, ecx
lea ecx, [esi + esi + 0x32]
mov dword [esp + 0x90], eax
sub eax, ebp
cdq
sub eax, edx
push ecx
sar eax, 1
add ebp, eax
lea edx, [esp + 0x84]
push ebp
push edx
jmp 0x417248
sub eax, ecx
lea ecx, [esp + 0x80]
mov dword [esp + 0x90], eax
sub eax, ebp
cdq
sub eax, edx
sar eax, 1
add ebp, eax
lea eax, [esi + 0x32]
push eax
push ebp
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::MoveTo
lea eax, [edi + 1]
mov cl, byte [esp + 0x3f]
imul eax, esi
test cl, cl
mov dword [esp + 0x38], eax
je 0x417276
cmp ebx, 1
jle 0x417276
add eax, 0x32
lea ecx, [esp + 0x1c]
push eax
push ebp
call sub.MFC42.DLL_CDC::LineTo
mov eax, dword [esp + 0x94]
xor ebx, ebx
test eax, eax
jle 0x417691
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x64]
mov eax, 0x36
add edx, ecx
sub eax, ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x7c], eax
lea eax, [esp + 0xa8]
test eax, eax
je 0x4172c2
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4172c2
mov ecx, dword [esp + 0x20]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextColor
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov al, byte [esp + 0x3f]
test al, al
je 0x4172f9
mov al, byte [esp + 0x13]
test al, al
je 0x41739e
test ebx, ebx
je 0x4172f9
test bl, 1
je 0x4173a7
mov edx, dword [esp + 0x14]
lea ebp, [edx + 4]
mov eax, dword [esp + ebx*4 + 0x1030]
push 0x3ff
lea ecx, [esp + 0x410]
push eax
push ecx
call fcn.0044a7e0
mov edx, eax
mov edi, 0x47020c
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x3f]
test al, al
jne 0x4173c2
lea eax, [esp + 0x40c]
lea ecx, [esp + 0x2c]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x54]
mov byte [esp + 0x7570], 0x12
mov ecx, dword [eax - 8]
push ecx
mov ecx, dword [esp + 0x80]
add ecx, edx
push eax
mov eax, dword [esp + 0x24]
push ecx
push ebp
lea ecx, [esp + 0x2c]
call dword [eax + 0x64]
mov byte [esp + 0x7570], 8
lea ecx, [esp + 0x2c]
jmp 0x417463
test bl, 1
je 0x4172f9
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x14]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
lea ebp, [eax + ecx + 4]
jmp 0x417300
mov al, byte [esp + 0x13]
test al, al
je 0x417418
lea ecx, [esp + 0x40c]
push ecx
lea ecx, [esp + 0x4c]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x48]
mov byte [esp + 0x7570], 0x13
mov ecx, dword [eax - 8]
push ecx
push eax
lea eax, [ebx + 1]
lea ecx, [esp + 0x24]
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
inc eax
imul eax, dword [esp + 0x48]
add eax, 0x36
push eax
push ebp
call dword [edx + 0x64]
mov byte [esp + 0x7570], 8
lea ecx, [esp + 0x48]
jmp 0x417463
lea eax, [esp + 0x40c]
lea ecx, [esp + 0x6c]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x7570], 0x14
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, ebx
lea ecx, [esp + 0x24]
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
inc eax
imul eax, dword [esp + 0x48]
add eax, 0x36
push eax
push ebp
call dword [edx + 0x64]
mov byte [esp + 0x7570], 8
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x58]
test eax, eax
je 0x417484
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x417484
mov ecx, dword [esp + 0x20]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextColor
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov edx, dword [esp + ebx*4 + 0x1130]
push 0x400
lea eax, [esp + 0x410]
push edx
push eax
call fcn.0044a7e0
mov al, byte [esp + 0x4b]
add esp, 0xc
test al, al
je 0x4174e4
mov al, byte [esp + 0x13]
test al, al
je 0x4174cb
test ebx, ebx
je 0x4174e4
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x14]
sub eax, edi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
sub esi, 8
jmp 0x4174f8
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov esi, 0x3e0
sub esi, ecx
sub esi, eax
mov al, byte [esp + 0x40c]
test al, al
je 0x417572
lea ecx, [esp + 0x40c]
push ecx
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x80]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + 0x80]
cmp ecx, esi
lea ecx, [esp + 0x50]
setg byte [esp + 0x7b]
call sub.MFC42.DLL_CString::CString
mov al, byte [esp + 0x7b]
test al, al
je 0x417572
lea edi, [esp + 0x40c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + ecx + 0x40b], al
mov al, byte [esp + 0x40c]
test al, al
jne 0x417503
mov al, byte [esp + 0x3f]
test al, al
jne 0x4175be
lea ecx, [esp + 0x40c]
push ecx
lea ecx, [esp + 0x50]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
mov byte [esp + 0x7570], 0x15
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x24]
push edx
push ebp
lea ecx, [esp + 0x2c]
call dword [eax + 0x64]
mov byte [esp + 0x7570], 8
lea ecx, [esp + 0x4c]
jmp 0x41766e
mov al, byte [esp + 0x13]
test al, al
je 0x417620
lea ecx, [esp + 0x40c]
push ecx
lea ecx, [esp + 0xa8]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0xa4]
mov byte [esp + 0x7570], 0x16
mov ecx, dword [eax - 8]
push ecx
push eax
lea eax, [ebx + 1]
lea ecx, [esp + 0x24]
cdq
sub eax, edx
mov edx, dword [esp + 0x6c]
sar eax, 1
inc eax
imul eax, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x24]
push eax
push ebp
call dword [edx + 0x64]
mov byte [esp + 0x7570], 8
lea ecx, [esp + 0xa4]
jmp 0x41766e
lea eax, [esp + 0x40c]
lea ecx, [esp + 0x34]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
mov byte [esp + 0x7570], 0x17
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, ebx
lea ecx, [esp + 0x24]
cdq
sub eax, edx
mov edx, dword [esp + 0x6c]
sar eax, 1
inc eax
imul eax, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x24]
push eax
push ebp
call dword [edx + 0x64]
mov byte [esp + 0x7570], 8
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
add ecx, eax
mov eax, dword [esp + 0x94]
inc ebx
mov dword [esp + 0x54], ecx
cmp ebx, eax
jl 0x4172a0
mov al, byte [esp + 0x1a]
mov ecx, dword [esp + 0x44]
mov ebx, 1
mov dword [esp + 0xa4], ecx
test al, al
mov dword [esp + 0x54], ebx
je 0x4176b9
mov esi, dword [esp + 0x98]
lea edx, [esi + 4]
jmp 0x4176c2
mov esi, dword [esp + 0x98]
xor edx, edx
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x38]
lea ecx, [eax - 0x64]
mov eax, ecx
sub eax, edx
sub eax, edi
sub eax, 4
cdq
idiv esi
mov edi, eax
mov al, byte [esp + 0x32]
test al, al
je 0x4176eb
lea ebp, [esi + 4]
jmp 0x4176ed
xor ebp, ebp
mov al, byte [esp + 0x1a]
test al, al
je 0x4176fa
lea edx, [esi + 4]
jmp 0x4176fc
xor edx, edx
mov eax, ecx
mov ecx, dword [esp + 0xa0]
sub eax, edx
sub ecx, edi
sub eax, ebp
cdq
idiv esi
test ecx, ecx
mov esi, eax
jle 0x41772e
mov eax, ecx
cdq
idiv esi
mov ebx, eax
mov eax, ecx
cdq
idiv esi
inc ebx
mov dword [esp + 0x54], ebx
test edx, edx
je 0x41772e
inc ebx
mov dword [esp + 0x54], ebx
lea ecx, [esp + 0xa8]
test ecx, ecx
je 0x417750
mov eax, dword [esp + 0xac]
test eax, eax
je 0x417750
mov edx, dword [esp + 0x20]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x60], 2
jge 0x4177a8
mov eax, dword [0x483a50]
mov ecx, dword [eax + 0x1218]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x7570], 0x18
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x4c]
push 0x36
lea ecx, [eax + edx + 4]
mov edx, dword [esp + 0x28]
push ecx
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x34]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x483a50]
mov ecx, dword [eax + 0x1218]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
mov edi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
lea edx, [esp + 0x80]
mov ecx, dword [eax - 8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call edi
mov ebp, dword [esp + 0x80]
lea ecx, [esp + 0x34]
mov dword [esp + 0x44], ebp
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x58]
test ecx, ecx
je 0x41780b
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x41780b
mov edx, dword [esp + 0x20]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
lea eax, [esp + 0xc30]
push 0x470208
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea ecx, [esp + 0xc2c]
mov esi, 1
push ecx
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x70]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call edi
mov ecx, dword [esp + 0x70]
cmp ecx, ebp
lea ecx, [esp + 0x50]
setl bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x41790a
xor eax, eax
test esi, esi
jle 0x41788b
mov ecx, esi
mov eax, 0x20202020
mov edx, ecx
lea edi, [esp + 0xc2c]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, esi
mov byte [esp + eax + 0xc2c], 0
mov eax, dword [esp + 0x54]
push eax
lea edi, [esp + 0xc30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x470208
lea ecx, [esp + ecx + 0xc34]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea edx, [esp + 0xc2c]
lea ecx, [esp + 0x50]
inc esi
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x70]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + 0x70]
cmp ecx, ebp
lea ecx, [esp + 0x50]
setl bl
call sub.MFC42.DLL_CString::CString
test bl, bl
jne 0x417867
mov edi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0xc2c]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x80]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call edi
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x80]
cmp eax, ebp
mov esi, eax
jg 0x417951
mov esi, dword [esp + 0x44]
cmp dword [esp + 0x60], 2
jge 0x4179a7
lea ecx, [esp + 0xc2c]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x64]
mov byte [esp + 0x7570], 0x19
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0x28]
lea ecx, [eax + ebx + 4]
push ecx
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x34]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0xa4]
push 0x32
lea ecx, [esp + 0x84]
lea esi, [eax + esi + 8]
lea ebp, [esi + ebx]
push ebp
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::MoveTo
cmp dword [esp + 0x60], 2
jge 0x4179e2
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x1c]
add edx, 0x32
push edx
push ebp
call sub.MFC42.DLL_CDC::LineTo
lea eax, [esp + 0xa8]
test eax, eax
je 0x417a04
mov eax, dword [esp + 0xac]
test eax, eax
je 0x417a04
mov ecx, dword [esp + 0x20]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebp, dword [esp + 0x60]
cmp ebp, 2
jge 0x417a57
mov edx, dword [0x483a50]
lea ecx, [esp + 0x34]
mov eax, dword [edx + 0x1214]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x1a
mov ecx, dword [eax - 8]
push ecx
push eax
lea ecx, [esi + ebx + 4]
push 0x36
push ecx
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x34]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
mov eax, dword [0x483a50]
mov ecx, dword [eax + 0x1214]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x80]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call edi
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x58]
test ecx, ecx
je 0x417aa9
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x417aa9
mov edx, dword [esp + 0x20]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [esp + 0x1230]
lea ecx, [esp + 0x34]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x80]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call edi
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString
cmp ebp, 2
jge 0x417b95
mov ebp, dword [esp + 0x88]
mov eax, 0x3cc
sub eax, esi
lea ecx, [esp + 0x58]
sub eax, ebp
push 0
lea edx, [esp + 0x20]
push ecx
sub eax, ebx
push edx
lea ecx, [esp + 0x123c]
push eax
lea edx, [esp + 0x2850]
push ecx
push edx
call fcn.0044db50
add esp, 0x18
lea eax, [esp + 0x2840]
lea ecx, [esp + 0x34]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x80]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x30]
push eax
call edi
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2840]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x64]
mov byte [esp + 0x7570], 0x1b
mov ecx, dword [eax - 8]
push ecx
push eax
push edx
mov edx, dword [esp + 0x28]
lea eax, [esi + ebx + 4]
lea ecx, [esp + 0x28]
push eax
call dword [edx + 0x64]
lea ecx, [esp + 0x34]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 0x18
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x38], 1
lea edx, [ecx + eax + 0x36]
mov ecx, dword [esp + 0x8c]
add ecx, 0xffffffce
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], ecx
mov cl, byte [esp + 0x1a]
test cl, cl
je 0x417be9
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x48]
mov edx, 0xfffffffc
sub edx, esi
add ecx, edx
mov dword [esp + 0x48], ecx
mov cl, byte [esp + 0x32]
test cl, cl
je 0x417bfd
mov ecx, dword [esp + 0x98]
add ecx, 4
jmp 0x417bff
xor ecx, ecx
lea edx, [ecx + eax + 0x32]
mov eax, dword [esp + 0x7578]
mov ecx, dword [esp + 0x757c]
mov ebx, eax
cmp eax, ecx
mov dword [esp + 0x124], edx
mov dword [esp + 0x4c], ebx
jge 0x419198
mov ebp, dword [esp + 0x38]
cmp ebp, dword [esp + 0x60]
jl 0x417c40
mov eax, dword [esp + 0x9c]
mov byte [esp + 0x13], 1
cmp ebp, eax
jle 0x417c45
mov byte [esp + 0x13], 0
cmp ebp, dword [esp + 0x9c]
jg 0x419198
mov eax, dword [esp + 0x68]
push ebx
lea esi, [eax + 4]
mov ecx, esi
call fcn.004022c0
test eax, eax
je 0x419184
push ebx
mov ecx, esi
call fcn.004022c0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x50], esi
test esi, esi
mov edi, ecx
je 0x419184
mov al, byte [esp + 0x1b]
test al, al
jne 0x417c9d
mov al, byte [esp + 0x33]
test al, al
je 0x417cdc
lea ecx, [esp + 0x203c]
push ecx
mov ecx, dword [esp + 0x6c]
push esi
call fcn.00411090
mov al, byte [esp + 0x1b]
test al, al
jne 0x417cdc
mov al, byte [esp + 0x33]
test al, al
je 0x417cdc
xor eax, eax
test edi, edi
jle 0x417cdc
cmp byte [esp + eax + 0x203c], 0x1e
jae 0x417cd7
mov byte [esp + eax + 0x203c], 0
inc eax
cmp eax, edi
jl 0x417cc5
mov cl, byte [esi]
mov ebp, dword [esp + 0x14]
test cl, cl
mov dword [esp + 0x44], 0
mov eax, 0x1e
je 0x41886e
mov ecx, dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [esp + 0x44]
jmp 0x417d15
mov ecx, dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x50]
mov dl, byte [esp + 0x33]
xor ebx, ebx
test dl, dl
mov dword [esp + 0x64], ebx
je 0x417d38
test edi, edi
jle 0x417d38
cmp eax, 0x1e
je 0x417d31
cmp eax, 0x21
jne 0x417d38
add ebp, dword [esp + 0xf4]
mov al, byte [edi + esi]
xor edx, edx
mov dl, byte [esp + edi + 0x203c]
add edi, esi
test al, al
mov dword [esp + 0x6c], edx
je 0x417d79
lea ecx, [esp + 0x203c]
mov eax, edi
sub ecx, esi
mov esi, dword [esp + 0x6c]
xor edx, edx
mov dl, byte [ecx + eax]
cmp edx, esi
jne 0x417d6f
mov dl, byte [eax + 1]
inc ebx
inc eax
test dl, dl
jne 0x417d59
mov ecx, dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x64], ebx
mov al, byte [esp + 0x33]
test al, al
je 0x417dee
mov eax, dword [esp + 0x6c]
add eax, 0xffffffe2
cmp eax, 5
ja case.default.0x417d8d
jmp dword [eax*4 + 0x419334]
lea edx, [esp + 0xb4]
test edx, edx
je 0x417e06
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x417e06
jmp 0x417dfe
lea edx, [esp + 0xc8]
test edx, edx
je 0x417e06
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x417e06
jmp 0x417dfe
lea edx, [esp + 0x58]
test edx, edx
je 0x417e06
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x417e06
jmp 0x417dfe
lea edx, [esp + 0xc0]
test edx, edx
je 0x417e06
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x417e06
jmp 0x417dfe
lea edx, [esp + 0x58]
test edx, edx
je 0x417e06
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x417e06
push eax
mov eax, dword [esp + 0x24]
push eax
call ecx
mov al, byte [esp + 0x1b]
test al, al
je 0x417e3d
mov eax, dword [esp + 0x6c]
cmp eax, 0x100
jge 0x417e1d
test eax, eax
jge 0x417e22
mov eax, 0x1e
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + eax*4 + 0x13c0]
lea ecx, [esp + 0x1c]
and edx, 0xffffff
push edx
call sub.MFC42.DLL_CDC::SetTextColor
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
push eax
push 0
push 0
push ebx
push edi
push 0xffffec78
push ebp
push ecx
call dword [sym.imp.USER32.dll_TabbedTextOutA]
mov edx, dword [esp + 0x88]
movsx ecx, ax
mov eax, 0x3e8
sub eax, edx
lea esi, [ecx + ebp]
cmp esi, eax
mov dword [esp + 0x90], eax
jle 0x418828
test ebx, ebx
jle 0x418858
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
xor ebx, ebx
test eax, eax
jle 0x417ed8
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
lea esi, [eax + edx]
mov ecx, dword [esp + 0x20]
push edi
push 0
push 0
push ebx
push esi
push 0xffffec78
push ebp
push ecx
call dword [sym.imp.USER32.dll_TabbedTextOutA]
movsx eax, ax
lea edx, [eax + ebp]
mov eax, dword [esp + 0x90]
cmp edx, eax
jg 0x417ecf
mov eax, dword [esp + 0x64]
inc ebx
cmp ebx, eax
jl 0x417e9d
cmp ebx, 2
jge 0x418790
mov esi, dword [esp + 0xa0]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x64]
inc esi
add eax, edx
mov edx, dword [esp + 0x48]
xor ebx, ebx
cmp ecx, 1
mov ecx, dword [esp + 0x100]
setle bl
add ecx, eax
add edx, 0xfffffffc
mov ebp, edi
cmp ecx, edx
mov dword [esp + 0xec], ebp
mov dword [esp + 0xa0], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0xd0], ebx
jle 0x41880a
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextColor
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x32]
test al, al
jne 0x417f4b
mov al, byte [esp + 0x1a]
test al, al
je 0x417f65
mov esi, dword [esp + 0x38]
mov ecx, 0x603
xor eax, eax
lea edi, [esp + 0x2840]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x14]
jmp 0x417f69
mov esi, dword [esp + 0x38]
mov al, byte [esp + 0x13]
test al, al
je 0x418310
mov al, byte [esp + 0x1a]
test al, al
je 0x418310
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x98]
sub eax, ecx
lea ecx, [esp + 0x1c4]
lea esi, [eax - 0x34]
push esi
push edi
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::MoveTo
mov edx, 0x3e8
push esi
sub edx, edi
lea ecx, [esp + 0x20]
push edx
call sub.MFC42.DLL_CDC::LineTo
lea eax, [esp + 0x58]
test eax, eax
je 0x417fd5
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x417fd5
mov ecx, dword [esp + 0x20]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
xor ebx, ebx
mov cl, byte [esp + ebx + 0x6962]
xor eax, eax
xor esi, esi
mov dword [esp + 0x40], eax
test cl, cl
je 0x4181cf
jmp 0x417ff4
mov eax, dword [esp + 0x40]
lea edi, [esp + ebx + 0x6963]
mov cl, byte [eax + edi - 1]
cmp cl, 0x25
jne 0x4181a1
mov al, byte [eax + edi]
movsx ecx, al
lea edi, [ecx - 0x46]
cmp edi, 0x2e
ja case.0x418022.77
xor edx, edx
mov dl, byte [edi + 0x41936c]
jmp dword [edx*4 + 0x41934c]
lea edi, [esp + 0x1230]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x3446]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41818a
lea edi, [esp + 0x1c38]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x3446]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41818a
push 0xffffffffffffffff
push 0
mov ecx, 0x473850
lea ebp, [esp + ebx + 0x344e]
call fcn.00442a40
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esi + ebp]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41818a
lea edi, [esp + 0x30c]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x3446]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41818a
lea edi, [esp + 0x20c]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x3446]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41818a
mov eax, dword [esp + 0x38]
lea ebp, [esp + ebx + 0x3446]
push eax
jmp 0x41816d
mov ecx, dword [esp + 0x54]
lea ebp, [esp + ebx + 0x3446]
push ecx
add esi, ebp
push 0x470208
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x41818a
lea ebp, [esp + ebx + 0x3446]
mov byte [esi + ebp], al
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x40]
not ecx
dec ecx
add eax, 2
mov esi, ecx
jmp 0x4181ad
lea edx, [esi + ebx]
inc esi
inc eax
mov byte [esp + edx + 0x3446], cl
mov dword [esp + 0x40], eax
lea eax, [esp + ebx + 0x6963]
mov ecx, dword [esp + 0x40]
mov dl, byte [ecx + eax - 1]
test dl, dl
jne 0x417ff0
mov ebp, dword [esp + 0xec]
add ebx, 0x402
cmp ebx, 0xc06
jl 0x417fd7
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea edx, [esp + 0x3446]
lea ecx, [esp + 0x34]
push edx
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x98]
mov byte [esp + 0x7570], 0x1c
mov ecx, dword [eax - 8]
sub edx, esi
push ecx
push eax
mov eax, dword [esp + 0x1c]
lea esi, [edx - 0x32]
mov edx, dword [esp + 0x24]
push esi
push eax
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x34]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 6
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea eax, [esp + 0x3848]
lea ecx, [esp + 0xa4]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x1d
mov ecx, dword [eax - 8]
push ecx
push eax
push esi
push 0x1f4
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0xa4]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 2
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea eax, [esp + 0x3c4a]
lea ecx, [esp + 0x118]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x1e
mov ecx, dword [eax - 8]
push ecx
mov ecx, dword [esp + 0x94]
push eax
push esi
push ecx
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x118]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 0x18
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov ebx, dword [esp + 0xd0]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x124]
inc esi
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x13]
test al, al
mov dword [esp + 0x38], esi
je 0x4184aa
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.GDI32.dll_EndPage]
cmp esi, dword [esp + 0x60]
jl 0x4184c3
cmp esi, dword [esp + 0x9c]
jg 0x4184c3
mov edx, dword [esp + 0x757c]
mov eax, dword [esp + 0x4c]
dec edx
mov byte [esp + 0x13], 1
cmp eax, edx
jge 0x41836e
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.GDI32.dll_StartPage]
push 7
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetMapMode
push 0x3e8
lea ecx, [esp + 0x198]
push 0x3e8
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetWindowExt
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0xf0]
push edx
lea ecx, [esp + 0x1a0]
push eax
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetViewportExt
push 0
lea edx, [esp + 0x1b0]
push 0
push edx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetViewportOrg
mov al, byte [esp + 0x32]
test al, al
je 0x418780
mov eax, dword [esp + 0x98]
lea ecx, [esp + 0x1cc]
lea esi, [eax + 0x34]
push esi
push edi
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::MoveTo
mov edx, dword [esp + 0x90]
push esi
push edx
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CDC::LineTo
lea eax, [esp + 0x58]
test eax, eax
je 0x418421
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x418421
mov ecx, dword [esp + 0x20]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
xor ebx, ebx
mov cl, byte [esp + ebx + 0x5d5c]
lea eax, [esp + ebx + 0x5d5d]
xor edx, edx
xor esi, esi
test cl, cl
mov dword [esp + 0x2c], edx
je 0x418643
mov cl, byte [edx + eax - 1]
cmp cl, 0x25
jne 0x418620
mov al, byte [edx + eax]
movsx ecx, al
lea edi, [ecx - 0x46]
cmp edi, 0x2e
ja case.0x418468.77
xor edx, edx
mov dl, byte [edi + 0x4193bc]
jmp dword [edx*4 + 0x41939c]
lea edi, [esp + 0x1230]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x2840]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418609
cmp esi, dword [esp + 0x60]
jl 0x4184c3
cmp esi, dword [esp + 0x9c]
jg 0x4184c3
mov byte [esp + 0x13], 1
jmp 0x41836e
mov byte [esp + 0x13], 0
jmp 0x418780
lea edi, [esp + 0x1c38]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x2840]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418609
push 0xffffffffffffffff
push 0
mov ecx, 0x473850
lea ebp, [esp + ebx + 0x2848]
call fcn.00442a40
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esi + ebp]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418609
lea edi, [esp + 0x30c]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x2840]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418609
lea edi, [esp + 0x20c]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebx + 0x2840]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esi + ebp]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418609
mov eax, dword [esp + 0x38]
lea ebp, [esp + ebx + 0x2840]
push eax
push 0x470208
lea ecx, [esi + ebp]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x418609
mov edx, dword [esp + 0x54]
lea ebp, [esp + ebx + 0x2840]
push edx
push 0x470208
lea eax, [esi + ebp]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x418609
lea ebp, [esp + ebx + 0x2840]
mov byte [esi + ebp], al
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, 2
mov esi, ecx
jmp 0x41862c
lea eax, [ebx + esi]
inc esi
inc edx
mov byte [esp + eax + 0x2840], cl
lea eax, [esp + ebx + 0x5d5d]
mov dword [esp + 0x2c], edx
mov cl, byte [edx + eax - 1]
test cl, cl
jne 0x418441
add ebx, 0x402
cmp ebx, 0xc06
jl 0x418423
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea ecx, [esp + 0x2840]
push ecx
lea ecx, [esp + 0xec]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x7570], 0x1f
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x24]
push 0x32
push edx
lea ecx, [esp + 0x2c]
call dword [eax + 0x64]
lea ecx, [esp + 0xe8]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 6
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea ecx, [esp + 0x2c42]
push ecx
lea ecx, [esp + 0x120]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x11c]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x20
mov ecx, dword [eax - 8]
push ecx
push eax
push 0x32
push 0x1f4
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x11c]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 2
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea eax, [esp + 0x3044]
lea ecx, [esp + 0x114]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x21
mov ecx, dword [eax - 8]
push ecx
mov ecx, dword [esp + 0x94]
push eax
push 0x32
push ecx
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x114]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 0x18
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov ebp, dword [esp + 0xec]
mov ebx, dword [esp + 0xd0]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x1c]
push eax
call sub.MFC42.DLL_CDC::SetTextColor
jmp 0x41880a
mov ecx, dword [esp + 0x20]
push edi
push 0
push 0
push ebx
push esi
push 0xffffec78
push ebp
push ecx
call dword [sym.imp.USER32.dll_TabbedTextOutA]
movsx eax, ax
mov dword [esp + 0xd0], eax
lea edx, [eax + ebp]
mov eax, dword [esp + 0x90]
cmp edx, eax
jle 0x4187e3
mov eax, dword [esp + 0x20]
push edi
dec ebx
push 0
push 0
push ebx
push esi
push 0xffffec78
push ebp
push eax
call dword [sym.imp.USER32.dll_TabbedTextOutA]
movsx ecx, ax
mov dword [esp + 0xd0], ecx
mov al, byte [esp + 0x13]
test al, al
je 0x418803
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
push edi
push 0
push 0
push ebx
push esi
push edx
push ebp
push eax
call dword [sym.imp.USER32.dll_TabbedTextOutA]
add ebp, dword [esp + 0xd0]
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x44]
sub eax, ebx
add esi, ebx
test eax, eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x64], eax
jg 0x417e88
jmp 0x418858
mov al, byte [esp + 0x13]
test al, al
je 0x41884c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
push ecx
push 0
push 0
push ebx
push edi
push edx
push ebp
push eax
call dword [sym.imp.USER32.dll_TabbedTextOutA]
mov eax, dword [esp + 0x44]
mov ebp, esi
add eax, ebx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
cmp byte [ecx + edx], 0
jne 0x417d03
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x48]
add eax, esi
inc ecx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x100]
add ecx, eax
add edx, 0xfffffffc
cmp ecx, edx
mov dword [esp + 0x40], eax
jg 0x4188b2
mov eax, dword [esp + 0x757c]
dec eax
cmp ebx, eax
jl 0x419101
mov al, byte [esp + 0x32]
test al, al
jne 0x4188c2
mov al, byte [esp + 0x1a]
test al, al
je 0x4188d2
mov ecx, 0x603
xor eax, eax
lea edi, [esp + 0x404c]
rep stosd dword es:[edi], eax
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextColor
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x13]
test al, al
je 0x418c91
mov al, byte [esp + 0x1a]
test al, al
je 0x418c91
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x14]
sub ecx, esi
lea eax, [esp + 0x1bc]
lea esi, [ecx - 0x34]
lea ecx, [esp + 0x1c]
push esi
push edx
push eax
call sub.MFC42.DLL_CDC::MoveTo
mov edi, dword [esp + 0x88]
mov eax, 0x3e8
sub eax, edi
push esi
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x74], eax
call sub.MFC42.DLL_CDC::LineTo
lea ecx, [esp + 0x58]
test ecx, ecx
je 0x418955
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x418955
mov edx, dword [esp + 0x20]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
xor ebp, ebp
mov cl, byte [esp + ebp + 0x6962]
lea eax, [esp + ebp + 0x6963]
xor edx, edx
xor esi, esi
test cl, cl
mov dword [esp + 0x2c], edx
je 0x418b55
mov cl, byte [eax + edx - 1]
cmp cl, 0x25
jne 0x418b31
mov al, byte [eax + edx]
movsx ecx, al
add ecx, 0xffffffba
cmp ecx, 0x2e
ja case.0x41899c.77
xor edx, edx
mov dl, byte [ecx + 0x41940c]
jmp dword [edx*4 + 0x4193ec]
lea edi, [esp + 0x1230]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x4c52]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418b1a
lea edi, [esp + 0x1c38]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x4c52]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418b1a
push 0xffffffffffffffff
push 0
mov ecx, 0x473850
lea ebx, [esp + ebp + 0x4c5a]
call fcn.00442a40
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebx + esi]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418b1a
lea edi, [esp + 0x30c]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x4c52]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418b1a
lea edi, [esp + 0x20c]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x4c52]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418b1a
mov eax, dword [esp + 0x38]
lea ebx, [esp + ebp + 0x4c52]
push eax
push 0x470208
lea ecx, [ebx + esi]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x418b1a
mov edx, dword [esp + 0x54]
lea ebx, [esp + ebp + 0x4c52]
push edx
push 0x470208
lea eax, [ebx + esi]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x418b1a
lea ebx, [esp + ebp + 0x4c52]
mov byte [ebx + esi], al
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, 2
mov esi, ecx
jmp 0x418b3e
lea eax, [esp + ebp + 0x4c52]
inc esi
inc edx
mov byte [eax + esi - 1], cl
lea eax, [esp + ebp + 0x6963]
mov dword [esp + 0x2c], edx
mov cl, byte [eax + edx - 1]
test cl, cl
jne 0x418975
add ebp, 0x402
cmp ebp, 0xc06
jl 0x418957
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea ecx, [esp + 0x4c52]
push ecx
lea ecx, [esp + 0x10c]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x98]
mov byte [esp + 0x7570], 0x22
mov ecx, dword [eax - 8]
sub edx, esi
push ecx
push eax
mov eax, dword [esp + 0x1c]
lea esi, [edx - 0x32]
mov edx, dword [esp + 0x24]
push esi
push eax
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x108]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 6
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea eax, [esp + 0x5054]
lea ecx, [esp + 0x110]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x23
mov ecx, dword [eax - 8]
push ecx
push eax
push esi
push 0x1f4
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x110]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 2
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea eax, [esp + 0x5456]
lea ecx, [esp + 0x12c]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x24
mov ecx, dword [eax - 8]
push ecx
mov ecx, dword [esp + 0x70]
push eax
push esi
push ecx
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x12c]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 0x18
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x124]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x13]
inc esi
test al, al
mov dword [esp + 0x38], esi
je 0x418ce8
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.GDI32.dll_EndPage]
cmp esi, dword [esp + 0x60]
jl 0x4190f3
cmp esi, dword [esp + 0x9c]
jg 0x4190f3
mov edx, dword [esp + 0x757c]
dec edx
cmp ebx, edx
jge 0x418cff
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.GDI32.dll_StartPage]
jmp 0x418cff
cmp esi, dword [esp + 0x60]
jl 0x4190f3
cmp esi, dword [esp + 0x9c]
jg 0x4190f3
mov ecx, dword [esp + 0x757c]
dec ecx
cmp ebx, ecx
jge 0x4190f3
push 7
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetMapMode
push 0x3e8
lea edx, [esp + 0x1a8]
push 0x3e8
push edx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetWindowExt
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0xf0]
push eax
lea edx, [esp + 0x190]
push ecx
push edx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetViewportExt
push 0
lea eax, [esp + 0x1b8]
push 0
push eax
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CDC::SetViewportOrg
mov al, byte [esp + 0x32]
test al, al
je 0x4190f3
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x134]
lea esi, [ecx + 0x34]
lea ecx, [esp + 0x1c]
push esi
push edx
push eax
call sub.MFC42.DLL_CDC::MoveTo
mov edi, dword [esp + 0x88]
mov eax, 0x3e8
sub eax, edi
push esi
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x74], eax
call sub.MFC42.DLL_CDC::LineTo
lea ecx, [esp + 0x58]
test ecx, ecx
je 0x418dd1
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x418dd1
mov edx, dword [esp + 0x20]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
xor ebp, ebp
mov cl, byte [esp + ebp + 0x5d5c]
lea eax, [esp + ebp + 0x5d5d]
xor edx, edx
xor esi, esi
test cl, cl
mov dword [esp + 0x2c], edx
je 0x418fd0
mov cl, byte [eax + edx - 1]
cmp cl, 0x25
jne 0x418fad
mov al, byte [eax + edx]
movsx ecx, al
add ecx, 0xffffffba
cmp ecx, 0x2e
ja case.0x418e18.77
xor edx, edx
mov dl, byte [ecx + 0x41945c]
jmp dword [edx*4 + 0x41943c]
lea edi, [esp + 0x1230]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x404c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418f96
lea edi, [esp + 0x1c38]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x404c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418f96
push 0xffffffffffffffff
push 0
mov ecx, 0x473850
lea ebx, [esp + ebp + 0x4054]
call fcn.00442a40
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebx + esi]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418f96
lea edi, [esp + 0x30c]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x404c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418f96
lea edi, [esp + 0x20c]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + ebp + 0x404c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + esi]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x418f96
mov eax, dword [esp + 0x38]
lea ebx, [esp + ebp + 0x404c]
push eax
push 0x470208
lea ecx, [ebx + esi]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x418f96
mov edx, dword [esp + 0x54]
lea ebx, [esp + ebp + 0x404c]
push edx
push 0x470208
lea eax, [ebx + esi]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x418f96
lea ebx, [esp + ebp + 0x404c]
mov byte [ebx + esi], al
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, 2
mov esi, ecx
jmp 0x418fb9
lea eax, [esi + ebp]
inc esi
inc edx
mov byte [esp + eax + 0x404c], cl
lea eax, [esp + ebp + 0x5d5d]
mov dword [esp + 0x2c], edx
mov cl, byte [eax + edx - 1]
test cl, cl
jne 0x418df1
add ebp, 0x402
cmp ebp, 0xc06
jl 0x418dd3
push 0
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea ecx, [esp + 0x404c]
push ecx
lea ecx, [esp + 0xe4]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x7570], 0x25
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x24]
push 0x32
push edx
lea ecx, [esp + 0x2c]
call dword [eax + 0x64]
lea ecx, [esp + 0xe0]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 6
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea ecx, [esp + 0x444e]
push ecx
lea ecx, [esp + 0xfc]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x26
mov ecx, dword [eax - 8]
push ecx
push eax
push 0x32
push 0x1f4
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0xf8]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 2
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
lea eax, [esp + 0x4850]
lea ecx, [esp + 0x7c]
push eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x7570], 0x27
mov ecx, dword [eax - 8]
push ecx
mov ecx, dword [esp + 0x70]
push eax
push 0x32
push ecx
lea ecx, [esp + 0x2c]
call dword [edx + 0x64]
lea ecx, [esp + 0x7c]
mov byte [esp + 0x7570], 8
call sub.MFC42.DLL_CString::CString
push 0x18
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CDC::SetTextAlign
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x1c]
push eax
call sub.MFC42.DLL_CDC::SetTextColor
mov eax, dword [esp + 0x7580]
xor esi, esi
cmp eax, esi
je 0x419172
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x68]
mov ecx, eax
inc eax
mov dword [esp + 0xbc], eax
mov eax, dword [edx + 0xb8]
cmp ecx, eax
jle 0x419172
fild dword [esp + 0x4c]
mov eax, dword [esp + 0x104]
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], eax
fmul qword [0x464c68]
fild qword [esp + 0x80]
fdivp st(1)
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x7580]
push eax
push ecx
call fcn.0043ab50
add esp, 8
mov dword [esp + 0xbc], esi
mov edx, dword [esp + 0x68]
mov al, byte [edx + 0xf582]
test al, al
jne 0x419198
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x757c]
inc ebx
cmp ebx, eax
mov dword [esp + 0x4c], ebx
jl 0x417c2a
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.GDI32.dll_EndDoc]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CDC::Detach
mov ecx, dword [esp + 0x81c]
xor esi, esi
cmp ecx, esi
je 0x4191c0
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x81c], esi
cmp edi, esi
jle 0x4191f4
mov eax, dword [esp + esi*4 + 0x1030]
push eax
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + esi*4 + 0x1134]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 8
inc esi
cmp esi, edi
jl 0x4191d2
lea ecx, [esp + 0xd4]
mov byte [esp + 0x7570], 7
call sub.MFC42.DLL_CString::CString
mov edi, 0x464b9c
mov dword [esp + 0xc8], edi
lea ecx, [esp + 0xc8]
mov byte [esp + 0x7570], 0x28
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov esi, 0x464b88
mov dword [esp + 0xb4], edi
mov dword [esp + 0xc8], esi
lea ecx, [esp + 0xb4]
mov byte [esp + 0x7570], 0x29
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0xb4], esi
mov dword [esp + 0xc0], edi
lea ecx, [esp + 0xc0]
mov byte [esp + 0x7570], 0x2a
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0xc0], esi
mov dword [esp + 0x58], edi
lea ecx, [esp + 0x58]
mov byte [esp + 0x7570], 0x2b
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0x58], esi
mov dword [esp + 0xa8], edi
lea ecx, [esp + 0xa8]
mov byte [esp + 0x7570], 0x2c
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0xa8], esi
mov dword [esp + 0xd8], edi
mov byte [esp + 0x7570], 0x2d
lea ecx, [esp + 0xd8]
call sub.MFC42.DLL_CGdiObject::DeleteObject
lea ecx, [esp + 0x140]
mov dword [esp + 0xd8], esi
mov byte [esp + 0x7570], 0
call sub.MFC42.DLL_CDC::CDC
lea ecx, [esp + 0x1c]
mov dword [esp + 0x7570], 0xffffffff
call sub.MFC42.DLL_CDC::CDC
mov al, 1
mov ecx, dword [esp + 0x7568]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x7564
ret 0xc