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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5e8df9
mov eax, dword fs:[0]
push eax
sub esp, 0x578
mov eax, dword [0x6396a8]
xor eax, esp
mov dword [esp + 0x570], eax
push ebx
push esi
push edi
mov eax, dword [0x6396a8]
xor eax, esp
push eax
lea eax, [esp + 0x588]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xc]
add esi, 8
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], esi
je 0x4295c1
mov ecx, dword [esi + 8]
sub ecx, eax
sar ecx, 2
jne 0x4295c6
call fcn.005b2af7
mov eax, dword [esi + 4]
mov eax, dword [eax]
push 0xffffffffffffffff
add eax, 8
push ebx
mov edi, 0xf
push eax
lea ecx, [esp + 0x534]
mov dword [esp + 0x54c], edi
mov dword [esp + 0x548], ebx
mov byte [esp + 0x538], bl
call fcn.0043b440
mov dword [esp + 0x590], ebx
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
mov byte [esp + 0x17], 0
mov byte [esp + 0x2f], 0
jae 0x429621
lea eax, [esp + 0x52c]
push str.Define
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x4298b2
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x42c081
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x42c081
cmp ecx, ebx
je 0x429664
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp eax, 1
ja 0x429669
call fcn.005b2af7
mov edx, dword [esi + 4]
mov eax, dword [edx + 4]
cmp byte [eax + 4], 0
jne 0x429894
mov ecx, edx
cmp ecx, ebx
je 0x42968c
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp eax, 1
ja 0x429691
call fcn.005b2af7
mov eax, dword [esi + 4]
mov ebx, dword [eax + 4]
add eax, 4
add ebx, 8
lea edi, [esp + 0x544]
call fcn.00470380
mov bl, 1
mov eax, edi
mov byte [esp + 0x590], bl
call fcn.004e7800
test al, al
jne 0x429863
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x58]
add edi, 0x9c
push ecx
lea ebx, [esp + 0x548]
mov dword [esp + 0x28], edi
call fcn.00439e00
mov ebx, dword [esp + 0x58]
test ebx, ebx
mov edx, dword [edi + 4]
mov dword [esp + 0x34], edx
je 0x4296f3
cmp ebx, edi
je 0x4296f8
call fcn.005b2af7
mov edi, dword [esp + 0x5c]
cmp edi, dword [esp + 0x34]
je 0x429731
lea esi, [esp + 0x58]
call fcn.0043a540
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x42971c
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
mov edx, dword [esp + 0x24]
push edi
push ebx
lea ecx, [esp + 0x60]
push ecx
push edx
call fcn.00439b10
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov eax, dword [eax]
cmp byte [eax + 4], 0
je 0x4297d2
push 0x18
call fcn.005b2b20
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x590], 2
je 0x42976b
push eax
call fcn.00428550
mov ebx, eax
jmp 0x42976d
xor ebx, ebx
mov esi, dword [esp + 0x28]
mov edi, 2
mov byte [esp + 0x590], 1
call fcn.00439930
mov ecx, dword [eax]
push ebx
push ecx
mov ecx, dword [esp + 0x20]
call fcn.004e79e0
test al, al
jne 0x4297ae
test ebx, ebx
je 0x4297a2
mov edx, dword [ebx]
mov eax, dword [edx]
push 1
mov ecx, ebx
call eax
lea ecx, [esp + 0x544]
jmp 0x42c159
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x548]
push edx
lea esi, [esp + 0x6c]
mov dword [esp + 0x24], ebx
call fcn.0043a610
mov byte [esp + 0x590], 3
jmp 0x429848
mov esi, dword [esp + 0x28]
call fcn.00439930
mov esi, dword [eax]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
lea eax, [esi + 8]
push eax
call edx
test eax, eax
je 0x42981d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x548]
push edx
lea esi, [esp + 0x6c]
mov dword [esp + 0x24], eax
call fcn.0043a610
mov byte [esp + 0x590], 4
jmp 0x429848
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x548]
push edx
lea esi, [esp + 0x6c]
mov dword [esp + 0x24], eax
call fcn.0043a610
mov byte [esp + 0x590], 5
mov ecx, dword [esp + 0x24]
push eax
lea eax, [esp + 0x5c]
push eax
push ecx
call fcn.004399b0
lea esi, [esp + 0x64]
call fcn.0042c1a0
jmp 0x429867
mov byte [esp + 0x17], bl
mov byte [esp + 0x590], 0
cmp dword [esp + 0x55c], 0x10
jb 0x429889
mov edx, dword [esp + 0x548]
push edx
call fcn.005b28f2
add esp, 4
cmp byte [esp + 0x17], 0
je 0x42c0ed
push str.Invalid_Paramater_Type
lea ecx, [esp + 0x564]
call fcn.00438a30
mov byte [esp + 0x590], 0x43
jmp 0x42c13f
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x4298ca
lea eax, [esp + 0x52c]
push str.CreateHorzSpanRectList
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x429e47
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x42c081
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp eax, 4
jne 0x42c081
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
cmp ecx, ebx
mov byte [esp + 0x590], 7
je 0x429936
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp eax, 1
ja 0x42993b
call fcn.005b2af7
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
cmp byte [ecx + 4], 0
jne 0x429e06
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0x514]
call fcn.004e8400
test al, al
je 0x429e06
mov ecx, dword [esp + 0x510]
cmp ecx, ebx
je 0x429e06
mov eax, dword [esp + 0x514]
sub eax, ecx
sar eax, 2
cmp eax, 4
jne 0x429e06
mov esi, dword [esp + 0x28]
lea edi, [eax - 1]
call fcn.00439930
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea ecx, [esp + 0x40]
call fcn.004e8400
test al, al
je 0x429e06
mov edi, 1
call fcn.00439930
mov ebx, dword [eax]
add ebx, 8
lea edi, [esp + 0x560]
call fcn.00470380
mov bl, 8
mov byte [esp + 0x590], bl
xor esi, esi
push 0x18
mov dword [esp + 0x20], esi
call fcn.005b2b20
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, esi
mov byte [esp + 0x590], 9
je 0x429a0a
push eax
call fcn.00428550
mov dword [esp + 0x28], eax
jmp 0x429a0e
mov dword [esp + 0x28], esi
mov byte [esp + 0x590], bl
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov dword [esp + 0x24], esi
je 0x429d51
mov eax, dword [esp + 0x40]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x429d51
push 0x18
call fcn.005b2b20
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x590], 0xa
je 0x429a5a
push eax
call fcn.00428550
mov edi, eax
jmp 0x429a5c
xor edi, edi
mov esi, dword [esp + 0x28]
mov byte [esp + 0x590], bl
add esi, 8
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], edi
call fcn.00439950
mov dword [esp + 0x55c], 0xf
mov dword [esp + 0x558], 0
mov byte [esp + 0x548], 0
mov bl, 0xb
push 0
lea ecx, [esp + 0x510]
mov byte [esp + 0x594], bl
call fcn.00439660
mov eax, dword [eax]
add eax, dword [esp + 0x1c]
lea ecx, [esp + 0x64]
push eax
push 0x5ff930
push ecx
call fcn.00471f90
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x550]
mov byte [esp + 0x59c], 0xc
call fcn.0043b440
lea ecx, [esp + 0x64]
mov byte [esp + 0x590], bl
call fcn.00525310
push 0x24
call fcn.005b2b20
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
test esi, esi
mov byte [esp + 0x590], 0xd
je 0x429b27
sub esp, 0x1c
lea edx, [esp + 0x560]
mov ecx, esp
mov dword [esp + 0x70], esp
push edx
call fcn.00438aa0
call fcn.004283a0
jmp 0x429b29
xor eax, eax
mov byte [esp + 0x590], bl
add edi, 8
lea ebx, [esp + 0x20]
mov esi, edi
mov dword [esp + 0x20], eax
call fcn.00439950
push 1
lea ecx, [esp + 0x510]
call fcn.00439660
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x68]
push 0x5ff930
push ecx
call fcn.00471f90
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x550]
mov byte [esp + 0x59c], 0xe
call fcn.0043b440
mov bl, 0xb
lea ecx, [esp + 0x64]
mov byte [esp + 0x590], bl
call fcn.00525310
push 0x24
call fcn.005b2b20
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
test esi, esi
mov byte [esp + 0x590], 0xf
je 0x429bc9
sub esp, 0x1c
lea edx, [esp + 0x560]
mov ecx, esp
mov dword [esp + 0x70], esp
push edx
call fcn.00438aa0
call fcn.004283a0
jmp 0x429bcb
xor eax, eax
mov byte [esp + 0x590], bl
lea ebx, [esp + 0x20]
mov esi, edi
mov dword [esp + 0x20], eax
call fcn.00439950
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esp + 0x3c]
call fcn.00439660
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x68]
push 0x5ff930
push edx
call fcn.00471f90
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x550]
mov byte [esp + 0x59c], 0x10
call fcn.0043b440
mov bl, 0xb
lea ecx, [esp + 0x64]
mov byte [esp + 0x590], bl
call fcn.00525310
push 0x24
call fcn.005b2b20
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
test esi, esi
mov byte [esp + 0x590], 0x11
je 0x429c68
sub esp, 0x1c
lea eax, [esp + 0x560]
mov ecx, esp
mov dword [esp + 0x70], esp
push eax
call fcn.00438aa0
call fcn.004283a0
jmp 0x429c6a
xor eax, eax
mov byte [esp + 0x590], bl
lea ebx, [esp + 0x20]
mov esi, edi
mov dword [esp + 0x20], eax
call fcn.00439950
push 3
lea ecx, [esp + 0x510]
call fcn.00439660
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x68]
push 0x5ff930
push edx
call fcn.00471f90
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x550]
mov byte [esp + 0x59c], 0x12
call fcn.0043b440
mov bl, 0xb
lea ecx, [esp + 0x64]
mov byte [esp + 0x590], bl
call fcn.00525310
push 0x24
call fcn.005b2b20
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
test esi, esi
mov byte [esp + 0x590], 0x13
je 0x429d07
sub esp, 0x1c
lea eax, [esp + 0x560]
mov ecx, esp
mov dword [esp + 0x70], esp
push eax
call fcn.00438aa0
call fcn.004283a0
jmp 0x429d09
xor eax, eax
mov byte [esp + 0x590], bl
lea ebx, [esp + 0x20]
mov esi, edi
mov dword [esp + 0x20], eax
call fcn.00439950
mov esi, dword [esp + 0x24]
push esi
lea ecx, [esp + 0x3c]
call fcn.00439660
mov ecx, dword [eax]
add dword [esp + 0x1c], ecx
lea ecx, [esp + 0x544]
mov byte [esp + 0x590], 8
call fcn.00525310
add esi, 1
mov bl, 8
jmp 0x429a15
mov edi, dword [esp + 0x18]
lea edx, [esp + 0x58]
add edi, 0x9c
push edx
lea ebx, [esp + 0x564]
mov dword [esp + 0x28], edi
call fcn.00439e00
mov eax, dword [edi + 4]
mov dword [esp + 0x30], edi
lea esi, [esp + 0x30]
lea edi, [esp + 0x58]
mov dword [esp + 0x34], eax
call fcn.0043a560
test al, al
je 0x429dbd
mov esi, edi
call fcn.0043a540
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x429da4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x60]
push eax
push ecx
call fcn.00439b10
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x564]
push ecx
lea esi, [esp + 0x6c]
mov dword [esp + 0x28], edx
call fcn.0043a610
push eax
lea edx, [esp + 0x5c]
mov byte [esp + 0x594], 0x14
mov eax, dword [esp + 0x28]
push edx
push eax
call fcn.004399b0
call fcn.0042c1a0
lea ecx, [esp + 0x560]
call fcn.00525310
jmp 0x429e0b
mov byte [esp + 0x17], 1
mov eax, dword [esp + 0x3c]
xor esi, esi
cmp eax, esi
je 0x429e1e
push eax
call fcn.005b28f2
add esp, 4
mov byte [esp + 0x590], 0
mov eax, dword [esp + 0x510]
cmp eax, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
je 0x429889
push eax
jmp 0x429881
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x429e5f
lea eax, [esp + 0x52c]
push str.SetDefaultPointSize
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x429ef8
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x42c081
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp eax, 2
jne 0x42c081
lea edi, [eax - 1]
call fcn.00439930
mov ecx, dword [eax]
cmp byte [ecx + 4], 0
jne 0x429894
mov esi, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
call fcn.00439930
mov eax, dword [eax]
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov dword [edx + 0xb4], ecx
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x429f10
lea eax, [esp + 0x52c]
push str.SetCharMap
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42a085
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x42c081
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp eax, 3
jne 0x42c081
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea edi, [eax - 2]
mov byte [esp + 0x590], 0x16
call fcn.00439930
mov edx, dword [eax]
lea ecx, [esp + 0x50c]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004e80d0
test al, al
je 0x42a05e
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x38]
push edx
mov edx, dword [eax]
call fcn.004e80d0
test al, al
je 0x42a05e
lea ecx, [esp + 0x50c]
call fcn.00439f50
lea ecx, [esp + 0x38]
mov edi, eax
call fcn.00439f50
cmp edi, eax
jne 0x42a057
xor esi, esi
cmp edi, ebx
jbe 0x42a063
lea ecx, [ecx]
push esi
lea ecx, [esp + 0x510]
call fcn.00439f80
mov edi, 1
cmp dword [eax + 0x14], edi
jne 0x42a03d
push esi
lea ecx, [esp + 0x3c]
call fcn.00439f80
cmp dword [eax + 0x14], edi
jne 0x42a03d
push esi
lea ecx, [esp + 0x3c]
call fcn.00439f80
xor edi, edi
call fcn.00438bc0
push esi
lea ecx, [esp + 0x510]
mov ebx, eax
call fcn.00439f80
call fcn.00438bc0
movzx eax, byte [eax]
mov cl, byte [ebx]
mov edx, dword [esp + 0x18]
mov byte [eax + edx + 0xb8], cl
jmp 0x42a042
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x50c]
add esi, 1
call fcn.00439f50
cmp esi, eax
jb 0x429fe0
jmp 0x42a063
mov byte [esp + 0x2f], 1
jmp 0x42a063
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x38]
call fcn.0043c630
lea ecx, [esp + 0x50c]
mov byte [esp + 0x590], 0
call fcn.0043c630
jmp 0x429889
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x42a09d
lea eax, [esp + 0x52c]
push str.CreateLayer
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42a1de
mov eax, esi
call fcn.00439910
cmp eax, 2
jne 0x42c081
lea edi, [eax - 1]
call fcn.00439930
mov eax, dword [eax]
cmp byte [eax + 4], 0
jne 0x429894
mov esi, dword [esp + 0x28]
call fcn.00439930
mov ebx, dword [eax]
add ebx, 8
lea edi, [esp + 0x544]
call fcn.00470380
mov esi, dword [esp + 0x18]
push esi
lea ecx, [esp + 0x90]
push ecx
mov byte [esp + 0x598], 0x17
call fcn.00428a30
lea edi, [esi + 0x1c4]
mov ebx, edi
mov byte [esp + 0x590], 0x18
call fcn.0043a300
lea ecx, [esp + 0x8c]
mov byte [esp + 0x590], 0x17
call fcn.00428e20
call fcn.00439820
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x548]
push eax
lea esi, [esp + 0x6c]
call fcn.0043a610
mov edi, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [edi + 0x1d0]
push edx
mov byte [esp + 0x59c], 0x19
call fcn.0043a330
cmp byte [eax + 8], 0
mov byte [esp + 0x590], 0x17
sete bl
call fcn.0042c1a0
test bl, bl
je 0x42a1bf
push str.Layer_Already_Exists
lea ecx, [esp + 0x564]
call fcn.00438a30
mov byte [esp + 0x590], 0x1a
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x560]
push ecx
mov ecx, edi
call edx
lea ecx, [esp + 0x560]
call fcn.00525310
lea ecx, [esp + 0x544]
call fcn.00525310
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x42a1f6
lea eax, [esp + 0x52c]
push str.CreateLayerFrom
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42a33b
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c081
lea edi, [eax - 2]
call fcn.00439930
mov eax, dword [eax]
cmp byte [eax + 4], 0
jne 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x429894
mov edi, 1
call fcn.00439930
mov ebx, dword [eax]
add ebx, 8
lea edi, [esp + 0x544]
call fcn.00470380
lea edx, [esp + 0x8c]
mov byte [esp + 0x590], 0x1b
mov ecx, dword [esp + 0x20]
push edx
call fcn.00428ba0
mov edi, dword [esp + 0x18]
add edi, 0x1c4
mov ebx, edi
mov byte [esp + 0x590], 0x1c
call fcn.0043a300
lea ecx, [esp + 0x8c]
mov byte [esp + 0x590], 0x1b
call fcn.00428e20
call fcn.00439820
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x548]
push ecx
lea esi, [esp + 0x6c]
call fcn.0043a610
mov edi, dword [esp + 0x18]
push eax
lea edx, [esp + 0x5c]
push edx
lea eax, [edi + 0x1d0]
push eax
mov byte [esp + 0x59c], 0x1d
call fcn.0043a330
cmp byte [eax + 8], 0
mov byte [esp + 0x590], 0x1b
sete bl
call fcn.0042c1a0
test bl, bl
je 0x42a1bf
push str.Layer_Already_Exists
lea ecx, [esp + 0x564]
call fcn.00438a30
mov byte [esp + 0x590], 0x1e
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x560]
push eax
jmp 0x42a1af
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x42a353
lea eax, [esp + 0x52c]
push str.LayerRequireTags
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42a483
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c081
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
lea edi, [eax - 2]
mov byte [esp + 0x590], 0x1f
call fcn.00439930
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x42a465
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
lea ecx, [esp + 0x50c]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004e80d0
test al, al
je 0x42a465
lea ecx, [esp + 0x50c]
xor esi, esi
call fcn.00439f50
test eax, eax
jbe 0x42a46a
mov edx, dword [esp + 0x20]
add edx, 8
mov dword [esp + 0x20], edx
lea esp, [esp]
push esi
lea ecx, [esp + 0x510]
call fcn.00439f80
mov ebx, eax
lea edi, [esp + 0x64]
call fcn.00470380
mov byte [esp + 0x590], 0x20
mov ecx, dword [esp + 0x20]
push eax
call fcn.00439fd0
mov ecx, edi
mov byte [esp + 0x590], 0x1f
call fcn.00525310
lea ecx, [esp + 0x50c]
add esi, 1
call fcn.00439f50
cmp esi, eax
jb 0x42a400
lea ecx, [esp + 0x50c]
mov byte [esp + 0x590], 0
call fcn.0043c630
jmp 0x429889
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x50c]
mov byte [esp + 0x590], 0
call fcn.0043c630
jmp 0x429889
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x42a49b
lea eax, [esp + 0x52c]
push str.LayerExcludeTags
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42a5b5
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c081
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
lea edi, [eax - 2]
mov byte [esp + 0x590], 0x21
call fcn.00439930
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x42a465
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
lea ecx, [esp + 0x50c]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004e80d0
test al, al
je 0x42a465
lea ecx, [esp + 0x50c]
xor esi, esi
call fcn.00439f50
test eax, eax
jbe 0x42a46a
mov edx, dword [esp + 0x20]
add edx, 0x18
mov dword [esp + 0x20], edx
jmp 0x42a550
push esi
lea ecx, [esp + 0x510]
call fcn.00439f80
mov ebx, eax
lea edi, [esp + 0x64]
call fcn.00470380
mov byte [esp + 0x590], 0x22
mov ecx, dword [esp + 0x20]
push eax
call fcn.00439fd0
mov ecx, edi
mov byte [esp + 0x590], 0x21
call fcn.00525310
lea ecx, [esp + 0x50c]
add esi, 1
call fcn.00439f50
cmp esi, eax
jb 0x42a550
lea ecx, [esp + 0x50c]
mov byte [esp + 0x590], 0
call fcn.0043c630
jmp 0x429889
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x42a5cd
lea eax, [esp + 0x52c]
push str.LayerPointRange
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42a6d4
mov eax, esi
call fcn.00439910
cmp eax, 4
jne 0x42c081
lea edi, [eax - 3]
call fcn.00439930
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [eax]
cmp byte [ecx + 4], 0
jne 0x429894
mov edi, 3
call fcn.00439930
mov edx, dword [eax]
cmp byte [edx + 4], 0
jne 0x429894
lea eax, [esp + 0x1c]
push eax
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
lea eax, [esp + 0x24]
push eax
mov edi, 3
call fcn.00439930
mov edx, dword [eax]
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x45c], ecx
lea ecx, [esp + 0x528]
mov dword [eax + 0x460], edx
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x42a6ec
lea eax, [esp + 0x52c]
push str.LayerSetPointSize
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42a79b
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c081
lea edi, [eax - 2]
call fcn.00439930
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [eax]
cmp byte [ecx + 4], 0
jne 0x429894
lea edx, [esp + 0x1c]
push edx
call fcn.00439930
mov eax, dword [eax]
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x464], edx
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], 0x10
mov eax, dword [esp + 0x52c]
jae 0x42a7b3
lea eax, [esp + 0x52c]
push str.LayerSetImage
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42aa1a
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c081
mov dword [esp + 0x55c], edi
mov dword [esp + 0x558], 0
mov byte [esp + 0x548], 0
lea edi, [eax - 2]
mov byte [esp + 0x590], 0x23
call fcn.00439930
mov eax, dword [eax]
mov ebx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
mov edx, ebx
call fcn.00429440
test al, al
je 0x42a9fc
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
lea ecx, [esp + 0x544]
push ecx
mov ecx, ebx
call fcn.004e7fb0
test al, al
je 0x42a9fc
lea eax, [ebx + 0x1dc]
lea esi, [esp + 0x38]
call fcn.00471be0
mov esi, eax
lea edx, [esp + 0x544]
push edx
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x598], 0x24
call fcn.00470750
push esi
mov edx, eax
lea ecx, [esp + 0x518]
mov byte [esp + 0x59c], 0x25
call fcn.00470c70
add esp, 0xc
lea ecx, [esp + 0x64]
call fcn.00525310
lea ecx, [esp + 0x38]
mov byte [esp + 0x590], 0x28
call fcn.00525310
lea ecx, [esp + 0x50c]
push ecx
lea edx, [esp + 0x34]
lea edi, [ebx + 0x1b8]
push edx
mov ecx, edi
call fcn.0043a260
mov eax, dword [edi + 4]
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edi
call fcn.0043a5b0
test al, al
je 0x42a915
lea ecx, [esp + 0x30]
call fcn.0043a580
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x50c]
mov dword [eax + 0x448], edx
call fcn.00525310
lea ecx, [esp + 0x544]
mov byte [esp + 0x590], 0
call fcn.00525310
jmp 0x429889
mov ecx, dword [ebx + 0xb0]
mov edx, dword [ecx]
mov edx, dword [edx + 0x104]
push 1
lea eax, [esp + 0x510]
push eax
call edx
mov esi, eax
test esi, esi
je 0x42a9ae
mov eax, dword [esi]
mov edx, dword [eax + 0x88]
mov ecx, esi
call edx
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x510]
push edx
lea ecx, [esp + 0x568]
mov dword [eax + 0x448], esi
mov dword [esp + 0x28], esi
call fcn.0043a5e0
push eax
lea eax, [esp + 0x5c]
push eax
mov ecx, edi
mov byte [esp + 0x598], 0x29
call fcn.0043a0d0
lea ecx, [esp + 0x560]
call fcn.00525310
lea ecx, [esp + 0x50c]
call fcn.00525310
lea ecx, [esp + 0x544]
mov byte [esp + 0x590], 0
call fcn.00525310
jmp 0x429889
push str.Failed_to_Load_Image
lea ecx, [esp + 0x564]
call fcn.00438a30
mov byte [esp + 0x590], 0x2a
mov edx, dword [ebx]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x560]
push eax
mov ecx, ebx
call edx
lea ecx, [esp + 0x560]
call fcn.00525310
lea ecx, [esp + 0x50c]
call fcn.00525310
lea ecx, [esp + 0x544]
jmp 0x42c159
lea ecx, [esp + 0x544]
mov byte [esp + 0x17], 1
mov byte [esp + 0x590], 0
call fcn.00525310
jmp 0x429889
mov eax, dword [esp + 0x52c]
mov edi, 0x10
cmp dword [esp + 0x540], edi
jae 0x42aa36
lea eax, [esp + 0x52c]
push str.LayerSetDrawMode
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42aaee
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
lea edi, [eax - 2]
call fcn.00439930
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
call fcn.00429440
test al, al
je 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [eax]
cmp byte [ecx + 4], 0
jne 0x429894
lea edx, [esp + 0x20]
push edx
call fcn.00439930
mov eax, dword [eax]
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov eax, dword [esp + 0x20]
cmp eax, 1
ja 0x429894
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x44c], eax
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42ab05
lea eax, [esp + 0x52c]
push str.LayerSetColorMult
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42ac72
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea edi, [eax - 2]
mov byte [esp + 0x590], 0x2b
call fcn.00439930
mov edx, dword [eax]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x28]
call fcn.00429440
test al, al
je 0x42ac57
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x38]
push ecx
push edx
push eax
call fcn.004e85a0
test al, al
je 0x42ac57
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
je 0x42ac57
mov eax, dword [esp + 0x40]
sub eax, ecx
sar eax, 3
cmp eax, 4
jne 0x42ac57
lea edi, [eax - 1]
lea esi, [esp + 0x38]
call fcn.0043a640
mov edi, 2
mov ebx, eax
call fcn.0043a640
mov edi, 1
mov dword [esp + 0x20], eax
call fcn.0043a640
xor edi, edi
mov dword [esp + 0x1c], eax
call fcn.0043a640
fld qword [ebx]
fld qword [0x613e28]
mov esi, eax
fmul st(1), st(0)
fxch st(1)
call fcn.005b3030
mov ecx, dword [esp + 0x20]
fld qword [ecx]
push eax
fmul st(1)
call fcn.005b3030
mov edx, dword [esp + 0x20]
fld qword [edx]
push eax
fmul st(1)
call fcn.005b3030
fmul qword [esi]
push eax
call fcn.005b3030
push eax
lea ecx, [esp + 0x51c]
call fcn.004049b0
mov edx, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x428], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x42c], edx
mov edx, dword [eax + 8]
mov dword [ecx + 0x430], edx
mov eax, dword [eax + 0xc]
lea esi, [esp + 0x38]
mov dword [ecx + 0x434], eax
mov byte [esp + 0x590], 0
call fcn.004662d0
jmp 0x429889
lea esi, [esp + 0x38]
mov byte [esp + 0x17], 1
mov byte [esp + 0x590], 0
call fcn.004662d0
jmp 0x429889
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42ac89
lea eax, [esp + 0x52c]
push str.LayerSetColorAdd
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42addb
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea edi, [eax - 2]
mov byte [esp + 0x590], 0x2c
call fcn.00439930
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x28]
call fcn.00429440
test al, al
je 0x42ac57
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x38]
push edx
push eax
push ecx
call fcn.004e85a0
test al, al
je 0x42ac57
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
je 0x42ac57
mov eax, dword [esp + 0x40]
sub eax, ecx
sar eax, 3
cmp eax, 4
jne 0x42ac57
lea edi, [eax - 1]
lea esi, [esp + 0x38]
call fcn.0043a640
mov edi, 2
mov ebx, eax
call fcn.0043a640
mov edi, 1
mov dword [esp + 0x20], eax
call fcn.0043a640
xor edi, edi
mov dword [esp + 0x1c], eax
call fcn.0043a640
fld qword [ebx]
fld qword [0x613e28]
mov esi, eax
fmul st(1), st(0)
fxch st(1)
call fcn.005b3030
mov edx, dword [esp + 0x20]
fld qword [edx]
push eax
fmul st(1)
call fcn.005b3030
push eax
mov eax, dword [esp + 0x24]
fld qword [eax]
fmul st(1)
call fcn.005b3030
fmul qword [esi]
push eax
call fcn.005b3030
push eax
lea ecx, [esp + 0x51c]
call fcn.004049b0
mov edx, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x438], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x43c], edx
mov edx, dword [eax + 8]
mov dword [ecx + 0x440], edx
mov eax, dword [eax + 0xc]
lea esi, [esp + 0x38]
mov dword [ecx + 0x444], eax
mov byte [esp + 0x590], 0
call fcn.004662d0
jmp 0x429889
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42adf2
lea eax, [esp + 0x52c]
push str.LayerSetAscent
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42aea1
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
lea edi, [eax - 2]
call fcn.00439930
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
cmp byte [edx + 4], 0
jne 0x429894
lea eax, [esp + 0x1c]
push eax
call fcn.00439930
mov edx, dword [eax]
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x468], ecx
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42aeb8
lea eax, [esp + 0x52c]
push str.LayerSetAscentPadding
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42af67
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
lea edi, [eax - 2]
call fcn.00439930
mov edx, dword [eax]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov eax, dword [eax]
cmp byte [eax + 4], 0
jne 0x429894
lea ecx, [esp + 0x1c]
push ecx
call fcn.00439930
mov edx, dword [eax]
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x46c], ecx
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42af7e
lea eax, [esp + 0x52c]
push str.LayerSetLineSpacingOffset
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42b02d
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
lea edi, [eax - 2]
call fcn.00439930
mov edx, dword [eax]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov eax, dword [eax]
cmp byte [eax + 4], 0
jne 0x429894
lea ecx, [esp + 0x1c]
push ecx
call fcn.00439930
mov edx, dword [eax]
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x478], ecx
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42b044
lea eax, [esp + 0x52c]
push str.LayerSetOffset
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42b14e
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
lea edi, [eax - 2]
mov byte [esp + 0x590], 0x2d
call fcn.00439930
mov edx, dword [eax]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x42b130
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x514]
call fcn.004e8400
test al, al
je 0x42b130
mov ecx, dword [esp + 0x510]
cmp ecx, ebx
je 0x42b130
mov eax, dword [esp + 0x514]
sub eax, ecx
sar eax, 2
cmp eax, edi
jne 0x42b130
push ebx
lea ecx, [esp + 0x510]
call fcn.00439660
mov edx, dword [eax]
mov esi, dword [esp + 0x20]
push 1
lea ecx, [esp + 0x510]
mov dword [esi + 0x450], edx
call fcn.00439660
mov eax, dword [eax]
lea ecx, [esp + 0x50c]
mov dword [esi + 0x454], eax
mov byte [esp + 0x590], 0
call fcn.0057d490
jmp 0x429889
lea ecx, [esp + 0x50c]
mov byte [esp + 0x17], 1
mov byte [esp + 0x590], 0
call fcn.0057d490
jmp 0x429889
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42b165
lea eax, [esp + 0x52c]
push str.LayerSetCharWidths
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42b37a
mov eax, esi
call fcn.00439910
cmp eax, 4
jne 0x42c086
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea edi, [eax - 3]
mov byte [esp + 0x590], 0x2f
call fcn.00439930
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x20]
call fcn.00429440
test al, al
je 0x42b353
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x50c]
push edx
mov edx, dword [eax]
call fcn.004e80d0
test al, al
je 0x42b353
mov edi, 3
call fcn.00439930
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x40]
call fcn.004e8400
test al, al
je 0x42b353
mov eax, dword [esp + 0x3c]
cmp eax, ebx
jne 0x42b22c
xor esi, esi
jmp 0x42b235
mov esi, dword [esp + 0x40]
sub esi, eax
sar esi, 2
lea ecx, [esp + 0x50c]
call fcn.00439f50
cmp eax, esi
jne 0x42b34c
cmp eax, ebx
mov dword [esp + 0x24], ebx
jbe 0x42b358
mov edx, dword [esp + 0x24]
push edx
lea ecx, [esp + 0x510]
call fcn.00439f80
cmp dword [eax + 0x14], 1
jne 0x42b326
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esp + 0x510]
call fcn.00439f80
xor edi, edi
call fcn.00438bc0
movsx cx, byte [eax]
mov edx, dword [esp + 0x1c]
movzx eax, cx
movzx ebx, ax
mov esi, ebx
shr esi, 8
mov edi, dword [edx + esi*4 + 0x28]
test edi, edi
jne 0x42b2f7
push 0x42404
call fcn.005b25e7
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x590], 0x30
je 0x42b2e5
push fcn.00428960
push 0x428920
push 0x100
lea edi, [eax + 4]
push 0x424
push edi
mov dword [eax], 0x100
call fcn.005b4b43
jmp 0x42b2e7
xor edi, edi
mov byte [esp + 0x590], 0x2f
mov eax, dword [esp + 0x1c]
mov dword [eax + esi*4 + 0x28], edi
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00439660
and ebx, 0x800000ff
jns 0x42b315
dec ebx
or ebx, 0xffffff00
inc ebx
mov edx, dword [eax]
imul ebx, ebx, 0x424
mov dword [ebx + edi + 0x41c], edx
jmp 0x42b32b
mov byte [esp + 0x17], 1
mov esi, dword [esp + 0x24]
add esi, 1
lea ecx, [esp + 0x50c]
mov dword [esp + 0x24], esi
call fcn.00439f50
cmp esi, eax
jb 0x42b255
jmp 0x42b358
mov byte [esp + 0x2f], 1
jmp 0x42b358
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x38]
call fcn.0057d490
lea ecx, [esp + 0x50c]
mov byte [esp + 0x590], 0
call fcn.0043c630
jmp 0x429889
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42b391
lea eax, [esp + 0x52c]
push str.LayerSetSpacing
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42b476
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
mov ebx, 1
mov edi, ebx
mov byte [esp + 0x590], 0x31
call fcn.00439930
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.00429440
test al, al
je 0x42b459
mov esi, dword [esp + 0x28]
lea edi, [ebx + 1]
call fcn.00439930
mov ecx, dword [eax]
cmp byte [ecx + 4], 0
jne 0x42b459
lea edx, [esp + 0x1c]
push edx
call fcn.00439930
mov eax, dword [eax]
sub esp, 0x1c
add eax, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x42b459
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x458], edx
lea ecx, [esp + 0x50c]
mov byte [esp + 0x590], 0
call fcn.0057d490
jmp 0x429889
lea ecx, [esp + 0x50c]
mov byte [esp + 0x17], bl
mov byte [esp + 0x590], 0
call fcn.0057d490
jmp 0x429889
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42b48d
lea eax, [esp + 0x52c]
push str.LayerSetImageMap
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42b8c9
mov eax, esi
call fcn.00439910
cmp eax, 4
jne 0x42c086
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
lea eax, [esp + 0x544]
push eax
mov byte [esp + 0x594], 0x32
call fcn.00428550
mov edi, 1
mov byte [esp + 0x590], 0x33
call fcn.00439930
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x20]
call fcn.00429440
test al, al
je 0x42b897
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x50c]
push edx
mov edx, dword [eax]
call fcn.004e80d0
test al, al
je 0x42b897
mov edi, 3
call fcn.00439930
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
lea esi, [esp + 0x544]
call fcn.004e83c0
test al, al
je 0x42b897
mov eax, dword [esp + 0x550]
cmp eax, ebx
jne 0x42b563
xor edi, edi
jmp 0x42b56f
mov edi, dword [esp + 0x554]
sub edi, eax
sar edi, 2
lea ecx, [esp + 0x50c]
call fcn.00439f50
mov esi, eax
cmp esi, edi
jne 0x42b890
mov edx, dword [esp + 0x1c]
cmp dword [edx + 0x448], ebx
je 0x42b856
mov ecx, dword [edx + 0x448]
call fcn.00427d00
mov dword [esp + 0x20], eax
call fcn.00427d10
cmp esi, ebx
mov dword [esp + 0x84], eax
mov dword [esp + 0x24], ebx
jbe 0x42b796
lea esp, [esp]
xor ebx, ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov byte [esp + 0x590], 0x34
mov edi, dword [esp + 0x24]
push edi
lea ecx, [esp + 0x510]
call fcn.00439f80
cmp dword [eax + 0x14], 1
jne 0x42b763
lea esi, [esp + 0x54c]
call fcn.00439930
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x40]
call fcn.004e8400
test al, al
je 0x42b763
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
je 0x42b763
mov eax, dword [esp + 0x40]
sub eax, ecx
sar eax, 2
cmp eax, 4
jne 0x42b763
push 3
lea ecx, [esp + 0x3c]
call fcn.00439660
mov edx, dword [eax]
push 2
lea ecx, [esp + 0x3c]
mov dword [esp + 0x2c], edx
call fcn.00439660
mov edi, dword [eax]
push 1
lea ecx, [esp + 0x3c]
mov dword [esp + 0x34], edi
call fcn.00439660
mov esi, dword [eax]
push ebx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x58], esi
call fcn.00439660
mov ebx, dword [eax]
test ebx, ebx
jl 0x42b7f0
test esi, esi
jl 0x42b7f0
lea eax, [ebx + edi]
cmp eax, dword [esp + 0x20]
jg 0x42b7f0
mov ecx, dword [esp + 0x28]
add esi, ecx
cmp esi, dword [esp + 0x84]
jg 0x42b7f0
mov edx, dword [esp + 0x24]
push edx
lea ecx, [esp + 0x510]
call fcn.00439f80
xor edi, edi
call fcn.00438bc0
movsx ax, byte [eax]
mov ecx, dword [esp + 0x1c]
movzx eax, ax
movzx esi, ax
mov dword [esp + 0x88], esi
shr esi, 8
mov eax, dword [ecx + esi*4 + 0x28]
test eax, eax
jne 0x42b729
push 0x42404
call fcn.005b25e7
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
mov byte [esp + 0x590], 0x36
je 0x42b71d
push fcn.00428960
push 0x428920
push 0x100
lea edi, [eax + 4]
push 0x424
push edi
mov dword [eax], 0x100
call fcn.005b4b43
jmp 0x42b71f
xor edi, edi
mov edx, dword [esp + 0x1c]
mov eax, edi
mov dword [edx + esi*4 + 0x28], edi
mov ecx, dword [esp + 0x88]
and ecx, 0x800000ff
jns 0x42b740
dec ecx
or ecx, 0xffffff00
inc ecx
mov edx, dword [esp + 0x54]
imul ecx, ecx, 0x424
lea eax, [ecx + eax + 4]
mov ecx, dword [esp + 0x30]
mov dword [eax], ebx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x42b768
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x38]
call fcn.0057d490
mov esi, dword [esp + 0x24]
add esi, 1
lea ecx, [esp + 0x50c]
mov dword [esp + 0x24], esi
call fcn.00439f50
cmp esi, eax
jb 0x42b5c0
mov edx, dword [esp + 0x1c]
xor ebx, ebx
lea ecx, [edx + 0x28]
mov dword [edx + 0x474], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], 0x100
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
cmp eax, ebx
je 0x42b7df
add eax, 0x10
mov esi, 0x100
lea ecx, [ecx]
mov ecx, dword [eax + 8]
mov edi, dword [eax]
add ecx, edi
cmp ecx, dword [edx + 0x474]
jle 0x42b7d5
mov dword [edx + 0x474], ecx
add eax, 0x424
sub esi, 1
jne 0x42b7c0
add dword [esp + 0x1c], 4
sub dword [esp + 0x24], 1
jne 0x42b7ab
jmp 0x42b89c
push str.Image_rectangle_out_of_bounds
lea ecx, [esp + 0x564]
call fcn.00438a30
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x590], 0x35
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0x560]
push edx
call eax
lea ecx, [esp + 0x560]
call fcn.00525310
lea ecx, [esp + 0x38]
call fcn.0057d490
lea ecx, [esp + 0x544]
mov byte [esp + 0x590], 0x32
call fcn.004285e0
lea ecx, [esp + 0x50c]
call fcn.0043c630
jmp 0x42c15e
push str.Layer_image_not_set
lea ecx, [esp + 0x564]
call fcn.00438a30
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x590], 0x37
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x560]
push eax
call edx
lea ecx, [esp + 0x560]
call fcn.00525310
jmp 0x42b831
mov byte [esp + 0x2f], 1
jmp 0x42b89c
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x544]
mov byte [esp + 0x590], 0x32
call fcn.004285e0
lea ecx, [esp + 0x50c]
mov byte [esp + 0x590], 0
call fcn.0043c630
jmp 0x429889
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42b8e0
lea eax, [esp + 0x52c]
push str.LayerSetCharOffsets
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42bb80
mov eax, esi
call fcn.00439910
cmp eax, 4
jne 0x42c086
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea eax, [esp + 0x544]
push eax
mov byte [esp + 0x594], 0x38
call fcn.00428550
mov edi, 1
mov byte [esp + 0x590], 0x39
call fcn.00439930
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x28]
call fcn.00429440
test al, al
je 0x42bb51
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x38]
push edx
mov edx, dword [eax]
call fcn.004e80d0
test al, al
je 0x42bb51
mov edi, 3
call fcn.00439930
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
lea esi, [esp + 0x544]
call fcn.004e83c0
test al, al
je 0x42bb51
mov eax, dword [esp + 0x550]
cmp eax, ebx
jne 0x42b9aa
xor esi, esi
jmp 0x42b9b6
mov esi, dword [esp + 0x554]
sub esi, eax
sar esi, 2
lea ecx, [esp + 0x38]
call fcn.00439f50
cmp eax, esi
jne 0x42bb4a
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x1c], edi
jbe 0x42bb56
jmp 0x42b9e0
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
push edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x594], 0x3a
call fcn.00439f80
cmp dword [eax + 0x14], 1
jne 0x42bb1f
lea esi, [esp + 0x54c]
call fcn.00439930
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x514]
call fcn.004e8400
test al, al
je 0x42bb1f
mov ecx, dword [esp + 0x510]
cmp ecx, ebx
je 0x42bb1f
mov eax, dword [esp + 0x514]
sub eax, ecx
sar eax, 2
cmp eax, 2
jne 0x42bb1f
mov edx, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x3c]
call fcn.00439f80
xor edi, edi
call fcn.00438bc0
movsx ax, byte [eax]
mov ecx, dword [esp + 0x24]
movzx eax, ax
movzx ebx, ax
mov edi, ebx
shr edi, 8
mov esi, dword [ecx + edi*4 + 0x28]
test esi, esi
jne 0x42bad9
push 0x42404
call fcn.005b25e7
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
mov byte [esp + 0x590], 0x3b
je 0x42bacf
push fcn.00428960
push 0x428920
push 0x100
lea esi, [eax + 4]
push 0x424
push esi
mov dword [eax], 0x100
call fcn.005b4b43
jmp 0x42bad1
xor esi, esi
mov edx, dword [esp + 0x24]
mov dword [edx + edi*4 + 0x28], esi
push 1
lea ecx, [esp + 0x510]
call fcn.00439660
mov edi, dword [eax]
push 0
lea ecx, [esp + 0x510]
call fcn.00439660
mov ecx, dword [eax]
mov eax, ebx
and eax, 0x800000ff
jns 0x42bb09
dec eax
or eax, 0xffffff00
inc eax
imul eax, eax, 0x424
mov dword [eax + esi + 0x14], ecx
mov dword [eax + esi + 0x18], edi
mov edi, dword [esp + 0x1c]
xor ebx, ebx
jmp 0x42bb24
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x50c]
call fcn.0057d490
add edi, 1
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], edi
call fcn.00439f50
cmp edi, eax
jb 0x42b9e0
jmp 0x42bb56
mov byte [esp + 0x2f], 1
jmp 0x42bb56
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x544]
mov byte [esp + 0x590], 0x38
call fcn.004285e0
lea ecx, [esp + 0x38]
mov byte [esp + 0x590], 0
call fcn.0043c630
jmp 0x429889
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42bb97
lea eax, [esp + 0x52c]
push str.LayerSetKerningPairs
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42bdc4
mov eax, esi
call fcn.00439910
cmp eax, 4
jne 0x42c086
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea edi, [eax - 3]
mov byte [esp + 0x590], 0x3d
call fcn.00439930
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
call fcn.00429440
test al, al
je 0x42b353
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
lea ecx, [esp + 0x50c]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004e80d0
test al, al
je 0x42b353
mov edi, 3
call fcn.00439930
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0x40]
call fcn.004e8400
test al, al
je 0x42b353
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x42bc63
mov ebx, dword [esp + 0x40]
sub ebx, eax
sar ebx, 2
lea ecx, [esp + 0x50c]
call fcn.00439f50
cmp eax, ebx
jne 0x42b34c
xor ebx, ebx
test eax, eax
mov dword [esp + 0x1c], ebx
jbe 0x42b358
push ebx
lea ecx, [esp + 0x510]
call fcn.00439f80
cmp dword [eax + 0x14], 2
jne 0x42bd77
push ebx
lea ecx, [esp + 0x510]
call fcn.00439f80
xor edi, edi
call fcn.00438bc0
movsx cx, byte [eax]
movzx esi, cx
push ebx
lea ecx, [esp + 0x510]
call fcn.00439f80
mov edi, 1
call fcn.00438bc0
movsx dx, byte [eax]
movzx esi, si
mov eax, esi
movzx ecx, dx
mov edx, dword [esp + 0x30]
shr eax, 8
mov eax, dword [edx + eax*4 + 0x28]
test eax, eax
je 0x42bd9c
and esi, 0x800000ff
jns 0x42bcfd
dec esi
or esi, 0xffffff00
inc esi
imul esi, esi, 0x424
add esi, eax
movzx eax, cx
mov edi, eax
shr edi, 8
mov ecx, dword [esi + edi*4 + 0x1c]
test ecx, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], ecx
jne 0x42bd50
push 0x100
call fcn.005b60a3
add esp, 4
push 0x100
mov ebx, eax
push 0
push ebx
call fcn.005b30e0
add esp, 0xc
mov dword [esi + edi*4 + 0x1c], ebx
mov dword [esp + 0x24], ebx
test ebx, ebx
mov ebx, dword [esp + 0x1c]
je 0x42bd7c
mov eax, dword [esp + 0x54]
mov esi, eax
and esi, 0x800000ff
jns 0x42bd62
dec esi
or esi, 0xffffff00
inc esi
push ebx
lea ecx, [esp + 0x3c]
call fcn.00439660
mov al, byte [eax]
mov ecx, dword [esp + 0x24]
mov byte [esi + ecx], al
jmp 0x42bd7c
mov byte [esp + 0x17], 1
add ebx, 1
lea ecx, [esp + 0x50c]
mov dword [esp + 0x1c], ebx
call fcn.00439f50
cmp ebx, eax
jb 0x42bc85
jmp 0x42b358
lea ecx, [esp + 0x38]
call fcn.0057d490
lea ecx, [esp + 0x50c]
call fcn.0043c630
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42bddb
lea eax, [esp + 0x52c]
push str.LayerSetBaseOrder
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42be8a
mov eax, esi
call fcn.00439910
cmp eax, 3
jne 0x42c086
lea edi, [eax - 2]
call fcn.00439930
mov edx, dword [eax]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x34]
call fcn.00429440
test al, al
je 0x429894
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov eax, dword [eax]
cmp byte [eax + 4], 0
jne 0x429894
lea ecx, [esp + 0x54]
push ecx
call fcn.00439930
mov edx, dword [eax]
sub esp, 0x1c
add edx, 8
mov ecx, esp
mov dword [esp + 0x78], esp
push edx
call fcn.00438aa0
call fcn.00470840
add esp, 0x20
test al, al
je 0x429894
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
mov dword [eax + 0x47c], ecx
lea ecx, [esp + 0x528]
call fcn.00525310
mov al, 1
jmp 0x42c16c
cmp dword [esp + 0x540], edi
mov eax, dword [esp + 0x52c]
jae 0x42bea1
lea eax, [esp + 0x52c]
push str.LayerSetCharOrders
push eax
call fcn.005b7ebd
add esp, 8
test eax, eax
jne 0x42c126
mov eax, esi
call fcn.00439910
cmp eax, 4
jne 0x42c086
mov dword [esp + 0x510], ebx
mov dword [esp + 0x514], ebx
mov dword [esp + 0x518], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea edi, [eax - 3]
mov byte [esp + 0x590], 0x3f
call fcn.00439930
mov edx, dword [eax]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
call fcn.00429440
test al, al
je 0x42b353
mov esi, dword [esp + 0x28]
mov edi, 2
call fcn.00439930
mov edx, dword [eax]
lea ecx, [esp + 0x50c]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004e80d0
test al, al
je 0x42b353
mov edi, 3
call fcn.00439930
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0x40]
call fcn.004e8400
test al, al
je 0x42b353
lea ecx, [esp + 0x50c]
call fcn.00439f50
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00439640
cmp esi, eax
jne 0x42b34c
cmp esi, ebx
mov dword [esp + 0x24], ebx
jbe 0x42b358
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x510]
call fcn.00439f80
cmp dword [eax + 0x14], 1
jne 0x42c058
mov edx, dword [esp + 0x24]
push edx
lea ecx, [esp + 0x510]
call fcn.00439f80
xor edi, edi
call fcn.00438bc0
movsx ax, byte [eax]
mov ecx, dword [esp + 0x1c]
movzx eax, ax
movzx ebx, ax
mov esi, ebx
shr esi, 8
mov edi, dword [ecx + esi*4 + 0x28]
test edi, edi
jne 0x42c029
push 0x42404
call fcn.005b25e7
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
mov byte [esp + 0x590], 0x40
je 0x42c017
push fcn.00428960
push 0x428920
push 0x100
lea edi, [eax + 4]
push 0x424
push edi
mov dword [eax], 0x100
call fcn.005b4b43
jmp 0x42c019
xor edi, edi
mov byte [esp + 0x590], 0x3f
mov edx, dword [esp + 0x1c]
mov dword [edx + esi*4 + 0x28], edi
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esp + 0x3c]
call fcn.00439660
and ebx, 0x800000ff
jns 0x42c047
dec ebx
or ebx, 0xffffff00
inc ebx
mov ecx, dword [eax]
imul ebx, ebx, 0x424
mov dword [ebx + edi + 0x420], ecx
jmp 0x42c05d
mov byte [esp + 0x17], 1
mov esi, dword [esp + 0x24]
add esi, 1
lea ecx, [esp + 0x50c]
mov dword [esp + 0x24], esi
call fcn.00439f50
cmp esi, eax
jb 0x42bf87
jmp 0x42b358
mov edi, 0x10
push str.Invalid_Number_of_Parameters
lea ecx, [esp + 0x564]
call fcn.00438a30
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x590], 0x42
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x560]
push eax
call edx
cmp dword [esp + 0x578], edi
jb 0x42c0cb
mov eax, dword [esp + 0x564]
push eax
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x540], edi
jb 0x42c16a
mov ecx, dword [esp + 0x52c]
push ecx
call fcn.005b28f2
add esp, 4
jmp 0x42c16a
cmp byte [esp + 0x2f], 0
je 0x42bdb1
push str.List_Size_Mismatch
lea ecx, [esp + 0x564]
call fcn.00438a30
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x590], 0x45
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0x560]
push edx
call eax
jmp 0x42c152
push str.Unknown_Command
lea ecx, [esp + 0x564]
call fcn.00438a30
mov byte [esp + 0x590], 0x41
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x560]
push eax
call edx
lea ecx, [esp + 0x560]
call fcn.00525310
lea ecx, [esp + 0x528]
call fcn.00525310
xor al, al
mov ecx, dword [esp + 0x588]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x570]
xor ecx, esp
call fcn.005b2f9b
mov esp, ebp
pop ebp
ret 4