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

Disassembly:
push 0xffffffffffffffff
push 0x52acb9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdc
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x18]
call fcn.0046cfa0
mov ebp, vtable.CBitmap.0
mov dword [esp + 0x18], ebp
lea ecx, [esp + 0x10]
mov dword [esp + 0xf4], 0
call fcn.0046cfa0
mov dword [esp + 0x10], ebp
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
call fcn.0046cfa0
mov dword [esp + 0x34], ebp
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
call fcn.0046cfa0
mov dword [esp + 0x24], ebp
mov bl, 3
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
call fcn.0046cfa0
mov dword [esp + 0x2c], ebp
mov byte [esp + 0xf4], 4
call fcn.00523906
mov eax, dword [eax + 0xc]
mov edi, dword [0x671ba0]
push 0xaa
push eax
call edi
push eax
lea ecx, [esp + 0x1c]
call fcn.005152a4
test eax, eax
jne 0x46c357
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x8c]
push eax
push 0x18
push ecx
call dword [0x6719f0]
mov eax, dword [esp + 0x90]
test eax, eax
jg 0x46c3e7
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
call fcn.00523906
mov eax, dword [eax + 0xc]
push 0xaf
push eax
call edi
push eax
lea ecx, [esp + 0x14]
call fcn.005152a4
test eax, eax
jne 0x46c475
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
mov eax, dword [esp + 0x14]
lea edx, [esp + 0xa4]
push edx
push 0x18
push eax
call dword [0x6719f0]
mov eax, dword [esp + 0xa8]
test eax, eax
jg 0x46c505
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
call fcn.00523906
mov eax, dword [eax + 0xc]
push 0x174
push eax
call edi
push eax
lea ecx, [esp + 0x28]
call fcn.005152a4
test eax, eax
jne 0x46c593
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xbc]
push ecx
push 0x18
push edx
call dword [0x6719f0]
mov eax, dword [esp + 0xc0]
test eax, eax
jg 0x46c623
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
call fcn.00523906
mov eax, dword [eax + 0xc]
push 0xb4
push eax
call edi
push eax
lea ecx, [esp + 0x30]
call fcn.005152a4
test eax, eax
jne 0x46c6b1
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0xd4]
push eax
push 0x18
push ecx
call dword [0x6719f0]
mov eax, dword [esp + 0xd8]
test eax, eax
jg 0x46c741
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
mov edi, dword [esp + 0xfc]
mov eax, dword [edi + 8]
add eax, 0xfffffffe
mov dword [edi + 8], eax
mov edx, dword [esi + 0xcc]
sub eax, edx
cmp eax, 0x64
jge 0x46c7ce
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], bl
mov dword [esp + 0x2c], ebp
call fcn.00450630
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 2
mov dword [esp + 0x24], ebp
call fcn.00450630
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 1
mov dword [esp + 0x34], ebp
call fcn.00450630
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 0
mov dword [esp + 0x10], ebp
call fcn.00450630
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x18], ebp
call fcn.00450630
jmp 0x46cf84
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x104]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
and eax, ebx
push eax
mov eax, dword [edx + 4]
push eax
call fcn.00514a34
mov ebp, dword [edi + 0xc]
mov ecx, edi
mov dword [esp + 0x88], eax
mov edx, dword [ecx]
mov dword [esp + 0x3c], edx
mov edx, dword [edi + 4]
mov eax, dword [ecx + 4]
mov dword [esp + 0x40], eax
mov eax, ebp
mov ebx, dword [ecx + 8]
sub eax, edx
mov edx, dword [esp + 0x94]
mov ecx, dword [ecx + 0xc]
sub eax, edx
cdq
sub eax, edx
mov edx, dword [edi + 4]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0xcc]
sar eax, 1
add ecx, 5
add edx, eax
sub ebp, eax
mov eax, dword [edi + 8]
dec ebx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 0x6c], ebp
cmp ecx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov ebp, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x20], edx
jge 0x46c8cb
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x4c], ecx
lea edx, [ecx + ebp]
cmp edx, eax
jl 0x46c889
sub eax, ebp
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x104]
test eax, eax
je 0x46c897
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0xa4]
push eax
mov eax, dword [ebx + 4]
push ecx
push edx
push ebp
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov edx, dword [esp + 0x4c]
mov eax, dword [edi + 8]
add ebp, edx
cmp ebp, eax
jl 0x46c871
mov ecx, edi
mov dword [esp + 0x58], ebp
mov ebp, dword [edi + 0xc]
mov edx, dword [ecx]
mov dword [esp + 0x3c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x40], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov edx, dword [edi + 4]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esi + 0xcc]
mov dword [esp + 0x48], eax
mov eax, ebp
sub eax, edx
mov edx, dword [esp + 0x94]
sub eax, edx
add ecx, 5
cdq
sub eax, edx
mov edx, dword [edi + 4]
sar eax, 1
add edx, eax
sub ebp, eax
mov eax, dword [esi + 0xa4]
mov dword [esp + 0x3c], ecx
test eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], ebp
jle 0x46c9ef
lea eax, [esp + 0x24]
test eax, eax
je 0x46c954
mov eax, dword [esp + 0x28]
test eax, eax
je 0x46c954
mov ecx, dword [esp + 0x104]
push eax
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x3c]
mov edx, dword [edi + 8]
mov eax, dword [esi + 0xcc]
sub edx, eax
mov eax, 0x51eb851f
sub edx, 5
mov ebp, ecx
imul edx, dword [esi + 0xa4]
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x40]
add edx, ecx
mov dword [esp + 0x20], eax
cmp ecx, edx
mov dword [esp + 0x44], edx
jge 0x46c9e9
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x4c], eax
lea ecx, [eax + ebp]
cmp ecx, edx
jl 0x46c9a6
sub edx, ebp
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x104]
test eax, eax
je 0x46c9b4
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x20]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0x5c]
push edx
mov edx, dword [ebx + 4]
push eax
push ecx
push ebp
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
add ebp, ecx
cmp ebp, edx
jl 0x46c98e
mov ecx, edx
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x10]
test eax, eax
je 0x46ca15
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46ca15
mov ecx, dword [esp + 0x104]
push eax
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x3c]
mov edi, dword [edi + 8]
mov ebp, dword [esi + 0xcc]
mov edx, edi
mov eax, 0x51eb851f
sub edx, ebp
sub edx, 5
imul edx, dword [esi + 0xa0]
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
lea edx, [edx + ebp + 5]
mov ebp, ecx
cmp ecx, edx
mov dword [esp + 0x44], edx
jne 0x46ca68
mov eax, dword [esi + 0xa8]
test eax, eax
je 0x46ca66
cmp edx, edi
jge 0x46ca66
inc edx
mov dword [esp + 0x44], edx
cmp ecx, edx
jge 0x46cab7
mov edi, dword [esp + 0xa8]
lea ecx, [edi + ebp]
cmp ecx, edx
jl 0x46ca7c
sub edx, ebp
mov edi, edx
mov eax, dword [esp + 0x104]
test eax, eax
je 0x46ca8a
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x94]
mov ecx, dword [ebx + 4]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0x30]
push edx
push edi
push eax
push ebp
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov edx, dword [esp + 0x44]
add ebp, edi
cmp ebp, edx
jl 0x46ca6a
cmp dword [esi + 0xa0], 0x64
jl 0x46cbd0
mov eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0x104]
mov edx, dword [esi + 0x98]
mov edi, dword [esi + 0x100]
cmp eax, ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ecx
jl 0x46cbd0
jg 0x46cafe
cmp edx, edi
jbe 0x46cbd0
fild qword [esp + 0x4c]
fild qword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x78], eax
sub eax, edi
fsubr st(1)
inc eax
mov edx, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x6c]
fdivrp st(1)
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], ecx
fild dword [esp + 0x20]
fld qword [0x5d7568]
fsub st(2)
fmulp st(1)
call fcn.004f866c
mov ebp, eax
lea edx, [esp + 0x2c]
add ebp, edi
test edx, edx
fstp st(0)
je 0x46cb6c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46cb6c
push eax
mov eax, dword [esp + 0x108]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
cmp ebp, eax
mov dword [esp + 0x20], edx
jge 0x46cbd0
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0x78]
lea ecx, [edi + ebp]
cmp ecx, eax
jl 0x46cb92
mov edi, eax
sub edi, ebp
mov eax, dword [esp + 0x104]
test eax, eax
je 0x46cba0
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x94]
mov ecx, dword [ebx + 4]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0x84]
push edx
push edi
push eax
push ebp
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x78]
add ebp, edi
cmp ebp, eax
jl 0x46cb7c
mov eax, dword [esp + 0x88]
test eax, eax
je 0x46cbde
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x104]
push eax
mov eax, dword [edx + 4]
push eax
call fcn.00514a34
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
push 0
add ecx, 2
push 0
push ecx
mov ecx, dword [esp + 0x8c]
sub eax, ecx
inc eax
dec edx
push eax
dec ecx
push edx
push ecx
mov ecx, ebx
call fcn.00521dae
mov eax, dword [0x66f704]
mov dword [esp + 0x54], eax
mov ecx, dword [esi + 0xa0]
mov edx, dword [esi + 0x9c]
mov eax, dword [esi + 0x98]
push ecx
push 0
push 0x400
push edx
push eax
mov byte [esp + 0x108], 5
mov dword [esp + 0x34], 0
call fcn.004f5c30
push 0
push 0x400
push edx
push eax
call fcn.004f5c30
push eax
push str.Total___d_MB___________d___
push 0x4b0
call fcn.004dd120
add esp, 8
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.0050b108
mov eax, dword [0x717d00]
add esp, 0x10
test eax, eax
je 0x46cc9d
mov edx, dword [ebx + 4]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
push 0
mov ecx, ebx
call dword [eax + 0x30]
push 1
mov ecx, ebx
call fcn.00514afc
push 0
lea ecx, [esp + 0x40]
push 0xfffffffffffffff6
push ecx
call dword [sym.imp.USER32.dll_InflateRect]
mov eax, dword [esp + 0x54]
mov edx, dword [ebx]
lea edi, [esp + 0x60]
push 0x25
mov ecx, dword [eax - 8]
push edi
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x68]
mov eax, dword [esi + 0xf4]
test eax, eax
je 0x46ceef
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
lea edi, [esi + 0xd4]
mov eax, edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call dword [sym.imp.USER32.dll_GetMessagePos]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
mov dword [esp + 0x80], ecx
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x80]
mov dword [esp + 0x84], edx
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [esp + 0x54]
mov ebp, dword [0x6719f4]
lea edx, [esp + 0x58]
mov ecx, dword [eax - 8]
push edx
push ecx
push eax
mov eax, dword [ebx + 8]
push eax
call ebp
mov eax, dword [esi + 0xf0]
lea edx, [esp + 0x70]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [ebx + 8]
push eax
call ebp
mov ecx, dword [esi + 0xdc]
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
sub ecx, ebp
lea ebp, [ecx - 0x1a]
mov ecx, dword [esp + 0x68]
mov eax, ecx
mov dword [edi], ebp
sub eax, edx
mov edx, dword [esp + 0x60]
sub eax, edx
add ebp, 0xfffffffb
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
cmp ecx, ebp
jge 0x46ceef
mov eax, dword [esi + 0xec]
test eax, eax
je 0x46cdd9
lea edx, [esp + 0x58]
mov dword [esp + 0x58], 1
push edx
push 0x60c4f9
push 0x467ee5
push edi
push ebx
call fcn.004aee70
add esp, 0x14
mov ecx, ebx
push 0x5a4334
push 0x5a4334
push edi
call fcn.00521d83
jmp 0x46ce42
mov eax, dword [esi + 0x108]
test eax, eax
je 0x46ce42
mov eax, dword [esi + 0x118]
test eax, eax
je 0x46ce42
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
push eax
push ecx
push edi
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x46ce42
lea edx, [esp + 0x58]
mov ebp, 1
push edx
push 0x91d0ff
push 0xccf4ff
push edi
push ebx
mov dword [esp + 0x6c], ebp
call fcn.004aee70
add esp, 0x14
mov ecx, ebx
push 0x5a4334
push 0x5a4334
push edi
call fcn.00521d83
mov dword [esi + 0x110], ebp
mov eax, dword [esi + 0xec]
mov edx, dword [edi]
push 0x24
push edi
lea ecx, [eax + 8]
add edx, ecx
mov dword [edi], edx
lea edx, [eax + eax]
mov eax, dword [esi + 0xd8]
add eax, edx
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0xf0]
mov edx, dword [ebx]
mov ecx, dword [eax - 8]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x68]
mov ecx, dword [esi + 0xec]
mov edx, dword [edi]
mov eax, 0xfffffff8
mov ebp, dword [esi + 0xd8]
sub eax, ecx
add edx, eax
mov eax, dword [esi + 0x118]
mov dword [edi], edx
mov edx, ecx
neg edx
shl edx, 1
add ebp, edx
test eax, eax
mov dword [esi + 0xd8], ebp
je 0x46ceef
mov eax, dword [esi + 0xdc]
mov edx, dword [edi + 4]
push 8
push 8
lea esi, [eax + ecx - 0xd]
mov eax, dword [edi + 0xc]
sub eax, edx
push 0
sub eax, 8
push 0
cdq
push 0
sub eax, edx
sub esp, 0x10
sar eax, 1
mov edi, esp
add eax, ebp
add eax, ecx
lea ecx, [esi + 8]
mov dword [edi], esi
push ebx
lea edx, [eax + 8]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
call fcn.0045d3b0
add esp, 0x28
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46cf02
mov ecx, dword [ebx + 4]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 4
call fcn.0050dfa8
mov esi, vtable.CGdiObject.0
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], 6
call fcn.005152fb
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x24]
mov byte [esp + 0xf4], 7
call fcn.005152fb
mov dword [esp + 0x34], esi
lea ecx, [esp + 0x34]
mov byte [esp + 0xf4], 8
call fcn.005152fb
mov dword [esp + 0x10], esi
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 9
call fcn.005152fb
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x18]
mov dword [esp + 0xf4], 0xa
call fcn.005152fb
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe8
ret 0xc