Function at 0x4d37c0
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 0x4d63f0
push edi
call fcn.004c9cc0
add esp, 4
lea edx, [edi + 0xc]
cmp dword [ebp + 0x10], 0
je 0x4d38bf
mov eax, dword [edx]
test eax, 0x1000
je 0x4d3838
and eax, 0xffffefff
mov dword [edx], eax
mov eax, dword [edi + 0x2a0]
push edi
call eax
add esp, 4
test eax, eax
jne 0x4d3838
push str.Error_post_encoding_before_directory_write
push str.TIFFWriteDirectorySec
push dword [edi + 0x304]
call fcn.004c1110
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 0x4d386c
test byte [edx], 0x40
je 0x4d386c
push edi
call fcn.004cf640
add esp, 4
test eax, eax
jne 0x4d3869
push str.Error_flushing_data_before_directory_write
jmp 0x4d381c
lea edx, [edi + 0xc]
test dword [edx], 0x200
je 0x4d38bc
mov eax, dword [edi + 0x2dc]
test eax, eax
je 0x4d38bc
push eax
call fcn.004b62c0
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 [0x5d1c80]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [0x5bfbe0]
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 0x4d571f
test byte [edi + 0x28], 2
je 0x4d3a25
mov eax, dword [edi + 0x38]
test ebx, ebx
jne 0x4d3936
mov esi, 1
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d3a25
mov ecx, dword [edx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4d396a
movzx eax, ax
mov dword [esp + 0x74], eax
test ecx, ecx
je 0x4d395d
lea eax, [esp + 0x74]
push eax
call fcn.004c1900
add esp, 4
lea eax, [esp + 0x74]
push eax
push 2
push 1
push 3
jmp 0x4d398a
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4d397f
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x3c]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4d39e1
movzx eax, ax
mov dword [esp + 0x78], eax
test ecx, ecx
je 0x4d39d4
lea eax, [esp + 0x78]
push eax
call fcn.004c1900
add esp, 4
lea eax, [esp + 0x78]
push eax
push 2
push 1
push 3
jmp 0x4d3a01
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4d39f6
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
test byte [edi + 0x28], 4
je 0x4d3b36
mov eax, dword [edi + 0x44]
test ebx, ebx
jne 0x4d3a42
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x4d3b36
mov ecx, dword [edx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4d3a76
movzx eax, ax
mov dword [esp + 0x7c], eax
test ecx, ecx
je 0x4d3a69
lea eax, [esp + 0x7c]
push eax
call fcn.004c1900
add esp, 4
lea eax, [esp + 0x7c]
push eax
push 2
push 1
push 3
jmp 0x4d3a96
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4d3a8b
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x48]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4d3af6
movzx eax, ax
mov dword [esp + 0x80], eax
test ecx, ecx
je 0x4d3ae6
lea eax, [esp + 0x80]
push eax
call fcn.004c1900
add esp, 4
lea eax, [esp + 0x80]
push eax
push 2
push 1
push 3
jmp 0x4d3b16
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4d3b0b
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 8
je 0x4d3d8c
movss xmm1, dword [edi + 0x74]
cvtps2pd xmm1, xmm1
movsd qword [esp + 0x38], xmm1
test ebx, ebx
jne 0x4d3b5e
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x4d3d8c
movsd xmm0, qword [esp + 0x88]
comisd xmm0, xmm1
ja 0x4d5ed0
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d5ec1
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3b9e
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 1
jmp 0x4d3c27
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4d3bec
movaps xmm0, xmm1
call fcn.00578200
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5c06c0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3be6
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 1
jmp 0x4d3c27
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4d3c12
mulsd xmm0, xmm1
call fcn.00578200
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0xffffffff
jmp 0x4d3c27
divsd xmm0, xmm1
mov dword [esp + 0x4c], 0xffffffff
call fcn.00578200
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x1c]
test byte [esi], 0x80
je 0x4d3c47
lea eax, [esp + 0x4c]
push eax
call fcn.004c18a0
lea eax, [esp + 0x54]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
movss xmm1, dword [edi + 0x78]
movsd xmm0, qword [esp + 0x88]
cvtps2pd xmm1, xmm1
comisd xmm0, xmm1
movsd qword [esp + 0x38], xmm1
ja 0x4d5ed0
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d5ec1
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3cbc
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 1
jmp 0x4d3d45
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4d3d0a
movaps xmm0, xmm1
call fcn.00578200
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5c06c0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3d04
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 1
jmp 0x4d3d45
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4d3d30
mulsd xmm0, xmm1
call fcn.00578200
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0xffffffff
jmp 0x4d3d45
divsd xmm0, xmm1
mov dword [esp + 0x54], 0xffffffff
call fcn.00578200
mov dword [esp + 0x58], eax
test byte [esi], 0x80
je 0x4d3d61
lea eax, [esp + 0x54]
push eax
call fcn.004c18a0
lea eax, [esp + 0x5c]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x10
je 0x4d3fe8
movss xmm1, dword [edi + 0x80]
cvtps2pd xmm1, xmm1
movsd qword [esp + 0x38], xmm1
test ebx, ebx
jne 0x4d3db7
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x4d3fe8
movsd xmm0, qword [esp + 0x88]
comisd xmm0, xmm1
ja 0x4d5ed0
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d5ec1
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3df7
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 1
jmp 0x4d3e80
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4d3e45
movaps xmm0, xmm1
call fcn.00578200
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5c06c0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3e3f
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], 1
jmp 0x4d3e80
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4d3e6b
mulsd xmm0, xmm1
call fcn.00578200
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 0xffffffff
jmp 0x4d3e80
divsd xmm0, xmm1
mov dword [esp + 0x5c], 0xffffffff
call fcn.00578200
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x1c]
test byte [esi], 0x80
je 0x4d3ea0
lea eax, [esp + 0x5c]
push eax
call fcn.004c18a0
lea eax, [esp + 0x64]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
movss xmm1, dword [edi + 0x84]
movsd xmm0, qword [esp + 0x88]
cvtps2pd xmm1, xmm1
comisd xmm0, xmm1
movsd qword [esp + 0x38], xmm1
ja 0x4d5ed0
ucomisd xmm1, xmm1
lahf
test ah, 0x44
jp 0x4d5ec1
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3f18
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 1
jmp 0x4d3fa1
movsd xmm0, qword [esp + 0x40]
comisd xmm0, xmm1
jb 0x4d3f66
movaps xmm0, xmm1
call fcn.00578200
movsd xmm1, qword [esp + 0x38]
mov ecx, eax
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5c06c0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d3f60
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], 1
jmp 0x4d3fa1
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x90]
comisd xmm2, xmm1
jbe 0x4d3f8c
mulsd xmm0, xmm1
call fcn.00578200
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0xffffffff
jmp 0x4d3fa1
divsd xmm0, xmm1
mov dword [esp + 0x64], 0xffffffff
call fcn.00578200
mov dword [esp + 0x68], eax
test byte [esi], 0x80
je 0x4d3fbd
lea eax, [esp + 0x64]
push eax
call fcn.004c18a0
lea eax, [esp + 0x6c]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x20
je 0x4d4041
test ebx, ebx
jne 0x4d3ff9
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4041
mov eax, dword [edi + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d4016
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x40
je 0x4d410b
movzx eax, word [edi + 0x54]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d4061
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d410b
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b62d0
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d5edf
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 0x4d40b6
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 0x4d40a0
mov ebx, dword [esp + 0x2c]
jmp 0x4d40ba
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4d40d8
push ecx
push esi
call fcn.004c1840
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.004d6ef0
push dword [esp + 0x34]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x28], 0x80
je 0x4d4165
test ebx, ebx
jne 0x4d411c
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4165
movzx eax, word [edi + 0x58]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d413a
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x100
je 0x4d41c2
test ebx, ebx
jne 0x4d4179
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d41c2
movzx eax, word [edi + 0x5a]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d4197
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x200
je 0x4d421f
test ebx, ebx
jne 0x4d41d6
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d421f
movzx eax, word [edi + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d41f4
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x400
je 0x4d427c
test ebx, ebx
jne 0x4d4233
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d427c
movzx eax, word [edi + 0x5e]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d4251
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x8000
je 0x4d42d9
test ebx, ebx
jne 0x4d4290
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d42d9
movzx eax, word [edi + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d42ae
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x10000
je 0x4d4336
test ebx, ebx
jne 0x4d42ed
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4336
movzx eax, word [edi + 0x62]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d430b
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x20000
je 0x4d43d5
mov eax, dword [edi + 0x64]
test ebx, ebx
jne 0x4d4354
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d43d5
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
and ecx, 0x80
cmp eax, 0xffff
ja 0x4d4395
movzx eax, ax
mov dword [esp + 0x84], eax
test ecx, ecx
je 0x4d4385
lea eax, [esp + 0x84]
push eax
call fcn.004c1900
add esp, 4
lea eax, [esp + 0x84]
push eax
push 2
push 1
push 3
jmp 0x4d43b5
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4d43aa
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x40000
je 0x4d449b
movzx eax, word [edi + 0x68]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d43f8
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d449b
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b62d0
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d5edf
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 0x4d4446
mov ebx, dword [esp + 0x20]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x62]
inc edx
cmp dx, ax
jb 0x4d4430
mov ebx, dword [esp + 0x2c]
jmp 0x4d444a
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4d4468
push ecx
push esi
call fcn.004c1840
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.004d6ef0
push dword [esp + 0x34]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x80000
je 0x4d4561
movzx eax, word [edi + 0x6a]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d44be
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4561
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b62d0
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d5edf
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 0x4d450c
mov ebx, dword [esp + 0x20]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x62]
inc edx
cmp dx, ax
jb 0x4d44f6
mov ebx, dword [esp + 0x2c]
jmp 0x4d4510
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4d452e
push ecx
push esi
call fcn.004c1840
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.004d6ef0
push dword [esp + 0x34]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x100000
je 0x4d45be
test ebx, ebx
jne 0x4d4575
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d45be
movzx eax, word [edi + 0x7e]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d4593
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x400000
je 0x4d461b
test ebx, ebx
jne 0x4d45d2
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d461b
movzx eax, word [edi + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d45f0
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x800000
je 0x4d4676
lea eax, [edi + 0x88]
test ebx, ebx
jne 0x4d4635
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4676
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d464f
push 2
push eax
call fcn.004c1840
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x1000000
mov edx, dword [esp + 0x1c]
je 0x4d4a00
mov ecx, dword [edx]
mov eax, dword [edi + 0xa8]
mov ebx, dword [edi + 0xb0]
mov dword [esp + 0x18], eax
test ecx, 0x400
jne 0x4d4835
cmp dword [esp + 0x2c], 0
jne 0x4d46ba
mov ebx, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4a00
cmp byte [edi + 0x128], 0
je 0x4d46d5
push 0
push 0
push 0
push 0
push 0x117
jmp 0x4d4860
mov esi, dword [esp + 0x18]
test ecx, 0x80000
je 0x4d4720
cmp esi, 1
jbe 0x4d46ff
push edi
call fcn.004cead0
push 0
push 0xffffffffffffffff
push edx
push eax
push edi
call fcn.004d8f10
add esp, 0x18
test eax, eax
je 0x4d4720
push ebx
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push esi
push 0x117
push ebx
push eax
push edi
call fcn.004d66f0
add esp, 0x18
mov esi, eax
jmp 0x4d49f0
cmp esi, 1
jbe 0x4d47b8
push edi
call fcn.004cead0
push 0
push 0xffff
push edx
push eax
push edi
call fcn.004d8f10
add esp, 0x18
test eax, eax
jne 0x4d47b8
lea eax, [esi + esi]
push eax
mov dword [esp + 0x18], eax
call fcn.004b62d0
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x4d5ef5
xor ecx, ecx
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d5eee
jb 0x4d477d
cmp edx, 0xffff
ja 0x4d5eee
mov word [eax], dx
inc ecx
add ebx, 8
add eax, 2
cmp ecx, esi
jb 0x4d4763
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
test byte [eax], 0x80
je 0x4d47a2
push esi
push ebx
call fcn.004c1840
add esp, 8
push ebx
push dword [esp + 0x18]
mov ecx, 3
push esi
push ecx
push 0x117
jmp 0x4d49d0
lea eax, [esi*4]
push eax
mov dword [esp + 0x18], eax
call fcn.004b62d0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
je 0x4d5ef5
xor ecx, ecx
test esi, esi
je 0x4d4808
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d5f23
jb 0x4d47f7
cmp edx, 0xffffffff
ja 0x4d5f23
mov dword [eax], edx
inc ecx
add ebx, 8
add eax, 4
cmp ecx, esi
jb 0x4d47e0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d481b
push esi
push edx
call fcn.004c17b0
add esp, 8
mov ebx, dword [esp + 0x24]
mov ecx, 4
push ebx
push dword [esp + 0x18]
push esi
push ecx
push 0x117
jmp 0x4d49d0
cmp dword [esp + 0x2c], 0
jne 0x4d484a
mov ebx, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4a00
cmp byte [edi + 0x128], 0
je 0x4d487a
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.004d6ef0
add esp, 0x20
mov esi, eax
jmp 0x4d49f0
mov esi, dword [esp + 0x18]
test ecx, 0x80000
je 0x4d48c5
cmp esi, 1
jbe 0x4d48a4
push edi
call fcn.004cf110
push 0
push 0xffffffffffffffff
push edx
push eax
push edi
call fcn.004d8f10
add esp, 0x18
test eax, eax
je 0x4d48c5
push ebx
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push esi
push 0x145
push ebx
push eax
push edi
call fcn.004d66f0
add esp, 0x18
mov esi, eax
jmp 0x4d49f0
cmp esi, 1
jbe 0x4d4956
push edi
call fcn.004cf110
push 0
push 0xffff
push edx
push eax
push edi
call fcn.004d8f10
add esp, 0x18
test eax, eax
jne 0x4d4956
lea eax, [esi + esi]
push eax
mov dword [esp + 0x18], eax
call fcn.004b62d0
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x4d5ef5
xor ecx, ecx
nop dword [eax + eax]
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d5eee
jb 0x4d492a
cmp edx, 0xffff
ja 0x4d5eee
mov word [eax], dx
inc ecx
add ebx, 8
add eax, 2
cmp ecx, esi
jb 0x4d4910
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
test byte [eax], 0x80
je 0x4d494f
push esi
push ebx
call fcn.004c1840
add esp, 8
mov ecx, 3
jmp 0x4d49c4
lea eax, [esi*4]
push eax
mov dword [esp + 0x18], eax
call fcn.004b62d0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
je 0x4d5ef5
xor ecx, ecx
test esi, esi
je 0x4d49a8
nop
cmp dword [ebx + 4], 0
mov edx, dword [ebx]
ja 0x4d5f23
jb 0x4d4997
cmp edx, 0xffffffff
ja 0x4d5f23
mov dword [eax], edx
inc ecx
add ebx, 8
add eax, 4
cmp ecx, esi
jb 0x4d4980
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d49bb
push esi
push edx
call fcn.004c17b0
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.004d6ef0
push dword [esp + 0x44]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x2000000
je 0x4d4c19
mov edx, dword [edx]
mov eax, dword [edi + 0xac]
mov dword [esp + 0x20], eax
test edx, 0x400
jne 0x4d4b09
test eax, eax
je 0x4d4c19
mov ecx, dword [edi + 0xa8]
mov dword [esp + 0x14], ecx
test ebx, ebx
jne 0x4d4a45
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4c19
cmp byte [edi + 0x128], 0
je 0x4d4a60
push 0
push 0
push 0
push 0
push 0x111
jmp 0x4d4b37
test edx, 0x80000
je 0x4d4a85
push eax
push ecx
push 0x111
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d66f0
add esp, 0x18
mov esi, eax
jmp 0x4d4c0d
lea eax, [ecx*4]
push eax
call fcn.004b62d0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d5f8d
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x4d4add
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
mov esi, dword [eax]
ja 0x4d5f5a
jb 0x4d4ac8
cmp esi, 0xffffffff
ja 0x4d5f5a
mov dword [ecx], esi
inc edx
mov esi, dword [esp + 0x14]
add eax, 8
add ecx, 4
cmp edx, esi
jb 0x4d4ab1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d4af0
push esi
push eax
call fcn.004c17b0
add esp, 8
push dword [esp + 0x18]
lea eax, [esi*4]
push eax
push esi
push 4
push 0x111
jmp 0x4d4bf3
mov ecx, dword [edi + 0xa8]
mov dword [esp + 0x14], ecx
test ebx, ebx
jne 0x4d4b21
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4c19
cmp byte [edi + 0x128], 0
je 0x4d4b4d
push 0
push 0
push 0
push 0
push 0x144
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d6ef0
add esp, 0x20
mov esi, eax
jmp 0x4d4c0d
test edx, 0x80000
je 0x4d4b72
push eax
push ecx
push 0x144
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d66f0
add esp, 0x18
mov esi, eax
jmp 0x4d4c0d
lea eax, [ecx*4]
push eax
call fcn.004b62d0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d5f8d
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x4d4bcc
mov eax, dword [esp + 0x20]
nop
cmp dword [eax + 4], 0
mov esi, dword [eax]
ja 0x4d5f5a
jb 0x4d4bb7
cmp esi, 0xffffffff
ja 0x4d5f5a
mov dword [ecx], esi
inc edx
mov esi, dword [esp + 0x14]
add eax, 8
add ecx, 4
cmp edx, esi
jb 0x4d4ba0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d4bdf
push esi
push eax
call fcn.004c17b0
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.004d6ef0
push dword [esp + 0x38]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x28], 0x4000000
je 0x4d4ce8
test ebx, ebx
jne 0x4d4c34
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4ce8
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.004b62d0
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x4d5f9c
add esi, esi
push esi
push dword [edi + 0x8c]
push eax
call fcn.004b6350
mov eax, dword [esp + 0x34]
push esi
push dword [edi + 0x90]
add eax, esi
push eax
call fcn.004b6350
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.004b6350
mov eax, dword [esp + 0x40]
lea esi, [esi + esi*2]
add esp, 0x24
test byte [eax], 0x80
je 0x4d4cb2
push esi
push dword [esp + 0x2c]
call fcn.004c1840
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.004d6ef0
push dword [esp + 0x48]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
cmp dword [edi + 0x28], 0
jge 0x4d4d79
cmp word [edi + 0x9c], 0
je 0x4d4d79
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x70]
push eax
push 0x152
push edi
call fcn.004cb6e0
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 0x4d4d36
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4d79
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d4d51
push ecx
push eax
call fcn.004c1840
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 1
je 0x4d4e3c
movzx eax, word [edi + 0x56]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d4d99
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4e3c
movzx eax, word [edi + 0x62]
add eax, eax
push eax
call fcn.004b62d0
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4d5edf
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 0x4d4de7
mov ebx, dword [esp + 0x20]
mov word [ecx], bx
lea ecx, [ecx + 2]
movzx eax, word [edi + 0x62]
inc edx
cmp dx, ax
jb 0x4d4dd1
mov ebx, dword [esp + 0x2c]
jmp 0x4d4deb
mov eax, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
test byte [eax], 0x80
je 0x4d4e09
push ecx
push esi
call fcn.004c1840
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.004d6ef0
push dword [esp + 0x34]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 2
je 0x4d4e6a
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.004d79c0
add esp, 0x18
test eax, eax
je 0x4d603c
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 4
je 0x4d4e98
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.004d79c0
add esp, 0x18
test eax, eax
je 0x4d603c
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 8
je 0x4d4ef1
test ebx, ebx
jne 0x4d4ea9
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4ef1
mov eax, dword [edi + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d4ec6
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 0x10
je 0x4d4f4a
test ebx, ebx
jne 0x4d4f02
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4f4a
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d4f1f
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 0x20
je 0x4d4fa2
lea eax, [edi + 0x98]
test ebx, ebx
jne 0x4d4f61
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4fa2
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d4f7b
push 2
push eax
call fcn.004c1840
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test byte [edi + 0x2c], 0x80
je 0x4d4ffa
lea eax, [edi + 0x100]
test ebx, ebx
jne 0x4d4fb9
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d4ffa
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d4fd3
push 2
push eax
call fcn.004c1840
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x100
je 0x4d505a
test ebx, ebx
jne 0x4d500e
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d505a
movzx eax, word [edi + 0x104]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d502f
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x200
je 0x4d51ea
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
test ebx, ebx
jne 0x4d507f
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d51ea
push 0x30
call fcn.004b62d0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d5fab
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 0x4d5177
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jp 0x4d5177
comiss xmm0, xmm1
jb 0x4d5125
movss xmm1, dword [0x5ded78]
comiss xmm1, xmm0
jb 0x4d5125
call fcn.005780e0
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 + 0x5c06c0]
cvtpd2ps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d511d
mov ecx, dword [esp + 0x28]
xorps xmm1, xmm1
mov dword [esi], edx
jmp 0x4d517d
movss xmm0, dword [esp + 0x20]
jmp 0x4d5129
mov ecx, dword [esp + 0x24]
movss xmm1, dword [0x5c07f8]
comiss xmm1, xmm0
jbe 0x4d5152
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [esp + 0x40]
call fcn.00578200
mov ecx, dword [esp + 0x28]
xorps xmm1, xmm1
mov dword [esi], eax
or eax, 0xffffffff
jmp 0x4d5182
movsd xmm0, qword [esp + 0x40]
mov dword [esi], 0xffffffff
movss xmm1, dword [ecx]
cvtps2pd xmm1, xmm1
divsd xmm0, xmm1
call fcn.00578200
mov ecx, dword [esp + 0x28]
xorps xmm1, xmm1
jmp 0x4d5182
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 0x4d50b0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test byte [eax], 0x80
je 0x4d51b8
push 0xc
push esi
call fcn.004c17b0
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.004d6ef0
push dword [esp + 0x38]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x1000
je 0x4d536b
test ebx, ebx
jne 0x4d5205
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d536b
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 0x4d522d
mov esi, 3
jmp 0x4d522f
jne 0x4d5268
mov eax, dword [edi + 0x110]
test eax, eax
je 0x4d525e
add edx, edx
push edx
push eax
push dword [edi + 0x108]
mov dword [esp + 0x2c], edx
call fcn.004b62f0
add esp, 0xc
test eax, eax
jne 0x4d5297
mov eax, dword [esp + 0x20]
mov esi, 2
jmp 0x4d5274
lea eax, [edx + edx]
mov esi, 2
jmp 0x4d5274
cmp esi, 2
jne 0x4d5385
lea eax, [edx + edx]
mov ecx, dword [edi + 0x10c]
test ecx, ecx
je 0x4d5292
push eax
push ecx
push dword [edi + 0x108]
call fcn.004b62f0
add esp, 0xc
test eax, eax
jne 0x4d5297
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.004b62d0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d5fba
mov ecx, dword [esp + 0x28]
add ecx, ecx
push ecx
push dword [edi + 0x108]
mov dword [esp + 0x1c], ecx
push eax
call fcn.004b6350
add esp, 0xc
cmp si, 1
jbe 0x4d52fa
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
push dword [edi + 0x10c]
add eax, ecx
push eax
call fcn.004b6350
add esp, 0xc
cmp si, 2
mov esi, dword [esp + 0x18]
jbe 0x4d531e
push dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
push dword [edi + 0x110]
lea eax, [esi + eax*4]
push eax
call fcn.004b6350
add esp, 0xc
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d5334
push dword [esp + 0x24]
push esi
call fcn.004c1840
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.004d6ef0
mov esi, eax
mov eax, dword [esp + 0x38]
push eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x4000
je 0x4d53bf
mov eax, dword [edi + 0x118]
test ebx, ebx
jne 0x4d5395
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d53bf
test si, si
mov eax, 1
cmove esi, eax
jmp 0x4d529b
push dword [edi + 0x11c]
push eax
push eax
push 2
push 0x14d
push ebx
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
mov esi, dword [esp + 0x10]
test dword [edi + 0x2c], 0x20000
je 0x4d553f
movzx eax, word [edi + 0xf8]
mov ecx, eax
test ax, ax
je 0x4d553f
test ebx, ebx
jne 0x4d53ec
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d553f
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 0x4d54d8
shl eax, 2
push eax
call fcn.004b62d0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x4d5ffd
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 0x4d547e
nop dword [eax]
cmp dword [ecx + 4], 0
mov eax, dword [ecx]
ja 0x4d5fc9
jb 0x4d5467
cmp eax, 0xffffffff
ja 0x4d5fc9
mov dword [edx], eax
inc esi
movzx eax, word [edi + 0xf8]
add edx, 4
add ecx, 8
cmp si, ax
jb 0x4d5450
jmp 0x4d5482
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 0x4d54a4
push ecx
push esi
call fcn.004c17b0
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.004d6ef0
push esi
mov dword [esp + 0x44], eax
call fcn.004b62c0
mov eax, dword [esp + 0x44]
add esp, 0x24
mov esi, dword [esp + 0x18]
jmp 0x4d54f3
push dword [edi + 0xfc]
push eax
push 0x14a
push ebx
lea eax, [esp + 0x20]
push eax
push edi
call fcn.004d6600
add esp, 0x18
test eax, eax
je 0x4d615e
mov eax, dword [esp + 0x1c]
or dword [eax], 0x2000
movzx eax, word [edi + 0xf8]
mov word [edi + 0x268], ax
cmp eax, 1
jne 0x4d552b
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
jmp 0x4d552f
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 0x4d571f
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 0x4d5708
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 0x4d5708
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x14]
dec eax
cmp eax, 0x27
ja case.0x4d559e.2
movzx eax, byte [eax + 0x4d640c]
jmp dword [eax*4 + 0x4d63f8]
lea eax, [esp + 0x9c]
push eax
push dword [edx]
push edi
call fcn.004b74b0
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 0x4d55c8
mov eax, dword [esp + 0x28]
sub ecx, dword [esp + 0x20]
movzx eax, word [eax]
test ebx, ebx
jne 0x4d55e8
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d5708
push edx
push ecx
push ecx
push 2
push eax
jmp 0x4d56ed
lea eax, [esp + 0x70]
push eax
push dword [edx]
push edi
call fcn.004b74b0
mov eax, dword [esp + 0x34]
add esp, 0xc
movzx eax, word [eax]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d561c
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d5708
movzx eax, word [esp + 0x70]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d563b
lea eax, [esp + 0x14]
push eax
call fcn.004c1900
add esp, 4
lea eax, [esp + 0x14]
push eax
push 2
push 1
push 3
push dword [esp + 0x30]
jmp 0x4d56ed
lea eax, [esp + 0xa0]
push eax
push dword [edx]
push edi
call fcn.004b74b0
mov eax, dword [esp + 0x34]
add esp, 0xc
movzx eax, word [eax]
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4d567b
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d5708
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
test byte [eax], 0x80
je 0x4d569c
lea eax, [esp + 0x14]
push eax
call fcn.004c18a0
add esp, 4
lea eax, [esp + 0x14]
push eax
push 4
push 1
push 4
push dword [esp + 0x30]
jmp 0x4d56ed
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xac]
push eax
push dword [edx]
push edi
call fcn.004b74b0
mov eax, dword [esp + 0x38]
add esp, 0x10
movzx ecx, word [eax]
test ebx, ebx
jne 0x4d56da
inc esi
mov dword [esp + 0x10], esi
jmp 0x4d5708
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.004d6ef0
add esp, 0x20
test eax, eax
je 0x4d615e
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 0x4d5551
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edi + 0x120], eax
jbe 0x4d5d63
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.0x4d575d.14
jmp dword [eax*4 + 0x4d6434]
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d577c
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.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.004d6ef0
add esp, 0x20
test eax, eax
jmp 0x4d5d40
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d57b3
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
push eax
push ecx
push ecx
push 7
jmp 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d57d2
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
push eax
push ecx
push ecx
push 1
jmp 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d57f1
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
push eax
push ecx
push ecx
push 6
jmp 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d5814
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d582f
push ecx
push eax
call fcn.004c1840
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 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d5858
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d5873
push ecx
push eax
call fcn.004c1840
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 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d589c
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d58b7
push ecx
push eax
call fcn.004c17b0
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 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4d58e4
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d58ff
push ecx
push eax
call fcn.004c17b0
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 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d5928
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
push eax
push ecx
push dword [esp + 0x38]
lea eax, [esp + 0x1c]
push ebx
push eax
push edi
call fcn.004d66f0
add esp, 0x18
test eax, eax
jmp 0x4d5d40
mov eax, dword [edi + 0x124]
mov edx, dword [eax + edx*4 + 8]
mov dword [esp + 0x14], edx
test ebx, ebx
jne 0x4d5960
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, 0x80000
je 0x4d6056
test al, al
jns 0x4d5987
push ecx
push edx
call fcn.004c17f0
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 0x4d5781
mov eax, dword [edi + 0x124]
mov edx, dword [eax + edx*4 + 8]
mov dword [esp + 0x28], edx
test ebx, ebx
jne 0x4d59b4
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
lea eax, [ecx*8]
push eax
mov dword [esp + 0x3c], eax
call fcn.004b62d0
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4d5fab
mov eax, dword [esp + 0x24]
mov esi, ecx
test eax, eax
je 0x4d5afe
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 0x4d5acd
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jp 0x4d5acd
comiss xmm0, xmm1
jb 0x4d5a7b
movss xmm1, dword [0x5ded78]
comiss xmm1, xmm0
jb 0x4d5a7b
call fcn.005780e0
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 + 0x5c06c0]
cvtpd2ps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x4d5a70
mov dword [esi], ecx
xorps xmm1, xmm1
mov ecx, dword [esp + 0x18]
jmp 0x4d5ad3
movss xmm0, dword [esp + 0xac]
jmp 0x4d5a7f
mov edx, dword [esp + 0x28]
movss xmm1, dword [0x5c07f8]
comiss xmm1, xmm0
jbe 0x4d5aa8
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [esp + 0x40]
call fcn.00578200
mov ecx, dword [esp + 0x18]
xorps xmm1, xmm1
mov dword [esi], eax
or eax, 0xffffffff
jmp 0x4d5ad8
movsd xmm0, qword [esp + 0x40]
mov dword [esi], 0xffffffff
movss xmm1, dword [edx]
cvtps2pd xmm1, xmm1
divsd xmm0, xmm1
call fcn.00578200
mov ecx, dword [esp + 0x18]
xorps xmm1, xmm1
jmp 0x4d5ad8
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 0x4d5a00
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d5b13
add eax, eax
push eax
push ecx
call fcn.004c17b0
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.004d6ef0
push dword [esp + 0x34]
jmp 0x4d5d34
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
test ebx, ebx
jne 0x4d5b52
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
push eax
push ecx
push dword [esp + 0x38]
lea eax, [esp + 0x1c]
push ebx
push eax
push edi
call fcn.004d6c10
add esp, 0x18
test eax, eax
jmp 0x4d5d40
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x4d5b8a
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d5ba5
push ecx
push eax
call fcn.004c1770
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 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x4d5bd2
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d5bed
push ecx
push eax
call fcn.004c1720
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 0x4d5781
mov eax, dword [edi + 0x124]
mov eax, dword [eax + edx*4 + 8]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x4d5c1a
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov edx, dword [esp + 0x1c]
test byte [edx], 0x80
je 0x4d5c35
push ecx
push eax
call fcn.004c17b0
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 0x4d5781
cmp dword [esp + 0x2c], 0
mov eax, dword [edi + 0x124]
mov ebx, dword [eax + edx*4 + 8]
jne 0x4d5c61
inc esi
mov dword [esp + 0x10], esi
jmp case.0x4d575d.14
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, 0x80000
je 0x4d5caa
test al, al
jns 0x4d5c80
push ecx
push ebx
call fcn.004c17f0
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.004d6ef0
add esp, 0x20
mov esi, eax
jmp 0x4d5d3e
lea eax, [ecx*4]
push eax
call fcn.004b62d0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4d6083
mov esi, dword [esp + 0x24]
xor edx, edx
mov ecx, eax
test esi, esi
je 0x4d5cfa
cmp dword [ebx + 4], 0
mov eax, dword [ebx]
ja 0x4d6065
jb 0x4d5ce9
cmp eax, 0xffffffff
ja 0x4d6065
mov dword [ecx], eax
inc edx
add ebx, 8
add ecx, 4
cmp edx, esi
jb 0x4d5cd2
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test byte [ecx], 0x80
je 0x4d5d0d
push esi
push eax
call fcn.004c17b0
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.004d6ef0
push dword [esp + 0x38]
mov esi, eax
call fcn.004b62c0
add esp, 0x24
test esi, esi
je 0x4d615e
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 0x4d5731
test ebx, ebx
jne 0x4d60c5
mov eax, esi
shl eax, 5
push eax
call fcn.004b62d0
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x4d60bb
cmp dword [ebp + 0xc], 0
je 0x4d5dae
mov ecx, dword [edi + 0x10]
or ecx, dword [edi + 0x14]
jne 0x4d5da6
push edi
call fcn.004d2f20
add esp, 4
test eax, eax
je 0x4d615e
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
jmp 0x4d5dd8
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 0x4d5df2
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 0x4d5e33
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 0x4d5e4c
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 0x4d60b1
ja 0x4d5e76
cmp edx, ecx
jb 0x4d60b1
test eax, eax
jb 0x4d60b1
ja 0x4d5e8a
cmp edx, dword [esp + 0x48]
jb 0x4d60b1
mov eax, edx
and eax, 1
or eax, 0
je 0x4d5eaa
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 0x4d5eb8
inc word [edi + 0x250]
mov edx, dword [esp + 0x1c]
jmp 0x4d3900
push str.Not_a_number_value_is_illegal
push str.TIFFWriteDirectoryTagCheckedRational
jmp 0x4d6150
push str.Negative_value_is_illegal
push str.TIFFWriteDirectoryTagCheckedRational
jmp 0x4d6150
push str.Out_of_memory
push str.TIFFWriteDirectoryTagShortPerSample
jmp 0x4d6150
push str.Attempt_to_write_value_larger_than_0xFFFF_in_SHORT_array.
jmp 0x4d5f28
push str.Out_of_memory
push str.TIFFWriteDirectoryTagLongLong8Array
push dword [edi + 0x304]
call fcn.004c1110
mov ebx, dword [esp + 0x38]
add esp, 0xc
push ebx
call fcn.004b62c0
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.004c1110
push dword [esp + 0x30]
call fcn.004b62c0
mov ebx, dword [esp + 0x3c]
add esp, 0x10
push ebx
call fcn.004b62c0
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.004c1110
push dword [esp + 0x24]
call fcn.004b62c0
add esp, 0x10
push ebx
call fcn.004b62c0
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 0x4d6150
push str.Out_of_memory
push str.TIFFWriteDirectoryTagColormap
jmp 0x4d6150
push str.Out_of_memory
push str.TIFFWriteDirectoryTagCheckedRationalArray
jmp 0x4d6150
push str.Out_of_memory
push str.TIFFWriteDirectoryTagTransferfunction
jmp 0x4d6150
push str.Illegal_value_for_SubIFD_tag
push str.TIFFWriteDirectoryTagSubifd
push dword [edi + 0x304]
call fcn.004c1110
mov esi, dword [esp + 0x20]
push esi
call fcn.004b62c0
add esp, 0x10
push ebx
call fcn.004b62c0
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 0x4d6150
mov eax, dword [edx + 0x1c]
mov ecx, 0x5de9b4
test eax, eax
cmovne ecx, eax
push ecx
push edx
call fcn.004ca4a0
add esp, 4
push eax
push str.Cannot_write_tag__d___s_
push str.TIFFWriteDirectorySec
push dword [edi + 0x304]
call fcn.004c1110
add esp, 0x14
test ebx, ebx
je 0x4d382f
push ebx
call fcn.004b62c0
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 0x4d6150
push str.Attempt_to_write_value_larger_than_0xFFFFFFFF_in_Classic_TIFF_file.
push str.TIFFWriteDirectoryTagIfdIfd8Array
push dword [edi + 0x304]
call fcn.004c1110
push dword [esp + 0x24]
jmp 0x4d5f3c
push str.Out_of_memory
push str.TIFFWriteDirectoryTagIfdIfd8Array
push dword [edi + 0x304]
call fcn.004c1110
mov ebx, dword [esp + 0x38]
add esp, 0xc
push ebx
call fcn.004b62c0
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 0x4d614b
push str.Out_of_memory
jmp 0x4d381c
cmp dword [ebp + 0xc], 0
je 0x4d6132
test dword [edi + 0x2c], 0x20000
je 0x4d6132
mov eax, dword [edi + 0x270]
or eax, dword [edi + 0x274]
jne 0x4d6132
mov ecx, ebx
test esi, esi
je 0x4d60fd
mov edx, 0x14a
nop dword [eax]
cmp word [ecx], dx
je 0x4d6104
inc eax
add ecx, 0x20
cmp eax, esi
jne 0x4d60f0
push str.Cannot_find_SubIFD_tag
jmp 0x4d614b
mov ecx, dword [esp + 0x34]
mov edx, dword [edi + 0x10]
test dword [ecx], 0x80000
jne 0x4d6170
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.004b62d0
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4d6182
push str.Out_of_memory
push str.TIFFWriteDirectorySec
push dword [edi + 0x304]
call fcn.004c1110
add esp, 0xc
push ebx
call fcn.004b62c0
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 0x4d6123
mov ecx, dword [esp + 0x34]
test dword [ecx], 0x80000
jne 0x4d627e
mov word [eax], si
test byte [ecx], 0x80
je 0x4d61ab
push eax
call fcn.004c1900
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 0x4d6249
lea edi, [ebx + 8]
mov ebx, eax
jmp 0x4d61c5
mov ecx, dword [esp + 0x34]
mov ax, word [edi - 8]
mov word [ebx], ax
test byte [ecx], 0x80
je 0x4d61de
push ebx
call fcn.004c1900
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 0x4d61f6
push ebx
call fcn.004c1900
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.004b6350
mov ecx, dword [esp + 0x40]
add esp, 0xc
test byte [ecx], 0x80
je 0x4d6221
push ebx
call fcn.004c18a0
add esp, 4
push 4
lea eax, [edi + 8]
add ebx, 4
push eax
push ebx
call fcn.004b6350
add esp, 0xc
add ebx, 4
add edi, 0x20
sub esi, 1
jne 0x4d61c1
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 0x4d6266
lea eax, [esp + 0x18]
push eax
call fcn.004c18a0
add esp, 4
push 4
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x1c]
call fcn.004b6350
add esp, 0xc
jmp 0x4d6356
mov dword [eax], esi
mov dword [eax + 4], 0
test byte [ecx], 0x80
je 0x4d629d
push eax
call fcn.004c18c0
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 0x4d6331
lea edi, [ebx + 8]
mov ebx, eax
jmp 0x4d62b7
mov ecx, dword [esp + 0x34]
mov ax, word [edi - 8]
mov word [ebx], ax
test byte [ecx], 0x80
je 0x4d62d0
push ebx
call fcn.004c1900
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 0x4d62e8
push ebx
call fcn.004c1900
add esp, 4
push 8
add ebx, 2
push edi
push ebx
call fcn.004b6350
mov eax, dword [esp + 0x40]
add esp, 0xc
test byte [eax], 0x80
je 0x4d6309
push ebx
call fcn.004c18c0
add esp, 4
push 8
lea eax, [edi + 8]
add ebx, 8
push eax
push ebx
call fcn.004b6350
add esp, 0xc
add ebx, 8
add edi, 0x20
sub esi, 1
jne 0x4d62b3
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.004b6350
mov eax, dword [esp + 0x40]
add esp, 0xc
test byte [eax], 0x80
je 0x4d6356
push esi
call fcn.004c18c0
add esp, 4
push ebx
call fcn.004b62c0
push dword [edi + 0x14]
push dword [edi + 0x10]
push edi
call fcn.004cc030
mov ecx, dword [edi + 0x304]
add esp, 0x10
mov esi, dword [esp + 0x28]
test eax, eax
je 0x4d6395
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 0x4d63b7
mov ecx, dword [edi + 0x304]
push str.IO_error_writing_directory
push str.TIFFWriteDirectorySec
push ecx
call fcn.004c1110
push esi
call fcn.004b62c0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.004b62c0
add esp, 4
cmp dword [ebp + 0x10], 0
je 0x4d63eb
push edi
call fcn.004b7280
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.004b70e0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret