Function at 0x420000
Capabilities:
Capture screenshot
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x45ffc0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8c
push ebx
push ebp
push esi
mov esi, dword [0x47340c]
push edi
mov edi, ecx
mov dword [esp + 0x28], edi
mov eax, dword [edi + 0x4c]
cmp eax, 0xfffffffe
jne 0x420078
test esi, esi
jl 0x420055
cmp esi, 0x40
jge 0x420055
mov eax, dword [esi*4 + 0x473308]
test eax, eax
je 0x420055
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x420055
mov eax, esi
jmp 0x420078
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x42006c
mov bl, byte [edx + 0x81a]
test bl, bl
jne 0x420094
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x42005c
or eax, 0xffffffff
test eax, eax
jl 0x42009e
cmp eax, 0x40
jge 0x42009e
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42009e
mov eax, dword [eax + 0x814]
jmp 0x4200a0
mov esi, eax
mov dword [0x47340c], esi
jmp 0x420078
xor eax, eax
mov ebx, dword [eax*4 + 0x474484]
mov eax, dword [edi + 0x4c]
add ebx, 0x1304
cmp eax, 0xfffffffe
mov dword [esp + 0x20], ebx
jne 0x4200fd
test esi, esi
jl 0x4200db
cmp esi, 0x40
jge 0x4200db
mov eax, dword [esi*4 + 0x473308]
test eax, eax
je 0x4200db
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x4200db
mov eax, esi
jmp 0x4200fd
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x4200f1
cmp byte [edx + 0x81a], 0
jne 0x420119
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x4200e2
or eax, 0xffffffff
test eax, eax
jl 0x420123
cmp eax, 0x40
jge 0x420123
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x420123
mov eax, dword [eax + 0x814]
jmp 0x420125
mov esi, eax
mov dword [0x47340c], esi
jmp 0x4200fd
xor eax, eax
mov eax, dword [eax*4 + 0x474484]
mov ecx, dword [eax + 0x3ab0]
mov eax, dword [edi + 0x4c]
cmp eax, 0xfffffffe
mov dword [esp + 0x60], ecx
jne 0x420182
test esi, esi
jl 0x420160
cmp esi, 0x40
jge 0x420160
mov eax, dword [esi*4 + 0x473308]
test eax, eax
je 0x420160
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x420160
mov eax, esi
jmp 0x420182
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x420176
cmp byte [edx + 0x81a], 0
jne 0x42019e
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x420167
or eax, 0xffffffff
test eax, eax
jl 0x4201a5
cmp eax, 0x40
jge 0x4201a5
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x4201a5
mov eax, dword [eax + 0x814]
jmp 0x4201a7
mov dword [0x47340c], eax
jmp 0x420182
xor eax, eax
mov edx, dword [eax*4 + 0x474484]
mov esi, dword [esp + 0xac]
mov eax, dword [edx + 0x3ab4]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x7c]
and eax, 0xffffff
mov dword [esp + 0x34], eax
mov al, byte [esi + 0xe42]
test al, al
je 0x420202
mov eax, 0x475904
lea ecx, [esi + 0xe44]
mov edx, dword [eax]
add eax, 4
imul edx, dword [edi + 0xc90]
mov dword [ecx], edx
add ecx, 4
cmp eax, 0x475a94
jl 0x4201e3
mov byte [esi + 0xe42], 0
mov al, byte [edi + 0x49]
test al, al
je 0x420213
mov eax, dword [edi + 0x20]
push eax
call dword [sym.imp.USER32.dll_HideCaret]
xor edx, edx
mov dword [esp + 0x78], 0x465fe8
mov dword [esp + 0x7c], edx
mov ecx, dword [edi + 0xc88]
mov eax, dword [edi + 0xc8c]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0xa8], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push eax
lea ecx, [esp + 0x7c]
call sub.MFC42.DLL_CGdiObject::Attach
mov ebp, dword [esp + 0xb0]
lea edx, [esp + 0x78]
push edx
mov ecx, ebp
call sub.MFC42.DLL_CDC::SelectClipRgn
mov ebx, dword [esi + 0x24]
mov al, byte [0x472b1c]
test ebx, ebx
mov byte [esp + 0x3b], al
je 0x420341
mov ecx, dword [esi + 0x2c]
mov eax, dword [edi + 0xc94]
mov edx, dword [esi + 0x28]
inc ecx
imul ecx, eax
imul edx, eax
imul eax, ebx
mov dword [esp + 0x48], edx
mov edx, dword [edi + 0xc88]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x4c], edx
push ecx
push 0
lea edx, [esp + 0x4c]
push 0
push edx
push eax
mov eax, dword [ebp + 4]
push 0
push eax
mov dword [esp + 0x60], 0
call dword [sym.imp.USER32.dll_ScrollDC]
mov eax, dword [esp + 0x6c]
mov ecx, dword [edi + 0xc94]
cdq
idiv ecx
mov ebx, eax
mov eax, dword [esp + 0x74]
cdq
idiv ecx
cmp ebx, eax
jg 0x420341
lea ecx, [esi + ebx*4 + 0x438]
mov dword [esp + 0x2c], ecx
mov al, byte [esi + ebx + 0xc40]
test al, al
jne 0x420326
mov eax, dword [esp + 0x2c]
mov byte [esi + ebx + 0xc40], 1
mov ecx, dword [edi + 0x44]
mov edx, dword [eax - 0x404]
push edx
push eax
push ebx
call fcn.0040c2d0
test al, al
jne 0x420326
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x3b]
mov dword [ecx], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x74]
add edx, 4
inc ebx
mov dword [esp + 0x2c], edx
cdq
idiv dword [edi + 0xc94]
cmp ebx, eax
jle 0x4202f0
mov eax, dword [edi + 0x470]
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x30]
mov eax, dword [esp + 0x34]
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x34]
mov eax, dword [esp + 0x20]
mov edx, dword [ebp]
mov dword [esp + 0x18], 0x1e
mov ecx, dword [eax + 0x78]
and ecx, 0xffffff
push ecx
mov ecx, ebp
call dword [edx + 0x38]
mov eax, dword [edi + 0x4c]
mov ebx, dword [0x47340c]
cmp eax, 0xfffffffe
jne 0x4203cd
test ebx, ebx
jl 0x4203ab
cmp ebx, 0x40
jge 0x4203ab
mov eax, dword [ebx*4 + 0x473308]
test eax, eax
je 0x4203ab
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x4203ab
mov eax, ebx
jmp 0x4203cd
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x4203c1
cmp byte [edx + 0x81a], 0
jne 0x4203e9
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x4203b2
or eax, 0xffffffff
test eax, eax
jl 0x4203f3
cmp eax, 0x40
jge 0x4203f3
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x4203f3
mov eax, dword [eax + 0x814]
jmp 0x4203f5
mov ebx, eax
mov dword [0x47340c], ebx
jmp 0x4203cd
xor eax, eax
mov edx, dword [eax*4 + 0x474484]
mov al, byte [edx + 0x1705]
test al, al
mov byte [esp + 0x26], al
je 0x420496
mov eax, dword [edi + 0x4c]
cmp eax, 0xfffffffe
jne 0x42045b
test ebx, ebx
jl 0x420438
cmp ebx, 0x40
jge 0x420438
mov eax, dword [ebx*4 + 0x473308]
test eax, eax
je 0x420438
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x420438
mov eax, ebx
jmp 0x42045b
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
test edx, edx
je 0x42044f
mov bl, byte [edx + 0x81a]
test bl, bl
jne 0x420477
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x42043f
or eax, 0xffffffff
test eax, eax
jl 0x42047e
cmp eax, 0x40
jge 0x42047e
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42047e
mov eax, dword [eax + 0x814]
jmp 0x420480
mov dword [0x47340c], eax
jmp 0x42045b
xor eax, eax
mov eax, dword [eax*4 + 0x474484]
mov byte [esp + 0x27], 1
mov cl, byte [eax + 0x1704]
test cl, cl
jne 0x42049b
mov byte [esp + 0x27], 0
mov eax, dword [edi + 0xc8c]
mov ecx, dword [edi + 0xc94]
cdq
idiv ecx
xor ebx, ebx
mov dword [esp + 0x10], ecx
test eax, eax
jl 0x420aff
mov al, byte [esi + ebx + 0xc40]
test al, al
je 0x420adf
mov edi, dword [esi + ebx*4 + 0x438]
test edi, edi
je 0x4204e2
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x3c], ecx
jmp 0x4204ee
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0x30]
xor edi, edi
add eax, 2
mov dword [esp + 0x14], eax
mov al, byte [ebx + esi + 0xd41]
cmp al, 1
jne 0x42050f
mov edx, dword [esp + 0x60]
mov dword [esp + 0x34], edx
jmp 0x42051f
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x7c]
and eax, 0xffffff
mov dword [esp + 0x34], eax
mov al, byte [esi + 0x10]
test al, al
je 0x420568
mov eax, dword [esi + 0x14]
cmp eax, ebx
jg 0x420568
mov edx, dword [esi + 0x1c]
cmp edx, ebx
jl 0x420568
cmp eax, ebx
jne 0x420549
mov eax, dword [esi + 0x18]
test eax, eax
jle 0x420549
cmp eax, ecx
jg 0x420568
mov dword [esp + 0x1c], eax
jmp 0x42056c
cmp edx, ebx
jne 0x42055e
mov eax, dword [esi + 0x20]
test eax, eax
jg 0x42055e
cmp eax, ecx
jg 0x420568
mov dword [esp + 0x1c], eax
jmp 0x42056c
mov dword [esp + 0x1c], 0
jmp 0x42056c
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x34]
mov ecx, ebp
mov dword [esp + 0x2c], eax
push eax
mov eax, dword [esp + 0x14]
push eax
imul eax, ebx
push 2
push eax
push 0
call sub.MFC42.DLL_CDC::FillSolidRect_1
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x420662
mov al, byte [esp + 0x26]
test al, al
je 0x420683
mov ecx, dword [esi + ebx*4 + 0x34]
xor eax, eax
mov al, byte [ecx + edi]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
je 0x4205cb
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + eax*4]
mov ecx, ebp
and eax, 0xffffff
push eax
call dword [edx + 0x38]
mov edx, dword [esi + ebx*4 + 0x34]
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea eax, [edx + edi]
xor edx, edx
mov dl, byte [eax]
cmp dword [esp + 0x18], edx
jne 0x420605
mov edx, edi
jmp 0x4205ea
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x1c]
jge 0x420601
inc ecx
inc edx
mov dword [esp + 0x10], edx
xor edx, edx
mov dl, byte [eax + ecx]
cmp dword [esp + 0x18], edx
je 0x4205e6
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x30]
lea edx, [esi + 0xe44]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esi + ebx*4 + 0x438]
push 0x64
push ecx
mov ecx, dword [esp + 0x38]
add edx, edi
push edx
mov eax, dword [ebp]
mov edx, dword [ecx + 0xc94]
mov ecx, dword [esp + 0x28]
imul edx, ebx
push edx
lea edx, [esp + 0xac]
push ecx
push edx
mov ecx, ebp
call dword [eax + 0x6c]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add edx, eax
mov eax, dword [esp + 0x1c]
add edi, ecx
cmp edi, eax
mov dword [esp + 0x14], edx
jl 0x420595
mov ecx, dword [esp + 0x3c]
cmp edi, ecx
jge 0x420982
mov al, byte [esi + 0x10]
test al, al
je 0x4206d8
cmp dword [esi + 0x14], ebx
jge 0x4206b7
cmp dword [esi + 0x1c], ebx
jle 0x4206b7
mov eax, ecx
jmp 0x4206da
cmp dword [esp + 0x18], 0x1e
je 0x4206a8
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp]
mov dword [esp + 0x18], 0x1e
mov edx, dword [ecx + 0x78]
mov ecx, ebp
and edx, 0xffffff
push edx
call dword [eax + 0x38]
mov eax, dword [esp + 0x1c]
sub eax, edi
mov dword [esp + 0x10], eax
jmp 0x420605
test al, al
je 0x4206d8
cmp dword [esi + 0x1c], ebx
jne 0x4206cb
mov eax, dword [esi + 0x20]
cmp eax, ecx
jle 0x4206da
mov eax, ecx
jmp 0x4206da
test al, al
je 0x4206d8
cmp dword [esi + 0x14], ebx
jne 0x4206d8
mov eax, ecx
jmp 0x4206da
xor eax, eax
cmp edi, eax
mov dword [esp + 0x1c], eax
jge 0x420716
test edi, edi
jne 0x420716
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x80]
mov eax, dword [edx + 0xc94]
and ecx, 0xffffff
push ecx
push eax
imul eax, ebx
push 2
mov dword [esp + 0x38], ecx
push eax
push edi
mov ecx, ebp
call sub.MFC42.DLL_CDC::FillSolidRect_1
jmp 0x42073a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x80]
and eax, 0xffffff
cmp ecx, eax
je 0x42073a
mov edx, dword [ebp]
push eax
mov ecx, ebp
mov dword [esp + 0x30], eax
call dword [edx + 0x34]
cmp edi, dword [esp + 0x1c]
jge 0x42088e
mov al, byte [esp + 0x27]
test al, al
je 0x420803
mov eax, dword [esi + ebx*4 + 0x34]
xor ecx, ecx
mov cl, byte [eax + edi]
mov eax, ecx
mov ecx, dword [esp + 0x18]
cmp ecx, eax
je 0x42077c
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + eax*4]
mov ecx, ebp
and eax, 0xffffff
push eax
call dword [edx + 0x38]
mov edx, dword [esi + ebx*4 + 0x34]
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea eax, [edx + edi]
xor edx, edx
mov dl, byte [eax]
cmp dword [esp + 0x18], edx
jne 0x4207b6
mov edx, edi
jmp 0x42079b
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x1c]
jge 0x4207b2
inc ecx
inc edx
mov dword [esp + 0x10], edx
xor edx, edx
mov dl, byte [eax + ecx]
cmp dword [esp + 0x18], edx
je 0x420797
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x30]
lea edx, [esi + 0xe44]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esi + ebx*4 + 0x438]
push 0x64
push ecx
mov ecx, dword [esp + 0x38]
add edx, edi
push edx
mov eax, dword [ebp]
mov edx, dword [ecx + 0xc94]
mov ecx, dword [esp + 0x28]
imul edx, ebx
push edx
lea edx, [esp + 0xa4]
push ecx
push edx
mov ecx, ebp
call dword [eax + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x42087c
cmp dword [esp + 0x18], 0x23
je 0x42082b
mov eax, dword [esp + 0x20]
mov edx, dword [ebp]
mov dword [esp + 0x18], 0x23
mov ecx, dword [eax + 0x8c]
and ecx, 0xffffff
push ecx
mov ecx, ebp
call dword [edx + 0x38]
mov ecx, dword [esi + 0x30]
mov eax, dword [esp + 0x1c]
push ecx
lea ecx, [esi + 0xe44]
sub eax, edi
push ecx
mov ecx, dword [esp + 0x30]
push 0x64
mov dword [esp + 0x1c], eax
push eax
mov eax, dword [esi + ebx*4 + 0x438]
mov edx, dword [ebp]
add eax, edi
push eax
mov eax, dword [ecx + 0xc94]
imul eax, ebx
mov ecx, dword [esp + 0x28]
push eax
lea eax, [esp + 0x9c]
push ecx
push eax
mov ecx, ebp
call dword [edx + 0x6c]
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
add edx, ecx
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x10]
add edi, eax
mov eax, dword [esp + 0x1c]
cmp edi, eax
jl 0x420744
cmp edi, dword [esp + 0x3c]
jge 0x420982
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
cmp eax, edx
je 0x4208b3
mov eax, edx
mov edx, dword [ebp]
push eax
mov ecx, ebp
mov dword [esp + 0x30], eax
call dword [edx + 0x34]
mov al, byte [esp + 0x26]
test al, al
je 0x4209e0
mov eax, dword [esi + ebx*4 + 0x34]
xor ecx, ecx
mov cl, byte [eax + edi]
mov eax, ecx
mov ecx, dword [esp + 0x18]
cmp ecx, eax
je 0x4208eb
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + eax*4]
mov ecx, ebp
and eax, 0xffffff
push eax
call dword [edx + 0x38]
mov edx, dword [esi + ebx*4 + 0x34]
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea eax, [edx + edi]
xor edx, edx
mov dl, byte [eax]
cmp dword [esp + 0x18], edx
jne 0x420925
mov edx, edi
jmp 0x42090a
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x3c]
jge 0x420921
inc ecx
inc edx
mov dword [esp + 0x10], edx
xor edx, edx
mov dl, byte [eax + ecx]
cmp dword [esp + 0x18], edx
je 0x420906
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x30]
lea edx, [esi + 0xe44]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esi + ebx*4 + 0x438]
push 0x64
push ecx
mov ecx, dword [esp + 0x38]
add edx, edi
push edx
mov eax, dword [ebp]
mov edx, dword [ecx + 0xc94]
mov ecx, dword [esp + 0x28]
imul edx, ebx
push edx
lea edx, [esp + 0x80]
push ecx
push edx
mov ecx, ebp
call dword [eax + 0x6c]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add edx, eax
mov eax, dword [esp + 0x3c]
add edi, ecx
cmp edi, eax
mov dword [esp + 0x14], edx
jl 0x4208b3
mov al, byte [0x4758a5]
test al, al
jne 0x420a6e
mov al, byte [esi + 0x10]
test al, al
je 0x420a6e
cmp dword [esi + 0x14], ebx
jg 0x420a6e
cmp dword [esi + 0x1c], ebx
jle 0x420a6e
cmp dword [esp + 0x14], 2
jg 0x420a14
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x80]
mov eax, dword [edx + 0xc94]
and ecx, 0xffffff
push ecx
push eax
imul eax, ebx
push 2
push eax
push 0
mov ecx, ebp
call sub.MFC42.DLL_CDC::FillSolidRect_1
jmp 0x420a34
cmp dword [esp + 0x18], 0x1e
je 0x420a05
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp]
mov dword [esp + 0x18], 0x1e
mov edx, dword [ecx + 0x78]
mov ecx, ebp
and edx, 0xffffff
push edx
call dword [eax + 0x38]
mov eax, dword [esp + 0x3c]
sub eax, edi
mov dword [esp + 0x10], eax
jmp 0x420925
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x80]
and eax, 0xffffff
cmp ecx, eax
je 0x420a34
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x34]
mov ecx, dword [esi + 0x30]
lea edx, [esi + 0xe44]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edi, dword [esp + 0x1c]
mov edx, dword [ecx + 0xc94]
mov eax, dword [ebp]
imul edx, ebx
push 0x64
push 1
push 0x470090
push edx
lea ecx, [esp + 0x5c]
push edi
push ecx
mov ecx, ebp
call dword [eax + 0x6c]
add edi, dword [eax]
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 0xc88]
cmp eax, ecx
jge 0x420adf
cmp eax, 2
jg 0x420a8d
mov dword [esp + 0x14], 0
mov al, byte [0x4758a5]
test al, al
je 0x420ab9
mov al, byte [esi + 0x10]
test al, al
je 0x420ab9
cmp dword [esi + 0x14], ebx
jg 0x420ab9
cmp dword [esi + 0x1c], ebx
jle 0x420ab9
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x80]
and edx, 0xffffff
jmp 0x420abd
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc94]
sub ecx, edx
push eax
imul eax, ebx
add ecx, 2
push ecx
push eax
push edx
mov ecx, ebp
call sub.MFC42.DLL_CDC::FillSolidRect_1
mov edi, dword [esp + 0x28]
inc ebx
mov eax, dword [edi + 0xc8c]
mov ecx, dword [edi + 0xc94]
cdq
idiv ecx
mov dword [esp + 0x10], ecx
cmp ebx, eax
jle 0x4204b8
mov eax, dword [edi + 0xc94]
mov ecx, dword [edi + 0xc8c]
shl eax, 8
sub ecx, eax
test ecx, ecx
jle 0x420b34
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x7c]
and edx, 0xffffff
push edx
push ecx
mov ecx, dword [edi + 0xc88]
push ecx
push eax
push 0
mov ecx, ebp
call sub.MFC42.DLL_CDC::FillSolidRect_1
cmp dword [esi + 0xfec], 0xffffffff
jle 0x420df5
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0x464b74
push 0x1e2
push 2
push 0x1e2
mov byte [esp + 0xb0], 1
call sub.MFC42.DLL_AfxFindResourceHandle
mov ebx, dword [sym.imp.USER32.dll_LoadBitmapA]
push eax
call ebx
push eax
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CGdiObject::Attach
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0x464b74
push 0x1e3
push 2
push 0x1e3
mov byte [esp + 0xb0], 2
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call ebx
push eax
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CGdiObject::Attach
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0x464b74
push 0x1e6
push 2
push 0x1e6
mov byte [esp + 0xb0], 3
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call ebx
push eax
lea ecx, [esp + 0x64]
call sub.MFC42.DLL_CGdiObject::Attach
lea ecx, [esp + 0x44]
call fcn.0045e3e0
lea ecx, [esp + 0x68]
mov byte [esp + 0xa4], 4
call fcn.0045e3e0
test ebp, ebp
mov byte [esp + 0xa4], 5
jne 0x420c13
xor eax, eax
jmp 0x420c16
mov eax, dword [ebp + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CDC::Attach
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x2c]
neg eax
sbb eax, eax
and eax, ebx
push eax
push edx
call sub.MFC42.DLL_CDC::SelectGdiObject
mov eax, dword [edi + 0xc88]
xor ebx, ebx
test eax, eax
jl 0x420c91
mov ecx, dword [esi + 0xfec]
mov edx, dword [esp + 0x48]
imul ecx, dword [edi + 0xc94]
lea eax, [esp + 0x44]
sub ecx, 2
neg eax
sbb eax, eax
push 0x8800c6
and eax, edx
push 0
push 0
push eax
mov eax, dword [ebp + 4]
push 5
push 0x78
push ecx
push ebx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [edi + 0xc88]
add ebx, 0x78
cmp ebx, eax
jle 0x420c4c
test ebp, ebp
jne 0x420c99
xor eax, eax
jmp 0x420c9c
mov eax, dword [ebp + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CDC::Attach
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x3c]
neg eax
sbb eax, eax
and eax, ecx
mov ecx, dword [esp + 0x6c]
push eax
push ecx
call sub.MFC42.DLL_CDC::SelectGdiObject
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x68]
push edx
push 0x28
push 0x82
push 0
push 0
call sub.MFC42.DLL_CDC::FillSolidRect_1
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x60]
neg eax
sbb eax, eax
and eax, edx
push eax
mov eax, dword [esp + 0x4c]
push eax
call sub.MFC42.DLL_CDC::SelectGdiObject
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x44]
neg eax
sbb eax, eax
push 0x8800c6
and eax, ecx
mov ecx, dword [esp + 0x70]
push 0
push 0
push eax
push 0xa
push 0x82
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [edi + 0xc88]
xor ebx, ebx
test eax, eax
jl 0x420d7a
mov ecx, dword [esi + 0xfec]
mov edx, dword [esp + 0x6c]
imul ecx, dword [edi + 0xc94]
lea eax, [esp + 0x68]
sub ecx, 2
neg eax
sbb eax, eax
push 0xee0086
and eax, edx
mov edx, dword [ebp + 4]
push 0
push 0
push eax
push 0x19
push 0x78
push ecx
push ebx
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [edi + 0xc88]
add ebx, 0x78
cmp ebx, eax
jle 0x420d35
lea ecx, [esp + 0x68]
mov byte [esp + 0xa4], 4
call sub.MFC42.DLL_CDC::CDC
lea ecx, [esp + 0x44]
mov byte [esp + 0xa4], 3
call sub.MFC42.DLL_CDC::CDC
mov ebx, 0x464b9c
mov dword [esp + 0x60], ebx
lea ecx, [esp + 0x60]
mov byte [esp + 0xa4], 6
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov ebp, 0x464b88
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x60], ebp
lea ecx, [esp + 0x2c]
mov byte [esp + 0xa4], 7
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x3c], ebx
lea ecx, [esp + 0x3c]
mov byte [esp + 0xa4], 8
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov byte [esp + 0xa4], 0
mov ecx, dword [edi + 0xc88]
mov eax, dword [esi + 4]
dec ecx
xor edx, edx
cmp eax, ecx
mov ebp, 2
setge dl
xor ecx, ecx
cmp eax, 1
setl cl
dec ecx
sub ecx, edx
add ecx, eax
mov dword [edi + 0xc98], ecx
mov eax, dword [esi + 8]
imul eax, dword [edi + 0xc94]
mov dword [edi + 0xc9c], eax
mov cl, byte [edi + 0x49]
test cl, cl
je 0x420e57
mov ecx, dword [edi + 0xc98]
xor edx, edx
test ecx, ecx
setne dl
inc edx
push eax
add ecx, edx
push ecx
call dword [sym.imp.USER32.dll_SetCaretPos]
mov eax, dword [edi + 0x20]
push eax
call dword [sym.imp.USER32.dll_ShowCaret]
mov al, byte [0x47589d]
mov cl, byte [edi + 0xcc5]
cmp al, cl
mov ebx, 0x7fff
je 0x420efe
xor ecx, ecx
mov byte [edi + 0xcc5], al
mov cl, byte [0x47589d]
push ecx
push 1
mov ecx, edi
call sub.MFC42.DLL_CWnd::EnableScrollBarCtrl
mov al, byte [edi + 0xcc5]
test al, al
je 0x420efe
lea edx, [esp + 0x44]
push 0
push edx
push 1
mov ecx, edi
mov dword [esp + 0x50], 0x1c
mov dword [esp + 0x54], ebp
mov dword [esp + 0x60], ebx
call sub.MFC42.DLL_CWnd::SetScrollInfo
push 0
push 0x8000
push 0
push 1
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollRange
mov eax, dword [esi + 0xfe8]
mov dword [esp + 0x48], ebp
cmp eax, 0x8000
mov dword [esp + 0x54], eax
jl 0x420edc
mov dword [esp + 0x54], ebx
lea eax, [esp + 0x44]
push 0
push eax
push 1
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollInfo
mov ecx, dword [esi + 0xfe4]
push 1
push ecx
push 1
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollPos
mov eax, dword [esi + 0xfe0]
mov ebx, dword [sym.imp.USER32.dll_EnableScrollBar]
test eax, eax
je 0x420fba
mov cl, byte [edi + 0xcc5]
test cl, cl
je 0x420fba
test al, 8
je 0x420f2e
mov edx, dword [edi + 0x20]
push 0
push 1
push edx
jmp 0x420f3a
test al, 4
je 0x420f3c
mov eax, dword [edi + 0x20]
push 3
push 1
push eax
call ebx
mov ecx, dword [esi + 0xfe0]
test cl, 3
je 0x420fba
test cl, 1
je 0x420fa3
mov eax, dword [esi + 0xfe8]
mov dword [esp + 0x44], 0x1c
cmp eax, 0x8000
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], eax
jl 0x420f71
mov dword [esp + 0x54], 0x7fff
test cl, 2
je 0x420f91
lea ecx, [esp + 0x44]
push 0
push ecx
push 1
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollInfo
mov edx, dword [esi + 0xfe4]
push 1
push edx
jmp 0x420fb1
lea eax, [esp + 0x44]
push 1
push eax
push 1
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollInfo
jmp 0x420fba
test cl, 2
je 0x420fba
mov ecx, dword [esi + 0xfe4]
push 1
push ecx
push 1
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollPos
mov al, byte [0x47589e]
mov cl, byte [edi + 0xcc4]
cmp al, cl
je 0x421064
xor edx, edx
mov byte [edi + 0xcc4], al
mov dl, byte [0x47589e]
mov ecx, edi
push edx
push 0
call sub.MFC42.DLL_CWnd::EnableScrollBarCtrl
mov al, byte [edi + 0xcc4]
test al, al
je 0x421064
lea eax, [esp + 0x44]
push 0
push eax
push 0
mov ecx, edi
mov dword [esp + 0x50], 0x1c
mov dword [esp + 0x54], ebp
mov dword [esp + 0x60], 0x7fff
call sub.MFC42.DLL_CWnd::SetScrollInfo
push 0
push 0x8000
push 0
push 0
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollRange
mov eax, dword [esi + 0xfdc]
mov dword [esp + 0x48], ebp
cmp eax, 0x8000
mov dword [esp + 0x54], eax
jl 0x421042
mov dword [esp + 0x54], 0x7fff
lea ecx, [esp + 0x44]
push 0
push ecx
push 0
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollInfo
mov edx, dword [esi + 0xfd8]
push 1
push edx
push 0
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollPos
mov eax, dword [esi + 0xfd4]
test eax, eax
je 0x42111a
mov cl, byte [edi + 0xcc4]
test cl, cl
je 0x42111a
test al, 8
je 0x42108e
mov eax, dword [edi + 0x20]
push 0
push 0
push eax
jmp 0x42109a
test al, 4
je 0x42109c
mov ecx, dword [edi + 0x20]
push 3
push 0
push ecx
call ebx
mov ecx, dword [esi + 0xfd4]
test cl, 3
je 0x42111a
test cl, 1
je 0x421103
mov eax, dword [esi + 0xfdc]
mov dword [esp + 0x44], 0x1c
cmp eax, 0x8000
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], eax
jl 0x4210d1
mov dword [esp + 0x54], 0x7fff
test cl, 2
je 0x4210f1
lea edx, [esp + 0x44]
push 0
push edx
push 0
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollInfo
mov eax, dword [esi + 0xfd8]
push 1
push eax
jmp 0x421111
lea ecx, [esp + 0x44]
push 1
push ecx
push 0
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollInfo
jmp 0x42111a
test cl, 2
je 0x42111a
mov edx, dword [esi + 0xfd8]
push 1
push edx
push 0
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetScrollPos
mov dword [esp + 0x78], 0x464b9c
lea ecx, [esp + 0x78]
mov dword [esp + 0xa4], 9
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x98
ret 8