402802:	7f 08                	jg     0x40280c
402804:	8b 0e                	mov    (%esi),%ecx
402806:	56                   	push   %esi
402807:	8b 01                	mov    (%ecx),%eax
402809:	ff 50 04             	call   *0x4(%eax)
40280c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40280f:	89 38                	mov    %edi,(%eax)
402811:	5f                   	pop    %edi
402812:	5e                   	pop    %esi
402813:	5b                   	pop    %ebx
402814:	8b e5                	mov    %ebp,%esp
402816:	5d                   	pop    %ebp
402817:	c2 04 00             	ret    $0x4
40281a:	e8 31 fd ff ff       	call   0x402550
40281f:	cc                   	int3
402820:	55                   	push   %ebp
402821:	8b ec                	mov    %esp,%ebp
402823:	56                   	push   %esi
402824:	8b 75 0c             	mov    0xc(%ebp),%esi
402827:	57                   	push   %edi
402828:	8b fa                	mov    %edx,%edi
40282a:	85 f6                	test   %esi,%esi
40282c:	75 06                	jne    0x402834
40282e:	5f                   	pop    %edi
40282f:	33 c0                	xor    %eax,%eax
402831:	5e                   	pop    %esi
402832:	5d                   	pop    %ebp
402833:	c3                   	ret
402834:	85 c9                	test   %ecx,%ecx
402836:	75 19                	jne    0x402851
402838:	e8 ca 54 00 00       	call   0x407d07
40283d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
402843:	e8 e6 53 00 00       	call   0x407c2e
402848:	5f                   	pop    %edi
402849:	b8 16 00 00 00       	mov    $0x16,%eax
40284e:	5e                   	pop    %esi
40284f:	5d                   	pop    %ebp
402850:	c3                   	ret
402851:	53                   	push   %ebx
402852:	8b 5d 08             	mov    0x8(%ebp),%ebx
402855:	85 db                	test   %ebx,%ebx
402857:	74 16                	je     0x40286f
402859:	3b fe                	cmp    %esi,%edi
40285b:	72 12                	jb     0x40286f
40285d:	56                   	push   %esi
40285e:	53                   	push   %ebx
40285f:	51                   	push   %ecx
402860:	e8 7b 5c 01 00       	call   0x4184e0
402865:	83 c4 0c             	add    $0xc,%esp
402868:	33 c0                	xor    %eax,%eax
40286a:	5b                   	pop    %ebx
40286b:	5f                   	pop    %edi
40286c:	5e                   	pop    %esi
40286d:	5d                   	pop    %ebp
40286e:	c3                   	ret
40286f:	57                   	push   %edi
402870:	6a 00                	push   $0x0
402872:	51                   	push   %ecx
402873:	e8 e8 21 00 00       	call   0x404a60
402878:	83 c4 0c             	add    $0xc,%esp
40287b:	85 db                	test   %ebx,%ebx
40287d:	75 1a                	jne    0x402899
40287f:	e8 83 54 00 00       	call   0x407d07
402884:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40288a:	e8 9f 53 00 00       	call   0x407c2e
40288f:	5b                   	pop    %ebx
402890:	5f                   	pop    %edi
402891:	b8 16 00 00 00       	mov    $0x16,%eax
402896:	5e                   	pop    %esi
402897:	5d                   	pop    %ebp
402898:	c3                   	ret
402899:	3b fe                	cmp    %esi,%edi
40289b:	73 f2                	jae    0x40288f
40289d:	e8 65 54 00 00       	call   0x407d07
4028a2:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4028a8:	e8 81 53 00 00       	call   0x407c2e
4028ad:	5b                   	pop    %ebx
4028ae:	5f                   	pop    %edi
4028af:	b8 22 00 00 00       	mov    $0x22,%eax
4028b4:	5e                   	pop    %esi
4028b5:	5d                   	pop    %ebp
4028b6:	c3                   	ret
4028b7:	cc                   	int3
4028b8:	cc                   	int3
4028b9:	cc                   	int3
4028ba:	cc                   	int3
4028bb:	cc                   	int3
4028bc:	cc                   	int3
4028bd:	cc                   	int3
4028be:	cc                   	int3
4028bf:	cc                   	int3
4028c0:	55                   	push   %ebp
4028c1:	8b ec                	mov    %esp,%ebp
4028c3:	56                   	push   %esi
4028c4:	8b f1                	mov    %ecx,%esi
4028c6:	0f 57 c0             	xorps  %xmm0,%xmm0
4028c9:	8d 46 04             	lea    0x4(%esi),%eax
4028cc:	50                   	push   %eax
4028cd:	c7 06 24 b2 41 00    	movl   $0x41b224,(%esi)
4028d3:	66 0f d6 00          	movq   %xmm0,(%eax)
4028d7:	8b 45 08             	mov    0x8(%ebp),%eax
4028da:	83 c0 04             	add    $0x4,%eax
4028dd:	50                   	push   %eax
4028de:	e8 d2 1b 00 00       	call   0x4044b5
4028e3:	83 c4 08             	add    $0x8,%esp
4028e6:	8b c6                	mov    %esi,%eax
4028e8:	5e                   	pop    %esi
4028e9:	5d                   	pop    %ebp
4028ea:	c2 04 00             	ret    $0x4
4028ed:	cc                   	int3
4028ee:	cc                   	int3
4028ef:	cc                   	int3
4028f0:	8b 49 04             	mov    0x4(%ecx),%ecx
4028f3:	b8 b0 0c 42 00       	mov    $0x420cb0,%eax
4028f8:	85 c9                	test   %ecx,%ecx
4028fa:	0f 45 c1             	cmovne %ecx,%eax
4028fd:	c3                   	ret
4028fe:	cc                   	int3
4028ff:	cc                   	int3
402900:	55                   	push   %ebp
402901:	8b ec                	mov    %esp,%ebp
402903:	56                   	push   %esi
402904:	8b f1                	mov    %ecx,%esi
402906:	8d 46 04             	lea    0x4(%esi),%eax
402909:	c7 06 24 b2 41 00    	movl   $0x41b224,(%esi)
40290f:	50                   	push   %eax
402910:	e8 03 1c 00 00       	call   0x404518
402915:	83 c4 04             	add    $0x4,%esp
402918:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40291c:	74 0b                	je     0x402929
40291e:	6a 0c                	push   $0xc
402920:	56                   	push   %esi
402921:	e8 d1 08 00 00       	call   0x4031f7
402926:	83 c4 08             	add    $0x8,%esp
402929:	8b c6                	mov    %esi,%eax
40292b:	5e                   	pop    %esi
40292c:	5d                   	pop    %ebp
40292d:	c2 04 00             	ret    $0x4
402930:	55                   	push   %ebp
402931:	8b ec                	mov    %esp,%ebp
402933:	6a ff                	push   $0xffffffff
402935:	68 1b a2 41 00       	push   $0x41a21b
40293a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402940:	50                   	push   %eax
402941:	81 ec 20 02 00 00    	sub    $0x220,%esp
402947:	a1 0c 30 42 00       	mov    0x42300c,%eax
40294c:	33 c5                	xor    %ebp,%eax
40294e:	89 45 f0             	mov    %eax,-0x10(%ebp)
402951:	53                   	push   %ebx
402952:	56                   	push   %esi
402953:	57                   	push   %edi
402954:	50                   	push   %eax
402955:	8d 45 f4             	lea    -0xc(%ebp),%eax
402958:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40295e:	8b 5d 08             	mov    0x8(%ebp),%ebx
402961:	33 f6                	xor    %esi,%esi
402963:	8b 45 0c             	mov    0xc(%ebp),%eax
402966:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40296c:	85 db                	test   %ebx,%ebx
40296e:	7e 1c                	jle    0x40298c
402970:	ff 34 b0             	push   (%eax,%esi,4)
402973:	56                   	push   %esi
402974:	68 c4 0c 42 00       	push   $0x420cc4
402979:	e8 f2 01 00 00       	call   0x402b70
40297e:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
402984:	46                   	inc    %esi
402985:	83 c4 0c             	add    $0xc,%esp
402988:	3b f3                	cmp    %ebx,%esi
40298a:	7c e4                	jl     0x402970
40298c:	83 fb 01             	cmp    $0x1,%ebx
40298f:	0f 8c bb 01 00 00    	jl     0x402b50
402995:	33 ff                	xor    %edi,%edi
402997:	85 db                	test   %ebx,%ebx
402999:	0f 8e b1 01 00 00    	jle    0x402b50
40299f:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
4029a5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
4029ac:	00 00 00 00
4029b0:	68 08 0c 42 00       	push   $0x420c08
4029b5:	ff 34 be             	push   (%esi,%edi,4)
4029b8:	e8 28 56 00 00       	call   0x407fe5
4029bd:	83 c4 08             	add    $0x8,%esp
4029c0:	85 c0                	test   %eax,%eax
4029c2:	75 7a                	jne    0x402a3e
4029c4:	68 ec 0c 42 00       	push   $0x420cec
4029c9:	e8 a2 01 00 00       	call   0x402b70
4029ce:	68 08 02 00 00       	push   $0x208
4029d3:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4029d9:	6a 00                	push   $0x0
4029db:	50                   	push   %eax
4029dc:	e8 7f 20 00 00       	call   0x404a60
4029e1:	83 c4 10             	add    $0x10,%esp
4029e4:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4029ea:	68 04 01 00 00       	push   $0x104
4029ef:	50                   	push   %eax
4029f0:	6a 00                	push   $0x0
4029f2:	ff 15 30 b0 41 00    	call   *0x41b030
4029f8:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4029fe:	50                   	push   %eax
4029ff:	ff 15 9c b1 41 00    	call   *0x41b19c
402a05:	68 08 0d 42 00       	push   $0x420d08
402a0a:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
402a10:	50                   	push   %eax
402a11:	ff 15 a0 b1 41 00    	call   *0x41b1a0
402a17:	83 ec 1c             	sub    $0x1c,%esp
402a1a:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
402a20:	e8 db ee ff ff       	call   0x401900
402a25:	83 c4 1c             	add    $0x1c,%esp
402a28:	ff 15 48 b0 41 00    	call   *0x41b048
402a2e:	50                   	push   %eax
402a2f:	68 50 0e 42 00       	push   $0x420e50
402a34:	e8 37 01 00 00       	call   0x402b70
402a39:	83 c4 08             	add    $0x8,%esp
402a3c:	eb 40                	jmp    0x402a7e
402a3e:	68 f4 0b 42 00       	push   $0x420bf4
402a43:	ff 34 be             	push   (%esi,%edi,4)
402a46:	e8 9a 55 00 00       	call   0x407fe5
402a4b:	83 c4 08             	add    $0x8,%esp
402a4e:	85 c0                	test   %eax,%eax
402a50:	0f 84 e1 00 00 00    	je     0x402b37
402a56:	68 e8 0b 42 00       	push   $0x420be8
402a5b:	ff 34 be             	push   (%esi,%edi,4)
402a5e:	e8 82 55 00 00       	call   0x407fe5
402a63:	83 c4 08             	add    $0x8,%esp
402a66:	85 c0                	test   %eax,%eax
402a68:	74 38                	je     0x402aa2
402a6a:	68 dc 0b 42 00       	push   $0x420bdc
402a6f:	ff 34 be             	push   (%esi,%edi,4)
402a72:	e8 6e 55 00 00       	call   0x407fe5
402a77:	83 c4 08             	add    $0x8,%esp
402a7a:	85 c0                	test   %eax,%eax
402a7c:	74 0e                	je     0x402a8c
402a7e:	47                   	inc    %edi
402a7f:	3b fb                	cmp    %ebx,%edi
402a81:	0f 8c 29 ff ff ff    	jl     0x4029b0
402a87:	e9 c4 00 00 00       	jmp    0x402b50
402a8c:	e8 3f f3 ff ff       	call   0x401dd0
402a91:	ff 15 48 b0 41 00    	call   *0x41b048
402a97:	50                   	push   %eax
402a98:	68 c4 0e 42 00       	push   $0x420ec4
402a9d:	e9 a6 00 00 00       	jmp    0x402b48
402aa2:	8d 47 01             	lea    0x1(%edi),%eax
402aa5:	3b c3                	cmp    %ebx,%eax
402aa7:	7d 74                	jge    0x402b1d
402aa9:	51                   	push   %ecx
402aaa:	8d 8d d4 fd ff ff    	lea    -0x22c(%ebp),%ecx
402ab0:	e8 eb 01 00 00       	call   0x402ca0
402ab5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402abc:	ff 74 be 04          	push   0x4(%esi,%edi,4)
402ac0:	8b b5 d4 fd ff ff    	mov    -0x22c(%ebp),%esi
402ac6:	68 04 01 00 00       	push   $0x104
402acb:	56                   	push   %esi
402acc:	e8 b0 54 00 00       	call   0x407f81
402ad1:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
402ad7:	89 b5 e0 fd ff ff    	mov    %esi,-0x220(%ebp)
402add:	50                   	push   %eax
402ade:	ba 01 00 00 00       	mov    $0x1,%edx
402ae3:	e8 08 f2 ff ff       	call   0x401cf0
402ae8:	83 c4 10             	add    $0x10,%esp
402aeb:	ff 15 48 b0 41 00    	call   *0x41b048
402af1:	50                   	push   %eax
402af2:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
402af8:	ff 74 b8 04          	push   0x4(%eax,%edi,4)
402afc:	68 84 0e 42 00       	push   $0x420e84
402b01:	e8 6a 00 00 00       	call   0x402b70
402b06:	83 c4 0c             	add    $0xc,%esp
402b09:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
402b10:	8d 8d d4 fd ff ff    	lea    -0x22c(%ebp),%ecx
402b16:	e8 95 03 00 00       	call   0x402eb0
402b1b:	eb 33                	jmp    0x402b50
402b1d:	6a 00                	push   $0x0
402b1f:	33 d2                	xor    %edx,%edx
402b21:	e8 ca f1 ff ff       	call   0x401cf0
402b26:	83 c4 04             	add    $0x4,%esp
402b29:	ff 15 48 b0 41 00    	call   *0x41b048
402b2f:	50                   	push   %eax
402b30:	68 b0 0e 42 00       	push   $0x420eb0
402b35:	eb 11                	jmp    0x402b48
402b37:	e8 24 f1 ff ff       	call   0x401c60
402b3c:	ff 15 48 b0 41 00    	call   *0x41b048
402b42:	50                   	push   %eax
402b43:	68 68 0e 42 00       	push   $0x420e68
402b48:	e8 23 00 00 00       	call   0x402b70
402b4d:	83 c4 08             	add    $0x8,%esp
402b50:	33 c0                	xor    %eax,%eax
402b52:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402b55:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402b5c:	59                   	pop    %ecx
402b5d:	5f                   	pop    %edi
402b5e:	5e                   	pop    %esi
402b5f:	5b                   	pop    %ebx
402b60:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402b63:	33 cd                	xor    %ebp,%ecx
402b65:	e8 ec 03 00 00       	call   0x402f56
402b6a:	8b e5                	mov    %ebp,%esp
402b6c:	5d                   	pop    %ebp
402b6d:	c3                   	ret
402b6e:	cc                   	int3
402b6f:	cc                   	int3
402b70:	55                   	push   %ebp
402b71:	8b ec                	mov    %esp,%ebp
402b73:	6a ff                	push   $0xffffffff
402b75:	68 68 a2 41 00       	push   $0x41a268
402b7a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402b80:	50                   	push   %eax
402b81:	51                   	push   %ecx
402b82:	56                   	push   %esi
402b83:	a1 0c 30 42 00       	mov    0x42300c,%eax
402b88:	33 c5                	xor    %ebp,%eax
402b8a:	50                   	push   %eax
402b8b:	8d 45 f4             	lea    -0xc(%ebp),%eax
402b8e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402b94:	e8 e7 ea ff ff       	call   0x401680
402b99:	8b c8                	mov    %eax,%ecx
402b9b:	85 c9                	test   %ecx,%ecx
402b9d:	75 0a                	jne    0x402ba9
402b9f:	68 05 40 00 80       	push   $0x80004005
402ba4:	e8 17 e8 ff ff       	call   0x4013c0
402ba9:	8b 01                	mov    (%ecx),%eax
402bab:	ff 50 0c             	call   *0xc(%eax)
402bae:	83 c0 10             	add    $0x10,%eax
402bb1:	89 45 f0             	mov    %eax,-0x10(%ebp)
402bb4:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402bbb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402bbe:	6a 09                	push   $0x9
402bc0:	68 18 0c 42 00       	push   $0x420c18
402bc5:	e8 66 fa ff ff       	call   0x402630
402bca:	8d 45 0c             	lea    0xc(%ebp),%eax
402bcd:	50                   	push   %eax
402bce:	ff 75 08             	push   0x8(%ebp)
402bd1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402bd4:	e8 f7 01 00 00       	call   0x402dd0
402bd9:	8b 75 f0             	mov    -0x10(%ebp),%esi
402bdc:	56                   	push   %esi
402bdd:	ff 15 3c b0 41 00    	call   *0x41b03c
402be3:	83 7e fc 01          	cmpl   $0x1,-0x4(%esi)
402be7:	7e 0e                	jle    0x402bf7
402be9:	ff 76 f4             	push   -0xc(%esi)
402bec:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402bef:	e8 ac fb ff ff       	call   0x4027a0
402bf4:	8b 75 f0             	mov    -0x10(%ebp),%esi
402bf7:	56                   	push   %esi
402bf8:	51                   	push   %ecx
402bf9:	e8 72 e5 ff ff       	call   0x401170
402bfe:	ff 76 f8             	push   -0x8(%esi)
402c01:	56                   	push   %esi
402c02:	e8 c3 51 00 00       	call   0x407dca
402c07:	83 c4 08             	add    $0x8,%esp
402c0a:	85 c0                	test   %eax,%eax
402c0c:	78 3d                	js     0x402c4b
402c0e:	3b 46 f8             	cmp    -0x8(%esi),%eax