4567ce:	51                   	push   %ecx
4567cf:	8b c4                	mov    %esp,%eax
4567d1:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4567d5:	83 20 00             	andl   $0x0,(%eax)
4567d8:	e8 39 c1 fa ff       	call   0x402916
4567dd:	84 c0                	test   %al,%al
4567df:	74 1d                	je     0x4567fe
4567e1:	8b 06                	mov    (%esi),%eax
4567e3:	80 78 11 00          	cmpb   $0x0,0x11(%eax)
4567e7:	75 01                	jne    0x4567ea
4567e9:	43                   	inc    %ebx
4567ea:	8d 44 24 14          	lea    0x14(%esp),%eax
4567ee:	50                   	push   %eax
4567ef:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4567f3:	e8 86 61 ff ff       	call   0x44c97e
4567f8:	8b 74 24 0c          	mov    0xc(%esp),%esi
4567fc:	eb d0                	jmp    0x4567ce
4567fe:	8b 75 0c             	mov    0xc(%ebp),%esi
456801:	8b ce                	mov    %esi,%ecx
456803:	e8 18 c4 fb ff       	call   0x412c20
456808:	5f                   	pop    %edi
456809:	89 1e                	mov    %ebx,(%esi)
45680b:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456812:	5e                   	pop    %esi
456813:	33 c0                	xor    %eax,%eax
456815:	5b                   	pop    %ebx
456816:	8b e5                	mov    %ebp,%esp
456818:	5d                   	pop    %ebp
456819:	c2 08 00             	ret    $0x8
45681c:	55                   	push   %ebp
45681d:	8b ec                	mov    %esp,%ebp
45681f:	83 e4 f8             	and    $0xfffffff8,%esp
456822:	83 ec 7c             	sub    $0x7c,%esp
456825:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
45682a:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
45682f:	53                   	push   %ebx
456830:	56                   	push   %esi
456831:	57                   	push   %edi
456832:	8b 7d 08             	mov    0x8(%ebp),%edi
456835:	89 4c 24 14          	mov    %ecx,0x14(%esp)
456839:	8b 47 04             	mov    0x4(%edi),%eax
45683c:	c6 44 24 13 01       	movb   $0x1,0x13(%esp)
456841:	8b 30                	mov    (%eax),%esi
456843:	8b ce                	mov    %esi,%ecx
456845:	e8 22 2b fb ff       	call   0x40936c
45684a:	8b 4e 08             	mov    0x8(%esi),%ecx
45684d:	8b 01                	mov    (%ecx),%eax
45684f:	89 44 24 20          	mov    %eax,0x20(%esp)
456853:	8b 41 04             	mov    0x4(%ecx),%eax
456856:	89 44 24 24          	mov    %eax,0x24(%esp)
45685a:	8b 41 08             	mov    0x8(%ecx),%eax
45685d:	89 44 24 28          	mov    %eax,0x28(%esp)
456861:	8b 41 0c             	mov    0xc(%ecx),%eax
456864:	8d 4c 24 20          	lea    0x20(%esp),%ecx
456868:	ff 00                	incl   (%eax)
45686a:	89 44 24 2c          	mov    %eax,0x2c(%esp)
45686e:	e8 87 55 fb ff       	call   0x40bdfa
456873:	ff 74 24 24          	push   0x24(%esp)
456877:	ff 74 24 24          	push   0x24(%esp)
45687b:	ff 15 60 d6 48 00    	call   *0x48d660
456881:	8d 4c 24 40          	lea    0x40(%esp),%ecx
456885:	e8 1d be fa ff       	call   0x4026a7
45688a:	68 b8 3d 4b 00       	push   $0x4b3db8
45688f:	8d 4c 24 34          	lea    0x34(%esp),%ecx
456893:	e8 81 65 fb ff       	call   0x40ce19
456898:	51                   	push   %ecx
456899:	51                   	push   %ecx
45689a:	8d 44 24 28          	lea    0x28(%esp),%eax
45689e:	50                   	push   %eax
45689f:	8d 44 24 3c          	lea    0x3c(%esp),%eax
4568a3:	50                   	push   %eax
4568a4:	8d 4c 24 50          	lea    0x50(%esp),%ecx
4568a8:	e8 fa b8 fe ff       	call   0x4421a7
4568ad:	8a d8                	mov    %al,%bl
4568af:	f6 db                	neg    %bl
4568b1:	8d 4c 24 30          	lea    0x30(%esp),%ecx
4568b5:	1a db                	sbb    %bl,%bl
4568b7:	e8 7b 62 fb ff       	call   0x40cb37
4568bc:	fe c3                	inc    %bl
4568be:	74 2b                	je     0x4568eb
4568c0:	8b 75 0c             	mov    0xc(%ebp),%esi
4568c3:	8b ce                	mov    %esi,%ecx
4568c5:	e8 56 c3 fb ff       	call   0x412c20
4568ca:	8b 54 24 14          	mov    0x14(%esp),%edx
4568ce:	83 26 00             	andl   $0x0,(%esi)
4568d1:	33 c0                	xor    %eax,%eax
4568d3:	40                   	inc    %eax
4568d4:	6a 00                	push   $0x0
4568d6:	89 46 0c             	mov    %eax,0xc(%esi)
4568d9:	50                   	push   %eax
4568da:	8b 02                	mov    (%edx),%eax
4568dc:	8b 48 04             	mov    0x4(%eax),%ecx
4568df:	03 ca                	add    %edx,%ecx
4568e1:	e8 66 66 ff ff       	call   0x44cf4c
4568e6:	e9 e8 00 00 00       	jmp    0x4569d3
4568eb:	83 7f 08 03          	cmpl   $0x3,0x8(%edi)
4568ef:	75 43                	jne    0x456934
4568f1:	8b 47 04             	mov    0x4(%edi),%eax
4568f4:	8b 48 08             	mov    0x8(%eax),%ecx
4568f7:	e8 8a 69 fb ff       	call   0x40d286
4568fc:	a8 01                	test   $0x1,%al
4568fe:	74 05                	je     0x456905
456900:	33 db                	xor    %ebx,%ebx
456902:	43                   	inc    %ebx
456903:	eb 04                	jmp    0x456909
456905:	8b 5c 24 18          	mov    0x18(%esp),%ebx
456909:	8b 47 04             	mov    0x4(%edi),%eax
45690c:	8b 48 08             	mov    0x8(%eax),%ecx
45690f:	e8 72 69 fb ff       	call   0x40d286
456914:	a8 02                	test   $0x2,%al
456916:	74 03                	je     0x45691b
456918:	6a 02                	push   $0x2
45691a:	5b                   	pop    %ebx
45691b:	8b 47 04             	mov    0x4(%edi),%eax
45691e:	8b 48 08             	mov    0x8(%eax),%ecx
456921:	e8 60 69 fb ff       	call   0x40d286
456926:	24 04                	and    $0x4,%al
456928:	f6 d8                	neg    %al
45692a:	1a c0                	sbb    %al,%al
45692c:	f6 d0                	not    %al
45692e:	20 44 24 13          	and    %al,0x13(%esp)
456932:	eb 04                	jmp    0x456938
456934:	8b 5c 24 18          	mov    0x18(%esp),%ebx
456938:	53                   	push   %ebx
456939:	8d 44 24 20          	lea    0x20(%esp),%eax
45693d:	50                   	push   %eax
45693e:	8d 44 24 20          	lea    0x20(%esp),%eax
456942:	50                   	push   %eax
456943:	8d 44 24 2c          	lea    0x2c(%esp),%eax
456947:	50                   	push   %eax
456948:	e8 f8 6c fb ff       	call   0x40d645
45694d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
456951:	85 c9                	test   %ecx,%ecx
456953:	75 41                	jne    0x456996
456955:	38 4c 24 13          	cmp    %cl,0x13(%esp)
456959:	74 14                	je     0x45696f
45695b:	8b 47 04             	mov    0x4(%edi),%eax
45695e:	53                   	push   %ebx
45695f:	51                   	push   %ecx
456960:	ff 70 04             	push   0x4(%eax)
456963:	8d 44 24 2c          	lea    0x2c(%esp),%eax
456967:	50                   	push   %eax
456968:	e8 7c 6d fb ff       	call   0x40d6e9
45696d:	eb 64                	jmp    0x4569d3
45696f:	8b 54 24 14          	mov    0x14(%esp),%edx
456973:	6a 00                	push   $0x0
456975:	8b 02                	mov    (%edx),%eax
456977:	6a 02                	push   $0x2
456979:	8b 48 04             	mov    0x4(%eax),%ecx
45697c:	03 ca                	add    %edx,%ecx
45697e:	e8 c9 65 ff ff       	call   0x44cf4c
456983:	8b 75 0c             	mov    0xc(%ebp),%esi
456986:	8b ce                	mov    %esi,%ecx
456988:	e8 93 c2 fb ff       	call   0x412c20
45698d:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456994:	eb 2d                	jmp    0x4569c3
456996:	f7 44 24 1c 00 01 00 	testl  $0x100,0x1c(%esp)
45699d:	00
45699e:	74 28                	je     0x4569c8
4569a0:	8b 54 24 14          	mov    0x14(%esp),%edx
4569a4:	33 db                	xor    %ebx,%ebx
4569a6:	8b 02                	mov    (%edx),%eax
4569a8:	6a 00                	push   $0x0
4569aa:	8b 48 04             	mov    0x4(%eax),%ecx
4569ad:	43                   	inc    %ebx
4569ae:	53                   	push   %ebx
4569af:	03 ca                	add    %edx,%ecx
4569b1:	e8 96 65 ff ff       	call   0x44cf4c
4569b6:	8b 75 0c             	mov    0xc(%ebp),%esi
4569b9:	8b ce                	mov    %esi,%ecx
4569bb:	e8 60 c2 fb ff       	call   0x412c20
4569c0:	89 5e 0c             	mov    %ebx,0xc(%esi)
4569c3:	83 26 00             	andl   $0x0,(%esi)
4569c6:	eb 0b                	jmp    0x4569d3
4569c8:	8b 47 04             	mov    0x4(%edi),%eax
4569cb:	ff 70 04             	push   0x4(%eax)
4569ce:	e8 db 72 fb ff       	call   0x40dcae
4569d3:	8d 4c 24 40          	lea    0x40(%esp),%ecx
4569d7:	e8 3e 24 fb ff       	call   0x408e1a
4569dc:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4569e0:	e8 52 61 fb ff       	call   0x40cb37
4569e5:	5f                   	pop    %edi
4569e6:	5e                   	pop    %esi
4569e7:	33 c0                	xor    %eax,%eax
4569e9:	5b                   	pop    %ebx
4569ea:	8b e5                	mov    %ebp,%esp
4569ec:	5d                   	pop    %ebp
4569ed:	c2 08 00             	ret    $0x8
4569f0:	55                   	push   %ebp
4569f1:	8b ec                	mov    %esp,%ebp
4569f3:	51                   	push   %ecx
4569f4:	51                   	push   %ecx
4569f5:	68 00 00 01 00       	push   $0x10000
4569fa:	e8 eb 8a fc ff       	call   0x41f4ea
4569ff:	59                   	pop    %ecx
456a00:	50                   	push   %eax
456a01:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456a04:	e8 ae dd fa ff       	call   0x4047b7
456a09:	68 ff 7f 00 00       	push   $0x7fff
456a0e:	ff 75 f8             	push   -0x8(%ebp)
456a11:	ff 35 e8 10 4c 00    	push   0x4c10e8
456a17:	ff 15 30 d7 48 00    	call   *0x48d730
456a1d:	ff 75 f8             	push   -0x8(%ebp)
456a20:	8b 4d 0c             	mov    0xc(%ebp),%ecx
456a23:	e8 91 63 fb ff       	call   0x40cdb9
456a28:	8d 4d f8             	lea    -0x8(%ebp),%ecx
456a2b:	e8 b2 dd fa ff       	call   0x4047e2
456a30:	33 c0                	xor    %eax,%eax
456a32:	c9                   	leave
456a33:	c2 08 00             	ret    $0x8
456a36:	55                   	push   %ebp
456a37:	8b ec                	mov    %esp,%ebp
456a39:	8b 45 08             	mov    0x8(%ebp),%eax
456a3c:	56                   	push   %esi
456a3d:	8b 40 04             	mov    0x4(%eax),%eax
456a40:	8b 30                	mov    (%eax),%esi
456a42:	8b ce                	mov    %esi,%ecx
456a44:	e8 23 29 fb ff       	call   0x40936c
456a49:	8b 46 08             	mov    0x8(%esi),%eax
456a4c:	ff 30                	push   (%eax)
456a4e:	ff 35 e8 10 4c 00    	push   0x4c10e8
456a54:	ff 15 04 d6 48 00    	call   *0x48d604
456a5a:	33 c0                	xor    %eax,%eax
456a5c:	5e                   	pop    %esi
456a5d:	5d                   	pop    %ebp
456a5e:	c2 08 00             	ret    $0x8
456a61:	55                   	push   %ebp
456a62:	8b ec                	mov    %esp,%ebp
456a64:	53                   	push   %ebx
456a65:	56                   	push   %esi
456a66:	8b 75 08             	mov    0x8(%ebp),%esi
456a69:	57                   	push   %edi
456a6a:	8b 7e 08             	mov    0x8(%esi),%edi
456a6d:	c7 45 08 f4 01 00 00 	movl   $0x1f4,0x8(%ebp)
456a74:	bb e8 03 00 00       	mov    $0x3e8,%ebx
456a79:	85 ff                	test   %edi,%edi
456a7b:	74 0d                	je     0x456a8a
456a7d:	8b 46 04             	mov    0x4(%esi),%eax
456a80:	8b 08                	mov    (%eax),%ecx
456a82:	e8 ff 67 fb ff       	call   0x40d286
456a87:	89 45 08             	mov    %eax,0x8(%ebp)
456a8a:	83 ff 01             	cmp    $0x1,%edi
456a8d:	76 0d                	jbe    0x456a9c
456a8f:	8b 4e 04             	mov    0x4(%esi),%ecx
456a92:	8b 49 04             	mov    0x4(%ecx),%ecx
456a95:	e8 ec 67 fb ff       	call   0x40d286
456a9a:	8b d8                	mov    %eax,%ebx
456a9c:	53                   	push   %ebx
456a9d:	ff 75 08             	push   0x8(%ebp)
456aa0:	ff 15 e4 d2 48 00    	call   *0x48d2e4
456aa6:	5f                   	pop    %edi
456aa7:	5e                   	pop    %esi
456aa8:	33 c0                	xor    %eax,%eax
456aaa:	5b                   	pop    %ebx
456aab:	5d                   	pop    %ebp
456aac:	c2 08 00             	ret    $0x8
456aaf:	55                   	push   %ebp
456ab0:	8b ec                	mov    %esp,%ebp
456ab2:	8b 45 08             	mov    0x8(%ebp),%eax
456ab5:	56                   	push   %esi
456ab6:	8b 40 04             	mov    0x4(%eax),%eax
456ab9:	57                   	push   %edi
456aba:	8b 08                	mov    (%eax),%ecx
456abc:	e8 c5 67 fb ff       	call   0x40d286
456ac1:	85 c0                	test   %eax,%eax
456ac3:	75 03                	jne    0x456ac8
456ac5:	50                   	push   %eax
456ac6:	eb 02                	jmp    0x456aca
456ac8:	6a 01                	push   $0x1
456aca:	ff 15 c4 d6 48 00    	call   *0x48d6c4
456ad0:	8b 75 0c             	mov    0xc(%ebp),%esi
456ad3:	8b ce                	mov    %esi,%ecx
456ad5:	8b f8                	mov    %eax,%edi
456ad7:	e8 44 c1 fb ff       	call   0x412c20
456adc:	89 3e                	mov    %edi,(%esi)
456ade:	5f                   	pop    %edi
456adf:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
456ae6:	33 c0                	xor    %eax,%eax
456ae8:	5e                   	pop    %esi
456ae9:	5d                   	pop    %ebp
456aea:	c2 08 00             	ret    $0x8
456aed:	55                   	push   %ebp
456aee:	8b ec                	mov    %esp,%ebp
456af0:	8b 45 08             	mov    0x8(%ebp),%eax
456af3:	8b 40 04             	mov    0x4(%eax),%eax
456af6:	8b 08                	mov    (%eax),%ecx
456af8:	e8 89 67 fb ff       	call   0x40d286
456afd:	85 c0                	test   %eax,%eax
456aff:	0f 95 05 c4 10 4c 00 	setne  0x4c10c4
456b06:	33 c0                	xor    %eax,%eax
456b08:	5d                   	pop    %ebp
456b09:	c2 08 00             	ret    $0x8
456b0c:	55                   	push   %ebp
456b0d:	8b ec                	mov    %esp,%ebp
456b0f:	83 e4 f8             	and    $0xfffffff8,%esp
456b12:	81 ec 34 02 00 00    	sub    $0x234,%esp
456b18:	53                   	push   %ebx
456b19:	8b 5d 0c             	mov    0xc(%ebp),%ebx
456b1c:	56                   	push   %esi
456b1d:	57                   	push   %edi
456b1e:	8b f1                	mov    %ecx,%esi
456b20:	68 00 dc 49 00       	push   $0x49dc00
456b25:	8b cb                	mov    %ebx,%ecx
456b27:	89 74 24 24          	mov    %esi,0x24(%esp)
456b2b:	e8 89 62 fb ff       	call   0x40cdb9
456b30:	ff 35 e8 10 4c 00    	push   0x4c10e8
456b36:	ff 15 c0 d6 48 00    	call   *0x48d6c0
456b3c:	8b 3d bc d6 48 00    	mov    0x48d6bc,%edi
456b42:	6a 0d                	push   $0xd
456b44:	ff d7                	call   *%edi
456b46:	85 c0                	test   %eax,%eax
456b48:	74 54                	je     0x456b9e
456b4a:	6a 0d                	push   $0xd
456b4c:	ff 15 b8 d6 48 00    	call   *0x48d6b8
456b52:	8b f8                	mov    %eax,%edi
456b54:	85 ff                	test   %edi,%edi
456b56:	75 1b                	jne    0x456b73
456b58:	ff 15 b4 d6 48 00    	call   *0x48d6b4
456b5e:	6a 00                	push   $0x0
456b60:	6a 03                	push   $0x3
456b62:	8b 06                	mov    (%esi),%eax
456b64:	8b 48 04             	mov    0x4(%eax),%ecx
456b67:	03 ce                	add    %esi,%ecx
456b69:	e8 de 63 ff ff       	call   0x44cf4c
456b6e:	e9 89 01 00 00       	jmp    0x456cfc
456b73:	57                   	push   %edi
456b74:	ff 15 cc d2 48 00    	call   *0x48d2cc
456b7a:	85 c0                	test   %eax,%eax
456b7c:	75 0c                	jne    0x456b8a
456b7e:	ff 15 b4 d6 48 00    	call   *0x48d6b4
456b84:	6a 00                	push   $0x0
456b86:	6a 04                	push   $0x4
456b88:	eb d8                	jmp    0x456b62
456b8a:	50                   	push   %eax
456b8b:	8b cb                	mov    %ebx,%ecx
456b8d:	e8 27 62 fb ff       	call   0x40cdb9
456b92:	57                   	push   %edi
456b93:	ff 15 d0 d2 48 00    	call   *0x48d2d0
456b99:	e9 58 01 00 00       	jmp    0x456cf6
456b9e:	6a 01                	push   $0x1
456ba0:	ff d7                	call   *%edi
456ba2:	85 c0                	test   %eax,%eax
456ba4:	74 57                	je     0x456bfd
456ba6:	6a 01                	push   $0x1
456ba8:	ff 15 b8 d6 48 00    	call   *0x48d6b8
456bae:	8b f8                	mov    %eax,%edi
456bb0:	85 ff                	test   %edi,%edi
456bb2:	74 a4                	je     0x456b58
456bb4:	57                   	push   %edi
456bb5:	ff 15 cc d2 48 00    	call   *0x48d2cc