40199b:	66 c7 04 4e 20 00    	movw   $0x20,(%esi,%ecx,2)
4019a1:	8b 43 2c             	mov    0x2c(%ebx),%eax
4019a4:	83 7b 30 08          	cmpl   $0x8,0x30(%ebx)
4019a8:	89 7d e0             	mov    %edi,-0x20(%ebp)
4019ab:	89 fa                	mov    %edi,%edx
4019ad:	72 03                	jb     0x4019b2
4019af:	8b 53 1c             	mov    0x1c(%ebx),%edx
4019b2:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
4019b5:	83 c1 02             	add    $0x2,%ecx
4019b8:	01 c0                	add    %eax,%eax
4019ba:	50                   	push   %eax
4019bb:	52                   	push   %edx
4019bc:	51                   	push   %ecx
4019bd:	e8 6e 29 00 00       	call   0x404330
4019c2:	83 c4 0c             	add    $0xc,%esp
4019c5:	8b 43 10             	mov    0x10(%ebx),%eax
4019c8:	03 43 2c             	add    0x2c(%ebx),%eax
4019cb:	66 c7 44 46 02 00 00 	movw   $0x0,0x2(%esi,%eax,2)
4019d2:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
4019d9:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
4019e0:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
4019e7:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
4019ed:	50                   	push   %eax
4019ee:	ff 15 18 90 41 00    	call   *0x419018
4019f4:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4019f7:	83 ec 28             	sub    $0x28,%esp
4019fa:	8d 45 b0             	lea    -0x50(%ebp),%eax
4019fd:	89 44 24 24          	mov    %eax,0x24(%esp)
401a01:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
401a07:	89 44 24 20          	mov    %eax,0x20(%esp)
401a0b:	0f 28 05 c0 91 41 00 	movaps 0x4191c0,%xmm0
401a12:	0f 11 44 24 08       	movups %xmm0,0x8(%esp)
401a17:	89 4d d0             	mov    %ecx,-0x30(%ebp)
401a1a:	89 4c 24 04          	mov    %ecx,0x4(%esp)
401a1e:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
401a25:	00
401a26:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
401a2d:	00
401a2e:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
401a35:	ff 15 1c 90 41 00    	call   *0x41901c
401a3b:	85 c0                	test   %eax,%eax
401a3d:	74 55                	je     0x401a94
401a3f:	8b 45 b0             	mov    -0x50(%ebp),%eax
401a42:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
401a45:	89 4d cc             	mov    %ecx,-0x34(%ebp)
401a48:	89 45 e0             	mov    %eax,-0x20(%ebp)
401a4b:	89 45 d8             	mov    %eax,-0x28(%ebp)
401a4e:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
401a51:	51                   	push   %ecx
401a52:	ff 15 20 90 41 00    	call   *0x419020
401a58:	6a 01                	push   $0x1
401a5a:	68 00 10 40 00       	push   $0x401000
401a5f:	ff 15 24 90 41 00    	call   *0x419024
401a65:	85 c0                	test   %eax,%eax
401a67:	75 18                	jne    0x401a81
401a69:	6a 02                	push   $0x2
401a6b:	e8 1b 4c 00 00       	call   0x40668b
401a70:	83 c4 04             	add    $0x4,%esp
401a73:	68 b0 92 41 00       	push   $0x4192b0
401a78:	50                   	push   %eax
401a79:	e8 e2 09 00 00       	call   0x402460
401a7e:	83 c4 08             	add    $0x8,%esp
401a81:	8b 75 08             	mov    0x8(%ebp),%esi
401a84:	8b 45 d4             	mov    -0x2c(%ebp),%eax
401a87:	89 06                	mov    %eax,(%esi)
401a89:	8b 45 e0             	mov    -0x20(%ebp),%eax
401a8c:	89 46 04             	mov    %eax,0x4(%esi)
401a8f:	e9 d7 00 00 00       	jmp    0x401b6b
401a94:	ff 15 28 90 41 00    	call   *0x419028
401a9a:	3d e4 02 00 00       	cmp    $0x2e4,%eax
401a9f:	75 79                	jne    0x401b1a
401aa1:	0f 57 c0             	xorps  %xmm0,%xmm0
401aa4:	0f 11 45 9c          	movups %xmm0,-0x64(%ebp)
401aa8:	0f 11 45 8c          	movups %xmm0,-0x74(%ebp)
401aac:	0f 11 85 7c ff ff ff 	movups %xmm0,-0x84(%ebp)
401ab3:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%ebp)
401aba:	c7 85 74 ff ff ff 3c 	movl   $0x3c,-0x8c(%ebp)
401ac1:	00 00 00
401ac4:	c7 85 78 ff ff ff 40 	movl   $0x40,-0x88(%ebp)
401acb:	00 00 00
401ace:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401ad1:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
401ad5:	89 c8                	mov    %ecx,%eax
401ad7:	72 02                	jb     0x401adb
401ad9:	8b 01                	mov    (%ecx),%eax
401adb:	89 45 84             	mov    %eax,-0x7c(%ebp)
401ade:	83 79 30 08          	cmpl   $0x8,0x30(%ecx)
401ae2:	8b 45 e0             	mov    -0x20(%ebp),%eax
401ae5:	72 03                	jb     0x401aea
401ae7:	8b 41 1c             	mov    0x1c(%ecx),%eax
401aea:	89 45 88             	mov    %eax,-0x78(%ebp)
401aed:	c7 45 90 05 00 00 00 	movl   $0x5,-0x70(%ebp)
401af4:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
401afa:	50                   	push   %eax
401afb:	ff 15 44 91 41 00    	call   *0x419144
401b01:	85 c0                	test   %eax,%eax
401b03:	74 32                	je     0x401b37
401b05:	8b 45 ac             	mov    -0x54(%ebp),%eax
401b08:	89 45 e0             	mov    %eax,-0x20(%ebp)
401b0b:	89 45 d8             	mov    %eax,-0x28(%ebp)
401b0e:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
401b15:	e9 3e ff ff ff       	jmp    0x401a58
401b1a:	6a 02                	push   $0x2
401b1c:	e8 6a 4b 00 00       	call   0x40668b
401b21:	83 c4 04             	add    $0x4,%esp
401b24:	ff 75 d0             	push   -0x30(%ebp)
401b27:	68 7c 92 41 00       	push   $0x41927c
401b2c:	50                   	push   %eax
401b2d:	e8 2e 09 00 00       	call   0x402460
401b32:	83 c4 0c             	add    $0xc,%esp
401b35:	eb 24                	jmp    0x401b5b
401b37:	ff 15 28 90 41 00    	call   *0x419028
401b3d:	89 45 e0             	mov    %eax,-0x20(%ebp)
401b40:	6a 02                	push   $0x2
401b42:	e8 44 4b 00 00       	call   0x40668b
401b47:	83 c4 04             	add    $0x4,%esp
401b4a:	ff 75 e0             	push   -0x20(%ebp)
401b4d:	68 48 92 41 00       	push   $0x419248
401b52:	50                   	push   %eax
401b53:	e8 08 09 00 00       	call   0x402460
401b58:	83 c4 0c             	add    $0xc,%esp
401b5b:	8b 75 08             	mov    0x8(%ebp),%esi
401b5e:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
401b64:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
401b6b:	8b 4d dc             	mov    -0x24(%ebp),%ecx
401b6e:	8b 55 d0             	mov    -0x30(%ebp),%edx
401b71:	85 d2                	test   %edx,%edx
401b73:	74 26                	je     0x401b9b
401b75:	29 d1                	sub    %edx,%ecx
401b77:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
401b7d:	72 12                	jb     0x401b91
401b7f:	8b 42 fc             	mov    -0x4(%edx),%eax
401b82:	83 c2 fc             	add    $0xfffffffc,%edx
401b85:	29 c2                	sub    %eax,%edx
401b87:	83 fa 20             	cmp    $0x20,%edx
401b8a:	73 2f                	jae    0x401bbb
401b8c:	83 c1 23             	add    $0x23,%ecx
401b8f:	89 c2                	mov    %eax,%edx
401b91:	51                   	push   %ecx
401b92:	52                   	push   %edx
401b93:	e8 53 1a 00 00       	call   0x4035eb
401b98:	83 c4 08             	add    $0x8,%esp
401b9b:	8b 45 e8             	mov    -0x18(%ebp),%eax
401b9e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401ba4:	89 f0                	mov    %esi,%eax
401ba6:	81 c4 c4 00 00 00    	add    $0xc4,%esp
401bac:	5e                   	pop    %esi
401bad:	5f                   	pop    %edi
401bae:	5b                   	pop    %ebx
401baf:	5d                   	pop    %ebp
401bb0:	c3                   	ret
401bb1:	e8 fa 18 00 00       	call   0x4034b0
401bb6:	e8 e5 0e 00 00       	call   0x402aa0
401bbb:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
401bc2:	e8 12 59 00 00       	call   0x4074d9
401bc7:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
401bce:	00 00
401bd0:	55                   	push   %ebp
401bd1:	83 ec 28             	sub    $0x28,%esp
401bd4:	83 c5 0c             	add    $0xc,%ebp
401bd7:	e8 8d 2e 00 00       	call   0x404a69
401bdc:	0f 1f 40 00          	nopl   0x0(%eax)
401be0:	55                   	push   %ebp
401be1:	83 ec 28             	sub    $0x28,%esp
401be4:	83 c5 0c             	add    $0xc,%ebp
401be7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
401bea:	e8 21 0a 00 00       	call   0x402610
401bef:	8d 4d cc             	lea    -0x34(%ebp),%ecx
401bf2:	e8 19 0a 00 00       	call   0x402610
401bf7:	8d 4d c0             	lea    -0x40(%ebp),%ecx
401bfa:	e8 81 0a 00 00       	call   0x402680
401bff:	83 c4 28             	add    $0x28,%esp
401c02:	5d                   	pop    %ebp
401c03:	c3                   	ret
401c04:	66 66 66 2e 0f 1f 84 	data16 data16 nopw %cs:0x0(%eax,%eax,1)
401c0b:	00 00 00 00 00
401c10:	55                   	push   %ebp
401c11:	89 e5                	mov    %esp,%ebp
401c13:	53                   	push   %ebx
401c14:	57                   	push   %edi
401c15:	56                   	push   %esi
401c16:	83 e4 f0             	and    $0xfffffff0,%esp
401c19:	81 ec e0 05 00 00    	sub    $0x5e0,%esp
401c1f:	89 e6                	mov    %esp,%esi
401c21:	89 ae c8 05 00 00    	mov    %ebp,0x5c8(%esi)
401c27:	89 a6 cc 05 00 00    	mov    %esp,0x5cc(%esi)
401c2d:	c7 86 d8 05 00 00 ff 	movl   $0xffffffff,0x5d8(%esi)
401c34:	ff ff ff
401c37:	8d 86 d0 05 00 00    	lea    0x5d0(%esi),%eax
401c3d:	c7 86 d4 05 00 00 b0 	movl   $0x4022b0,0x5d4(%esi)
401c44:	22 40 00
401c47:	64 8b 0d 00 00 00 00 	mov    %fs:0x0,%ecx
401c4e:	89 8e d0 05 00 00    	mov    %ecx,0x5d0(%esi)
401c54:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401c5a:	8d 46 14             	lea    0x14(%esi),%eax
401c5d:	50                   	push   %eax
401c5e:	e8 6d f5 ff ff       	call   0x4011d0
401c63:	83 c4 04             	add    $0x4,%esp
401c66:	80 7e 2c 00          	cmpb   $0x0,0x2c(%esi)
401c6a:	0f 84 90 00 00 00    	je     0x401d00
401c70:	80 7e 48 00          	cmpb   $0x0,0x48(%esi)
401c74:	75 1b                	jne    0x401c91
401c76:	0f 57 c0             	xorps  %xmm0,%xmm0
401c79:	8d 46 30             	lea    0x30(%esi),%eax
401c7c:	0f 11 00             	movups %xmm0,(%eax)
401c7f:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
401c86:	c7 46 44 07 00 00 00 	movl   $0x7,0x44(%esi)
401c8d:	c6 46 48 01          	movb   $0x1,0x48(%esi)
401c91:	c7 86 d8 05 00 00 07 	movl   $0x7,0x5d8(%esi)
401c98:	00 00 00
401c9b:	ff 15 30 90 41 00    	call   *0x419030
401ca1:	89 c7                	mov    %eax,%edi
401ca3:	8b 45 0c             	mov    0xc(%ebp),%eax
401ca6:	0f b7 1f             	movzwl (%edi),%ebx
401ca9:	ff 30                	push   (%eax)
401cab:	e8 c7 51 00 00       	call   0x406e77
401cb0:	83 c4 04             	add    $0x4,%esp
401cb3:	8d 3c 47             	lea    (%edi,%eax,2),%edi
401cb6:	66 83 fb 22          	cmp    $0x22,%bx
401cba:	75 72                	jne    0x401d2e
401cbc:	83 c7 04             	add    $0x4,%edi
401cbf:	57                   	push   %edi
401cc0:	e8 b2 51 00 00       	call   0x406e77
401cc5:	83 c4 04             	add    $0x4,%esp
401cc8:	8b 4e 40             	mov    0x40(%esi),%ecx
401ccb:	8b 56 44             	mov    0x44(%esi),%edx
401cce:	89 d3                	mov    %edx,%ebx
401cd0:	29 cb                	sub    %ecx,%ebx
401cd2:	39 c3                	cmp    %eax,%ebx
401cd4:	0f 83 8e 00 00 00    	jae    0x401d68
401cda:	83 ec 10             	sub    $0x10,%esp
401cdd:	0f b6 8e 0c 01 00 00 	movzbl 0x10c(%esi),%ecx
401ce4:	88 4c 24 04          	mov    %cl,0x4(%esp)
401ce8:	89 44 24 0c          	mov    %eax,0xc(%esp)
401cec:	89 7c 24 08          	mov    %edi,0x8(%esp)
401cf0:	89 04 24             	mov    %eax,(%esp)
401cf3:	8d 4e 30             	lea    0x30(%esi),%ecx
401cf6:	e8 55 14 00 00       	call   0x403150
401cfb:	e9 98 00 00 00       	jmp    0x401d98
401d00:	c7 86 d8 05 00 00 07 	movl   $0x7,0x5d8(%esi)
401d07:	00 00 00
401d0a:	6a 02                	push   $0x2
401d0c:	e8 7a 49 00 00       	call   0x40668b
401d11:	83 c4 04             	add    $0x4,%esp
401d14:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
401d1b:	68 f6 92 41 00       	push   $0x4192f6
401d20:	50                   	push   %eax
401d21:	e8 3a 07 00 00       	call   0x402460
401d26:	83 c4 08             	add    $0x8,%esp
401d29:	e9 f5 02 00 00       	jmp    0x402023
401d2e:	57                   	push   %edi
401d2f:	e8 43 51 00 00       	call   0x406e77
401d34:	83 c4 04             	add    $0x4,%esp
401d37:	8b 4e 40             	mov    0x40(%esi),%ecx
401d3a:	8b 56 44             	mov    0x44(%esi),%edx
401d3d:	89 d3                	mov    %edx,%ebx
401d3f:	29 cb                	sub    %ecx,%ebx
401d41:	39 c3                	cmp    %eax,%ebx
401d43:	73 23                	jae    0x401d68
401d45:	83 ec 10             	sub    $0x10,%esp
401d48:	0f b6 8e 0c 01 00 00 	movzbl 0x10c(%esi),%ecx
401d4f:	88 4c 24 04          	mov    %cl,0x4(%esp)
401d53:	89 44 24 0c          	mov    %eax,0xc(%esp)
401d57:	89 7c 24 08          	mov    %edi,0x8(%esp)
401d5b:	89 04 24             	mov    %eax,(%esp)
401d5e:	8d 4e 30             	lea    0x30(%esi),%ecx
401d61:	e8 ea 13 00 00       	call   0x403150
401d66:	eb 30                	jmp    0x401d98
401d68:	8d 1c 01             	lea    (%ecx,%eax,1),%ebx
401d6b:	89 5e 0c             	mov    %ebx,0xc(%esi)
401d6e:	8b 5e 0c             	mov    0xc(%esi),%ebx
401d71:	89 5e 40             	mov    %ebx,0x40(%esi)
401d74:	8d 5e 30             	lea    0x30(%esi),%ebx
401d77:	83 fa 08             	cmp    $0x8,%edx
401d7a:	72 03                	jb     0x401d7f
401d7c:	8b 5e 30             	mov    0x30(%esi),%ebx
401d7f:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
401d82:	01 c0                	add    %eax,%eax
401d84:	50                   	push   %eax
401d85:	57                   	push   %edi
401d86:	51                   	push   %ecx
401d87:	e8 a4 25 00 00       	call   0x404330
401d8c:	83 c4 0c             	add    $0xc,%esp
401d8f:	8b 46 0c             	mov    0xc(%esi),%eax
401d92:	66 c7 04 43 00 00    	movw   $0x0,(%ebx,%eax,2)
401d98:	8d 7e 14             	lea    0x14(%esi),%edi
401d9b:	8d 9e c0 03 00 00    	lea    0x3c0(%esi),%ebx
401da1:	68 08 02 00 00       	push   $0x208
401da6:	6a 00                	push   $0x0
401da8:	53                   	push   %ebx
401da9:	e8 c2 2c 00 00       	call   0x404a70
401dae:	83 c4 0c             	add    $0xc,%esp
401db1:	8b 46 24             	mov    0x24(%esi),%eax
401db4:	83 7e 28 08          	cmpl   $0x8,0x28(%esi)
401db8:	72 03                	jb     0x401dbd
401dba:	8b 7e 14             	mov    0x14(%esi),%edi
401dbd:	01 c0                	add    %eax,%eax
401dbf:	50                   	push   %eax
401dc0:	57                   	push   %edi
401dc1:	53                   	push   %ebx
401dc2:	e8 69 25 00 00       	call   0x404330
401dc7:	83 c4 0c             	add    $0xc,%esp
401dca:	53                   	push   %ebx
401dcb:	ff 15 4c 91 41 00    	call   *0x41914c
401dd1:	8d be 0c 01 00 00    	lea    0x10c(%esi),%edi
401dd7:	68 b4 02 00 00       	push   $0x2b4
401ddc:	6a 00                	push   $0x0
401dde:	57                   	push   %edi
401ddf:	e8 8c 2c 00 00       	call   0x404a70
401de4:	83 c4 0c             	add    $0xc,%esp
401de7:	68 00 20 00 00       	push   $0x2000
401dec:	68 b4 02 00 00       	push   $0x2b4
401df1:	57                   	push   %edi
401df2:	6a ff                	push   $0xffffffff
401df4:	8d 86 c0 03 00 00    	lea    0x3c0(%esi),%eax
401dfa:	50                   	push   %eax
401dfb:	ff 15 40 91 41 00    	call   *0x419140
401e01:	85 c0                	test   %eax,%eax
401e03:	74 14                	je     0x401e19
401e05:	3d 00 00 01 00       	cmp    $0x10000,%eax
401e0a:	72 25                	jb     0x401e31
401e0c:	b0 01                	mov    $0x1,%al
401e0e:	89 46 0c             	mov    %eax,0xc(%esi)
401e11:	ff 15 34 90 41 00    	call   *0x419034
401e17:	eb 1f                	jmp    0x401e38
401e19:	6a 02                	push   $0x2
401e1b:	e8 6b 48 00 00       	call   0x40668b
401e20:	83 c4 04             	add    $0x4,%esp
401e23:	68 11 93 41 00       	push   $0x419311
401e28:	50                   	push   %eax
401e29:	e8 32 06 00 00       	call   0x402460
401e2e:	83 c4 08             	add    $0x8,%esp
401e31:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
401e38:	6a 00                	push   $0x0
401e3a:	6a 00                	push   $0x0
401e3c:	ff 15 38 90 41 00    	call   *0x419038
401e42:	89 46 54             	mov    %eax,0x54(%esi)
401e45:	0f 57 c0             	xorps  %xmm0,%xmm0
401e48:	0f 29 86 a0 00 00 00 	movaps %xmm0,0xa0(%esi)
401e4f:	0f 29 86 f0 00 00 00 	movaps %xmm0,0xf0(%esi)
401e56:	0f 29 86 e0 00 00 00 	movaps %xmm0,0xe0(%esi)
401e5d:	0f 29 86 d0 00 00 00 	movaps %xmm0,0xd0(%esi)
401e64:	0f 29 86 c0 00 00 00 	movaps %xmm0,0xc0(%esi)
401e6b:	0f 29 86 b0 00 00 00 	movaps %xmm0,0xb0(%esi)
401e72:	0f 29 86 90 00 00 00 	movaps %xmm0,0x90(%esi)
401e79:	c7 86 a0 00 00 00 00 	movl   $0x3000,0xa0(%esi)
401e80:	30 00 00
401e83:	c7 86 d8 05 00 00 08 	movl   $0x8,0x5d8(%esi)
401e8a:	00 00 00
401e8d:	8d 8e 90 00 00 00    	lea    0x90(%esi),%ecx