41fb22:	8b ce                	mov    %esi,%ecx
41fb24:	68 f8 49 49 00       	push   $0x4949f8
41fb29:	e8 30 b8 fe ff       	call   0x40b35e
41fb2e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41fb31:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
41fb38:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
41fb3b:	74 3b                	je     0x41fb78
41fb3d:	53                   	push   %ebx
41fb3e:	53                   	push   %ebx
41fb3f:	ff 75 10             	push   0x10(%ebp)
41fb42:	ff 75 0c             	push   0xc(%ebp)
41fb45:	53                   	push   %ebx
41fb46:	ff 75 14             	push   0x14(%ebp)
41fb49:	ff 15 74 41 49 00    	call   *0x494174
41fb4f:	8b d8                	mov    %eax,%ebx
41fb51:	8b ce                	mov    %esi,%ecx
41fb53:	6a 00                	push   $0x0
41fb55:	53                   	push   %ebx
41fb56:	e8 54 2d 00 00       	call   0x4228af
41fb5b:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
41fb5f:	8b c6                	mov    %esi,%eax
41fb61:	72 02                	jb     0x41fb65
41fb63:	8b 06                	mov    (%esi),%eax
41fb65:	53                   	push   %ebx
41fb66:	50                   	push   %eax
41fb67:	ff 75 10             	push   0x10(%ebp)
41fb6a:	ff 75 0c             	push   0xc(%ebp)
41fb6d:	6a 00                	push   $0x0
41fb6f:	ff 75 14             	push   0x14(%ebp)
41fb72:	ff 15 74 41 49 00    	call   *0x494174
41fb78:	8b c6                	mov    %esi,%eax
41fb7a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41fb7d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41fb84:	59                   	pop    %ecx
41fb85:	5e                   	pop    %esi
41fb86:	5b                   	pop    %ebx
41fb87:	c9                   	leave
41fb88:	c3                   	ret
41fb89:	55                   	push   %ebp
41fb8a:	8b ec                	mov    %esp,%ebp
41fb8c:	51                   	push   %ecx
41fb8d:	8b 4d 08             	mov    0x8(%ebp),%ecx
41fb90:	8b c1                	mov    %ecx,%eax
41fb92:	83 c8 01             	or     $0x1,%eax
41fb95:	0f bd c0             	bsr    %eax,%eax
41fb98:	40                   	inc    %eax
41fb99:	69 c0 d1 04 00 00    	imul   $0x4d1,%eax,%eax
41fb9f:	c1 e8 0c             	shr    $0xc,%eax
41fba2:	3b 0c 85 40 47 49 00 	cmp    0x494740(,%eax,4),%ecx
41fba9:	1b c9                	sbb    %ecx,%ecx
41fbab:	f7 d9                	neg    %ecx
41fbad:	2b c1                	sub    %ecx,%eax
41fbaf:	40                   	inc    %eax
41fbb0:	c9                   	leave
41fbb1:	c3                   	ret
41fbb2:	55                   	push   %ebp
41fbb3:	8b ec                	mov    %esp,%ebp
41fbb5:	53                   	push   %ebx
41fbb6:	8b 5d 08             	mov    0x8(%ebp),%ebx
41fbb9:	8b c3                	mov    %ebx,%eax
41fbbb:	56                   	push   %esi
41fbbc:	8b 75 0c             	mov    0xc(%ebp),%esi
41fbbf:	57                   	push   %edi
41fbc0:	33 ff                	xor    %edi,%edi
41fbc2:	47                   	inc    %edi
41fbc3:	0b c7                	or     %edi,%eax
41fbc5:	56                   	push   %esi
41fbc6:	50                   	push   %eax
41fbc7:	e8 e7 fd ff ff       	call   0x41f9b3
41fbcc:	59                   	pop    %ecx
41fbcd:	59                   	pop    %ecx
41fbce:	6a 40                	push   $0x40
41fbd0:	59                   	pop    %ecx
41fbd1:	2b c8                	sub    %eax,%ecx
41fbd3:	69 c1 d1 04 00 00    	imul   $0x4d1,%ecx,%eax
41fbd9:	c1 e8 0c             	shr    $0xc,%eax
41fbdc:	3b 34 c5 6c 47 49 00 	cmp    0x49476c(,%eax,8),%esi
41fbe3:	77 0b                	ja     0x41fbf0
41fbe5:	72 0b                	jb     0x41fbf2
41fbe7:	3b 1c c5 68 47 49 00 	cmp    0x494768(,%eax,8),%ebx
41fbee:	72 02                	jb     0x41fbf2
41fbf0:	33 ff                	xor    %edi,%edi
41fbf2:	2b c7                	sub    %edi,%eax
41fbf4:	5f                   	pop    %edi
41fbf5:	5e                   	pop    %esi
41fbf6:	40                   	inc    %eax
41fbf7:	5b                   	pop    %ebx
41fbf8:	5d                   	pop    %ebp
41fbf9:	c3                   	ret
41fbfa:	8d 41 10             	lea    0x10(%ecx),%eax
41fbfd:	39 41 04             	cmp    %eax,0x4(%ecx)
41fc00:	74 0d                	je     0x41fc0f
41fc02:	ff 71 0c             	push   0xc(%ecx)
41fc05:	ff 71 04             	push   0x4(%ecx)
41fc08:	e8 1d 39 fe ff       	call   0x40352a
41fc0d:	59                   	pop    %ecx
41fc0e:	59                   	pop    %ecx
41fc0f:	c3                   	ret
41fc10:	55                   	push   %ebp
41fc11:	8b ec                	mov    %esp,%ebp
41fc13:	8b 45 0c             	mov    0xc(%ebp),%eax
41fc16:	c1 e0 02             	shl    $0x2,%eax
41fc19:	50                   	push   %eax
41fc1a:	ff 75 08             	push   0x8(%ebp)
41fc1d:	e8 08 39 fe ff       	call   0x40352a
41fc22:	59                   	pop    %ecx
41fc23:	59                   	pop    %ecx
41fc24:	5d                   	pop    %ebp
41fc25:	c2 08 00             	ret    $0x8
41fc28:	55                   	push   %ebp
41fc29:	8b ec                	mov    %esp,%ebp
41fc2b:	6b 45 0c 18          	imul   $0x18,0xc(%ebp),%eax
41fc2f:	50                   	push   %eax
41fc30:	ff 75 08             	push   0x8(%ebp)
41fc33:	e8 f2 38 fe ff       	call   0x40352a
41fc38:	59                   	pop    %ecx
41fc39:	59                   	pop    %ecx
41fc3a:	5d                   	pop    %ebp
41fc3b:	c2 08 00             	ret    $0x8
41fc3e:	55                   	push   %ebp
41fc3f:	8b ec                	mov    %esp,%ebp
41fc41:	8b 45 0c             	mov    0xc(%ebp),%eax
41fc44:	c1 e0 03             	shl    $0x3,%eax
41fc47:	50                   	push   %eax
41fc48:	ff 75 08             	push   0x8(%ebp)
41fc4b:	e8 da 38 fe ff       	call   0x40352a
41fc50:	59                   	pop    %ecx
41fc51:	59                   	pop    %ecx
41fc52:	5d                   	pop    %ebp
41fc53:	c2 08 00             	ret    $0x8
41fc56:	55                   	push   %ebp
41fc57:	8b ec                	mov    %esp,%ebp
41fc59:	8b 45 0c             	mov    0xc(%ebp),%eax
41fc5c:	c1 e0 03             	shl    $0x3,%eax
41fc5f:	50                   	push   %eax
41fc60:	ff 75 08             	push   0x8(%ebp)
41fc63:	e8 c2 38 fe ff       	call   0x40352a
41fc68:	59                   	pop    %ecx
41fc69:	59                   	pop    %ecx
41fc6a:	5d                   	pop    %ebp
41fc6b:	c2 08 00             	ret    $0x8
41fc6e:	55                   	push   %ebp
41fc6f:	8b ec                	mov    %esp,%ebp
41fc71:	8b 45 0c             	mov    0xc(%ebp),%eax
41fc74:	c1 e0 03             	shl    $0x3,%eax
41fc77:	50                   	push   %eax
41fc78:	ff 75 08             	push   0x8(%ebp)
41fc7b:	e8 aa 38 fe ff       	call   0x40352a
41fc80:	59                   	pop    %ecx
41fc81:	59                   	pop    %ecx
41fc82:	5d                   	pop    %ebp
41fc83:	c2 08 00             	ret    $0x8
41fc86:	55                   	push   %ebp
41fc87:	8b ec                	mov    %esp,%ebp
41fc89:	8b 45 0c             	mov    0xc(%ebp),%eax
41fc8c:	c1 e0 03             	shl    $0x3,%eax
41fc8f:	50                   	push   %eax
41fc90:	ff 75 08             	push   0x8(%ebp)
41fc93:	e8 92 38 fe ff       	call   0x40352a
41fc98:	59                   	pop    %ecx
41fc99:	59                   	pop    %ecx
41fc9a:	5d                   	pop    %ebp
41fc9b:	c2 08 00             	ret    $0x8
41fc9e:	55                   	push   %ebp
41fc9f:	8b ec                	mov    %esp,%ebp
41fca1:	6b 45 0c 18          	imul   $0x18,0xc(%ebp),%eax
41fca5:	50                   	push   %eax
41fca6:	ff 75 08             	push   0x8(%ebp)
41fca9:	e8 7c 38 fe ff       	call   0x40352a
41fcae:	59                   	pop    %ecx
41fcaf:	59                   	pop    %ecx
41fcb0:	5d                   	pop    %ebp
41fcb1:	c2 08 00             	ret    $0x8
41fcb4:	55                   	push   %ebp
41fcb5:	8b ec                	mov    %esp,%ebp
41fcb7:	6b 45 0c 0c          	imul   $0xc,0xc(%ebp),%eax
41fcbb:	50                   	push   %eax
41fcbc:	ff 75 08             	push   0x8(%ebp)
41fcbf:	e8 66 38 fe ff       	call   0x40352a
41fcc4:	59                   	pop    %ecx
41fcc5:	59                   	pop    %ecx
41fcc6:	5d                   	pop    %ebp
41fcc7:	c2 08 00             	ret    $0x8
41fcca:	55                   	push   %ebp
41fccb:	8b ec                	mov    %esp,%ebp
41fccd:	6b 45 0c 0c          	imul   $0xc,0xc(%ebp),%eax
41fcd1:	50                   	push   %eax
41fcd2:	ff 75 08             	push   0x8(%ebp)
41fcd5:	e8 50 38 fe ff       	call   0x40352a
41fcda:	59                   	pop    %ecx
41fcdb:	59                   	pop    %ecx
41fcdc:	5d                   	pop    %ebp
41fcdd:	c2 08 00             	ret    $0x8
41fce0:	55                   	push   %ebp
41fce1:	8b ec                	mov    %esp,%ebp
41fce3:	6b 45 0c 0c          	imul   $0xc,0xc(%ebp),%eax
41fce7:	50                   	push   %eax
41fce8:	ff 75 08             	push   0x8(%ebp)
41fceb:	e8 3a 38 fe ff       	call   0x40352a
41fcf0:	59                   	pop    %ecx
41fcf1:	59                   	pop    %ecx
41fcf2:	5d                   	pop    %ebp
41fcf3:	c2 08 00             	ret    $0x8
41fcf6:	55                   	push   %ebp
41fcf7:	8b ec                	mov    %esp,%ebp
41fcf9:	8b 45 0c             	mov    0xc(%ebp),%eax
41fcfc:	c1 e0 03             	shl    $0x3,%eax
41fcff:	50                   	push   %eax
41fd00:	ff 75 08             	push   0x8(%ebp)
41fd03:	e8 22 38 fe ff       	call   0x40352a
41fd08:	59                   	pop    %ecx
41fd09:	59                   	pop    %ecx
41fd0a:	5d                   	pop    %ebp
41fd0b:	c2 08 00             	ret    $0x8
41fd0e:	55                   	push   %ebp
41fd0f:	8b ec                	mov    %esp,%ebp
41fd11:	8b 45 08             	mov    0x8(%ebp),%eax
41fd14:	8b 55 0c             	mov    0xc(%ebp),%edx
41fd17:	89 10                	mov    %edx,(%eax)
41fd19:	89 48 04             	mov    %ecx,0x4(%eax)
41fd1c:	5d                   	pop    %ebp
41fd1d:	c2 08 00             	ret    $0x8
41fd20:	55                   	push   %ebp
41fd21:	8b ec                	mov    %esp,%ebp
41fd23:	8d 41 08             	lea    0x8(%ecx),%eax
41fd26:	50                   	push   %eax
41fd27:	ff 75 14             	push   0x14(%ebp)
41fd2a:	ff 75 10             	push   0x10(%ebp)
41fd2d:	ff 75 0c             	push   0xc(%ebp)
41fd30:	ff 75 08             	push   0x8(%ebp)
41fd33:	e8 6f 60 00 00       	call   0x425da7
41fd38:	33 c9                	xor    %ecx,%ecx
41fd3a:	83 c4 14             	add    $0x14,%esp
41fd3d:	85 c0                	test   %eax,%eax
41fd3f:	0f 95 c1             	setne  %cl
41fd42:	83 ca ff             	or     $0xffffffff,%edx
41fd45:	85 c0                	test   %eax,%eax
41fd47:	0f 48 ca             	cmovs  %edx,%ecx
41fd4a:	8b c1                	mov    %ecx,%eax
41fd4c:	5d                   	pop    %ebp
41fd4d:	c2 10 00             	ret    $0x10
41fd50:	55                   	push   %ebp
41fd51:	8b ec                	mov    %esp,%ebp
41fd53:	8d 41 08             	lea    0x8(%ecx),%eax
41fd56:	50                   	push   %eax
41fd57:	ff 75 14             	push   0x14(%ebp)
41fd5a:	ff 75 10             	push   0x10(%ebp)
41fd5d:	ff 75 0c             	push   0xc(%ebp)
41fd60:	ff 75 08             	push   0x8(%ebp)
41fd63:	e8 6a 66 00 00       	call   0x4263d2
41fd68:	33 c9                	xor    %ecx,%ecx
41fd6a:	83 c4 14             	add    $0x14,%esp
41fd6d:	85 c0                	test   %eax,%eax
41fd6f:	0f 95 c1             	setne  %cl
41fd72:	83 ca ff             	or     $0xffffffff,%edx
41fd75:	85 c0                	test   %eax,%eax
41fd77:	0f 48 ca             	cmovs  %edx,%ecx
41fd7a:	8b c1                	mov    %ecx,%eax
41fd7c:	5d                   	pop    %ebp
41fd7d:	c2 10 00             	ret    $0x10
41fd80:	66 8b 41 0c          	mov    0xc(%ecx),%ax
41fd84:	c3                   	ret
41fd85:	6a 04                	push   $0x4
41fd87:	b8 02 fa 48 00       	mov    $0x48fa02,%eax
41fd8c:	e8 b9 fc 01 00       	call   0x43fa4a
41fd91:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
41fd95:	ff 71 10             	push   0x10(%ecx)
41fd98:	8b 4d 08             	mov    0x8(%ebp),%ecx
41fd9b:	e8 be b5 fe ff       	call   0x40b35e
41fda0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41fda4:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
41fdab:	8b 45 08             	mov    0x8(%ebp),%eax
41fdae:	e8 60 fc 01 00       	call   0x43fa13
41fdb3:	c2 04 00             	ret    $0x4
41fdb6:	6a 3c                	push   $0x3c
41fdb8:	b8 25 fa 48 00       	mov    $0x48fa25,%eax
41fdbd:	e8 bc fc 01 00       	call   0x43fa7e
41fdc2:	8b f9                	mov    %ecx,%edi
41fdc4:	8b 45 08             	mov    0x8(%ebp),%eax
41fdc7:	8b 75 1c             	mov    0x1c(%ebp),%esi
41fdca:	8b ce                	mov    %esi,%ecx
41fdcc:	8b 5d 20             	mov    0x20(%ebp),%ebx
41fdcf:	89 45 b8             	mov    %eax,-0x48(%ebp)
41fdd2:	8b 45 24             	mov    0x24(%ebp),%eax
41fdd5:	89 45 c8             	mov    %eax,-0x38(%ebp)
41fdd8:	8d 45 bc             	lea    -0x44(%ebp),%eax
41fddb:	50                   	push   %eax
41fddc:	e8 35 1f 00 00       	call   0x421d16
41fde1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41fde5:	50                   	push   %eax
41fde6:	ff 76 14             	push   0x14(%esi)
41fde9:	8d 45 14             	lea    0x14(%ebp),%eax
41fdec:	50                   	push   %eax
41fded:	8d 45 0c             	lea    0xc(%ebp),%eax
41fdf0:	50                   	push   %eax
41fdf1:	8d 45 d0             	lea    -0x30(%ebp),%eax
41fdf4:	50                   	push   %eax
41fdf5:	57                   	push   %edi
41fdf6:	e8 38 ab ff ff       	call   0x41a933
41fdfb:	83 c4 18             	add    $0x18,%esp
41fdfe:	8b f8                	mov    %eax,%edi
41fe00:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41fe04:	8d 4d bc             	lea    -0x44(%ebp),%ecx
41fe07:	e8 db f5 fe ff       	call   0x40f3e7
41fe0c:	8a 4d d0             	mov    -0x30(%ebp),%cl
41fe0f:	84 c9                	test   %cl,%cl
41fe11:	75 10                	jne    0x41fe23
41fe13:	8b 45 c8             	mov    -0x38(%ebp),%eax
41fe16:	33 c9                	xor    %ecx,%ecx
41fe18:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
41fe1e:	66 89 08             	mov    %cx,(%eax)
41fe21:	eb 54                	jmp    0x41fe77
41fe23:	80 f9 2d             	cmp    $0x2d,%cl
41fe26:	8d 45 d0             	lea    -0x30(%ebp),%eax
41fe29:	8d 75 d1             	lea    -0x2f(%ebp),%esi
41fe2c:	0f 45 f0             	cmovne %eax,%esi
41fe2f:	0f 94 45 cf          	sete   -0x31(%ebp)
41fe33:	8d 45 c0             	lea    -0x40(%ebp),%eax
41fe36:	50                   	push   %eax
41fe37:	57                   	push   %edi
41fe38:	8d 45 c4             	lea    -0x3c(%ebp),%eax
41fe3b:	50                   	push   %eax
41fe3c:	56                   	push   %esi
41fe3d:	e8 5b 7a 00 00       	call   0x42789d
41fe42:	8b d0                	mov    %eax,%edx
41fe44:	83 c4 10             	add    $0x10,%esp
41fe47:	bf ff ff 00 00       	mov    $0xffff,%edi
41fe4c:	8b 45 c8             	mov    -0x38(%ebp),%eax
41fe4f:	0f b7 ca             	movzwl %dx,%ecx
41fe52:	66 89 08             	mov    %cx,(%eax)
41fe55:	39 75 c4             	cmp    %esi,-0x3c(%ebp)
41fe58:	74 14                	je     0x41fe6e
41fe5a:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
41fe5e:	75 0e                	jne    0x41fe6e
41fe60:	3b d7                	cmp    %edi,%edx
41fe62:	77 0a                	ja     0x41fe6e
41fe64:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
41fe68:	74 0d                	je     0x41fe77
41fe6a:	f7 d9                	neg    %ecx
41fe6c:	eb b0                	jmp    0x41fe1e
41fe6e:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
41fe74:	66 89 38             	mov    %di,(%eax)
41fe77:	8d 45 14             	lea    0x14(%ebp),%eax
41fe7a:	50                   	push   %eax
41fe7b:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41fe7e:	e8 71 0d 00 00       	call   0x420bf4
41fe83:	84 c0                	test   %al,%al
41fe85:	74 03                	je     0x41fe8a
41fe87:	83 0b 01             	orl    $0x1,(%ebx)
41fe8a:	8b 45 b8             	mov    -0x48(%ebp),%eax