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

Disassembly:
push 0xffffffffffffffff
push 0x4c0893
mov eax, dword fs:[0]
push eax
mov eax, 0x1225c
mov dword fs:[0], esp
call fcn.004a0430
push ebx
push ebp
push esi
mov ebp, ecx
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x38], ebp
call fcn.004635c0
mov ecx, dword [esp + 0x1227c]
xor ebx, ebx
push ebx
push ebx
lea eax, [esp + 0x44]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x12284], ebx
call fcn.004652f0
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x466a59
mov ecx, dword [esp + 0x4c]
sub ecx, eax
sar ecx, 2
cmp ecx, ebx
jbe 0x466a59
mov edx, dword [eax]
mov cl, byte [edx + 4]
test cl, cl
jne 0x468265
push 0xffffffffffffffff
mov eax, edx
add eax, 8
push ebx
mov edi, 0xf
push eax
lea ecx, [esp + 0x60]
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
call fcn.004065c0
mov eax, dword [esp + 0x6c]
mov esi, 0x10
cmp eax, esi
mov eax, dword [esp + 0x58]
mov byte [esp + 0x12274], 1
mov byte [esp + 0x13], bl
mov byte [esp + 0x1f], bl
jae 0x4660e3
lea eax, [esp + 0x58]
push str.Define
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x4662dd
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov eax, dword [ecx + 4]
mov dl, byte [eax + 4]
test dl, dl
jne 0x4668e5
mov ecx, eax
add ecx, 8
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.0046b300
add esp, 8
lea eax, [esp + 0x98]
push eax
mov ecx, ebp
mov byte [esp + 0x12278], 2
call fcn.0045f620
test al, al
jne 0x467120
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x1c]
lea edi, [ebp + 0x18c]
push edx
mov ecx, edi
call fcn.0045fec0
mov eax, dword [ebp + 0x190]
mov esi, dword [esp + 0x18]
cmp esi, eax
je 0x46619c
mov ecx, dword [esi + 0x28]
cmp ecx, ebx
je 0x46618f
mov eax, dword [ecx]
push 1
call dword [eax]
push esi
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
call fcn.00462630
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 8]
mov cl, byte [edx + 4]
test cl, cl
je 0x466239
push 0x18
call fcn.004901f0
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, ebx
mov byte [esp + 0x12274], 3
je 0x4661d3
mov ecx, eax
call fcn.004635c0
mov esi, eax
jmp 0x4661d5
xor esi, esi
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
push esi
push ecx
mov ecx, ebp
mov byte [esp + 0x1227c], 2
call fcn.00464f90
test al, al
jne 0x466212
cmp esi, ebx
je 0x4661fd
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
lea ecx, [esp + 0x98]
call fcn.00406270
lea ecx, [esp + 0x54]
jmp 0x468294
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], esi
call fcn.0045ff30
mov byte [esp + 0x12274], 4
jmp 0x466277
mov esi, dword [eax + 8]
lea eax, [esi + 8]
push eax
mov ecx, ebp
call fcn.004600b0
cmp eax, ebx
je 0x4662a9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0xd8]
call fcn.0045ff30
mov byte [esp + 0x12274], 5
push eax
lea edx, [esp + 0x34]
push edx
mov ecx, edi
call fcn.004644d0
lea ecx, [esp + 0xd0]
call fcn.00406270
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 1
call fcn.00406270
jmp 0x4668d9
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], eax
call fcn.0045ff30
push eax
lea eax, [esp + 0x34]
mov byte [esp + 0x12278], 6
push eax
jmp 0x46627d
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x4662eb
lea eax, [esp + 0x58]
push str.CreateHorzSpanRectList
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466705
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 4
jne 0x4681d9
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov edx, dword [ecx + 4]
mov al, byte [edx + 4]
test al, al
mov byte [esp + 0x12274], 8
jne 0x4666dd
mov ecx, dword [ecx + 8]
lea eax, [esp + 0x74]
push eax
push ecx
mov ecx, ebp
call fcn.00465b30
test al, al
je 0x4666dd
mov ebp, dword [esp + 0x78]
cmp ebp, ebx
je 0x4666dd
mov eax, dword [esp + 0x7c]
sub eax, ebp
sar eax, 2
cmp eax, 4
jne 0x4666dd
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x20]
push edx
push ecx
mov ecx, dword [esp + 0x40]
call fcn.00465b30
test al, al
je 0x4666dd
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 4]
add eax, 8
push eax
lea ecx, [esp + 0x9c]
push ecx
call fcn.0046b300
mov bl, 9
xor esi, esi
push 0x18
mov byte [esp + 0x12280], bl
mov dword [esp + 0xa0], esi
call fcn.004901f0
add esp, 0xc
mov dword [esp + 0x30], eax
cmp eax, esi
mov byte [esp + 0x12274], 0xa
je 0x4663f5
mov ecx, eax
call fcn.004635c0
mov dword [esp + 0x18], eax
jmp 0x4663f9
mov dword [esp + 0x18], esi
mov byte [esp + 0x12274], bl
mov dword [esp + 0x70], esi
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x466647
mov eax, dword [esp + 0x28]
sub eax, ecx
mov ecx, dword [esp + 0x70]
sar eax, 2
cmp ecx, eax
jae 0x466647
push 0x18
call fcn.004901f0
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x12274], 0xb
je 0x46644a
mov ecx, eax
call fcn.004635c0
mov edi, eax
jmp 0x46644c
xor edi, edi
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
add ecx, 8
mov byte [esp + 0x12278], bl
mov dword [esp + 0x18], edi
call fcn.00464460
mov eax, dword [ebp]
add eax, dword [esp + 0x94]
push eax
lea ecx, [esp + 0xf4]
push 0x4c5c80
push ecx
call fcn.0049fa8d
push 0x24
call fcn.004901f0
mov esi, eax
add esp, 0x10
mov dword [esp + 0x30], esi
test esi, esi
mov byte [esp + 0x12274], 0xc
je 0x4664c0
sub esp, 0x1c
lea edx, [esp + 0x10c]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.00406880
mov ecx, esi
call fcn.0045ffc0
jmp 0x4664c2
xor eax, eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
lea esi, [edi + 8]
push eax
mov ecx, esi
mov byte [esp + 0x12278], bl
call fcn.00464460
mov ecx, dword [ebp + 4]
push ecx
lea edx, [esp + 0xf4]
push 0x4c5c80
push edx
call fcn.0049fa8d
push 0x24
call fcn.004901f0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x30], edi
test edi, edi
mov byte [esp + 0x12274], 0xd
je 0x46652d
sub esp, 0x1c
lea eax, [esp + 0x10c]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.00406880
mov ecx, edi
call fcn.0045ffc0
jmp 0x46652f
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov byte [esp + 0x12278], bl
mov dword [esp + 0x18], eax
call fcn.00464460
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x70]
mov ecx, dword [edx + eax*4]
push ecx
lea edx, [esp + 0xf4]
push 0x4c5c80
push edx
call fcn.0049fa8d
push 0x24
call fcn.004901f0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x30], edi
test edi, edi
mov byte [esp + 0x12274], 0xe
je 0x46659f
sub esp, 0x1c
lea eax, [esp + 0x10c]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.00406880
mov ecx, edi
call fcn.0045ffc0
jmp 0x4665a1
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov byte [esp + 0x12278], bl
mov dword [esp + 0x18], eax
call fcn.00464460
mov edx, dword [ebp + 0xc]
push edx
lea eax, [esp + 0xf4]
push 0x4c5c80
push eax
call fcn.0049fa8d
push 0x24
call fcn.004901f0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x30], edi
test edi, edi
mov byte [esp + 0x12274], 0xf
je 0x466609
sub esp, 0x1c
lea edx, [esp + 0x10c]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.00406880
mov ecx, edi
call fcn.0045ffc0
jmp 0x46660b
xor eax, eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov byte [esp + 0x12278], bl
call fcn.00464460
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + eax*4]
mov esi, dword [esp + 0x94]
add esi, edx
inc eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x70], eax
jmp 0x466404
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x18]
lea esi, [edi + 0x18c]
push ecx
mov ecx, esi
call fcn.0045fec0
mov eax, dword [edi + 0x190]
mov edi, dword [esp + 0x14]
cmp edi, eax
je 0x46668d
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x466680
mov edx, dword [ecx]
push 1
call dword [edx]
push edi
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call fcn.00462630
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x9c]
mov dword [esp + 0x18], ecx
push eax
lea ecx, [esp + 0xd8]
call fcn.0045ff30
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
mov byte [esp + 0x1227c], 0x10
call fcn.004644d0
lea ecx, [esp + 0xd0]
call fcn.00406270
lea ecx, [esp + 0x98]
call fcn.00406270
jmp 0x4666e2
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x20]
call fcn.00440590
lea ecx, [esp + 0x74]
mov byte [esp + 0x12274], 1
call fcn.00440590
mov ebp, dword [esp + 0x38]
jmp 0x4668d9
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466713
lea eax, [esp + 0x58]
push str.SetDefaultPointSize
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466784
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 2
jne 0x4681d9
mov edx, dword [ecx + 4]
mov al, byte [edx + 4]
test al, al
jne 0x4668e5
lea eax, [esp + 0x14]
push eax
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x10], eax
jmp 0x466a50
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466792
lea eax, [esp + 0x58]
push str.SetCharMap
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x46690b
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov eax, dword [ecx + 4]
lea edx, [esp + 0x20]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x12
call fcn.004658c0
test al, al
je 0x4668ba
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x74]
push ecx
push eax
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x4668ba
lea ecx, [esp + 0x74]
call fcn.00405f40
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.00405f40
cmp eax, esi
jne 0x4668b3
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], ebx
call fcn.00405f40
test eax, eax
jbe 0x4668bf
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x38]
mov edi, ebx
sub edi, eax
lea esi, [eax + 0x14]
mov dword [esp + 0x14], edi
lea ecx, [ecx]
cmp dword [edi + esi], 1
jne 0x46688f
cmp dword [esi], 1
jne 0x46688f
push 0
lea ecx, [esi - 0x14]
call fcn.00444580
push 0
mov ecx, ebx
mov edi, eax
call fcn.00444580
movzx ecx, byte [eax]
mov dl, byte [edi]
mov edi, dword [esp + 0x14]
mov byte [ecx + ebp + 0x14], dl
jmp 0x466894
mov byte [esp + 0x13], 1
inc dword [esp + 0x18]
lea ecx, [esp + 0x20]
add esi, 0x1c
add ebx, 0x1c
call fcn.00405f40
cmp dword [esp + 0x18], eax
jb 0x466860
mov ebp, dword [esp + 0x38]
jmp 0x4668bf
mov byte [esp + 0x1f], 1
jmp 0x4668bf
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x74]
call fcn.00407800
lea ecx, [esp + 0x20]
mov byte [esp + 0x12274], 1
call fcn.00407800
mov al, byte [esp + 0x13]
test al, al
je 0x4681fc
push str.Invalid_Paramater_Type
lea ecx, [esp + 0x9c]
call fcn.00406880
lea eax, [esp + 0x98]
mov byte [esp + 0x12274], 0x39
push eax
jmp 0x468229
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466919
lea eax, [esp + 0x58]
push str.CreateLayer
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466a8a
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x4681d9
mov ecx, dword [esp + 0x4c]
sub ecx, eax
sar ecx, 2
cmp ecx, 2
jne 0x4681d9
mov ecx, dword [eax + 4]
mov dl, byte [ecx + 4]
test dl, dl
jne 0x4668e5
mov edx, ecx
add edx, 8
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.0046b300
add esp, 8
mov esi, dword [esp + 0x38]
push esi
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x12278], 0x13
call fcn.00463600
push eax
lea ecx, [esi + 0x120]
mov byte [esp + 0x12278], 0x14
call fcn.00465f80
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x12274], 0x13
call fcn.00463150
mov ecx, dword [esi + 0x124]
mov eax, dword [ecx + 4]
add eax, 8
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0xd8]
call fcn.0045ff30
push eax
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esi + 0x12c]
mov byte [esp + 0x1227c], 0x15
call fcn.004644d0
mov cl, byte [eax + 4]
test cl, cl
lea ecx, [esp + 0xd0]
sete bl
mov byte [esp + 0x12274], 0x13
call fcn.00406270
test bl, bl
je 0x466a44
push str.Layer_Already_Exists
lea ecx, [esp + 0x9c]
call fcn.00406880
lea edx, [esp + 0x98]
mov byte [esp + 0x12274], 0x16
push edx
mov ecx, esi
call fcn.004620f0
lea ecx, [esp + 0x98]
call fcn.00406270
lea ecx, [esp + 0xb4]
call fcn.00406270
lea ecx, [esp + 0x54]
call fcn.00406270
lea ecx, [esp + 0x3c]
mov dword [esp + 0x12274], 0xffffffff
call fcn.00462050
mov al, 1
mov ecx, dword [esp + 0x1226c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x12268
ret 4
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466a98
lea eax, [esp + 0x58]
push str.CreateLayerFrom
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466bde
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov eax, dword [ecx + 4]
mov dl, byte [eax + 4]
test dl, dl
jne 0x4668e5
mov eax, dword [ecx + 8]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 4]
add edx, 8
push edx
lea eax, [esp + 0xb8]
push eax
call fcn.0046b300
add esp, 8
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x12278], 0x17
call fcn.00464e00
mov esi, dword [esp + 0x38]
push eax
lea ecx, [esi + 0x120]
mov byte [esp + 0x12278], 0x18
call fcn.00465f80
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x12274], 0x17
call fcn.00463150
mov edx, dword [esi + 0x124]
mov eax, dword [edx + 4]
add eax, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0xd8]
call fcn.0045ff30
push eax
lea edx, [esp + 0x34]
push edx
lea ecx, [esi + 0x12c]
mov byte [esp + 0x1227c], 0x19
call fcn.004644d0
mov cl, byte [eax + 4]
test cl, cl
lea ecx, [esp + 0xd0]
sete bl
mov byte [esp + 0x12274], 0x17
call fcn.00406270
test bl, bl
je 0x466a44
push str.Layer_Already_Exists
lea ecx, [esp + 0x9c]
call fcn.00406880
lea eax, [esp + 0x98]
mov byte [esp + 0x12274], 0x1a
push eax
jmp 0x466a31
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466bec
lea eax, [esp + 0x58]
push str.LayerRequireTags
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466cd7
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x1b
call fcn.00462490
test al, al
je 0x466ccd
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x20]
push ecx
push eax
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x466ccd
lea ecx, [esp + 0x20]
xor edi, edi
call fcn.00405f40
test eax, eax
jbe 0x467fdb
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
add ebx, 4
lea ecx, [esp + 0xd0]
push esi
push ecx
call fcn.0046b300
add esp, 8
push eax
mov ecx, ebx
mov byte [esp + 0x12278], 0x1c
call fcn.004656e0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x12274], 0x1b
call fcn.00406270
lea ecx, [esp + 0x20]
inc edi
add esi, 0x1c
call fcn.00405f40
cmp edi, eax
jb 0x466c82
jmp 0x467fdb
mov byte [esp + 0x13], 1
jmp 0x467fdb
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466ce5
lea eax, [esp + 0x58]
push str.LayerExcludeTags
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466dcb
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x1d
call fcn.00462490
test al, al
je 0x466ccd
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x20]
push ecx
push eax
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x466ccd
lea ecx, [esp + 0x20]
xor edi, edi
call fcn.00405f40
test eax, eax
jbe 0x467fdb
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
add ebx, 0x14
jmp 0x466d80
lea ecx, [esp + 0xd0]
push esi
push ecx
call fcn.0046b300
add esp, 8
push eax
mov ecx, ebx
mov byte [esp + 0x12278], 0x1e
call fcn.004656e0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x12274], 0x1d
call fcn.00406270
lea ecx, [esp + 0x20]
inc edi
add esi, 0x1c
call fcn.00405f40
cmp edi, eax
jb 0x466d80
jmp 0x467fdb
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466dd9
lea eax, [esp + 0x58]
push str.LayerPointRange
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466ec0
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 4
jne 0x4681d9
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov dl, byte [ecx + 4]
test dl, dl
jne 0x4668e5
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 4]
test cl, cl
jne 0x4668e5
mov edx, dword [eax + 8]
lea ecx, [esp + 0x18]
push ecx
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 0xc]
lea eax, [esp + 0x94]
push eax
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x12058], ecx
mov edx, dword [esp + 0x94]
mov dword [eax + 0x1205c], edx
jmp 0x466a50
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466ece
lea eax, [esp + 0x58]
push str.LayerSetPointSize
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x466f66
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov ecx, dword [ecx + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 8]
mov cl, byte [edx + 4]
test cl, cl
jne 0x4668e5
lea ecx, [esp + 0x18]
push ecx
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x12060], ecx
jmp 0x466a50
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x466f74
lea eax, [esp + 0x58]
push str.LayerSetImage
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x46713e
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0xb0], edi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], 0
mov eax, dword [ecx + 4]
lea edx, [esp + 0x18]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x1f
call fcn.00462490
test al, al
je 0x467120
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x98]
push ecx
push eax
mov ecx, ebp
call fcn.00462350
test al, al
je 0x467120
lea ecx, [ebp + 0x138]
push ecx
lea edx, [esp + 0xd4]
push edx
call fcn.0046bd10
push eax
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xc4]
push ecx
mov byte [esp + 0x12288], 0x20
call fcn.0046b4f0
add esp, 0x14
lea ecx, [esp + 0xd0]
mov byte [esp + 0x12274], 0x22
call fcn.00406270
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x18]
lea edi, [ebp + 0x114]
push eax
mov ecx, edi
call fcn.0045fec0
mov eax, dword [ebp + 0x118]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
je 0x4670a0
mov ecx, dword [ecx + 0x28]
mov edx, dword [esp + 0x18]
mov dword [edx + 0x12044], ecx
lea ecx, [esp + 0xb4]
call fcn.00406270
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 1
call fcn.00406270
jmp 0x4668d9
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0xb4]
push eax
call fcn.00443a20
mov esi, eax
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x54]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0xb8]
push edx
lea ecx, [esp + 0x7c]
mov dword [eax + 0x12044], esi
mov dword [esp + 0x1c], esi
call fcn.0045ff30
push eax
lea eax, [esp + 0x34]
push eax
mov ecx, edi
mov byte [esp + 0x1227c], 0x23
call fcn.004644d0
lea ecx, [esp + 0x74]
call fcn.00406270
lea ecx, [esp + 0xb4]
call fcn.00406270
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 1
call fcn.00406270
jmp 0x4668d9
lea ecx, [esp + 0x98]
mov byte [esp + 0x13], 1
mov byte [esp + 0x12274], 1
call fcn.00406270
jmp 0x4668d9
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x46714c
lea eax, [esp + 0x58]
push str.LayerSetDrawMode
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x4671f7
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov eax, dword [ecx + 4]
lea edx, [esp + 0x18]
push edx
push eax
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov dl, byte [ecx + 4]
test dl, dl
jne 0x4668e5
lea edx, [esp + 0x14]
push edx
mov eax, ecx
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov eax, dword [esp + 0x14]
cmp eax, ebx
jl 0x4668e5
cmp eax, 1
jg 0x4668e5
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x12048], eax
jmp 0x466a50
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x467205
lea eax, [esp + 0x58]
push str.LayerSetColorMult
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x46731f
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x25
call fcn.00462490
test al, al
je 0x467414
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x74]
push ecx
push eax
mov ecx, ebp
call fcn.00465c80
test al, al
je 0x467414
mov esi, dword [esp + 0x78]
cmp esi, ebx
je 0x467414
mov eax, dword [esp + 0x7c]
sub eax, esi
sar eax, 3
cmp eax, 4
jne 0x467414
fld qword [esi + 0x18]
fmul qword [0x4cb7f8]
call fcn.0049f6d4
fld qword [esi + 0x10]
fmul qword [0x4cb7f8]
push eax
call fcn.0049f6d4
fld qword [esi + 8]
fmul qword [0x4cb7f8]
push eax
call fcn.0049f6d4
fld qword [esi]
fmul qword [0x4cb7f8]
push eax
call fcn.0049f6d4
push eax
lea ecx, [esp + 0xc4]
call fcn.0043fb20
mov ecx, dword [esp + 0x14]
add ecx, 0x12024
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x12274], 1
call fcn.00440590
jmp 0x4668d9
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x46732d
lea eax, [esp + 0x58]
push str.LayerSetColorAdd
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x46742f
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x26
call fcn.00462490
test al, al
je 0x467414
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x74]
push ecx
push eax
mov ecx, ebp
call fcn.00465c80
test al, al
je 0x467414
mov esi, dword [esp + 0x78]
cmp esi, ebx
je 0x467414
mov eax, dword [esp + 0x7c]
sub eax, esi
sar eax, 3
cmp eax, 4
jne 0x467414
fld qword [esi + 0x18]
fmul qword [0x4cb7f8]
call fcn.0049f6d4
fld qword [esi + 0x10]
fmul qword [0x4cb7f8]
push eax
call fcn.0049f6d4
fld qword [esi + 8]
fmul qword [0x4cb7f8]
push eax
call fcn.0049f6d4
fld qword [esi]
fmul qword [0x4cb7f8]
push eax
call fcn.0049f6d4
push eax
lea ecx, [esp + 0xc4]
call fcn.0043fb20
mov ecx, dword [esp + 0x14]
add ecx, 0x12034
jmp 0x4672f3
lea ecx, [esp + 0x74]
mov byte [esp + 0x13], 1
mov byte [esp + 0x12274], 1
call fcn.00440590
jmp 0x4668d9
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x46743d
lea eax, [esp + 0x58]
push str.LayerSetAscent
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x4674d7
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov dl, byte [ecx + 4]
test dl, dl
jne 0x4668e5
lea edx, [esp + 0x18]
push edx
mov eax, ecx
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x12064], edx
jmp 0x466a50
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x4674e5
lea eax, [esp + 0x58]
push str.LayerSetAscentPadding
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x46757d
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov ecx, dword [ecx + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 8]
mov cl, byte [edx + 4]
test cl, cl
jne 0x4668e5
lea ecx, [esp + 0x18]
push ecx
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x12068], ecx
jmp 0x466a50
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x46758b
lea eax, [esp + 0x58]
push str.LayerSetLineSpacingOffset
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x467625
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov dl, byte [ecx + 4]
test dl, dl
jne 0x4668e5
lea edx, [esp + 0x18]
push edx
mov eax, ecx
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x12074], edx
jmp 0x466a50
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x467633
lea eax, [esp + 0x58]
push str.LayerSetOffset
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x467706
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov ecx, dword [ecx + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov ecx, ebp
mov byte [esp + 0x1227c], 0x27
call fcn.00462490
test al, al
je 0x4676eb
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
lea edx, [esp + 0x74]
push edx
push ecx
mov ecx, ebp
call fcn.00465b30
test al, al
je 0x4676eb
mov ecx, dword [esp + 0x78]
cmp ecx, ebx
je 0x4676eb
mov eax, dword [esp + 0x7c]
sub eax, ecx
sar eax, 2
cmp eax, 2
jne 0x4676eb
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x1204c], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0x12050], ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x12274], 1
call fcn.00440590
jmp 0x4668d9
lea ecx, [esp + 0x74]
mov byte [esp + 0x13], 1
mov byte [esp + 0x12274], 1
call fcn.00440590
jmp 0x4668d9
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x467714
lea eax, [esp + 0x58]
push str.LayerSetCharWidths
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x467842
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 4
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov eax, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x29
call fcn.00462490
test al, al
je 0x467fcd
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x20]
push ecx
push eax
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x467fcd
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0xc]
lea ecx, [esp + 0x74]
push ecx
push eax
mov ecx, ebp
call fcn.00465b30
test al, al
je 0x467fcd
mov ebp, dword [esp + 0x78]
test ebp, ebp
jne 0x4677c7
xor esi, esi
jmp 0x4677d0
mov esi, dword [esp + 0x7c]
sub esi, ebp
sar esi, 2
lea ecx, [esp + 0x20]
call fcn.00405f40
cmp eax, esi
jne 0x467838
lea ecx, [esp + 0x20]
xor edi, edi
call fcn.00405f40
test eax, eax
jbe 0x467fd2
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esi + 0x14], 1
jne 0x46781d
push 0
mov ecx, esi
call fcn.00444580
movzx eax, byte [eax]
mov edx, dword [ebp + edi*4]
lea ecx, [eax + eax*8]
shl ecx, 5
mov dword [ecx + ebx + 0x13c], edx
jmp 0x467822
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x20]
inc edi
add esi, 0x1c
call fcn.00405f40
cmp edi, eax
jb 0x4677f8
jmp 0x467fd2
mov byte [esp + 0x1f], 1
jmp 0x467fd2
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x467850
lea eax, [esp + 0x58]
push str.LayerSetSpacing
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x46792b
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x4681d9
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov ecx, dword [ecx + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov ecx, ebp
mov byte [esp + 0x1227c], 0x2a
call fcn.00462490
test al, al
je 0x46790d
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 8]
mov cl, byte [edx + 4]
test cl, cl
jne 0x46790d
lea ecx, [esp + 0x18]
push ecx
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x46790d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x12054], ecx
lea ecx, [esp + 0xb4]
mov byte [esp + 0x12274], 1
call fcn.00440590
jmp 0x4668d9
lea ecx, [esp + 0xb4]
mov byte [esp + 0x13], 1
mov byte [esp + 0x12274], 1
call fcn.00440590
jmp 0x4668d9
cmp dword [esp + 0x6c], esi
mov eax, dword [esp + 0x58]
jae 0x467939
lea eax, [esp + 0x58]
push str.LayerSetImageMap
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x467cb9
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x4681d9
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 2
cmp eax, 4
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 0x2b
call fcn.004635c0
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x18]
push edx
push ecx
mov ecx, ebp
mov byte [esp + 0x1227c], 0x2c
call fcn.00462490
test al, al
je 0x467c9b
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
lea edx, [esp + 0x20]
push edx
push ecx
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x467c9b
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x98]
push edx
push ecx
mov ecx, ebp
call fcn.004652b0
test al, al
je 0x467c9b
mov eax, dword [esp + 0xa4]
cmp eax, ebx
jne 0x4679fb
xor esi, esi
jmp 0x467a07
mov esi, dword [esp + 0xa8]
sub esi, eax
sar esi, 2
lea ecx, [esp + 0x20]
call fcn.00405f40
cmp eax, esi
jne 0x467c7d
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x12044]
cmp ecx, ebx
je 0x467c47
call fcn.00476fe0
mov ecx, dword [edi + 0x12044]
mov dword [esp + 0x14], eax
call fcn.00476ff0
xor esi, esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x94], esi
call fcn.00405f40
test eax, eax
jbe 0x467b99
mov edx, dword [esp + 0x24]
mov dword [esp + 0x70], edx
jmp 0x467a70
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x14], 1
mov byte [esp + 0x12274], 0x2d
jne 0x467b67
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x74]
push ecx
push eax
mov ecx, ebp
call fcn.00465b30
test al, al
je 0x467b67
lea ecx, [esp + 0x74]
call fcn.0045f210
cmp eax, 4
jne 0x467b67
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0xc4]
call fcn.0042f150
mov edi, dword [esp + 0xb4]
cmp edi, ebx
jl 0x467be2
mov esi, dword [esp + 0xb8]
test esi, esi
jl 0x467be2
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x14]
lea eax, [ebx + edi]
cmp eax, ecx
jg 0x467be2
mov ebp, dword [esp + 0xc0]
mov eax, dword [esp + 0x30]
lea ecx, [esi + ebp]
cmp ecx, eax
jg 0x467be2
mov ecx, dword [esp + 0x70]
push 0
call fcn.00444580
movzx eax, byte [eax]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x18]
shl edx, 5
lea ecx, [edx + eax + 0x24]
mov dword [ecx], edi
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x94]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebp
mov ebp, dword [esp + 0x38]
mov edi, eax
xor ebx, ebx
jmp 0x467b6c
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x74]
call fcn.00440590
mov edx, dword [esp + 0x70]
add edx, 0x1c
inc esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x94], esi
mov dword [esp + 0x70], edx
call fcn.00405f40
cmp esi, eax
jb 0x467a70
mov dword [edi + 0x12070], ebx
lea ecx, [edi + 0x30]
mov edx, pe_nt_image_headers32
jmp 0x467bb0
mov eax, dword [ecx]
cmp eax, dword [edi + 0x12070]
jle 0x467bc0
mov dword [edi + 0x12070], eax
add ecx, 0x120
dec edx
jne 0x467bb0
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 0x2b
call fcn.00462050
jmp 0x4668c8
push str.Image_rectangle_out_of_bounds
lea ecx, [esp + 0xb8]
call fcn.00406880
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0xb4]
push edx
mov byte [esp + 0x12278], 0x2e
call fcn.004620f0
lea ecx, [esp + 0xb4]
call fcn.00406270
lea ecx, [esp + 0x74]
call fcn.00440590
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 0x2b
call fcn.00462050
lea ecx, [esp + 0x20]
call fcn.00407800
lea ecx, [esp + 0x54]
jmp 0x468294
push str.Layer_image_not_set
lea ecx, [esp + 0xb8]
call fcn.00406880
lea eax, [esp + 0xb4]
push eax
mov ecx, ebp
mov byte [esp + 0x12278], 0x2f
call fcn.004620f0
lea ecx, [esp + 0xb4]
call fcn.00406270
jmp 0x467c21
lea ecx, [esp + 0x98]
mov byte [esp + 0x1f], 1
mov byte [esp + 0x12274], 0x2b
call fcn.00462050
jmp 0x4668c8
lea ecx, [esp + 0x98]
mov byte [esp + 0x13], 1
mov byte [esp + 0x12274], 0x2b
call fcn.00462050
jmp 0x4668c8
push str.LayerSetCharOffsets
lea ecx, [esp + 0x58]
call fcn.00405f30
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x467ea3
lea ecx, [esp + 0x44]
call fcn.0045f210
cmp eax, 4
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 0x30
call fcn.004635c0
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x30]
push ecx
push eax
mov ecx, ebp
mov byte [esp + 0x1227c], 0x31
call fcn.00462490
test al, al
je 0x467e85
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x20]
push ecx
push eax
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x467e85
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0xc]
lea ecx, [esp + 0x98]
push ecx
push eax
mov ecx, ebp
call fcn.004652b0
test al, al
je 0x467e85
lea ecx, [esp + 0x20]
call fcn.00405f40
lea ecx, [esp + 0xa0]
mov esi, eax
call fcn.0045f210
cmp esi, eax
jne 0x467e67
xor esi, esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], esi
call fcn.00405f40
test eax, eax
jbe 0x467e8a
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
xor edi, edi
lea esp, [esp]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
cmp dword [ebp + 0x14], 1
mov byte [esp + 0x12274], 0x32
jne 0x467e23
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x3c]
push eax
call fcn.00465b30
test al, al
je 0x467e23
lea ecx, [esp + 0x74]
call fcn.0045f210
cmp eax, 2
jne 0x467e23
mov eax, dword [esp + 0x78]
mov esi, dword [eax + 4]
mov edi, dword [eax]
push 0
mov ecx, ebp
call fcn.00444580
movzx eax, byte [eax]
lea ecx, [eax + eax*8]
shl ecx, 5
mov dword [ecx + ebx + 0x34], edi
mov dword [ecx + ebx + 0x38], esi
mov esi, dword [esp + 0x18]
xor edi, edi
jmp 0x467e28
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x74]
call fcn.00440590
inc esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], esi
add ebp, 0x1c
call fcn.00405f40
cmp esi, eax
jb 0x467db0
mov ebp, dword [esp + 0x38]
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 0x30
call fcn.00462050
jmp 0x4668c8
lea ecx, [esp + 0x98]
mov byte [esp + 0x1f], 1
mov byte [esp + 0x12274], 0x30
call fcn.00462050
jmp 0x4668c8
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 0x30
call fcn.00462050
jmp 0x4668c8
push str.LayerSetKerningPairs
lea ecx, [esp + 0x58]
call fcn.00405f30
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x467ff5
lea ecx, [esp + 0x44]
call fcn.0045f210
cmp eax, 4
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x30]
push edx
push ecx
mov ecx, ebp
mov byte [esp + 0x1227c], 0x34
call fcn.00462490
test al, al
je 0x467fcd
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
lea edx, [esp + 0x20]
push edx
push ecx
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x467fcd
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x74]
push edx
push ecx
mov ecx, ebp
call fcn.00465b30
test al, al
je 0x467fcd
lea ecx, [esp + 0x74]
call fcn.0045f210
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.00405f40
cmp eax, esi
jne 0x467838
lea ecx, [esp + 0x20]
xor ebp, ebp
call fcn.00405f40
test eax, eax
jbe 0x467fd2
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x78]
mov edi, edi
cmp dword [esi + 0x14], 2
jne 0x467fb5
push 0
mov ecx, esi
call fcn.00444580
push 1
mov ecx, esi
mov edi, eax
call fcn.00444580
movzx ecx, byte [edi]
movzx eax, byte [eax]
lea edx, [ecx + ecx*8]
mov ecx, dword [esp + 0x30]
shl edx, 5
add ecx, edx
mov dl, byte [ebx + ebp*4]
mov byte [eax + ecx + 0x3c], dl
jmp 0x467fba
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x20]
inc ebp
add esi, 0x1c
call fcn.00405f40
cmp ebp, eax
jb 0x467f80
jmp 0x467fd2
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x74]
call fcn.00440590
lea ecx, [esp + 0x20]
mov byte [esp + 0x12274], 1
call fcn.00407800
mov ebp, dword [esp + 0x38]
jmp 0x4668d9
push str.LayerSetBaseOrder
lea ecx, [esp + 0x58]
call fcn.00405f30
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x46808c
lea ecx, [esp + 0x44]
call fcn.0045f210
cmp eax, 3
jne 0x4681d9
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 4]
lea eax, [esp + 0x30]
push eax
push edx
mov ecx, ebp
call fcn.00462490
test al, al
je 0x4668e5
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov dl, byte [ecx + 4]
test dl, dl
jne 0x4668e5
lea edx, [esp + 0x14]
push edx
mov eax, ecx
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00406760
call fcn.0046a950
add esp, 0x20
test al, al
je 0x4668e5
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x12078], edx
jmp 0x466a50
push str.LayerSetCharOrders
lea ecx, [esp + 0x58]
call fcn.00405f30
push eax
call fcn.004b21a1
add esp, 8
test eax, eax
jne 0x468242
lea ecx, [esp + 0x44]
call fcn.0045f210
cmp eax, 4
jne 0x4681d9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 4]
lea eax, [esp + 0x30]
push eax
push edx
mov ecx, ebp
mov byte [esp + 0x1227c], 0x36
call fcn.00462490
test al, al
je 0x4681c6
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 8]
lea eax, [esp + 0x20]
push eax
push edx
mov ecx, ebp
call fcn.004658c0
test al, al
je 0x4681c6
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 0xc]
lea eax, [esp + 0x74]
push eax
push edx
mov ecx, ebp
call fcn.00465b30
test al, al
je 0x4681c6
lea ecx, [esp + 0x74]
call fcn.0045f210
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.00405f40
cmp eax, esi
jne 0x4681b3
lea ecx, [esp + 0x20]
xor edi, edi
call fcn.00405f40
test eax, eax
jbe 0x4681cb
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x30]
cmp dword [esi + 0x14], 1
jne 0x46818b
push 0
mov ecx, esi
call fcn.00444580
movzx eax, byte [eax]
mov ecx, dword [ebx + edi*4]
lea eax, [eax + eax*8]
shl eax, 5
mov dword [eax + ebp + 0x140], ecx
jmp 0x468190
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x20]
inc edi
add esi, 0x1c
call fcn.00405f40
cmp edi, eax
jb 0x468167
mov ebp, dword [esp + 0x38]
lea ecx, [esp + 0x74]
call fcn.00440590
jmp 0x4668c8
lea ecx, [esp + 0x74]
mov byte [esp + 0x1f], 1
call fcn.00440590
jmp 0x4668c8
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x74]
call fcn.00440590
jmp 0x4668c8
push str.Invalid_Number_of_Parameters
lea ecx, [esp + 0x9c]
call fcn.00406880
lea edx, [esp + 0x98]
mov byte [esp + 0x12274], 0x38
push edx
jmp 0x468229
mov al, byte [esp + 0x1f]
test al, al
je 0x466a50
push str.List_Size_Mismatch
lea ecx, [esp + 0x9c]
call fcn.00406880
lea ecx, [esp + 0x98]
mov byte [esp + 0x12274], 0x3b
push ecx
mov ecx, ebp
call fcn.004620f0
lea ecx, [esp + 0x98]
call fcn.00406270
lea ecx, [esp + 0x54]
jmp 0x468294
push str.Unknown_Command
lea ecx, [esp + 0x9c]
call fcn.00406880
lea edx, [esp + 0x98]
mov byte [esp + 0x12274], 0x37
push edx
jmp 0x468229
push str.Missing_Command
lea ecx, [esp + 0xd4]
call fcn.00406880
lea eax, [esp + 0xd0]
push eax
mov ecx, ebp
mov byte [esp + 0x12278], 0x3c
call fcn.004620f0
lea ecx, [esp + 0xd0]
call fcn.00406270
lea ecx, [esp + 0x3c]
mov dword [esp + 0x12274], 0xffffffff
call fcn.00462050
xor al, al
jmp 0x466a6f