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

Disassembly:
sub esp, 0x60
push ebx
push ebp
mov ebp, ecx
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x42c]
push esi
push edi
test ah, 1
mov dword [esp + 0x14], ebp
je 0x42331d
test ah, 8
push 0x2808
je 0x423290
call fcn.004640eb
mov esi, eax
add esp, 4
test esi, esi
je 0x4232cc
mov dword [esi], 0x480518
lea edi, [esi + 8]
mov ebx, 0x100
mov ecx, edi
call fcn.0041f660
add edi, 0x28
dec ebx
jne 0x423270
mov dword [esi], 0x4804f4
mov dword [esi + 4], 1
mov dword [esp + 0x34], esi
jmp 0x4232d4
call fcn.004640eb
mov esi, eax
add esp, 4
test esi, esi
je 0x4232cc
mov dword [esi], 0x480518
lea edi, [esi + 8]
mov ebx, 0x100
mov ecx, edi
call fcn.0041f660
add edi, 0x28
dec ebx
jne 0x4232ac
mov dword [esi], 0x4804f4
mov dword [esi + 4], 2
mov dword [esp + 0x34], esi
jmp 0x4232d4
mov dword [esp + 0x34], 0
push 0x2808
call fcn.004640eb
mov esi, eax
add esp, 4
test esi, esi
je 0x423315
mov dword [esi], 0x480518
lea edi, [esi + 8]
mov ebx, 0x100
mov ecx, edi
call fcn.0041f660
add edi, 0x28
dec ebx
jne 0x4232f5
mov dword [esi], 0x4804f4
mov dword [esi + 4], 2
mov dword [esp + 0x54], esi
jmp 0x42331d
mov dword [esp + 0x54], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
mov edi, dword [ecx + 4]
cdq
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.004640eb
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4233b7
mov ecx, dword [ebp + 8]
add ecx, 0x1c
push ecx
lea ecx, [esp + 0x78]
call fcn.00406cc0
mov edx, dword [esp + 0x74]
mov eax, dword [0x496644]
push edx
push 0
push str.cntrl
push 2
push str.PICTURE__s
push eax
call fcn.00407250
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x496630
je 0x4233b0
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
push 0x200000
call fcn.004640eb
add esp, 4
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x42341b
mov ecx, dword [ebp + 8]
add ecx, 0x1c
push ecx
lea ecx, [esp + 0x78]
call fcn.00406cc0
mov edx, dword [esp + 0x74]
mov eax, dword [0x496644]
push edx
push 0
push str.shadow
push 2
push str.PICTURE__s
push eax
call fcn.00407250
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x496630
je 0x423414
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
add esi, 0x384
lea ecx, [esi + esi*8]
shl ecx, 2
push ecx
call fcn.004640eb
mov edx, dword [ebp + 8]
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
jne 0x423487
add edx, 0x1c
lea ecx, [esp + 0x74]
push edx
call fcn.00406cc0
mov eax, dword [esp + 0x74]
mov ecx, dword [0x496644]
push eax
push esi
push str.texcoor
push 2
push str.PICTURE__s
push ecx
call fcn.00407250
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x496630
je 0x423480
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
mov ebx, dword [edx + 4]
xor edi, edi
test ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
jle 0x4236a9
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x28], eax
lea esi, [ecx + 4]
mov ecx, ebp
call fcn.004223e0
mov edx, dword [esp + 0x28]
mov dword [edx], eax
xor eax, eax
test edi, edi
mov dword [esp + 0x10], eax
jle 0x4234f5
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
cmp edx, dword [ecx + eax*4]
je 0x4234dc
inc eax
cmp eax, edi
mov dword [esp + 0x10], eax
jl 0x4234c6
jmp 0x4234f5
mov dword [esi], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
cmp eax, edi
jl 0x423682
lea ecx, [esp + 0x50]
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x48]
push edx
lea ecx, [esp + 0x64]
push eax
push ecx
mov ecx, ebp
mov dword [esi], 0
call fcn.00422b00
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x50]
mov ecx, eax
sub ecx, edx
cmp ecx, 0x100
jg 0x42357c
mov ebp, dword [esp + 0x44]
mov ebx, edi
sub ebx, ebp
cmp ebx, 0x100
jg 0x42357c
mov ecx, edx
mov dword [esi], 0
sub eax, ecx
mov dword [esi + 0x1c], 0
cmp eax, 0x100
mov dword [esi + 0x14], ecx
jle 0x42355e
mov eax, 0x100
mov dword [esi + 0xc], eax
mov eax, edi
sub eax, ebp
mov dword [esi + 0x18], ebp
cmp eax, 0x100
jle 0x423574
mov eax, 0x100
mov dword [esi + 0x10], eax
jmp 0x423663
test ecx, ecx
jle 0x423663
mov ebx, dword [esp + 0x44]
mov ecx, edi
sub ecx, ebx
mov dword [esp + 0x38], ebx
test ecx, ecx
jle 0x423651
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 0x4235f8
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x38], ebx
jne 0x4235f4
sub eax, edx
mov dword [esi], 0
cmp eax, 0x100
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x14], edx
jle 0x4235d5
mov eax, 0x100
mov ebx, dword [esp + 0x38]
mov dword [esi + 0xc], eax
mov eax, edi
mov dword [esi + 0x18], ebx
sub eax, ebx
cmp eax, 0x100
jle 0x4235ef
mov eax, 0x100
mov dword [esi + 0x10], eax
jmp 0x423633
mov ebx, dword [esp + 0x38]
sub eax, edx
inc ebp
cmp eax, 0x100
mov dword [ecx - 0x1c], 0
mov dword [ecx], ebp
mov dword [ecx - 8], edx
jle 0x423613
mov eax, 0x100
mov dword [ecx - 0x10], eax
mov eax, edi
sub eax, ebx
mov dword [ecx - 4], ebx
cmp eax, 0x100
jle 0x423629
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
mov dword [esp + 0x38], ebx
sub eax, ebx
test eax, eax
mov eax, dword [esp + 0x3c]
jg 0x4235ab
add edx, 0x100
mov ecx, eax
sub ecx, edx
test ecx, ecx
jg 0x423584
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
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]
mov eax, dword [esp + 0x28]
inc edi
add eax, 4
add esi, 0x24
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], edi
cmp edi, dword [eax + 4]
jl 0x4234ab
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.004640e0
lea edx, [ebx*4]
push edx
call fcn.004640eb
mov edx, eax
add esp, 8
test edx, edx
mov dword [esp + 0x4c], edx
jne 0x42373c
mov ebp, dword [ebp + 8]
add ebp, 0x1c
mov ebp, dword [ebp]
cmp byte [ebp], 0
je 0x4236f5
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x7c]
call fcn.00403bc0
jmp 0x4236fd
mov dword [esp + 0x74], 0x496630
mov eax, dword [esp + 0x74]
mov ecx, dword [0x496644]
push eax
push ebx
push str.indices_for_sort
push 2
push str.PICTURE__s
push ecx
call fcn.00407250
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x496630
je 0x423735
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
xor eax, eax
test ebx, ebx
mov dword [esp + 0x10], eax
jle 0x423760
mov ecx, dword [esp + 0x18]
lea esi, [eax + eax*8]
lea esi, [ecx + esi*4]
mov dword [edx + eax*4], esi
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ebx
mov dword [esp + 0x10], eax
jl 0x42374a
push 0x4231e0
push 4
push ebx
push edx
call fcn.00465fab
add esp, 0x10
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x1c], ecx
test ebx, ebx
mov dword [esp + 0x38], edi
jle 0x423a1e
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x28], esi
mov edx, dword [esi]
mov eax, dword [edx + 4]
test eax, eax
jl 0x423993
mov eax, dword [edx + 0x14]
test eax, eax
je 0x423993
test ecx, ecx
je 0x4237bd
mov ecx, dword [esi - 4]
mov esi, dword [edx + 0x10]
cmp esi, dword [ecx + 0x10]
jl 0x4237bd
cmp eax, dword [ecx + 0x14]
jge 0x4237c3
xor edi, edi
mov dword [esp + 0x38], edi
mov esi, dword [esp + 0x60]
shl esi, 8
mov ecx, esi
mov dword [esp + 0x68], esi
sub ecx, eax
cmp edi, ecx
jg 0x42393a
mov ecx, edi
mov ebx, edi
and ecx, 0xff
sub ebx, ecx
sub ebx, eax
add ebx, 0x100
cmp edi, ebx
jle 0x423805
mov eax, edi
sub eax, ecx
add eax, 0x100
cmp edi, eax
jge 0x423805
mov edi, eax
mov dword [esp + 0x38], edi
mov eax, dword [edx + 0x10]
mov ecx, 0x100
xor ebx, ebx
sub ecx, eax
mov dword [esp + 0x48], ebx
js 0x423917
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], 1
lea eax, [edx - 1]
test eax, eax
mov dword [esp + 0x10], eax
jl 0x423942
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 4]
test eax, eax
jl 0x4238c9
mov edx, dword [esp + 0x28]
mov edi, dword [ecx + 0x10]
mov eax, dword [edx]
mov ebp, dword [eax + 0x14]
mov esi, dword [eax + 0x10]
mov eax, dword [ecx + 8]
lea eax, [edi + eax*2]
cdq
sub eax, edx
mov edx, eax
lea eax, [esi + ebx*2]
sar edx, 1
mov dword [esp + 0x64], edx
cdq
sub eax, edx
mov edx, dword [esp + 0x64]
sar eax, 1
sub edx, eax
mov eax, edx
cdq
mov ebx, eax
lea eax, [edi + esi]
xor ebx, edx
sub ebx, edx
cdq
sub eax, edx
sar eax, 1
cmp ebx, eax
jge 0x4238c1
mov esi, dword [ecx + 0x14]
mov eax, dword [ecx + 0xc]
mov edi, dword [esp + 0x38]
lea eax, [esi + eax*2]
cdq
sub eax, edx
mov ecx, eax
lea eax, [ebp + edi*2]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
sub ecx, eax
mov eax, ecx
cdq
mov ecx, eax
lea eax, [esi + ebp]
xor ecx, edx
sub ecx, edx
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x4238d9
jmp 0x4238c5
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
js 0x423942
jmp 0x423836
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x58], 0
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x28]
lea ebx, [ecx + edx - 1]
mov edx, 0x100
mov ecx, dword [eax]
inc ebx
mov dword [esp + 0x48], ebx
sub edx, dword [ecx + 0x10]
cmp ebx, edx
jle 0x42381b
mov esi, dword [esp + 0x68]
jmp 0x42391f
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x423942
mov eax, dword [esp + 0x28]
mov ecx, esi
inc edi
mov edx, dword [eax]
mov dword [esp + 0x38], edi
mov eax, dword [edx + 0x14]
sub ecx, eax
cmp edi, ecx
jg 0x4239ac
jmp 0x4237da
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4239ac
mov ecx, dword [esp + 0x28]
mov eax, edi
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ecx]
sar eax, 8
mov dword [edx + 4], eax
mov edx, dword [esp + 0x14]
test byte [edx + 0x42c], 4
je 0x423970
mov ecx, dword [ecx]
mov edx, dword [ecx + 4]
shl edx, 1
mov dword [ecx + 4], edx
cmp eax, dword [esp + 0x30]
jl 0x42397b
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov esi, eax
mov ecx, dword [eax]
mov dword [ecx + 8], ebx
mov edx, dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0xc], edi
mov eax, dword [esp + 0x20]
inc ecx
add esi, 4
cmp ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], esi
jge 0x423a1e
jmp 0x423791
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
add eax, 0x1c
mov edx, dword [eax]
cmp byte [edx], 0
je 0x4239d6
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x7c]
call fcn.00403bc0
jmp 0x4239de
mov dword [esp + 0x74], 0x496630
mov ecx, dword [esp + 0x74]
mov edx, dword [0x496644]
push ecx
push 0
push str.Cant_replace_rectangle
push 0xa
push str.PICTURE__s
push edx
call fcn.00407250
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x496630
je 0x423a17
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
mov eax, dword [esp + 0x4c]
push eax
call fcn.004640e0
mov edx, dword [ebp]
add esp, 4
mov ecx, ebp
call dword [edx + 8]
push 0x200000
call fcn.004640eb
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x423ab8
mov ebp, dword [ebp + 8]
add ebp, 0x1c
mov ebp, dword [ebp]
cmp byte [ebp], 0
je 0x423a70
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x7c]
call fcn.00403bc0
jmp 0x423a78
mov dword [esp + 0x74], 0x496630
mov eax, dword [esp + 0x74]
mov ecx, dword [0x496644]
push eax
push 0
push str.2097152
push 2
push str.PICTURE__s
push ecx
call fcn.00407250
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x496630
je 0x423ab1
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
mov ebx, dword [esp + 0x30]
mov esi, ebx
shl esi, 0x11
push esi
call fcn.004640eb
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x48], edi
jne 0x423b42
mov ebp, dword [ebp + 8]
add ebp, 0x1c
mov ebp, dword [ebp]
cmp byte [ebp], 0
je 0x423afc
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x7c]
call fcn.00403bc0
jmp 0x423b04
mov dword [esp + 0x74], 0x496630
mov edx, dword [esp + 0x74]
mov eax, dword [0x496644]
push edx
push ebx
push 0x48a374
push 2
push str.PICTURE__s
push eax
call fcn.00407250
mov eax, dword [esp + 0x8c]
add esp, 0x18
cmp eax, 0x496630
je 0x423b3b
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
push esi
call fcn.004640eb
mov edx, eax
add esp, 4
test edx, edx
mov dword [esp + 0x38], edx
jne 0x423bd4
mov ebp, dword [ebp + 8]
add ebp, 0x1c
mov esi, dword [ebp]
cmp byte [esi], 0
je 0x423b9b
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebx + 1]
push ecx
call fcn.004640eb
mov ecx, ebx
mov ebp, eax
mov edx, ecx
mov edi, ebp
shr ecx, 2
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 ebx, dword [esp + 0x30]
jmp 0x423ba0
mov ebp, 0x496630
mov eax, dword [0x496644]
push ebp
push ebx
push str.ZBuf
push 2
push str.PICTURE__s
push eax
call fcn.00407250
add esp, 0x18
cmp ebp, 0x496630
je 0x423bcd
push ebp
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
mov ecx, esi
xor eax, eax
mov ebx, ecx
mov dword [esp + 0x1c], 0
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
xor eax, eax
shr ecx, 2
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
jle 0x423d12
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 4]
test eax, eax
jl 0x423ce5
test esi, esi
je 0x423ce5
mov ebx, dword [esp + 0x14]
mov ebp, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
add edx, ebp
cmp ebp, edx
jge 0x423ccc
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
add eax, edi
cmp edi, eax
jge 0x423cbb
test byte [ebx + 0x42c], 4
je 0x423c84
push edi
push ebp
mov ecx, ebx
call fcn.004226b0
mov edx, dword [esi + 0x1c]
mov ecx, edi
sub ecx, edx
mov edx, dword [esi + 0xc]
add ecx, edx
mov edx, dword [esi + 0x18]
shl ecx, 8
sub ecx, edx
mov edx, dword [esi + 8]
add ecx, edx
mov edx, dword [esp + 0x38]
add ecx, ebp
mov word [edx + ecx*2], ax
push edi
push ebp
mov ecx, ebx
call fcn.00422930
mov edx, dword [esi + 0x1c]
mov ecx, edi
sub ecx, edx
mov edx, dword [esi + 0xc]
add ecx, edx
mov edx, dword [esi + 0x18]
shl ecx, 8
sub ecx, edx
mov edx, dword [esi + 8]
add ecx, edx
mov edx, dword [esp + 0x48]
add ecx, ebp
inc edi
mov word [edx + ecx*2], ax
mov eax, dword [esi + 0x14]
add eax, dword [esi + 0x1c]
cmp edi, eax
jl 0x423c4f
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
inc ebp
add ecx, edx
cmp ebp, ecx
jl 0x423c43
mov esi, dword [esi + 0x20]
test esi, esi
je 0x423ce5
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*8]
lea esi, [eax + edx*4]
test esi, esi
jne 0x423c33
mov esi, dword [esp + 0x14]
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 4]
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
inc eax
mov edx, dword [ecx + 4]
add edi, 0x24
cmp eax, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edi
jl 0x423c18
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
test ebx, ebx
jle 0x423d3d
lea eax, [edx + 0xc]
mov ecx, ebx
mov esi, dword [eax]
and esi, 0x800000ff
jns 0x423d35
dec esi
or esi, 0xffffff00
inc esi
mov dword [eax], esi
add eax, 0x24
dec ecx
jne 0x423d23
test ebx, ebx
jle 0x423d65
lea eax, [edx + 0x10]
mov ebp, ebx
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x423d5f
mov ecx, dword [eax]
lea edi, [eax - 0x10]
lea ecx, [ecx + ecx*8]
lea esi, [edx + ecx*4]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
add eax, 0x24
dec ebp
jne 0x423d46
mov ebp, dword [esp + 0x74]
push 0
push 0x46525553
mov ecx, ebp
call fcn.00406780
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x30]
test byte [edx + 0x42c], 4
je 0x423d91
lea eax, [esi + esi]
mov dword [esp + 0x10], eax
jmp 0x423d95
mov dword [esp + 0x10], esi
mov edx, dword [ebp]
lea eax, [esp + 0x10]
push 2
push eax
mov ecx, ebp
call dword [edx + 4]
test esi, esi
mov dword [esp + 0x10], 0
jle 0x424074
xor edx, edx
xor edi, edi
test ebx, ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x50], edi
jle 0x423e1c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], ebx
mov esi, dword [ecx + 0x42c]
and esi, 4
add eax, 0x10
mov ecx, dword [esp + 0x10]
test esi, esi
je 0x423de6
add ecx, ecx
cmp dword [eax - 0xc], ecx
jne 0x423e0e
mov ecx, dword [eax - 8]
mov ebx, dword [eax]
add ecx, ebx
cmp edx, ecx
jge 0x423dfc
mov edx, ecx
mov dword [esp + 0x3c], edx
mov ecx, dword [eax - 4]
mov ebx, dword [eax + 4]
add ecx, ebx
cmp edi, ecx
jge 0x423e0e
mov edi, ecx
mov dword [esp + 0x50], edi
mov ecx, dword [esp + 0x58]
add eax, 0x24
dec ecx
mov dword [esp + 0x58], ecx
jne 0x423ddc
mov eax, 0x20
mov ecx, eax
cmp edx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], ecx
jle 0x423e39
add eax, eax
cmp eax, edx
jl 0x423e2f
mov dword [esp + 0x40], eax
cmp edi, 0x20
jle 0x423e48
add ecx, ecx
cmp ecx, edi
jl 0x423e3e
mov dword [esp + 0x2c], ecx
cmp eax, 0x100
jle 0x423edb
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], eax
mov eax, dword [edx + 8]
add eax, 0x1c
mov esi, dword [eax]
cmp byte [esi], 0
je 0x423ea0
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea eax, [ebp + 1]
push eax
call fcn.004640eb
mov ecx, ebp
mov ebx, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
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 0x423ea5
mov ebx, 0x496630
mov eax, dword [esp + 0x68]
mov ecx, dword [0x496644]
push ebx
push eax
push str.SurfSizeX
push 4
push str.PICTURE__s
push ecx
call fcn.00407250
add esp, 0x18
cmp ebx, 0x496630
je 0x423ed7
push ebx
call fcn.004640e0
add esp, 4
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x100
jle 0x423f6b
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], ecx
mov eax, dword [edx + 8]
add eax, 0x1c
mov esi, dword [eax]
cmp byte [esi], 0
je 0x423f34
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea eax, [ebp + 1]
push eax
call fcn.004640eb
mov ecx, ebp
mov ebx, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
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 0x423f39
mov ebx, 0x496630
mov eax, dword [esp + 0x68]
mov ecx, dword [0x496644]
push ebx
push eax
push str.SurfSizeY
push 4
push str.PICTURE__s
push ecx
call fcn.00407250
add esp, 0x18
cmp ebx, 0x496630
je 0x423f6b
push ebx
call fcn.004640e0
add esp, 4
mov edx, dword [ebp]
lea eax, [esp + 0x40]
push 2
push eax
mov ecx, ebp
call dword [edx + 4]
mov edx, dword [ebp]
lea eax, [esp + 0x2c]
push 2
push eax
mov ecx, ebp
call dword [edx + 4]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
push ecx
push edx
mov edx, dword [esp + 0x50]
shl eax, 0x11
add eax, edx
mov ecx, edi
push eax
push esi
call fcn.00422cc0
mov edx, dword [ebp]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push 4
push eax
mov ecx, ebp
call dword [edx + 4]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
push ecx
push edx
push esi
mov ecx, ebp
call fcn.00406540
test byte [edi + 0x42c], 4
je 0x42405b
mov ecx, dword [esp + 0x2c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x24], eax
jle 0x424036
mov ecx, dword [esp + 0x40]
add ecx, ecx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
shl esi, 8
add esi, eax
shl esi, 9
add esi, edx
mov edx, dword [esp + 0x4c]
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 + 0x40]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
add ecx, ecx
add edi, ecx
inc eax
cmp eax, edx
mov dword [esp + 0x24], edi
jl 0x423ff3
mov edx, dword [ebp]
lea eax, [esp + 0x24]
push 4
push eax
mov ecx, ebp
call dword [edx + 4]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.00406540
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x423db4
mov ecx, ebp
call fcn.00406830
push 0
push 0x41544144
mov ecx, ebp
call fcn.00406780
mov esi, dword [esp + 0x18]
mov edx, dword [ebp]
lea eax, [ebx + ebx*8]
mov ecx, ebp
shl eax, 2
push eax
push esi
call dword [edx + 4]
mov ecx, ebp
call fcn.00406830
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4240b5
push eax
call fcn.004640e0
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4240c6
push eax
call fcn.004640e0
add esp, 4
mov ecx, dword [esp + 0x48]
push ecx
call fcn.004640e0
mov edx, dword [esp + 0x3c]
push edx
call fcn.004640e0
push esi
call fcn.004640e0
mov eax, dword [esp + 0x58]
push eax
call fcn.004640e0
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.004640e0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 4