40470d:	74 7b                	je     0x40478a
40470f:	8d 48 23             	lea    0x23(%eax),%ecx
404712:	83 e1 e0             	and    $0xffffffe0,%ecx
404715:	89 41 fc             	mov    %eax,-0x4(%ecx)
404718:	eb 13                	jmp    0x40472d
40471a:	85 c9                	test   %ecx,%ecx
40471c:	74 0d                	je     0x40472b
40471e:	51                   	push   %ecx
40471f:	e8 f8 2e 00 00       	call   0x40761c
404724:	83 c4 04             	add    $0x4,%esp
404727:	8b c8                	mov    %eax,%ecx
404729:	eb 02                	jmp    0x40472d
40472b:	33 c9                	xor    %ecx,%ecx
40472d:	0f be 45 0c          	movsbl 0xc(%ebp),%eax
404731:	53                   	push   %ebx
404732:	50                   	push   %eax
404733:	51                   	push   %ecx
404734:	89 4d 08             	mov    %ecx,0x8(%ebp)
404737:	89 5e 10             	mov    %ebx,0x10(%esi)
40473a:	89 7e 14             	mov    %edi,0x14(%esi)
40473d:	e8 ae 47 00 00       	call   0x408ef0
404742:	8b 7d 08             	mov    0x8(%ebp),%edi
404745:	83 c4 0c             	add    $0xc,%esp
404748:	8b 45 fc             	mov    -0x4(%ebp),%eax
40474b:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
40474f:	83 f8 10             	cmp    $0x10,%eax
404752:	72 29                	jb     0x40477d
404754:	8d 48 01             	lea    0x1(%eax),%ecx
404757:	8b 06                	mov    (%esi),%eax
404759:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40475f:	72 12                	jb     0x404773
404761:	8b 50 fc             	mov    -0x4(%eax),%edx
404764:	83 c1 23             	add    $0x23,%ecx
404767:	2b c2                	sub    %edx,%eax
404769:	83 c0 fc             	add    $0xfffffffc,%eax
40476c:	83 f8 1f             	cmp    $0x1f,%eax
40476f:	77 19                	ja     0x40478a
404771:	8b c2                	mov    %edx,%eax
404773:	51                   	push   %ecx
404774:	50                   	push   %eax
404775:	e8 d2 2e 00 00       	call   0x40764c
40477a:	83 c4 08             	add    $0x8,%esp
40477d:	89 3e                	mov    %edi,(%esi)
40477f:	8b c6                	mov    %esi,%eax
404781:	5f                   	pop    %edi
404782:	5e                   	pop    %esi
404783:	5b                   	pop    %ebx
404784:	8b e5                	mov    %ebp,%esp
404786:	5d                   	pop    %ebp
404787:	c2 08 00             	ret    $0x8
40478a:	e8 02 89 00 00       	call   0x40d091
40478f:	e8 1c cc ff ff       	call   0x4013b0
404794:	e8 47 cb ff ff       	call   0x4012e0
404799:	cc                   	int3
40479a:	cc                   	int3
40479b:	cc                   	int3
40479c:	cc                   	int3
40479d:	cc                   	int3
40479e:	cc                   	int3
40479f:	cc                   	int3
4047a0:	68 28 fc 42 00       	push   $0x42fc28
4047a5:	e8 3e 0e 00 00       	call   0x4055e8
4047aa:	cc                   	int3
4047ab:	cc                   	int3
4047ac:	cc                   	int3
4047ad:	cc                   	int3
4047ae:	cc                   	int3
4047af:	cc                   	int3
4047b0:	53                   	push   %ebx
4047b1:	8b dc                	mov    %esp,%ebx
4047b3:	83 ec 08             	sub    $0x8,%esp
4047b6:	83 e4 f8             	and    $0xfffffff8,%esp
4047b9:	83 c4 04             	add    $0x4,%esp
4047bc:	55                   	push   %ebp
4047bd:	8b 6b 04             	mov    0x4(%ebx),%ebp
4047c0:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4047c4:	8b ec                	mov    %esp,%ebp
4047c6:	6a ff                	push   $0xffffffff
4047c8:	68 e4 2c 42 00       	push   $0x422ce4
4047cd:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4047d3:	50                   	push   %eax
4047d4:	53                   	push   %ebx
4047d5:	83 ec 58             	sub    $0x58,%esp
4047d8:	56                   	push   %esi
4047d9:	57                   	push   %edi
4047da:	a1 14 30 43 00       	mov    0x433014,%eax
4047df:	33 c5                	xor    %ebp,%eax
4047e1:	50                   	push   %eax
4047e2:	8d 45 f4             	lea    -0xc(%ebp),%eax
4047e5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4047eb:	6a 00                	push   $0x0
4047ed:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4047f0:	e8 4c 0c 00 00       	call   0x405441
4047f5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4047fc:	8b 3d e8 40 43 00    	mov    0x4340e8,%edi
404802:	a1 f0 52 43 00       	mov    0x4352f0,%eax
404807:	89 45 e8             	mov    %eax,-0x18(%ebp)
40480a:	85 ff                	test   %edi,%edi
40480c:	75 2f                	jne    0x40483d
40480e:	57                   	push   %edi
40480f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404812:	e8 2a 0c 00 00       	call   0x405441
404817:	39 3d e8 40 43 00    	cmp    %edi,0x4340e8
40481d:	75 10                	jne    0x40482f
40481f:	a1 d0 40 43 00       	mov    0x4340d0,%eax
404824:	40                   	inc    %eax
404825:	a3 d0 40 43 00       	mov    %eax,0x4340d0
40482a:	a3 e8 40 43 00       	mov    %eax,0x4340e8
40482f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404832:	e8 62 0c 00 00       	call   0x405499
404837:	8b 3d e8 40 43 00    	mov    0x4340e8,%edi
40483d:	8b 4b 08             	mov    0x8(%ebx),%ecx
404840:	8b 49 04             	mov    0x4(%ecx),%ecx
404843:	3b 79 0c             	cmp    0xc(%ecx),%edi
404846:	73 10                	jae    0x404858
404848:	8b 41 08             	mov    0x8(%ecx),%eax
40484b:	8b 34 b8             	mov    (%eax,%edi,4),%esi
40484e:	85 f6                	test   %esi,%esi
404850:	0f 85 a9 00 00 00    	jne    0x4048ff
404856:	eb 02                	jmp    0x40485a
404858:	33 f6                	xor    %esi,%esi
40485a:	80 79 14 00          	cmpb   $0x0,0x14(%ecx)
40485e:	74 10                	je     0x404870
404860:	e8 6f 22 00 00       	call   0x406ad4
404865:	3b 78 0c             	cmp    0xc(%eax),%edi
404868:	73 0e                	jae    0x404878
40486a:	8b 40 08             	mov    0x8(%eax),%eax
40486d:	8b 34 b8             	mov    (%eax,%edi,4),%esi
404870:	85 f6                	test   %esi,%esi
404872:	0f 85 87 00 00 00    	jne    0x4048ff
404878:	8b 45 e8             	mov    -0x18(%ebp),%eax
40487b:	85 c0                	test   %eax,%eax
40487d:	74 04                	je     0x404883
40487f:	8b f0                	mov    %eax,%esi
404881:	eb 7c                	jmp    0x4048ff
404883:	6a 18                	push   $0x18
404885:	e8 92 2d 00 00       	call   0x40761c
40488a:	8b f0                	mov    %eax,%esi
40488c:	83 c4 04             	add    $0x4,%esp
40488f:	89 75 e8             	mov    %esi,-0x18(%ebp)
404892:	8b 43 08             	mov    0x8(%ebx),%eax
404895:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404899:	8b 48 04             	mov    0x4(%eax),%ecx
40489c:	85 c9                	test   %ecx,%ecx
40489e:	74 0c                	je     0x4048ac
4048a0:	8b 41 18             	mov    0x18(%ecx),%eax
4048a3:	85 c0                	test   %eax,%eax
4048a5:	75 0a                	jne    0x4048b1
4048a7:	8d 41 1c             	lea    0x1c(%ecx),%eax
4048aa:	eb 05                	jmp    0x4048b1
4048ac:	b8 db f6 42 00       	mov    $0x42f6db,%eax
4048b1:	50                   	push   %eax
4048b2:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4048b5:	e8 e6 d0 ff ff       	call   0x4019a0
4048ba:	8d 45 d0             	lea    -0x30(%ebp),%eax
4048bd:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
4048c4:	50                   	push   %eax
4048c5:	c7 06 88 43 42 00    	movl   $0x424388,(%esi)
4048cb:	e8 49 24 00 00       	call   0x406d19
4048d0:	83 c4 04             	add    $0x4,%esp
4048d3:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4048d6:	0f 10 00             	movups (%eax),%xmm0
4048d9:	0f 11 46 08          	movups %xmm0,0x8(%esi)
4048dd:	e8 6e d1 ff ff       	call   0x401a50
4048e2:	89 75 e8             	mov    %esi,-0x18(%ebp)
4048e5:	56                   	push   %esi
4048e6:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4048ea:	e8 b9 21 00 00       	call   0x406aa8
4048ef:	8b 16                	mov    (%esi),%edx
4048f1:	83 c4 04             	add    $0x4,%esp
4048f4:	8b ce                	mov    %esi,%ecx
4048f6:	ff 52 04             	call   *0x4(%edx)
4048f9:	89 35 f0 52 43 00    	mov    %esi,0x4352f0
4048ff:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
404902:	e8 92 0b 00 00       	call   0x405499
404907:	8b c6                	mov    %esi,%eax
404909:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40490c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404913:	59                   	pop    %ecx
404914:	5f                   	pop    %edi
404915:	5e                   	pop    %esi
404916:	8b e5                	mov    %ebp,%esp
404918:	5d                   	pop    %ebp
404919:	8b e3                	mov    %ebx,%esp
40491b:	5b                   	pop    %ebx
40491c:	c3                   	ret
40491d:	cc                   	int3
40491e:	cc                   	int3
40491f:	cc                   	int3
404920:	55                   	push   %ebp
404921:	8b ec                	mov    %esp,%ebp
404923:	6a ff                	push   $0xffffffff
404925:	68 1d 2d 42 00       	push   $0x422d1d
40492a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
404930:	50                   	push   %eax
404931:	83 ec 24             	sub    $0x24,%esp
404934:	53                   	push   %ebx
404935:	56                   	push   %esi
404936:	57                   	push   %edi
404937:	a1 14 30 43 00       	mov    0x433014,%eax
40493c:	33 c5                	xor    %ebp,%eax
40493e:	50                   	push   %eax
40493f:	8d 45 f4             	lea    -0xc(%ebp),%eax
404942:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
404948:	89 65 f0             	mov    %esp,-0x10(%ebp)
40494b:	8b c2                	mov    %edx,%eax
40494d:	89 45 e0             	mov    %eax,-0x20(%ebp)
404950:	8b d9                	mov    %ecx,%ebx
404952:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
404955:	8b c8                	mov    %eax,%ecx
404957:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
40495e:	8d 71 01             	lea    0x1(%ecx),%esi
404961:	8a 01                	mov    (%ecx),%al
404963:	41                   	inc    %ecx
404964:	84 c0                	test   %al,%al
404966:	75 f9                	jne    0x404961
404968:	8b 03                	mov    (%ebx),%eax
40496a:	2b ce                	sub    %esi,%ecx
40496c:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40496f:	8b 40 04             	mov    0x4(%eax),%eax
404972:	8b 7c 18 24          	mov    0x24(%eax,%ebx,1),%edi
404976:	8b 74 18 20          	mov    0x20(%eax,%ebx,1),%esi
40497a:	85 ff                	test   %edi,%edi
40497c:	7c 17                	jl     0x404995
40497e:	7f 0e                	jg     0x40498e
404980:	85 f6                	test   %esi,%esi
404982:	74 11                	je     0x404995
404984:	85 ff                	test   %edi,%edi
404986:	7c 0d                	jl     0x404995
404988:	7f 04                	jg     0x40498e
40498a:	3b f1                	cmp    %ecx,%esi
40498c:	76 07                	jbe    0x404995
40498e:	2b f1                	sub    %ecx,%esi
404990:	83 df 00             	sbb    $0x0,%edi
404993:	eb 0e                	jmp    0x4049a3
404995:	0f 57 c0             	xorps  %xmm0,%xmm0
404998:	66 0f 13 45 d0       	movlpd %xmm0,-0x30(%ebp)
40499d:	8b 7d d4             	mov    -0x2c(%ebp),%edi
4049a0:	8b 75 d0             	mov    -0x30(%ebp),%esi
4049a3:	53                   	push   %ebx
4049a4:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4049a7:	e8 c4 ec ff ff       	call   0x403670
4049ac:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4049b3:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)
4049b7:	75 0a                	jne    0x4049c3
4049b9:	be 04 00 00 00       	mov    $0x4,%esi
4049be:	e9 40 01 00 00       	jmp    0x404b03
4049c3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4049c7:	8b 0b                	mov    (%ebx),%ecx
4049c9:	8b 41 04             	mov    0x4(%ecx),%eax
4049cc:	8b 44 18 14          	mov    0x14(%eax,%ebx,1),%eax
4049d0:	25 c0 01 00 00       	and    $0x1c0,%eax
4049d5:	83 f8 40             	cmp    $0x40,%eax
4049d8:	74 69                	je     0x404a43
4049da:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4049e0:	85 ff                	test   %edi,%edi
4049e2:	7c 5d                	jl     0x404a41
4049e4:	7f 04                	jg     0x4049ea
4049e6:	85 f6                	test   %esi,%esi
4049e8:	74 57                	je     0x404a41
4049ea:	8b 03                	mov    (%ebx),%eax
4049ec:	8b 40 04             	mov    0x4(%eax),%eax
4049ef:	8a 4c 18 40          	mov    0x40(%eax,%ebx,1),%cl
4049f3:	88 4d ef             	mov    %cl,-0x11(%ebp)
4049f6:	8b 4c 18 38          	mov    0x38(%eax,%ebx,1),%ecx
4049fa:	8b 41 20             	mov    0x20(%ecx),%eax
4049fd:	83 38 00             	cmpl   $0x0,(%eax)
404a00:	74 20                	je     0x404a22
404a02:	8b 51 30             	mov    0x30(%ecx),%edx
404a05:	8b 02                	mov    (%edx),%eax
404a07:	85 c0                	test   %eax,%eax
404a09:	7e 17                	jle    0x404a22
404a0b:	48                   	dec    %eax
404a0c:	89 02                	mov    %eax,(%edx)
404a0e:	8b 49 20             	mov    0x20(%ecx),%ecx
404a11:	8b 11                	mov    (%ecx),%edx
404a13:	8d 42 01             	lea    0x1(%edx),%eax
404a16:	89 01                	mov    %eax,(%ecx)
404a18:	8a 45 ef             	mov    -0x11(%ebp),%al
404a1b:	88 02                	mov    %al,(%edx)
404a1d:	0f b6 c0             	movzbl %al,%eax
404a20:	eb 0a                	jmp    0x404a2c
404a22:	0f b6 45 ef          	movzbl -0x11(%ebp),%eax
404a26:	8b 11                	mov    (%ecx),%edx
404a28:	50                   	push   %eax
404a29:	ff 52 0c             	call   *0xc(%edx)
404a2c:	83 f8 ff             	cmp    $0xffffffff,%eax
404a2f:	75 08                	jne    0x404a39
404a31:	8d 70 05             	lea    0x5(%eax),%esi
404a34:	e9 8d 00 00 00       	jmp    0x404ac6
404a39:	83 c6 ff             	add    $0xffffffff,%esi
404a3c:	83 d7 ff             	adc    $0xffffffff,%edi
404a3f:	eb 9f                	jmp    0x4049e0
404a41:	8b 0b                	mov    (%ebx),%ecx
404a43:	8b 41 04             	mov    0x4(%ecx),%eax
404a46:	6a 00                	push   $0x0
404a48:	ff 75 e8             	push   -0x18(%ebp)
404a4b:	8b 4c 18 38          	mov    0x38(%eax,%ebx,1),%ecx
404a4f:	ff 75 e0             	push   -0x20(%ebp)
404a52:	8b 01                	mov    (%ecx),%eax
404a54:	8b 40 24             	mov    0x24(%eax),%eax
404a57:	ff d0                	call   *%eax
404a59:	3b 45 e8             	cmp    -0x18(%ebp),%eax
404a5c:	75 57                	jne    0x404ab5
404a5e:	85 d2                	test   %edx,%edx
404a60:	75 53                	jne    0x404ab5
404a62:	85 ff                	test   %edi,%edi
404a64:	7c 5e                	jl     0x404ac4
404a66:	7f 04                	jg     0x404a6c
404a68:	85 f6                	test   %esi,%esi
404a6a:	74 58                	je     0x404ac4
404a6c:	8b 03                	mov    (%ebx),%eax
404a6e:	8b 40 04             	mov    0x4(%eax),%eax
404a71:	8b 4c 18 38          	mov    0x38(%eax,%ebx,1),%ecx
404a75:	8a 54 18 40          	mov    0x40(%eax,%ebx,1),%dl
404a79:	88 55 ef             	mov    %dl,-0x11(%ebp)
404a7c:	8b 41 20             	mov    0x20(%ecx),%eax
404a7f:	83 38 00             	cmpl   $0x0,(%eax)
404a82:	74 23                	je     0x404aa7
404a84:	8b 41 30             	mov    0x30(%ecx),%eax
404a87:	8b 00                	mov    (%eax),%eax
404a89:	85 c0                	test   %eax,%eax
404a8b:	7e 1a                	jle    0x404aa7
404a8d:	8b 51 30             	mov    0x30(%ecx),%edx
404a90:	48                   	dec    %eax
404a91:	89 02                	mov    %eax,(%edx)
404a93:	8b 49 20             	mov    0x20(%ecx),%ecx
404a96:	8b 11                	mov    (%ecx),%edx
404a98:	8d 42 01             	lea    0x1(%edx),%eax
404a9b:	89 01                	mov    %eax,(%ecx)
404a9d:	8a 45 ef             	mov    -0x11(%ebp),%al
404aa0:	88 02                	mov    %al,(%edx)
404aa2:	0f b6 c0             	movzbl %al,%eax
404aa5:	eb 09                	jmp    0x404ab0
404aa7:	0f b6 c2             	movzbl %dl,%eax
404aaa:	8b 11                	mov    (%ecx),%edx
404aac:	50                   	push   %eax
404aad:	ff 52 0c             	call   *0xc(%edx)
404ab0:	83 f8 ff             	cmp    $0xffffffff,%eax
404ab3:	75 07                	jne    0x404abc
404ab5:	be 04 00 00 00       	mov    $0x4,%esi
404aba:	eb 0a                	jmp    0x404ac6
404abc:	83 c6 ff             	add    $0xffffffff,%esi
404abf:	83 d7 ff             	adc    $0xffffffff,%edi
404ac2:	eb 9e                	jmp    0x404a62
404ac4:	33 f6                	xor    %esi,%esi
404ac6:	8b 03                	mov    (%ebx),%eax
404ac8:	8b 40 04             	mov    0x4(%eax),%eax
404acb:	c7 44 18 20 00 00 00 	movl   $0x0,0x20(%eax,%ebx,1)
404ad2:	00