45c9ab:	e8 ac 02 ff ff       	call   0x44cc5c
45c9b0:	e9 aa 01 00 00       	jmp    0x45cb5f
45c9b5:	8d 41 01             	lea    0x1(%ecx),%eax
45c9b8:	89 06                	mov    %eax,(%esi)
45c9ba:	33 ff                	xor    %edi,%edi
45c9bc:	8b 55 08             	mov    0x8(%ebp),%edx
45c9bf:	8b 0e                	mov    (%esi),%ecx
45c9c1:	8b 42 04             	mov    0x4(%edx),%eax
45c9c4:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
45c9c7:	0f bf 41 08          	movswl 0x8(%ecx),%eax
45c9cb:	83 e8 47             	sub    $0x47,%eax
45c9ce:	74 2e                	je     0x45c9fe
45c9d0:	48                   	dec    %eax
45c9d1:	74 24                	je     0x45c9f7
45c9d3:	83 e8 37             	sub    $0x37,%eax
45c9d6:	75 27                	jne    0x45c9ff
45c9d8:	8b 0e                	mov    (%esi),%ecx
45c9da:	8b 42 04             	mov    0x4(%edx),%eax
45c9dd:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
45c9e1:	8b cb                	mov    %ebx,%ecx
45c9e3:	0f bf 40 0a          	movswl 0xa(%eax),%eax
45c9e7:	50                   	push   %eax
45c9e8:	6a 6f                	push   $0x6f
45c9ea:	e8 6d 02 ff ff       	call   0x44cc5c
45c9ef:	83 cf ff             	or     $0xffffffff,%edi
45c9f2:	e9 68 01 00 00       	jmp    0x45cb5f
45c9f7:	85 ff                	test   %edi,%edi
45c9f9:	74 11                	je     0x45ca0c
45c9fb:	4f                   	dec    %edi
45c9fc:	eb 01                	jmp    0x45c9ff
45c9fe:	47                   	inc    %edi
45c9ff:	51                   	push   %ecx
45ca00:	8d 4d d8             	lea    -0x28(%ebp),%ecx
45ca03:	e8 7d f0 fa ff       	call   0x40ba85
45ca08:	ff 06                	incl   (%esi)
45ca0a:	eb b0                	jmp    0x45c9bc
45ca0c:	8b 45 f4             	mov    -0xc(%ebp),%eax
45ca0f:	ff 06                	incl   (%esi)
45ca11:	6a 7f                	push   $0x7f
45ca13:	5e                   	pop    %esi
45ca14:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
45ca18:	8d 45 e8             	lea    -0x18(%ebp),%eax
45ca1b:	50                   	push   %eax
45ca1c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
45ca1f:	66 89 75 f0          	mov    %si,-0x10(%ebp)
45ca23:	e8 5d f0 fa ff       	call   0x40ba85
45ca28:	8b 55 dc             	mov    -0x24(%ebp),%edx
45ca2b:	33 c9                	xor    %ecx,%ecx
45ca2d:	89 4d 0c             	mov    %ecx,0xc(%ebp)
45ca30:	8b 02                	mov    (%edx),%eax
45ca32:	66 39 70 08          	cmp    %si,0x8(%eax)
45ca36:	0f 84 21 01 00 00    	je     0x45cb5d
45ca3c:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
45ca3f:	6a 40                	push   $0x40
45ca41:	66 83 78 08 33       	cmpw   $0x33,0x8(%eax)
45ca46:	5e                   	pop    %esi
45ca47:	0f 85 ad 00 00 00    	jne    0x45cafa
45ca4d:	6a 00                	push   $0x0
45ca4f:	8d 4d f8             	lea    -0x8(%ebp),%ecx
45ca52:	51                   	push   %ecx
45ca53:	8d 4d 08             	lea    0x8(%ebp),%ecx
45ca56:	51                   	push   %ecx
45ca57:	ff 30                	push   (%eax)
45ca59:	e8 e7 0b fb ff       	call   0x40d645
45ca5e:	84 c0                	test   %al,%al
45ca60:	0f 84 94 00 00 00    	je     0x45cafa
45ca66:	f7 45 f8 00 01 00 00 	testl  $0x100,-0x8(%ebp)
45ca6d:	0f 85 87 00 00 00    	jne    0x45cafa
45ca73:	8b 75 08             	mov    0x8(%ebp),%esi
45ca76:	8b 55 dc             	mov    -0x24(%ebp),%edx
45ca79:	83 7e 0c 08          	cmpl   $0x8,0xc(%esi)
45ca7d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45ca80:	75 0b                	jne    0x45ca8d
45ca82:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
45ca86:	66 83 78 08 35       	cmpw   $0x35,0x8(%eax)
45ca8b:	74 6a                	je     0x45caf7
45ca8d:	8b f9                	mov    %ecx,%edi
45ca8f:	41                   	inc    %ecx
45ca90:	89 4d 0c             	mov    %ecx,0xc(%ebp)
45ca93:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
45ca97:	75 2a                	jne    0x45cac3
45ca99:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
45ca9c:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
45caa1:	75 20                	jne    0x45cac3
45caa3:	6a 01                	push   $0x1
45caa5:	8d 45 08             	lea    0x8(%ebp),%eax
45caa8:	50                   	push   %eax
45caa9:	8d 45 0c             	lea    0xc(%ebp),%eax
45caac:	50                   	push   %eax
45caad:	8d 45 d8             	lea    -0x28(%ebp),%eax
45cab0:	50                   	push   %eax
45cab1:	8b cb                	mov    %ebx,%ecx
45cab3:	e8 68 28 00 00       	call   0x45f320
45cab8:	85 c0                	test   %eax,%eax
45caba:	0f 88 2f ff ff ff    	js     0x45c9ef
45cac0:	8b 75 08             	mov    0x8(%ebp),%esi
45cac3:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
45cac6:	e8 55 61 fb ff       	call   0x412c20
45cacb:	8b 4d dc             	mov    -0x24(%ebp),%ecx
45cace:	8b 45 0c             	mov    0xc(%ebp),%eax
45cad1:	89 75 c4             	mov    %esi,-0x3c(%ebp)
45cad4:	c7 45 d0 06 00 00 00 	movl   $0x6,-0x30(%ebp)
45cadb:	8b 04 81             	mov    (%ecx,%eax,4),%eax
45cade:	6a 40                	push   $0x40
45cae0:	0f b7 40 08          	movzwl 0x8(%eax),%eax
45cae4:	5e                   	pop    %esi
45cae5:	66 3b c6             	cmp    %si,%ax
45cae8:	74 2d                	je     0x45cb17
45caea:	6a 7f                	push   $0x7f
45caec:	59                   	pop    %ecx
45caed:	66 3b c1             	cmp    %cx,%ax
45caf0:	74 25                	je     0x45cb17
45caf2:	89 7d 0c             	mov    %edi,0xc(%ebp)
45caf5:	eb 03                	jmp    0x45cafa
45caf7:	6a 40                	push   $0x40
45caf9:	5e                   	pop    %esi
45cafa:	83 cf ff             	or     $0xffffffff,%edi
45cafd:	57                   	push   %edi
45cafe:	8d 45 c4             	lea    -0x3c(%ebp),%eax
45cb01:	50                   	push   %eax
45cb02:	8d 45 0c             	lea    0xc(%ebp),%eax
45cb05:	50                   	push   %eax
45cb06:	8d 45 d8             	lea    -0x28(%ebp),%eax
45cb09:	50                   	push   %eax
45cb0a:	8b cb                	mov    %ebx,%ecx
45cb0c:	e8 1f 33 fb ff       	call   0x40fe30
45cb11:	85 c0                	test   %eax,%eax
45cb13:	78 4a                	js     0x45cb5f
45cb15:	eb 03                	jmp    0x45cb1a
45cb17:	83 cf ff             	or     $0xffffffff,%edi
45cb1a:	8b 4d 10             	mov    0x10(%ebp),%ecx
45cb1d:	8d 45 c4             	lea    -0x3c(%ebp),%eax
45cb20:	50                   	push   %eax
45cb21:	e8 b0 f7 fb ff       	call   0x41c2d6
45cb26:	8b 55 dc             	mov    -0x24(%ebp),%edx
45cb29:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45cb2c:	6a 7f                	push   $0x7f
45cb2e:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
45cb31:	66 39 70 08          	cmp    %si,0x8(%eax)
45cb35:	5e                   	pop    %esi
45cb36:	75 0e                	jne    0x45cb46
45cb38:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
45cb3c:	66 39 70 08          	cmp    %si,0x8(%eax)
45cb40:	74 0c                	je     0x45cb4e
45cb42:	41                   	inc    %ecx
45cb43:	89 4d 0c             	mov    %ecx,0xc(%ebp)
45cb46:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
45cb49:	e9 e4 fe ff ff       	jmp    0x45ca32
45cb4e:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
45cb51:	0f bf 40 0a          	movswl 0xa(%eax),%eax
45cb55:	50                   	push   %eax
45cb56:	6a 6e                	push   $0x6e
45cb58:	e9 4c fe ff ff       	jmp    0x45c9a9
45cb5d:	33 ff                	xor    %edi,%edi
45cb5f:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
45cb62:	e8 b9 60 fb ff       	call   0x412c20
45cb67:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45cb6a:	e8 86 0d fc ff       	call   0x41d8f5
45cb6f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
45cb72:	e8 9a 83 fa ff       	call   0x404f11
45cb77:	8b c7                	mov    %edi,%eax
45cb79:	5f                   	pop    %edi
45cb7a:	5e                   	pop    %esi
45cb7b:	5b                   	pop    %ebx
45cb7c:	c9                   	leave
45cb7d:	c2 0c 00             	ret    $0xc
45cb80:	56                   	push   %esi
45cb81:	6a 08                	push   $0x8
45cb83:	8b f1                	mov    %ecx,%esi
45cb85:	e8 5a 0a fb ff       	call   0x40d5e4
45cb8a:	84 c0                	test   %al,%al
45cb8c:	75 1e                	jne    0x45cbac
45cb8e:	6a 0c                	push   $0xc
45cb90:	8b ce                	mov    %esi,%ecx
45cb92:	e8 4d 0a fb ff       	call   0x40d5e4
45cb97:	84 c0                	test   %al,%al
45cb99:	75 11                	jne    0x45cbac
45cb9b:	6a 0f                	push   $0xf
45cb9d:	8b ce                	mov    %esi,%ecx
45cb9f:	e8 40 0a fb ff       	call   0x40d5e4
45cba4:	84 c0                	test   %al,%al
45cba6:	75 04                	jne    0x45cbac
45cba8:	33 c0                	xor    %eax,%eax
45cbaa:	5e                   	pop    %esi
45cbab:	c3                   	ret
45cbac:	33 c0                	xor    %eax,%eax
45cbae:	40                   	inc    %eax
45cbaf:	5e                   	pop    %esi
45cbb0:	c3                   	ret
45cbb1:	55                   	push   %ebp
45cbb2:	8b ec                	mov    %esp,%ebp
45cbb4:	56                   	push   %esi
45cbb5:	8b 75 0c             	mov    0xc(%ebp),%esi
45cbb8:	57                   	push   %edi
45cbb9:	8b f9                	mov    %ecx,%edi
45cbbb:	3b 77 04             	cmp    0x4(%edi),%esi
45cbbe:	76 03                	jbe    0x45cbc3
45cbc0:	8b 77 04             	mov    0x4(%edi),%esi
45cbc3:	8b 4d 08             	mov    0x8(%ebp),%ecx
45cbc6:	e8 2c 0c fb ff       	call   0x40d7f7
45cbcb:	8b 4d 08             	mov    0x8(%ebp),%ecx
45cbce:	56                   	push   %esi
45cbcf:	6a 00                	push   $0x0
45cbd1:	57                   	push   %edi
45cbd2:	e8 12 9e fa ff       	call   0x4069e9
45cbd7:	8b 45 08             	mov    0x8(%ebp),%eax
45cbda:	5f                   	pop    %edi
45cbdb:	5e                   	pop    %esi
45cbdc:	5d                   	pop    %ebp
45cbdd:	c2 08 00             	ret    $0x8
45cbe0:	56                   	push   %esi
45cbe1:	8b f1                	mov    %ecx,%esi
45cbe3:	57                   	push   %edi
45cbe4:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
45cbe8:	74 17                	je     0x45cc01
45cbea:	8b 4e 04             	mov    0x4(%esi),%ecx
45cbed:	8b 79 10             	mov    0x10(%ecx),%edi
45cbf0:	85 c9                	test   %ecx,%ecx
45cbf2:	74 06                	je     0x45cbfa
45cbf4:	51                   	push   %ecx
45cbf5:	e8 1c fa fb ff       	call   0x41c616
45cbfa:	89 7e 04             	mov    %edi,0x4(%esi)
45cbfd:	c6 46 09 00          	movb   $0x0,0x9(%esi)
45cc01:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
45cc05:	74 06                	je     0x45cc0d
45cc07:	c6 46 09 01          	movb   $0x1,0x9(%esi)
45cc0b:	eb 17                	jmp    0x45cc24
45cc0d:	8b 4e 04             	mov    0x4(%esi),%ecx
45cc10:	8b 79 10             	mov    0x10(%ecx),%edi
45cc13:	85 c9                	test   %ecx,%ecx
45cc15:	74 06                	je     0x45cc1d
45cc17:	51                   	push   %ecx
45cc18:	e8 f9 f9 fb ff       	call   0x41c616
45cc1d:	89 7e 04             	mov    %edi,0x4(%esi)
45cc20:	c6 46 09 00          	movb   $0x0,0x9(%esi)
45cc24:	ff 0e                	decl   (%esi)
45cc26:	5f                   	pop    %edi
45cc27:	5e                   	pop    %esi
45cc28:	c3                   	ret
45cc29:	55                   	push   %ebp
45cc2a:	8b ec                	mov    %esp,%ebp
45cc2c:	53                   	push   %ebx
45cc2d:	56                   	push   %esi
45cc2e:	8b f1                	mov    %ecx,%esi
45cc30:	6a 04                	push   $0x4
45cc32:	8b 46 0c             	mov    0xc(%esi),%eax
45cc35:	5b                   	pop    %ebx
45cc36:	39 46 08             	cmp    %eax,0x8(%esi)
45cc39:	75 4d                	jne    0x45cc88
45cc3b:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
45cc3e:	6a 08                	push   $0x8
45cc40:	58                   	pop    %eax
45cc41:	3b c8                	cmp    %eax,%ecx
45cc43:	72 02                	jb     0x45cc47
45cc45:	8b c1                	mov    %ecx,%eax
45cc47:	33 c9                	xor    %ecx,%ecx
45cc49:	89 46 0c             	mov    %eax,0xc(%esi)
45cc4c:	f7 e3                	mul    %ebx
45cc4e:	0f 90 c1             	seto   %cl
45cc51:	57                   	push   %edi
45cc52:	f7 d9                	neg    %ecx
45cc54:	0b c8                	or     %eax,%ecx
45cc56:	51                   	push   %ecx
45cc57:	e8 19 22 fc ff       	call   0x41ee75
45cc5c:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
45cc60:	59                   	pop    %ecx
45cc61:	8b f8                	mov    %eax,%edi
45cc63:	74 1f                	je     0x45cc84
45cc65:	8b 46 08             	mov    0x8(%esi),%eax
45cc68:	85 c0                	test   %eax,%eax
45cc6a:	74 18                	je     0x45cc84
45cc6c:	c1 e0 02             	shl    $0x2,%eax
45cc6f:	50                   	push   %eax
45cc70:	ff 76 04             	push   0x4(%esi)
45cc73:	57                   	push   %edi
45cc74:	e8 07 22 fc ff       	call   0x41ee80
45cc79:	ff 76 04             	push   0x4(%esi)
45cc7c:	e8 5f 41 fc ff       	call   0x420de0
45cc81:	83 c4 10             	add    $0x10,%esp
45cc84:	89 7e 04             	mov    %edi,0x4(%esi)
45cc87:	5f                   	pop    %edi
45cc88:	53                   	push   %ebx
45cc89:	e8 5c 28 fc ff       	call   0x41f4ea
45cc8e:	8b d0                	mov    %eax,%edx
45cc90:	59                   	pop    %ecx
45cc91:	85 d2                	test   %edx,%edx
45cc93:	74 09                	je     0x45cc9e
45cc95:	8b 4d 08             	mov    0x8(%ebp),%ecx
45cc98:	8b 09                	mov    (%ecx),%ecx
45cc9a:	89 0a                	mov    %ecx,(%edx)
45cc9c:	eb 02                	jmp    0x45cca0
45cc9e:	33 d2                	xor    %edx,%edx
45cca0:	8b 4e 08             	mov    0x8(%esi),%ecx
45cca3:	8b 46 04             	mov    0x4(%esi),%eax
45cca6:	89 14 88             	mov    %edx,(%eax,%ecx,4)
45cca9:	ff 46 08             	incl   0x8(%esi)
45ccac:	5e                   	pop    %esi
45ccad:	5b                   	pop    %ebx
45ccae:	5d                   	pop    %ebp
45ccaf:	c2 04 00             	ret    $0x4
45ccb2:	55                   	push   %ebp
45ccb3:	8b ec                	mov    %esp,%ebp
45ccb5:	56                   	push   %esi
45ccb6:	ff 75 08             	push   0x8(%ebp)
45ccb9:	8d 71 04             	lea    0x4(%ecx),%esi
45ccbc:	8b ce                	mov    %esi,%ecx
45ccbe:	e8 96 66 fa ff       	call   0x403359
45ccc3:	8b c8                	mov    %eax,%ecx
45ccc5:	e8 e4 0f fb ff       	call   0x40dcae
45ccca:	8b ce                	mov    %esi,%ecx
45cccc:	e8 88 66 fa ff       	call   0x403359
45ccd1:	8a 4d 0c             	mov    0xc(%ebp),%cl
45ccd4:	88 48 10             	mov    %cl,0x10(%eax)
45ccd7:	5e                   	pop    %esi
45ccd8:	5d                   	pop    %ebp
45ccd9:	c2 08 00             	ret    $0x8
45ccdc:	55                   	push   %ebp
45ccdd:	8b ec                	mov    %esp,%ebp
45ccdf:	53                   	push   %ebx
45cce0:	8b 5d 08             	mov    0x8(%ebp),%ebx
45cce3:	56                   	push   %esi
45cce4:	8b f1                	mov    %ecx,%esi
45cce6:	57                   	push   %edi
45cce7:	c7 06 b4 dd 49 00    	movl   $0x49ddb4,(%esi)
45cced:	8b 43 08             	mov    0x8(%ebx),%eax
45ccf0:	89 46 08             	mov    %eax,0x8(%esi)
45ccf3:	85 c0                	test   %eax,%eax
45ccf5:	74 5a                	je     0x45cd51
45ccf7:	6a 08                	push   $0x8
45ccf9:	5a                   	pop    %edx
45ccfa:	3b c2                	cmp    %edx,%eax
45ccfc:	72 02                	jb     0x45cd00
45ccfe:	8b d0                	mov    %eax,%edx
45cd00:	89 56 0c             	mov    %edx,0xc(%esi)
45cd03:	33 c9                	xor    %ecx,%ecx
45cd05:	8b c2                	mov    %edx,%eax
45cd07:	6a 04                	push   $0x4
45cd09:	5a                   	pop    %edx
45cd0a:	f7 e2                	mul    %edx
45cd0c:	0f 90 c1             	seto   %cl
45cd0f:	f7 d9                	neg    %ecx
45cd11:	0b c8                	or     %eax,%ecx
45cd13:	51                   	push   %ecx
45cd14:	e8 d1 27 fc ff       	call   0x41f4ea
45cd19:	33 ff                	xor    %edi,%edi
45cd1b:	59                   	pop    %ecx
45cd1c:	89 46 04             	mov    %eax,0x4(%esi)
45cd1f:	39 7e 08             	cmp    %edi,0x8(%esi)
45cd22:	76 35                	jbe    0x45cd59
45cd24:	6a 0c                	push   $0xc