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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, 1
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [edi + 8], 0
je 0x4d1960
push edi
call fcn.004c5230
add esp, 4
lea edx, [edi + 0xc]
cmp dword [ebp + 0x10], 0
je 0x4cee2f
mov eax, dword [edx]
test eax, 0x1000
je 0x4ceda8
and eax, 0xffffefff
mov dword [edx], eax
mov eax, dword [edi + 0x2a0]
push edi
call eax
add esp, 4
test eax, eax
jne 0x4ceda8
push str.Error_post_encoding_before_directory_write
push str.TIFFWriteDirectorySec
push dword [edi + 0x304]
call fcn.004bc680
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x2bc]
push edi
call eax
add esp, 4
lea edx, [edi + 0xc]
cmp dword [edi + 0x2f0], 0
jle 0x4ceddc
test byte [edx], 0x40
je 0x4ceddc
push edi
call fcn.004cabb0
add esp, 4
test eax, eax
jne 0x4cedd9
push str.Error_flushing_data_before_directory_write
jmp 0x4ced8c
lea edx, [edi + 0xc]
test dword [edx], 0x200
je 0x4cee2c
mov eax, dword [edi + 0x2dc]
test eax, eax
je 0x4cee2c
push eax
call fcn.004b1830
add esp, 4
mov dword [edi + 0x2dc], 0
mov dword [edi + 0x2f0], 0
lea edx, [edi + 0xc]
mov dword [edi + 0x2e0], 0
mov dword [edi + 0x2e4], 0
mov dword [edi + 0x2e8], 0
and dword [edx], 0xffffffaf
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
movsd qword [esp + 0x88], xmm0
xor ebx, ebx
movsd xmm0, qword [0x5cdc90]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [0x5bbbf8]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x48], ebx
movsd qword [esp + 0x90], xmm0
nop word [eax + eax]
xor esi, esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], esi
test eax, eax
je 0x4d0c8f
test byte [edi + 0x28], 2
je 0x4cef95
mov eax, dword [edi + 0x38]
test ebx, ebx
jne 0x4ceea6
mov esi, 1
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cef95
mov ecx, dword [edx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4ceeda
movzx eax, ax
mov dword [esp + 0x74], eax
test ecx, ecx
je 0x4ceecd
lea eax, [esp + 0x74]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x74]
push eax
push 2
push 1
push 3
jmp 0x4ceefa
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4ceeef
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0x100
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x3c]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4cef51
movzx eax, ax
mov dword [esp + 0x78], eax
test ecx, ecx
je 0x4cef44
lea eax, [esp + 0x78]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x78]
push eax
push 2
push 1
push 3
jmp 0x4cef71
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4cef66
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0x101
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
test byte [edi + 0x28], 4
je 0x4cf0a6
mov eax, dword [edi + 0x44]
test ebx, ebx
jne 0x4cefb2
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x4cf0a6
mov ecx, dword [edx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4cefe6
movzx eax, ax
mov dword [esp + 0x7c], eax
test ecx, ecx
je 0x4cefd9
lea eax, [esp + 0x7c]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x7c]
push eax
push 2
push 1
push 3
jmp 0x4cf006
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4ceffb
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0x142
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x48]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4cf066
movzx eax, ax
mov dword [esp + 0x80], eax
test ecx, ecx
je 0x4cf056
lea eax, [esp + 0x80]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x80]
push eax
push 2
push 1
push 3
jmp 0x4cf086
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4cf07b
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0x143
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 8
je 0x4cf2fc
movss xmm1, dword [edi + 0x74]
cvtps2pd xmm1, xmm1
movsd qword [esp + 0x38], xmm1
test ebx, ebx
jne 0x4cf0ce
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x4cf2fc
movsd xmm0, qword [esp + 0x88]
comisd xmm0, xmm1
ja 0x4d1440
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d1431
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf10e
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 1
jmp 0x4cf197
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4cf15c
movaps xmm0, xmm1
call fcn.00573770
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5bc6e0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf156
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 1
jmp 0x4cf197
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4cf182
mulsd xmm0, xmm1
call fcn.00573770
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0xffffffff
jmp 0x4cf197
divsd xmm0, xmm1
mov dword [esp + 0x4c], 0xffffffff
call fcn.00573770
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x1c]
test byte [esi], 0x80
je 0x4cf1b7
lea eax, [esp + 0x4c]
push eax
call fcn.004bce10
lea eax, [esp + 0x54]
push eax
call fcn.004bce10
add esp, 8
lea eax, [esp + 0x4c]
push eax
push 8
push 1
push 5
push 0x11a
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
movss xmm1, dword [edi + 0x78]
movsd xmm0, qword [esp + 0x88]
cvtps2pd xmm1, xmm1
comisd xmm0, xmm1
movsd qword [esp + 0x38], xmm1
ja 0x4d1440
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d1431
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf22c
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 1
jmp 0x4cf2b5
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4cf27a
movaps xmm0, xmm1
call fcn.00573770
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5bc6e0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf274
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 1
jmp 0x4cf2b5
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4cf2a0
mulsd xmm0, xmm1
call fcn.00573770
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0xffffffff
jmp 0x4cf2b5
divsd xmm0, xmm1
mov dword [esp + 0x54], 0xffffffff
call fcn.00573770
mov dword [esp + 0x58], eax
test byte [esi], 0x80
je 0x4cf2d1
lea eax, [esp + 0x54]
push eax
call fcn.004bce10
lea eax, [esp + 0x5c]
push eax
call fcn.004bce10
add esp, 8
lea eax, [esp + 0x54]
push eax
push 8
push 1
push 5
push 0x11b
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x10
je 0x4cf558
movss xmm1, dword [edi + 0x80]
cvtps2pd xmm1, xmm1
movsd qword [esp + 0x38], xmm1
test ebx, ebx
jne 0x4cf327
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x4cf558
movsd xmm0, qword [esp + 0x88]
comisd xmm0, xmm1
ja 0x4d1440
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d1431
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf367
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 1
jmp 0x4cf3f0
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4cf3b5
movaps xmm0, xmm1
call fcn.00573770
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5bc6e0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf3af
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], 1
jmp 0x4cf3f0
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4cf3db
mulsd xmm0, xmm1
call fcn.00573770
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 0xffffffff
jmp 0x4cf3f0
divsd xmm0, xmm1
mov dword [esp + 0x5c], 0xffffffff
call fcn.00573770
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x1c]
test byte [esi], 0x80
je 0x4cf410
lea eax, [esp + 0x5c]
push eax
call fcn.004bce10
lea eax, [esp + 0x64]
push eax
call fcn.004bce10
add esp, 8
lea eax, [esp + 0x5c]
push eax
push 8
push 1
push 5
push 0x11e
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
movss xmm1, dword [edi + 0x84]
movsd xmm0, qword [esp + 0x88]
cvtps2pd xmm1, xmm1
comisd xmm0, xmm1
movsd qword [esp + 0x38], xmm1
ja 0x4d1440
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d1431
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf488
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 1
jmp 0x4cf511
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4cf4d6
movaps xmm0, xmm1
call fcn.00573770
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5bc6e0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4cf4d0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], 1
jmp 0x4cf511
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4cf4fc
mulsd xmm0, xmm1
call fcn.00573770
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0xffffffff
jmp 0x4cf511
divsd xmm0, xmm1
mov dword [esp + 0x64], 0xffffffff
call fcn.00573770
mov dword [esp + 0x68], eax
test byte [esi], 0x80
je 0x4cf52d
lea eax, [esp + 0x64]
push eax
call fcn.004bce10
lea eax, [esp + 0x6c]
push eax
call fcn.004bce10
add esp, 8
lea eax, [esp + 0x64]
push eax
push 8
push 1
push 5
push 0x11f
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x20
je 0x4cf5b1
test ebx, ebx
jne 0x4cf569
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf5b1
mov eax, dword [edi + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cf586
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0xfe
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x40
je 0x4cf67b
movzx eax, word [edi + 0x54]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4cf5d1
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf67b
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b1840
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d144f
movzx eax, word [edi + 0x62]
mov ecx, esi
mov esi, eax
xor edx, edx
mov dword [esp + 0x18], esi
xor esi, esi
cmp si, ax
mov esi, ecx
jae 0x4cf626
mov ebx, dword [esp + 0x20]
nop dword [eax]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x62]
inc edx
cmp dx, ax
jb 0x4cf610
mov ebx, dword [esp + 0x2c]
jmp 0x4cf62a
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4cf648
push ecx
push esi
call fcn.004bcdb0
mov ecx, dword [esp + 0x28]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x102
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push dword [esp + 0x34]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x80
je 0x4cf6d5
test ebx, ebx
jne 0x4cf68c
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf6d5
movzx eax, word [edi + 0x58]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cf6aa
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x103
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x100
je 0x4cf732
test ebx, ebx
jne 0x4cf6e9
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf732
movzx eax, word [edi + 0x5a]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cf707
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x106
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x200
je 0x4cf78f
test ebx, ebx
jne 0x4cf746
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf78f
movzx eax, word [edi + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cf764
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x107
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x400
je 0x4cf7ec
test ebx, ebx
jne 0x4cf7a3
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf7ec
movzx eax, word [edi + 0x5e]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cf7c1
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x10a
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x8000
je 0x4cf849
test ebx, ebx
jne 0x4cf800
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf849
movzx eax, word [edi + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cf81e
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x112
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x10000
je 0x4cf8a6
test ebx, ebx
jne 0x4cf85d
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf8a6
movzx eax, word [edi + 0x62]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cf87b
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x115
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x20000
je 0x4cf945
mov eax, dword [edi + 0x64]
test ebx, ebx
jne 0x4cf8c4
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cf945
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4cf905
movzx eax, ax
mov dword [esp + 0x84], eax
test ecx, ecx
je 0x4cf8f5
lea eax, [esp + 0x84]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x84]
push eax
push 2
push 1
push 3
jmp 0x4cf925
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4cf91a
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0x116
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x40000
je 0x4cfa0b
movzx eax, word [edi + 0x68]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4cf968
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cfa0b
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b1840
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d144f
movzx eax, word [edi + 0x62]
mov ecx, esi
mov esi, eax
xor edx, edx
mov dword [esp + 0x18], esi
xor esi, esi
cmp si, ax
mov esi, ecx
jae 0x4cf9b6
mov ebx, dword [esp + 0x20]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x62]
inc edx
cmp dx, ax
jb 0x4cf9a0
mov ebx, dword [esp + 0x2c]
jmp 0x4cf9ba
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4cf9d8
push ecx
push esi
call fcn.004bcdb0
mov ecx, dword [esp + 0x28]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x118
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push dword [esp + 0x34]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x80000
je 0x4cfad1
movzx eax, word [edi + 0x6a]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4cfa2e
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cfad1
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b1840
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d144f
movzx eax, word [edi + 0x62]
mov ecx, esi
mov esi, eax
xor edx, edx
mov dword [esp + 0x18], esi
xor esi, esi
cmp si, ax
mov esi, ecx
jae 0x4cfa7c
mov ebx, dword [esp + 0x20]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x62]
inc edx
cmp dx, ax
jb 0x4cfa66
mov ebx, dword [esp + 0x2c]
jmp 0x4cfa80
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4cfa9e
push ecx
push esi
call fcn.004bcdb0
mov ecx, dword [esp + 0x28]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x119
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push dword [esp + 0x34]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x100000
je 0x4cfb2e
test ebx, ebx
jne 0x4cfae5
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cfb2e
movzx eax, word [edi + 0x7e]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cfb03
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x11c
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x400000
je 0x4cfb8b
test ebx, ebx
jne 0x4cfb42
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cfb8b
movzx eax, word [edi + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cfb60
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x128
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x800000
je 0x4cfbe6
lea eax, [edi + 0x88]
test ebx, ebx
jne 0x4cfba5
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cfbe6
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4cfbbf
push 2
push eax
call fcn.004bcdb0
add esp, 8
lea eax, [edi + 0x88]
push eax
push 4
push 2
push 3
push 0x129
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x1000000
mov edx, dword [esp + 0x1c]
je 0x4cff70
mov ecx, dword [edx]
mov eax, dword [edi + 0xa8]
mov ebx, dword [edi + 0xb0]
mov dword [esp + 0x18], eax
test ecx, 0x400
jne 0x4cfda5
cmp dword [esp + 0x2c], 0
jne 0x4cfc2a
mov ebx, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cff70
cmp byte [edi + 0x128], 0
je 0x4cfc45
push 0
push 0
push 0
push 0
push 0x117
jmp 0x4cfdd0
mov esi, dword [esp + 0x18]
test ecx, 0x80000
je 0x4cfc90
cmp esi, 1
jbe 0x4cfc6f
push edi
call fcn.004ca040
push 0
push 0xffffffffffffffff
push edx
push eax
push edi
call fcn.004d4480
add esp, 0x18
test eax, eax
je 0x4cfc90
push ebx
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push esi
push 0x117
push ebx
push eax
push edi
call fcn.004d1c60
add esp, 0x18
mov esi, eax
jmp 0x4cff60
cmp esi, 1
jbe 0x4cfd28
push edi
call fcn.004ca040
push 0
push 0xffff
push edx
push eax
push edi
call fcn.004d4480
add esp, 0x18
test eax, eax
jne 0x4cfd28
lea eax, [esi + esi]
push eax
mov dword [esp + 0x18], eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x4d1465
xor ecx, ecx
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d145e
jb 0x4cfced
cmp edx, 0xffff
ja 0x4d145e
mov word [eax], dx
inc ecx
add ebx, 8
add eax, 2
cmp ecx, esi
jb 0x4cfcd3
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
test byte [eax], 0x80
je 0x4cfd12
push esi
push ebx
call fcn.004bcdb0
add esp, 8
push ebx
push dword [esp + 0x18]
mov ecx, 3
push esi
push ecx
push 0x117
jmp 0x4cff40
lea eax, [esi*4]
push eax
mov dword [esp + 0x18], eax
call fcn.004b1840
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
je 0x4d1465
xor ecx, ecx
test esi, esi
je 0x4cfd78
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d1493
jb 0x4cfd67
cmp edx, 0xffffffff
ja 0x4d1493
mov dword [eax], edx
inc ecx
add ebx, 8
add eax, 4
cmp ecx, esi
jb 0x4cfd50
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cfd8b
push esi
push edx
call fcn.004bcd20
add esp, 8
mov ebx, dword [esp + 0x24]
mov ecx, 4
push ebx
push dword [esp + 0x18]
push esi
push ecx
push 0x117
jmp 0x4cff40
cmp dword [esp + 0x2c], 0
jne 0x4cfdba
mov ebx, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x10], esi
jmp 0x4cff70
cmp byte [edi + 0x128], 0
je 0x4cfdea
push 0
push 0
push 0
push 0
push 0x145
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0x24]
push ebx
push eax
push edi
call fcn.004d2460
add esp, 0x20
mov esi, eax
jmp 0x4cff60
mov esi, dword [esp + 0x18]
test ecx, 0x80000
je 0x4cfe35
cmp esi, 1
jbe 0x4cfe14
push edi
call fcn.004ca680
push 0
push 0xffffffffffffffff
push edx
push eax
push edi
call fcn.004d4480
add esp, 0x18
test eax, eax
je 0x4cfe35
push ebx
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push esi
push 0x145
push ebx
push eax
push edi
call fcn.004d1c60
add esp, 0x18
mov esi, eax
jmp 0x4cff60
cmp esi, 1
jbe 0x4cfec6
push edi
call fcn.004ca680
push 0
push 0xffff
push edx
push eax
push edi
call fcn.004d4480
add esp, 0x18
test eax, eax
jne 0x4cfec6
lea eax, [esi + esi]
push eax
mov dword [esp + 0x18], eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x4d1465
xor ecx, ecx
nop dword [eax + eax]
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d145e
jb 0x4cfe9a
cmp edx, 0xffff
ja 0x4d145e
mov word [eax], dx
inc ecx
add ebx, 8
add eax, 2
cmp ecx, esi
jb 0x4cfe80
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
test byte [eax], 0x80
je 0x4cfebf
push esi
push ebx
call fcn.004bcdb0
add esp, 8
mov ecx, 3
jmp 0x4cff34
lea eax, [esi*4]
push eax
mov dword [esp + 0x18], eax
call fcn.004b1840
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
je 0x4d1465
xor ecx, ecx
test esi, esi
je 0x4cff18
nop
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d1493
jb 0x4cff07
cmp edx, 0xffffffff
ja 0x4d1493
mov dword [eax], edx
inc ecx
add ebx, 8
add eax, 4
cmp ecx, esi
jb 0x4cfef0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4cff2b
push esi
push edx
call fcn.004bcd20
add esp, 8
mov ebx, dword [esp + 0x24]
mov ecx, 4
push ebx
push dword [esp + 0x18]
push esi
push ecx
push 0x145
mov ebx, dword [esp + 0x40]
lea ecx, [esp + 0x24]
push ebx
push ecx
mov eax, edi
push eax
call fcn.004d2460
push dword [esp + 0x44]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x2000000
je 0x4d0189
mov edx, dword [edx]
mov eax, dword [edi + 0xac]
mov dword [esp + 0x20], eax
test edx, 0x400
jne 0x4d0079
test eax, eax
je 0x4d0189
mov ecx, dword [edi + 0xa8]
mov dword [esp + 0x14], ecx
test ebx, ebx
jne 0x4cffb5
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0189
cmp byte [edi + 0x128], 0
je 0x4cffd0
push 0
push 0
push 0
push 0
push 0x111
jmp 0x4d00a7
test edx, 0x80000
je 0x4cfff5
push eax
push ecx
push 0x111
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d1c60
add esp, 0x18
mov esi, eax
jmp 0x4d017d
lea eax, [ecx*4]
push eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d14fd
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x4d004d
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
mov esi, dword [eax]
ja 0x4d14ca
jb 0x4d0038
cmp esi, 0xffffffff
ja 0x4d14ca
mov dword [ecx], esi
inc edx
mov esi, dword [esp + 0x14]
add eax, 8
add ecx, 4
cmp edx, esi
jb 0x4d0021
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d0060
push esi
push eax
call fcn.004bcd20
add esp, 8
push dword [esp + 0x18]
lea eax, [esi*4]
push eax
push esi
push 4
push 0x111
jmp 0x4d0163
mov ecx, dword [edi + 0xa8]
mov dword [esp + 0x14], ecx
test ebx, ebx
jne 0x4d0091
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0189
cmp byte [edi + 0x128], 0
je 0x4d00bd
push 0
push 0
push 0
push 0
push 0x144
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
mov esi, eax
jmp 0x4d017d
test edx, 0x80000
je 0x4d00e2
push eax
push ecx
push 0x144
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d1c60
add esp, 0x18
mov esi, eax
jmp 0x4d017d
lea eax, [ecx*4]
push eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d14fd
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x4d013c
mov eax, dword [esp + 0x20]
nop
cmp dword [eax + 4], 0
mov esi, dword [eax]
ja 0x4d14ca
jb 0x4d0127
cmp esi, 0xffffffff
ja 0x4d14ca
mov dword [ecx], esi
inc edx
mov esi, dword [esp + 0x14]
add eax, 8
add ecx, 4
cmp edx, esi
jb 0x4d0110
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d014f
push esi
push eax
call fcn.004bcd20
add esp, 8
push dword [esp + 0x18]
lea eax, [esi*4]
push eax
push esi
push 4
push 0x144
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push dword [esp + 0x38]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x4000000
je 0x4d0258
test ebx, ebx
jne 0x4d01a4
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0258
mov cl, byte [edi + 0x54]
mov esi, 1
shl esi, cl
mov dword [esp + 0x20], esi
lea eax, [esi + esi*2]
add eax, eax
push eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x4d150c
add esi, esi
push esi
push dword [edi + 0x8c]
push eax
call fcn.004b18c0
mov eax, dword [esp + 0x34]
push esi
push dword [edi + 0x90]
add eax, esi
push eax
call fcn.004b18c0
mov eax, dword [esp + 0x40]
push esi
mov esi, dword [esp + 0x3c]
push dword [edi + 0x94]
lea eax, [eax + esi*4]
push eax
call fcn.004b18c0
mov eax, dword [esp + 0x40]
lea esi, [esi + esi*2]
add esp, 0x24
test byte [eax], 0x80
je 0x4d0222
push esi
push dword [esp + 0x2c]
call fcn.004bcdb0
add esp, 8
push dword [esp + 0x28]
lea eax, [esi + esi]
push eax
push esi
push 3
push 0x140
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push dword [esp + 0x48]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
cmp dword [edi + 0x28], 0
jge 0x4d02e9
cmp word [edi + 0x9c], 0
je 0x4d02e9
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x70]
push eax
push 0x152
push edi
call fcn.004c6c50
movzx ecx, word [esp + 0x7c]
add esp, 0x10
mov eax, dword [esp + 0x98]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
test ebx, ebx
jne 0x4d02a6
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d02e9
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d02c1
push ecx
push eax
call fcn.004bcdb0
mov ecx, dword [esp + 0x28]
add esp, 8
mov eax, dword [esp + 0x14]
push eax
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x152
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 1
je 0x4d03ac
movzx eax, word [edi + 0x56]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d0309
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d03ac
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b1840
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d144f
movzx eax, word [edi + 0x62]
mov ecx, esi
mov esi, eax
xor edx, edx
mov dword [esp + 0x18], esi
xor esi, esi
cmp si, ax
mov esi, ecx
jae 0x4d0357
mov ebx, dword [esp + 0x20]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x62]
inc edx
cmp dx, ax
jb 0x4d0341
mov ebx, dword [esp + 0x2c]
jmp 0x4d035b
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4d0379
push ecx
push esi
call fcn.004bcdb0
mov ecx, dword [esp + 0x28]
add esp, 8
push esi
lea eax, [ecx + ecx]
push eax
push ecx
push 3
push 0x153
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push dword [esp + 0x34]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 2
je 0x4d03da
push dword [edi + 0x6c]
movzx eax, word [edi + 0x62]
push eax
push 0x154
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d2f30
add esp, 0x18
test eax, eax
je 0x4d15ac
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 4
je 0x4d0408
push dword [edi + 0x70]
movzx eax, word [edi + 0x62]
push eax
push 0x155
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d2f30
add esp, 0x18
test eax, eax
je 0x4d15ac
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 8
je 0x4d0461
test ebx, ebx
jne 0x4d0419
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0461
mov eax, dword [edi + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d0436
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0x80e5
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 0x10
je 0x4d04ba
test ebx, ebx
jne 0x4d0472
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d04ba
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d048f
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push 0x80e6
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 0x20
je 0x4d0512
lea eax, [edi + 0x98]
test ebx, ebx
jne 0x4d04d1
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0512
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d04eb
push 2
push eax
call fcn.004bcdb0
add esp, 8
lea eax, [edi + 0x98]
push eax
push 4
push 2
push 3
push 0x141
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 0x80
je 0x4d056a
lea eax, [edi + 0x100]
test ebx, ebx
jne 0x4d0529
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d056a
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d0543
push 2
push eax
call fcn.004bcdb0
add esp, 8
lea eax, [edi + 0x100]
push eax
push 4
push 2
push 3
push 0x212
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x100
je 0x4d05ca
test ebx, ebx
jne 0x4d057e
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d05ca
movzx eax, word [edi + 0x104]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d059f
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push 0x213
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x200
je 0x4d075a
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
test ebx, ebx
jne 0x4d05ef
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d075a
push 0x30
call fcn.004b1840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d151b
mov dword [esp + 0x28], 6
mov esi, eax
mov eax, dword [esp + 0x24]
xorps xmm1, xmm1
mov ecx, dword [esp + 0x28]
nop word [eax + eax]
movss xmm0, dword [eax]
comiss xmm1, xmm0
movss dword [esp + 0x20], xmm0
jae 0x4d06e7
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jp 0x4d06e7
comiss xmm0, xmm1
jb 0x4d0695
movss xmm1, dword [0x5dad88]
comiss xmm1, xmm0
jb 0x4d0695
call fcn.00573650
mov ecx, dword [esp + 0x24]
mov edx, eax
shr eax, 0x1f
movss xmm1, dword [ecx]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5bc6e0]
cvtpd2ps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d068d
mov ecx, dword [esp + 0x28]
xorps xmm1, xmm1
mov dword [esi], edx
jmp 0x4d06ed
movss xmm0, dword [esp + 0x20]
jmp 0x4d0699
mov ecx, dword [esp + 0x24]
movss xmm1, dword [0x5bc808]
comiss xmm1, xmm0
jbe 0x4d06c2
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [esp + 0x40]
call fcn.00573770
mov ecx, dword [esp + 0x28]
xorps xmm1, xmm1
mov dword [esi], eax
or eax, 0xffffffff
jmp 0x4d06f2
movsd xmm0, qword [esp + 0x40]
mov dword [esi], 0xffffffff
movss xmm1, dword [ecx]
cvtps2pd xmm1, xmm1
divsd xmm0, xmm1
call fcn.00573770
mov ecx, dword [esp + 0x28]
xorps xmm1, xmm1
jmp 0x4d06f2
mov dword [esi], 0
mov eax, 1
mov dword [esi + 4], eax
add esi, 8
mov eax, dword [esp + 0x24]
add eax, 4
sub ecx, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
jne 0x4d0620
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test byte [eax], 0x80
je 0x4d0728
push 0xc
push esi
call fcn.004bcd20
add esp, 8
push esi
push 0x30
push 6
push 5
push 0x214
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push dword [esp + 0x38]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x1000
je 0x4d08db
test ebx, ebx
jne 0x4d0775
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d08db
mov ax, word [edi + 0x62]
mov edx, 1
sub ax, word [edi + 0x9c]
mov cl, byte [edi + 0x54]
shl edx, cl
movzx esi, ax
mov dword [esp + 0x28], edx
cmp esi, 3
jbe 0x4d079d
mov esi, 3
jmp 0x4d079f
jne 0x4d07d8
mov eax, dword [edi + 0x110]
test eax, eax
je 0x4d07ce
add edx, edx
push edx
push eax
push dword [edi + 0x108]
mov dword [esp + 0x2c], edx
call fcn.004b1860
add esp, 0xc
test eax, eax
jne 0x4d0807
mov eax, dword [esp + 0x20]
mov esi, 2
jmp 0x4d07e4
lea eax, [edx + edx]
mov esi, 2
jmp 0x4d07e4
cmp esi, 2
jne 0x4d08f5
lea eax, [edx + edx]
mov ecx, dword [edi + 0x10c]
test ecx, ecx
je 0x4d0802
push eax
push ecx
push dword [edi + 0x108]
call fcn.004b1860
add esp, 0xc
test eax, eax
jne 0x4d0807
mov esi, 1
mov edx, dword [esp + 0x28]
movzx eax, si
imul eax, edx
mov dword [esp + 0x24], eax
add eax, eax
push eax
mov dword [esp + 0x24], eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d152a
mov ecx, dword [esp + 0x28]
add ecx, ecx
push ecx
push dword [edi + 0x108]
mov dword [esp + 0x1c], ecx
push eax
call fcn.004b18c0
add esp, 0xc
cmp si, 1
jbe 0x4d086a
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
push dword [edi + 0x10c]
add eax, ecx
push eax
call fcn.004b18c0
add esp, 0xc
cmp si, 2
mov esi, dword [esp + 0x18]
jbe 0x4d088e
push dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
push dword [edi + 0x110]
lea eax, [esi + eax*4]
push eax
call fcn.004b18c0
add esp, 0xc
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d08a4
push dword [esp + 0x24]
push esi
call fcn.004bcdb0
add esp, 8
push esi
push dword [esp + 0x24]
lea eax, [esp + 0x18]
push dword [esp + 0x2c]
push 3
push 0x12d
push ebx
push eax
push edi
call fcn.004d2460
mov esi, eax
mov eax, dword [esp + 0x38]
push eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x4000
je 0x4d092f
mov eax, dword [edi + 0x118]
test ebx, ebx
jne 0x4d0905
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d092f
test si, si
mov eax, 1
cmove esi, eax
jmp 0x4d080b
push dword [edi + 0x11c]
push eax
push eax
push 2
push 0x14d
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x20000
je 0x4d0aaf
movzx eax, word [edi + 0xf8]
mov ecx, eax
test ax, ax
je 0x4d0aaf
test ebx, ebx
jne 0x4d095c
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0aaf
mov eax, dword [edi + 0x260]
mov esi, dword [edi + 0x264]
mov dword [esp + 0x28], eax
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
test dword [ecx], 0x80000
jne 0x4d0a48
shl eax, 2
push eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x4d156d
mov ecx, dword [edi + 0xfc]
mov edx, eax
movzx eax, word [edi + 0xf8]
xor esi, esi
mov ebx, eax
mov dword [esp + 0x20], ebx
xor ebx, ebx
cmp bx, ax
mov ebx, dword [esp + 0x2c]
jae 0x4d09ee
nop dword [eax]
cmp dword [ecx + 4], 0
mov eax, dword [ecx]
ja 0x4d1539
jb 0x4d09d7
cmp eax, 0xffffffff
ja 0x4d1539
mov dword [edx], eax
inc esi
movzx eax, word [edi + 0xf8]
add edx, 4
add ecx, 8
cmp si, ax
jb 0x4d09c0
jmp 0x4d09f2
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4d0a14
push ecx
push esi
call fcn.004bcd20
mov ecx, dword [esp + 0x28]
add esp, 8
push esi
lea eax, [ecx*4]
push eax
push ecx
push 0xd
push 0x14a
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
push esi
mov dword [esp + 0x44], eax
call fcn.004b1830
mov eax, dword [esp + 0x44]
add esp, 0x24
mov esi, dword [esp + 0x18]
jmp 0x4d0a63
push dword [edi + 0xfc]
push eax
push 0x14a
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d1b70
add esp, 0x18
test eax, eax
je 0x4d16ce
mov eax, dword [esp + 0x1c]
or dword [eax], 0x2000
movzx eax, word [edi + 0xf8]
mov word [edi + 0x268], ax
cmp eax, 1
jne 0x4d0a9b
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
jmp 0x4d0a9f
mov eax, dword [esp + 0x28]
mov dword [edi + 0x270], eax
mov dword [edi + 0x274], esi
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [edi + 0x324], ecx
jbe 0x4d0c8f
mov eax, dword [edi + 0x320]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x28], eax
movzx eax, word [eax + 0x18]
cmp eax, 0x42
jb 0x4d0c78
mov edx, eax
mov eax, 1
mov ecx, edx
shr edx, 5
and ecx, 0x1f
shl eax, cl
test dword [edi + edx*4 + 0x28], eax
je 0x4d0c78
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x14]
dec eax
cmp eax, 0x27
ja case.0x4d0b0e.2
movzx eax, byte [eax + 0x4d197c]
jmp dword [eax*4 + 0x4d1968]
lea eax, [esp + 0x9c]
push eax
push dword [edx]
push edi
call fcn.004b2a20
mov edx, dword [esp + 0xa8]
add esp, 0xc
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d0b38
mov eax, dword [esp + 0x28]
sub ecx, dword [esp + 0x20]
movzx eax, word [eax]
test ebx, ebx
jne 0x4d0b58
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0c78
push edx
push ecx
push ecx
push 2
push eax
jmp 0x4d0c5d
lea eax, [esp + 0x70]
push eax
push dword [edx]
push edi
call fcn.004b2a20
mov eax, dword [esp + 0x34]
add esp, 0xc
movzx eax, word [eax]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d0b8c
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0c78
movzx eax, word [esp + 0x70]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d0bab
lea eax, [esp + 0x14]
push eax
call fcn.004bce70
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push dword [esp + 0x30]
jmp 0x4d0c5d
lea eax, [esp + 0xa0]
push eax
push dword [edx]
push edi
call fcn.004b2a20
mov eax, dword [esp + 0x34]
add esp, 0xc
movzx eax, word [eax]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d0beb
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0c78
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d0c0c
lea eax, [esp + 0x14]
push eax
call fcn.004bce10
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push dword [esp + 0x30]
jmp 0x4d0c5d
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xac]
push eax
push dword [edx]
push edi
call fcn.004b2a20
mov eax, dword [esp + 0x38]
add esp, 0x10
movzx ecx, word [eax]
test ebx, ebx
jne 0x4d0c4a
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d0c78
push dword [esp + 0xa4]
mov eax, dword [esp + 0xac]
push eax
push eax
push 7
push ecx
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
je 0x4d16ce
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
inc eax
mov ecx, eax
mov dword [esp + 0x18], eax
cmp eax, dword [edi + 0x324]
jb 0x4d0ac1
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edi + 0x120], eax
jbe 0x4d12d3
mov ecx, dword [edi + 0x124]
lea edx, [eax + eax*2]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ecx + edx*4 + 4]
mov dword [esp + 0x24], ecx
movzx ebx, word [eax]
mov eax, dword [eax + 8]
dec eax
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x2c]
cmp eax, 0x11
ja case.0x4d0ccd.14
jmp dword [eax*4 + 0x4d19a4]
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d0cec
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
push eax
push ecx
push ecx
push 2
push dword [esp + 0x40]
lea eax, [esp + 0x24]
push ebx
push eax
push edi
call fcn.004d2460
add esp, 0x20
test eax, eax
jmp 0x4d12b0
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d0d23
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
push eax
push ecx
push ecx
push 7
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d0d42
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
push eax
push ecx
push ecx
push 1
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d0d61
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
push eax
push ecx
push ecx
push 6
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d0d84
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d0d9f
push ecx
push eax
call fcn.004bcdb0
mov ecx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x14]
push eax
lea eax, [ecx + ecx]
push eax
push ecx
push 3
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d0dc8
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d0de3
push ecx
push eax
call fcn.004bcdb0
mov ecx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x14]
push eax
lea eax, [ecx + ecx]
push eax
push ecx
push 8
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d0e0c
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d0e27
push ecx
push eax
call fcn.004bcd20
mov ecx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x14]
push eax
lea eax, [ecx*4]
push eax
push ecx
push 4
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d0e54
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d0e6f
push ecx
push eax
call fcn.004bcd20
mov ecx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x14]
push eax
lea eax, [ecx*4]
push eax
push ecx
push 9
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d0e98
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
push eax
push ecx
push dword [esp + 0x38]
lea eax, [esp + 0x1c]
push ebx
push eax
push edi
call fcn.004d1c60
add esp, 0x18
test eax, eax
jmp 0x4d12b0
mov eax, dword [edi + 0x124]
mov edx, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], edx
test ebx, ebx
jne 0x4d0ed0
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, 0x80000
je 0x4d15c6
test al, al
jns 0x4d0ef7
push ecx
push edx
call fcn.004bcd60
mov ecx, dword [esp + 0x2c]
add esp, 8
mov edx, dword [esp + 0x14]
push edx
lea eax, [ecx*8]
push eax
push ecx
push 0x11
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov edx, dword [eax + edx*4 + 8]
mov dword [esp + 0x28], edx
test ebx, ebx
jne 0x4d0f24
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
lea eax, [ecx*8]
push eax
mov dword [esp + 0x3c], eax
call fcn.004b1840
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4d151b
mov eax, dword [esp + 0x24]
mov esi, ecx
test eax, eax
je 0x4d106e
mov dword [esp + 0x18], eax
xorps xmm1, xmm1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [eax]
comiss xmm1, xmm0
movss dword [esp + 0xac], xmm0
jae 0x4d103d
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jp 0x4d103d
comiss xmm0, xmm1
jb 0x4d0feb
movss xmm1, dword [0x5dad88]
comiss xmm1, xmm0
jb 0x4d0feb
call fcn.00573650
mov edx, dword [esp + 0x28]
mov ecx, eax
shr eax, 0x1f
movss xmm1, dword [edx]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5bc6e0]
cvtpd2ps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d0fe0
mov dword [esi], ecx
xorps xmm1, xmm1
mov ecx, dword [esp + 0x18]
jmp 0x4d1043
movss xmm0, dword [esp + 0xac]
jmp 0x4d0fef
mov edx, dword [esp + 0x28]
movss xmm1, dword [0x5bc808]
comiss xmm1, xmm0
jbe 0x4d1018
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [esp + 0x40]
call fcn.00573770
mov ecx, dword [esp + 0x18]
xorps xmm1, xmm1
mov dword [esi], eax
or eax, 0xffffffff
jmp 0x4d1048
movsd xmm0, qword [esp + 0x40]
mov dword [esi], 0xffffffff
movss xmm1, dword [edx]
cvtps2pd xmm1, xmm1
divsd xmm0, xmm1
call fcn.00573770
mov ecx, dword [esp + 0x18]
xorps xmm1, xmm1
jmp 0x4d1048
mov dword [esi], 0
mov eax, 1
mov dword [esi + 4], eax
add esi, 8
mov eax, dword [esp + 0x28]
add eax, 4
sub ecx, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
jne 0x4d0f70
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d1083
add eax, eax
push eax
push ecx
call fcn.004bcd20
add esp, 8
push dword [esp + 0x14]
lea eax, [esp + 0x14]
push dword [esp + 0x3c]
push dword [esp + 0x2c]
push 5
push dword [esp + 0x40]
push ebx
push eax
push edi
call fcn.004d2460
push dword [esp + 0x34]
jmp 0x4d12a4
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d10c2
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
push eax
push ecx
push dword [esp + 0x38]
lea eax, [esp + 0x1c]
push ebx
push eax
push edi
call fcn.004d2180
add esp, 0x18
test eax, eax
jmp 0x4d12b0
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x4d10fa
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d1115
push ecx
push eax
call fcn.004bcce0
mov ecx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x38]
push eax
lea eax, [ecx*4]
push eax
push ecx
push 0xb
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x4d1142
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d115d
push ecx
push eax
call fcn.004bcc90
mov ecx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x38]
push eax
lea eax, [ecx*8]
push eax
push ecx
push 0xc
jmp 0x4d0cf1
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x4d118a
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d11a5
push ecx
push eax
call fcn.004bcd20
mov ecx, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x38]
push eax
lea eax, [ecx*4]
push eax
push ecx
push 0xd
jmp 0x4d0cf1
cmp dword [esp + 0x2c], 0
mov eax, dword [edi + 0x124]
mov ebx, dword [eax + edx*4 + 8]
jne 0x4d11d1
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d0ccd.14
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, 0x80000
je 0x4d121a
test al, al
jns 0x4d11f0
push ecx
push ebx
call fcn.004bcd60
mov ecx, dword [esp + 0x2c]
add esp, 8
push ebx
mov ebx, dword [esp + 0x30]
lea eax, [ecx*8]
push eax
push ecx
push 0x12
push dword [esp + 0x40]
lea eax, [esp + 0x24]
push ebx
push eax
push edi
call fcn.004d2460
add esp, 0x20
mov esi, eax
jmp 0x4d12ae
lea eax, [ecx*4]
push eax
call fcn.004b1840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d15f3
mov esi, dword [esp + 0x24]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x4d126a
cmp dword [ebx + 4], 0
mov eax, dword [ebx]
ja 0x4d15d5
jb 0x4d1259
cmp eax, 0xffffffff
ja 0x4d15d5
mov dword [ecx], eax
inc edx
add ebx, 8
add ecx, 4
cmp edx, esi
jb 0x4d1242
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d127d
push esi
push eax
call fcn.004bcd20
add esp, 8
push dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
lea eax, [esi*4]
push eax
push esi
push 0xd
push dword [esp + 0x40]
lea eax, [esp + 0x24]
push ebx
push eax
push edi
call fcn.004d2460
push dword [esp + 0x38]
mov esi, eax
call fcn.004b1830
add esp, 0x24
test esi, esi
je 0x4d16ce
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [edi + 0x120]
jb 0x4d0ca1
test ebx, ebx
jne 0x4d1635
mov eax, esi
shl eax, 5
push eax
call fcn.004b1840
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x4d162b
cmp dword [ebp + 0xc], 0
je 0x4d131e
mov ecx, dword [edi + 0x10]
or ecx, dword [edi + 0x14]
jne 0x4d1316
push edi
call fcn.004ce490
add esp, 4
test eax, eax
je 0x4d16ce
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
jmp 0x4d1348
mov eax, dword [edi + 0x310]
push 2
push 0
push 0
push dword [edi + 0x304]
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 + 0x18], eax
test edx, edx
je 0x4d1362
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
lea ebx, [edi + 0x260]
mov edx, ecx
mov dword [esp + 0x20], ebx
test dword [eax], 0x80000
jne 0x4d13a3
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x18]
lea eax, [eax*4 + 6]
add edx, eax
mov dword [esp + 0x48], eax
mov eax, esi
mov dword [edi + 0x260], edx
adc eax, 0
mov dword [edi + 0x264], eax
xor eax, eax
jmp 0x4d13bc
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x18]
lea eax, [eax*4 + 0x10]
mov dword [esp + 0x48], eax
add edx, eax
mov eax, esi
adc eax, 0
mov ebx, dword [esp + 0x20]
mov edi, edx
mov dword [esp + 0x14], eax
mov dword [ebx], edi
mov edi, eax
mov dword [ebx + 4], edi
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x2c]
cmp eax, esi
jb 0x4d1621
ja 0x4d13e6
cmp edx, ecx
jb 0x4d1621
test eax, eax
jb 0x4d1621
ja 0x4d13fa
cmp edx, dword [esp + 0x48]
jb 0x4d1621
mov eax, edx
and eax, 1
or eax, 0
je 0x4d141a
mov eax, dword [esp + 0x14]
add edx, 1
mov dword [edi + 0x260], edx
adc eax, 0
mov dword [edi + 0x264], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4d1428
inc word [edi + 0x250]
mov edx, dword [esp + 0x1c]
jmp 0x4cee70
push str.Not_a_number_value_is_illegal
push str.TIFFWriteDirectoryTagCheckedRational
jmp 0x4d16c0
push str.Negative_value_is_illegal
push str.TIFFWriteDirectoryTagCheckedRational
jmp 0x4d16c0
push str.Out_of_memory
push str.TIFFWriteDirectoryTagShortPerSample
jmp 0x4d16c0
push str.Attempt_to_write_value_larger_than_0xFFFF_in_SHORT_array.
jmp 0x4d1498
push str.Out_of_memory
push str.TIFFWriteDirectoryTagLongLong8Array
push dword [edi + 0x304]
call fcn.004bc680
mov ebx, dword [esp + 0x38]
add esp, 0xc
push ebx
call fcn.004b1830
add esp, 4
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 dword [edi + 0x304]
call fcn.004bc680
push dword [esp + 0x30]
call fcn.004b1830
mov ebx, dword [esp + 0x3c]
add esp, 0x10
push ebx
call fcn.004b1830
add esp, 4
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 dword [edi + 0x304]
call fcn.004bc680
push dword [esp + 0x24]
call fcn.004b1830
add esp, 0x10
push ebx
call fcn.004b1830
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagLongLong8Array
jmp 0x4d16c0
push str.Out_of_memory
push str.TIFFWriteDirectoryTagColormap
jmp 0x4d16c0
push str.Out_of_memory
push str.TIFFWriteDirectoryTagCheckedRationalArray
jmp 0x4d16c0
push str.Out_of_memory
push str.TIFFWriteDirectoryTagTransferfunction
jmp 0x4d16c0
push str.Illegal_value_for_SubIFD_tag
push str.TIFFWriteDirectoryTagSubifd
push dword [edi + 0x304]
call fcn.004bc680
mov esi, dword [esp + 0x20]
push esi
call fcn.004b1830
add esp, 0x10
push ebx
call fcn.004b1830
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Out_of_memory
push str.TIFFWriteDirectoryTagSubifd
jmp 0x4d16c0
mov eax, dword [edx + 0x1c]
mov ecx, 0x5da9c4
test eax, eax
cmovne ecx, eax
push ecx
push edx
call fcn.004c5a10
add esp, 4
push eax
push str.Cannot_write_tag__d___s_
push str.TIFFWriteDirectorySec
push dword [edi + 0x304]
call fcn.004bc680
add esp, 0x14
test ebx, ebx
je 0x4ced9f
push ebx
call fcn.004b1830
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.SLONG8_not_allowed_for_ClassicTIFF
push str.TIFFWriteDirectoryTagCheckedSlong8Array
jmp 0x4d16c0
push str.Attempt_to_write_value_larger_than_0xFFFFFFFF_in_Classic_TIFF_file.
push str.TIFFWriteDirectoryTagIfdIfd8Array
push dword [edi + 0x304]
call fcn.004bc680
push dword [esp + 0x24]
jmp 0x4d14ac
push str.Out_of_memory
push str.TIFFWriteDirectoryTagIfdIfd8Array
push dword [edi + 0x304]
call fcn.004bc680
mov ebx, dword [esp + 0x38]
add esp, 0xc
push ebx
call fcn.004b1830
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Maximum_TIFF_file_size_exceeded
jmp 0x4d16bb
push str.Out_of_memory
jmp 0x4ced8c
cmp dword [ebp + 0xc], 0
je 0x4d16a2
test dword [edi + 0x2c], 0x20000
je 0x4d16a2
mov eax, dword [edi + 0x270]
or eax, dword [edi + 0x274]
jne 0x4d16a2
mov ecx, ebx
test esi, esi
je 0x4d166d
mov edx, 0x14a
nop dword [eax]
cmp word [ecx], dx
je 0x4d1674
inc eax
add ecx, 0x20
cmp eax, esi
jne 0x4d1660
push str.Cannot_find_SubIFD_tag
jmp 0x4d16bb
mov ecx, dword [esp + 0x34]
mov edx, dword [edi + 0x10]
test dword [ecx], 0x80000
jne 0x4d16e0
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 + 0x270], ecx
mov dword [edi + 0x274], eax
push dword [esp + 0x48]
call fcn.004b1840
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4d16f2
push str.Out_of_memory
push str.TIFFWriteDirectorySec
push dword [edi + 0x304]
call fcn.004bc680
add esp, 0xc
push ebx
call fcn.004b1830
add esp, 4
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 0x4d1693
mov ecx, dword [esp + 0x34]
test dword [ecx], 0x80000
jne 0x4d17ee
mov word [eax], si
test byte [ecx], 0x80
je 0x4d171b
push eax
call fcn.004bce70
mov eax, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [esp + 0x34]
add eax, 2
mov dword [esp + 0x14], eax
test esi, esi
je 0x4d17b9
lea edi, [ebx + 8]
mov ebx, eax
jmp 0x4d1735
mov ecx, dword [esp + 0x34]
mov ax, word [edi - 8]
mov word [ebx], ax
test byte [ecx], 0x80
je 0x4d174e
push ebx
call fcn.004bce70
mov ecx, dword [esp + 0x38]
add esp, 4
mov ax, word [edi - 6]
add ebx, 2
mov word [ebx], ax
test byte [ecx], 0x80
je 0x4d1766
push ebx
call fcn.004bce70
add esp, 4
mov eax, dword [edi]
add ebx, 2
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push 4
push eax
push ebx
call fcn.004b18c0
mov ecx, dword [esp + 0x40]
add esp, 0xc
test byte [ecx], 0x80
je 0x4d1791
push ebx
call fcn.004bce10
add esp, 4
push 4
lea eax, [edi + 8]
add ebx, 4
push eax
push ebx
call fcn.004b18c0
add esp, 0xc
add ebx, 4
add edi, 0x20
sub esi, 1
jne 0x4d1731
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x2c]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
test byte [eax], 0x80
je 0x4d17d6
lea eax, [esp + 0x18]
push eax
call fcn.004bce10
add esp, 4
push 4
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x1c]
call fcn.004b18c0
add esp, 0xc
jmp 0x4d18c6
mov dword [eax], esi
mov dword [eax + 4], 0
test byte [ecx], 0x80
je 0x4d180d
push eax
call fcn.004bce30
mov eax, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [esp + 0x34]
add eax, 8
mov dword [esp + 0x14], eax
test esi, esi
je 0x4d18a1
lea edi, [ebx + 8]
mov ebx, eax
jmp 0x4d1827
mov ecx, dword [esp + 0x34]
mov ax, word [edi - 8]
mov word [ebx], ax
test byte [ecx], 0x80
je 0x4d1840
push ebx
call fcn.004bce70
mov ecx, dword [esp + 0x38]
add esp, 4
mov ax, word [edi - 6]
add ebx, 2
mov word [ebx], ax
test byte [ecx], 0x80
je 0x4d1858
push ebx
call fcn.004bce70
add esp, 4
push 8
add ebx, 2
push edi
push ebx
call fcn.004b18c0
mov eax, dword [esp + 0x40]
add esp, 0xc
test byte [eax], 0x80
je 0x4d1879
push ebx
call fcn.004bce30
add esp, 4
push 8
lea eax, [edi + 8]
add ebx, 8
push eax
push ebx
call fcn.004b18c0
add esp, 0xc
add ebx, 8
add edi, 0x20
sub esi, 1
jne 0x4d1823
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
lea eax, [edi + 0x18]
push 8
push eax
push esi
call fcn.004b18c0
mov eax, dword [esp + 0x40]
add esp, 0xc
test byte [eax], 0x80
je 0x4d18c6
push esi
call fcn.004bce30
add esp, 4
push ebx
call fcn.004b1830
push dword [edi + 0x14]
push dword [edi + 0x10]
push edi
call fcn.004c75a0
mov ecx, dword [edi + 0x304]
add esp, 0x10
mov esi, dword [esp + 0x28]
test eax, eax
je 0x4d1905
mov ebx, dword [esp + 0x48]
mov eax, dword [edi + 0x30c]
push ebx
push esi
push ecx
call eax
add esp, 0xc
cmp eax, ebx
je 0x4d1927
mov ecx, dword [edi + 0x304]
push str.IO_error_writing_directory
push str.TIFFWriteDirectorySec
push ecx
call fcn.004bc680
push esi
call fcn.004b1830
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.004b1830
add esp, 4
cmp dword [ebp + 0x10], 0
je 0x4d195b
push edi
call fcn.004b27f0
mov ecx, dword [esp + 0x38]
push edi
and dword [ecx], 0xfffffff7
and dword [ecx], 0xffdfffff
mov ecx, dword [edi + 0x2c4]
call ecx
push edi
call fcn.004b2650
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret