46ac90:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46ac93:	53                   	push   %ebx
46ac94:	53                   	push   %ebx
46ac95:	8b 1b                	mov    (%ebx),%ebx
46ac97:	85 db                	test   %ebx,%ebx
46ac99:	74 09                	je     0x46aca4
46ac9b:	53                   	push   %ebx
46ac9c:	e8 03 59 03 00       	call   0x4a05a4
46aca1:	83 c4 04             	add    $0x4,%esp
46aca4:	5b                   	pop    %ebx
46aca5:	e8 fa 58 03 00       	call   0x4a05a4
46acaa:	83 c4 04             	add    $0x4,%esp
46acad:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46acb0:	85 db                	test   %ebx,%ebx
46acb2:	74 09                	je     0x46acbd
46acb4:	53                   	push   %ebx
46acb5:	e8 ea 58 03 00       	call   0x4a05a4
46acba:	83 c4 04             	add    $0x4,%esp
46acbd:	58                   	pop    %eax
46acbe:	8b e5                	mov    %ebp,%esp
46acc0:	5d                   	pop    %ebp
46acc1:	c2 2c 00             	ret    $0x2c
46acc4:	55                   	push   %ebp
46acc5:	8b ec                	mov    %esp,%ebp
46acc7:	81 ec 44 00 00 00    	sub    $0x44,%esp
46accd:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
46acd4:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
46acdb:	6a 01                	push   $0x1
46acdd:	ff 75 0c             	push   0xc(%ebp)
46ace0:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
46ace7:	6a 00                	push   $0x0
46ace9:	ff 75 f4             	push   -0xc(%ebp)
46acec:	ff 75 08             	push   0x8(%ebp)
46acef:	8b 04 24             	mov    (%esp),%eax
46acf2:	8b 00                	mov    (%eax),%eax
46acf4:	8b 00                	mov    (%eax),%eax
46acf6:	ff 90 90 01 00 00    	call   *0x190(%eax)
46acfc:	85 c0                	test   %eax,%eax
46acfe:	0f 84 24 00 00 00    	je     0x46ad28
46ad04:	ff 75 08             	push   0x8(%ebp)
46ad07:	8b 04 24             	mov    (%esp),%eax
46ad0a:	8b 00                	mov    (%eax),%eax
46ad0c:	8b 00                	mov    (%eax),%eax
46ad0e:	ff 90 c4 01 00 00    	call   *0x1c4(%eax)
46ad14:	89 45 e8             	mov    %eax,-0x18(%ebp)
46ad17:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
46ad1b:	0f 8e 07 00 00 00    	jle    0x46ad28
46ad21:	b8 01 00 00 00       	mov    $0x1,%eax
46ad26:	eb 05                	jmp    0x46ad2d
46ad28:	b8 00 00 00 00       	mov    $0x0,%eax
46ad2d:	85 c0                	test   %eax,%eax
46ad2f:	0f 84 74 06 00 00    	je     0x46b3a9
46ad35:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ad38:	8b 1b                	mov    (%ebx),%ebx
46ad3a:	81 c3 58 01 00 00    	add    $0x158,%ebx
46ad40:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46ad43:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ad46:	8b 1b                	mov    (%ebx),%ebx
46ad48:	81 c3 58 01 00 00    	add    $0x158,%ebx
46ad4e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46ad51:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ad54:	8b 1b                	mov    (%ebx),%ebx
46ad56:	8b 9b 20 01 00 00    	mov    0x120(%ebx),%ebx
46ad5c:	e8 92 89 f9 ff       	call   0x4036f3
46ad61:	53                   	push   %ebx
46ad62:	51                   	push   %ecx
46ad63:	8b 45 0c             	mov    0xc(%ebp),%eax
46ad66:	48                   	dec    %eax
46ad67:	79 17                	jns    0x46ad80
46ad69:	68 89 00 00 00       	push   $0x89
46ad6e:	68 9a d1 03 04       	push   $0x403d19a
46ad73:	68 04 00 00 00       	push   $0x4
46ad78:	e8 2d 58 03 00       	call   0x4a05aa
46ad7d:	83 c4 0c             	add    $0xc,%esp
46ad80:	59                   	pop    %ecx
46ad81:	5b                   	pop    %ebx
46ad82:	3b c1                	cmp    %ecx,%eax
46ad84:	7c 17                	jl     0x46ad9d
46ad86:	68 89 00 00 00       	push   $0x89
46ad8b:	68 9a d1 03 04       	push   $0x403d19a
46ad90:	68 01 00 00 00       	push   $0x1
46ad95:	e8 10 58 03 00       	call   0x4a05aa
46ad9a:	83 c4 0c             	add    $0xc,%esp
46ad9d:	c1 e0 02             	shl    $0x2,%eax
46ada0:	03 d8                	add    %eax,%ebx
46ada2:	8b 1b                	mov    (%ebx),%ebx
46ada4:	83 c3 0c             	add    $0xc,%ebx
46ada7:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46adaa:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46adad:	db 03                	fildl  (%ebx)
46adaf:	dd 5d e4             	fstpl  -0x1c(%ebp)
46adb2:	dd 45 e4             	fldl   -0x1c(%ebp)
46adb5:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46adb8:	db 03                	fildl  (%ebx)
46adba:	dd 5d dc             	fstpl  -0x24(%ebp)
46adbd:	dc 65 dc             	fsubl  -0x24(%ebp)
46adc0:	dd 5d d4             	fstpl  -0x2c(%ebp)
46adc3:	dd 45 d4             	fldl   -0x2c(%ebp)
46adc6:	e8 24 64 f9 ff       	call   0x4011ef
46adcb:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46adce:	89 03                	mov    %eax,(%ebx)
46add0:	8b 5d 08             	mov    0x8(%ebp),%ebx
46add3:	8b 1b                	mov    (%ebx),%ebx
46add5:	81 c3 2c 01 00 00    	add    $0x12c,%ebx
46addb:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46adde:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ade1:	8b 1b                	mov    (%ebx),%ebx
46ade3:	81 c3 2c 01 00 00    	add    $0x12c,%ebx
46ade9:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46adec:	8b 5d 08             	mov    0x8(%ebp),%ebx
46adef:	8b 1b                	mov    (%ebx),%ebx
46adf1:	8b 9b 20 01 00 00    	mov    0x120(%ebx),%ebx
46adf7:	e8 f7 88 f9 ff       	call   0x4036f3
46adfc:	53                   	push   %ebx
46adfd:	51                   	push   %ecx
46adfe:	8b 45 0c             	mov    0xc(%ebp),%eax
46ae01:	48                   	dec    %eax
46ae02:	79 17                	jns    0x46ae1b
46ae04:	68 d4 00 00 00       	push   $0xd4
46ae09:	68 9a d1 03 04       	push   $0x403d19a
46ae0e:	68 04 00 00 00       	push   $0x4
46ae13:	e8 92 57 03 00       	call   0x4a05aa
46ae18:	83 c4 0c             	add    $0xc,%esp
46ae1b:	59                   	pop    %ecx
46ae1c:	5b                   	pop    %ebx
46ae1d:	3b c1                	cmp    %ecx,%eax
46ae1f:	7c 17                	jl     0x46ae38
46ae21:	68 d4 00 00 00       	push   $0xd4
46ae26:	68 9a d1 03 04       	push   $0x403d19a
46ae2b:	68 01 00 00 00       	push   $0x1
46ae30:	e8 75 57 03 00       	call   0x4a05aa
46ae35:	83 c4 0c             	add    $0xc,%esp
46ae38:	c1 e0 02             	shl    $0x2,%eax
46ae3b:	03 d8                	add    %eax,%ebx
46ae3d:	8b 1b                	mov    (%ebx),%ebx
46ae3f:	83 c3 0c             	add    $0xc,%ebx
46ae42:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46ae45:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46ae48:	db 03                	fildl  (%ebx)
46ae4a:	dd 5d e4             	fstpl  -0x1c(%ebp)
46ae4d:	dd 45 e4             	fldl   -0x1c(%ebp)
46ae50:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46ae53:	db 03                	fildl  (%ebx)
46ae55:	dd 5d dc             	fstpl  -0x24(%ebp)
46ae58:	dc 65 dc             	fsubl  -0x24(%ebp)
46ae5b:	dd 5d d4             	fstpl  -0x2c(%ebp)
46ae5e:	dd 45 d4             	fldl   -0x2c(%ebp)
46ae61:	e8 89 63 f9 ff       	call   0x4011ef
46ae66:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46ae69:	89 03                	mov    %eax,(%ebx)
46ae6b:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ae6e:	8b 1b                	mov    (%ebx),%ebx
46ae70:	81 c3 2c 01 00 00    	add    $0x12c,%ebx
46ae76:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46ae79:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46ae7c:	83 3b 00             	cmpl   $0x0,(%ebx)
46ae7f:	0f 8d 17 00 00 00    	jge    0x46ae9c
46ae85:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ae88:	8b 1b                	mov    (%ebx),%ebx
46ae8a:	81 c3 2c 01 00 00    	add    $0x12c,%ebx
46ae90:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46ae93:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46ae96:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
46ae9c:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ae9f:	8b 1b                	mov    (%ebx),%ebx
46aea1:	81 c3 7c 01 00 00    	add    $0x17c,%ebx
46aea7:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46aeaa:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aead:	8b 1b                	mov    (%ebx),%ebx
46aeaf:	81 c3 2c 01 00 00    	add    $0x12c,%ebx
46aeb5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46aeb8:	6a 01                	push   $0x1
46aeba:	68 00 00 00 00       	push   $0x0
46aebf:	6a 01                	push   $0x1
46aec1:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46aec4:	ff 33                	push   (%ebx)
46aec6:	ff 75 f4             	push   -0xc(%ebp)
46aec9:	8b 04 24             	mov    (%esp),%eax
46aecc:	8b 00                	mov    (%eax),%eax
46aece:	8b 00                	mov    (%eax),%eax
46aed0:	ff 90 94 01 00 00    	call   *0x194(%eax)
46aed6:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aed9:	8b 1b                	mov    (%ebx),%ebx
46aedb:	81 c3 7c 01 00 00    	add    $0x17c,%ebx
46aee1:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46aee4:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aee7:	8b 1b                	mov    (%ebx),%ebx
46aee9:	81 c3 58 01 00 00    	add    $0x158,%ebx
46aeef:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46aef2:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aef5:	8b 1b                	mov    (%ebx),%ebx
46aef7:	81 c3 78 01 00 00    	add    $0x178,%ebx
46aefd:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46af00:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
46af07:	6a 00                	push   $0x0
46af09:	ff 75 e8             	push   -0x18(%ebp)
46af0c:	ff 75 ec             	push   -0x14(%ebp)
46af0f:	8b 04 24             	mov    (%esp),%eax
46af12:	8b 00                	mov    (%eax),%eax
46af14:	8b 00                	mov    (%eax),%eax
46af16:	ff 90 ac 00 00 00    	call   *0xac(%eax)
46af1c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46af1f:	8b 5d 08             	mov    0x8(%ebp),%ebx
46af22:	8b 1b                	mov    (%ebx),%ebx
46af24:	81 c3 78 01 00 00    	add    $0x178,%ebx
46af2a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
46af2d:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
46af34:	6a 00                	push   $0x0
46af36:	ff 75 dc             	push   -0x24(%ebp)
46af39:	ff 75 e0             	push   -0x20(%ebp)
46af3c:	8b 04 24             	mov    (%esp),%eax
46af3f:	8b 00                	mov    (%eax),%eax
46af41:	8b 00                	mov    (%eax),%eax
46af43:	ff 90 bc 00 00 00    	call   *0xbc(%eax)
46af49:	89 45 d8             	mov    %eax,-0x28(%ebp)
46af4c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
46af50:	0f 84 08 00 00 00    	je     0x46af5e
46af56:	8b 45 d8             	mov    -0x28(%ebp),%eax
46af59:	e9 05 00 00 00       	jmp    0x46af63
46af5e:	b8 00 00 00 00       	mov    $0x0,%eax
46af63:	89 45 d4             	mov    %eax,-0x2c(%ebp)
46af66:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46af69:	db 03                	fildl  (%ebx)
46af6b:	dd 5d cc             	fstpl  -0x34(%ebp)
46af6e:	dd 45 cc             	fldl   -0x34(%ebp)
46af71:	db 45 d4             	fildl  -0x2c(%ebp)
46af74:	dd 5d c4             	fstpl  -0x3c(%ebp)
46af77:	dc 45 c4             	faddl  -0x3c(%ebp)
46af7a:	dd 5d bc             	fstpl  -0x44(%ebp)
46af7d:	6a 01                	push   $0x1
46af7f:	68 01 00 00 00       	push   $0x1
46af84:	6a 01                	push   $0x1
46af86:	dd 45 bc             	fldl   -0x44(%ebp)
46af89:	e8 61 62 f9 ff       	call   0x4011ef
46af8e:	50                   	push   %eax
46af8f:	ff 75 f4             	push   -0xc(%ebp)
46af92:	8b 04 24             	mov    (%esp),%eax
46af95:	8b 00                	mov    (%eax),%eax
46af97:	8b 00                	mov    (%eax),%eax
46af99:	ff 90 9c 01 00 00    	call   *0x19c(%eax)
46af9f:	8b 5d 08             	mov    0x8(%ebp),%ebx
46afa2:	8b 1b                	mov    (%ebx),%ebx
46afa4:	81 c3 20 01 00 00    	add    $0x120,%ebx
46afaa:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46afad:	ff 75 f4             	push   -0xc(%ebp)
46afb0:	6a 04                	push   $0x4
46afb2:	b8 02 00 00 00       	mov    $0x2,%eax
46afb7:	e8 b4 5e 03 00       	call   0x4a0e70
46afbc:	83 c4 08             	add    $0x8,%esp
46afbf:	8b 45 0c             	mov    0xc(%ebp),%eax
46afc2:	48                   	dec    %eax
46afc3:	0f 8c bd 00 00 00    	jl     0x46b086
46afc9:	89 45 f0             	mov    %eax,-0x10(%ebp)
46afcc:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46afcf:	8b 1b                	mov    (%ebx),%ebx
46afd1:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46afd4:	e8 1a 87 f9 ff       	call   0x4036f3
46afd9:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46afdc:	2b 4d f0             	sub    -0x10(%ebp),%ecx
46afdf:	0f 8e a1 00 00 00    	jle    0x46b086
46afe5:	83 f9 01             	cmp    $0x1,%ecx
46afe8:	7e 05                	jle    0x46afef
46afea:	b9 01 00 00 00       	mov    $0x1,%ecx
46afef:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46aff2:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
46aff6:	0f 8e 8a 00 00 00    	jle    0x46b086
46affc:	8b 7d e8             	mov    -0x18(%ebp),%edi
46afff:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46b002:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
46b008:	83 c7 04             	add    $0x4,%edi
46b00b:	8b c1                	mov    %ecx,%eax
46b00d:	2b 45 ec             	sub    -0x14(%ebp),%eax
46b010:	89 07                	mov    %eax,(%edi)
46b012:	83 c7 04             	add    $0x4,%edi
46b015:	3b fb                	cmp    %ebx,%edi
46b017:	74 04                	je     0x46b01d
46b019:	8b f3                	mov    %ebx,%esi
46b01b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46b01d:	8b 7d e8             	mov    -0x18(%ebp),%edi
46b020:	83 c7 08             	add    $0x8,%edi
46b023:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b026:	c1 e0 02             	shl    $0x2,%eax
46b029:	03 f8                	add    %eax,%edi
46b02b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46b02e:	8b df                	mov    %edi,%ebx
46b030:	57                   	push   %edi
46b031:	51                   	push   %ecx
46b032:	53                   	push   %ebx
46b033:	8b 1b                	mov    (%ebx),%ebx
46b035:	53                   	push   %ebx
46b036:	53                   	push   %ebx
46b037:	8b 1b                	mov    (%ebx),%ebx
46b039:	85 db                	test   %ebx,%ebx
46b03b:	74 09                	je     0x46b046
46b03d:	53                   	push   %ebx
46b03e:	e8 61 55 03 00       	call   0x4a05a4
46b043:	83 c4 04             	add    $0x4,%esp
46b046:	5b                   	pop    %ebx
46b047:	e8 58 55 03 00       	call   0x4a05a4
46b04c:	83 c4 04             	add    $0x4,%esp
46b04f:	5b                   	pop    %ebx
46b050:	59                   	pop    %ecx
46b051:	83 c3 04             	add    $0x4,%ebx
46b054:	49                   	dec    %ecx
46b055:	75 da                	jne    0x46b031
46b057:	5f                   	pop    %edi
46b058:	8b 45 ec             	mov    -0x14(%ebp),%eax
46b05b:	c1 e0 02             	shl    $0x2,%eax
46b05e:	8b f7                	mov    %edi,%esi
46b060:	03 f0                	add    %eax,%esi
46b062:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46b065:	2b 4d f0             	sub    -0x10(%ebp),%ecx
46b068:	2b 4d ec             	sub    -0x14(%ebp),%ecx
46b06b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46b06d:	2b 7d e8             	sub    -0x18(%ebp),%edi
46b070:	57                   	push   %edi
46b071:	ff 75 e8             	push   -0x18(%ebp)
46b074:	e8 37 55 03 00       	call   0x4a05b0
46b079:	83 c4 08             	add    $0x8,%esp
46b07c:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46b07f:	89 03                	mov    %eax,(%ebx)
46b081:	8b 45 ec             	mov    -0x14(%ebp),%eax
46b084:	eb 02                	jmp    0x46b088
46b086:	33 c0                	xor    %eax,%eax
46b088:	ff 75 08             	push   0x8(%ebp)
46b08b:	8b 04 24             	mov    (%esp),%eax
46b08e:	8b 00                	mov    (%eax),%eax
46b090:	8b 00                	mov    (%eax),%eax
46b092:	ff 90 f8 01 00 00    	call   *0x1f8(%eax)
46b098:	33 c9                	xor    %ecx,%ecx
46b09a:	50                   	push   %eax
46b09b:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b09e:	8b d8                	mov    %eax,%ebx
46b0a0:	58                   	pop    %eax
46b0a1:	41                   	inc    %ecx
46b0a2:	51                   	push   %ecx
46b0a3:	53                   	push   %ebx
46b0a4:	89 0b                	mov    %ecx,(%ebx)
46b0a6:	50                   	push   %eax
46b0a7:	3b c8                	cmp    %eax,%ecx
46b0a9:	0f 8f 33 02 00 00    	jg     0x46b2e2
46b0af:	8b 5d 08             	mov    0x8(%ebp),%ebx
46b0b2:	8b 1b                	mov    (%ebx),%ebx
46b0b4:	8b 9b 1c 01 00 00    	mov    0x11c(%ebx),%ebx
46b0ba:	e8 34 86 f9 ff       	call   0x4036f3
46b0bf:	53                   	push   %ebx
46b0c0:	51                   	push   %ecx
46b0c1:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b0c4:	48                   	dec    %eax
46b0c5:	79 17                	jns    0x46b0de