45191a:	8b 47 2c             	mov    0x2c(%edi),%eax
45191d:	89 10                	mov    %edx,(%eax)
45191f:	8b 55 24             	mov    0x24(%ebp),%edx
451922:	f6 c2 02             	test   $0x2,%dl
451925:	74 24                	je     0x45194b
451927:	85 c9                	test   %ecx,%ecx
451929:	74 20                	je     0x45194b
45192b:	8b 47 30             	mov    0x30(%edi),%eax
45192e:	8b 4f 20             	mov    0x20(%edi),%ecx
451931:	8b 10                	mov    (%eax),%edx
451933:	8b 47 10             	mov    0x10(%edi),%eax
451936:	03 11                	add    (%ecx),%edx
451938:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45193b:	89 08                	mov    %ecx,(%eax)
45193d:	03 cb                	add    %ebx,%ecx
45193f:	8b 47 20             	mov    0x20(%edi),%eax
451942:	2b d1                	sub    %ecx,%edx
451944:	89 08                	mov    %ecx,(%eax)
451946:	8b 47 30             	mov    0x30(%edi),%eax
451949:	89 10                	mov    %edx,(%eax)
45194b:	8b 45 f8             	mov    -0x8(%ebp),%eax
45194e:	89 1e                	mov    %ebx,(%esi)
451950:	89 46 04             	mov    %eax,0x4(%esi)
451953:	eb 0d                	jmp    0x451962
451955:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
45195b:	c7 46 04 ff ff ff ff 	movl   $0xffffffff,0x4(%esi)
451962:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
451969:	0f 57 c0             	xorps  %xmm0,%xmm0
45196c:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
451973:	8b c6                	mov    %esi,%eax
451975:	5f                   	pop    %edi
451976:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
45197b:	5e                   	pop    %esi
45197c:	5b                   	pop    %ebx
45197d:	8b e5                	mov    %ebp,%esp
45197f:	5d                   	pop    %ebp
451980:	c2 20 00             	ret    $0x20
451983:	cc                   	int3
451984:	cc                   	int3
451985:	cc                   	int3
451986:	cc                   	int3
451987:	cc                   	int3
451988:	cc                   	int3
451989:	cc                   	int3
45198a:	cc                   	int3
45198b:	cc                   	int3
45198c:	cc                   	int3
45198d:	cc                   	int3
45198e:	cc                   	int3
45198f:	cc                   	int3
451990:	55                   	push   %ebp
451991:	8b ec                	mov    %esp,%ebp
451993:	ff 75 0c             	push   0xc(%ebp)
451996:	33 d2                	xor    %edx,%edx
451998:	b8 04 00 00 00       	mov    $0x4,%eax
45199d:	39 51 38             	cmp    %edx,0x38(%ecx)
4519a0:	0f 45 c2             	cmovne %edx,%eax
4519a3:	0b 41 0c             	or     0xc(%ecx),%eax
4519a6:	0b 45 08             	or     0x8(%ebp),%eax
4519a9:	50                   	push   %eax
4519aa:	e8 11 8c fe ff       	call   0x43a5c0
4519af:	5d                   	pop    %ebp
4519b0:	c2 08 00             	ret    $0x8
4519b3:	cc                   	int3
4519b4:	cc                   	int3
4519b5:	cc                   	int3
4519b6:	cc                   	int3
4519b7:	cc                   	int3
4519b8:	cc                   	int3
4519b9:	cc                   	int3
4519ba:	cc                   	int3
4519bb:	cc                   	int3
4519bc:	cc                   	int3
4519bd:	cc                   	int3
4519be:	cc                   	int3
4519bf:	cc                   	int3
4519c0:	56                   	push   %esi
4519c1:	57                   	push   %edi
4519c2:	8b f9                	mov    %ecx,%edi
4519c4:	8b 07                	mov    (%edi),%eax
4519c6:	8b 70 18             	mov    0x18(%eax),%esi
4519c9:	8b ce                	mov    %esi,%ecx
4519cb:	ff 15 e0 24 68 00    	call   *0x6824e0
4519d1:	8b cf                	mov    %edi,%ecx
4519d3:	ff d6                	call   *%esi
4519d5:	83 f8 ff             	cmp    $0xffffffff,%eax
4519d8:	75 05                	jne    0x4519df
4519da:	5f                   	pop    %edi
4519db:	0b c0                	or     %eax,%eax
4519dd:	5e                   	pop    %esi
4519de:	c3                   	ret
4519df:	8b 47 2c             	mov    0x2c(%edi),%eax
4519e2:	ff 08                	decl   (%eax)
4519e4:	8b 4f 1c             	mov    0x1c(%edi),%ecx
4519e7:	5f                   	pop    %edi
4519e8:	5e                   	pop    %esi
4519e9:	8b 11                	mov    (%ecx),%edx
4519eb:	8d 42 01             	lea    0x1(%edx),%eax
4519ee:	89 01                	mov    %eax,(%ecx)
4519f0:	0f b6 02             	movzbl (%edx),%eax
4519f3:	c3                   	ret
4519f4:	cc                   	int3
4519f5:	cc                   	int3
4519f6:	cc                   	int3
4519f7:	cc                   	int3
4519f8:	cc                   	int3
4519f9:	cc                   	int3
4519fa:	cc                   	int3
4519fb:	cc                   	int3
4519fc:	cc                   	int3
4519fd:	cc                   	int3
4519fe:	cc                   	int3
4519ff:	cc                   	int3
451a00:	83 c8 ff             	or     $0xffffffff,%eax
451a03:	c3                   	ret
451a04:	cc                   	int3
451a05:	cc                   	int3
451a06:	cc                   	int3
451a07:	cc                   	int3
451a08:	cc                   	int3
451a09:	cc                   	int3
451a0a:	cc                   	int3
451a0b:	cc                   	int3
451a0c:	cc                   	int3
451a0d:	cc                   	int3
451a0e:	cc                   	int3
451a0f:	cc                   	int3
451a10:	56                   	push   %esi
451a11:	57                   	push   %edi
451a12:	8b 79 1c             	mov    0x1c(%ecx),%edi
451a15:	8b 17                	mov    (%edi),%edx
451a17:	85 d2                	test   %edx,%edx
451a19:	74 45                	je     0x451a60
451a1b:	8b 41 2c             	mov    0x2c(%ecx),%eax
451a1e:	8b 00                	mov    (%eax),%eax
451a20:	03 c2                	add    %edx,%eax
451a22:	3b d0                	cmp    %eax,%edx
451a24:	73 06                	jae    0x451a2c
451a26:	0f b6 02             	movzbl (%edx),%eax
451a29:	5f                   	pop    %edi
451a2a:	5e                   	pop    %esi
451a2b:	c3                   	ret
451a2c:	8b 41 20             	mov    0x20(%ecx),%eax
451a2f:	8b 00                	mov    (%eax),%eax
451a31:	85 c0                	test   %eax,%eax
451a33:	74 2b                	je     0x451a60
451a35:	f6 41 3c 04          	testb  $0x4,0x3c(%ecx)
451a39:	75 25                	jne    0x451a60
451a3b:	8b 71 38             	mov    0x38(%ecx),%esi
451a3e:	3b f0                	cmp    %eax,%esi
451a40:	0f 42 f0             	cmovb  %eax,%esi
451a43:	3b f2                	cmp    %edx,%esi
451a45:	76 19                	jbe    0x451a60
451a47:	89 71 38             	mov    %esi,0x38(%ecx)
451a4a:	8b 07                	mov    (%edi),%eax
451a4c:	2b f0                	sub    %eax,%esi
451a4e:	89 07                	mov    %eax,(%edi)
451a50:	8b 41 2c             	mov    0x2c(%ecx),%eax
451a53:	5f                   	pop    %edi
451a54:	89 30                	mov    %esi,(%eax)
451a56:	8b 41 1c             	mov    0x1c(%ecx),%eax
451a59:	5e                   	pop    %esi
451a5a:	8b 00                	mov    (%eax),%eax
451a5c:	0f b6 00             	movzbl (%eax),%eax
451a5f:	c3                   	ret
451a60:	5f                   	pop    %edi
451a61:	83 c8 ff             	or     $0xffffffff,%eax
451a64:	5e                   	pop    %esi
451a65:	c3                   	ret
451a66:	cc                   	int3
451a67:	cc                   	int3
451a68:	cc                   	int3
451a69:	cc                   	int3
451a6a:	cc                   	int3
451a6b:	cc                   	int3
451a6c:	cc                   	int3
451a6d:	cc                   	int3
451a6e:	cc                   	int3
451a6f:	cc                   	int3
451a70:	55                   	push   %ebp
451a71:	8b ec                	mov    %esp,%ebp
451a73:	83 ec 10             	sub    $0x10,%esp
451a76:	53                   	push   %ebx
451a77:	8b 5d 10             	mov    0x10(%ebp),%ebx
451a7a:	8b d3                	mov    %ebx,%edx
451a7c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
451a7f:	89 55 f0             	mov    %edx,-0x10(%ebp)
451a82:	57                   	push   %edi
451a83:	8b 7d 0c             	mov    0xc(%ebp),%edi
451a86:	8b c7                	mov    %edi,%eax
451a88:	89 45 f4             	mov    %eax,-0xc(%ebp)
451a8b:	85 db                	test   %ebx,%ebx
451a8d:	0f 8c aa 00 00 00    	jl     0x451b3d
451a93:	7f 08                	jg     0x451a9d
451a95:	85 ff                	test   %edi,%edi
451a97:	0f 84 a0 00 00 00    	je     0x451b3d
451a9d:	56                   	push   %esi
451a9e:	66 90                	xchg   %ax,%ax
451aa0:	e8 cb da fe ff       	call   0x43f570
451aa5:	8b f0                	mov    %eax,%esi
451aa7:	8b c2                	mov    %edx,%eax
451aa9:	89 45 f8             	mov    %eax,-0x8(%ebp)
451aac:	85 c0                	test   %eax,%eax
451aae:	7c 40                	jl     0x451af0
451ab0:	7f 04                	jg     0x451ab6
451ab2:	85 f6                	test   %esi,%esi
451ab4:	74 3a                	je     0x451af0
451ab6:	3b d8                	cmp    %eax,%ebx
451ab8:	7f 0b                	jg     0x451ac5
451aba:	7c 04                	jl     0x451ac0
451abc:	3b fe                	cmp    %esi,%edi
451abe:	73 05                	jae    0x451ac5
451ac0:	8b f7                	mov    %edi,%esi
451ac2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
451ac5:	8b 45 fc             	mov    -0x4(%ebp),%eax
451ac8:	56                   	push   %esi
451ac9:	8b 40 1c             	mov    0x1c(%eax),%eax
451acc:	ff 30                	push   (%eax)
451ace:	ff 75 08             	push   0x8(%ebp)
451ad1:	e8 2a 14 19 00       	call   0x5e2f00
451ad6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451ad9:	83 c4 0c             	add    $0xc,%esp
451adc:	2b fe                	sub    %esi,%edi
451ade:	1b 5d f8             	sbb    -0x8(%ebp),%ebx
451ae1:	8b 41 2c             	mov    0x2c(%ecx),%eax
451ae4:	29 30                	sub    %esi,(%eax)
451ae6:	8b 41 1c             	mov    0x1c(%ecx),%eax
451ae9:	01 30                	add    %esi,(%eax)
451aeb:	8b 45 08             	mov    0x8(%ebp),%eax
451aee:	eb 2f                	jmp    0x451b1f
451af0:	8b 45 fc             	mov    -0x4(%ebp),%eax
451af3:	8b 00                	mov    (%eax),%eax
451af5:	8b 70 1c             	mov    0x1c(%eax),%esi
451af8:	8b ce                	mov    %esi,%ecx
451afa:	ff 15 e0 24 68 00    	call   *0x6824e0
451b00:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451b03:	ff d6                	call   *%esi
451b05:	8b c8                	mov    %eax,%ecx
451b07:	83 f9 ff             	cmp    $0xffffffff,%ecx
451b0a:	74 2a                	je     0x451b36
451b0c:	8b 45 08             	mov    0x8(%ebp),%eax
451b0f:	83 c7 ff             	add    $0xffffffff,%edi
451b12:	be 01 00 00 00       	mov    $0x1,%esi
451b17:	83 d3 ff             	adc    $0xffffffff,%ebx
451b1a:	88 08                	mov    %cl,(%eax)
451b1c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451b1f:	03 c6                	add    %esi,%eax
451b21:	89 45 08             	mov    %eax,0x8(%ebp)
451b24:	85 db                	test   %ebx,%ebx
451b26:	0f 8f 74 ff ff ff    	jg     0x451aa0
451b2c:	7c 08                	jl     0x451b36
451b2e:	85 ff                	test   %edi,%edi
451b30:	0f 85 6a ff ff ff    	jne    0x451aa0
451b36:	8b 45 f4             	mov    -0xc(%ebp),%eax
451b39:	8b 55 f0             	mov    -0x10(%ebp),%edx
451b3c:	5e                   	pop    %esi
451b3d:	2b c7                	sub    %edi,%eax
451b3f:	5f                   	pop    %edi
451b40:	1b d3                	sbb    %ebx,%edx
451b42:	5b                   	pop    %ebx
451b43:	8b e5                	mov    %ebp,%esp
451b45:	5d                   	pop    %ebp
451b46:	c2 0c 00             	ret    $0xc
451b49:	cc                   	int3
451b4a:	cc                   	int3
451b4b:	cc                   	int3
451b4c:	cc                   	int3
451b4d:	cc                   	int3
451b4e:	cc                   	int3
451b4f:	cc                   	int3
451b50:	55                   	push   %ebp
451b51:	8b ec                	mov    %esp,%ebp
451b53:	83 ec 10             	sub    $0x10,%esp
451b56:	53                   	push   %ebx
451b57:	8b 5d 10             	mov    0x10(%ebp),%ebx
451b5a:	8b d3                	mov    %ebx,%edx
451b5c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
451b5f:	89 55 f0             	mov    %edx,-0x10(%ebp)
451b62:	57                   	push   %edi
451b63:	8b 7d 0c             	mov    0xc(%ebp),%edi
451b66:	8b c7                	mov    %edi,%eax
451b68:	89 45 f4             	mov    %eax,-0xc(%ebp)
451b6b:	85 db                	test   %ebx,%ebx
451b6d:	0f 8c a6 00 00 00    	jl     0x451c19
451b73:	7f 08                	jg     0x451b7d
451b75:	85 ff                	test   %edi,%edi
451b77:	0f 84 9c 00 00 00    	je     0x451c19
451b7d:	56                   	push   %esi
451b7e:	66 90                	xchg   %ax,%ax
451b80:	e8 cb d9 fe ff       	call   0x43f550
451b85:	8b f0                	mov    %eax,%esi
451b87:	8b c2                	mov    %edx,%eax
451b89:	89 45 f8             	mov    %eax,-0x8(%ebp)
451b8c:	85 c0                	test   %eax,%eax
451b8e:	7c 3e                	jl     0x451bce
451b90:	7f 04                	jg     0x451b96
451b92:	85 f6                	test   %esi,%esi
451b94:	74 38                	je     0x451bce
451b96:	3b d8                	cmp    %eax,%ebx
451b98:	7f 0b                	jg     0x451ba5
451b9a:	7c 04                	jl     0x451ba0
451b9c:	3b fe                	cmp    %esi,%edi
451b9e:	73 05                	jae    0x451ba5
451ba0:	8b f7                	mov    %edi,%esi
451ba2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
451ba5:	8b 45 08             	mov    0x8(%ebp),%eax
451ba8:	56                   	push   %esi
451ba9:	50                   	push   %eax
451baa:	8b 45 fc             	mov    -0x4(%ebp),%eax
451bad:	8b 40 20             	mov    0x20(%eax),%eax
451bb0:	ff 30                	push   (%eax)
451bb2:	e8 49 13 19 00       	call   0x5e2f00
451bb7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451bba:	83 c4 0c             	add    $0xc,%esp
451bbd:	2b fe                	sub    %esi,%edi
451bbf:	1b 5d f8             	sbb    -0x8(%ebp),%ebx
451bc2:	8b 41 30             	mov    0x30(%ecx),%eax
451bc5:	29 30                	sub    %esi,(%eax)
451bc7:	8b 41 20             	mov    0x20(%ecx),%eax
451bca:	01 30                	add    %esi,(%eax)
451bcc:	eb 2f                	jmp    0x451bfd
451bce:	8b 45 08             	mov    0x8(%ebp),%eax
451bd1:	0f b6 08             	movzbl (%eax),%ecx
451bd4:	8b 45 fc             	mov    -0x4(%ebp),%eax
451bd7:	51                   	push   %ecx
451bd8:	8b 00                	mov    (%eax),%eax
451bda:	8b 70 0c             	mov    0xc(%eax),%esi
451bdd:	8b ce                	mov    %esi,%ecx
451bdf:	ff 15 e0 24 68 00    	call   *0x6824e0
451be5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451be8:	ff d6                	call   *%esi
451bea:	83 f8 ff             	cmp    $0xffffffff,%eax
451bed:	74 23                	je     0x451c12
451bef:	8b 4d fc             	mov    -0x4(%ebp),%ecx
451bf2:	83 c7 ff             	add    $0xffffffff,%edi
451bf5:	be 01 00 00 00       	mov    $0x1,%esi
451bfa:	83 d3 ff             	adc    $0xffffffff,%ebx
451bfd:	01 75 08             	add    %esi,0x8(%ebp)
451c00:	85 db                	test   %ebx,%ebx
451c02:	0f 8f 78 ff ff ff    	jg     0x451b80
451c08:	7c 08                	jl     0x451c12
451c0a:	85 ff                	test   %edi,%edi
451c0c:	0f 85 6e ff ff ff    	jne    0x451b80
451c12:	8b 45 f4             	mov    -0xc(%ebp),%eax
451c15:	8b 55 f0             	mov    -0x10(%ebp),%edx
451c18:	5e                   	pop    %esi
451c19:	2b c7                	sub    %edi,%eax
451c1b:	5f                   	pop    %edi
451c1c:	1b d3                	sbb    %ebx,%edx
451c1e:	5b                   	pop    %ebx