45889b:	e8 80 a7 fc ff       	call   0x423020
4588a0:	8b 45 08             	mov    0x8(%ebp),%eax
4588a3:	83 c4 0c             	add    $0xc,%esp
4588a6:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
4588aa:	c7 45 a4 20 00 00 00 	movl   $0x20,-0x5c(%ebp)
4588b1:	89 45 ac             	mov    %eax,-0x54(%ebp)
4588b4:	88 5d 0b             	mov    %bl,0xb(%ebp)
4588b7:	74 04                	je     0x4588bd
4588b9:	c6 45 0b 01          	movb   $0x1,0xb(%ebp)
4588bd:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4588c0:	51                   	push   %ecx
4588c1:	51                   	push   %ecx
4588c2:	ff 75 14             	push   0x14(%ebp)
4588c5:	ff 75 10             	push   0x10(%ebp)
4588c8:	ff 75 0c             	push   0xc(%ebp)
4588cb:	50                   	push   %eax
4588cc:	e8 c2 03 00 00       	call   0x458c93
4588d1:	84 c0                	test   %al,%al
4588d3:	0f 84 af 01 00 00    	je     0x458a88
4588d9:	6a 02                	push   $0x2
4588db:	59                   	pop    %ecx
4588dc:	84 4d 14             	test   %cl,0x14(%ebp)
4588df:	74 29                	je     0x45890a
4588e1:	8d 45 10             	lea    0x10(%ebp),%eax
4588e4:	50                   	push   %eax
4588e5:	6a 01                	push   $0x1
4588e7:	51                   	push   %ecx
4588e8:	53                   	push   %ebx
4588e9:	53                   	push   %ebx
4588ea:	ff 75 fc             	push   -0x4(%ebp)
4588ed:	ff 15 40 f0 48 00    	call   *0x48f040
4588f3:	85 c0                	test   %eax,%eax
4588f5:	0f 84 8d 01 00 00    	je     0x458a88
4588fb:	ff 75 fc             	push   -0x4(%ebp)
4588fe:	ff 15 5c f3 48 00    	call   *0x48f35c
458904:	8b 45 10             	mov    0x10(%ebp),%eax
458907:	89 45 fc             	mov    %eax,-0x4(%ebp)
45890a:	68 00 00 06 00       	push   $0x60000
45890f:	53                   	push   %ebx
458910:	68 24 95 4b 00       	push   $0x4b9524
458915:	ff 15 b0 f6 48 00    	call   *0x48f6b0
45891b:	8b f0                	mov    %eax,%esi
45891d:	85 f6                	test   %esi,%esi
45891f:	0f 84 63 01 00 00    	je     0x458a88
458925:	83 fe ff             	cmp    $0xffffffff,%esi
458928:	0f 84 5a 01 00 00    	je     0x458a88
45892e:	ff 15 ac f6 48 00    	call   *0x48f6ac
458934:	56                   	push   %esi
458935:	89 45 ec             	mov    %eax,-0x14(%ebp)
458938:	ff 15 a8 f6 48 00    	call   *0x48f6a8
45893e:	85 c0                	test   %eax,%eax
458940:	0f 84 42 01 00 00    	je     0x458a88
458946:	68 81 00 06 00       	push   $0x60081
45894b:	53                   	push   %ebx
45894c:	53                   	push   %ebx
45894d:	68 34 95 4b 00       	push   $0x4b9534
458952:	ff 15 a4 f6 48 00    	call   *0x48f6a4
458958:	8b f8                	mov    %eax,%edi
45895a:	85 ff                	test   %edi,%edi
45895c:	0f 84 26 01 00 00    	je     0x458a88
458962:	83 ff ff             	cmp    $0xffffffff,%edi
458965:	0f 84 1d 01 00 00    	je     0x458a88
45896b:	8d 45 f8             	lea    -0x8(%ebp),%eax
45896e:	50                   	push   %eax
45896f:	ff 75 fc             	push   -0x4(%ebp)
458972:	e8 e4 03 00 00       	call   0x458d5b
458977:	84 c0                	test   %al,%al
458979:	0f 84 09 01 00 00    	je     0x458a88
45897f:	51                   	push   %ecx
458980:	8d 45 d4             	lea    -0x2c(%ebp),%eax
458983:	66 c7 45 d4 00 0b    	movw   $0xb00,-0x2c(%ebp)
458989:	50                   	push   %eax
45898a:	ff 75 f8             	push   -0x8(%ebp)
45898d:	c7 45 d8 00 00 00 f0 	movl   $0xf0000000,-0x28(%ebp)
458994:	56                   	push   %esi
458995:	66 c7 45 e0 00 04    	movw   $0x400,-0x20(%ebp)
45899b:	c7 45 e4 7f 03 0f 00 	movl   $0xf037f,-0x1c(%ebp)
4589a2:	e8 4d fa ff ff       	call   0x4583f4
4589a7:	84 c0                	test   %al,%al
4589a9:	0f 84 d9 00 00 00    	je     0x458a88
4589af:	51                   	push   %ecx
4589b0:	8d 45 e0             	lea    -0x20(%ebp),%eax
4589b3:	66 89 5d e0          	mov    %bx,-0x20(%ebp)
4589b7:	50                   	push   %eax
4589b8:	ff 75 f8             	push   -0x8(%ebp)
4589bb:	c7 45 e4 ff 01 0f 00 	movl   $0xf01ff,-0x1c(%ebp)
4589c2:	57                   	push   %edi
4589c3:	e8 2f f8 ff ff       	call   0x4581f7
4589c8:	84 c0                	test   %al,%al
4589ca:	0f 84 b8 00 00 00    	je     0x458a88
4589d0:	8b 45 28             	mov    0x28(%ebp),%eax
4589d3:	c7 40 08 44 95 4b 00 	movl   $0x4b9544,0x8(%eax)
4589da:	8b 40 2c             	mov    0x2c(%eax),%eax
4589dd:	25 00 01 00 00       	and    $0x100,%eax
4589e2:	89 45 10             	mov    %eax,0x10(%ebp)
4589e5:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
4589e8:	74 2c                	je     0x458a16
4589ea:	ff 75 1c             	push   0x1c(%ebp)
4589ed:	e8 4a a4 fc ff       	call   0x422e3c
4589f2:	33 c9                	xor    %ecx,%ecx
4589f4:	40                   	inc    %eax
4589f5:	6a 02                	push   $0x2
4589f7:	5a                   	pop    %edx
4589f8:	f7 e2                	mul    %edx
4589fa:	0f 90 c1             	seto   %cl
4589fd:	f7 d9                	neg    %ecx
4589ff:	0b c8                	or     %eax,%ecx
458a01:	51                   	push   %ecx
458a02:	e8 ef 85 fc ff       	call   0x420ff6
458a07:	ff 75 1c             	push   0x1c(%ebp)
458a0a:	89 45 f0             	mov    %eax,-0x10(%ebp)
458a0d:	50                   	push   %eax
458a0e:	e8 e9 a5 fc ff       	call   0x422ffc
458a13:	83 c4 10             	add    $0x10,%esp
458a16:	38 5d 0b             	cmp    %bl,0xb(%ebp)
458a19:	74 11                	je     0x458a2c
458a1b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
458a1e:	50                   	push   %eax
458a1f:	ff 75 fc             	push   -0x4(%ebp)
458a22:	ff 15 5c f7 48 00    	call   *0x48f75c
458a28:	85 c0                	test   %eax,%eax
458a2a:	74 5c                	je     0x458a88
458a2c:	f6 45 14 04          	testb  $0x4,0x14(%ebp)
458a30:	75 12                	jne    0x458a44
458a32:	53                   	push   %ebx
458a33:	ff 75 fc             	push   -0x4(%ebp)
458a36:	8d 45 f4             	lea    -0xc(%ebp),%eax
458a39:	50                   	push   %eax
458a3a:	ff 15 58 f7 48 00    	call   *0x48f758
458a40:	85 c0                	test   %eax,%eax
458a42:	74 44                	je     0x458a88
458a44:	ff 75 2c             	push   0x2c(%ebp)
458a47:	8b 45 20             	mov    0x20(%ebp),%eax
458a4a:	ff 75 28             	push   0x28(%ebp)
458a4d:	0d 00 04 00 00       	or     $0x400,%eax
458a52:	ff 75 24             	push   0x24(%ebp)
458a55:	ff 75 f4             	push   -0xc(%ebp)
458a58:	50                   	push   %eax
458a59:	ff 75 10             	push   0x10(%ebp)
458a5c:	53                   	push   %ebx
458a5d:	53                   	push   %ebx
458a5e:	ff 75 f0             	push   -0x10(%ebp)
458a61:	53                   	push   %ebx
458a62:	ff 75 fc             	push   -0x4(%ebp)
458a65:	ff 15 44 f0 48 00    	call   *0x48f044
458a6b:	85 c0                	test   %eax,%eax
458a6d:	74 19                	je     0x458a88
458a6f:	38 5d 0b             	cmp    %bl,0xb(%ebp)
458a72:	74 10                	je     0x458a84
458a74:	8d 45 fc             	lea    -0x4(%ebp),%eax
458a77:	50                   	push   %eax
458a78:	8d 45 c0             	lea    -0x40(%ebp),%eax
458a7b:	50                   	push   %eax
458a7c:	ff 75 2c             	push   0x2c(%ebp)
458a7f:	e8 7f 03 00 00       	call   0x458e03
458a84:	b3 01                	mov    $0x1,%bl
458a86:	eb 11                	jmp    0x458a99
458a88:	39 5d c0             	cmp    %ebx,-0x40(%ebp)
458a8b:	74 0c                	je     0x458a99
458a8d:	ff 75 c0             	push   -0x40(%ebp)
458a90:	ff 75 fc             	push   -0x4(%ebp)
458a93:	ff 15 54 f7 48 00    	call   *0x48f754
458a99:	8b 4d f8             	mov    -0x8(%ebp),%ecx
458a9c:	e8 12 fc ff ff       	call   0x4586b3
458aa1:	85 f6                	test   %esi,%esi
458aa3:	74 07                	je     0x458aac
458aa5:	56                   	push   %esi
458aa6:	ff 15 a0 f6 48 00    	call   *0x48f6a0
458aac:	85 ff                	test   %edi,%edi
458aae:	74 07                	je     0x458ab7
458ab0:	57                   	push   %edi
458ab1:	ff 15 9c f6 48 00    	call   *0x48f69c
458ab7:	8b 45 ec             	mov    -0x14(%ebp),%eax
458aba:	85 c0                	test   %eax,%eax
458abc:	74 07                	je     0x458ac5
458abe:	50                   	push   %eax
458abf:	ff 15 a8 f6 48 00    	call   *0x48f6a8
458ac5:	ff 75 fc             	push   -0x4(%ebp)
458ac8:	ff 15 5c f3 48 00    	call   *0x48f35c
458ace:	ff 75 f0             	push   -0x10(%ebp)
458ad1:	e8 96 85 fc ff       	call   0x42106c
458ad6:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
458ada:	59                   	pop    %ecx
458adb:	74 09                	je     0x458ae6
458add:	ff 75 f4             	push   -0xc(%ebp)
458ae0:	ff 15 50 f7 48 00    	call   *0x48f750
458ae6:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
458ae9:	e8 25 fc ff ff       	call   0x458713
458aee:	5f                   	pop    %edi
458aef:	5e                   	pop    %esi
458af0:	8a c3                	mov    %bl,%al
458af2:	5b                   	pop    %ebx
458af3:	8b e5                	mov    %ebp,%esp
458af5:	5d                   	pop    %ebp
458af6:	c2 28 00             	ret    $0x28
458af9:	55                   	push   %ebp
458afa:	8b ec                	mov    %esp,%ebp
458afc:	51                   	push   %ecx
458afd:	53                   	push   %ebx
458afe:	33 db                	xor    %ebx,%ebx
458b00:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
458b04:	8b c3                	mov    %ebx,%eax
458b06:	57                   	push   %edi
458b07:	89 45 fc             	mov    %eax,-0x4(%ebp)
458b0a:	8b fb                	mov    %ebx,%edi
458b0c:	74 03                	je     0x458b11
458b0e:	47                   	inc    %edi
458b0f:	eb 09                	jmp    0x458b1a
458b11:	f6 45 14 02          	testb  $0x2,0x14(%ebp)
458b15:	74 03                	je     0x458b1a
458b17:	6a 02                	push   $0x2
458b19:	5f                   	pop    %edi
458b1a:	f6 45 14 04          	testb  $0x4,0x14(%ebp)
458b1e:	74 39                	je     0x458b59
458b20:	56                   	push   %esi
458b21:	8d 45 14             	lea    0x14(%ebp),%eax
458b24:	89 5d 14             	mov    %ebx,0x14(%ebp)
458b27:	50                   	push   %eax
458b28:	6a 0a                	push   $0xa
458b2a:	ff 15 60 f2 48 00    	call   *0x48f260
458b30:	50                   	push   %eax
458b31:	ff 15 38 f0 48 00    	call   *0x48f038
458b37:	6a 01                	push   $0x1
458b39:	ff 75 14             	push   0x14(%ebp)
458b3c:	8d 45 fc             	lea    -0x4(%ebp),%eax
458b3f:	50                   	push   %eax
458b40:	ff 15 58 f7 48 00    	call   *0x48f758
458b46:	ff 75 14             	push   0x14(%ebp)
458b49:	8b f0                	mov    %eax,%esi
458b4b:	ff 15 5c f3 48 00    	call   *0x48f35c
458b51:	85 f6                	test   %esi,%esi
458b53:	5e                   	pop    %esi
458b54:	74 2f                	je     0x458b85
458b56:	8b 45 fc             	mov    -0x4(%ebp),%eax
458b59:	ff 75 2c             	push   0x2c(%ebp)
458b5c:	ff 75 28             	push   0x28(%ebp)
458b5f:	ff 75 24             	push   0x24(%ebp)
458b62:	50                   	push   %eax
458b63:	8b 45 20             	mov    0x20(%ebp),%eax
458b66:	0d 00 04 00 00       	or     $0x400,%eax
458b6b:	50                   	push   %eax
458b6c:	ff 75 1c             	push   0x1c(%ebp)
458b6f:	53                   	push   %ebx
458b70:	57                   	push   %edi
458b71:	ff 75 10             	push   0x10(%ebp)
458b74:	ff 75 0c             	push   0xc(%ebp)
458b77:	ff 75 08             	push   0x8(%ebp)
458b7a:	ff 15 48 f0 48 00    	call   *0x48f048
458b80:	85 c0                	test   %eax,%eax
458b82:	0f 95 c3             	setne  %bl
458b85:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
458b89:	74 09                	je     0x458b94
458b8b:	ff 75 fc             	push   -0x4(%ebp)
458b8e:	ff 15 50 f7 48 00    	call   *0x48f750
458b94:	5f                   	pop    %edi
458b95:	8a c3                	mov    %bl,%al
458b97:	5b                   	pop    %ebx
458b98:	8b e5                	mov    %ebp,%esp
458b9a:	5d                   	pop    %ebp
458b9b:	c2 28 00             	ret    $0x28
458b9e:	55                   	push   %ebp
458b9f:	8b ec                	mov    %esp,%ebp
458ba1:	83 ec 1c             	sub    $0x1c,%esp
458ba4:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
458ba8:	8b c1                	mov    %ecx,%eax
458baa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
458bae:	8d 4d f0             	lea    -0x10(%ebp),%ecx
458bb1:	53                   	push   %ebx
458bb2:	56                   	push   %esi
458bb3:	57                   	push   %edi
458bb4:	51                   	push   %ecx
458bb5:	51                   	push   %ecx
458bb6:	8d 4d fc             	lea    -0x4(%ebp),%ecx
458bb9:	89 45 f4             	mov    %eax,-0xc(%ebp)
458bbc:	51                   	push   %ecx
458bbd:	8b 48 0c             	mov    0xc(%eax),%ecx
458bc0:	32 db                	xor    %bl,%bl
458bc2:	e8 8b fa ff ff       	call   0x458652
458bc7:	8b 75 fc             	mov    -0x4(%ebp),%esi
458bca:	83 c4 0c             	add    $0xc,%esp
458bcd:	84 c0                	test   %al,%al
458bcf:	74 6c                	je     0x458c3d
458bd1:	8b 45 f4             	mov    -0xc(%ebp),%eax
458bd4:	33 ff                	xor    %edi,%edi
458bd6:	89 7d f8             	mov    %edi,-0x8(%ebp)
458bd9:	39 78 04             	cmp    %edi,0x4(%eax)
458bdc:	76 5f                	jbe    0x458c3d
458bde:	8b 00                	mov    (%eax),%eax
458be0:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
458be3:	51                   	push   %ecx
458be4:	32 db                	xor    %bl,%bl
458be6:	ff 34 b8             	push   (%eax,%edi,4)
458be9:	6a 00                	push   $0x0
458beb:	ff 15 3c f0 48 00    	call   *0x48f03c
458bf1:	85 c0                	test   %eax,%eax
458bf3:	74 48                	je     0x458c3d
458bf5:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
458bf9:	83 3e 00             	cmpl   $0x0,(%esi)
458bfc:	76 3f                	jbe    0x458c3d
458bfe:	8b 7d ec             	mov    -0x14(%ebp),%edi
458c01:	8d 46 04             	lea    0x4(%esi),%eax
458c04:	89 45 fc             	mov    %eax,-0x4(%ebp)
458c07:	6a 08                	push   $0x8
458c09:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
458c0c:	51                   	push   %ecx
458c0d:	50                   	push   %eax
458c0e:	e8 b1 8a fc ff       	call   0x4216c4
458c13:	83 c4 0c             	add    $0xc,%esp
458c16:	85 c0                	test   %eax,%eax
458c18:	75 02                	jne    0x458c1c
458c1a:	b3 01                	mov    $0x1,%bl
458c1c:	8b 45 fc             	mov    -0x4(%ebp),%eax
458c1f:	47                   	inc    %edi
458c20:	83 c0 0c             	add    $0xc,%eax
458c23:	89 45 fc             	mov    %eax,-0x4(%ebp)
458c26:	3b 3e                	cmp    (%esi),%edi
458c28:	72 dd                	jb     0x458c07
458c2a:	8b 7d f8             	mov    -0x8(%ebp),%edi
458c2d:	84 db                	test   %bl,%bl
458c2f:	74 0c                	je     0x458c3d
458c31:	8b 45 f4             	mov    -0xc(%ebp),%eax
458c34:	47                   	inc    %edi
458c35:	89 7d f8             	mov    %edi,-0x8(%ebp)
458c38:	3b 78 04             	cmp    0x4(%eax),%edi
458c3b:	72 a1                	jb     0x458bde
458c3d:	85 f6                	test   %esi,%esi
458c3f:	74 10                	je     0x458c51
458c41:	56                   	push   %esi
458c42:	6a 00                	push   $0x0
458c44:	ff 15 74 f1 48 00    	call   *0x48f174
458c4a:	50                   	push   %eax
458c4b:	ff 15 78 f1 48 00    	call   *0x48f178
458c51:	5f                   	pop    %edi
458c52:	5e                   	pop    %esi
458c53:	8a c3                	mov    %bl,%al
458c55:	5b                   	pop    %ebx
458c56:	8b e5                	mov    %ebp,%esp
458c58:	5d                   	pop    %ebp
458c59:	c3                   	ret
458c5a:	56                   	push   %esi
458c5b:	8d 71 0c             	lea    0xc(%ecx),%esi
458c5e:	56                   	push   %esi
458c5f:	6a 00                	push   $0x0
458c61:	6a 28                	push   $0x28
458c63:	ff 15 58 f3 48 00    	call   *0x48f358
458c69:	50                   	push   %eax
458c6a:	ff 15 34 f0 48 00    	call   *0x48f034
458c70:	85 c0                	test   %eax,%eax
458c72:	75 16                	jne    0x458c8a
458c74:	56                   	push   %esi