a3c788:	85 c0                	test   %eax,%eax
a3c78a:	74 0b                	je     0xa3c797
a3c78c:	50                   	push   %eax
a3c78d:	51                   	push   %ecx
a3c78e:	e8 14 c4 9c ff       	call   0x408ba7
a3c793:	89 03                	mov    %eax,(%ebx)
a3c795:	eb 03                	jmp    0xa3c79a
a3c797:	83 23 00             	andl   $0x0,(%ebx)
a3c79a:	8b 45 bc             	mov    -0x44(%ebp),%eax
a3c79d:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
a3c7a3:	ff 70 0c             	push   0xc(%eax)
a3c7a6:	ff 15 60 37 d8 00    	call   *0xd83760
a3c7ac:	8b 45 bc             	mov    -0x44(%ebp),%eax
a3c7af:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
a3c7b5:	ff 70 08             	push   0x8(%eax)
a3c7b8:	ff 15 60 37 d8 00    	call   *0xd83760
a3c7be:	8b 55 9c             	mov    -0x64(%ebp),%edx
a3c7c1:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
a3c7c5:	8b 02                	mov    (%edx),%eax
a3c7c7:	85 c0                	test   %eax,%eax
a3c7c9:	75 37                	jne    0xa3c802
a3c7cb:	8d 45 b8             	lea    -0x48(%ebp),%eax
a3c7ce:	50                   	push   %eax
a3c7cf:	6a 01                	push   $0x1
a3c7d1:	ff 15 f0 44 d8 00    	call   *0xd844f0
a3c7d7:	8b f8                	mov    %eax,%edi
a3c7d9:	85 ff                	test   %edi,%edi
a3c7db:	0f 88 61 04 00 00    	js     0xa3cc42
a3c7e1:	8b 45 b8             	mov    -0x48(%ebp),%eax
a3c7e4:	6a 20                	push   $0x20
a3c7e6:	50                   	push   %eax
a3c7e7:	8b 08                	mov    (%eax),%ecx
a3c7e9:	8b 79 0c             	mov    0xc(%ecx),%edi
a3c7ec:	8b cf                	mov    %edi,%ecx
a3c7ee:	e8 72 fe 9e ff       	call   0x42c665
a3c7f3:	ff d7                	call   *%edi
a3c7f5:	8b 55 9c             	mov    -0x64(%ebp),%edx
a3c7f8:	33 c9                	xor    %ecx,%ecx
a3c7fa:	8b 7d ac             	mov    -0x54(%ebp),%edi
a3c7fd:	41                   	inc    %ecx
a3c7fe:	89 02                	mov    %eax,(%edx)
a3c800:	eb 0d                	jmp    0xa3c80f
a3c802:	33 c9                	xor    %ecx,%ecx
a3c804:	41                   	inc    %ecx
a3c805:	39 48 0c             	cmp    %ecx,0xc(%eax)
a3c808:	72 64                	jb     0xa3c86e
a3c80a:	83 38 18             	cmpl   $0x18,(%eax)
a3c80d:	75 5f                	jne    0xa3c86e
a3c80f:	8b 02                	mov    (%edx),%eax
a3c811:	85 c0                	test   %eax,%eax
a3c813:	74 39                	je     0xa3c84e
a3c815:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
a3c81b:	8b 02                	mov    (%edx),%eax
a3c81d:	89 48 04             	mov    %ecx,0x4(%eax)
a3c820:	8b 02                	mov    (%edx),%eax
a3c822:	89 48 08             	mov    %ecx,0x8(%eax)
a3c825:	8b 02                	mov    (%edx),%eax
a3c827:	89 48 0c             	mov    %ecx,0xc(%eax)
a3c82a:	8b 45 bc             	mov    -0x44(%ebp),%eax
a3c82d:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
a3c833:	0f b7 48 18          	movzwl 0x18(%eax),%ecx
a3c837:	8b 02                	mov    (%edx),%eax
a3c839:	89 48 10             	mov    %ecx,0x10(%eax)
a3c83c:	8b 45 bc             	mov    -0x44(%ebp),%eax
a3c83f:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
a3c845:	0f b7 48 1a          	movzwl 0x1a(%eax),%ecx
a3c849:	8b 02                	mov    (%edx),%eax
a3c84b:	89 48 14             	mov    %ecx,0x14(%eax)
a3c84e:	8d 45 b8             	lea    -0x48(%ebp),%eax
a3c851:	50                   	push   %eax
a3c852:	e8 41 85 9e ff       	call   0x424d98
a3c857:	83 3b 00             	cmpl   $0x0,(%ebx)
a3c85a:	74 08                	je     0xa3c864
a3c85c:	8b 45 9c             	mov    -0x64(%ebp),%eax
a3c85f:	83 38 00             	cmpl   $0x0,(%eax)
a3c862:	75 14                	jne    0xa3c878
a3c864:	bf ff ff 00 80       	mov    $0x8000ffff,%edi
a3c869:	e9 d4 03 00 00       	jmp    0xa3cc42
a3c86e:	bf 57 00 07 80       	mov    $0x80070057,%edi
a3c873:	e9 ca 03 00 00       	jmp    0xa3cc42
a3c878:	8b 45 0c             	mov    0xc(%ebp),%eax
a3c87b:	a8 10                	test   $0x10,%al
a3c87d:	74 07                	je     0xa3c886
a3c87f:	33 ff                	xor    %edi,%edi
a3c881:	e9 bc 03 00 00       	jmp    0xa3cc42
a3c886:	e8 8a 9d 9f ff       	call   0x436615
a3c88b:	50                   	push   %eax
a3c88c:	8d 4d a8             	lea    -0x58(%ebp),%ecx
a3c88f:	e8 80 d3 9c ff       	call   0x409c14
a3c894:	8b 47 24             	mov    0x24(%edi),%eax
a3c897:	85 c0                	test   %eax,%eax
a3c899:	74 11                	je     0xa3c8ac
a3c89b:	83 c0 20             	add    $0x20,%eax
a3c89e:	8d 4d a8             	lea    -0x58(%ebp),%ecx
a3c8a1:	50                   	push   %eax
a3c8a2:	e8 46 5e 9d ff       	call   0x4126ed
a3c8a7:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
a3c8aa:	eb 1d                	jmp    0xa3c8c9
a3c8ac:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
a3c8af:	8b cb                	mov    %ebx,%ecx
a3c8b1:	e8 0d e7 9d ff       	call   0x41afc3
a3c8b6:	85 c0                	test   %eax,%eax
a3c8b8:	0f 84 09 04 00 00    	je     0xa3ccc7
a3c8be:	8d 4d a8             	lea    -0x58(%ebp),%ecx
a3c8c1:	51                   	push   %ecx
a3c8c2:	8b c8                	mov    %eax,%ecx
a3c8c4:	e8 de b2 9d ff       	call   0x417ba7
a3c8c9:	8b 45 a8             	mov    -0x58(%ebp),%eax
a3c8cc:	83 78 f4 1f          	cmpl   $0x1f,-0xc(%eax)
a3c8d0:	7e 0a                	jle    0xa3c8dc
a3c8d2:	6a 1f                	push   $0x1f
a3c8d4:	8d 4d a8             	lea    -0x58(%ebp),%ecx
a3c8d7:	e8 8a a6 9f ff       	call   0x436f66
a3c8dc:	6a 14                	push   $0x14
a3c8de:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
a3c8e4:	6a 00                	push   $0x0
a3c8e6:	50                   	push   %eax
a3c8e7:	e8 cc 7e 9d ff       	call   0x4147b8
a3c8ec:	8b 45 a8             	mov    -0x58(%ebp),%eax
a3c8ef:	83 c4 0c             	add    $0xc,%esp
a3c8f2:	c7 85 60 ff ff ff 14 	movl   $0x14,-0xa0(%ebp)
a3c8f9:	00 00 00
a3c8fc:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
a3c902:	e8 0e 9d 9f ff       	call   0x436615
a3c907:	50                   	push   %eax
a3c908:	8d 4d b8             	lea    -0x48(%ebp),%ecx
a3c90b:	e8 04 d3 9c ff       	call   0x409c14
a3c910:	83 7e f4 00          	cmpl   $0x0,-0xc(%esi)
a3c914:	75 1b                	jne    0xa3c931
a3c916:	8b 4d a0             	mov    -0x60(%ebp),%ecx
a3c919:	83 a5 68 ff ff ff 00 	andl   $0x0,-0x98(%ebp)
a3c920:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
a3c924:	03 c1                	add    %ecx,%eax
a3c926:	8d 4d b8             	lea    -0x48(%ebp),%ecx
a3c929:	50                   	push   %eax
a3c92a:	e8 5b 6b 9d ff       	call   0x41348a
a3c92f:	eb 1f                	jmp    0xa3c950
a3c931:	68 04 01 00 00       	push   $0x104
a3c936:	8d 4d b8             	lea    -0x48(%ebp),%ecx
a3c939:	89 b5 68 ff ff ff    	mov    %esi,-0x98(%ebp)
a3c93f:	e8 4e 1c 9e ff       	call   0x41e592
a3c944:	68 04 01 00 00       	push   $0x104
a3c949:	50                   	push   %eax
a3c94a:	56                   	push   %esi
a3c94b:	e8 56 ed 9f ff       	call   0x43b6a6
a3c950:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
a3c953:	e8 4a cc 9c ff       	call   0x4095a2
a3c958:	8b 45 bc             	mov    -0x44(%ebp),%eax
a3c95b:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
a3c95e:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
a3c964:	ff 70 10             	push   0x10(%eax)
a3c967:	e8 ff f3 9c ff       	call   0x40bd6b
a3c96c:	8d 45 bc             	lea    -0x44(%ebp),%eax
a3c96f:	c7 45 98 01 00 00 00 	movl   $0x1,-0x68(%ebp)
a3c976:	50                   	push   %eax
a3c977:	8d 45 8c             	lea    -0x74(%ebp),%eax
a3c97a:	8b cf                	mov    %edi,%ecx
a3c97c:	50                   	push   %eax
a3c97d:	53                   	push   %ebx
a3c97e:	e8 37 04 9d ff       	call   0x40cdba
a3c983:	68 fb 8b 41 00       	push   $0x418bfb
a3c988:	ff 75 90             	push   -0x70(%ebp)
a3c98b:	ff 15 d8 32 d8 00    	call   *0xd832d8
a3c991:	6a 00                	push   $0x0
a3c993:	e8 8d e6 9f ff       	call   0x43b025
a3c998:	8b c8                	mov    %eax,%ecx
a3c99a:	e8 6b 7c 9d ff       	call   0x41460a
a3c99f:	e8 71 9c 9f ff       	call   0x436615
a3c9a4:	50                   	push   %eax
a3c9a5:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
a3c9a8:	e8 67 d2 9c ff       	call   0x409c14
a3c9ad:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
a3c9b3:	50                   	push   %eax
a3c9b4:	ff 75 90             	push   -0x70(%ebp)
a3c9b7:	ff 15 18 32 d8 00    	call   *0xd83218
a3c9bd:	89 45 f0             	mov    %eax,-0x10(%ebp)
a3c9c0:	83 f8 ff             	cmp    $0xffffffff,%eax
a3c9c3:	75 39                	jne    0xa3c9fe
a3c9c5:	6a 01                	push   $0x1
a3c9c7:	e8 59 e6 9f ff       	call   0x43b025
a3c9cc:	8b c8                	mov    %eax,%ecx
a3c9ce:	e8 37 7c 9d ff       	call   0x41460a
a3c9d3:	8d 45 bc             	lea    -0x44(%ebp),%eax
a3c9d6:	8b cf                	mov    %edi,%ecx
a3c9d8:	50                   	push   %eax
a3c9d9:	8d 45 8c             	lea    -0x74(%ebp),%eax
a3c9dc:	50                   	push   %eax
a3c9dd:	53                   	push   %ebx
a3c9de:	e8 fe 18 9d ff       	call   0x40e2e1
a3c9e3:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
a3c9e6:	e8 44 c4 9e ff       	call   0x428e2f
a3c9eb:	6a ff                	push   $0xffffffff
a3c9ed:	6a 00                	push   $0x0
a3c9ef:	68 06 f1 00 00       	push   $0xf106
a3c9f4:	e8 3d 51 9c ff       	call   0x401b36
a3c9f9:	e9 16 02 00 00       	jmp    0xa3cc14
a3c9fe:	8b 45 bc             	mov    -0x44(%ebp),%eax
a3ca01:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
a3ca07:	0f b7 58 1a          	movzwl 0x1a(%eax),%ebx
a3ca0b:	0f b7 48 1c          	movzwl 0x1c(%eax),%ecx
a3ca0f:	0f b7 78 18          	movzwl 0x18(%eax),%edi
a3ca13:	3b d9                	cmp    %ecx,%ebx
a3ca15:	73 02                	jae    0xa3ca19
a3ca17:	8b d9                	mov    %ecx,%ebx
a3ca19:	0f b7 40 1e          	movzwl 0x1e(%eax),%eax
a3ca1d:	3b d8                	cmp    %eax,%ebx
a3ca1f:	76 02                	jbe    0xa3ca23
a3ca21:	8b d8                	mov    %eax,%ebx
a3ca23:	3b f9                	cmp    %ecx,%edi
a3ca25:	73 02                	jae    0xa3ca29
a3ca27:	8b f9                	mov    %ecx,%edi
a3ca29:	3b f8                	cmp    %eax,%edi
a3ca2b:	76 02                	jbe    0xa3ca2f
a3ca2d:	8b f8                	mov    %eax,%edi
a3ca2f:	3b df                	cmp    %edi,%ebx
a3ca31:	b9 ff ff 00 00       	mov    $0xffff,%ecx
a3ca36:	1b c0                	sbb    %eax,%eax
a3ca38:	83 e0 fe             	and    $0xfffffffe,%eax
a3ca3b:	40                   	inc    %eax
a3ca3c:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
a3ca42:	3b d9                	cmp    %ecx,%ebx
a3ca44:	75 04                	jne    0xa3ca4a
a3ca46:	8b d9                	mov    %ecx,%ebx
a3ca48:	eb 02                	jmp    0xa3ca4c
a3ca4a:	03 d8                	add    %eax,%ebx
a3ca4c:	68 43 f0 00 00       	push   $0xf043
a3ca51:	e8 25 de 9c ff       	call   0x40a87b
a3ca56:	85 c0                	test   %eax,%eax
a3ca58:	74 0e                	je     0xa3ca68
a3ca5a:	68 43 f0 00 00       	push   $0xf043
a3ca5f:	50                   	push   %eax
a3ca60:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
a3ca63:	e8 64 74 9c ff       	call   0x403ecc
a3ca68:	83 65 84 00          	andl   $0x0,-0x7c(%ebp)
a3ca6c:	83 65 a0 00          	andl   $0x0,-0x60(%ebp)
a3ca70:	e9 51 01 00 00       	jmp    0xa3cbc6
a3ca75:	8b 55 9c             	mov    -0x64(%ebp),%edx
a3ca78:	8b cf                	mov    %edi,%ecx
a3ca7a:	83 e1 01             	and    $0x1,%ecx
a3ca7d:	74 0c                	je     0xa3ca8b
a3ca7f:	8b 02                	mov    (%edx),%eax
a3ca81:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
a3ca85:	0f 84 35 01 00 00    	je     0xa3cbc0
a3ca8b:	85 c9                	test   %ecx,%ecx
a3ca8d:	75 0b                	jne    0xa3ca9a
a3ca8f:	8b 02                	mov    (%edx),%eax
a3ca91:	39 48 08             	cmp    %ecx,0x8(%eax)
a3ca94:	0f 84 26 01 00 00    	je     0xa3cbc0
a3ca9a:	8b 02                	mov    (%edx),%eax
a3ca9c:	8b 50 0c             	mov    0xc(%eax),%edx
a3ca9f:	85 d2                	test   %edx,%edx
a3caa1:	74 31                	je     0xa3cad4
a3caa3:	33 c9                	xor    %ecx,%ecx
a3caa5:	21 4d 88             	and    %ecx,-0x78(%ebp)
a3caa8:	85 d2                	test   %edx,%edx
a3caaa:	0f 84 10 01 00 00    	je     0xa3cbc0
a3cab0:	83 c0 14             	add    $0x14,%eax
a3cab3:	85 c9                	test   %ecx,%ecx
a3cab5:	75 1d                	jne    0xa3cad4
a3cab7:	39 78 fc             	cmp    %edi,-0x4(%eax)
a3caba:	7f 05                	jg     0xa3cac1
a3cabc:	39 38                	cmp    %edi,(%eax)
a3cabe:	7c 01                	jl     0xa3cac1
a3cac0:	41                   	inc    %ecx
a3cac1:	ff 45 88             	incl   -0x78(%ebp)
a3cac4:	83 c0 08             	add    $0x8,%eax
a3cac7:	39 55 88             	cmp    %edx,-0x78(%ebp)
a3caca:	72 e7                	jb     0xa3cab3
a3cacc:	85 c9                	test   %ecx,%ecx
a3cace:	0f 84 ec 00 00 00    	je     0xa3cbc0
a3cad4:	8b 4d ac             	mov    -0x54(%ebp),%ecx
a3cad7:	8d 45 bc             	lea    -0x44(%ebp),%eax
a3cada:	50                   	push   %eax
a3cadb:	8d 45 8c             	lea    -0x74(%ebp),%eax
a3cade:	50                   	push   %eax
a3cadf:	ff 75 a4             	push   -0x5c(%ebp)
a3cae2:	e8 0d 46 9d ff       	call   0x4110f4
a3cae7:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
a3caeb:	0f 84 e0 00 00 00    	je     0xa3cbd1
a3caf1:	6a 0a                	push   $0xa
a3caf3:	ff 75 94             	push   -0x6c(%ebp)
a3caf6:	ff 15 30 33 d8 00    	call   *0xd83330
a3cafc:	6a 08                	push   $0x8
a3cafe:	ff 75 94             	push   -0x6c(%ebp)
a3cb01:	8b f8                	mov    %eax,%edi
a3cb03:	ff 15 30 33 d8 00    	call   *0xd83330
a3cb09:	57                   	push   %edi
a3cb0a:	50                   	push   %eax
a3cb0b:	6a 00                	push   $0x0
a3cb0d:	6a 00                	push   $0x0
a3cb0f:	8d 45 e0             	lea    -0x20(%ebp),%eax
a3cb12:	50                   	push   %eax
a3cb13:	ff 15 f4 3e d8 00    	call   *0xd83ef4
a3cb19:	6a 02                	push   $0x2
a3cb1b:	8d 45 e0             	lea    -0x20(%ebp),%eax
a3cb1e:	50                   	push   %eax
a3cb1f:	ff 75 94             	push   -0x6c(%ebp)
a3cb22:	ff 15 4c 33 d8 00    	call   *0xd8334c
a3cb28:	ff 75 90             	push   -0x70(%ebp)
a3cb2b:	ff 15 cc 32 d8 00    	call   *0xd832cc
a3cb31:	85 c0                	test   %eax,%eax
a3cb33:	0f 88 13 01 00 00    	js     0xa3cc4c
a3cb39:	8b 4d ac             	mov    -0x54(%ebp),%ecx
a3cb3c:	8d 45 bc             	lea    -0x44(%ebp),%eax
a3cb3f:	50                   	push   %eax
a3cb40:	8d 45 8c             	lea    -0x74(%ebp),%eax
a3cb43:	50                   	push   %eax
a3cb44:	ff 75 a4             	push   -0x5c(%ebp)
a3cb47:	e8 a8 45 9d ff       	call   0x4110f4
a3cb4c:	8b 95 78 ff ff ff    	mov    -0x88(%ebp),%edx
a3cb52:	33 ff                	xor    %edi,%edi
a3cb54:	89 7d a0             	mov    %edi,-0x60(%ebp)
a3cb57:	85 d2                	test   %edx,%edx
a3cb59:	74 1f                	je     0xa3cb7a
a3cb5b:	8b 4d d0             	mov    -0x30(%ebp),%ecx
a3cb5e:	8b 45 f4             	mov    -0xc(%ebp),%eax
a3cb61:	8b 3a                	mov    (%edx),%edi
a3cb63:	03 c1                	add    %ecx,%eax
a3cb65:	6a 00                	push   $0x0
a3cb67:	50                   	push   %eax
a3cb68:	51                   	push   %ecx
a3cb69:	8b 4f 10             	mov    0x10(%edi),%ecx
a3cb6c:	52                   	push   %edx
a3cb6d:	e8 f3 fa 9e ff       	call   0x42c665
a3cb72:	ff 57 10             	call   *0x10(%edi)
a3cb75:	8b f8                	mov    %eax,%edi
a3cb77:	89 45 a0             	mov    %eax,-0x60(%ebp)
a3cb7a:	8b 4d ac             	mov    -0x54(%ebp),%ecx
a3cb7d:	8d 45 bc             	lea    -0x44(%ebp),%eax
a3cb80:	50                   	push   %eax
a3cb81:	8d 45 8c             	lea    -0x74(%ebp),%eax
a3cb84:	50                   	push   %eax
a3cb85:	ff 75 a4             	push   -0x5c(%ebp)
a3cb88:	e8 0c 74 9c ff       	call   0x403f99
a3cb8d:	ff 75 90             	push   -0x70(%ebp)
a3cb90:	ff 15 d0 32 d8 00    	call   *0xd832d0
a3cb96:	85 c0                	test   %eax,%eax
a3cb98:	0f 88 ae 00 00 00    	js     0xa3cc4c
a3cb9e:	6a 00                	push   $0x0
a3cba0:	ff 75 90             	push   -0x70(%ebp)
a3cba3:	e8 53 c0 9d ff       	call   0x418bfb
a3cba8:	85 c0                	test   %eax,%eax
a3cbaa:	0f 84 9c 00 00 00    	je     0xa3cc4c
a3cbb0:	85 ff                	test   %edi,%edi
a3cbb2:	0f 85 94 00 00 00    	jne    0xa3cc4c
a3cbb8:	8b 45 80             	mov    -0x80(%ebp),%eax
a3cbbb:	8b 7d d0             	mov    -0x30(%ebp),%edi
a3cbbe:	ff 00                	incl   (%eax)
a3cbc0:	03 bd 74 ff ff ff    	add    -0x8c(%ebp),%edi
a3cbc6:	89 7d d0             	mov    %edi,-0x30(%ebp)