40d5a0:	8d 85 c0 fd ff ff    	lea    -0x240(%ebp),%eax
40d5a6:	8b ce                	mov    %esi,%ecx
40d5a8:	50                   	push   %eax
40d5a9:	e8 64 5e ff ff       	call   0x403412
40d5ae:	8b c6                	mov    %esi,%eax
40d5b0:	5e                   	pop    %esi
40d5b1:	5b                   	pop    %ebx
40d5b2:	c9                   	leave
40d5b3:	c3                   	ret
40d5b4:	56                   	push   %esi
40d5b5:	8b f1                	mov    %ecx,%esi
40d5b7:	e8 30 13 00 00       	call   0x40e8ec
40d5bc:	85 c0                	test   %eax,%eax
40d5be:	74 17                	je     0x40d5d7
40d5c0:	51                   	push   %ecx
40d5c1:	ba 80 42 41 00       	mov    $0x414280,%edx
40d5c6:	8b c8                	mov    %eax,%ecx
40d5c8:	e8 3a 13 00 00       	call   0x40e907
40d5cd:	59                   	pop    %ecx
40d5ce:	85 c0                	test   %eax,%eax
40d5d0:	74 05                	je     0x40d5d7
40d5d2:	56                   	push   %esi
40d5d3:	ff d0                	call   *%eax
40d5d5:	5e                   	pop    %esi
40d5d6:	c3                   	ret
40d5d7:	33 c0                	xor    %eax,%eax
40d5d9:	5e                   	pop    %esi
40d5da:	c3                   	ret
40d5db:	56                   	push   %esi
40d5dc:	8b f1                	mov    %ecx,%esi
40d5de:	e8 09 13 00 00       	call   0x40e8ec
40d5e3:	85 c0                	test   %eax,%eax
40d5e5:	74 1e                	je     0x40d605
40d5e7:	51                   	push   %ecx
40d5e8:	ba 60 42 41 00       	mov    $0x414260,%edx
40d5ed:	8b c8                	mov    %eax,%ecx
40d5ef:	e8 13 13 00 00       	call   0x40e907
40d5f4:	59                   	pop    %ecx
40d5f5:	85 c0                	test   %eax,%eax
40d5f7:	74 0c                	je     0x40d605
40d5f9:	56                   	push   %esi
40d5fa:	ff d0                	call   *%eax
40d5fc:	85 c0                	test   %eax,%eax
40d5fe:	74 05                	je     0x40d605
40d600:	33 c0                	xor    %eax,%eax
40d602:	40                   	inc    %eax
40d603:	5e                   	pop    %esi
40d604:	c3                   	ret
40d605:	33 c0                	xor    %eax,%eax
40d607:	5e                   	pop    %esi
40d608:	c3                   	ret
40d609:	55                   	push   %ebp
40d60a:	8b ec                	mov    %esp,%ebp
40d60c:	83 ec 34             	sub    $0x34,%esp
40d60f:	53                   	push   %ebx
40d610:	56                   	push   %esi
40d611:	57                   	push   %edi
40d612:	33 c0                	xor    %eax,%eax
40d614:	8d 7d d0             	lea    -0x30(%ebp),%edi
40d617:	ab                   	stos   %eax,%es:(%edi)
40d618:	33 db                	xor    %ebx,%ebx
40d61a:	0f 57 c0             	xorps  %xmm0,%xmm0
40d61d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d620:	8b f2                	mov    %edx,%esi
40d622:	66 0f 13 45 f0       	movlpd %xmm0,-0x10(%ebp)
40d627:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40d62a:	ab                   	stos   %eax,%es:(%edi)
40d62b:	ab                   	stos   %eax,%es:(%edi)
40d62c:	ab                   	stos   %eax,%es:(%edi)
40d62d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d630:	50                   	push   %eax
40d631:	6a 28                	push   $0x28
40d633:	51                   	push   %ecx
40d634:	ff 15 54 20 41 00    	call   *0x412054
40d63a:	85 c0                	test   %eax,%eax
40d63c:	74 4a                	je     0x40d688
40d63e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d641:	50                   	push   %eax
40d642:	ff 36                	push   (%esi)
40d644:	53                   	push   %ebx
40d645:	ff 15 60 20 41 00    	call   *0x412060
40d64b:	85 c0                	test   %eax,%eax
40d64d:	74 39                	je     0x40d688
40d64f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d652:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d655:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d658:	33 f6                	xor    %esi,%esi
40d65a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d65d:	46                   	inc    %esi
40d65e:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d661:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d664:	50                   	push   %eax
40d665:	8d 45 d0             	lea    -0x30(%ebp),%eax
40d668:	89 75 e0             	mov    %esi,-0x20(%ebp)
40d66b:	50                   	push   %eax
40d66c:	6a 10                	push   $0x10
40d66e:	51                   	push   %ecx
40d66f:	53                   	push   %ebx
40d670:	ff 75 fc             	push   -0x4(%ebp)
40d673:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
40d67a:	ff 15 5c 20 41 00    	call   *0x41205c
40d680:	85 c0                	test   %eax,%eax
40d682:	74 04                	je     0x40d688
40d684:	8b c6                	mov    %esi,%eax
40d686:	eb 02                	jmp    0x40d68a
40d688:	33 c0                	xor    %eax,%eax
40d68a:	5f                   	pop    %edi
40d68b:	5e                   	pop    %esi
40d68c:	5b                   	pop    %ebx
40d68d:	c9                   	leave
40d68e:	c3                   	ret
40d68f:	53                   	push   %ebx
40d690:	56                   	push   %esi
40d691:	57                   	push   %edi
40d692:	6a 02                	push   $0x2
40d694:	6a 00                	push   $0x0
40d696:	ff 31                	push   (%ecx)
40d698:	8b fa                	mov    %edx,%edi
40d69a:	ff 15 1c 21 41 00    	call   *0x41211c
40d6a0:	8b f0                	mov    %eax,%esi
40d6a2:	83 fe ff             	cmp    $0xffffffff,%esi
40d6a5:	74 62                	je     0x40d709
40d6a7:	6a 10                	push   $0x10
40d6a9:	33 db                	xor    %ebx,%ebx
40d6ab:	43                   	inc    %ebx
40d6ac:	53                   	push   %ebx
40d6ad:	56                   	push   %esi
40d6ae:	ff 15 10 21 41 00    	call   *0x412110
40d6b4:	85 c0                	test   %eax,%eax
40d6b6:	74 51                	je     0x40d709
40d6b8:	50                   	push   %eax
40d6b9:	56                   	push   %esi
40d6ba:	ff 15 0c 21 41 00    	call   *0x41210c
40d6c0:	85 c0                	test   %eax,%eax
40d6c2:	74 45                	je     0x40d709
40d6c4:	8b 48 14             	mov    0x14(%eax),%ecx
40d6c7:	8b 50 28             	mov    0x28(%eax),%edx
40d6ca:	89 0f                	mov    %ecx,(%edi)
40d6cc:	66 8b 48 1a          	mov    0x1a(%eax),%cx
40d6d0:	66 89 4f 04          	mov    %cx,0x4(%edi)
40d6d4:	66 8b 48 18          	mov    0x18(%eax),%cx
40d6d8:	8b c2                	mov    %edx,%eax
40d6da:	23 c3                	and    %ebx,%eax
40d6dc:	66 89 4f 06          	mov    %cx,0x6(%edi)
40d6e0:	89 47 08             	mov    %eax,0x8(%edi)
40d6e3:	8b ca                	mov    %edx,%ecx
40d6e5:	8b c2                	mov    %edx,%eax
40d6e7:	c1 e9 03             	shr    $0x3,%ecx
40d6ea:	d1 e8                	shr    $1,%eax
40d6ec:	23 cb                	and    %ebx,%ecx
40d6ee:	c1 ea 05             	shr    $0x5,%edx
40d6f1:	23 c3                	and    %ebx,%eax
40d6f3:	23 d3                	and    %ebx,%edx
40d6f5:	89 47 0c             	mov    %eax,0xc(%edi)
40d6f8:	56                   	push   %esi
40d6f9:	89 4f 10             	mov    %ecx,0x10(%edi)
40d6fc:	89 57 14             	mov    %edx,0x14(%edi)
40d6ff:	ff 15 dc 20 41 00    	call   *0x4120dc
40d705:	8b c3                	mov    %ebx,%eax
40d707:	eb 02                	jmp    0x40d70b
40d709:	33 c0                	xor    %eax,%eax
40d70b:	5f                   	pop    %edi
40d70c:	5e                   	pop    %esi
40d70d:	5b                   	pop    %ebx
40d70e:	c3                   	ret
40d70f:	6a 00                	push   $0x0
40d711:	ff 31                	push   (%ecx)
40d713:	6a 00                	push   $0x0
40d715:	ff 15 58 22 41 00    	call   *0x412258
40d71b:	f7 d8                	neg    %eax
40d71d:	1b c0                	sbb    %eax,%eax
40d71f:	40                   	inc    %eax
40d720:	c3                   	ret
40d721:	55                   	push   %ebp
40d722:	8b ec                	mov    %esp,%ebp
40d724:	51                   	push   %ecx
40d725:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d729:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d72c:	50                   	push   %eax
40d72d:	68 19 00 02 00       	push   $0x20019
40d732:	6a 00                	push   $0x0
40d734:	ff 32                	push   (%edx)
40d736:	51                   	push   %ecx
40d737:	ff 15 14 20 41 00    	call   *0x412014
40d73d:	83 f8 02             	cmp    $0x2,%eax
40d740:	75 04                	jne    0x40d746
40d742:	33 c0                	xor    %eax,%eax
40d744:	c9                   	leave
40d745:	c3                   	ret
40d746:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d74a:	74 09                	je     0x40d755
40d74c:	ff 75 fc             	push   -0x4(%ebp)
40d74f:	ff 15 20 20 41 00    	call   *0x412020
40d755:	33 c0                	xor    %eax,%eax
40d757:	40                   	inc    %eax
40d758:	c9                   	leave
40d759:	c3                   	ret
40d75a:	c3                   	ret
40d75b:	55                   	push   %ebp
40d75c:	8b ec                	mov    %esp,%ebp
40d75e:	81 ec 08 02 00 00    	sub    $0x208,%esp
40d764:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
40d76a:	56                   	push   %esi
40d76b:	57                   	push   %edi
40d76c:	68 08 02 00 00       	push   $0x208
40d771:	6a 00                	push   $0x0
40d773:	50                   	push   %eax
40d774:	8b f2                	mov    %edx,%esi
40d776:	8b f9                	mov    %ecx,%edi
40d778:	e8 d5 38 ff ff       	call   0x401052
40d77d:	83 c4 0c             	add    $0xc,%esp
40d780:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
40d786:	6a 00                	push   $0x0
40d788:	56                   	push   %esi
40d789:	50                   	push   %eax
40d78a:	6a 00                	push   $0x0
40d78c:	ff 15 54 22 41 00    	call   *0x412254
40d792:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
40d798:	8b cf                	mov    %edi,%ecx
40d79a:	50                   	push   %eax
40d79b:	e8 72 5c ff ff       	call   0x403412
40d7a0:	8b c7                	mov    %edi,%eax
40d7a2:	5f                   	pop    %edi
40d7a3:	5e                   	pop    %esi
40d7a4:	c9                   	leave
40d7a5:	c3                   	ret
40d7a6:	8b c1                	mov    %ecx,%eax
40d7a8:	c3                   	ret
40d7a9:	55                   	push   %ebp
40d7aa:	8b ec                	mov    %esp,%ebp
40d7ac:	83 ec 28             	sub    $0x28,%esp
40d7af:	56                   	push   %esi
40d7b0:	57                   	push   %edi
40d7b1:	33 ff                	xor    %edi,%edi
40d7b3:	8b f1                	mov    %ecx,%esi
40d7b5:	57                   	push   %edi
40d7b6:	57                   	push   %edi
40d7b7:	57                   	push   %edi
40d7b8:	6a 03                	push   $0x3
40d7ba:	57                   	push   %edi
40d7bb:	57                   	push   %edi
40d7bc:	57                   	push   %edi
40d7bd:	6a ff                	push   $0xffffffff
40d7bf:	57                   	push   %edi
40d7c0:	ff 15 20 23 41 00    	call   *0x412320
40d7c6:	57                   	push   %edi
40d7c7:	ff 15 30 23 41 00    	call   *0x412330
40d7cd:	85 c0                	test   %eax,%eax
40d7cf:	78 4a                	js     0x40d81b
40d7d1:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d7d4:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d7d7:	50                   	push   %eax
40d7d8:	68 30 43 41 00       	push   $0x414330
40d7dd:	6a 17                	push   $0x17
40d7df:	57                   	push   %edi
40d7e0:	68 60 24 41 00       	push   $0x412460
40d7e5:	ff 15 28 23 41 00    	call   *0x412328
40d7eb:	85 c0                	test   %eax,%eax
40d7ed:	78 2c                	js     0x40d81b
40d7ef:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d7f2:	8d 55 f0             	lea    -0x10(%ebp),%edx
40d7f5:	52                   	push   %edx
40d7f6:	57                   	push   %edi
40d7f7:	57                   	push   %edi
40d7f8:	68 80 00 00 00       	push   $0x80
40d7fd:	57                   	push   %edi
40d7fe:	57                   	push   %edi
40d7ff:	57                   	push   %edi
40d800:	89 7d f0             	mov    %edi,-0x10(%ebp)
40d803:	8b 08                	mov    (%eax),%ecx
40d805:	68 bc 42 41 00       	push   $0x4142bc
40d80a:	50                   	push   %eax
40d80b:	ff 51 0c             	call   *0xc(%ecx)
40d80e:	85 c0                	test   %eax,%eax
40d810:	79 1b                	jns    0x40d82d
40d812:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d815:	8b 08                	mov    (%eax),%ecx
40d817:	50                   	push   %eax
40d818:	ff 51 08             	call   *0x8(%ecx)
40d81b:	68 08 26 41 00       	push   $0x412608
40d820:	8b ce                	mov    %esi,%ecx
40d822:	e8 eb 5b ff ff       	call   0x403412
40d827:	8b c6                	mov    %esi,%eax
40d829:	5f                   	pop    %edi
40d82a:	5e                   	pop    %esi
40d82b:	c9                   	leave
40d82c:	c3                   	ret
40d82d:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d830:	8d 55 f4             	lea    -0xc(%ebp),%edx
40d833:	52                   	push   %edx
40d834:	57                   	push   %edi
40d835:	6a 20                	push   $0x20
40d837:	68 d8 42 41 00       	push   $0x4142d8
40d83c:	89 7d f4             	mov    %edi,-0xc(%ebp)
40d83f:	8b 08                	mov    (%eax),%ecx
40d841:	68 28 43 41 00       	push   $0x414328
40d846:	50                   	push   %eax
40d847:	ff 51 50             	call   *0x50(%ecx)
40d84a:	85 c0                	test   %eax,%eax
40d84c:	79 0e                	jns    0x40d85c
40d84e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d851:	50                   	push   %eax
40d852:	8b 08                	mov    (%eax),%ecx
40d854:	ff 51 08             	call   *0x8(%ecx)
40d857:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d85a:	eb b9                	jmp    0x40d815
40d85c:	89 7d f8             	mov    %edi,-0x8(%ebp)
40d85f:	eb 37                	jmp    0x40d898
40d861:	85 c0                	test   %eax,%eax
40d863:	78 4d                	js     0x40d8b2
40d865:	8d 45 d8             	lea    -0x28(%ebp),%eax
40d868:	50                   	push   %eax
40d869:	ff 15 34 22 41 00    	call   *0x412234
40d86f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d872:	8d 55 d8             	lea    -0x28(%ebp),%edx
40d875:	57                   	push   %edi
40d876:	57                   	push   %edi
40d877:	52                   	push   %edx
40d878:	8b 08                	mov    (%eax),%ecx
40d87a:	57                   	push   %edi
40d87b:	68 9c 3b 41 00       	push   $0x413b9c
40d880:	50                   	push   %eax
40d881:	ff 51 10             	call   *0x10(%ecx)
40d884:	85 c0                	test   %eax,%eax
40d886:	78 07                	js     0x40d88f
40d888:	66 83 7d d8 08       	cmpw   $0x8,-0x28(%ebp)
40d88d:	74 43                	je     0x40d8d2
40d88f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d892:	50                   	push   %eax
40d893:	8b 08                	mov    (%eax),%ecx
40d895:	ff 51 08             	call   *0x8(%ecx)
40d898:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d89b:	8d 55 ec             	lea    -0x14(%ebp),%edx
40d89e:	52                   	push   %edx
40d89f:	8d 55 f8             	lea    -0x8(%ebp),%edx
40d8a2:	52                   	push   %edx
40d8a3:	8b 08                	mov    (%eax),%ecx
40d8a5:	6a 01                	push   $0x1
40d8a7:	6a ff                	push   $0xffffffff
40d8a9:	50                   	push   %eax
40d8aa:	ff 51 10             	call   *0x10(%ecx)
40d8ad:	83 f8 01             	cmp    $0x1,%eax
40d8b0:	75 af                	jne    0x40d861
40d8b2:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d8b5:	50                   	push   %eax
40d8b6:	8b 08                	mov    (%eax),%ecx
40d8b8:	ff 51 08             	call   *0x8(%ecx)
40d8bb:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d8be:	50                   	push   %eax
40d8bf:	8b 08                	mov    (%eax),%ecx