Function at 0x430010
Capabilities:
Resolve function by parsing pe exports
Terminate process

Disassembly:
sub esp, 0x60
push ebx
xor eax, eax
push ebp
mov ebp, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x42c]
test ah, 1
push esi
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x48], 1
je 0x430115
test ah, 8
push 0x2808
je 0x430088
call fcn.00488e10
mov esi, eax
add esp, 4
test esi, esi
je 0x4300c4
mov dword [esi], 0x498684
lea edi, [esi + 8]
mov ebx, 0x100
mov ecx, edi
call fcn.0042b240
add edi, 0x28
dec ebx
jne 0x430068
mov dword [esi], 0x49865c
mov dword [esi + 4], 1
mov dword [esp + 0x34], esi
jmp 0x4300cc
call fcn.00488e10
mov esi, eax
add esp, 4
test esi, esi
je 0x4300c4
mov dword [esi], 0x498684
lea edi, [esi + 8]
mov ebx, 0x100
mov ecx, edi
call fcn.0042b240
add edi, 0x28
dec ebx
jne 0x4300a4
mov dword [esi], 0x49865c
mov dword [esi + 4], 2
mov dword [esp + 0x34], esi
jmp 0x4300cc
mov dword [esp + 0x34], 0
push 0x2808
call fcn.00488e10
mov esi, eax
add esp, 4
test esi, esi
je 0x43010d
mov dword [esi], 0x498684
lea edi, [esi + 8]
mov ebx, 0x100
mov ecx, edi
call fcn.0042b240
add edi, 0x28
dec ebx
jne 0x4300ed
mov dword [esi], 0x49865c
mov dword [esi + 4], 2
mov dword [esp + 0x54], esi
jmp 0x430115
mov dword [esp + 0x54], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
cdq
mov edi, dword [ecx + 4]
and edx, 0xff
add eax, edx
mov esi, eax
mov eax, dword [ecx + 0x10]
cdq
and edx, 0xff
add eax, edx
sar esi, 8
sar eax, 8
inc esi
inc eax
imul esi, eax
imul esi, edi
lea eax, [edi*4]
inc esi
push eax
mov dword [esp + 0x64], esi
call fcn.00488e10
add esp, 4
test eax, eax
mov dword [esp + 0x4c], eax
jne 0x4301af
mov ecx, dword [ebp + 8]
add ecx, 0x1c
push ecx
lea ecx, [esp + 0x78]
call fcn.004415d0
mov edx, dword [esp + 0x74]
mov eax, dword [0x4b1dfc]
push edx
push 0
push str.cntrl
push 2
push str.PICTURE__s
push eax
call fcn.00408f90
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x4b1de8
je 0x4301a8
push eax
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
push 0x200000
call fcn.00488e10
add esp, 4
test eax, eax
mov dword [esp + 0x6c], eax
jne 0x430213
mov ecx, dword [ebp + 8]
add ecx, 0x1c
push ecx
lea ecx, [esp + 0x78]
call fcn.004415d0
mov edx, dword [esp + 0x74]
mov eax, dword [0x4b1dfc]
push edx
push 0
push str.shadow
push 2
push str.PICTURE__s
push eax
call fcn.00408f90
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x4b1de8
je 0x43020c
push eax
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
add esi, 0x384
lea ecx, [esi + esi*8]
shl ecx, 2
push ecx
call fcn.00488e10
mov edx, dword [ebp + 8]
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
jne 0x43027f
add edx, 0x1c
push edx
lea ecx, [esp + 0x78]
call fcn.004415d0
mov eax, dword [esp + 0x74]
mov ecx, dword [0x4b1dfc]
push eax
push esi
push str.texcoor
push 2
push str.PICTURE__s
push ecx
call fcn.00408f90
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x4b1de8
je 0x430278
push eax
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
mov ebx, dword [edx + 4]
xor edi, edi
test ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
jle 0x43049d
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], eax
lea esi, [ecx + 4]
mov ecx, ebp
call fcn.0042efd0
mov edx, dword [esp + 0x44]
mov dword [edx], eax
xor eax, eax
test edi, edi
mov dword [esp + 0x10], eax
jle 0x4302eb
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
mov edx, dword [edx]
cmp edx, dword [ecx + eax*4]
je 0x4302d4
inc eax
cmp eax, edi
mov dword [esp + 0x10], eax
jl 0x4302be
jmp 0x4302eb
mov dword [esi], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
cmp dword [esp + 0x10], edi
jl 0x43047a
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x68]
push ecx
mov ecx, ebp
mov dword [esi], 0
call fcn.0042f8c0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x50]
mov ebp, eax
sub ebp, ecx
cmp ebp, 0x100
jg 0x430372
mov ebx, dword [esp + 0x40]
mov edx, edi
sub edx, ebx
cmp edx, 0x100
jg 0x430372
sub eax, ecx
cmp eax, 0x100
mov edx, ebx
mov dword [esi], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x14], ecx
jle 0x430354
mov eax, 0x100
mov dword [esi + 0xc], eax
mov eax, edi
sub eax, edx
cmp eax, 0x100
mov dword [esi + 0x18], edx
jle 0x43036a
mov eax, 0x100
mov dword [esi + 0x10], eax
jmp 0x43045b
test ebp, ebp
mov edx, ecx
jle 0x43045b
mov ebx, dword [esp + 0x40]
mov ecx, edi
sub ecx, ebx
test ecx, ecx
mov dword [esp + 0x24], ebx
jle 0x430449
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
lea ecx, [ecx + ecx*8]
lea ecx, [ebp + ecx*4 + 0x20]
mov ebp, dword [esp + 0x20]
cmp edx, dword [esp + 0x5c]
jne 0x4303f0
mov ebx, dword [esp + 0x40]
cmp dword [esp + 0x24], ebx
jne 0x4303ec
sub eax, edx
cmp eax, 0x100
mov dword [esi], 0
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x14], edx
jle 0x4303cd
mov eax, 0x100
mov ebx, dword [esp + 0x24]
mov dword [esi + 0xc], eax
mov eax, edi
sub eax, ebx
cmp eax, 0x100
mov dword [esi + 0x18], ebx
jle 0x4303e7
mov eax, 0x100
mov dword [esi + 0x10], eax
jmp 0x43042b
mov ebx, dword [esp + 0x24]
inc ebp
sub eax, edx
cmp eax, 0x100
mov dword [ecx - 0x1c], 0
mov dword [ecx], ebp
mov dword [ecx - 8], edx
jle 0x43040b
mov eax, 0x100
mov dword [ecx - 0x10], eax
mov eax, edi
sub eax, ebx
cmp eax, 0x100
mov dword [ecx - 4], ebx
jle 0x430421
mov eax, 0x100
mov dword [ecx - 0xc], eax
mov dword [esp + 0x20], ebp
add ecx, 0x24
mov edi, dword [esp + 0x50]
add ebx, 0x100
mov eax, edi
sub eax, ebx
test eax, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], ebx
jg 0x4303a3
add edx, 0x100
mov ecx, eax
sub ecx, edx
test ecx, ecx
jg 0x43037c
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x18]
mov dword [eax + edx*4 - 4], 0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 4]
add dword [esp + 0x44], 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
inc edi
add esi, 0x24
cmp edi, ecx
mov dword [esp + 0x1c], edi
jl 0x4302a3
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.00488e76
lea edx, [ebx*4]
push edx
call fcn.00488e10
mov esi, eax
xor edi, edi
add esp, 8
cmp esi, edi
mov dword [esp + 0x58], esi
jne 0x430532
mov ebp, dword [ebp + 8]
add ebp, 0x1c
mov ebp, dword [ebp]
cmp byte [ebp], 0
je 0x4304eb
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x7c]
call fcn.00401800
jmp 0x4304f3
mov dword [esp + 0x74], 0x4b1de8
mov eax, dword [esp + 0x74]
mov ecx, dword [0x4b1dfc]
push eax
push ebx
push str.indices_for_sort
push 2
push str.PICTURE__s
push ecx
call fcn.00408f90
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x4b1de8
je 0x43052b
push eax
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
xor eax, eax
cmp ebx, edi
mov dword [esp + 0x10], eax
jle 0x430556
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*8]
lea edx, [ecx + edx*4]
mov dword [esi + eax*4], edx
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ebx
mov dword [esp + 0x10], eax
jl 0x430540
push 0x42ffd0
push 4
push ebx
push esi
call fcn.0048af6e
add esp, 0x10
cmp ebx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
jle 0x430810
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x4c], esi
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
xor edi, edi
cmp eax, edi
jne 0x430597
mov dword [edx + 8], edi
mov eax, dword [esi]
mov dword [eax + 0xc], edi
jmp 0x430780
cmp dword [edx + 4], edi
jl 0x430780
cmp dword [esp + 0x1c], edi
je 0x4305b6
mov ecx, dword [esi - 4]
mov ebp, dword [edx + 0x10]
cmp ebp, dword [ecx + 0x10]
jl 0x4305b6
cmp eax, dword [ecx + 0x14]
jge 0x4305ba
mov dword [esp + 0x24], edi
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
shl ebp, 8
mov ecx, ebp
sub ecx, eax
cmp edi, ecx
mov dword [esp + 0x68], ebp
jg 0x43072f
mov edi, dword [esp + 0x24]
mov ecx, edi
and ecx, 0xff
mov ebx, edi
sub ebx, ecx
sub ebx, eax
add ebx, 0x100
cmp edi, ebx
jle 0x430602
mov eax, edi
sub eax, ecx
add eax, 0x100
cmp edi, eax
jge 0x430602
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x10]
xor ebx, ebx
mov ecx, 0x100
sub ecx, eax
mov dword [esp + 0x44], ebx
js 0x43070c
mov edx, dword [esp + 0x1c]
lea eax, [edx - 1]
test eax, eax
mov dword [esp + 0x48], 1
mov dword [esp + 0x10], eax
jl 0x430737
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 4]
test eax, eax
jl 0x4306bc
mov eax, dword [esi]
mov ebp, dword [eax + 0x14]
mov esi, dword [eax + 0x10]
mov edi, dword [ecx + 0x10]
mov edx, dword [ecx + 8]
lea eax, [edi + edx*2]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
mov dword [esp + 0x64], edx
lea eax, [esi + ebx*2]
cdq
sub eax, edx
mov edx, dword [esp + 0x64]
sar eax, 1
sub edx, eax
mov eax, edx
cdq
mov ebx, eax
xor ebx, edx
sub ebx, edx
lea eax, [edi + esi]
cdq
sub eax, edx
sar eax, 1
cmp ebx, eax
jge 0x4306b4
mov esi, dword [ecx + 0x14]
mov eax, dword [ecx + 0xc]
lea eax, [esi + eax*2]
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
mov ecx, eax
lea eax, [ebp + edx*2]
cdq
sub eax, edx
sar eax, 1
sar ecx, 1
sub ecx, eax
mov eax, ecx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
lea eax, [esi + ebp]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x4306cc
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
js 0x430737
jmp 0x430633
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov esi, dword [esp + 0x4c]
mov eax, dword [esi]
lea ebx, [ecx + edx - 1]
mov edx, dword [eax + 0x10]
mov ecx, 0x100
inc ebx
sub ecx, edx
cmp ebx, ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], ebx
jle 0x430618
mov ebp, dword [esp + 0x68]
jmp 0x430714
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x430737
mov edx, dword [esi]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0x14]
mov edi, ebp
inc ecx
sub edi, eax
cmp ecx, edi
mov dword [esp + 0x24], ecx
jg 0x43079d
jmp 0x4305d5
mov eax, dword [esp + 0x48]
test eax, eax
je 0x43079d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esi]
sar eax, 8
mov dword [edx + 4], eax
test byte [ecx + 0x42c], 4
je 0x430763
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
shl edx, 1
mov dword [ecx + 4], edx
cmp eax, dword [esp + 0x30]
jl 0x43076e
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
mov dword [eax + 8], ebx
mov ecx, dword [esi]
mov dword [ecx + 0xc], edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
add esi, 4
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], esi
jge 0x430810
jmp 0x43057f
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x1c]
add eax, 0x1c
cmp byte [edx], 0
je 0x4307c8
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x7c]
call fcn.00401800
jmp 0x4307d0
mov dword [esp + 0x74], 0x4b1de8
mov ecx, dword [esp + 0x74]
mov edx, dword [0x4b1dfc]
push ecx
push 0
push str.Cant_replace_rectangle
push 0xa
push str.PICTURE__s
push edx
call fcn.00408f90
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x4b1de8
je 0x430809
push eax
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
mov eax, dword [esp + 0x58]
push eax
call fcn.00488e76
mov edx, dword [ebp]
add esp, 4
mov ecx, ebp
call dword [edx + 8]
push 0x200000
call fcn.00488e10
add esp, 4
test eax, eax
mov dword [esp + 0x24], eax
jne 0x4308aa
mov ebp, dword [ebp + 8]
add ebp, 0x1c
mov ebp, dword [ebp]
cmp byte [ebp], 0
je 0x430862
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x7c]
call fcn.00401800
jmp 0x43086a
mov dword [esp + 0x74], 0x4b1de8
mov eax, dword [esp + 0x74]
mov ecx, dword [0x4b1dfc]
push eax
push 0
push str.2097152
push 2
push str.PICTURE__s
push ecx
call fcn.00408f90
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x4b1de8
je 0x4308a3
push eax
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
mov esi, dword [esp + 0x30]
mov edi, esi
shl edi, 0x12
push edi
call fcn.00488e10
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x4c], ebx
jne 0x430934
mov ebp, dword [ebp + 8]
add ebp, 0x1c
mov ebp, dword [ebp]
cmp byte [ebp], 0
je 0x4308ee
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x7c]
call fcn.00401800
jmp 0x4308f6
mov dword [esp + 0x74], 0x4b1de8
mov edx, dword [esp + 0x74]
mov eax, dword [0x4b1dfc]
push edx
push esi
push 0x4a2ec4
push 2
push str.PICTURE__s
push eax
call fcn.00408f90
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x4b1de8
je 0x43092d
push eax
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
shl esi, 0x11
push esi
call fcn.00488e10
mov edx, eax
add esp, 4
test edx, edx
mov dword [esp + 0x48], edx
jne 0x4309d2
mov ebp, dword [ebp + 8]
mov esi, dword [ebp + 0x1c]
mov al, byte [esi]
add ebp, 0x1c
test al, al
je 0x430994
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
and ecx, 0xfffffff0
add ecx, 0x10
push ecx
call fcn.00488e10
mov ecx, ebx
mov edx, ecx
mov ebp, eax
shr ecx, 2
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebx + ebp], 0
jmp 0x430999
mov ebp, 0x4b1de8
mov eax, dword [esp + 0x30]
mov ecx, dword [0x4b1dfc]
push ebp
push eax
push str.ZBuf
push 2
push str.PICTURE__s
push ecx
call fcn.00408f90
add esp, 0x18
cmp ebp, 0x4b1de8
je 0x4309cb
push ebp
call fcn.00488e76
add esp, 4
push 1
call fcn.0048abad
mov ecx, edi
xor eax, eax
mov edi, ebx
mov ebx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, esi
mov edi, edx
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
test ecx, ecx
mov dword [esp + 0x1c], 0
jle 0x430b10
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 4]
test eax, eax
jl 0x430ae3
test esi, esi
je 0x430ae3
mov ebx, dword [esp + 0x14]
mov ebp, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov edx, ebp
add edx, ecx
cmp ebp, edx
jge 0x430aca
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x14]
mov eax, edi
add eax, edx
cmp edi, eax
jge 0x430ab9
test byte [ebx + 0x42c], 4
je 0x430a84
push edi
push ebp
mov ecx, ebx
call fcn.0042f280
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov edx, dword [esi + 0x18]
add ecx, edi
shl ecx, 8
sub ecx, edx
add ecx, dword [esi + 8]
mov edx, dword [esp + 0x48]
add ecx, ebp
mov word [edx + ecx*2], ax
push edi
push ebp
mov ecx, ebx
call fcn.0042f5a0
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0xc]
sub ecx, edx
mov edx, dword [esi + 0x18]
add ecx, edi
shl ecx, 8
sub ecx, edx
add ecx, dword [esi + 8]
mov edx, dword [esp + 0x4c]
add ecx, ebp
mov word [edx + ecx*2], ax
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x14]
inc edi
add eax, edx
cmp edi, eax
jl 0x430a53
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
inc ebp
add ecx, edx
cmp ebp, ecx
jl 0x430a45
mov esi, dword [esi + 0x20]
test esi, esi
je 0x430ae3
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*8]
lea esi, [eax + edx*4]
test esi, esi
jne 0x430a33
mov esi, dword [esp + 0x14]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 4]
inc eax
add edi, 0x24
cmp eax, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edi
jl 0x430a18
mov ebx, dword [esp + 0x20]
test ebx, ebx
mov edi, dword [esp + 0x18]
jle 0x430b3b
lea eax, [edi + 0xc]
mov ecx, ebx
mov edx, dword [eax]
and edx, 0x800000ff
jns 0x430b33
dec edx
or edx, 0xffffff00
inc edx
mov dword [eax], edx
add eax, 0x24
dec ecx
jne 0x430b21
test ebx, ebx
jle 0x430b67
lea eax, [edi + 0x10]
mov edx, ebx
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x430b61
mov ecx, dword [eax]
lea ecx, [ecx + ecx*8]
lea esi, [edi + ecx*4]
lea edi, [eax - 0x10]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
add eax, 0x24
dec edx
jne 0x430b44
mov ebp, dword [esp + 0x74]
push 0
push 0x46525553
mov ecx, ebp
call fcn.00407d70
mov edx, dword [esp + 0x14]
test byte [edx + 0x42c], 4
mov esi, dword [esp + 0x30]
je 0x430b93
lea eax, [esi + esi]
mov dword [esp + 0x10], eax
jmp 0x430b97
mov dword [esp + 0x10], esi
mov edx, dword [ebp]
push 2
lea eax, [esp + 0x14]
push eax
mov ecx, ebp
call dword [edx + 8]
test esi, esi
mov dword [esp + 0x10], 0
jle 0x430f23
jmp 0x430bbc
mov ebx, dword [esp + 0x20]
xor edx, edx
xor edi, edi
test ebx, ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x50], edi
jle 0x430c20
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x42c]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
and esi, 4
add eax, 0x10
test esi, esi
mov ecx, dword [esp + 0x10]
je 0x430bee
add ecx, ecx
cmp dword [eax - 0xc], ecx
jne 0x430c1a
mov ecx, dword [eax - 8]
mov ebp, dword [eax]
add ecx, ebp
cmp edx, ecx
jge 0x430c04
mov edx, ecx
mov dword [esp + 0x3c], edx
mov ecx, dword [eax - 4]
mov ebp, dword [eax + 4]
add ecx, ebp
cmp edi, ecx
jge 0x430c16
mov edi, ecx
mov dword [esp + 0x50], edi
mov ebp, dword [esp + 0x74]
add eax, 0x24
dec ebx
jne 0x430be4
mov eax, 0x20
cmp edx, eax
mov ecx, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ecx
jle 0x430c3d
add eax, eax
cmp eax, edx
jl 0x430c33
mov dword [esp + 0x38], eax
cmp edi, 0x20
jle 0x430c4c
add ecx, ecx
cmp ecx, edi
jl 0x430c42
mov dword [esp + 0x2c], ecx
cmp eax, 0x100
jle 0x430ce5
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], eax
mov eax, dword [edx + 8]
mov esi, dword [eax + 0x1c]
add eax, 0x1c
cmp byte [esi], 0
je 0x430caa
xor eax, eax
or ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov eax, ebp
and eax, 0xfffffff0
add eax, 0x10
push eax
call fcn.00488e10
mov ecx, ebp
mov edx, ecx
mov ebx, eax
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebx + ebp], 0
mov ebp, dword [esp + 0x74]
jmp 0x430caf
mov ebx, 0x4b1de8
mov eax, dword [esp + 0x68]
mov ecx, dword [0x4b1dfc]
push ebx
push eax
push str.SurfSizeX
push 4
push str.PICTURE__s
push ecx
call fcn.00408f90
add esp, 0x18
cmp ebx, 0x4b1de8
je 0x430ce1
push ebx
call fcn.00488e76
add esp, 4
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x100
jle 0x430d81
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 8]
mov esi, dword [eax + 0x1c]
add eax, 0x1c
cmp byte [esi], 0
mov dword [esp + 0x68], ecx
je 0x430d48
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov edx, ebp
and edx, 0xfffffff0
add edx, 0x10
push edx
call fcn.00488e10
mov ebx, eax
mov ecx, ebp
mov eax, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
mov byte [ebx + ebp], 0
mov ebp, dword [esp + 0x74]
jmp 0x430d4d
mov ebx, 0x4b1de8
mov ecx, dword [esp + 0x68]
mov edx, dword [0x4b1dfc]
push ebx
push ecx
push str.SurfSizeY
push 4
push str.PICTURE__s
push edx
call fcn.00408f90
add esp, 0x18
cmp ebx, 0x4b1de8
je 0x430d85
push ebx
call fcn.00488e76
add esp, 4
jmp 0x430d85
mov edi, dword [esp + 0x14]
mov eax, dword [ebp]
push 2
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call dword [eax + 8]
mov edx, dword [ebp]
push 2
lea eax, [esp + 0x30]
push eax
mov ecx, ebp
call dword [edx + 8]
mov eax, dword [edi + 0x42c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
push ecx
test ah, 0x20
mov eax, dword [esp + 0x14]
push edx
je 0x430dc1
shl eax, 0x12
jmp 0x430dc4
shl eax, 0x11
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x2c]
add eax, edx
push eax
push esi
mov ecx, edi
call fcn.0042fa80
mov edx, dword [ebp]
mov dword [esp + 0x28], eax
push 4
lea eax, [esp + 0x2c]
push eax
mov ecx, ebp
call dword [edx + 8]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
push ecx
push edx
push esi
mov ecx, ebp
call fcn.00407b30
test byte [edi + 0x42c], 4
je 0x430e81
mov ecx, dword [esp + 0x2c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x28], eax
jle 0x430e5c
mov ecx, dword [esp + 0x38]
add ecx, ecx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x28]
shl esi, 8
add esi, eax
shl esi, 9
add esi, edx
mov edx, dword [esp + 0x24]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add ecx, ecx
add edi, ecx
inc eax
cmp eax, edx
mov dword [esp + 0x28], edi
jl 0x430e19
mov edx, dword [ebp]
push 4
lea eax, [esp + 0x2c]
push eax
mov ecx, ebp
call dword [edx + 8]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.00407b30
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x430bb8
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
mov ecx, ebp
call fcn.00407e20
push 0
push 0x41544144
mov ecx, ebp
call fcn.00407d70
mov edx, dword [ebp]
lea eax, [ebx + ebx*8]
shl eax, 2
push eax
push edi
mov ecx, ebp
call dword [edx + 8]
mov ecx, ebp
call fcn.00407e20
test esi, esi
je 0x430eda
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x430ee8
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.00488e76
mov edx, dword [esp + 0x4c]
push edx
call fcn.00488e76
push edi
call fcn.00488e76
mov eax, dword [esp + 0x30]
push eax
call fcn.00488e76
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.00488e76
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 4
mov esi, dword [esp + 0x34]
jmp 0x430ea2