40a8e0:	ff 75 fc             	push   -0x4(%ebp)
40a8e3:	57                   	push   %edi
40a8e4:	e8 27 13 01 00       	call   0x41bc10
40a8e9:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a8ec:	83 c4 18             	add    $0x18,%esp
40a8ef:	c6 00 00             	movb   $0x0,(%eax)
40a8f2:	8b c3                	mov    %ebx,%eax
40a8f4:	5f                   	pop    %edi
40a8f5:	89 33                	mov    %esi,(%ebx)
40a8f7:	5e                   	pop    %esi
40a8f8:	5b                   	pop    %ebx
40a8f9:	8b e5                	mov    %ebp,%esp
40a8fb:	5d                   	pop    %ebp
40a8fc:	c2 10 00             	ret    $0x10
40a8ff:	e8 5c 6a ff ff       	call   0x401360
40a904:	e8 b7 69 ff ff       	call   0x4012c0
40a909:	e8 85 50 01 00       	call   0x41f993
40a90e:	cc                   	int3
40a90f:	cc                   	int3
40a910:	55                   	push   %ebp
40a911:	8b ec                	mov    %esp,%ebp
40a913:	6a ff                	push   $0xffffffff
40a915:	68 a0 bd 43 00       	push   $0x43bda0
40a91a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a920:	50                   	push   %eax
40a921:	56                   	push   %esi
40a922:	57                   	push   %edi
40a923:	a1 14 50 45 00       	mov    0x455014,%eax
40a928:	33 c5                	xor    %ebp,%eax
40a92a:	50                   	push   %eax
40a92b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a92e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a934:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a93b:	8b 09                	mov    (%ecx),%ecx
40a93d:	8b 01                	mov    (%ecx),%eax
40a93f:	8b 40 04             	mov    0x4(%eax),%eax
40a942:	8b 7c 08 38          	mov    0x38(%eax,%ecx,1),%edi
40a946:	85 ff                	test   %edi,%edi
40a948:	74 11                	je     0x40a95b
40a94a:	8b 07                	mov    (%edi),%eax
40a94c:	8b 70 08             	mov    0x8(%eax),%esi
40a94f:	8b ce                	mov    %esi,%ecx
40a951:	ff 15 5c e2 43 00    	call   *0x43e25c
40a957:	8b cf                	mov    %edi,%ecx
40a959:	ff d6                	call   *%esi
40a95b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a95e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a965:	59                   	pop    %ecx
40a966:	5f                   	pop    %edi
40a967:	5e                   	pop    %esi
40a968:	8b e5                	mov    %ebp,%esp
40a96a:	5d                   	pop    %ebp
40a96b:	c3                   	ret
40a96c:	cc                   	int3
40a96d:	cc                   	int3
40a96e:	cc                   	int3
40a96f:	cc                   	int3
40a970:	cc                   	int3
40a971:	cc                   	int3
40a972:	cc                   	int3
40a973:	cc                   	int3
40a974:	cc                   	int3
40a975:	cc                   	int3
40a976:	cc                   	int3
40a977:	cc                   	int3
40a978:	cc                   	int3
40a979:	cc                   	int3
40a97a:	cc                   	int3
40a97b:	cc                   	int3
40a97c:	cc                   	int3
40a97d:	cc                   	int3
40a97e:	cc                   	int3
40a97f:	cc                   	int3
40a980:	53                   	push   %ebx
40a981:	8b dc                	mov    %esp,%ebx
40a983:	83 ec 08             	sub    $0x8,%esp
40a986:	83 e4 f8             	and    $0xfffffff8,%esp
40a989:	83 c4 04             	add    $0x4,%esp
40a98c:	55                   	push   %ebp
40a98d:	8b 6b 04             	mov    0x4(%ebx),%ebp
40a990:	89 6c 24 04          	mov    %ebp,0x4(%esp)
40a994:	8b ec                	mov    %esp,%ebp
40a996:	6a ff                	push   $0xffffffff
40a998:	68 31 c2 43 00       	push   $0x43c231
40a99d:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a9a3:	50                   	push   %eax
40a9a4:	53                   	push   %ebx
40a9a5:	81 ec e8 00 00 00    	sub    $0xe8,%esp
40a9ab:	a1 14 50 45 00       	mov    0x455014,%eax
40a9b0:	33 c5                	xor    %ebp,%eax
40a9b2:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a9b5:	56                   	push   %esi
40a9b6:	57                   	push   %edi
40a9b7:	50                   	push   %eax
40a9b8:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a9bb:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a9c1:	8b 43 08             	mov    0x8(%ebx),%eax
40a9c4:	8b 7b 0c             	mov    0xc(%ebx),%edi
40a9c7:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
40a9cd:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40a9d4:	85 c0                	test   %eax,%eax
40a9d6:	0f 84 90 02 00 00    	je     0x40ac6c
40a9dc:	83 38 00             	cmpl   $0x0,(%eax)
40a9df:	0f 85 87 02 00 00    	jne    0x40ac6c
40a9e5:	6a 18                	push   $0x18
40a9e7:	e8 da f1 00 00       	call   0x419bc6
40a9ec:	8b f0                	mov    %eax,%esi
40a9ee:	83 c4 04             	add    $0x4,%esp
40a9f1:	89 75 dc             	mov    %esi,-0x24(%ebp)
40a9f4:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a9fb:	0f 57 c0             	xorps  %xmm0,%xmm0
40a9fe:	0f 11 06             	movups %xmm0,(%esi)
40aa01:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
40aa06:	8b 47 04             	mov    0x4(%edi),%eax
40aa09:	85 c0                	test   %eax,%eax
40aa0b:	74 0c                	je     0x40aa19
40aa0d:	8b 78 18             	mov    0x18(%eax),%edi
40aa10:	85 ff                	test   %edi,%edi
40aa12:	75 0a                	jne    0x40aa1e
40aa14:	8d 78 1c             	lea    0x1c(%eax),%edi
40aa17:	eb 05                	jmp    0x40aa1e
40aa19:	bf 67 ed 44 00       	mov    $0x44ed67,%edi
40aa1e:	6a 00                	push   $0x0
40aa20:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
40aa26:	e8 fc e4 00 00       	call   0x418f27
40aa2b:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
40aa32:	00 00 00
40aa35:	c6 85 74 ff ff ff 00 	movb   $0x0,-0x8c(%ebp)
40aa3c:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
40aa43:	00 00 00
40aa46:	c6 85 7c ff ff ff 00 	movb   $0x0,-0x84(%ebp)
40aa4d:	33 c0                	xor    %eax,%eax
40aa4f:	c7 45 80 00 00 00 00 	movl   $0x0,-0x80(%ebp)
40aa56:	66 89 45 84          	mov    %ax,-0x7c(%ebp)
40aa5a:	89 45 88             	mov    %eax,-0x78(%ebp)
40aa5d:	66 89 45 8c          	mov    %ax,-0x74(%ebp)
40aa61:	89 45 90             	mov    %eax,-0x70(%ebp)
40aa64:	88 45 94             	mov    %al,-0x6c(%ebp)
40aa67:	89 45 98             	mov    %eax,-0x68(%ebp)
40aa6a:	88 45 9c             	mov    %al,-0x64(%ebp)
40aa6d:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
40aa71:	85 ff                	test   %edi,%edi
40aa73:	0f 84 16 02 00 00    	je     0x40ac8f
40aa79:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40aa7f:	57                   	push   %edi
40aa80:	50                   	push   %eax
40aa81:	e8 8e e7 00 00       	call   0x419214
40aa86:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
40aa8d:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
40aa94:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
40aa9b:	c7 06 f4 f6 43 00    	movl   $0x43f6f4,(%esi)
40aaa1:	e8 94 9e 01 00       	call   0x42493a
40aaa6:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
40aaac:	50                   	push   %eax
40aaad:	e8 23 ec 00 00       	call   0x4196d5
40aab2:	83 c4 0c             	add    $0xc,%esp
40aab5:	89 75 d8             	mov    %esi,-0x28(%ebp)
40aab8:	0f 10 00             	movups (%eax),%xmm0
40aabb:	0f 11 45 a0          	movups %xmm0,-0x60(%ebp)
40aabf:	0f 10 40 10          	movups 0x10(%eax),%xmm0
40aac3:	0f 11 45 b0          	movups %xmm0,-0x50(%ebp)
40aac7:	f3 0f 7e 40 20       	movq   0x20(%eax),%xmm0
40aacc:	66 0f d6 45 c0       	movq   %xmm0,-0x40(%ebp)
40aad1:	8b 40 28             	mov    0x28(%eax),%eax
40aad4:	89 45 c8             	mov    %eax,-0x38(%ebp)
40aad7:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40aade:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40aae5:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40aaec:	8d 85 08 ff ff ff    	lea    -0xf8(%ebp),%eax
40aaf2:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
40aaf6:	50                   	push   %eax
40aaf7:	e8 d9 eb 00 00       	call   0x4196d5
40aafc:	83 c4 04             	add    $0x4,%esp
40aaff:	6a 01                	push   $0x1
40ab01:	6a 01                	push   $0x1
40ab03:	e8 a4 98 01 00       	call   0x4243ac
40ab08:	83 c4 08             	add    $0x8,%esp
40ab0b:	85 c0                	test   %eax,%eax
40ab0d:	0f 84 86 01 00 00    	je     0x40ac99
40ab13:	c6 00 00             	movb   $0x0,(%eax)
40ab16:	89 46 08             	mov    %eax,0x8(%esi)
40ab19:	8d 45 a0             	lea    -0x60(%ebp),%eax
40ab1c:	50                   	push   %eax
40ab1d:	6a 00                	push   $0x0
40ab1f:	68 70 ee 44 00       	push   $0x44ee70
40ab24:	e8 27 be ff ff       	call   0x406950
40ab29:	83 c4 0c             	add    $0xc,%esp
40ab2c:	89 46 10             	mov    %eax,0x10(%esi)
40ab2f:	8d 45 a0             	lea    -0x60(%ebp),%eax
40ab32:	50                   	push   %eax
40ab33:	6a 00                	push   $0x0
40ab35:	68 78 ee 44 00       	push   $0x44ee78
40ab3a:	e8 11 be ff ff       	call   0x406950
40ab3f:	89 46 14             	mov    %eax,0x14(%esi)
40ab42:	83 c4 0c             	add    $0xc,%esp
40ab45:	33 c0                	xor    %eax,%eax
40ab47:	c6 45 e8 2e          	movb   $0x2e,-0x18(%ebp)
40ab4b:	66 89 45 dc          	mov    %ax,-0x24(%ebp)
40ab4f:	0f 57 c0             	xorps  %xmm0,%xmm0
40ab52:	8d 45 a0             	lea    -0x60(%ebp),%eax
40ab55:	66 0f 13 45 d4       	movlpd %xmm0,-0x2c(%ebp)
40ab5a:	50                   	push   %eax
40ab5b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40ab5e:	50                   	push   %eax
40ab5f:	6a 01                	push   $0x1
40ab61:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ab64:	50                   	push   %eax
40ab65:	8d 45 dc             	lea    -0x24(%ebp),%eax
40ab68:	50                   	push   %eax
40ab69:	e8 3f e9 00 00       	call   0x4194ad
40ab6e:	0f b7 45 dc          	movzwl -0x24(%ebp),%eax
40ab72:	83 c4 14             	add    $0x14,%esp
40ab75:	66 89 46 0c          	mov    %ax,0xc(%esi)
40ab79:	0f 57 c0             	xorps  %xmm0,%xmm0
40ab7c:	33 c0                	xor    %eax,%eax
40ab7e:	c6 45 e4 2c          	movb   $0x2c,-0x1c(%ebp)
40ab82:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
40ab86:	8d 45 a0             	lea    -0x60(%ebp),%eax
40ab89:	50                   	push   %eax
40ab8a:	8d 45 cc             	lea    -0x34(%ebp),%eax
40ab8d:	66 0f 13 45 cc       	movlpd %xmm0,-0x34(%ebp)
40ab92:	50                   	push   %eax
40ab93:	6a 01                	push   $0x1
40ab95:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40ab98:	50                   	push   %eax
40ab99:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ab9c:	50                   	push   %eax
40ab9d:	e8 0b e9 00 00       	call   0x4194ad
40aba2:	0f b7 45 e0          	movzwl -0x20(%ebp),%eax
40aba6:	83 c4 14             	add    $0x14,%esp
40aba9:	66 89 46 0e          	mov    %ax,0xe(%esi)
40abad:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
40abb3:	89 30                	mov    %esi,(%eax)
40abb5:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40abbb:	c7 45 fc 0c 00 00 00 	movl   $0xc,-0x4(%ebp)
40abc2:	50                   	push   %eax
40abc3:	e8 97 e6 00 00       	call   0x41925f
40abc8:	8b 45 98             	mov    -0x68(%ebp),%eax
40abcb:	83 c4 04             	add    $0x4,%esp
40abce:	85 c0                	test   %eax,%eax
40abd0:	74 09                	je     0x40abdb
40abd2:	50                   	push   %eax
40abd3:	e8 6b 8e 01 00       	call   0x423a43
40abd8:	83 c4 04             	add    $0x4,%esp
40abdb:	8b 45 90             	mov    -0x70(%ebp),%eax
40abde:	c7 45 98 00 00 00 00 	movl   $0x0,-0x68(%ebp)
40abe5:	85 c0                	test   %eax,%eax
40abe7:	74 09                	je     0x40abf2
40abe9:	50                   	push   %eax
40abea:	e8 54 8e 01 00       	call   0x423a43
40abef:	83 c4 04             	add    $0x4,%esp
40abf2:	8b 45 88             	mov    -0x78(%ebp),%eax
40abf5:	c7 45 90 00 00 00 00 	movl   $0x0,-0x70(%ebp)
40abfc:	85 c0                	test   %eax,%eax
40abfe:	74 09                	je     0x40ac09
40ac00:	50                   	push   %eax
40ac01:	e8 3d 8e 01 00       	call   0x423a43
40ac06:	83 c4 04             	add    $0x4,%esp
40ac09:	8b 45 80             	mov    -0x80(%ebp),%eax
40ac0c:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%ebp)
40ac13:	85 c0                	test   %eax,%eax
40ac15:	74 09                	je     0x40ac20
40ac17:	50                   	push   %eax
40ac18:	e8 26 8e 01 00       	call   0x423a43
40ac1d:	83 c4 04             	add    $0x4,%esp
40ac20:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
40ac26:	c7 45 80 00 00 00 00 	movl   $0x0,-0x80(%ebp)
40ac2d:	85 c0                	test   %eax,%eax
40ac2f:	74 09                	je     0x40ac3a
40ac31:	50                   	push   %eax
40ac32:	e8 0c 8e 01 00       	call   0x423a43
40ac37:	83 c4 04             	add    $0x4,%esp
40ac3a:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
40ac40:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
40ac47:	00 00 00
40ac4a:	85 c0                	test   %eax,%eax
40ac4c:	74 09                	je     0x40ac57
40ac4e:	50                   	push   %eax
40ac4f:	e8 ef 8d 01 00       	call   0x423a43
40ac54:	83 c4 04             	add    $0x4,%esp
40ac57:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
40ac5d:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
40ac64:	00 00 00
40ac67:	e8 13 e3 00 00       	call   0x418f7f
40ac6c:	b8 04 00 00 00       	mov    $0x4,%eax
40ac71:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ac74:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ac7b:	59                   	pop    %ecx
40ac7c:	5f                   	pop    %edi
40ac7d:	5e                   	pop    %esi
40ac7e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40ac81:	33 cd                	xor    %ebp,%ecx
40ac83:	e8 22 ef 00 00       	call   0x419baa
40ac88:	8b e5                	mov    %ebp,%esp
40ac8a:	5d                   	pop    %ebp
40ac8b:	8b e3                	mov    %ebx,%esp
40ac8d:	5b                   	pop    %ebx
40ac8e:	c3                   	ret
40ac8f:	68 80 ed 44 00       	push   $0x44ed80
40ac94:	e8 41 e2 00 00       	call   0x418eda
40ac99:	e8 df e1 00 00       	call   0x418e7d
40ac9e:	cc                   	int3
40ac9f:	cc                   	int3
40aca0:	53                   	push   %ebx
40aca1:	56                   	push   %esi
40aca2:	57                   	push   %edi
40aca3:	8b f9                	mov    %ecx,%edi
40aca5:	8b 47 1c             	mov    0x1c(%edi),%eax
40aca8:	83 38 00             	cmpl   $0x0,(%eax)
40acab:	74 32                	je     0x40acdf
40acad:	8b 4f 2c             	mov    0x2c(%edi),%ecx
40acb0:	8b 01                	mov    (%ecx),%eax
40acb2:	83 f8 01             	cmp    $0x1,%eax
40acb5:	7e 12                	jle    0x40acc9
40acb7:	48                   	dec    %eax
40acb8:	89 01                	mov    %eax,(%ecx)
40acba:	8b 47 1c             	mov    0x1c(%edi),%eax
40acbd:	5f                   	pop    %edi
40acbe:	5e                   	pop    %esi
40acbf:	5b                   	pop    %ebx
40acc0:	83 00 02             	addl   $0x2,(%eax)
40acc3:	8b 00                	mov    (%eax),%eax
40acc5:	0f b7 00             	movzwl (%eax),%eax
40acc8:	c3                   	ret
40acc9:	85 c0                	test   %eax,%eax
40accb:	7e 12                	jle    0x40acdf
40accd:	48                   	dec    %eax
40acce:	89 01                	mov    %eax,(%ecx)
40acd0:	8b 4f 1c             	mov    0x1c(%edi),%ecx
40acd3:	8b 11                	mov    (%ecx),%edx
40acd5:	8d 42 02             	lea    0x2(%edx),%eax
40acd8:	89 01                	mov    %eax,(%ecx)
40acda:	0f b7 02             	movzwl (%edx),%eax
40acdd:	eb 14                	jmp    0x40acf3
40acdf:	8b 07                	mov    (%edi),%eax
40ace1:	8b 70 1c             	mov    0x1c(%eax),%esi
40ace4:	8b ce                	mov    %esi,%ecx
40ace6:	ff 15 5c e2 43 00    	call   *0x43e25c
40acec:	8b cf                	mov    %edi,%ecx
40acee:	ff d6                	call   *%esi
40acf0:	0f b7 c0             	movzwl %ax,%eax
40acf3:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40acf8:	66 3b c8             	cmp    %ax,%cx
40acfb:	75 06                	jne    0x40ad03
40acfd:	5f                   	pop    %edi
40acfe:	5e                   	pop    %esi
40acff:	8b c1                	mov    %ecx,%eax
40ad01:	5b                   	pop    %ebx
40ad02:	c3                   	ret
40ad03:	8b 47 1c             	mov    0x1c(%edi),%eax