46ce28:	66 3b c6             	cmp    %si,%ax
46ce2b:	75 f5                	jne    0x46ce22
46ce2d:	2b ca                	sub    %edx,%ecx
46ce2f:	d1 f9                	sar    $1,%ecx
46ce31:	6a 3d                	push   $0x3d
46ce33:	8d 41 01             	lea    0x1(%ecx),%eax
46ce36:	59                   	pop    %ecx
46ce37:	89 45 f8             	mov    %eax,-0x8(%ebp)
46ce3a:	66 39 0b             	cmp    %cx,(%ebx)
46ce3d:	74 38                	je     0x46ce77
46ce3f:	6a 02                	push   $0x2
46ce41:	50                   	push   %eax
46ce42:	e8 0c 54 00 00       	call   0x472253
46ce47:	8b f0                	mov    %eax,%esi
46ce49:	59                   	pop    %ecx
46ce4a:	59                   	pop    %ecx
46ce4b:	85 f6                	test   %esi,%esi
46ce4d:	74 32                	je     0x46ce81
46ce4f:	53                   	push   %ebx
46ce50:	ff 75 f8             	push   -0x8(%ebp)
46ce53:	56                   	push   %esi
46ce54:	e8 0e b0 ff ff       	call   0x467e67
46ce59:	83 c4 0c             	add    $0xc,%esp
46ce5c:	85 c0                	test   %eax,%eax
46ce5e:	75 43                	jne    0x46cea3
46ce60:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ce63:	89 30                	mov    %esi,(%eax)
46ce65:	33 f6                	xor    %esi,%esi
46ce67:	83 c0 04             	add    $0x4,%eax
46ce6a:	56                   	push   %esi
46ce6b:	89 45 fc             	mov    %eax,-0x4(%ebp)
46ce6e:	e8 c6 54 00 00       	call   0x472339
46ce73:	8b 45 f8             	mov    -0x8(%ebp),%eax
46ce76:	59                   	pop    %ecx
46ce77:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
46ce7a:	66 39 33             	cmp    %si,(%ebx)
46ce7d:	75 9e                	jne    0x46ce1d
46ce7f:	eb 12                	jmp    0x46ce93
46ce81:	57                   	push   %edi
46ce82:	e8 58 00 00 00       	call   0x46cedf
46ce87:	33 f6                	xor    %esi,%esi
46ce89:	56                   	push   %esi
46ce8a:	e8 aa 54 00 00       	call   0x472339
46ce8f:	59                   	pop    %ecx
46ce90:	59                   	pop    %ecx
46ce91:	8b fe                	mov    %esi,%edi
46ce93:	56                   	push   %esi
46ce94:	e8 a0 54 00 00       	call   0x472339
46ce99:	59                   	pop    %ecx
46ce9a:	8b c7                	mov    %edi,%eax
46ce9c:	5f                   	pop    %edi
46ce9d:	5e                   	pop    %esi
46ce9e:	5b                   	pop    %ebx
46ce9f:	8b e5                	mov    %ebp,%esp
46cea1:	5d                   	pop    %ebp
46cea2:	c3                   	ret
46cea3:	33 c0                	xor    %eax,%eax
46cea5:	50                   	push   %eax
46cea6:	50                   	push   %eax
46cea7:	50                   	push   %eax
46cea8:	50                   	push   %eax
46cea9:	50                   	push   %eax
46ceaa:	e8 54 fe fd ff       	call   0x44cd03
46ceaf:	cc                   	int3
46ceb0:	8b ff                	mov    %edi,%edi
46ceb2:	55                   	push   %ebp
46ceb3:	8b ec                	mov    %esp,%ebp
46ceb5:	56                   	push   %esi
46ceb6:	8b 75 08             	mov    0x8(%ebp),%esi
46ceb9:	85 f6                	test   %esi,%esi
46cebb:	74 1f                	je     0x46cedc
46cebd:	8b 06                	mov    (%esi),%eax
46cebf:	57                   	push   %edi
46cec0:	8b fe                	mov    %esi,%edi
46cec2:	eb 0c                	jmp    0x46ced0
46cec4:	50                   	push   %eax
46cec5:	e8 6f 54 00 00       	call   0x472339
46ceca:	8d 7f 04             	lea    0x4(%edi),%edi
46cecd:	8b 07                	mov    (%edi),%eax
46cecf:	59                   	pop    %ecx
46ced0:	85 c0                	test   %eax,%eax
46ced2:	75 f0                	jne    0x46cec4
46ced4:	56                   	push   %esi
46ced5:	e8 5f 54 00 00       	call   0x472339
46ceda:	59                   	pop    %ecx
46cedb:	5f                   	pop    %edi
46cedc:	5e                   	pop    %esi
46cedd:	5d                   	pop    %ebp
46cede:	c3                   	ret
46cedf:	8b ff                	mov    %edi,%edi
46cee1:	55                   	push   %ebp
46cee2:	8b ec                	mov    %esp,%ebp
46cee4:	56                   	push   %esi
46cee5:	8b 75 08             	mov    0x8(%ebp),%esi
46cee8:	85 f6                	test   %esi,%esi
46ceea:	74 1f                	je     0x46cf0b
46ceec:	8b 06                	mov    (%esi),%eax
46ceee:	57                   	push   %edi
46ceef:	8b fe                	mov    %esi,%edi
46cef1:	eb 0c                	jmp    0x46ceff
46cef3:	50                   	push   %eax
46cef4:	e8 40 54 00 00       	call   0x472339
46cef9:	8d 7f 04             	lea    0x4(%edi),%edi
46cefc:	8b 07                	mov    (%edi),%eax
46cefe:	59                   	pop    %ecx
46ceff:	85 c0                	test   %eax,%eax
46cf01:	75 f0                	jne    0x46cef3
46cf03:	56                   	push   %esi
46cf04:	e8 30 54 00 00       	call   0x472339
46cf09:	59                   	pop    %ecx
46cf0a:	5f                   	pop    %edi
46cf0b:	5e                   	pop    %esi
46cf0c:	5d                   	pop    %ebp
46cf0d:	c3                   	ret
46cf0e:	e9 7b 14 01 00       	jmp    0x47e38e
46cf13:	e9 f9 14 01 00       	jmp    0x47e411
46cf18:	8b ff                	mov    %edi,%edi
46cf1a:	57                   	push   %edi
46cf1b:	8b 3d 98 b8 4b 00    	mov    0x4bb898,%edi
46cf21:	85 ff                	test   %edi,%edi
46cf23:	75 05                	jne    0x46cf2a
46cf25:	83 c8 ff             	or     $0xffffffff,%eax
46cf28:	5f                   	pop    %edi
46cf29:	c3                   	ret
46cf2a:	53                   	push   %ebx
46cf2b:	56                   	push   %esi
46cf2c:	33 db                	xor    %ebx,%ebx
46cf2e:	eb 51                	jmp    0x46cf81
46cf30:	53                   	push   %ebx
46cf31:	53                   	push   %ebx
46cf32:	53                   	push   %ebx
46cf33:	53                   	push   %ebx
46cf34:	6a ff                	push   $0xffffffff
46cf36:	ff 37                	push   (%edi)
46cf38:	53                   	push   %ebx
46cf39:	53                   	push   %ebx
46cf3a:	ff 15 78 41 49 00    	call   *0x494178
46cf40:	8b d8                	mov    %eax,%ebx
46cf42:	85 db                	test   %ebx,%ebx
46cf44:	74 4c                	je     0x46cf92
46cf46:	6a 01                	push   $0x1
46cf48:	53                   	push   %ebx
46cf49:	e8 05 53 00 00       	call   0x472253
46cf4e:	8b f0                	mov    %eax,%esi
46cf50:	59                   	pop    %ecx
46cf51:	59                   	pop    %ecx
46cf52:	85 f6                	test   %esi,%esi
46cf54:	74 35                	je     0x46cf8b
46cf56:	6a 00                	push   $0x0
46cf58:	6a 00                	push   $0x0
46cf5a:	53                   	push   %ebx
46cf5b:	56                   	push   %esi
46cf5c:	6a ff                	push   $0xffffffff
46cf5e:	ff 37                	push   (%edi)
46cf60:	33 db                	xor    %ebx,%ebx
46cf62:	53                   	push   %ebx
46cf63:	53                   	push   %ebx
46cf64:	ff 15 78 41 49 00    	call   *0x494178
46cf6a:	85 c0                	test   %eax,%eax
46cf6c:	74 1d                	je     0x46cf8b
46cf6e:	53                   	push   %ebx
46cf6f:	56                   	push   %esi
46cf70:	e8 5d 1d 01 00       	call   0x47ecd2
46cf75:	53                   	push   %ebx
46cf76:	e8 be 53 00 00       	call   0x472339
46cf7b:	83 c4 0c             	add    $0xc,%esp
46cf7e:	83 c7 04             	add    $0x4,%edi
46cf81:	39 1f                	cmp    %ebx,(%edi)
46cf83:	75 ab                	jne    0x46cf30
46cf85:	33 c0                	xor    %eax,%eax
46cf87:	5e                   	pop    %esi
46cf88:	5b                   	pop    %ebx
46cf89:	5f                   	pop    %edi
46cf8a:	c3                   	ret
46cf8b:	56                   	push   %esi
46cf8c:	e8 a8 53 00 00       	call   0x472339
46cf91:	59                   	pop    %ecx
46cf92:	83 c8 ff             	or     $0xffffffff,%eax
46cf95:	eb f0                	jmp    0x46cf87
46cf97:	8b ff                	mov    %edi,%edi
46cf99:	57                   	push   %edi
46cf9a:	8b 3d 94 b8 4b 00    	mov    0x4bb894,%edi
46cfa0:	85 ff                	test   %edi,%edi
46cfa2:	75 05                	jne    0x46cfa9
46cfa4:	83 c8 ff             	or     $0xffffffff,%eax
46cfa7:	5f                   	pop    %edi
46cfa8:	c3                   	ret
46cfa9:	53                   	push   %ebx
46cfaa:	56                   	push   %esi
46cfab:	33 db                	xor    %ebx,%ebx
46cfad:	eb 4b                	jmp    0x46cffa
46cfaf:	53                   	push   %ebx
46cfb0:	53                   	push   %ebx
46cfb1:	6a ff                	push   $0xffffffff
46cfb3:	ff 37                	push   (%edi)
46cfb5:	53                   	push   %ebx
46cfb6:	53                   	push   %ebx
46cfb7:	ff 15 74 41 49 00    	call   *0x494174
46cfbd:	8b d8                	mov    %eax,%ebx
46cfbf:	85 db                	test   %ebx,%ebx
46cfc1:	74 48                	je     0x46d00b
46cfc3:	6a 02                	push   $0x2
46cfc5:	53                   	push   %ebx
46cfc6:	e8 88 52 00 00       	call   0x472253
46cfcb:	8b f0                	mov    %eax,%esi
46cfcd:	59                   	pop    %ecx
46cfce:	59                   	pop    %ecx
46cfcf:	85 f6                	test   %esi,%esi
46cfd1:	74 31                	je     0x46d004
46cfd3:	53                   	push   %ebx
46cfd4:	56                   	push   %esi
46cfd5:	6a ff                	push   $0xffffffff
46cfd7:	ff 37                	push   (%edi)
46cfd9:	33 db                	xor    %ebx,%ebx
46cfdb:	53                   	push   %ebx
46cfdc:	53                   	push   %ebx
46cfdd:	ff 15 74 41 49 00    	call   *0x494174
46cfe3:	85 c0                	test   %eax,%eax
46cfe5:	74 1d                	je     0x46d004
46cfe7:	53                   	push   %ebx
46cfe8:	56                   	push   %esi
46cfe9:	e8 ef 1c 01 00       	call   0x47ecdd
46cfee:	53                   	push   %ebx
46cfef:	e8 45 53 00 00       	call   0x472339
46cff4:	83 c4 0c             	add    $0xc,%esp
46cff7:	83 c7 04             	add    $0x4,%edi
46cffa:	39 1f                	cmp    %ebx,(%edi)
46cffc:	75 b1                	jne    0x46cfaf
46cffe:	33 c0                	xor    %eax,%eax
46d000:	5e                   	pop    %esi
46d001:	5b                   	pop    %ebx
46d002:	5f                   	pop    %edi
46d003:	c3                   	ret
46d004:	56                   	push   %esi
46d005:	e8 2f 53 00 00       	call   0x472339
46d00a:	59                   	pop    %ecx
46d00b:	83 c8 ff             	or     $0xffffffff,%eax
46d00e:	eb f0                	jmp    0x46d000
46d010:	8b ff                	mov    %edi,%edi
46d012:	55                   	push   %ebp
46d013:	8b ec                	mov    %esp,%ebp
46d015:	8b 45 0c             	mov    0xc(%ebp),%eax
46d018:	ff 30                	push   (%eax)
46d01a:	8b 45 08             	mov    0x8(%ebp),%eax
46d01d:	ff 30                	push   (%eax)
46d01f:	e8 ae 1c 01 00       	call   0x47ecd2
46d024:	59                   	pop    %ecx
46d025:	59                   	pop    %ecx
46d026:	5d                   	pop    %ebp
46d027:	c3                   	ret
46d028:	8b ff                	mov    %edi,%edi
46d02a:	55                   	push   %ebp
46d02b:	8b ec                	mov    %esp,%ebp
46d02d:	8b 45 0c             	mov    0xc(%ebp),%eax
46d030:	ff 30                	push   (%eax)
46d032:	8b 45 08             	mov    0x8(%ebp),%eax
46d035:	ff 30                	push   (%eax)
46d037:	e8 a1 1c 01 00       	call   0x47ecdd
46d03c:	59                   	pop    %ecx
46d03d:	59                   	pop    %ecx
46d03e:	5d                   	pop    %ebp
46d03f:	c3                   	ret
46d040:	8b ff                	mov    %edi,%edi
46d042:	55                   	push   %ebp
46d043:	8b ec                	mov    %esp,%ebp
46d045:	8b 45 10             	mov    0x10(%ebp),%eax
46d048:	ff 30                	push   (%eax)
46d04a:	8b 45 0c             	mov    0xc(%ebp),%eax
46d04d:	ff 30                	push   (%eax)
46d04f:	8b 45 08             	mov    0x8(%ebp),%eax
46d052:	ff 30                	push   (%eax)
46d054:	e8 dd 31 00 00       	call   0x470236
46d059:	83 c4 0c             	add    $0xc,%esp
46d05c:	5d                   	pop    %ebp
46d05d:	c3                   	ret
46d05e:	8b ff                	mov    %edi,%edi
46d060:	55                   	push   %ebp
46d061:	8b ec                	mov    %esp,%ebp
46d063:	8b 45 10             	mov    0x10(%ebp),%eax
46d066:	ff 30                	push   (%eax)
46d068:	8b 45 0c             	mov    0xc(%ebp),%eax
46d06b:	ff 30                	push   (%eax)
46d06d:	8b 45 08             	mov    0x8(%ebp),%eax
46d070:	ff 30                	push   (%eax)
46d072:	e8 f0 ad ff ff       	call   0x467e67
46d077:	83 c4 0c             	add    $0xc,%esp
46d07a:	5d                   	pop    %ebp
46d07b:	c3                   	ret
46d07c:	8b ff                	mov    %edi,%edi
46d07e:	55                   	push   %ebp
46d07f:	8b ec                	mov    %esp,%ebp
46d081:	8b 45 08             	mov    0x8(%ebp),%eax
46d084:	8b 00                	mov    (%eax),%eax
46d086:	8d 50 01             	lea    0x1(%eax),%edx
46d089:	8a 08                	mov    (%eax),%cl
46d08b:	40                   	inc    %eax
46d08c:	84 c9                	test   %cl,%cl
46d08e:	75 f9                	jne    0x46d089
46d090:	2b c2                	sub    %edx,%eax
46d092:	5d                   	pop    %ebp
46d093:	c3                   	ret
46d094:	8b ff                	mov    %edi,%edi
46d096:	55                   	push   %ebp
46d097:	8b ec                	mov    %esp,%ebp
46d099:	8b 45 08             	mov    0x8(%ebp),%eax
46d09c:	8b 00                	mov    (%eax),%eax
46d09e:	8d 50 02             	lea    0x2(%eax),%edx
46d0a1:	66 8b 08             	mov    (%eax),%cx
46d0a4:	83 c0 02             	add    $0x2,%eax
46d0a7:	66 85 c9             	test   %cx,%cx
46d0aa:	75 f5                	jne    0x46d0a1
46d0ac:	2b c2                	sub    %edx,%eax
46d0ae:	d1 f8                	sar    $1,%eax
46d0b0:	5d                   	pop    %ebp
46d0b1:	c3                   	ret
46d0b2:	8b ff                	mov    %edi,%edi
46d0b4:	55                   	push   %ebp
46d0b5:	8b ec                	mov    %esp,%ebp
46d0b7:	51                   	push   %ecx
46d0b8:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46d0bd:	33 c5                	xor    %ebp,%eax
46d0bf:	89 45 fc             	mov    %eax,-0x4(%ebp)
46d0c2:	56                   	push   %esi
46d0c3:	8b f1                	mov    %ecx,%esi
46d0c5:	57                   	push   %edi
46d0c6:	8d 7e 04             	lea    0x4(%esi),%edi
46d0c9:	eb 11                	jmp    0x46d0dc
46d0cb:	8b 4d 08             	mov    0x8(%ebp),%ecx
46d0ce:	56                   	push   %esi
46d0cf:	ff 15 54 43 49 00    	call   *0x494354
46d0d5:	ff 55 08             	call   *0x8(%ebp)
46d0d8:	59                   	pop    %ecx
46d0d9:	83 c6 04             	add    $0x4,%esi
46d0dc:	3b f7                	cmp    %edi,%esi
46d0de:	75 eb                	jne    0x46d0cb
46d0e0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46d0e3:	5f                   	pop    %edi
46d0e4:	33 cd                	xor    %ebp,%ecx
46d0e6:	5e                   	pop    %esi
46d0e7:	e8 16 29 fd ff       	call   0x43fa02
46d0ec:	8b e5                	mov    %ebp,%esp
46d0ee:	5d                   	pop    %ebp
46d0ef:	c2 04 00             	ret    $0x4
46d0f2:	8b ff                	mov    %edi,%edi
46d0f4:	55                   	push   %ebp
46d0f5:	8b ec                	mov    %esp,%ebp
46d0f7:	51                   	push   %ecx
46d0f8:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46d0fd:	33 c5                	xor    %ebp,%eax
46d0ff:	89 45 fc             	mov    %eax,-0x4(%ebp)