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

Disassembly:
sub esp, 0xd8
push ebp
mov ebp, ecx
mov ecx, dword [ebp + 0xc]
mov eax, 1
cmp ecx, eax
mov dword [esp + 4], ebp
jg 0x42c4aa
cmp dword [ebp + 0x10], eax
jg 0x42c4aa
xor eax, eax
pop ebp
add esp, 0xd8
ret 0x10
mov eax, dword [ebp + 0x44]
test eax, eax
jne 0x42c4bf
mov eax, dword [ebp + 0x3c]
test eax, eax
jne 0x42c4bf
mov ecx, ebp
call fcn.004283b0
mov eax, dword [ebp + 0xc]
fild dword [esp + 0xe0]
cdq
idiv dword [ebp + 0x14]
fmul qword [0x469b48]
fstp qword [esp + 0x40]
push ebx
push esi
push edi
mov ecx, eax
mov eax, dword [esp + 0xf0]
test eax, eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], ecx
je 0x42c8a4
shl eax, 1
push 0x20
lea esi, [ecx + ecx]
push eax
push esi
call fcn.00428c50
add esp, 0xc
lea ecx, [esp + 0xb8]
push ecx
push 0x18
push eax
mov dword [esp + 0x70], eax
call dword [sym.imp.GDI32.dll_GetObjectW]
fld qword [esp + 0x4c]
fchs
fld st(0)
fsin
fmul qword [0x469b40]
call fcn.0044541c
fcos
mov dword [esp + 0x1c], eax
fmul qword [0x469b40]
call fcn.0044541c
mov dword [esp + 0x30], eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
shl eax, 1
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x14]
test eax, eax
mov dword [esp + 0x44], 0
jle 0x42c887
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x2c], 0
lea ecx, [ecx]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x2c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xbc]
add eax, edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x48], eax
imul ecx, edx
lea eax, [edx - 1]
imul eax, dword [esp + 0xc4]
shl ecx, 2
add eax, ebx
mov edx, ecx
shr ecx, 2
mov dword [esp + 0x40], eax
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0xc0]
test eax, eax
mov dword [esp + 0x18], 0
jle 0x42c72d
mov eax, dword [esp + 0x34]
mov ecx, eax
imul eax, dword [esp + 0x1c]
imul ecx, dword [esp + 0x30]
neg ecx
neg eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
jmp 0x42c600
mov eax, dword [esp + 0xbc]
test eax, eax
mov dword [esp + 0x14], 0
jle 0x42c6e2
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov eax, ebx
imul ebx, dword [esp + 0x30]
imul eax, dword [esp + 0x1c]
add ebx, ecx
add edi, 2
sub ebp, eax
neg ebx
lea esp, [esp]
mov ecx, dword [esp + 0x24]
mov eax, 0x431bde83
imul ebx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
cdq
sub eax, edx
mov esi, eax
mov eax, 0x431bde83
imul ebp
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x34]
cdq
sub eax, edx
sar esi, 1
sar eax, 1
test esi, esi
jl 0x42c6bb
cmp esi, dword [esp + 0x20]
jge 0x42c6bb
test eax, eax
jl 0x42c6bb
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x20]
cmp eax, ecx
jge 0x42c6bb
mov edx, dword [esp + 0x10]
sub ecx, eax
mov eax, dword [esp + 0x48]
dec ecx
imul ecx, dword [edx + 0x24]
add ecx, eax
lea eax, [ecx + esi*4]
mov cl, byte [eax]
mov byte [edi - 2], cl
mov dl, byte [eax + 1]
mov byte [edi - 1], dl
mov cl, byte [eax + 2]
mov byte [edi], cl
mov dl, byte [eax + 3]
mov byte [edi + 1], dl
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
add ebx, ecx
mov ecx, dword [esp + 0xbc]
inc eax
add ebp, esi
add edi, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x42c640
mov eax, dword [esp + 0xc4]
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
sub ebp, eax
mov eax, dword [esp + 0x18]
add edi, ecx
mov ecx, dword [esp + 0xc0]
inc eax
add esi, edx
cmp eax, ecx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
jl 0x42c600
mov esi, dword [esp + 0x10]
mov eax, ecx
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xcc]
lea ebp, [eax - 1]
lea edx, [eax - 2]
imul ebp, ecx
mov eax, dword [esi + 0x20]
imul edx, ecx
mov ecx, dword [esi + 0x2c]
lea edi, [eax - 1]
imul edi, dword [esi + 0x24]
mov esi, dword [esp + 0x2c]
add edi, ecx
add edx, ebx
add ebp, ebx
add edi, esi
test eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], 0
jle 0x42c85e
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x42c830
mov ebx, dword [esp + 0x20]
lea ecx, [edx + 1]
sub edx, ebp
lea esi, [edi + 2]
lea eax, [ebp + 4]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x14], ebx
jmp 0x42c7a0
mov edx, dword [esp + 0x6c]
lea ecx, [ecx]
movzx edx, byte [edx + eax]
movzx ebx, byte [eax - 4]
add edx, ebx
movzx ebx, byte [ecx - 1]
add edx, ebx
movzx ebx, byte [eax]
add edx, ebx
shr edx, 2
mov byte [esi - 2], dl
movzx ebx, byte [eax + 1]
movzx edx, byte [eax - 3]
add edx, ebx
movzx ebx, byte [ecx + 4]
add edx, ebx
movzx ebx, byte [ecx]
add edx, ebx
shr edx, 2
mov byte [esi - 1], dl
movzx ebx, byte [eax + 2]
movzx edx, byte [eax - 2]
add edx, ebx
movzx ebx, byte [ecx + 5]
add edx, ebx
movzx ebx, byte [ecx + 1]
add edx, ebx
shr edx, 2
mov byte [esi], dl
movzx ebx, byte [eax - 1]
movzx edx, byte [eax + 3]
add edx, ebx
movzx ebx, byte [ecx + 6]
add edx, ebx
movzx ebx, byte [ecx + 2]
add edx, ebx
shr edx, 2
mov byte [esi + 1], dl
mov edx, dword [esp + 0x14]
add eax, 8
add ecx, 8
add esi, 4
dec edx
mov dword [esp + 0x14], edx
jne 0x42c799
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x24]
mov esi, dword [ecx + 0x20]
sub edi, eax
mov eax, dword [esp + 0xc4]
add eax, eax
sub edx, eax
sub ebp, eax
mov eax, dword [esp + 0x28]
inc eax
cmp eax, esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], eax
jl 0x42c774
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
shl ecx, 2
add esi, ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x14]
inc eax
cmp eax, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x2c], esi
jl 0x42c580
mov edx, dword [esp + 0x64]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
pop edi
pop esi
pop ebx
mov eax, 1
pop ebp
add esp, 0xd8
ret 0x10
mov ecx, dword [esp + 0x20]
push eax
push ecx
push 0
push 0
lea edx, [esp + 0xac]
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0xa8]
cdq
sub eax, edx
sar eax, 1
neg eax
push eax
mov eax, dword [esp + 0xa8]
cdq
sub eax, edx
sar eax, 1
neg eax
push eax
lea eax, [esp + 0xa4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
fld qword [esp + 0x4c]
fchs
fst qword [esp + 0x4c]
fsin
fld qword [esp + 0x4c]
fcos
fld st(1)
fmul qword [0x469b38]
call fcn.0044541c
fld qword [0x469b38]
fmul st(1)
mov dword [esp + 0x3c], eax
call fcn.0044541c
fild dword [esp + 0x9c]
mov dword [esp + 0x38], eax
fld st(0)
fmul st(2)
fstp qword [esp + 0x6c]
fild dword [esp + 0xa0]
fld st(0)
fmul st(4)
fstp qword [esp + 0x4c]
fld qword [esp + 0x6c]
fsub qword [esp + 0x4c]
call fcn.0044541c
fmul st(2)
fxch st(1)
mov esi, eax
fmul st(3)
fst qword [esp + 0x90]
fadd st(1)
call fcn.0044541c
fild dword [esp + 0xa4]
mov dword [esp + 0x14], eax
fld st(0)
fmul st(3)
fst qword [esp + 0xb0]
fsub qword [esp + 0x4c]
call fcn.0044541c
fmul st(3)
mov edi, eax
fst qword [esp + 0x4c]
fadd st(1)
call fcn.0044541c
fstp st(0)
fild dword [esp + 0xa8]
mov dword [esp + 0x18], eax
fld st(0)
fmul st(3)
fstp qword [esp + 0x64]
fld qword [esp + 0xb0]
fsub qword [esp + 0x64]
call fcn.0044541c
fmul st(1)
mov dword [esp + 0x24], eax
fstp st(2)
fstp st(0)
fld qword [esp + 0x4c]
fadd st(1)
call fcn.0044541c
fld qword [esp + 0x6c]
fsub qword [esp + 0x64]
mov dword [esp + 0x28], eax
call fcn.0044541c
fadd qword [esp + 0x90]
mov dword [esp + 0x34], eax
call fcn.0044541c
cmp edi, esi
mov ebx, esi
jge 0x42c9ee
mov ebx, edi
mov ecx, dword [esp + 0x24]
cmp ecx, ebx
jge 0x42c9f8
mov ebx, ecx
mov ecx, dword [esp + 0x34]
cmp ecx, ebx
jge 0x42ca02
mov ebx, ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp edx, ecx
mov dword [esp + 0x50], ecx
jge 0x42ca16
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x50]
jge 0x42ca24
mov dword [esp + 0x50], ecx
cmp eax, dword [esp + 0x50]
jge 0x42ca2e
mov dword [esp + 0x50], eax
cmp edi, esi
jle 0x42ca34
mov esi, edi
mov ecx, dword [esp + 0x24]
cmp ecx, esi
jle 0x42ca3e
mov esi, ecx
mov ecx, dword [esp + 0x34]
cmp ecx, esi
jle 0x42ca48
mov esi, ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp edx, ecx
jle 0x42ca56
mov ecx, edx
mov edx, dword [esp + 0x28]
cmp edx, ecx
jle 0x42ca60
mov ecx, edx
cmp eax, ecx
jle 0x42ca66
mov ecx, eax
mov eax, dword [esp + 0x20]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp + 0x10]
cdq
sub eax, edx
mov edx, dword [esp + 0xf4]
sar edi, 1
sar eax, 1
test edx, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x1c], eax
je 0x42ca9b
mov eax, dword [esp + 0x9c]
sub eax, ebx
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xf8]
test edx, edx
je 0x42cac0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xa0]
sub edx, eax
mov eax, dword [esp + 0xf8]
mov dword [eax], edx
mov eax, dword [esp + 0x1c]
sub esi, ebx
mov edx, esi
sub ecx, dword [esp + 0x50]
mov esi, edi
mov edi, dword [esp + 0x9c]
sub esi, ebx
mov ebx, eax
sub ebx, dword [esp + 0x50]
mov eax, dword [ebp + 0x14]
imul eax, edx
push 0x20
push ecx
add esi, edi
mov edi, dword [esp + 0xa8]
push eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], ecx
add ebx, edi
call fcn.00428c50
add esp, 0xc
lea ecx, [esp + 0xd0]
push ecx
push 0x18
push eax
mov dword [esp + 0x58], eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov ecx, dword [esp + 0xd8]
imul ecx, dword [esp + 0xd4]
mov edi, dword [esp + 0xe4]
shl ecx, 2
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp + 0x14]
test eax, eax
mov dword [esp + 0x90], 0
jle 0x42cf48
lea eax, [esi*4]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x64]
sub eax, esi
shl eax, 1
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x6c]
sub eax, ebx
neg esi
shl esi, 1
shl eax, 1
neg ebx
shl ebx, 1
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], ebx
mov dword [esp + 0x24], 0
lea ecx, [ecx]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xe4]
add eax, edi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xd8]
dec eax
imul eax, esi
add eax, edx
mov edx, dword [esp + 0x78]
add eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x80]
cmp eax, edx
jge 0x42cf19
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov ecx, eax
imul eax, ebx
mov dword [esp + 0x14], eax
mov eax, ecx
imul eax, edi
mov dword [esp + 0x28], eax
lea eax, [ecx + 1]
mov edx, eax
imul eax, edi
mov dword [esp + 0x18], eax
imul edx, ebx
mov eax, dword [esp + 0x78]
sub eax, ecx
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x74]
cmp ecx, eax
jge 0x42cec6
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov edx, ecx
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
mov eax, edx
imul eax, ebx
add eax, edi
mov dword [esp + 0x44], eax
mov eax, edx
imul eax, ebp
sub eax, esi
mov dword [esp + 0x5c], eax
lea eax, [ecx + edx*2 + 2]
mov dword [esp + 0x84], eax
lea eax, [edx + 1]
mov ecx, eax
imul eax, ebp
mov ebp, dword [esp + 0x28]
imul ecx, ebx
sub eax, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
sub eax, edi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xac]
sub eax, edx
add ecx, edi
sub esi, ebp
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x8c], eax
nop
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
add ecx, edx
mov edx, dword [esp + 0x88]
add edx, eax
sar ecx, 0x10
sar edx, 0x10
add ecx, ebx
add edx, esi
test ecx, ecx
jl 0x42cd19
cmp ecx, dword [esp + 0x20]
jge 0x42cd19
test edx, edx
jl 0x42cd19
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
cmp edx, eax
jge 0x42cd19
sub eax, edx
mov edx, dword [esp + 0x10]
dec eax
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x48]
movzx esi, byte [eax + ecx*4]
movzx edi, byte [eax + ecx*4 + 1]
movzx ebx, byte [eax + ecx*4 + 2]
movzx ebp, byte [eax + ecx*4 + 3]
lea eax, [eax + ecx*4]
jmp 0x42cd21
xor esi, esi
xor edi, edi
xor ebx, ebx
xor ebp, ebp
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x88]
sar ecx, 0x10
add ecx, edx
mov edx, dword [esp + 0x60]
add edx, eax
mov eax, dword [esp + 0x1c]
sar edx, 0x10
add edx, eax
test ecx, ecx
jl 0x42cd8d
cmp ecx, dword [esp + 0x20]
jge 0x42cd8d
test edx, edx
jl 0x42cd8d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
cmp edx, eax
jge 0x42cd8d
sub eax, edx
mov edx, dword [esp + 0x10]
dec eax
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x48]
movzx edx, byte [eax + ecx*4 + 1]
lea eax, [eax + ecx*4]
movzx ecx, byte [eax]
add esi, ecx
movzx ecx, byte [eax + 2]
add edi, edx
movzx edx, byte [eax + 3]
add ebx, ecx
add ebp, edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
sar ecx, 0x10
add ecx, edx
mov edx, dword [esp + 0x60]
sar edx, 0x10
add edx, eax
test ecx, ecx
jl 0x42cdea
cmp ecx, dword [esp + 0x20]
jge 0x42cdea
test edx, edx
jl 0x42cdea
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
cmp edx, eax
jge 0x42cdea
sub eax, edx
mov edx, dword [esp + 0x10]
dec eax
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x48]
movzx edx, byte [eax + ecx*4 + 1]
lea eax, [eax + ecx*4]
movzx ecx, byte [eax]
add esi, ecx
movzx ecx, byte [eax + 2]
add edi, edx
movzx edx, byte [eax + 3]
add ebx, ecx
add ebp, edx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
sar ecx, 0x10
add ecx, edx
mov edx, dword [esp + 0x44]
sar edx, 0x10
add edx, eax
test ecx, ecx
jl 0x42ce47
cmp ecx, dword [esp + 0x20]
jge 0x42ce47
test edx, edx
jl 0x42ce47
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
cmp edx, eax
jge 0x42ce47
sub eax, edx
mov edx, dword [esp + 0x10]
dec eax
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x48]
movzx edx, byte [eax + ecx*4 + 1]
lea eax, [eax + ecx*4]
movzx ecx, byte [eax]
add esi, ecx
movzx ecx, byte [eax + 2]
add edi, edx
movzx edx, byte [eax + 3]
add ebx, ecx
add ebp, edx
mov eax, dword [esp + 0x84]
mov ecx, esi
mov esi, dword [esp + 0x5c]
shr ecx, 2
mov byte [eax - 2], cl
mov edx, edi
mov edi, dword [esp + 0x30]
shr edx, 2
mov byte [eax - 1], dl
mov edx, dword [esp + 0x60]
add eax, 4
mov ecx, ebp
shr ecx, 2
mov byte [eax - 3], cl
mov ecx, dword [esp + 0x44]
shr ebx, 2
mov byte [eax - 4], bl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x38]
add eax, eax
add edi, eax
add esi, eax
mov eax, dword [esp + 0x3c]
add eax, eax
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x8c]
dec eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x8c], eax
jne 0x42ccb0
mov esi, dword [esp + 0xdc]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x40]
add eax, eax
add ebx, eax
add edi, eax
mov eax, dword [esp + 0x38]
add eax, eax
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x98]
sub ebp, esi
dec eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x98], eax
jne 0x42cc23
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x90]
shl ecx, 2
add edx, ecx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x90], eax
jl 0x42cba0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x54]
test ecx, ecx
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
jne 0x42cf67
mov esi, eax
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x50]
push ecx
push edx
call edi
jmp 0x42cf74
mov ecx, dword [esp + 0x10]
call fcn.00427af0
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x30]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esi + 0x54]
test ecx, ecx
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x30], eax
jne 0x42cf96
mov ecx, dword [esi + 0x50]
push eax
push ecx
call edi
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
lea edx, [esi + 0x18]
mov dword [edx], eax
mov eax, dword [esp + 0xd8]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xdc]
mov dword [edx + 8], eax
mov eax, dword [esp + 0xe0]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0xe4]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x14], ecx
mov edx, dword [esi + 0x14]
imul edx, dword [esp + 0x64]
pop edi
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], edx
pop esi
pop ebx
mov eax, 1
pop ebp
add esp, 0xd8
ret 0x10