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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
mov eax, 1
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [edi + 8], 0
je 0x5130bb
push edi
call fcn.005266d0
add esp, 4
cmp dword [ebp + 0x10], 0
je 0x5102f4
mov eax, dword [edi + 0xc]
test eax, 0x1000
je 0x510272
and eax, 0xffffefff
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x2b8]
push edi
call eax
add esp, 4
test eax, eax
jne 0x510272
push str.Error_post_encoding_before_directory_write
push str.TIFFWriteDirectorySec
push edi
call fcn.0051da80
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x2d4]
push edi
call eax
add esp, 4
cmp dword [edi + 0x308], 0
jle 0x5102a1
test byte [edi + 0xc], 0x40
je 0x5102a1
push edi
call fcn.00514c50
add esp, 4
test eax, eax
jne 0x5102a1
push str.Error_flushing_data_before_directory_write
jmp 0x51025b
test dword [edi + 0xc], 0x200
je 0x5102f0
mov eax, dword [edi + 0x2f4]
test eax, eax
je 0x5102f0
push eax
push edi
call fcn.0050f3a0
add esp, 8
mov dword [edi + 0x2f4], 0
mov dword [edi + 0x308], 0
mov dword [edi + 0x2f8], 0
mov dword [edi + 0x2fc], 0
mov dword [edi + 0x300], 0
and dword [edi + 0xc], 0xffffffaf
test byte [edi + 0x38], 0x80
je 0x510318
mov eax, 0x80b2
cmp word [edi + 0x68], ax
jne 0x510318
push str.Creating_TIFF_with_legacy_Deflate_codec_identifier__COMPRESSION_ADOBE_DEFLATE_is_more_widely_supported
push str.TIFFWriteDirectorySec
push edi
call fcn.00526da0
add esp, 0xc
mov eax, dword [ebp + 0xc]
lea edx, [edi + 0xc]
xor ebx, ebx
xorps xmm0, xmm0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ebx
movsd qword [esp + 0x98], xmm0
xor esi, esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], esi
test eax, eax
je 0x511f5e
test byte [edi + 0x38], 2
je 0x510459
mov eax, dword [edi + 0x48]
test ebx, ebx
jne 0x51036a
mov esi, 1
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510459
mov ecx, dword [edx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x51039e
movzx eax, ax
mov dword [esp + 0x6c], eax
test ecx, ecx
je 0x510391
lea eax, [esp + 0x6c]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x6c]
push eax
push 2
push 1
push 3
jmp 0x5103be
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x5103b3
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0x100
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov edx, dword [esp + 0x38]
mov eax, dword [edi + 0x4c]
mov ecx, dword [edx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x510415
movzx eax, ax
mov dword [esp + 0x70], eax
test ecx, ecx
je 0x510408
lea eax, [esp + 0x70]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x70]
push eax
push 2
push 1
push 3
jmp 0x510435
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x51042a
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0x101
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
test byte [edi + 0x38], 4
je 0x510561
mov eax, dword [edi + 0x54]
test ebx, ebx
jne 0x510476
add esi, 2
mov dword [esp + 0x2c], esi
jmp 0x510561
mov ecx, dword [edx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x5104aa
movzx eax, ax
mov dword [esp + 0x74], eax
test ecx, ecx
je 0x51049d
lea eax, [esp + 0x74]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x74]
push eax
push 2
push 1
push 3
jmp 0x5104ca
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x5104bf
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0x142
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x58]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x510521
movzx eax, ax
mov dword [esp + 0x78], eax
test ecx, ecx
je 0x510514
lea eax, [esp + 0x78]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x78]
push eax
push 2
push 1
push 3
jmp 0x510541
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x510536
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0x143
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x38], 8
je 0x5106b3
movss xmm0, dword [edi + 0x84]
cvtps2pd xmm0, xmm0
test ebx, ebx
jne 0x510586
add esi, 2
mov dword [esp + 0x2c], esi
jmp 0x5106b3
movsd xmm1, qword [esp + 0x98]
comisd xmm1, xmm0
ja 0x5129e6
ucomisd xmm0, xmm0
lahf
test ah, 0x44
jp 0x5129d7
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x84]
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f450
mov esi, dword [esp + 0x48]
add esp, 0x10
test byte [esi], 0x80
je 0x5105ed
lea eax, [esp + 0x80]
push eax
call fcn.00527000
lea eax, [esp + 0x88]
push eax
call fcn.00527000
add esp, 8
lea eax, [esp + 0x80]
push eax
push 8
push 1
push 5
push 0x11a
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
movss xmm0, dword [edi + 0x88]
movsd xmm1, qword [esp + 0x98]
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
ja 0x5129e6
ucomisd xmm0, xmm0
lahf
test ah, 0x44
jp 0x5129d7
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x8c]
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f450
add esp, 0x10
test byte [esi], 0x80
je 0x510685
lea eax, [esp + 0x88]
push eax
call fcn.00527000
lea eax, [esp + 0x90]
push eax
call fcn.00527000
add esp, 8
lea eax, [esp + 0x88]
push eax
push 8
push 1
push 5
push 0x11b
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x38], 0x10
je 0x510805
movss xmm0, dword [edi + 0x90]
cvtps2pd xmm0, xmm0
test ebx, ebx
jne 0x5106d8
add esi, 2
mov dword [esp + 0x2c], esi
jmp 0x510805
movsd xmm1, qword [esp + 0x98]
comisd xmm1, xmm0
ja 0x5129e6
ucomisd xmm0, xmm0
lahf
test ah, 0x44
jp 0x5129d7
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f450
mov esi, dword [esp + 0x48]
add esp, 0x10
test byte [esi], 0x80
je 0x51073f
lea eax, [esp + 0x90]
push eax
call fcn.00527000
lea eax, [esp + 0x98]
push eax
call fcn.00527000
add esp, 8
lea eax, [esp + 0x90]
push eax
push 8
push 1
push 5
push 0x11e
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
movss xmm0, dword [edi + 0x94]
movsd xmm1, qword [esp + 0x98]
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
ja 0x5129e6
ucomisd xmm0, xmm0
lahf
test ah, 0x44
jp 0x5129d7
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xa8]
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f450
add esp, 0x10
test byte [esi], 0x80
je 0x5107d7
lea eax, [esp + 0xa4]
push eax
call fcn.00527000
lea eax, [esp + 0xac]
push eax
call fcn.00527000
add esp, 8
lea eax, [esp + 0xa4]
push eax
push 8
push 1
push 5
push 0x11f
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x38], 0x20
je 0x51085e
test ebx, ebx
jne 0x510816
inc esi
mov dword [esp + 0x2c], esi
jmp 0x51085e
mov eax, dword [edi + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510833
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0xfe
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x38], 0x40
je 0x51092c
movzx eax, word [edi + 0x64]
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x51087e
inc esi
mov dword [esp + 0x2c], esi
jmp 0x51092c
movzx eax, word [edi + 0x72]
add eax, eax
push eax
push edi
call fcn.0050f3b0
mov esi, eax
add esp, 8
mov dword [esp + 0x3c], esi
test esi, esi
je 0x5129f5
movzx eax, word [edi + 0x72]
xor edx, edx
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x30], ebx
xor ebx, ebx
cmp bx, ax
mov ebx, dword [esp + 0x34]
jae 0x5108d6
mov ebx, dword [esp + 0x48]
nop dword [eax]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x72]
inc edx
cmp dx, ax
jb 0x5108c0
mov ebx, dword [esp + 0x34]
jmp 0x5108da
mov eax, dword [esp + 0x30]
movzx ecx, ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
test byte [eax], 0x80
je 0x5108f8
push ecx
push esi
call fcn.00526fa0
mov ecx, dword [esp + 0x50]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x102
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x38], 0x80
je 0x510986
test ebx, ebx
jne 0x51093d
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510986
movzx eax, word [edi + 0x68]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x51095b
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x103
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x100
je 0x5109e3
test ebx, ebx
jne 0x51099a
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5109e3
movzx eax, word [edi + 0x6a]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x5109b8
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x106
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x200
je 0x510a40
test ebx, ebx
jne 0x5109f7
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510a40
movzx eax, word [edi + 0x6c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510a15
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x107
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x400
je 0x510a9d
test ebx, ebx
jne 0x510a54
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510a9d
movzx eax, word [edi + 0x6e]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510a72
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x10a
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x8000
je 0x510afa
test ebx, ebx
jne 0x510ab1
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510afa
movzx eax, word [edi + 0x70]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510acf
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x112
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x10000
je 0x510b57
test ebx, ebx
jne 0x510b0e
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510b57
movzx eax, word [edi + 0x72]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510b2c
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x115
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x20000
je 0x510bea
mov eax, dword [edi + 0x74]
test ebx, ebx
jne 0x510b72
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510bea
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x510baa
movzx eax, ax
mov dword [esp + 0x7c], eax
test ecx, ecx
je 0x510b9d
lea eax, [esp + 0x7c]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x7c]
push eax
push 2
push 1
push 3
jmp 0x510bca
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x510bbf
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0x116
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x40000
je 0x510cbc
movzx eax, word [edi + 0x78]
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x510c0d
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510cbc
movzx eax, word [edi + 0x72]
add eax, eax
push eax
push edi
call fcn.0050f3b0
mov esi, eax
add esp, 8
mov dword [esp + 0x3c], esi
test esi, esi
je 0x5129f5
movzx eax, word [edi + 0x72]
xor edx, edx
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x30], ebx
xor ebx, ebx
cmp bx, ax
mov ebx, dword [esp + 0x34]
jae 0x510c66
mov ebx, dword [esp + 0x48]
nop dword [eax + eax]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x72]
inc edx
cmp dx, ax
jb 0x510c50
mov ebx, dword [esp + 0x34]
jmp 0x510c6a
mov eax, dword [esp + 0x30]
movzx ecx, ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
test byte [eax], 0x80
je 0x510c88
push ecx
push esi
call fcn.00526fa0
mov ecx, dword [esp + 0x50]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x118
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x80000
je 0x510d8c
movzx eax, word [edi + 0x7a]
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x510cdf
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510d8c
movzx eax, word [edi + 0x72]
add eax, eax
push eax
push edi
call fcn.0050f3b0
mov esi, eax
add esp, 8
mov dword [esp + 0x3c], esi
test esi, esi
je 0x5129f5
movzx eax, word [edi + 0x72]
xor edx, edx
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x30], ebx
xor ebx, ebx
cmp bx, ax
mov ebx, dword [esp + 0x34]
jae 0x510d36
mov ebx, dword [esp + 0x48]
nop word [eax + eax]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x72]
inc edx
cmp dx, ax
jb 0x510d20
mov ebx, dword [esp + 0x34]
jmp 0x510d3a
mov eax, dword [esp + 0x30]
movzx ecx, ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
test byte [eax], 0x80
je 0x510d58
push ecx
push esi
call fcn.00526fa0
mov ecx, dword [esp + 0x50]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x119
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x100000
je 0x510dec
test ebx, ebx
jne 0x510da0
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510dec
movzx eax, word [edi + 0x8e]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510dc1
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x11c
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x400000
je 0x510e4c
test ebx, ebx
jne 0x510e00
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510e4c
movzx eax, word [edi + 0x8c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510e21
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x128
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x800000
je 0x510ea7
lea eax, [edi + 0x98]
test ebx, ebx
jne 0x510e66
inc esi
mov dword [esp + 0x2c], esi
jmp 0x510ea7
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x510e80
push 2
push eax
call fcn.00526fa0
add esp, 8
lea eax, [edi + 0x98]
push eax
push 4
push 2
push 3
push 0x129
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x1000000
je 0x51128d
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + 0xb8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax]
mov eax, dword [edi + 0xc0]
mov dword [esp + 0x40], eax
test edx, 0x400
jne 0x51109f
test ebx, ebx
jne 0x510ee8
inc esi
mov dword [esp + 0x2c], esi
jmp 0x51128d
cmp byte [edi + 0x13c], 0
je 0x510f03
push 0
push 0
push 0
push 0
push 0x117
jmp 0x5110c3
mov esi, dword [esp + 0x44]
test edx, 0x80000
je 0x510f4e
cmp esi, 1
jbe 0x510f31
push edi
call fcn.0050e320
push 0
push 0xffffffffffffffff
push edx
push eax
push edi
call fcn.00514690
add esp, 0x18
test eax, eax
je 0x510f4e
mov eax, dword [esp + 0x40]
push eax
push esi
push 0x117
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.005131a0
add esp, 0x18
mov esi, eax
jmp 0x511281
cmp esi, 1
jbe 0x511009
push edi
call fcn.0050e320
push 0
push 0xffff
push edx
push eax
push edi
call fcn.00514690
add esp, 0x18
test eax, eax
jne 0x511009
lea eax, [esi + esi]
push eax
push edi
mov dword [esp + 0x44], eax
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
je 0x512a64
mov ecx, eax
xor edx, edx
mov eax, dword [esp + 0x40]
nop dword [eax]
cmp dword [eax + 4], 0
mov ebx, dword [eax]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x34]
ja 0x512a04
jb 0x510fc4
cmp dword [esp + 0x30], 0xffff
ja 0x512a04
mov ebx, dword [esp + 0x30]
inc edx
mov word [ecx], bx
add eax, 8
mov ebx, dword [esp + 0x34]
add ecx, 2
cmp edx, esi
jb 0x510fa0
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x510ff0
push esi
push dword [esp + 0x48]
call fcn.00526fa0
add esp, 8
push dword [esp + 0x44]
mov ecx, 3
push dword [esp + 0x40]
push esi
push ecx
push 0x117
jmp 0x511264
lea eax, [esi*4]
push eax
push edi
mov dword [esp + 0x44], eax
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
je 0x512a64
xor edx, edx
mov ecx, eax
test esi, esi
je 0x511073
mov eax, dword [esp + 0x40]
cmp dword [eax + 4], 0
mov ebx, dword [eax]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x34]
ja 0x512a34
jb 0x51105a
cmp dword [esp + 0x30], 0xffffffff
mov edi, dword [ebp + 8]
ja 0x512a34
mov ebx, dword [esp + 0x30]
inc edx
mov dword [ecx], ebx
add eax, 8
mov ebx, dword [esp + 0x34]
add ecx, 4
cmp edx, esi
jb 0x511036
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x511086
push esi
push eax
call fcn.00526f60
add esp, 8
push dword [esp + 0x44]
mov ecx, 4
push dword [esp + 0x40]
push esi
push ecx
push 0x117
jmp 0x511264
test ebx, ebx
jne 0x5110ad
inc esi
mov dword [esp + 0x2c], esi
jmp 0x51128d
cmp byte [edi + 0x13c], 0
je 0x5110d9
push 0
push 0
push 0
push 0
push 0x145
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
mov esi, eax
jmp 0x511281
mov esi, dword [esp + 0x44]
test edx, 0x80000
je 0x511124
cmp esi, 1
jbe 0x511107
push edi
call fcn.0050e950
push 0
push 0xffffffffffffffff
push edx
push eax
push edi
call fcn.00514690
add esp, 0x18
test eax, eax
je 0x511124
mov eax, dword [esp + 0x40]
push eax
push esi
push 0x145
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.005131a0
add esp, 0x18
mov esi, eax
jmp 0x511281
cmp esi, 1
jbe 0x5111cc
push edi
call fcn.0050e950
push 0
push 0xffff
push edx
push eax
push edi
call fcn.00514690
add esp, 0x18
test eax, eax
jne 0x5111cc
lea eax, [esi + esi]
push eax
push edi
mov dword [esp + 0x44], eax
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
je 0x512a64
mov ecx, eax
xor edx, edx
mov eax, dword [esp + 0x40]
cmp dword [eax + 4], 0
mov ebx, dword [eax]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x34]
ja 0x512a04
jb 0x511196
cmp dword [esp + 0x30], 0xffff
ja 0x512a04
mov ebx, dword [esp + 0x30]
inc edx
mov word [ecx], bx
add eax, 8
mov ebx, dword [esp + 0x34]
add ecx, 2
cmp edx, esi
jb 0x511172
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x5111c2
push esi
push dword [esp + 0x48]
call fcn.00526fa0
add esp, 8
mov ecx, 3
jmp 0x511255
lea eax, [esi*4]
push eax
push edi
mov dword [esp + 0x44], eax
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
je 0x512a64
xor edx, edx
mov ecx, eax
test esi, esi
je 0x51123d
mov eax, dword [esp + 0x40]
nop dword [eax]
cmp dword [eax + 4], 0
mov ebx, dword [eax]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x34]
ja 0x512a34
jb 0x511224
cmp dword [esp + 0x30], 0xffffffff
mov edi, dword [ebp + 8]
ja 0x512a34
mov ebx, dword [esp + 0x30]
inc edx
mov dword [ecx], ebx
add eax, 8
mov ebx, dword [esp + 0x34]
add ecx, 4
cmp edx, esi
jb 0x511200
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x511250
push esi
push eax
call fcn.00526f60
add esp, 8
mov ecx, 4
push dword [esp + 0x44]
push dword [esp + 0x40]
push esi
push ecx
push 0x145
push ebx
lea ecx, [esp + 0x44]
mov eax, edi
push ecx
push eax
call fcn.00513210
push dword [esp + 0x64]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x2000000
je 0x5114ab
mov eax, dword [esp + 0x38]
mov edx, dword [eax]
mov eax, dword [edi + 0xbc]
mov dword [esp + 0x48], eax
test edx, 0x400
jne 0x51139b
test eax, eax
je 0x5114ab
mov ecx, dword [edi + 0xb8]
mov dword [esp + 0x30], ecx
test ebx, ebx
jne 0x5112d6
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5114ab
cmp byte [edi + 0x13c], 0
je 0x5112f1
push 0
push 0
push 0
push 0
push 0x111
jmp 0x5113c9
test edx, 0x80000
je 0x511316
push eax
push ecx
push 0x111
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.005131a0
add esp, 0x18
mov esi, eax
jmp 0x51149f
lea eax, [ecx*4]
push eax
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x512a64
mov esi, dword [esp + 0x30]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x51136f
mov eax, dword [esp + 0x48]
cmp dword [eax + 4], 0
mov esi, dword [eax]
ja 0x512a73
jb 0x51135a
cmp esi, 0xffffffff
ja 0x512a73
mov dword [ecx], esi
inc edx
mov esi, dword [esp + 0x30]
add eax, 8
add ecx, 4
cmp edx, esi
jb 0x511343
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x511382
push esi
push eax
call fcn.00526f60
add esp, 8
push dword [esp + 0x3c]
lea eax, [esi*4]
push eax
push esi
push 4
push 0x111
jmp 0x511484
mov ecx, dword [edi + 0xb8]
mov dword [esp + 0x30], ecx
test ebx, ebx
jne 0x5113b3
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5114ab
cmp byte [edi + 0x13c], 0
je 0x5113df
push 0
push 0
push 0
push 0
push 0x144
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
mov esi, eax
jmp 0x51149f
test edx, 0x80000
je 0x511404
push eax
push ecx
push 0x144
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.005131a0
add esp, 0x18
mov esi, eax
jmp 0x51149f
lea eax, [ecx*4]
push eax
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x512a64
mov esi, dword [esp + 0x30]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x51145d
mov eax, dword [esp + 0x48]
cmp dword [eax + 4], 0
mov esi, dword [eax]
ja 0x512a73
jb 0x511448
cmp esi, 0xffffffff
ja 0x512a73
mov dword [ecx], esi
inc edx
mov esi, dword [esp + 0x30]
add eax, 8
add ecx, 4
cmp edx, esi
jb 0x511431
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x511470
push esi
push eax
call fcn.00526f60
add esp, 8
push dword [esp + 0x3c]
lea eax, [esi*4]
push eax
push esi
push 4
push 0x144
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x38], 0x4000000
je 0x51157c
test ebx, ebx
jne 0x5114c6
inc esi
mov dword [esp + 0x2c], esi
jmp 0x51157c
mov cl, byte [edi + 0x64]
mov esi, 1
shl esi, cl
mov dword [esp + 0x48], esi
lea eax, [esi + esi*2]
add eax, eax
push eax
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
je 0x512aa3
add esi, esi
push esi
push dword [edi + 0x9c]
push eax
call fcn.0050aaa0
mov eax, dword [esp + 0x4c]
push esi
push dword [edi + 0xa0]
add eax, esi
push eax
call fcn.0050aaa0
mov eax, dword [esp + 0x58]
push esi
mov esi, dword [esp + 0x64]
push dword [edi + 0xa4]
lea eax, [eax + esi*4]
push eax
call fcn.0050aaa0
mov eax, dword [esp + 0x5c]
lea esi, [esi + esi*2]
add esp, 0x24
test byte [eax], 0x80
je 0x511545
push esi
push dword [esp + 0x44]
call fcn.00526fa0
add esp, 8
push dword [esp + 0x40]
lea eax, [esi + esi]
push eax
push esi
push 3
push pe_nt_image_headers32
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x60]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
cmp dword [edi + 0x38], 0
jge 0x511611
cmp word [edi + 0xac], 0
je 0x511611
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x60]
push eax
push 0x152
push edi
call fcn.0050d6c0
movzx ecx, word [esp + 0x6c]
add esp, 0x10
mov eax, dword [esp + 0xac]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], ecx
test ebx, ebx
jne 0x5115ce
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511611
mov edx, dword [esp + 0x38]
test byte [edx], 0x80
je 0x5115e9
push ecx
push eax
call fcn.00526fa0
mov ecx, dword [esp + 0x50]
add esp, 8
mov eax, dword [esp + 0x30]
push eax
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x152
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x3c], 1
je 0x5116dc
movzx eax, word [edi + 0x66]
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x511631
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5116dc
movzx eax, word [edi + 0x72]
add eax, eax
push eax
push edi
call fcn.0050f3b0
mov esi, eax
add esp, 8
mov dword [esp + 0x3c], esi
test esi, esi
je 0x5129f5
movzx eax, word [edi + 0x72]
xor edx, edx
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x30], ebx
xor ebx, ebx
cmp bx, ax
mov ebx, dword [esp + 0x34]
jae 0x511686
mov ebx, dword [esp + 0x48]
nop dword [eax]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x72]
inc edx
cmp dx, ax
jb 0x511670
mov ebx, dword [esp + 0x34]
jmp 0x51168a
mov eax, dword [esp + 0x30]
movzx ecx, ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
test byte [eax], 0x80
je 0x5116a8
push ecx
push esi
call fcn.00526fa0
mov ecx, dword [esp + 0x50]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x153
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x3c], 2
je 0x51170a
push dword [edi + 0x7c]
movzx eax, word [edi + 0x72]
push eax
push 0x154
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.005134a0
add esp, 0x18
test eax, eax
je 0x512b3b
mov esi, dword [esp + 0x2c]
test byte [edi + 0x3c], 4
je 0x51173b
push dword [edi + 0x80]
movzx eax, word [edi + 0x72]
push eax
push 0x155
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.005134a0
add esp, 0x18
test eax, eax
je 0x512b3b
mov esi, dword [esp + 0x2c]
test byte [edi + 0x3c], 8
je 0x511794
test ebx, ebx
jne 0x51174c
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511794
mov eax, dword [edi + 0x50]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x511769
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0x80e5
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x3c], 0x10
je 0x5117ed
test ebx, ebx
jne 0x5117a5
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5117ed
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x5117c2
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push 0x80e6
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x3c], 0x20
je 0x511845
lea eax, [edi + 0xa8]
test ebx, ebx
jne 0x511804
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511845
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x51181e
push 2
push eax
call fcn.00526fa0
add esp, 8
lea eax, [edi + 0xa8]
push eax
push 4
push 2
push 3
push 0x141
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test byte [edi + 0x3c], 0x80
je 0x51189d
lea eax, [edi + 0x110]
test ebx, ebx
jne 0x51185c
inc esi
mov dword [esp + 0x2c], esi
jmp 0x51189d
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x511876
push 2
push eax
call fcn.00526fa0
add esp, 8
lea eax, [edi + 0x110]
push eax
push 4
push 2
push 3
push 0x212
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x3c], 0x100
je 0x5118fd
test ebx, ebx
jne 0x5118b1
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5118fd
movzx eax, word [edi + 0x114]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x5118d2
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x213
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x3c], 0x200
je 0x5119bd
mov eax, dword [edi + 0x124]
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x511922
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5119bd
push 0x30
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x512ab2
mov ebx, dword [esp + 0x48]
mov esi, eax
mov edi, 6
movss xmm0, dword [ebx]
lea eax, [esi + 4]
push eax
cvtps2pd xmm0, xmm0
push esi
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f450
add esp, 0x10
lea ebx, [ebx + 4]
add esi, 8
sub edi, 1
jne 0x511944
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
test byte [eax], 0x80
je 0x51198a
push 0xc
push esi
call fcn.00526f60
add esp, 8
push esi
push 0x30
push 6
push 5
push 0x214
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x3c], 0x1000
je 0x511b40
test ebx, ebx
jne 0x5119d8
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511b40
mov ax, word [edi + 0x72]
mov edx, 1
sub ax, word [edi + 0xac]
mov cl, byte [edi + 0x64]
shl edx, cl
movzx esi, ax
mov dword [esp + 0x40], edx
cmp esi, 3
jbe 0x511a00
mov esi, 3
jmp 0x511a02
jne 0x511a3b
mov eax, dword [edi + 0x120]
test eax, eax
je 0x511a31
add edx, edx
push edx
push eax
push dword [edi + 0x118]
mov dword [esp + 0x54], edx
call fcn.0050aa40
add esp, 0xc
test eax, eax
jne 0x511a6a
mov eax, dword [esp + 0x48]
mov esi, 2
jmp 0x511a47
lea eax, [edx + edx]
mov esi, 2
jmp 0x511a47
cmp esi, 2
jne 0x511b5a
lea eax, [edx + edx]
mov ecx, dword [edi + 0x11c]
test ecx, ecx
je 0x511a65
push eax
push ecx
push dword [edi + 0x118]
call fcn.0050aa40
add esp, 0xc
test eax, eax
jne 0x511a6a
mov esi, 1
mov edx, dword [esp + 0x40]
movzx eax, si
imul eax, edx
mov dword [esp + 0x3c], eax
add eax, eax
push eax
push edi
mov dword [esp + 0x50], eax
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
je 0x512ac1
mov ecx, dword [esp + 0x40]
add ecx, ecx
push ecx
push dword [edi + 0x118]
mov dword [esp + 0x38], ecx
push eax
call fcn.0050aaa0
add esp, 0xc
cmp si, 1
jbe 0x511ace
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
push ecx
push dword [edi + 0x11c]
add eax, ecx
push eax
call fcn.0050aaa0
add esp, 0xc
cmp si, 2
mov esi, dword [esp + 0x44]
jbe 0x511af2
push dword [esp + 0x30]
mov eax, dword [esp + 0x44]
push dword [edi + 0x120]
lea eax, [esi + eax*4]
push eax
call fcn.0050aaa0
add esp, 0xc
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x511b08
push dword [esp + 0x3c]
push esi
call fcn.00526fa0
add esp, 8
push esi
push dword [esp + 0x4c]
lea eax, [esp + 0x34]
push dword [esp + 0x44]
push 3
push 0x12d
push ebx
push eax
push edi
call fcn.00513210
mov esi, eax
mov eax, dword [esp + 0x64]
push eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x3c], 0x4000
je 0x511b94
mov eax, dword [edi + 0x128]
test ebx, ebx
jne 0x511b6a
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511b94
test si, si
mov eax, 1
cmove esi, eax
jmp 0x511a6e
push dword [edi + 0x12c]
push eax
push eax
push 2
push 0x14d
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x3c], 0x40000
je 0x511bf4
test ebx, ebx
jne 0x511ba8
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511bf4
movzx eax, word [edi + 0x130]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x511bc9
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push 0x14e
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
test dword [edi + 0x3c], 0x20000
je 0x511d72
movzx eax, word [edi + 0x108]
mov ecx, eax
test ax, ax
je 0x511d72
test ebx, ebx
jne 0x511c21
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511d72
mov eax, dword [edi + 0x278]
mov esi, dword [edi + 0x27c]
mov dword [esp + 0x40], eax
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
test dword [ecx], 0x80000
jne 0x511d0b
shl eax, 2
push eax
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
je 0x512b01
mov ecx, dword [edi + 0x10c]
mov edx, eax
movzx eax, word [edi + 0x108]
xor esi, esi
mov ebx, eax
mov dword [esp + 0x48], ebx
xor ebx, ebx
cmp bx, ax
mov ebx, dword [esp + 0x34]
jae 0x511cb0
cmp dword [ecx + 4], 0
mov eax, dword [ecx]
ja 0x512ad0
jb 0x511c99
cmp eax, 0xffffffff
ja 0x512ad0
mov dword [edx], eax
inc esi
movzx eax, word [edi + 0x108]
add edx, 4
add ecx, 8
cmp si, ax
jb 0x511c82
jmp 0x511cb4
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
movzx ecx, ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
test byte [eax], 0x80
je 0x511cd6
push ecx
push esi
call fcn.00526f60
mov ecx, dword [esp + 0x50]
add esp, 8
push esi
lea eax, [ecx*4]
push eax
push ecx
push 0xd
push 0x14a
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push esi
push edi
mov dword [esp + 0x70], eax
call fcn.0050f3a0
mov eax, dword [esp + 0x70]
add esp, 0x28
mov esi, dword [esp + 0x3c]
jmp 0x511d26
push dword [edi + 0x10c]
push eax
push 0x14a
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00513150
add esp, 0x18
test eax, eax
je 0x512e1a
mov eax, dword [esp + 0x38]
or dword [eax], 0x2000
movzx eax, word [edi + 0x108]
mov word [edi + 0x280], ax
cmp eax, 1
jne 0x511d5e
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
jmp 0x511d62
mov eax, dword [esp + 0x40]
mov dword [edi + 0x288], eax
mov dword [edi + 0x28c], esi
mov esi, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x3c], ecx
cmp dword [edi + 0x33c], ecx
jbe 0x511f5e
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [edi + 0x338]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
movzx eax, word [eax + 0x18]
cmp eax, 0x42
jb 0x511f47
mov edx, eax
mov eax, 1
mov ecx, edx
shr edx, 5
and ecx, 0x1f
shl eax, cl
test dword [edi + edx*4 + 0x38], eax
je 0x511f47
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 0x14]
dec eax
cmp eax, 0x27
ja case.0x511ddd.2
movzx eax, byte [eax + 0x5130d8]
jmp dword [eax*4 + 0x5130c4]
lea eax, [esp + 0xb0]
push eax
push dword [edx]
push edi
call fcn.0050b4f0
mov edx, dword [esp + 0xbc]
add esp, 0xc
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x48], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x511e07
mov eax, dword [esp + 0x40]
sub ecx, dword [esp + 0x48]
movzx eax, word [eax]
test ebx, ebx
jne 0x511e27
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511f47
push edx
push ecx
push ecx
push 2
push eax
jmp 0x511f2c
lea eax, [esp + 0x60]
push eax
push dword [edx]
push edi
call fcn.0050b4f0
mov eax, dword [esp + 0x4c]
add esp, 0xc
movzx eax, word [eax]
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x511e5b
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511f47
movzx eax, word [esp + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x511e7a
lea eax, [esp + 0x30]
push eax
call fcn.00527060
add esp, 4
lea eax, [esp + 0x30]
push eax
push 2
push 1
push 3
push dword [esp + 0x58]
jmp 0x511f2c
lea eax, [esp + 0xb4]
push eax
push dword [edx]
push edi
call fcn.0050b4f0
mov eax, dword [esp + 0x4c]
add esp, 0xc
movzx eax, word [eax]
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x511eba
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511f47
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x511edb
lea eax, [esp + 0x30]
push eax
call fcn.00527000
add esp, 4
lea eax, [esp + 0x30]
push eax
push 4
push 1
push 4
push dword [esp + 0x58]
jmp 0x511f2c
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0xc0]
push eax
push dword [edx]
push edi
call fcn.0050b4f0
mov eax, dword [esp + 0x50]
add esp, 0x10
movzx ecx, word [eax]
test ebx, ebx
jne 0x511f19
inc esi
mov dword [esp + 0x2c], esi
jmp 0x511f47
push dword [esp + 0xb8]
mov eax, dword [esp + 0xc0]
push eax
push eax
push 7
push ecx
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
inc eax
mov ecx, eax
mov dword [esp + 0x3c], eax
cmp eax, dword [edi + 0x33c]
jb 0x511d90
xor eax, eax
mov dword [esp + 0x48], eax
cmp dword [edi + 0x134], eax
jbe 0x512875
mov edx, dword [edi + 0x138]
lea ecx, [eax + eax*2]
shl ecx, 2
mov dword [esp + 0x40], ecx
mov eax, dword [ecx + edx]
mov dword [esp + 0x30], eax
movzx ebx, word [eax]
mov eax, dword [eax + 8]
dec eax
mov dword [esp + 0x44], ebx
mov ebx, dword [ecx + edx + 4]
mov dword [esp + 0x3c], ebx
cmp eax, 0x11
ja case.0x511fa3.14
jmp dword [eax*4 + 0x513100]
cmp dword [esp + 0x34], 0
je 0x512857
push dword [ecx + edx + 8]
push ebx
push ebx
push 2
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x44]
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
add esp, 0x20
test eax, eax
je 0x512e1a
mov esi, dword [esp + 0x2c]
jmp 0x512860
cmp dword [esp + 0x34], 0
je 0x512857
push dword [ecx + edx + 8]
push ebx
push ebx
push 7
jmp 0x511fbd
cmp dword [esp + 0x34], 0
je 0x512857
push dword [ecx + edx + 8]
push ebx
push ebx
push 1
jmp 0x511fbd
cmp dword [esp + 0x34], 0
je 0x512857
push dword [ecx + edx + 8]
push ebx
push ebx
push 6
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x30], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x51204f
push ebx
push eax
call fcn.00526fa0
mov eax, dword [esp + 0x38]
add esp, 8
push eax
lea eax, [ebx + ebx]
push eax
push ebx
push 3
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x30], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x512086
push ebx
push eax
call fcn.00526fa0
mov eax, dword [esp + 0x38]
add esp, 8
push eax
lea eax, [ebx + ebx]
push eax
push ebx
push 8
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x30], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x5120bd
push ebx
push eax
call fcn.00526f60
mov eax, dword [esp + 0x38]
add esp, 8
push eax
lea eax, [ebx*4]
push eax
push ebx
push 4
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x30], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x5120f8
push ebx
push eax
call fcn.00526f60
mov eax, dword [esp + 0x38]
add esp, 8
push eax
lea eax, [ebx*4]
push eax
push ebx
push 9
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x30], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test dword [ecx], 0x80000
je 0x51214b
push eax
mov eax, dword [esp + 0x48]
push ebx
mov ebx, dword [esp + 0x3c]
push eax
push ebx
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.005131a0
mov esi, eax
add esp, 0x18
test esi, esi
jmp 0x511fd7
lea eax, [ebx*4]
push eax
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x512b97
xor esi, esi
mov edx, eax
test ebx, ebx
je 0x5121a4
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 4]
test edi, edi
mov ecx, dword [eax]
mov dword [esp + 0x50], edi
mov edi, dword [ebp + 8]
ja 0x512b56
jb 0x512193
cmp ecx, 0xffffffff
ja 0x512b56
mov dword [edx], ecx
inc esi
add eax, 8
add edx, 4
cmp esi, ebx
jb 0x512174
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x5121b7
push ebx
push eax
call fcn.00526f60
add esp, 8
push dword [esp + 0x3c]
lea eax, [ebx*4]
push eax
mov eax, dword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x40]
push 4
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
jmp 0x511fd7
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x30], eax
je 0x512857
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
test ecx, 0x80000
je 0x512251
test cl, cl
jns 0x512224
push ebx
push eax
call fcn.00526f10
mov eax, dword [esp + 0x38]
add esp, 8
push eax
lea eax, [ebx*8]
push eax
push ebx
push 0x11
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x44]
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
mov esi, eax
add esp, 0x20
test esi, esi
jmp 0x511fd7
lea eax, [ebx*4]
push eax
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
je 0x512c43
xor esi, esi
mov edx, eax
test ebx, ebx
je 0x5122cb
mov eax, dword [esp + 0x30]
nop word [eax + eax]
mov edi, dword [eax + 4]
test edi, edi
mov ecx, dword [eax]
mov dword [esp + 0x30], edi
mov edi, dword [ebp + 8]
jg 0x512c02
jl 0x5122a2
cmp ecx, 0x7fffffff
ja 0x512c02
cmp dword [eax + 4], 0xffffffff
jl 0x512bc1
jg 0x5122ba
cmp ecx, 0x80000000
jb 0x512bc1
mov dword [edx], ecx
inc esi
add eax, 8
add edx, 4
cmp esi, ebx
jb 0x512280
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x5122de
push ebx
push eax
call fcn.00526f60
add esp, 8
push dword [esp + 0x40]
lea eax, [ebx*4]
push eax
mov eax, dword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x40]
push 9
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x60]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
jmp 0x511fd7
push dword [esp + 0x30]
call fcn.0051e000
mov ecx, dword [esp + 0x44]
mov edx, eax
mov eax, dword [edi + 0x138]
add esp, 4
mov dword [esp + 0x68], edx
mov eax, dword [ecx + eax + 8]
mov dword [esp + 0x40], eax
cmp edx, 8
jne 0x5123fd
cmp dword [esp + 0x34], 0
je 0x512857
lea eax, [ebx*8]
push eax
push edi
call fcn.0050f3b0
mov ecx, eax
add esp, 8
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x512c6d
mov esi, ecx
test ebx, ebx
je 0x5123ad
sub dword [esp + 0x40], ecx
mov edi, ebx
mov ebx, dword [esp + 0x40]
nop
movsd xmm0, qword [esi + ebx]
lea eax, [esi + 4]
push eax
push esi
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f450
add esp, 0x10
add esi, 8
sub edi, 1
jne 0x512380
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x5123c3
lea eax, [ebx + ebx]
push eax
push ecx
call fcn.00526f60
add esp, 8
push dword [esp + 0x30]
lea eax, [ebx*8]
push eax
mov eax, dword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x40]
push 5
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x50]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
jmp 0x511fd7
cmp dword [esp + 0x34], 0
jne 0x512412
mov ebx, dword [esp + 0x34]
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5124cb
lea eax, [ebx*8]
push eax
push edi
call fcn.0050f3b0
mov ecx, eax
add esp, 8
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x512c97
mov esi, ecx
test ebx, ebx
je 0x512472
mov edi, dword [esp + 0x40]
mov dword [esp + 0x64], ebx
nop
movss xmm0, dword [edi]
lea eax, [esi + 4]
push eax
cvtps2pd xmm0, xmm0
push esi
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f450
add esp, 0x10
lea edi, [edi + 4]
add esi, 8
sub ebx, 1
jne 0x512440
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x512488
lea eax, [ebx + ebx]
push eax
push ecx
call fcn.00526f60
add esp, 8
push dword [esp + 0x30]
lea eax, [ebx*8]
push eax
mov eax, dword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x40]
push 5
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x50]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x68]
cmp edx, 4
je 0x512860
push edx
push str.Rational2Double:_.set_field_type_is_not_4_but__d
push str.TIFFLib:__TIFFWriteDirectorySec__
push edi
call fcn.0051da80
add esp, 0x10
jmp 0x512860
push dword [esp + 0x30]
call fcn.0051e000
mov ecx, dword [esp + 0x44]
mov edx, eax
mov eax, dword [edi + 0x138]
add esp, 4
mov dword [esp + 0x50], edx
mov eax, dword [ecx + eax + 8]
cmp edx, 8
jne 0x5125d1
cmp dword [esp + 0x34], 0
mov dword [esp + 0x30], eax
je 0x512857
lea eax, [ebx*8]
push eax
push edi
call fcn.0050f3b0
mov ecx, eax
add esp, 8
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x512cc1
mov esi, ecx
test ebx, ebx
je 0x512581
sub dword [esp + 0x30], ecx
mov edi, ebx
mov ebx, dword [esp + 0x30]
movsd xmm0, qword [esi + ebx]
lea eax, [esi + 4]
push eax
push esi
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f690
add esp, 0x10
add esi, 8
sub edi, 1
jne 0x512554
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x512597
lea eax, [ebx + ebx]
push eax
push ecx
call fcn.00526f60
add esp, 8
push dword [esp + 0x40]
lea eax, [ebx*8]
push eax
mov eax, dword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x40]
push 0xa
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x60]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
jmp 0x511fd7
cmp dword [esp + 0x34], 0
mov dword [esp + 0x68], eax
jne 0x5125ea
mov ebx, dword [esp + 0x34]
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5126a2
lea eax, [ebx*8]
push eax
push edi
call fcn.0050f3b0
mov ecx, eax
add esp, 8
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x512ceb
mov esi, ecx
test ebx, ebx
je 0x512649
mov edi, dword [esp + 0x68]
mov dword [esp + 0x64], ebx
movss xmm0, dword [edi]
lea eax, [esi + 4]
push eax
cvtps2pd xmm0, xmm0
push esi
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050f690
add esp, 0x10
lea edi, [edi + 4]
add esi, 8
sub ebx, 1
jne 0x512617
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
test byte [eax], 0x80
je 0x51265f
lea eax, [ebx + ebx]
push eax
push ecx
call fcn.00526f60
add esp, 8
push dword [esp + 0x30]
lea eax, [ebx*8]
push eax
mov eax, dword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x40]
push 0xa
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x50]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
je 0x512e1a
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
cmp edx, 4
je 0x512860
push edx
push str.Rational2Double:_.set_field_type_is_not_4_but__d
push str.TIFFLib:__TIFFWriteDirectorySec__
push edi
call fcn.0051da80
add esp, 0x10
jmp 0x512860
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x50], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x5126ee
push ebx
push eax
call fcn.00526f60
mov eax, dword [esp + 0x58]
add esp, 8
push eax
lea eax, [ebx*4]
push eax
push ebx
push 0xb
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x50], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x512729
push ebx
push eax
call fcn.00526f10
mov eax, dword [esp + 0x58]
add esp, 8
push eax
lea eax, [ebx*8]
push eax
push ebx
push 0xc
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x50], eax
je 0x512857
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x512764
push ebx
push eax
call fcn.00526f60
mov eax, dword [esp + 0x58]
add esp, 8
push eax
lea eax, [ebx*4]
push eax
push ebx
push 0xd
jmp 0x511fbd
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + edx + 8]
mov dword [esp + 0x30], eax
je 0x512857
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
test ecx, 0x80000
je 0x5127b9
test cl, cl
jns 0x5127a8
push ebx
push eax
call fcn.00526f10
mov eax, dword [esp + 0x38]
add esp, 8
push eax
lea eax, [ebx*8]
push eax
push ebx
push 0x12
jmp 0x512230
lea eax, [ebx*4]
push eax
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
je 0x512d49
xor esi, esi
mov edx, eax
test ebx, ebx
je 0x51280a
mov eax, dword [esp + 0x30]
cmp dword [eax + 4], 0
mov ecx, dword [eax]
ja 0x512d15
jb 0x5127f9
cmp ecx, 0xffffffff
ja 0x512d15
mov dword [edx], ecx
inc esi
add eax, 8
add edx, 4
cmp esi, ebx
jb 0x5127e2
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
test byte [ecx], 0x80
je 0x51281d
push ebx
push eax
call fcn.00526f60
add esp, 8
push dword [esp + 0x3c]
lea eax, [ebx*4]
push eax
mov eax, dword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x40]
push 0xd
push eax
push ebx
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00513210
push dword [esp + 0x5c]
mov esi, eax
push edi
call fcn.0050f3a0
add esp, 0x28
test esi, esi
jmp 0x511fd7
inc esi
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
cmp eax, dword [edi + 0x134]
jb 0x511f70
test ebx, ebx
jne 0x512d87
mov eax, esi
shl eax, 5
push eax
push edi
call fcn.0050f3b0
mov ebx, eax
add esp, 8
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x512d7d
cmp dword [ebp + 0xc], 0
je 0x5128c1
mov ecx, dword [edi + 0x10]
or ecx, dword [edi + 0x14]
jne 0x5128b9
push edi
call fcn.0050f8d0
add esp, 4
test eax, eax
je 0x512e1a
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
jmp 0x5128eb
mov eax, dword [edi + 0x328]
push 2
push 0
push 0
push dword [edi + 0x31c]
call eax
mov ecx, eax
add esp, 0x10
add ecx, 1
mov eax, edx
adc eax, 0
and ecx, 0xfffffffe
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], eax
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x3c], eax
test edx, edx
je 0x512905
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
lea ebx, [edi + 0x278]
mov dword [esp + 0x48], ebx
test dword [eax], 0x80000
jne 0x512946
lea eax, [esi + esi*2]
mov edx, ecx
mov esi, dword [esp + 0x3c]
lea eax, [eax*4 + 6]
add edx, eax
mov dword [esp + 0x58], eax
mov eax, esi
mov dword [edi + 0x278], edx
adc eax, 0
mov dword [edi + 0x27c], eax
xor eax, eax
jmp 0x512963
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x3c]
lea eax, [eax*4 + 0x10]
mov edx, eax
mov dword [esp + 0x58], eax
add edx, ecx
mov eax, 0
adc eax, esi
mov ebx, dword [esp + 0x48]
mov edi, edx
mov dword [esp + 0x30], eax
mov dword [ebx], edi
mov edi, eax
mov dword [ebx + 4], edi
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x34]
cmp eax, esi
jb 0x512d73
ja 0x51298d
cmp edx, ecx
jb 0x512d73
test eax, eax
jb 0x512d73
ja 0x5129a1
cmp edx, dword [esp + 0x58]
jb 0x512d73
mov eax, edx
and eax, 1
or eax, 0
je 0x5129c1
mov eax, dword [esp + 0x30]
add edx, 1
mov dword [edi + 0x278], edx
adc eax, 0
mov dword [edi + 0x27c], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x5129ce
inc dword [edi + 0x260]
mov edx, dword [esp + 0x38]
jmp 0x510334
push str.Not_a_number_value_is_illegal
push str.TIFFWriteDirectoryTagCheckedRational
jmp 0x512e11
push str.Negative_value_is_illegal
push str.TIFFWriteDirectoryTagCheckedRational
jmp 0x512e11
push str.Out_of_memory
push str.TIFFWriteDirectoryTagShortPerSample
jmp 0x512e11
push str.Attempt_to_write_value_larger_than_0xFFFF_in_SHORT_array.
push str.TIFFWriteDirectoryTagLongLong8Array
push edi
call fcn.0051da80
push dword [esp + 0x50]
push edi
call fcn.0050f3a0
add esp, 0x14
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Attempt_to_write_value_larger_than_0xFFFFFFFF_in_LONG_array.
push str.TIFFWriteDirectoryTagLongLong8Array
push edi
call fcn.0051da80
push dword [esp + 0x50]
push edi
call fcn.0050f3a0
add esp, 0x14
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagLongLong8Array
jmp 0x512e11
push str.Attempt_to_write_value_larger_than_0xFFFFFFFF_in_LONG_array.
push str.TIFFWriteDirectoryTagLongLong8Array
push edi
call fcn.0051da80
push dword [esp + 0x48]
push edi
call fcn.0050f3a0
add esp, 0x14
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagColormap
jmp 0x512e11
push str.Out_of_memory
push str.TIFFWriteDirectoryTagCheckedRationalArray
jmp 0x512e11
push str.Out_of_memory
push str.TIFFWriteDirectoryTagTransferfunction
jmp 0x512e11
push str.Illegal_value_for_SubIFD_tag
push str.TIFFWriteDirectoryTagSubifd
push edi
call fcn.0051da80
mov esi, dword [esp + 0x3c]
push esi
push edi
call fcn.0050f3a0
add esp, 0x14
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagSubifd
jmp 0x512e11
mov eax, dword [edx + 0x1c]
mov ecx, str.unknown
test eax, eax
cmovne ecx, eax
push ecx
push edx
call fcn.004fc9c0
add esp, 4
push eax
push str.Cannot_write_tag__u___s_
push str.TIFFWriteDirectorySec
push edi
call fcn.0051da80
add esp, 0x14
test ebx, ebx
je 0x510269
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x44]
movzx eax, ax
push eax
push dword [esp + 0x54]
push ecx
push str.Attempt_to_write_unsigned_long_value__llu_larger_than_0xFFFFFFFF_for_tag__d_in_Classic_TIFF_file._TIFF_file_writing_aborted
push str.TIFFWriteDirectoryTagLong8Array
push edi
call fcn.0051da80
push dword [esp + 0x54]
push edi
call fcn.0050f3a0
mov ebx, dword [esp + 0x54]
add esp, 0x20
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagLong8Array
push edi
call fcn.0051da80
mov ebx, dword [esp + 0x40]
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x44]
movzx eax, ax
push eax
push dword [esp + 0x34]
push ecx
push str.Attempt_to_write_signed_long_value__lli_smaller_than_0x80000000___2147483648__for_tag__d_in_Classic_TIFF_file._TIFF_writing_to_file_aborted
push str.TIFFWriteDirectoryTagSlong8Array
push edi
call fcn.0051da80
push dword [esp + 0x58]
push edi
call fcn.0050f3a0
mov ebx, dword [esp + 0x54]
add esp, 0x20
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x44]
movzx eax, ax
push eax
push dword [esp + 0x34]
push ecx
push str.Attempt_to_write_signed_long_value__lli_larger_than_0x7FFFFFFF__2147483647__for_tag__d_in_Classic_TIFF_file._TIFF_writing_to_file_aborted
push str.TIFFWriteDirectoryTagSlong8Array
push edi
call fcn.0051da80
push dword [esp + 0x58]
push edi
call fcn.0050f3a0
mov ebx, dword [esp + 0x54]
add esp, 0x20
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagSlong8Array
push edi
call fcn.0051da80
mov ebx, dword [esp + 0x40]
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagCheckedRationalDoubleArray
push edi
call fcn.0051da80
mov ebx, dword [esp + 0x40]
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagCheckedRationalArray
push edi
call fcn.0051da80
mov ebx, dword [esp + 0x40]
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagCheckedSrationalDoubleArray
push edi
call fcn.0051da80
mov ebx, dword [esp + 0x40]
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagCheckedSrationalArray
push edi
call fcn.0051da80
mov ebx, dword [esp + 0x40]
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Attempt_to_write_value_larger_than_0xFFFFFFFF_in_Classic_TIFF_file.
push str.TIFFWriteDirectoryTagIfdIfd8Array
push edi
call fcn.0051da80
push dword [esp + 0x48]
push edi
call fcn.0050f3a0
mov ebx, dword [esp + 0x48]
add esp, 0x14
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagIfdIfd8Array
push edi
call fcn.0051da80
mov ebx, dword [esp + 0x40]
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Maximum_TIFF_file_size_exceeded
jmp 0x512e0c
push str.Out_of_memory
jmp 0x51025b
cmp dword [ebp + 0xc], 0
je 0x512df2
test dword [edi + 0x3c], 0x20000
je 0x512df2
mov eax, dword [edi + 0x288]
or eax, dword [edi + 0x28c]
jne 0x512df2
mov ecx, ebx
test esi, esi
je 0x512dbd
mov edx, 0x14a
nop
cmp word [ecx], dx
je 0x512dc4
inc eax
add ecx, 0x20
cmp eax, esi
jne 0x512db0
push str.Cannot_find_SubIFD_tag
jmp 0x512e0c
mov ecx, dword [esp + 0x4c]
mov edx, dword [edi + 0x10]
test dword [ecx], 0x80000
jne 0x512e2d
lea ecx, [eax + eax*2]
xor eax, eax
shl ecx, 2
add ecx, edx
adc eax, dword [edi + 0x14]
add ecx, 0xa
adc eax, 0
mov dword [edi + 0x288], ecx
mov dword [edi + 0x28c], eax
push dword [esp + 0x58]
push edi
call fcn.0050f3b0
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
jne 0x512e3f
push str.Out_of_memory
push str.TIFFWriteDirectorySec
push edi
call fcn.0051da80
add esp, 0xc
push ebx
push edi
call fcn.0050f3a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [eax + eax*4]
xor eax, eax
shl ecx, 2
add ecx, edx
adc eax, dword [edi + 0x14]
add ecx, 0x14
jmp 0x512de3
mov ecx, dword [esp + 0x4c]
test dword [ecx], 0x80000
jne 0x512f3d
mov word [eax], si
test byte [ecx], 0x80
je 0x512e68
push eax
call fcn.00527060
mov eax, dword [esp + 0x44]
add esp, 4
mov ecx, dword [esp + 0x4c]
add eax, 2
mov dword [esp + 0x30], eax
test esi, esi
je 0x512f08
lea edi, [ebx + 8]
mov ebx, eax
jmp 0x512e84
mov ecx, dword [esp + 0x4c]
mov ax, word [edi - 8]
mov word [ebx], ax
test byte [ecx], 0x80
je 0x512e9d
push ebx
call fcn.00527060
mov ecx, dword [esp + 0x50]
add esp, 4
mov ax, word [edi - 6]
add ebx, 2
mov word [ebx], ax
test byte [ecx], 0x80
je 0x512eb5
push ebx
call fcn.00527060
add esp, 4
mov eax, dword [edi]
add ebx, 2
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
push 4
push eax
push ebx
call fcn.0050aaa0
mov ecx, dword [esp + 0x58]
add esp, 0xc
test byte [ecx], 0x80
je 0x512ee0
push ebx
call fcn.00527000
add esp, 4
push 4
lea eax, [edi + 8]
add ebx, 4
push eax
push ebx
call fcn.0050aaa0
add esp, 0xc
add ebx, 4
add edi, 0x20
sub esi, 1
jne 0x512e80
mov edi, dword [ebp + 8]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x34]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x4c]
test byte [eax], 0x80
je 0x512f25
lea eax, [esp + 0x3c]
push eax
call fcn.00527000
add esp, 4
push 4
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x38]
call fcn.0050aaa0
add esp, 0xc
jmp 0x513023
mov dword [eax], esi
mov dword [eax + 4], 0
test byte [ecx], 0x80
je 0x512f5c
push eax
call fcn.00527020
mov eax, dword [esp + 0x44]
add esp, 4
mov ecx, dword [esp + 0x4c]
add eax, 8
mov dword [esp + 0x30], eax
test esi, esi
je 0x512ffe
mov edi, dword [esp + 0x30]
lea eax, [ebx + 8]
mov dword [esp + 0x50], eax
mov ebx, eax
jmp 0x512f84
mov ecx, dword [esp + 0x4c]
mov ax, word [ebx - 8]
mov word [edi], ax
test byte [ecx], 0x80
je 0x512f9d
push edi
call fcn.00527060
mov ecx, dword [esp + 0x50]
add esp, 4
mov ax, word [ebx - 6]
add edi, 2
mov word [edi], ax
test byte [ecx], 0x80
je 0x512fb5
push edi
call fcn.00527060
add esp, 4
push 8
add edi, 2
push ebx
push edi
call fcn.0050aaa0
mov eax, dword [esp + 0x58]
add esp, 0xc
test byte [eax], 0x80
je 0x512fd6
push edi
call fcn.00527020
add esp, 4
push 8
lea eax, [ebx + 8]
add edi, 8
push eax
push edi
call fcn.0050aaa0
add esp, 0xc
add edi, 8
add ebx, 0x20
sub esi, 1
jne 0x512f80
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x30], edi
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x30]
lea eax, [edi + 0x18]
push 8
push eax
push esi
call fcn.0050aaa0
mov eax, dword [esp + 0x58]
add esp, 0xc
test byte [eax], 0x80
je 0x513023
push esi
call fcn.00527020
add esp, 4
push ebx
push edi
call fcn.0050f3a0
push dword [edi + 0x14]
push dword [edi + 0x10]
push edi
call fcn.0050e030
mov esi, dword [esp + 0x54]
add esp, 0x14
test eax, eax
je 0x51305c
mov ebx, dword [esp + 0x58]
mov eax, dword [edi + 0x324]
push ebx
push esi
push dword [edi + 0x31c]
call eax
add esp, 0xc
cmp eax, ebx
je 0x513081
push str.IO_error_writing_directory
mov eax, edi
push str.TIFFWriteDirectorySec
push eax
call fcn.0051da80
push esi
push edi
call fcn.0050f3a0
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push edi
call fcn.0050f3a0
add esp, 8
cmp dword [ebp + 0x10], 0
je 0x5130b6
push edi
call fcn.0050b2b0
mov ecx, dword [esp + 0x50]
push edi
and dword [ecx], 0xfffffff7
and dword [ecx], 0xffdfffff
mov ecx, dword [edi + 0x2dc]
call ecx
push edi
call fcn.0050b100
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret