40f5e1:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40f5e7:	50                   	push   %eax
40f5e8:	e8 e8 1a ff ff       	call   0x4010d5
40f5ed:	50                   	push   %eax
40f5ee:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40f5f4:	50                   	push   %eax
40f5f5:	8d 85 d4 fc ff ff    	lea    -0x32c(%ebp),%eax
40f5fb:	50                   	push   %eax
40f5fc:	e8 2b 1a ff ff       	call   0x40102c
40f601:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40f607:	50                   	push   %eax
40f608:	e8 c8 1a ff ff       	call   0x4010d5
40f60d:	83 c0 38             	add    $0x38,%eax
40f610:	8d 8d 9c fc ff ff    	lea    -0x364(%ebp),%ecx
40f616:	6a 02                	push   $0x2
40f618:	03 c1                	add    %ecx,%eax
40f61a:	56                   	push   %esi
40f61b:	50                   	push   %eax
40f61c:	e8 0b 1a ff ff       	call   0x40102c
40f621:	83 c4 38             	add    $0x38,%esp
40f624:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f627:	50                   	push   %eax
40f628:	8d 45 a8             	lea    -0x58(%ebp),%eax
40f62b:	50                   	push   %eax
40f62c:	53                   	push   %ebx
40f62d:	53                   	push   %ebx
40f62e:	68 00 00 00 08       	push   $0x8000000
40f633:	53                   	push   %ebx
40f634:	53                   	push   %ebx
40f635:	53                   	push   %ebx
40f636:	8d 85 9c fc ff ff    	lea    -0x364(%ebp),%eax
40f63c:	50                   	push   %eax
40f63d:	53                   	push   %ebx
40f63e:	ff 15 68 21 41 00    	call   *0x412168
40f644:	ff 75 f0             	push   -0x10(%ebp)
40f647:	8b 35 00 22 41 00    	mov    0x412200,%esi
40f64d:	ff d6                	call   *%esi
40f64f:	ff 75 ec             	push   -0x14(%ebp)
40f652:	ff d6                	call   *%esi
40f654:	53                   	push   %ebx
40f655:	ff 15 b0 21 41 00    	call   *0x4121b0
40f65b:	cc                   	int3
40f65c:	55                   	push   %ebp
40f65d:	8b ec                	mov    %esp,%ebp
40f65f:	51                   	push   %ecx
40f660:	56                   	push   %esi
40f661:	ff 75 0c             	push   0xc(%ebp)
40f664:	ff 15 f4 21 41 00    	call   *0x4121f4
40f66a:	8b f0                	mov    %eax,%esi
40f66c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f66f:	50                   	push   %eax
40f670:	68 06 00 02 00       	push   $0x20006
40f675:	6a 00                	push   $0x0
40f677:	68 e8 46 41 00       	push   $0x4146e8
40f67c:	68 01 00 00 80       	push   $0x80000001
40f681:	ff 15 10 20 41 00    	call   *0x412010
40f687:	85 c0                	test   %eax,%eax
40f689:	74 0b                	je     0x40f696
40f68b:	50                   	push   %eax
40f68c:	ff 15 10 22 41 00    	call   *0x412210
40f692:	32 c0                	xor    %al,%al
40f694:	eb 28                	jmp    0x40f6be
40f696:	56                   	push   %esi
40f697:	ff 75 0c             	push   0xc(%ebp)
40f69a:	6a 01                	push   $0x1
40f69c:	6a 00                	push   $0x0
40f69e:	ff 75 08             	push   0x8(%ebp)
40f6a1:	ff 75 fc             	push   -0x4(%ebp)
40f6a4:	ff 15 68 20 41 00    	call   *0x412068
40f6aa:	ff 75 fc             	push   -0x4(%ebp)
40f6ad:	8b f0                	mov    %eax,%esi
40f6af:	ff 15 20 20 41 00    	call   *0x412020
40f6b5:	85 f6                	test   %esi,%esi
40f6b7:	74 03                	je     0x40f6bc
40f6b9:	56                   	push   %esi
40f6ba:	eb d0                	jmp    0x40f68c
40f6bc:	b0 01                	mov    $0x1,%al
40f6be:	5e                   	pop    %esi
40f6bf:	c9                   	leave
40f6c0:	c3                   	ret
40f6c1:	55                   	push   %ebp
40f6c2:	8b ec                	mov    %esp,%ebp
40f6c4:	83 ec 28             	sub    $0x28,%esp
40f6c7:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f6ca:	56                   	push   %esi
40f6cb:	6a 01                	push   $0x1
40f6cd:	50                   	push   %eax
40f6ce:	ff 15 08 20 41 00    	call   *0x412008
40f6d4:	85 c0                	test   %eax,%eax
40f6d6:	74 60                	je     0x40f738
40f6d8:	33 f6                	xor    %esi,%esi
40f6da:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f6dd:	56                   	push   %esi
40f6de:	56                   	push   %esi
40f6df:	6a 01                	push   $0x1
40f6e1:	50                   	push   %eax
40f6e2:	ff 15 00 20 41 00    	call   *0x412000
40f6e8:	85 c0                	test   %eax,%eax
40f6ea:	74 4c                	je     0x40f738
40f6ec:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f6ef:	c7 45 ec 0c 00 00 00 	movl   $0xc,-0x14(%ebp)
40f6f6:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f6f9:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f6fc:	50                   	push   %eax
40f6fd:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f700:	89 75 f4             	mov    %esi,-0xc(%ebp)
40f703:	50                   	push   %eax
40f704:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f707:	50                   	push   %eax
40f708:	68 06 00 02 00       	push   $0x20006
40f70d:	56                   	push   %esi
40f70e:	56                   	push   %esi
40f70f:	56                   	push   %esi
40f710:	68 e8 46 41 00       	push   $0x4146e8
40f715:	68 01 00 00 80       	push   $0x80000001
40f71a:	ff 15 3c 20 41 00    	call   *0x41203c
40f720:	85 c0                	test   %eax,%eax
40f722:	75 0d                	jne    0x40f731
40f724:	ff 75 fc             	push   -0x4(%ebp)
40f727:	ff 15 20 20 41 00    	call   *0x412020
40f72d:	b0 01                	mov    $0x1,%al
40f72f:	eb 09                	jmp    0x40f73a
40f731:	50                   	push   %eax
40f732:	ff 15 10 22 41 00    	call   *0x412210
40f738:	32 c0                	xor    %al,%al
40f73a:	5e                   	pop    %esi
40f73b:	c9                   	leave
40f73c:	c3                   	ret
40f73d:	55                   	push   %ebp
40f73e:	8b ec                	mov    %esp,%ebp
40f740:	51                   	push   %ecx
40f741:	53                   	push   %ebx
40f742:	56                   	push   %esi
40f743:	57                   	push   %edi
40f744:	68 00 08 00 00       	push   $0x800
40f749:	8b d9                	mov    %ecx,%ebx
40f74b:	e8 5d 19 ff ff       	call   0x4010ad
40f750:	8b f8                	mov    %eax,%edi
40f752:	be 00 3c 41 00       	mov    $0x413c00,%esi
40f757:	59                   	pop    %ecx
40f758:	8b d7                	mov    %edi,%edx
40f75a:	2b f7                	sub    %edi,%esi
40f75c:	b8 01 06 00 00       	mov    $0x601,%eax
40f761:	8a 0c 16             	mov    (%esi,%edx,1),%cl
40f764:	80 f1 45             	xor    $0x45,%cl
40f767:	88 0a                	mov    %cl,(%edx)
40f769:	42                   	inc    %edx
40f76a:	83 e8 01             	sub    $0x1,%eax
40f76d:	75 f2                	jne    0x40f761
40f76f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f772:	50                   	push   %eax
40f773:	6a 40                	push   $0x40
40f775:	68 d0 07 00 00       	push   $0x7d0
40f77a:	57                   	push   %edi
40f77b:	ff 15 70 21 41 00    	call   *0x412170
40f781:	6a 40                	push   $0x40
40f783:	68 00 10 00 00       	push   $0x1000
40f788:	68 fe 01 00 00       	push   $0x1fe
40f78d:	6a 00                	push   $0x0
40f78f:	ff 15 d8 21 41 00    	call   *0x4121d8
40f795:	8b f0                	mov    %eax,%esi
40f797:	68 04 01 00 00       	push   $0x104
40f79c:	56                   	push   %esi
40f79d:	ff 15 7c 21 41 00    	call   *0x41217c
40f7a3:	6a 28                	push   $0x28
40f7a5:	68 b0 46 41 00       	push   $0x4146b0
40f7aa:	56                   	push   %esi
40f7ab:	ff 15 fc 21 41 00    	call   *0x4121fc
40f7b1:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40f7b4:	51                   	push   %ecx
40f7b5:	e8 72 18 ff ff       	call   0x40102c
40f7ba:	83 c4 0c             	add    $0xc,%esp
40f7bd:	8d 87 ef 00 00 00    	lea    0xef(%edi),%eax
40f7c3:	6a 00                	push   $0x0
40f7c5:	6a 00                	push   $0x0
40f7c7:	53                   	push   %ebx
40f7c8:	56                   	push   %esi
40f7c9:	ff d0                	call   *%eax
40f7cb:	5f                   	pop    %edi
40f7cc:	5e                   	pop    %esi
40f7cd:	5b                   	pop    %ebx
40f7ce:	c9                   	leave
40f7cf:	c3                   	ret
40f7d0:	55                   	push   %ebp
40f7d1:	8b ec                	mov    %esp,%ebp
40f7d3:	51                   	push   %ecx
40f7d4:	51                   	push   %ecx
40f7d5:	53                   	push   %ebx
40f7d6:	56                   	push   %esi
40f7d7:	57                   	push   %edi
40f7d8:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f7db:	be 3f 00 0f 00       	mov    $0xf003f,%esi
40f7e0:	50                   	push   %eax
40f7e1:	56                   	push   %esi
40f7e2:	33 ff                	xor    %edi,%edi
40f7e4:	bb 80 46 41 00       	mov    $0x414680,%ebx
40f7e9:	57                   	push   %edi
40f7ea:	53                   	push   %ebx
40f7eb:	68 01 00 00 80       	push   $0x80000001
40f7f0:	ff 15 14 20 41 00    	call   *0x412014
40f7f6:	85 c0                	test   %eax,%eax
40f7f8:	74 19                	je     0x40f813
40f7fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f7fd:	50                   	push   %eax
40f7fe:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f801:	50                   	push   %eax
40f802:	57                   	push   %edi
40f803:	56                   	push   %esi
40f804:	57                   	push   %edi
40f805:	57                   	push   %edi
40f806:	57                   	push   %edi
40f807:	53                   	push   %ebx
40f808:	68 01 00 00 80       	push   $0x80000001
40f80d:	ff 15 6c 20 41 00    	call   *0x41206c
40f813:	be a8 68 41 00       	mov    $0x4168a8,%esi
40f818:	56                   	push   %esi
40f819:	ff 15 fc 21 41 00    	call   *0x4121fc
40f81f:	c1 e0 02             	shl    $0x2,%eax
40f822:	50                   	push   %eax
40f823:	56                   	push   %esi
40f824:	6a 01                	push   $0x1
40f826:	57                   	push   %edi
40f827:	68 a0 46 41 00       	push   $0x4146a0
40f82c:	ff 75 fc             	push   -0x4(%ebp)
40f82f:	ff 15 38 20 41 00    	call   *0x412038
40f835:	ff 75 fc             	push   -0x4(%ebp)
40f838:	ff 15 20 20 41 00    	call   *0x412020
40f83e:	5f                   	pop    %edi
40f83f:	5e                   	pop    %esi
40f840:	5b                   	pop    %ebx
40f841:	c9                   	leave
40f842:	c3                   	ret
40f843:	56                   	push   %esi
40f844:	57                   	push   %edi
40f845:	bf 08 02 00 00       	mov    $0x208,%edi
40f84a:	be a8 68 41 00       	mov    $0x4168a8,%esi
40f84f:	57                   	push   %edi
40f850:	6a 00                	push   $0x0
40f852:	56                   	push   %esi
40f853:	e8 fa 17 ff ff       	call   0x401052
40f858:	83 c4 0c             	add    $0xc,%esp
40f85b:	57                   	push   %edi
40f85c:	56                   	push   %esi
40f85d:	6a 00                	push   $0x0
40f85f:	ff 15 08 21 41 00    	call   *0x412108
40f865:	ff 15 50 22 41 00    	call   *0x412250
40f86b:	85 c0                	test   %eax,%eax
40f86d:	75 4c                	jne    0x40f8bb
40f86f:	e8 23 e3 ff ff       	call   0x40db97
40f874:	83 f8 01             	cmp    $0x1,%eax
40f877:	74 42                	je     0x40f8bb
40f879:	53                   	push   %ebx
40f87a:	e8 51 ff ff ff       	call   0x40f7d0
40f87f:	e8 70 03 00 00       	call   0x40fbf4
40f884:	68 d8 46 41 00       	push   $0x4146d8
40f889:	8b d8                	mov    %eax,%ebx
40f88b:	6a 66                	push   $0x66
40f88d:	53                   	push   %ebx
40f88e:	ff 15 10 21 41 00    	call   *0x412110
40f894:	8b f8                	mov    %eax,%edi
40f896:	57                   	push   %edi
40f897:	53                   	push   %ebx
40f898:	ff 15 0c 21 41 00    	call   *0x41210c
40f89e:	57                   	push   %edi
40f89f:	53                   	push   %ebx
40f8a0:	8b f0                	mov    %eax,%esi
40f8a2:	ff 15 6c 21 41 00    	call   *0x41216c
40f8a8:	56                   	push   %esi
40f8a9:	ff 15 78 21 41 00    	call   *0x412178
40f8af:	5b                   	pop    %ebx
40f8b0:	85 c0                	test   %eax,%eax
40f8b2:	74 07                	je     0x40f8bb
40f8b4:	8b c8                	mov    %eax,%ecx
40f8b6:	e8 82 fe ff ff       	call   0x40f73d
40f8bb:	5f                   	pop    %edi
40f8bc:	33 c0                	xor    %eax,%eax
40f8be:	5e                   	pop    %esi
40f8bf:	c3                   	ret
40f8c0:	55                   	push   %ebp
40f8c1:	8b ec                	mov    %esp,%ebp
40f8c3:	81 ec 4c 06 00 00    	sub    $0x64c,%esp
40f8c9:	56                   	push   %esi
40f8ca:	57                   	push   %edi
40f8cb:	e8 c7 e2 ff ff       	call   0x40db97
40f8d0:	83 f8 01             	cmp    $0x1,%eax
40f8d3:	0f 84 14 01 00 00    	je     0x40f9ed
40f8d9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f8dc:	33 ff                	xor    %edi,%edi
40f8de:	50                   	push   %eax
40f8df:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f8e2:	ff 15 e8 20 41 00    	call   *0x4120e8
40f8e8:	50                   	push   %eax
40f8e9:	ff 15 20 22 41 00    	call   *0x412220
40f8ef:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40f8f2:	74 08                	je     0x40f8fc
40f8f4:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40f8f7:	e8 df dc ff ff       	call   0x40d5db
40f8fc:	e8 c0 fd ff ff       	call   0x40f6c1
40f901:	be 00 04 00 00       	mov    $0x400,%esi
40f906:	8d 85 b4 f9 ff ff    	lea    -0x64c(%ebp),%eax
40f90c:	56                   	push   %esi
40f90d:	57                   	push   %edi
40f90e:	50                   	push   %eax
40f90f:	e8 3e 17 ff ff       	call   0x401052
40f914:	83 c4 0c             	add    $0xc,%esp
40f917:	8d 85 b4 f9 ff ff    	lea    -0x64c(%ebp),%eax
40f91d:	56                   	push   %esi
40f91e:	50                   	push   %eax
40f91f:	57                   	push   %edi
40f920:	ff 15 14 22 41 00    	call   *0x412214
40f926:	8d 85 b4 f9 ff ff    	lea    -0x64c(%ebp),%eax
40f92c:	be 13 47 41 00       	mov    $0x414713,%esi
40f931:	50                   	push   %eax
40f932:	56                   	push   %esi
40f933:	e8 24 fd ff ff       	call   0x40f65c
40f938:	56                   	push   %esi
40f939:	68 14 47 41 00       	push   $0x414714
40f93e:	e8 19 fd ff ff       	call   0x40f65c
40f943:	83 c4 10             	add    $0x10,%esp
40f946:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f94c:	68 04 01 00 00       	push   $0x104
40f951:	50                   	push   %eax
40f952:	ff 15 74 21 41 00    	call   *0x412174
40f958:	68 24 47 41 00       	push   $0x414724
40f95d:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f963:	50                   	push   %eax
40f964:	ff 15 04 22 41 00    	call   *0x412204
40f96a:	6a 01                	push   $0x1
40f96c:	57                   	push   %edi
40f96d:	57                   	push   %edi
40f96e:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f974:	be 48 26 41 00       	mov    $0x412648,%esi
40f979:	50                   	push   %eax
40f97a:	56                   	push   %esi
40f97b:	57                   	push   %edi
40f97c:	ff 15 44 22 41 00    	call   *0x412244
40f982:	0f 28 05 c0 49 41 00 	movaps 0x4149c0,%xmm0
40f989:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40f98f:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f992:	8d 45 bc             	lea    -0x44(%ebp),%eax
40f995:	50                   	push   %eax
40f996:	c7 45 bc 3c 00 00 00 	movl   $0x3c,-0x44(%ebp)
40f99d:	c7 45 c0 40 00 00 00 	movl   $0x40,-0x40(%ebp)
40f9a4:	89 7d c4             	mov    %edi,-0x3c(%ebp)
40f9a7:	89 75 c8             	mov    %esi,-0x38(%ebp)
40f9aa:	0f 11 45 d0          	movups %xmm0,-0x30(%ebp)
40f9ae:	ff 15 4c 22 41 00    	call   *0x41224c
40f9b4:	57                   	push   %edi
40f9b5:	ff 75 f4             	push   -0xc(%ebp)
40f9b8:	ff 15 54 21 41 00    	call   *0x412154