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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5cc4da
mov eax, dword fs:[0]
push eax
sub esp, 0x328
mov eax, dword [0x680f10]
xor eax, esp
mov dword [esp + 0x2f0], eax
push ebx
push esi
push edi
mov eax, dword [0x680f10]
xor eax, esp
push eax
lea eax, [esp + 0x338]
mov dword fs:[0], eax
xor esi, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x84], esi
call fcn.00465810
test eax, eax
jbe 0x46bac6
mov ecx, dword [ecx + 0x1d8]
test ecx, ecx
je 0x46baab
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x1dc]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x46baab
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 0x1d8]
test ecx, ecx
je 0x46ad84
mov eax, dword [edi + 0x1dc]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x46ad89
call fcn.0044b7ad
mov ecx, dword [edi + 0x1d8]
mov eax, dword [ecx + esi*4]
test eax, eax
mov dword [esp + 0x38], eax
je 0x46baab
push 0x13ffffff
mov ecx, eax
mov dword [esp + 0x70], 0
call fcn.00494ca0
xor ecx, ecx
test eax, eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x78], ecx
jbe 0x46baab
push 0x13ffffff
push ecx
mov ecx, dword [esp + 0x40]
call fcn.00494db0
mov esi, eax
test esi, esi
mov dword [esp + 0x2c], esi
je 0x46ba8c
mov edx, dword [esi]
mov eax, dword [edx + 0x30]
mov ecx, esi
call eax
cmp eax, 0x10
jne 0x46ba8c
mov ecx, esi
call fcn.004f0bd0
mov edi, eax
test edi, edi
mov dword [esp + 0x34], edi
je 0x46ba8c
lea ecx, [esp + 0x3c]
push ecx
push 0
mov ecx, edi
call fcn.004b53e0
mov ecx, eax
call fcn.004b8c70
mov edx, dword [eax + 0x18]
push 4
lea ecx, [eax + 4]
push 0x5efbf0
push edx
push 0
mov dword [esp + 0x350], 0
call fcn.0048a450
test eax, eax
setne bl
cmp dword [esp + 0x58], 0x10
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x3c], 0x5f1558
jb 0x46ae6c
mov eax, dword [esp + 0x44]
push eax
call fcn.004274fc
add esp, 4
test bl, bl
je 0x46af74
mov ecx, dword [esp + 0x24]
xor ebx, ebx
push ebx
push ecx
push 0x2c
call fcn.004b5290
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x46aedb
push 4
push 0x5efbf8
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
call fcn.00402f00
mov eax, 1
or dword [esp + 0x64], eax
lea edx, [esp + 0xa8]
push edx
mov ecx, esi
mov dword [esp + 0x344], eax
call fcn.004b7280
mov esi, eax
jmp 0x46aedd
xor esi, esi
push 0x5efc00
lea ecx, [esp + 0x40]
call fcn.0048cd50
push esi
lea eax, [esp + 0x40]
push eax
push ebx
mov ecx, edi
mov dword [esp + 0x34c], 2
call fcn.004b53e0
mov ecx, eax
call fcn.004ba020
mov esi, 0x10
cmp dword [esp + 0x58], esi
mov dword [esp + 0x3c], 0x5f1558
jb 0x46af2b
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004274fc
add esp, 4
test byte [esp + 0x64], 1
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], 0
mov dword [esp + 0x3c], 0x5f13d0
mov dword [esp + 0x340], 0xffffffff
je 0x46af74
and dword [esp + 0x64], 0xfffffffe
cmp dword [esp + 0xc0], esi
jb 0x46af74
mov edx, dword [esp + 0xac]
push edx
call fcn.004274fc
add esp, 4
mov ebx, dword [esp + 0x38]
mov eax, dword [ebx + 0x18]
mov edx, dword [eax + 0x10]
lea esi, [ebx + 0x18]
push 1
mov ecx, esi
call edx
mov edi, eax
test edi, edi
jne 0x46b014
push eax
mov eax, dword [esp + 0x28]
push eax
push 0x18
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46afb0
mov ecx, eax
call fcn.004b9d40
mov edi, eax
jmp 0x46afb2
xor edi, edi
push 0x5efc08
lea ecx, [esp + 0x40]
call fcn.0048cd50
push edi
lea ecx, [esp + 0x40]
push ecx
mov ecx, ebx
mov dword [esp + 0x348], 3
call fcn.004ba020
cmp dword [esp + 0x58], 0x10
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x3c], 0x5f1558
jb 0x46afff
mov edx, dword [esp + 0x44]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push 1
mov ecx, esi
call edx
mov edi, eax
test edi, edi
je 0x46ba8c
push 0x5efc14
lea ecx, [esp + 0x40]
mov ebx, 0x5f1558
call fcn.0048cd50
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
mov dword [esp + 0x344], 4
call fcn.004b7af0
cmp dword [esp + 0x58], 0x10
mov esi, eax
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x3c], ebx
jb 0x46b063
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004274fc
add esp, 4
test esi, esi
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], 0
mov byte [esp + 0x44], 0
mov dword [esp + 0x3c], 0x5f13d0
jne 0x46b18b
mov edx, dword [esp + 0x24]
push esi
push edx
push 0x18
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b0a7
mov ecx, eax
call fcn.004b9d40
mov esi, eax
jmp 0x46b0a9
xor esi, esi
push 0x5efc1c
lea ecx, [esp + 0xd0]
call fcn.0048cd50
push esi
lea eax, [esp + 0xd0]
push eax
mov ecx, edi
mov dword [esp + 0x348], 5
call fcn.004ba020
cmp dword [esp + 0xe8], 0x10
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0xcc], ebx
jb 0x46b101
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.004274fc
add esp, 4
push 0x5efc24
lea ecx, [esp + 0xd0]
call fcn.0048cd50
lea edx, [esp + 0xcc]
push edx
mov ecx, edi
mov dword [esp + 0x344], 6
call fcn.004b7af0
cmp dword [esp + 0xe8], 0x10
mov esi, eax
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0xcc], ebx
jb 0x46b15a
mov eax, dword [esp + 0xd4]
push eax
call fcn.004274fc
add esp, 4
test esi, esi
mov dword [esp + 0xe8], 0xf
mov dword [esp + 0xe4], 0
mov byte [esp + 0xd4], 0
mov dword [esp + 0xcc], 0x5f13d0
je 0x46ba8c
push 0xff
xor edi, edi
lea ecx, [esp + 0x201]
push edi
push ecx
mov byte [esp + 0x208], 0
call fcn.0044dac0
add esp, 0xc
jmp 0x46b1b0
push edi
lea edx, [esp + 0x200]
push 0x5efc2c
push edx
call fcn.005b8727
add esp, 0xc
lea eax, [esp + 0x1fc]
push eax
lea ecx, [esp + 0xac]
add edi, 1
call fcn.0048cd50
lea ecx, [esp + 0xa8]
push ecx
mov ecx, esi
mov dword [esp + 0x344], 7
call fcn.004b7950
test eax, eax
setne bl
cmp dword [esp + 0xc4], 0x10
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0xa8], 0x5f1558
jb 0x46b22c
mov edx, dword [esp + 0xb0]
push edx
call fcn.004274fc
add esp, 4
test bl, bl
jne 0x46b1b0
mov eax, dword [esp + 0x24]
push 0
push eax
push 0x10
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b255
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, eax
call fcn.004b5410
mov edi, eax
jmp 0x46b257
xor edi, edi
lea edx, [esp + 0x1fc]
push edx
lea ecx, [esp + 0xac]
call fcn.0048cd50
push edi
lea eax, [esp + 0xac]
push eax
mov ecx, esi
mov dword [esp + 0x348], 8
call fcn.004ba020
cmp dword [esp + 0xc4], 0x10
mov ebx, 0x5f1558
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0xa8], ebx
jb 0x46b2b7
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.004274fc
add esp, 4
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
push edx
mov ecx, edi
call fcn.00498ef0
push 0x5efc30
lea ecx, [esp + 0x40]
call fcn.0048cd50
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
mov dword [esp + 0x344], 9
call fcn.004b7950
cmp dword [esp + 0x58], 0x10
mov esi, eax
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x3c], ebx
jb 0x46b311
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004274fc
add esp, 4
test esi, esi
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], 0
mov byte [esp + 0x44], 0
mov dword [esp + 0x3c], 0x5f13d0
je 0x46b343
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
cmp eax, 4
je 0x46b3df
mov ecx, dword [esp + 0x24]
push 0
push ecx
push 0x20
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b363
mov ecx, eax
call fcn.004b77c0
mov ebx, eax
jmp 0x46b365
xor ebx, ebx
test esi, esi
je 0x46b392
mov edx, dword [esp + 0x24]
push 0
push edx
push 0x10
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b388
push esi
mov ecx, eax
call fcn.004b5410
jmp 0x46b38a
xor eax, eax
push eax
mov ecx, ebx
call fcn.004b8ee0
push 0x5efc3c
lea ecx, [esp + 0x40]
call fcn.0048cd50
push ebx
lea eax, [esp + 0x40]
push eax
mov ecx, edi
mov dword [esp + 0x348], 0xa
call fcn.004ba020
cmp dword [esp + 0x58], 0x10
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x3c], 0x5f1558
jb 0x46b3df
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004274fc
add esp, 4
push 0x5efc48
lea ecx, [esp + 0x40]
call fcn.0048cd50
lea edx, [esp + 0x3c]
push edx
mov ecx, edi
mov dword [esp + 0x344], 0xb
call fcn.004b7ac0
cmp dword [esp + 0x58], 0x10
mov esi, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x340], 0xffffffff
mov dword [esp + 0x3c], 0x5f1558
jb 0x46b431
mov eax, dword [esp + 0x44]
push eax
call fcn.004274fc
add esp, 4
test esi, esi
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], 0
mov byte [esp + 0x44], 0
mov dword [esp + 0x3c], 0x5f13d0
je 0x46ba8c
mov esi, dword [esp + 0x6c]
test esi, esi
jne 0x46b55b
cmp dword [esp + 0x60], esi
mov ebx, dword [esp + 0x24]
jne 0x46b4a2
push esi
push ebx
push 0x50
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b487
push 1
mov ecx, eax
call fcn.004b9dd0
jmp 0x46b489
xor eax, eax
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x10]
push 0
mov dword [esp + 0x64], eax
add eax, 0x10
push 2
push 0x5efc54
push eax
call edx
push 0
push ebx
push 0x50
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b4c4
push 1
mov ecx, eax
call fcn.004b9dd0
mov esi, eax
mov dword [esp + 0x6c], eax
jmp 0x46b4ca
xor esi, esi
mov dword [esp + 0x6c], esi
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + 0x10]
push 0
lea eax, [esi + 0x10]
push 2
push 0x5efc58
push eax
call edx
push 0
push ebx
push 0x10
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b500
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, eax
call fcn.004b5410
mov edi, eax
jmp 0x46b502
xor edi, edi
mov ecx, dword [esp + 0x30]
push 0
call fcn.004b5830
mov ecx, dword [esp + 0x30]
push eax
push edi
call fcn.004b7830
push 0
push ebx
push 0x10
call fcn.004b5290
add esp, 0xc
test eax, eax
je 0x46b533
push esi
mov ecx, eax
call fcn.004b5410
jmp 0x46b535
xor eax, eax
mov ecx, dword [esp + 0x30]
push 0
push eax
call fcn.004b7830
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x38]
push edx
mov ecx, edi
call fcn.00498ef0
push esi
mov ecx, edi
call fcn.00498ef0
jmp 0x46b55f
mov edi, dword [esp + 0x38]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x10]
push 0
push 2
add esi, 0x10
push 0x5efc5c
push esi
call ecx
mov ebx, dword [esp + 0x2c]
lea edx, [esp + 0x144]
push edx
mov ecx, ebx
call fcn.004efb00
cmp byte [esp + 0x144], 0
mov dword [esp + 0x340], 0xc
jne 0x46b64e
push 0
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0x5efc60
call fcn.0048cd50
lea eax, [esp + 0x138]
push eax
mov ecx, edi
call fcn.00496ed0
mov edx, dword [ebx]
mov edx, dword [edx + 0x20]
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
call edx
fld dword [esp + 0x11c]
fmul qword [esp + 0x154]
sub esp, 0x10
fld qword [esp + 0x4c]
lea eax, [esp + 0x1a4]
fchs
faddp st(1)
fld dword [esp + 0x130]
fmul qword [esp + 0x16c]
fld qword [esp + 0x64]
fchs
faddp st(1)
fstp qword [esp + 8]
fstp qword [esp]
push str._n1_0_0_1__f__f_cm
push eax
call fcn.005b8727
lea eax, [esp + 0x1ac]
add esp, 0x18
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x46b630
mov ecx, dword [esi]
sub eax, edx
push 0
push eax
mov eax, dword [ecx + 0x10]
lea edx, [esp + 0x19c]
push edx
push esi
call eax
lea ecx, [esp + 0x28]
xor edi, edi
push ecx
mov dword [esp + 0x2c], edi
call sub.gdiplus.dll_GdipCreateMatrix
mov edx, dword [esp + 0x28]
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], edx
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x6c], edi
call sub.gdiplus.dll_GdipCreateMatrix
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], ebx
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, edi
mov byte [esp + 0x344], 0xe
call fcn.004b8590
lea edx, [esp + 0x124]
push edx
mov ecx, edi
call fcn.004b8090
push 0x4893b0
push 4
push 8
lea eax, [esp + 0x94]
push eax
call fcn.00408e10
fld qword [esp + 0x124]
mov edx, dword [esp + 0x7c]
fstp dword [esp + 0x88]
fld qword [esp + 0x13c]
push 4
fstp dword [esp + 0x90]
lea ecx, [esp + 0x8c]
fld qword [esp + 0x130]
push ecx
fstp dword [esp + 0xa0]
push edx
fld qword [esp + 0x140]
fstp dword [esp + 0xa8]
fld dword [esp + 0x94]
fstp dword [esp + 0x9c]
fld dword [esp + 0xa8]
fstp dword [esp + 0xa0]
fld dword [esp + 0xa4]
fstp dword [esp + 0xac]
fld dword [esp + 0x98]
fstp dword [esp + 0xb0]
call sub.gdiplus.dll_GdipTransformMatrixPoints
test eax, eax
je 0x46b753
mov dword [esp + 0x80], eax
fld dword [esp + 0x88]
mov ecx, 1
fst dword [esp + 0x30]
fstp dword [esp + 0x5c]
jmp 0x46b770
fld dword [esp + ecx*8 + 0x88]
fld dword [esp + 0x30]
fcompp
fnstsw ax
test ah, 0x41
jne 0x46b78f
fld dword [esp + ecx*8 + 0x88]
fstp dword [esp + 0x30]
fld dword [esp + ecx*8 + 0x88]
fld dword [esp + 0x5c]
fcompp
fnstsw ax
test ah, 5
jp 0x46b7ae
fld dword [esp + ecx*8 + 0x88]
fstp dword [esp + 0x5c]
add ecx, 1
cmp ecx, 4
jl 0x46b770
fld dword [esp + 0x8c]
mov ecx, 1
fst dword [esp + 0x34]
fstp dword [esp + 0x28]
lea ebx, [ebx]
fld dword [esp + ecx*8 + 0x8c]
fld dword [esp + 0x34]
fcompp
fnstsw ax
test ah, 0x41
jne 0x46b7ef
fld dword [esp + ecx*8 + 0x8c]
fstp dword [esp + 0x34]
fld dword [esp + ecx*8 + 0x8c]
fld dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 5
jp 0x46b80e
fld dword [esp + ecx*8 + 0x8c]
fstp dword [esp + 0x28]
add ecx, 1
cmp ecx, 4
jl 0x46b7d0
fld dword [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
fsub dword [esp + 0x30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x164]
fstp dword [esp + 0x10c]
push edx
fld dword [esp + 0x2c]
fsub dword [esp + 0x38]
fstp dword [esp + 0x114]
call eax
fld qword [esp + 0x174]
push 0
fld qword [esp + 0x180]
sub esp, 8
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x68]
fld qword [esp + 0x178]
fld qword [esp + 0x170]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x34]
fxch st(1)
fstp dword [esp + 0x38]
fstp dword [esp + 0x190]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fld dword [esp + 0x190]
fstp dword [esp]
push ebx
call sub.gdiplus.dll_GdipTranslateMatrix
test eax, eax
je 0x46b8a5
mov dword [esp + 0x74], eax
fldz
fld st(0)
fld dword [esp + 0x28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x46b939
fld st(1)
fld dword [esp + 0x5c]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x46b937
fld st(2)
fld dword [esp + 0x110]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x46b8e5
fdivp st(1)
jmp 0x46b8eb
fstp st(0)
fstp st(0)
fld1
fld dword [esp + 0x10c]
fucom st(3)
fnstsw ax
fstp st(3)
test ah, 0x44
jnp 0x46b903
fxch st(1)
fdivrp st(2)
jmp 0x46b90b
fstp st(2)
fstp st(0)
fld1
fxch st(1)
fstp dword [esp + 0x2c]
push 0
fld dword [esp + 0x30]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
push ebx
call sub.gdiplus.dll_GdipScaleMatrix
test eax, eax
je 0x46b93d
mov dword [esp + 0x74], eax
jmp 0x46b93d
fstp st(2)
fstp st(1)
fstp st(0)
fld dword [esp + 0x34]
push 0
fchs
sub esp, 8
fstp dword [esp + 0x38]
fld dword [esp + 0x3c]
fchs
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fld dword [esp + 0x34]
fstp dword [esp]
push ebx
call sub.gdiplus.dll_GdipTranslateMatrix
test eax, eax
je 0x46b973
mov dword [esp + 0x74], eax
lea ecx, [esp + 0xec]
push ecx
push ebx
call sub.gdiplus.dll_GdipGetMatrixElements
test eax, eax
je 0x46b989
mov dword [esp + 0x74], eax
fld dword [esp + 0x100]
sub esp, 0x30
fstp qword [esp + 0x28]
lea edx, [esp + 0x1c4]
fld dword [esp + 0x12c]
fstp qword [esp + 0x20]
fld dword [esp + 0x128]
fstp qword [esp + 0x18]
fld dword [esp + 0x124]
fstp qword [esp + 0x10]
fld dword [esp + 0x120]
fstp qword [esp + 8]
fld dword [esp + 0x11c]
fstp qword [esp]
push str._n_f__f__f__f__f__f_cm
push edx
call fcn.005b8727
lea eax, [esp + 0x1cc]
add esp, 0x38
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x46b9f0
mov ecx, dword [esi]
sub eax, edx
push 0
push eax
mov eax, dword [ecx + 0x10]
lea edx, [esp + 0x19c]
push edx
push esi
call eax
lea ecx, [esp + 0x1fc]
push ecx
lea edx, [esp + 0x198]
push str._n__s_Do
push edx
call fcn.005b8727
lea eax, [esp + 0x1a0]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x46ba35
sub eax, ecx
mov ecx, dword [esi]
push 0
push eax
mov eax, dword [ecx + 0x10]
lea edx, [esp + 0x19c]
push edx
push esi
call eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0x10]
push 0
push 2
push 0x5efca0
push esi
call edx
push ebx
call sub.gdiplus.dll_GdipDeleteMatrix
mov eax, dword [esp + 0x7c]
push eax
call sub.gdiplus.dll_GdipDeleteMatrix
mov ecx, dword [esp + 0x148]
push ecx
mov dword [esp + 0x344], 0xffffffff
call sub.gdiplus.dll_GdipDeleteMatrix
mov ecx, dword [esp + 0x78]
add ecx, 1
cmp ecx, dword [esp + 0xc8]
mov dword [esp + 0x78], ecx
jb 0x46adc7
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x24]
add esi, 1
mov dword [esp + 0x84], esi
call fcn.00465810
cmp esi, eax
jb 0x46ad42
mov ecx, dword [esp + 0x338]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2f0]
xor ecx, esp
call fcn.0044abb9
mov esp, ebp
pop ebp
ret