46ae2f:	8b de                	mov    %esi,%ebx
46ae31:	57                   	push   %edi
46ae32:	8b fe                	mov    %esi,%edi
46ae34:	89 54 24 18          	mov    %edx,0x18(%esp)
46ae38:	8b c1                	mov    %ecx,%eax
46ae3a:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
46ae3e:	c1 e0 05             	shl    $0x5,%eax
46ae41:	8b f1                	mov    %ecx,%esi
46ae43:	c1 e6 05             	shl    $0x5,%esi
46ae46:	89 44 24 10          	mov    %eax,0x10(%esp)
46ae4a:	89 74 24 14          	mov    %esi,0x14(%esp)
46ae4e:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
46ae54:	8b 54 31 04          	mov    0x4(%ecx,%esi,1),%edx
46ae58:	85 d2                	test   %edx,%edx
46ae5a:	74 59                	je     0x46aeb5
46ae5c:	8b 44 31 08          	mov    0x8(%ecx,%esi,1),%eax
46ae60:	2b c2                	sub    %edx,%eax
46ae62:	c1 f8 02             	sar    $0x2,%eax
46ae65:	3b d8                	cmp    %eax,%ebx
46ae67:	73 4c                	jae    0x46aeb5
46ae69:	8b 44 24 10          	mov    0x10(%esp),%eax
46ae6d:	8b 54 08 14          	mov    0x14(%eax,%ecx,1),%edx
46ae71:	85 d2                	test   %edx,%edx
46ae73:	89 54 24 0c          	mov    %edx,0xc(%esp)
46ae77:	8b 54 31 04          	mov    0x4(%ecx,%esi,1),%edx
46ae7b:	74 16                	je     0x46ae93
46ae7d:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
46ae81:	2b 44 24 0c          	sub    0xc(%esp),%eax
46ae85:	c1 f8 02             	sar    $0x2,%eax
46ae88:	3b c3                	cmp    %ebx,%eax
46ae8a:	76 07                	jbe    0x46ae93
46ae8c:	8b 44 31 14          	mov    0x14(%ecx,%esi,1),%eax
46ae90:	03 3c 98             	add    (%eax,%ebx,4),%edi
46ae93:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46ae97:	50                   	push   %eax
46ae98:	8b 04 9a             	mov    (%edx,%ebx,4),%eax
46ae9b:	ff 70 20             	push   0x20(%eax)
46ae9e:	ff 15 e8 7d 4a 00    	call   *0x4a7de8
46aea4:	8b 44 24 34          	mov    0x34(%esp),%eax
46aea8:	2b 44 24 2c          	sub    0x2c(%esp),%eax
46aeac:	8b 54 24 18          	mov    0x18(%esp),%edx
46aeb0:	03 f8                	add    %eax,%edi
46aeb2:	43                   	inc    %ebx
46aeb3:	eb 99                	jmp    0x46ae4e
46aeb5:	8b 44 24 10          	mov    0x10(%esp),%eax
46aeb9:	6a 00                	push   $0x0
46aebb:	5e                   	pop    %esi
46aebc:	8b 5c 08 14          	mov    0x14(%eax,%ecx,1),%ebx
46aec0:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
46aec4:	85 db                	test   %ebx,%ebx
46aec6:	75 04                	jne    0x46aecc
46aec8:	8b de                	mov    %esi,%ebx
46aeca:	eb 0b                	jmp    0x46aed7
46aecc:	8b 5c 08 18          	mov    0x18(%eax,%ecx,1),%ebx
46aed0:	2b 5c 08 14          	sub    0x14(%eax,%ecx,1),%ebx
46aed4:	c1 fb 02             	sar    $0x2,%ebx
46aed7:	85 d2                	test   %edx,%edx
46aed9:	75 04                	jne    0x46aedf
46aedb:	8b c6                	mov    %esi,%eax
46aedd:	eb 0d                	jmp    0x46aeec
46aedf:	8b 44 24 14          	mov    0x14(%esp),%eax
46aee3:	8b 44 01 08          	mov    0x8(%ecx,%eax,1),%eax
46aee7:	2b c2                	sub    %edx,%eax
46aee9:	c1 f8 02             	sar    $0x2,%eax
46aeec:	3b d8                	cmp    %eax,%ebx
46aeee:	76 18                	jbe    0x46af08
46aef0:	85 d2                	test   %edx,%edx
46aef2:	74 0d                	je     0x46af01
46aef4:	8b 44 24 14          	mov    0x14(%esp),%eax
46aef8:	8b 74 01 08          	mov    0x8(%ecx,%eax,1),%esi
46aefc:	2b f2                	sub    %edx,%esi
46aefe:	c1 fe 02             	sar    $0x2,%esi
46af01:	8b 44 24 0c          	mov    0xc(%esp),%eax
46af05:	03 3c b0             	add    (%eax,%esi,4),%edi
46af08:	8b 74 24 1c          	mov    0x1c(%esp),%esi
46af0c:	8d 44 24 28          	lea    0x28(%esp),%eax
46af10:	8b 4c 24 18          	mov    0x18(%esp),%ecx
46af14:	50                   	push   %eax
46af15:	8d 44 24 24          	lea    0x24(%esp),%eax
46af19:	50                   	push   %eax
46af1a:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46af1e:	50                   	push   %eax
46af1f:	56                   	push   %esi
46af20:	ff 15 2c 74 4a 00    	call   *0x4a742c
46af26:	8b 4c 24 18          	mov    0x18(%esp),%ecx
46af2a:	57                   	push   %edi
46af2b:	ff 74 24 24          	push   0x24(%esp)
46af2f:	ff 74 24 2c          	push   0x2c(%esp)
46af33:	56                   	push   %esi
46af34:	ff 15 30 74 4a 00    	call   *0x4a7430
46af3a:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
46af3e:	5f                   	pop    %edi
46af3f:	5e                   	pop    %esi
46af40:	5b                   	pop    %ebx
46af41:	33 cc                	xor    %esp,%ecx
46af43:	e8 b8 4f 02 00       	call   0x48ff00
46af48:	8b e5                	mov    %ebp,%esp
46af4a:	5d                   	pop    %ebp
46af4b:	c2 04 00             	ret    $0x4
46af4e:	8b ff                	mov    %edi,%edi
46af50:	55                   	push   %ebp
46af51:	8b ec                	mov    %esp,%ebp
46af53:	56                   	push   %esi
46af54:	8b b1 84 00 00 00    	mov    0x84(%ecx),%esi
46af5a:	33 d2                	xor    %edx,%edx
46af5c:	85 f6                	test   %esi,%esi
46af5e:	74 1b                	je     0x46af7b
46af60:	8b 81 88 00 00 00    	mov    0x88(%ecx),%eax
46af66:	2b c6                	sub    %esi,%eax
46af68:	8b 75 08             	mov    0x8(%ebp),%esi
46af6b:	c1 f8 05             	sar    $0x5,%eax
46af6e:	3b f0                	cmp    %eax,%esi
46af70:	73 09                	jae    0x46af7b
46af72:	8b 81 94 00 00 00    	mov    0x94(%ecx),%eax
46af78:	8b 14 b0             	mov    (%eax,%esi,4),%edx
46af7b:	8b c2                	mov    %edx,%eax
46af7d:	5e                   	pop    %esi
46af7e:	5d                   	pop    %ebp
46af7f:	c2 04 00             	ret    $0x4
46af82:	8b ff                	mov    %edi,%edi
46af84:	55                   	push   %ebp
46af85:	8b ec                	mov    %esp,%ebp
46af87:	83 ec 0c             	sub    $0xc,%esp
46af8a:	53                   	push   %ebx
46af8b:	8b d9                	mov    %ecx,%ebx
46af8d:	56                   	push   %esi
46af8e:	57                   	push   %edi
46af8f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
46af92:	8b 7b 08             	mov    0x8(%ebx),%edi
46af95:	8b 73 04             	mov    0x4(%ebx),%esi
46af98:	3b f7                	cmp    %edi,%esi
46af9a:	74 16                	je     0x46afb2
46af9c:	8b de                	mov    %esi,%ebx
46af9e:	8b cb                	mov    %ebx,%ecx
46afa0:	e8 c0 2e fb ff       	call   0x41de65
46afa5:	83 c3 20             	add    $0x20,%ebx
46afa8:	3b df                	cmp    %edi,%ebx
46afaa:	75 f2                	jne    0x46af9e
46afac:	8b 45 f8             	mov    -0x8(%ebp),%eax
46afaf:	89 70 08             	mov    %esi,0x8(%eax)
46afb2:	5f                   	pop    %edi
46afb3:	5e                   	pop    %esi
46afb4:	5b                   	pop    %ebx
46afb5:	c9                   	leave
46afb6:	c3                   	ret
46afb7:	6a 10                	push   $0x10
46afb9:	b8 a6 53 49 00       	mov    $0x4953a6,%eax
46afbe:	e8 79 55 02 00       	call   0x49053c
46afc3:	8b f9                	mov    %ecx,%edi
46afc5:	8b 5d 08             	mov    0x8(%ebp),%ebx
46afc8:	81 fb ff ff ff 07    	cmp    $0x7ffffff,%ebx
46afce:	0f 87 a5 00 00 00    	ja     0x46b079
46afd4:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
46afd8:	75 06                	jne    0x46afe0
46afda:	33 f6                	xor    %esi,%esi
46afdc:	8b c6                	mov    %esi,%eax
46afde:	eb 0b                	jmp    0x46afeb
46afe0:	8b 47 0c             	mov    0xc(%edi),%eax
46afe3:	2b 47 04             	sub    0x4(%edi),%eax
46afe6:	c1 f8 05             	sar    $0x5,%eax
46afe9:	33 f6                	xor    %esi,%esi
46afeb:	3b c3                	cmp    %ebx,%eax
46afed:	73 70                	jae    0x46b05f
46afef:	53                   	push   %ebx
46aff0:	e8 82 01 00 00       	call   0x46b177
46aff5:	89 75 fc             	mov    %esi,-0x4(%ebp)
46aff8:	8b c8                	mov    %eax,%ecx
46affa:	ff 75 e4             	push   -0x1c(%ebp)
46affd:	89 45 e8             	mov    %eax,-0x18(%ebp)
46b000:	ff 75 e4             	push   -0x1c(%ebp)
46b003:	ff 77 08             	push   0x8(%edi)
46b006:	ff 77 04             	push   0x4(%edi)
46b009:	e8 74 04 00 00       	call   0x46b482
46b00e:	8b 47 04             	mov    0x4(%edi),%eax
46b011:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b014:	85 c0                	test   %eax,%eax
46b016:	74 31                	je     0x46b049
46b018:	8b 4f 08             	mov    0x8(%edi),%ecx
46b01b:	8b f1                	mov    %ecx,%esi
46b01d:	2b f0                	sub    %eax,%esi
46b01f:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46b022:	c1 fe 05             	sar    $0x5,%esi
46b025:	3b c1                	cmp    %ecx,%eax
46b027:	74 18                	je     0x46b041
46b029:	8b c8                	mov    %eax,%ecx
46b02b:	e8 35 2e fb ff       	call   0x41de65
46b030:	8b 45 ec             	mov    -0x14(%ebp),%eax
46b033:	83 c0 20             	add    $0x20,%eax
46b036:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b039:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
46b03c:	75 eb                	jne    0x46b029
46b03e:	8b 47 04             	mov    0x4(%edi),%eax
46b041:	50                   	push   %eax
46b042:	ff 15 10 74 4a 00    	call   *0x4a7410
46b048:	59                   	pop    %ecx
46b049:	8b 45 e8             	mov    -0x18(%ebp),%eax
46b04c:	c1 e3 05             	shl    $0x5,%ebx
46b04f:	03 d8                	add    %eax,%ebx
46b051:	c1 e6 05             	shl    $0x5,%esi
46b054:	03 f0                	add    %eax,%esi
46b056:	89 5f 0c             	mov    %ebx,0xc(%edi)
46b059:	89 77 08             	mov    %esi,0x8(%edi)
46b05c:	89 47 04             	mov    %eax,0x4(%edi)
46b05f:	e8 3d 54 02 00       	call   0x4904a1
46b064:	c2 04 00             	ret    $0x4
46b067:	51                   	push   %ecx
46b068:	ff 75 e8             	push   -0x18(%ebp)
46b06b:	e8 3f 29 fb ff       	call   0x41d9af
46b070:	33 f6                	xor    %esi,%esi
46b072:	56                   	push   %esi
46b073:	56                   	push   %esi
46b074:	e8 22 54 02 00       	call   0x49049b
46b079:	e8 b4 28 fb ff       	call   0x41d932
46b07e:	cc                   	int3
46b07f:	8b ff                	mov    %edi,%edi
46b081:	56                   	push   %esi
46b082:	57                   	push   %edi
46b083:	8b f9                	mov    %ecx,%edi
46b085:	8b 77 04             	mov    0x4(%edi),%esi
46b088:	85 f6                	test   %esi,%esi
46b08a:	74 22                	je     0x46b0ae
46b08c:	53                   	push   %ebx
46b08d:	8b 5f 08             	mov    0x8(%edi),%ebx
46b090:	3b f3                	cmp    %ebx,%esi
46b092:	74 11                	je     0x46b0a5
46b094:	8b ce                	mov    %esi,%ecx
46b096:	e8 ca 2d fb ff       	call   0x41de65
46b09b:	83 c6 20             	add    $0x20,%esi
46b09e:	3b f3                	cmp    %ebx,%esi
46b0a0:	75 f2                	jne    0x46b094
46b0a2:	8b 77 04             	mov    0x4(%edi),%esi
46b0a5:	56                   	push   %esi
46b0a6:	ff 15 10 74 4a 00    	call   *0x4a7410
46b0ac:	59                   	pop    %ecx
46b0ad:	5b                   	pop    %ebx
46b0ae:	33 c0                	xor    %eax,%eax
46b0b0:	89 47 04             	mov    %eax,0x4(%edi)
46b0b3:	89 47 08             	mov    %eax,0x8(%edi)
46b0b6:	89 47 0c             	mov    %eax,0xc(%edi)
46b0b9:	5f                   	pop    %edi
46b0ba:	5e                   	pop    %esi
46b0bb:	c3                   	ret
46b0bc:	6a 08                	push   $0x8
46b0be:	b8 c1 53 49 00       	mov    $0x4953c1,%eax
46b0c3:	e8 74 54 02 00       	call   0x49053c
46b0c8:	8b f9                	mov    %ecx,%edi
46b0ca:	8b 5d 08             	mov    0x8(%ebp),%ebx
46b0cd:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
46b0d3:	77 7d                	ja     0x46b152
46b0d5:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
46b0d9:	75 06                	jne    0x46b0e1
46b0db:	33 f6                	xor    %esi,%esi
46b0dd:	8b c6                	mov    %esi,%eax
46b0df:	eb 0b                	jmp    0x46b0ec
46b0e1:	8b 47 0c             	mov    0xc(%edi),%eax
46b0e4:	2b 47 04             	sub    0x4(%edi),%eax
46b0e7:	c1 f8 02             	sar    $0x2,%eax
46b0ea:	33 f6                	xor    %esi,%esi
46b0ec:	3b c3                	cmp    %ebx,%eax
46b0ee:	73 48                	jae    0x46b138
46b0f0:	53                   	push   %ebx
46b0f1:	e8 06 2f fb ff       	call   0x41dffc
46b0f6:	89 75 fc             	mov    %esi,-0x4(%ebp)
46b0f9:	8b c8                	mov    %eax,%ecx
46b0fb:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b0fe:	ff 75 ec             	push   -0x14(%ebp)
46b101:	ff 75 ec             	push   -0x14(%ebp)
46b104:	ff 77 08             	push   0x8(%edi)
46b107:	ff 77 04             	push   0x4(%edi)
46b10a:	e8 c5 98 fe ff       	call   0x4549d4
46b10f:	8b 47 04             	mov    0x4(%edi),%eax
46b112:	85 c0                	test   %eax,%eax
46b114:	74 10                	je     0x46b126
46b116:	8b 77 08             	mov    0x8(%edi),%esi
46b119:	2b f0                	sub    %eax,%esi
46b11b:	50                   	push   %eax
46b11c:	c1 fe 02             	sar    $0x2,%esi
46b11f:	ff 15 10 74 4a 00    	call   *0x4a7410
46b125:	59                   	pop    %ecx
46b126:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46b129:	89 4f 04             	mov    %ecx,0x4(%edi)
46b12c:	8d 04 99             	lea    (%ecx,%ebx,4),%eax
46b12f:	89 47 0c             	mov    %eax,0xc(%edi)
46b132:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
46b135:	89 47 08             	mov    %eax,0x8(%edi)
46b138:	e8 64 53 02 00       	call   0x4904a1
46b13d:	c2 04 00             	ret    $0x4
46b140:	51                   	push   %ecx
46b141:	ff 75 ec             	push   -0x14(%ebp)
46b144:	e8 66 28 fb ff       	call   0x41d9af
46b149:	33 f6                	xor    %esi,%esi
46b14b:	56                   	push   %esi
46b14c:	56                   	push   %esi
46b14d:	e8 49 53 02 00       	call   0x49049b
46b152:	e8 db 27 fb ff       	call   0x41d932
46b157:	cc                   	int3
46b158:	8b ff                	mov    %edi,%edi
46b15a:	55                   	push   %ebp
46b15b:	8b ec                	mov    %esp,%ebp
46b15d:	56                   	push   %esi
46b15e:	8b 75 08             	mov    0x8(%ebp),%esi
46b161:	eb 0a                	jmp    0x46b16d
46b163:	8b ce                	mov    %esi,%ecx
46b165:	e8 fb 2c fb ff       	call   0x41de65
46b16a:	83 c6 20             	add    $0x20,%esi
46b16d:	3b 75 0c             	cmp    0xc(%ebp),%esi
46b170:	75 f1                	jne    0x46b163
46b172:	5e                   	pop    %esi
46b173:	5d                   	pop    %ebp
46b174:	c2 08 00             	ret    $0x8
46b177:	8b ff                	mov    %edi,%edi
46b179:	55                   	push   %ebp
46b17a:	8b ec                	mov    %esp,%ebp
46b17c:	8b 4d 08             	mov    0x8(%ebp),%ecx
46b17f:	83 ec 0c             	sub    $0xc,%esp
46b182:	85 c9                	test   %ecx,%ecx
46b184:	75 0f                	jne    0x46b195
46b186:	c1 e1 05             	shl    $0x5,%ecx
46b189:	51                   	push   %ecx
46b18a:	ff 15 14 74 4a 00    	call   *0x4a7414
46b190:	59                   	pop    %ecx
46b191:	c9                   	leave
46b192:	c2 04 00             	ret    $0x4
46b195:	83 c8 ff             	or     $0xffffffff,%eax
46b198:	33 d2                	xor    %edx,%edx
46b19a:	f7 f1                	div    %ecx
46b19c:	83 f8 20             	cmp    $0x20,%eax
46b19f:	73 e5                	jae    0x46b186
46b1a1:	6a 00                	push   $0x0
46b1a3:	8d 4d f4             	lea    -0xc(%ebp),%ecx
46b1a6:	e8 21 13 fb ff       	call   0x41c4cc
46b1ab:	68 4c eb 49 00       	push   $0x49eb4c
46b1b0:	8d 45 f4             	lea    -0xc(%ebp),%eax
46b1b3:	50                   	push   %eax
46b1b4:	e8 e2 52 02 00       	call   0x49049b
46b1b9:	cc                   	int3
46b1ba:	6a 34                	push   $0x34
46b1bc:	b8 e4 53 49 00       	mov    $0x4953e4,%eax
46b1c1:	e8 76 53 02 00       	call   0x49053c
46b1c6:	8b f9                	mov    %ecx,%edi
46b1c8:	89 7d e0             	mov    %edi,-0x20(%ebp)
46b1cb:	ff 75 10             	push   0x10(%ebp)
46b1ce:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46b1d1:	e8 81 f6 ff ff       	call   0x46a857
46b1d6:	33 f6                	xor    %esi,%esi
46b1d8:	89 75 fc             	mov    %esi,-0x4(%ebp)
46b1db:	8b 4f 04             	mov    0x4(%edi),%ecx
46b1de:	85 c9                	test   %ecx,%ecx
46b1e0:	75 06                	jne    0x46b1e8
46b1e2:	8b d6                	mov    %esi,%edx