41c948:	50                   	push   %eax
41c949:	e8 80 dd ff ff       	call   0x41a6ce
41c94e:	83 c4 10             	add    $0x10,%esp
41c951:	85 c0                	test   %eax,%eax
41c953:	75 0e                	jne    0x41c963
41c955:	5f                   	pop    %edi
41c956:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41c959:	33 cd                	xor    %ebp,%ecx
41c95b:	5e                   	pop    %esi
41c95c:	e8 ab aa fe ff       	call   0x40740c
41c961:	c9                   	leave
41c962:	c3                   	ret
41c963:	57                   	push   %edi
41c964:	57                   	push   %edi
41c965:	57                   	push   %edi
41c966:	57                   	push   %edi
41c967:	57                   	push   %edi
41c968:	e8 41 07 ff ff       	call   0x40d0ae
41c96d:	cc                   	int3
41c96e:	8b ff                	mov    %edi,%edi
41c970:	55                   	push   %ebp
41c971:	8b ec                	mov    %esp,%ebp
41c973:	51                   	push   %ecx
41c974:	53                   	push   %ebx
41c975:	56                   	push   %esi
41c976:	8b 75 08             	mov    0x8(%ebp),%esi
41c979:	33 db                	xor    %ebx,%ebx
41c97b:	57                   	push   %edi
41c97c:	6a 02                	push   $0x2
41c97e:	5f                   	pop    %edi
41c97f:	8b 0e                	mov    (%esi),%ecx
41c981:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41c984:	8d 51 02             	lea    0x2(%ecx),%edx
41c987:	66 8b 01             	mov    (%ecx),%ax
41c98a:	03 cf                	add    %edi,%ecx
41c98c:	66 3b c3             	cmp    %bx,%ax
41c98f:	75 f6                	jne    0x41c987
41c991:	2b ca                	sub    %edx,%ecx
41c993:	33 c0                	xor    %eax,%eax
41c995:	8b 56 04             	mov    0x4(%esi),%edx
41c998:	d1 f9                	sar    $1,%ecx
41c99a:	83 f9 03             	cmp    $0x3,%ecx
41c99d:	0f 94 c0             	sete   %al
41c9a0:	8d 5a 02             	lea    0x2(%edx),%ebx
41c9a3:	89 46 10             	mov    %eax,0x10(%esi)
41c9a6:	66 8b 02             	mov    (%edx),%ax
41c9a9:	03 d7                	add    %edi,%edx
41c9ab:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
41c9af:	75 f5                	jne    0x41c9a6
41c9b1:	2b d3                	sub    %ebx,%edx
41c9b3:	33 c0                	xor    %eax,%eax
41c9b5:	d1 fa                	sar    $1,%edx
41c9b7:	83 fa 03             	cmp    $0x3,%edx
41c9ba:	0f 94 c0             	sete   %al
41c9bd:	89 46 14             	mov    %eax,0x14(%esi)
41c9c0:	83 f9 03             	cmp    $0x3,%ecx
41c9c3:	74 0a                	je     0x41c9cf
41c9c5:	ff 36                	push   (%esi)
41c9c7:	e8 94 00 00 00       	call   0x41ca60
41c9cc:	59                   	pop    %ecx
41c9cd:	8b f8                	mov    %eax,%edi
41c9cf:	33 db                	xor    %ebx,%ebx
41c9d1:	89 7e 0c             	mov    %edi,0xc(%esi)
41c9d4:	53                   	push   %ebx
41c9d5:	53                   	push   %ebx
41c9d6:	6a 03                	push   $0x3
41c9d8:	68 94 ca 41 00       	push   $0x41ca94
41c9dd:	e8 e2 6a ff ff       	call   0x4134c4
41c9e2:	8b 4e 08             	mov    0x8(%esi),%ecx
41c9e5:	f6 c1 07             	test   $0x7,%cl
41c9e8:	0f 95 c2             	setne  %dl
41c9eb:	0f ba e1 09          	bt     $0x9,%ecx
41c9ef:	0f 92 c0             	setb   %al
41c9f2:	22 d0                	and    %al,%dl
41c9f4:	0f ba e1 08          	bt     $0x8,%ecx
41c9f8:	0f 92 c0             	setb   %al
41c9fb:	84 d0                	test   %dl,%al
41c9fd:	75 03                	jne    0x41ca02
41c9ff:	89 5e 08             	mov    %ebx,0x8(%esi)
41ca02:	5f                   	pop    %edi
41ca03:	5e                   	pop    %esi
41ca04:	5b                   	pop    %ebx
41ca05:	c9                   	leave
41ca06:	c3                   	ret
41ca07:	8b ff                	mov    %edi,%edi
41ca09:	55                   	push   %ebp
41ca0a:	8b ec                	mov    %esp,%ebp
41ca0c:	53                   	push   %ebx
41ca0d:	56                   	push   %esi
41ca0e:	8b 75 08             	mov    0x8(%ebp),%esi
41ca11:	33 db                	xor    %ebx,%ebx
41ca13:	57                   	push   %edi
41ca14:	6a 02                	push   $0x2
41ca16:	5a                   	pop    %edx
41ca17:	8b 0e                	mov    (%esi),%ecx
41ca19:	8d 79 02             	lea    0x2(%ecx),%edi
41ca1c:	66 8b 01             	mov    (%ecx),%ax
41ca1f:	03 ca                	add    %edx,%ecx
41ca21:	66 3b c3             	cmp    %bx,%ax
41ca24:	75 f6                	jne    0x41ca1c
41ca26:	2b cf                	sub    %edi,%ecx
41ca28:	33 c0                	xor    %eax,%eax
41ca2a:	d1 f9                	sar    $1,%ecx
41ca2c:	83 f9 03             	cmp    $0x3,%ecx
41ca2f:	0f 94 c0             	sete   %al
41ca32:	89 46 10             	mov    %eax,0x10(%esi)
41ca35:	74 0a                	je     0x41ca41
41ca37:	ff 36                	push   (%esi)
41ca39:	e8 22 00 00 00       	call   0x41ca60
41ca3e:	59                   	pop    %ecx
41ca3f:	8b d0                	mov    %eax,%edx
41ca41:	53                   	push   %ebx
41ca42:	53                   	push   %ebx
41ca43:	6a 03                	push   $0x3
41ca45:	68 74 cd 41 00       	push   $0x41cd74
41ca4a:	89 56 0c             	mov    %edx,0xc(%esi)
41ca4d:	e8 72 6a ff ff       	call   0x4134c4
41ca52:	f6 46 08 04          	testb  $0x4,0x8(%esi)
41ca56:	75 03                	jne    0x41ca5b
41ca58:	89 5e 08             	mov    %ebx,0x8(%esi)
41ca5b:	5f                   	pop    %edi
41ca5c:	5e                   	pop    %esi
41ca5d:	5b                   	pop    %ebx
41ca5e:	5d                   	pop    %ebp
41ca5f:	c3                   	ret
41ca60:	8b ff                	mov    %edi,%edi
41ca62:	55                   	push   %ebp
41ca63:	8b ec                	mov    %esp,%ebp
41ca65:	8b 4d 08             	mov    0x8(%ebp),%ecx
41ca68:	33 d2                	xor    %edx,%edx
41ca6a:	85 c9                	test   %ecx,%ecx
41ca6c:	75 04                	jne    0x41ca72
41ca6e:	33 c0                	xor    %eax,%eax
41ca70:	5d                   	pop    %ebp
41ca71:	c3                   	ret
41ca72:	0f b7 01             	movzwl (%ecx),%eax
41ca75:	83 c1 02             	add    $0x2,%ecx
41ca78:	66 83 f8 41          	cmp    $0x41,%ax
41ca7c:	72 06                	jb     0x41ca84
41ca7e:	66 83 f8 5a          	cmp    $0x5a,%ax
41ca82:	76 09                	jbe    0x41ca8d
41ca84:	83 c0 9f             	add    $0xffffff9f,%eax
41ca87:	66 83 f8 19          	cmp    $0x19,%ax
41ca8b:	77 03                	ja     0x41ca90
41ca8d:	42                   	inc    %edx
41ca8e:	eb e2                	jmp    0x41ca72
41ca90:	8b c2                	mov    %edx,%eax
41ca92:	5d                   	pop    %ebp
41ca93:	c3                   	ret
41ca94:	8b ff                	mov    %edi,%edi
41ca96:	55                   	push   %ebp
41ca97:	8b ec                	mov    %esp,%ebp
41ca99:	81 ec 88 00 00 00    	sub    $0x88,%esp
41ca9f:	a1 14 30 43 00       	mov    0x433014,%eax
41caa4:	33 c5                	xor    %ebp,%eax
41caa6:	89 45 fc             	mov    %eax,-0x4(%ebp)
41caa9:	56                   	push   %esi
41caaa:	57                   	push   %edi
41caab:	8b 7d 08             	mov    0x8(%ebp),%edi
41caae:	e8 20 77 ff ff       	call   0x4141d3
41cab3:	8b f0                	mov    %eax,%esi
41cab5:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
41cabb:	6a 40                	push   $0x40
41cabd:	50                   	push   %eax
41cabe:	8b 4e 64             	mov    0x64(%esi),%ecx
41cac1:	f7 d9                	neg    %ecx
41cac3:	1b c9                	sbb    %ecx,%ecx
41cac5:	81 e1 05 f0 ff ff    	and    $0xfffff005,%ecx
41cacb:	81 c1 02 10 00 00    	add    $0x1002,%ecx
41cad1:	51                   	push   %ecx
41cad2:	57                   	push   %edi
41cad3:	e8 3f 6b ff ff       	call   0x413617
41cad8:	85 c0                	test   %eax,%eax
41cada:	75 09                	jne    0x41cae5
41cadc:	21 46 58             	and    %eax,0x58(%esi)
41cadf:	40                   	inc    %eax
41cae0:	e9 72 02 00 00       	jmp    0x41cd57
41cae5:	53                   	push   %ebx
41cae6:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
41caec:	50                   	push   %eax
41caed:	ff 76 54             	push   0x54(%esi)
41caf0:	e8 ea d8 ff ff       	call   0x41a3df
41caf5:	33 db                	xor    %ebx,%ebx
41caf7:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
41cafd:	59                   	pop    %ecx
41cafe:	59                   	pop    %ecx
41caff:	85 c0                	test   %eax,%eax
41cb01:	0f 85 bd 00 00 00    	jne    0x41cbc4
41cb07:	6a 40                	push   $0x40
41cb09:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
41cb0f:	50                   	push   %eax
41cb10:	8b 46 60             	mov    0x60(%esi),%eax
41cb13:	f7 d8                	neg    %eax
41cb15:	1b c0                	sbb    %eax,%eax
41cb17:	25 02 f0 ff ff       	and    $0xfffff002,%eax
41cb1c:	05 01 10 00 00       	add    $0x1001,%eax
41cb21:	50                   	push   %eax
41cb22:	57                   	push   %edi
41cb23:	e8 ef 6a ff ff       	call   0x413617
41cb28:	85 c0                	test   %eax,%eax
41cb2a:	75 08                	jne    0x41cb34
41cb2c:	21 5e 58             	and    %ebx,0x58(%esi)
41cb2f:	e9 cc 00 00 00       	jmp    0x41cc00
41cb34:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
41cb3a:	50                   	push   %eax
41cb3b:	ff 76 50             	push   0x50(%esi)
41cb3e:	e8 9c d8 ff ff       	call   0x41a3df
41cb43:	59                   	pop    %ecx
41cb44:	59                   	pop    %ecx
41cb45:	8b 4e 58             	mov    0x58(%esi),%ecx
41cb48:	85 c0                	test   %eax,%eax
41cb4a:	75 1b                	jne    0x41cb67
41cb4c:	81 c9 04 03 00 00    	or     $0x304,%ecx
41cb52:	89 4e 58             	mov    %ecx,0x58(%esi)
41cb55:	8b cf                	mov    %edi,%ecx
41cb57:	8d 51 02             	lea    0x2(%ecx),%edx
41cb5a:	66 8b 01             	mov    (%ecx),%ax
41cb5d:	83 c1 02             	add    $0x2,%ecx
41cb60:	66 3b c3             	cmp    %bx,%ax
41cb63:	75 f5                	jne    0x41cb5a
41cb65:	eb 3b                	jmp    0x41cba2
41cb67:	f6 c1 02             	test   $0x2,%cl
41cb6a:	75 58                	jne    0x41cbc4
41cb6c:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
41cb6f:	0f 84 93 00 00 00    	je     0x41cc08
41cb75:	ff 76 5c             	push   0x5c(%esi)
41cb78:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
41cb7e:	50                   	push   %eax
41cb7f:	ff 76 50             	push   0x50(%esi)
41cb82:	e8 2f 02 ff ff       	call   0x40cdb6
41cb87:	83 c4 0c             	add    $0xc,%esp
41cb8a:	85 c0                	test   %eax,%eax
41cb8c:	75 7a                	jne    0x41cc08
41cb8e:	83 4e 58 02          	orl    $0x2,0x58(%esi)
41cb92:	8b cf                	mov    %edi,%ecx
41cb94:	8d 51 02             	lea    0x2(%ecx),%edx
41cb97:	66 8b 01             	mov    (%ecx),%ax
41cb9a:	83 c1 02             	add    $0x2,%ecx
41cb9d:	66 3b c3             	cmp    %bx,%ax
41cba0:	75 f5                	jne    0x41cb97
41cba2:	2b ca                	sub    %edx,%ecx
41cba4:	d1 f9                	sar    $1,%ecx
41cba6:	8d 41 01             	lea    0x1(%ecx),%eax
41cba9:	50                   	push   %eax
41cbaa:	57                   	push   %edi
41cbab:	8d 86 a0 02 00 00    	lea    0x2a0(%esi),%eax
41cbb1:	6a 55                	push   $0x55
41cbb3:	50                   	push   %eax
41cbb4:	e8 15 db ff ff       	call   0x41a6ce
41cbb9:	83 c4 10             	add    $0x10,%esp
41cbbc:	85 c0                	test   %eax,%eax
41cbbe:	0f 85 a5 01 00 00    	jne    0x41cd69
41cbc4:	8b 46 58             	mov    0x58(%esi),%eax
41cbc7:	b9 00 03 00 00       	mov    $0x300,%ecx
41cbcc:	23 c1                	and    %ecx,%eax
41cbce:	3b c1                	cmp    %ecx,%eax
41cbd0:	0f 84 75 01 00 00    	je     0x41cd4b
41cbd6:	8b 4e 60             	mov    0x60(%esi),%ecx
41cbd9:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
41cbdf:	f7 d9                	neg    %ecx
41cbe1:	6a 40                	push   $0x40
41cbe3:	1b c9                	sbb    %ecx,%ecx
41cbe5:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
41cbeb:	50                   	push   %eax
41cbec:	81 c1 01 10 00 00    	add    $0x1001,%ecx
41cbf2:	51                   	push   %ecx
41cbf3:	57                   	push   %edi
41cbf4:	e8 1e 6a ff ff       	call   0x413617
41cbf9:	85 c0                	test   %eax,%eax
41cbfb:	75 35                	jne    0x41cc32
41cbfd:	89 5e 58             	mov    %ebx,0x58(%esi)
41cc00:	33 c0                	xor    %eax,%eax
41cc02:	40                   	inc    %eax
41cc03:	e9 4e 01 00 00       	jmp    0x41cd56
41cc08:	f6 46 58 01          	testb  $0x1,0x58(%esi)
41cc0c:	75 b6                	jne    0x41cbc4
41cc0e:	57                   	push   %edi
41cc0f:	e8 15 03 00 00       	call   0x41cf29
41cc14:	59                   	pop    %ecx
41cc15:	85 c0                	test   %eax,%eax
41cc17:	74 ab                	je     0x41cbc4
41cc19:	83 4e 58 01          	orl    $0x1,0x58(%esi)
41cc1d:	8b cf                	mov    %edi,%ecx
41cc1f:	8d 51 02             	lea    0x2(%ecx),%edx
41cc22:	66 8b 01             	mov    (%ecx),%ax
41cc25:	83 c1 02             	add    $0x2,%ecx
41cc28:	66 3b c3             	cmp    %bx,%ax
41cc2b:	75 f5                	jne    0x41cc22
41cc2d:	e9 70 ff ff ff       	jmp    0x41cba2
41cc32:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
41cc38:	50                   	push   %eax
41cc39:	ff 76 50             	push   0x50(%esi)
41cc3c:	e8 9e d7 ff ff       	call   0x41a3df
41cc41:	59                   	pop    %ecx
41cc42:	59                   	pop    %ecx
41cc43:	85 c0                	test   %eax,%eax
41cc45:	0f 85 00 01 00 00    	jne    0x41cd4b
41cc4b:	8b 4e 58             	mov    0x58(%esi),%ecx
41cc4e:	81 c9 00 02 00 00    	or     $0x200,%ecx
41cc54:	89 4e 58             	mov    %ecx,0x58(%esi)
41cc57:	39 5e 60             	cmp    %ebx,0x60(%esi)
41cc5a:	74 31                	je     0x41cc8d
41cc5c:	81 c9 00 01 00 00    	or     $0x100,%ecx
41cc62:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
41cc68:	89 4e 58             	mov    %ecx,0x58(%esi)
41cc6b:	66 39 1a             	cmp    %bx,(%edx)
41cc6e:	0f 85 d7 00 00 00    	jne    0x41cd4b
41cc74:	8b cf                	mov    %edi,%ecx
41cc76:	8d 59 02             	lea    0x2(%ecx),%ebx
41cc79:	66 8b 01             	mov    (%ecx),%ax
41cc7c:	83 c1 02             	add    $0x2,%ecx
41cc7f:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
41cc86:	75 f1                	jne    0x41cc79
41cc88:	e9 a6 00 00 00       	jmp    0x41cd33
41cc8d:	39 5e 5c             	cmp    %ebx,0x5c(%esi)
41cc90:	74 79                	je     0x41cd0b
41cc92:	8b 56 50             	mov    0x50(%esi),%edx
41cc95:	8d 5a 02             	lea    0x2(%edx),%ebx
41cc98:	66 8b 02             	mov    (%edx),%ax
41cc9b:	83 c2 02             	add    $0x2,%edx
41cc9e:	66 3b 85 78 ff ff ff 	cmp    -0x88(%ebp),%ax
41cca5:	75 f1                	jne    0x41cc98
41cca7:	2b d3                	sub    %ebx,%edx
41cca9:	d1 fa                	sar    $1,%edx
41ccab:	3b 56 5c             	cmp    0x5c(%esi),%edx
41ccae:	75 59                	jne    0x41cd09
41ccb0:	57                   	push   %edi
41ccb1:	e8 73 02 00 00       	call   0x41cf29
41ccb6:	59                   	pop    %ecx
41ccb7:	85 c0                	test   %eax,%eax
41ccb9:	75 24                	jne    0x41ccdf
41ccbb:	8b 5e 50             	mov    0x50(%esi),%ebx
41ccbe:	33 d2                	xor    %edx,%edx
41ccc0:	8d 4b 02             	lea    0x2(%ebx),%ecx
41ccc3:	66 8b 03             	mov    (%ebx),%ax
41ccc6:	83 c3 02             	add    $0x2,%ebx
41ccc9:	66 3b c2             	cmp    %dx,%ax
41cccc:	75 f5                	jne    0x41ccc3
41ccce:	ff 76 50             	push   0x50(%esi)
41ccd1:	2b d9                	sub    %ecx,%ebx
41ccd3:	d1 fb                	sar    $1,%ebx
41ccd5:	e8 86 fd ff ff       	call   0x41ca60
41ccda:	59                   	pop    %ecx
41ccdb:	3b c3                	cmp    %ebx,%eax
41ccdd:	74 6c                	je     0x41cd4b
41ccdf:	81 4e 58 00 01 00 00 	orl    $0x100,0x58(%esi)
41cce6:	8d 96 a0 02 00 00    	lea    0x2a0(%esi),%edx
41ccec:	33 c0                	xor    %eax,%eax
41ccee:	66 39 02             	cmp    %ax,(%edx)
41ccf1:	75 58                	jne    0x41cd4b