402832:	68 4a 9a 41 00       	push   $0x419a4a
402837:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40283d:	50                   	push   %eax
40283e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
402845:	83 ec 08             	sub    $0x8,%esp
402848:	53                   	push   %ebx
402849:	56                   	push   %esi
40284a:	8b 74 24 20          	mov    0x20(%esp),%esi
40284e:	33 db                	xor    %ebx,%ebx
402850:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
402854:	c7 06 e0 8a 42 00    	movl   $0x428ae0,(%esi)
40285a:	c7 46 08 e8 8a 42 00 	movl   $0x428ae8,0x8(%esi)
402861:	57                   	push   %edi
402862:	c7 46 54 44 8a 42 00 	movl   $0x428a44,0x54(%esi)
402869:	8d 7e 0c             	lea    0xc(%esi),%edi
40286c:	57                   	push   %edi
40286d:	89 5c 24 20          	mov    %ebx,0x20(%esp)
402871:	56                   	push   %esi
402872:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
402879:	00
40287a:	e8 01 0d 00 00       	call   0x403580
40287f:	8b 46 08             	mov    0x8(%esi),%eax
402882:	8b 48 04             	mov    0x4(%eax),%ecx
402885:	c7 44 0e 08 90 8a 42 	movl   $0x428a90,0x8(%esi,%ecx,1)
40288c:	00
40288d:	8b 16                	mov    (%esi),%edx
40288f:	8b 42 04             	mov    0x4(%edx),%eax
402892:	c7 04 06 98 8a 42 00 	movl   $0x428a98,(%esi,%eax,1)
402899:	c7 44 24 1c 04 00 00 	movl   $0x4,0x1c(%esp)
4028a0:	00
4028a1:	8b 0e                	mov    (%esi),%ecx
4028a3:	8b 51 04             	mov    0x4(%ecx),%edx
4028a6:	57                   	push   %edi
4028a7:	c7 04 16 dc 8a 42 00 	movl   $0x428adc,(%esi,%edx,1)
4028ae:	e8 5d 0d 00 00       	call   0x403610
4028b3:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4028b7:	89 5f 3c             	mov    %ebx,0x3c(%edi)
4028ba:	89 5f 40             	mov    %ebx,0x40(%edi)
4028bd:	c7 07 a0 8a 42 00    	movl   $0x428aa0,(%edi)
4028c3:	5f                   	pop    %edi
4028c4:	8b c6                	mov    %esi,%eax
4028c6:	5e                   	pop    %esi
4028c7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4028ce:	5b                   	pop    %ebx
4028cf:	83 c4 14             	add    $0x14,%esp
4028d2:	c2 04 00             	ret    $0x4
4028d5:	cc                   	int3
4028d6:	cc                   	int3
4028d7:	cc                   	int3
4028d8:	cc                   	int3
4028d9:	cc                   	int3
4028da:	cc                   	int3
4028db:	cc                   	int3
4028dc:	cc                   	int3
4028dd:	cc                   	int3
4028de:	cc                   	int3
4028df:	cc                   	int3
4028e0:	6a ff                	push   $0xffffffff
4028e2:	68 7b 98 41 00       	push   $0x41987b
4028e7:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4028ed:	50                   	push   %eax
4028ee:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4028f5:	51                   	push   %ecx
4028f6:	8b 41 ac             	mov    -0x54(%ecx),%eax
4028f9:	8b 50 04             	mov    0x4(%eax),%edx
4028fc:	56                   	push   %esi
4028fd:	89 4c 24 04          	mov    %ecx,0x4(%esp)
402901:	c7 44 0a ac dc 8a 42 	movl   $0x428adc,-0x54(%edx,%ecx,1)
402908:	00
402909:	8d 71 b8             	lea    -0x48(%ecx),%esi
40290c:	8b ce                	mov    %esi,%ecx
40290e:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
402915:	00
402916:	e8 75 00 00 00       	call   0x402990
40291b:	8b 46 f4             	mov    -0xc(%esi),%eax
40291e:	8b 48 04             	mov    0x4(%eax),%ecx
402921:	c7 44 31 f4 98 8a 42 	movl   $0x428a98,-0xc(%ecx,%esi,1)
402928:	00
402929:	8b 56 fc             	mov    -0x4(%esi),%edx
40292c:	8b 42 04             	mov    0x4(%edx),%eax
40292f:	c7 44 30 fc 90 8a 42 	movl   $0x428a90,-0x4(%eax,%esi,1)
402936:	00
402937:	8b 4e f4             	mov    -0xc(%esi),%ecx
40293a:	8b 51 04             	mov    0x4(%ecx),%edx
40293d:	8b 4c 24 08          	mov    0x8(%esp),%ecx
402941:	c7 44 32 f4 88 8a 42 	movl   $0x428a88,-0xc(%edx,%esi,1)
402948:	00
402949:	5e                   	pop    %esi
40294a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402951:	83 c4 10             	add    $0x10,%esp
402954:	c3                   	ret
402955:	cc                   	int3
402956:	cc                   	int3
402957:	cc                   	int3
402958:	cc                   	int3
402959:	cc                   	int3
40295a:	cc                   	int3
40295b:	cc                   	int3
40295c:	cc                   	int3
40295d:	cc                   	int3
40295e:	cc                   	int3
40295f:	cc                   	int3
402960:	8b 41 f4             	mov    -0xc(%ecx),%eax
402963:	8b 50 04             	mov    0x4(%eax),%edx
402966:	c7 44 0a f4 98 8a 42 	movl   $0x428a98,-0xc(%edx,%ecx,1)
40296d:	00
40296e:	8b 41 fc             	mov    -0x4(%ecx),%eax
402971:	8b 50 04             	mov    0x4(%eax),%edx
402974:	c7 44 0a fc 90 8a 42 	movl   $0x428a90,-0x4(%edx,%ecx,1)
40297b:	00
40297c:	8b 41 f4             	mov    -0xc(%ecx),%eax
40297f:	8b 50 04             	mov    0x4(%eax),%edx
402982:	c7 44 0a f4 88 8a 42 	movl   $0x428a88,-0xc(%edx,%ecx,1)
402989:	00
40298a:	c3                   	ret
40298b:	cc                   	int3
40298c:	cc                   	int3
40298d:	cc                   	int3
40298e:	cc                   	int3
40298f:	cc                   	int3
402990:	56                   	push   %esi
402991:	8b f1                	mov    %ecx,%esi
402993:	f6 46 40 01          	testb  $0x1,0x40(%esi)
402997:	c7 06 a0 8a 42 00    	movl   $0x428aa0,(%esi)
40299d:	74 0e                	je     0x4029ad
40299f:	8b 46 10             	mov    0x10(%esi),%eax
4029a2:	8b 08                	mov    (%eax),%ecx
4029a4:	51                   	push   %ecx
4029a5:	e8 8c 29 00 00       	call   0x405336
4029aa:	83 c4 04             	add    $0x4,%esp
4029ad:	8b 56 10             	mov    0x10(%esi),%edx
4029b0:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
4029b6:	8b 46 20             	mov    0x20(%esi),%eax
4029b9:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4029bf:	8b 4e 30             	mov    0x30(%esi),%ecx
4029c2:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4029c8:	8b 56 14             	mov    0x14(%esi),%edx
4029cb:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
4029d1:	8b 46 24             	mov    0x24(%esi),%eax
4029d4:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4029da:	8b 4e 34             	mov    0x34(%esi),%ecx
4029dd:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4029e3:	83 66 40 fe          	andl   $0xfffffffe,0x40(%esi)
4029e7:	c7 46 3c 00 00 00 00 	movl   $0x0,0x3c(%esi)
4029ee:	8b ce                	mov    %esi,%ecx
4029f0:	5e                   	pop    %esi
4029f1:	e9 7a fa ff ff       	jmp    0x402470
4029f6:	cc                   	int3
4029f7:	cc                   	int3
4029f8:	cc                   	int3
4029f9:	cc                   	int3
4029fa:	cc                   	int3
4029fb:	cc                   	int3
4029fc:	cc                   	int3
4029fd:	cc                   	int3
4029fe:	cc                   	int3
4029ff:	cc                   	int3
402a00:	51                   	push   %ecx
402a01:	56                   	push   %esi
402a02:	8b f1                	mov    %ecx,%esi
402a04:	f6 46 40 08          	testb  $0x8,0x40(%esi)
402a08:	57                   	push   %edi
402a09:	74 23                	je     0x402a2e
402a0b:	8b 56 24             	mov    0x24(%esi),%edx
402a0e:	8b 02                	mov    (%edx),%eax
402a10:	85 c0                	test   %eax,%eax
402a12:	74 1a                	je     0x402a2e
402a14:	8b 4e 3c             	mov    0x3c(%esi),%ecx
402a17:	3b c1                	cmp    %ecx,%eax
402a19:	73 13                	jae    0x402a2e
402a1b:	8b 7e 34             	mov    0x34(%esi),%edi
402a1e:	8b 3f                	mov    (%edi),%edi
402a20:	8d 04 78             	lea    (%eax,%edi,2),%eax
402a23:	2b c1                	sub    %ecx,%eax
402a25:	89 0a                	mov    %ecx,(%edx)
402a27:	8b 4e 34             	mov    0x34(%esi),%ecx
402a2a:	d1 f8                	sar    $1,%eax
402a2c:	89 01                	mov    %eax,(%ecx)
402a2e:	66 8b 54 24 10       	mov    0x10(%esp),%dx
402a33:	b8 ff ff 00 00       	mov    $0xffff,%eax
402a38:	66 3b c2             	cmp    %dx,%ax
402a3b:	75 08                	jne    0x402a45
402a3d:	5f                   	pop    %edi
402a3e:	33 c0                	xor    %eax,%eax
402a40:	5e                   	pop    %esi
402a41:	59                   	pop    %ecx
402a42:	c2 04 00             	ret    $0x4
402a45:	8b 4e 24             	mov    0x24(%esi),%ecx
402a48:	8b 39                	mov    (%ecx),%edi
402a4a:	53                   	push   %ebx
402a4b:	85 ff                	test   %edi,%edi
402a4d:	74 27                	je     0x402a76
402a4f:	8b 46 34             	mov    0x34(%esi),%eax
402a52:	8b 18                	mov    (%eax),%ebx
402a54:	8b cf                	mov    %edi,%ecx
402a56:	8d 1c 59             	lea    (%ecx,%ebx,2),%ebx
402a59:	3b cb                	cmp    %ebx,%ecx
402a5b:	73 19                	jae    0x402a76
402a5d:	ff 08                	decl   (%eax)
402a5f:	8b 76 24             	mov    0x24(%esi),%esi
402a62:	8b 06                	mov    (%esi),%eax
402a64:	8d 48 02             	lea    0x2(%eax),%ecx
402a67:	5b                   	pop    %ebx
402a68:	89 0e                	mov    %ecx,(%esi)
402a6a:	5f                   	pop    %edi
402a6b:	66 89 10             	mov    %dx,(%eax)
402a6e:	66 8b c2             	mov    %dx,%ax
402a71:	5e                   	pop    %esi
402a72:	59                   	pop    %ecx
402a73:	c2 04 00             	ret    $0x4
402a76:	f6 46 40 02          	testb  $0x2,0x40(%esi)
402a7a:	74 0c                	je     0x402a88
402a7c:	5b                   	pop    %ebx
402a7d:	5f                   	pop    %edi
402a7e:	b8 ff ff 00 00       	mov    $0xffff,%eax
402a83:	5e                   	pop    %esi
402a84:	59                   	pop    %ecx
402a85:	c2 04 00             	ret    $0x4
402a88:	55                   	push   %ebp
402a89:	85 ff                	test   %edi,%edi
402a8b:	75 04                	jne    0x402a91
402a8d:	33 ed                	xor    %ebp,%ebp
402a8f:	eb 10                	jmp    0x402aa1
402a91:	8b 56 34             	mov    0x34(%esi),%edx
402a94:	8b 2a                	mov    (%edx),%ebp
402a96:	8b 46 10             	mov    0x10(%esi),%eax
402a99:	03 ed                	add    %ebp,%ebp
402a9b:	2b 28                	sub    (%eax),%ebp
402a9d:	03 ef                	add    %edi,%ebp
402a9f:	d1 fd                	sar    $1,%ebp
402aa1:	8b c5                	mov    %ebp,%eax
402aa3:	d1 e8                	shr    $1,%eax
402aa5:	8b d5                	mov    %ebp,%edx
402aa7:	89 54 24 10          	mov    %edx,0x10(%esp)
402aab:	83 f8 20             	cmp    $0x20,%eax
402aae:	73 05                	jae    0x402ab5
402ab0:	b8 20 00 00 00       	mov    $0x20,%eax
402ab5:	8b 4e 10             	mov    0x10(%esi),%ecx
402ab8:	8b 19                	mov    (%ecx),%ebx
402aba:	33 ff                	xor    %edi,%edi
402abc:	85 c0                	test   %eax,%eax
402abe:	76 28                	jbe    0x402ae8
402ac0:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
402ac5:	2b c8                	sub    %eax,%ecx
402ac7:	3b cd                	cmp    %ebp,%ecx
402ac9:	73 06                	jae    0x402ad1
402acb:	d1 e8                	shr    $1,%eax
402acd:	75 f1                	jne    0x402ac0
402acf:	eb 17                	jmp    0x402ae8
402ad1:	85 c0                	test   %eax,%eax
402ad3:	76 13                	jbe    0x402ae8
402ad5:	03 c5                	add    %ebp,%eax
402ad7:	8b c8                	mov    %eax,%ecx
402ad9:	89 44 24 10          	mov    %eax,0x10(%esp)
402add:	e8 ce 08 00 00       	call   0x4033b0
402ae2:	8b 54 24 10          	mov    0x10(%esp),%edx
402ae6:	8b f8                	mov    %eax,%edi
402ae8:	85 ed                	test   %ebp,%ebp
402aea:	76 19                	jbe    0x402b05
402aec:	8d 44 2d 00          	lea    0x0(%ebp,%ebp,1),%eax
402af0:	50                   	push   %eax
402af1:	53                   	push   %ebx
402af2:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
402af5:	51                   	push   %ecx
402af6:	57                   	push   %edi
402af7:	e8 9a 29 00 00       	call   0x405496
402afc:	8b 54 24 20          	mov    0x20(%esp),%edx
402b00:	83 c4 10             	add    $0x10,%esp
402b03:	85 ed                	test   %ebp,%ebp
402b05:	75 43                	jne    0x402b4a
402b07:	8b 46 14             	mov    0x14(%esi),%eax
402b0a:	89 7e 3c             	mov    %edi,0x3c(%esi)
402b0d:	89 38                	mov    %edi,(%eax)
402b0f:	8b 4e 24             	mov    0x24(%esi),%ecx
402b12:	89 39                	mov    %edi,(%ecx)
402b14:	8b 46 34             	mov    0x34(%esi),%eax
402b17:	03 d2                	add    %edx,%edx
402b19:	d1 fa                	sar    $1,%edx
402b1b:	89 10                	mov    %edx,(%eax)
402b1d:	8b 4e 10             	mov    0x10(%esi),%ecx
402b20:	f6 46 40 04          	testb  $0x4,0x40(%esi)
402b24:	89 39                	mov    %edi,(%ecx)
402b26:	8b 56 20             	mov    0x20(%esi),%edx
402b29:	74 12                	je     0x402b3d
402b2b:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
402b31:	8b 46 30             	mov    0x30(%esi),%eax
402b34:	d1 ff                	sar    $1,%edi
402b36:	89 38                	mov    %edi,(%eax)
402b38:	e9 8a 00 00 00       	jmp    0x402bc7
402b3d:	89 3a                	mov    %edi,(%edx)
402b3f:	8b 46 30             	mov    0x30(%esi),%eax
402b42:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
402b48:	eb 7d                	jmp    0x402bc7
402b4a:	8b 4e 3c             	mov    0x3c(%esi),%ecx
402b4d:	2b cb                	sub    %ebx,%ecx
402b4f:	d1 f9                	sar    $1,%ecx
402b51:	8d 04 4f             	lea    (%edi,%ecx,2),%eax
402b54:	8b 4e 24             	mov    0x24(%esi),%ecx
402b57:	89 46 3c             	mov    %eax,0x3c(%esi)
402b5a:	8b 01                	mov    (%ecx),%eax
402b5c:	8b 4e 14             	mov    0x14(%esi),%ecx
402b5f:	8b 29                	mov    (%ecx),%ebp
402b61:	2b c3                	sub    %ebx,%eax
402b63:	2b eb                	sub    %ebx,%ebp
402b65:	d1 f8                	sar    $1,%eax
402b67:	d1 fd                	sar    $1,%ebp
402b69:	03 d2                	add    %edx,%edx
402b6b:	8d 04 47             	lea    (%edi,%eax,2),%eax
402b6e:	2b d0                	sub    %eax,%edx
402b70:	8d 2c 6f             	lea    (%edi,%ebp,2),%ebp
402b73:	89 29                	mov    %ebp,(%ecx)
402b75:	8b 4e 24             	mov    0x24(%esi),%ecx
402b78:	89 01                	mov    %eax,(%ecx)
402b7a:	8b 46 34             	mov    0x34(%esi),%eax
402b7d:	03 d7                	add    %edi,%edx
402b7f:	d1 fa                	sar    $1,%edx
402b81:	89 10                	mov    %edx,(%eax)
402b83:	f6 46 40 04          	testb  $0x4,0x40(%esi)
402b87:	74 17                	je     0x402ba0
402b89:	8b 4e 10             	mov    0x10(%esi),%ecx
402b8c:	89 39                	mov    %edi,(%ecx)
402b8e:	8b 56 20             	mov    0x20(%esi),%edx
402b91:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
402b97:	8b 46 30             	mov    0x30(%esi),%eax
402b9a:	d1 ff                	sar    $1,%edi
402b9c:	89 38                	mov    %edi,(%eax)
402b9e:	eb 27                	jmp    0x402bc7
402ba0:	8b 4e 24             	mov    0x24(%esi),%ecx
402ba3:	8b 01                	mov    (%ecx),%eax
402ba5:	8b 56 20             	mov    0x20(%esi),%edx
402ba8:	8b 0a                	mov    (%edx),%ecx
402baa:	8b 56 10             	mov    0x10(%esi),%edx
402bad:	2b cb                	sub    %ebx,%ecx
402baf:	d1 f9                	sar    $1,%ecx
402bb1:	8d 0c 4f             	lea    (%edi,%ecx,2),%ecx
402bb4:	89 3a                	mov    %edi,(%edx)
402bb6:	8b 56 20             	mov    0x20(%esi),%edx
402bb9:	2b c1                	sub    %ecx,%eax
402bbb:	89 0a                	mov    %ecx,(%edx)
402bbd:	8b 4e 30             	mov    0x30(%esi),%ecx
402bc0:	83 c0 02             	add    $0x2,%eax
402bc3:	d1 f8                	sar    $1,%eax
402bc5:	89 01                	mov    %eax,(%ecx)
402bc7:	f6 46 40 01          	testb  $0x1,0x40(%esi)
402bcb:	5d                   	pop    %ebp
402bcc:	74 09                	je     0x402bd7
402bce:	53                   	push   %ebx
402bcf:	e8 62 27 00 00       	call   0x405336
402bd4:	83 c4 04             	add    $0x4,%esp
402bd7:	8b 46 34             	mov    0x34(%esi),%eax