41e920:	8b 45 0c             	mov    0xc(%ebp),%eax
41e923:	83 ec 20             	sub    $0x20,%esp
41e926:	56                   	push   %esi
41e927:	85 c0                	test   %eax,%eax
41e929:	75 16                	jne    0x41e941
41e92b:	e8 3b 61 ff ff       	call   0x414a6b
41e930:	6a 16                	push   $0x16
41e932:	5e                   	pop    %esi
41e933:	89 30                	mov    %esi,(%eax)
41e935:	e8 a8 d3 fe ff       	call   0x40bce2
41e93a:	8b c6                	mov    %esi,%eax
41e93c:	e9 58 01 00 00       	jmp    0x41ea99
41e941:	8b 75 08             	mov    0x8(%ebp),%esi
41e944:	33 c9                	xor    %ecx,%ecx
41e946:	53                   	push   %ebx
41e947:	57                   	push   %edi
41e948:	89 08                	mov    %ecx,(%eax)
41e94a:	8b f9                	mov    %ecx,%edi
41e94c:	8b d9                	mov    %ecx,%ebx
41e94e:	89 7d e0             	mov    %edi,-0x20(%ebp)
41e951:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41e954:	89 4d e8             	mov    %ecx,-0x18(%ebp)
41e957:	39 0e                	cmp    %ecx,(%esi)
41e959:	74 56                	je     0x41e9b1
41e95b:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e95e:	66 c7 45 fc 2a 3f    	movw   $0x3f2a,-0x4(%ebp)
41e964:	50                   	push   %eax
41e965:	ff 36                	push   (%esi)
41e967:	88 4d fe             	mov    %cl,-0x2(%ebp)
41e96a:	e8 e1 6a 00 00       	call   0x425450
41e96f:	59                   	pop    %ecx
41e970:	59                   	pop    %ecx
41e971:	85 c0                	test   %eax,%eax
41e973:	75 14                	jne    0x41e989
41e975:	8d 45 e0             	lea    -0x20(%ebp),%eax
41e978:	50                   	push   %eax
41e979:	6a 00                	push   $0x0
41e97b:	6a 00                	push   $0x0
41e97d:	ff 36                	push   (%esi)
41e97f:	e8 27 01 00 00       	call   0x41eaab
41e984:	83 c4 10             	add    $0x10,%esp
41e987:	eb 0f                	jmp    0x41e998
41e989:	8d 4d e0             	lea    -0x20(%ebp),%ecx
41e98c:	51                   	push   %ecx
41e98d:	50                   	push   %eax
41e98e:	ff 36                	push   (%esi)
41e990:	e8 ac 01 00 00       	call   0x41eb41
41e995:	83 c4 0c             	add    $0xc,%esp
41e998:	8b f8                	mov    %eax,%edi
41e99a:	85 ff                	test   %edi,%edi
41e99c:	0f 85 eb 00 00 00    	jne    0x41ea8d
41e9a2:	83 c6 04             	add    $0x4,%esi
41e9a5:	33 c9                	xor    %ecx,%ecx
41e9a7:	39 0e                	cmp    %ecx,(%esi)
41e9a9:	75 b0                	jne    0x41e95b
41e9ab:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
41e9ae:	8b 7d e0             	mov    -0x20(%ebp),%edi
41e9b1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41e9b5:	8b c3                	mov    %ebx,%eax
41e9b7:	2b c7                	sub    %edi,%eax
41e9b9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41e9bc:	8b d0                	mov    %eax,%edx
41e9be:	83 c0 03             	add    $0x3,%eax
41e9c1:	c1 fa 02             	sar    $0x2,%edx
41e9c4:	42                   	inc    %edx
41e9c5:	c1 e8 02             	shr    $0x2,%eax
41e9c8:	3b df                	cmp    %edi,%ebx
41e9ca:	89 55 f4             	mov    %edx,-0xc(%ebp)
41e9cd:	1b f6                	sbb    %esi,%esi
41e9cf:	f7 d6                	not    %esi
41e9d1:	23 f0                	and    %eax,%esi
41e9d3:	74 30                	je     0x41ea05
41e9d5:	8b d7                	mov    %edi,%edx
41e9d7:	8b d9                	mov    %ecx,%ebx
41e9d9:	8b 0a                	mov    (%edx),%ecx
41e9db:	8d 41 01             	lea    0x1(%ecx),%eax
41e9de:	89 45 fc             	mov    %eax,-0x4(%ebp)
41e9e1:	8a 01                	mov    (%ecx),%al
41e9e3:	41                   	inc    %ecx
41e9e4:	84 c0                	test   %al,%al
41e9e6:	75 f9                	jne    0x41e9e1
41e9e8:	2b 4d fc             	sub    -0x4(%ebp),%ecx
41e9eb:	43                   	inc    %ebx
41e9ec:	8b 45 f8             	mov    -0x8(%ebp),%eax
41e9ef:	03 d9                	add    %ecx,%ebx
41e9f1:	83 c2 04             	add    $0x4,%edx
41e9f4:	40                   	inc    %eax
41e9f5:	89 45 f8             	mov    %eax,-0x8(%ebp)
41e9f8:	3b c6                	cmp    %esi,%eax
41e9fa:	75 dd                	jne    0x41e9d9
41e9fc:	8b 55 f4             	mov    -0xc(%ebp),%edx
41e9ff:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41ea02:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
41ea05:	6a 01                	push   $0x1
41ea07:	ff 75 fc             	push   -0x4(%ebp)
41ea0a:	52                   	push   %edx
41ea0b:	e8 80 74 ff ff       	call   0x415e90
41ea10:	8b f0                	mov    %eax,%esi
41ea12:	83 c4 0c             	add    $0xc,%esp
41ea15:	85 f6                	test   %esi,%esi
41ea17:	75 05                	jne    0x41ea1e
41ea19:	83 cf ff             	or     $0xffffffff,%edi
41ea1c:	eb 67                	jmp    0x41ea85
41ea1e:	8b 45 f4             	mov    -0xc(%ebp),%eax
41ea21:	8d 04 86             	lea    (%esi,%eax,4),%eax
41ea24:	89 45 f0             	mov    %eax,-0x10(%ebp)
41ea27:	8b d0                	mov    %eax,%edx
41ea29:	89 55 f4             	mov    %edx,-0xc(%ebp)
41ea2c:	3b fb                	cmp    %ebx,%edi
41ea2e:	74 4e                	je     0x41ea7e
41ea30:	8b c6                	mov    %esi,%eax
41ea32:	2b c7                	sub    %edi,%eax
41ea34:	89 45 ec             	mov    %eax,-0x14(%ebp)
41ea37:	8b 0f                	mov    (%edi),%ecx
41ea39:	8d 41 01             	lea    0x1(%ecx),%eax
41ea3c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ea3f:	8a 01                	mov    (%ecx),%al
41ea41:	41                   	inc    %ecx
41ea42:	84 c0                	test   %al,%al
41ea44:	75 f9                	jne    0x41ea3f
41ea46:	2b 4d f8             	sub    -0x8(%ebp),%ecx
41ea49:	8d 41 01             	lea    0x1(%ecx),%eax
41ea4c:	50                   	push   %eax
41ea4d:	ff 37                	push   (%edi)
41ea4f:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ea52:	8b 45 f0             	mov    -0x10(%ebp),%eax
41ea55:	2b c2                	sub    %edx,%eax
41ea57:	03 45 fc             	add    -0x4(%ebp),%eax
41ea5a:	50                   	push   %eax
41ea5b:	52                   	push   %edx
41ea5c:	e8 9b 64 00 00       	call   0x424efc
41ea61:	83 c4 10             	add    $0x10,%esp
41ea64:	85 c0                	test   %eax,%eax
41ea66:	75 36                	jne    0x41ea9e
41ea68:	8b 45 ec             	mov    -0x14(%ebp),%eax
41ea6b:	8b 55 f4             	mov    -0xc(%ebp),%edx
41ea6e:	89 14 38             	mov    %edx,(%eax,%edi,1)
41ea71:	83 c7 04             	add    $0x4,%edi
41ea74:	03 55 f8             	add    -0x8(%ebp),%edx
41ea77:	89 55 f4             	mov    %edx,-0xc(%ebp)
41ea7a:	3b fb                	cmp    %ebx,%edi
41ea7c:	75 b9                	jne    0x41ea37
41ea7e:	8b 45 0c             	mov    0xc(%ebp),%eax
41ea81:	33 ff                	xor    %edi,%edi
41ea83:	89 30                	mov    %esi,(%eax)
41ea85:	6a 00                	push   $0x0
41ea87:	e8 84 62 ff ff       	call   0x414d10
41ea8c:	59                   	pop    %ecx
41ea8d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
41ea90:	e8 30 02 00 00       	call   0x41ecc5
41ea95:	8b c7                	mov    %edi,%eax
41ea97:	5f                   	pop    %edi
41ea98:	5b                   	pop    %ebx
41ea99:	5e                   	pop    %esi
41ea9a:	8b e5                	mov    %ebp,%esp
41ea9c:	5d                   	pop    %ebp
41ea9d:	c3                   	ret
41ea9e:	33 c0                	xor    %eax,%eax
41eaa0:	50                   	push   %eax
41eaa1:	50                   	push   %eax
41eaa2:	50                   	push   %eax
41eaa3:	50                   	push   %eax
41eaa4:	50                   	push   %eax
41eaa5:	e8 65 d2 fe ff       	call   0x40bd0f
41eaaa:	cc                   	int3
41eaab:	8b ff                	mov    %edi,%edi
41eaad:	55                   	push   %ebp
41eaae:	8b ec                	mov    %esp,%ebp
41eab0:	51                   	push   %ecx
41eab1:	8b 4d 08             	mov    0x8(%ebp),%ecx
41eab4:	8d 51 01             	lea    0x1(%ecx),%edx
41eab7:	8a 01                	mov    (%ecx),%al
41eab9:	41                   	inc    %ecx
41eaba:	84 c0                	test   %al,%al
41eabc:	75 f9                	jne    0x41eab7
41eabe:	2b ca                	sub    %edx,%ecx
41eac0:	83 c8 ff             	or     $0xffffffff,%eax
41eac3:	57                   	push   %edi
41eac4:	8b 7d 10             	mov    0x10(%ebp),%edi
41eac7:	41                   	inc    %ecx
41eac8:	2b c7                	sub    %edi,%eax
41eaca:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41eacd:	3b c8                	cmp    %eax,%ecx
41eacf:	76 05                	jbe    0x41ead6
41ead1:	6a 0c                	push   $0xc
41ead3:	58                   	pop    %eax
41ead4:	eb 59                	jmp    0x41eb2f
41ead6:	53                   	push   %ebx
41ead7:	56                   	push   %esi
41ead8:	8d 5f 01             	lea    0x1(%edi),%ebx
41eadb:	03 d9                	add    %ecx,%ebx
41eadd:	6a 01                	push   $0x1
41eadf:	53                   	push   %ebx
41eae0:	e8 4a 59 ff ff       	call   0x41442f
41eae5:	8b f0                	mov    %eax,%esi
41eae7:	59                   	pop    %ecx
41eae8:	59                   	pop    %ecx
41eae9:	85 ff                	test   %edi,%edi
41eaeb:	74 12                	je     0x41eaff
41eaed:	57                   	push   %edi
41eaee:	ff 75 0c             	push   0xc(%ebp)
41eaf1:	53                   	push   %ebx
41eaf2:	56                   	push   %esi
41eaf3:	e8 04 64 00 00       	call   0x424efc
41eaf8:	83 c4 10             	add    $0x10,%esp
41eafb:	85 c0                	test   %eax,%eax
41eafd:	75 35                	jne    0x41eb34
41eaff:	ff 75 fc             	push   -0x4(%ebp)
41eb02:	2b df                	sub    %edi,%ebx
41eb04:	8d 04 3e             	lea    (%esi,%edi,1),%eax
41eb07:	ff 75 08             	push   0x8(%ebp)
41eb0a:	53                   	push   %ebx
41eb0b:	50                   	push   %eax
41eb0c:	e8 eb 63 00 00       	call   0x424efc
41eb11:	83 c4 10             	add    $0x10,%esp
41eb14:	85 c0                	test   %eax,%eax
41eb16:	75 1c                	jne    0x41eb34
41eb18:	8b 4d 14             	mov    0x14(%ebp),%ecx
41eb1b:	56                   	push   %esi
41eb1c:	e8 c9 01 00 00       	call   0x41ecea
41eb21:	6a 00                	push   $0x0
41eb23:	8b f0                	mov    %eax,%esi
41eb25:	e8 e6 61 ff ff       	call   0x414d10
41eb2a:	59                   	pop    %ecx
41eb2b:	8b c6                	mov    %esi,%eax
41eb2d:	5e                   	pop    %esi
41eb2e:	5b                   	pop    %ebx
41eb2f:	5f                   	pop    %edi
41eb30:	8b e5                	mov    %ebp,%esp
41eb32:	5d                   	pop    %ebp
41eb33:	c3                   	ret
41eb34:	33 c0                	xor    %eax,%eax
41eb36:	50                   	push   %eax
41eb37:	50                   	push   %eax
41eb38:	50                   	push   %eax
41eb39:	50                   	push   %eax
41eb3a:	50                   	push   %eax
41eb3b:	e8 cf d1 fe ff       	call   0x40bd0f
41eb40:	cc                   	int3
41eb41:	8b ff                	mov    %edi,%edi
41eb43:	55                   	push   %ebp
41eb44:	8b ec                	mov    %esp,%ebp
41eb46:	81 ec 50 01 00 00    	sub    $0x150,%esp
41eb4c:	a1 28 ba 43 00       	mov    0x43ba28,%eax
41eb51:	33 c5                	xor    %ebp,%eax
41eb53:	89 45 fc             	mov    %eax,-0x4(%ebp)
41eb56:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41eb59:	53                   	push   %ebx
41eb5a:	8b 5d 08             	mov    0x8(%ebp),%ebx
41eb5d:	56                   	push   %esi
41eb5e:	8b 75 10             	mov    0x10(%ebp),%esi
41eb61:	57                   	push   %edi
41eb62:	89 b5 b8 fe ff ff    	mov    %esi,-0x148(%ebp)
41eb68:	eb 19                	jmp    0x41eb83
41eb6a:	8a 01                	mov    (%ecx),%al
41eb6c:	3c 2f                	cmp    $0x2f,%al
41eb6e:	74 17                	je     0x41eb87
41eb70:	3c 5c                	cmp    $0x5c,%al
41eb72:	74 13                	je     0x41eb87
41eb74:	3c 3a                	cmp    $0x3a,%al
41eb76:	74 0f                	je     0x41eb87
41eb78:	51                   	push   %ecx
41eb79:	53                   	push   %ebx
41eb7a:	e8 11 69 00 00       	call   0x425490
41eb7f:	59                   	pop    %ecx
41eb80:	59                   	pop    %ecx
41eb81:	8b c8                	mov    %eax,%ecx
41eb83:	3b cb                	cmp    %ebx,%ecx
41eb85:	75 e3                	jne    0x41eb6a
41eb87:	8a 11                	mov    (%ecx),%dl
41eb89:	80 fa 3a             	cmp    $0x3a,%dl
41eb8c:	75 17                	jne    0x41eba5
41eb8e:	8d 43 01             	lea    0x1(%ebx),%eax
41eb91:	3b c8                	cmp    %eax,%ecx
41eb93:	74 10                	je     0x41eba5
41eb95:	56                   	push   %esi
41eb96:	33 ff                	xor    %edi,%edi
41eb98:	57                   	push   %edi
41eb99:	57                   	push   %edi
41eb9a:	53                   	push   %ebx
41eb9b:	e8 0b ff ff ff       	call   0x41eaab
41eba0:	83 c4 10             	add    $0x10,%esp
41eba3:	eb 7a                	jmp    0x41ec1f
41eba5:	33 ff                	xor    %edi,%edi
41eba7:	80 fa 2f             	cmp    $0x2f,%dl
41ebaa:	74 0e                	je     0x41ebba
41ebac:	80 fa 5c             	cmp    $0x5c,%dl
41ebaf:	74 09                	je     0x41ebba
41ebb1:	80 fa 3a             	cmp    $0x3a,%dl
41ebb4:	74 04                	je     0x41ebba
41ebb6:	8b c7                	mov    %edi,%eax
41ebb8:	eb 03                	jmp    0x41ebbd
41ebba:	33 c0                	xor    %eax,%eax
41ebbc:	40                   	inc    %eax
41ebbd:	0f b6 c0             	movzbl %al,%eax
41ebc0:	2b cb                	sub    %ebx,%ecx
41ebc2:	41                   	inc    %ecx
41ebc3:	f7 d8                	neg    %eax
41ebc5:	68 40 01 00 00       	push   $0x140
41ebca:	1b c0                	sbb    %eax,%eax
41ebcc:	23 c1                	and    %ecx,%eax
41ebce:	89 85 b4 fe ff ff    	mov    %eax,-0x14c(%ebp)
41ebd4:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
41ebda:	57                   	push   %edi
41ebdb:	50                   	push   %eax
41ebdc:	e8 ff 9d fe ff       	call   0x4089e0
41ebe1:	83 c4 0c             	add    $0xc,%esp
41ebe4:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
41ebea:	57                   	push   %edi
41ebeb:	57                   	push   %edi
41ebec:	57                   	push   %edi
41ebed:	50                   	push   %eax
41ebee:	57                   	push   %edi
41ebef:	53                   	push   %ebx
41ebf0:	ff 15 08 72 42 00    	call   *0x427208
41ebf6:	8b f0                	mov    %eax,%esi
41ebf8:	8b 85 b8 fe ff ff    	mov    -0x148(%ebp),%eax
41ebfe:	83 fe ff             	cmp    $0xffffffff,%esi
41ec01:	75 2d                	jne    0x41ec30
41ec03:	50                   	push   %eax
41ec04:	57                   	push   %edi
41ec05:	57                   	push   %edi
41ec06:	53                   	push   %ebx
41ec07:	e8 9f fe ff ff       	call   0x41eaab
41ec0c:	83 c4 10             	add    $0x10,%esp
41ec0f:	8b f8                	mov    %eax,%edi
41ec11:	83 fe ff             	cmp    $0xffffffff,%esi
41ec14:	74 07                	je     0x41ec1d
41ec16:	56                   	push   %esi
41ec17:	ff 15 04 72 42 00    	call   *0x427204
41ec1d:	8b c7                	mov    %edi,%eax
41ec1f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ec22:	5f                   	pop    %edi
41ec23:	5e                   	pop    %esi
41ec24:	33 cd                	xor    %ebp,%ecx
41ec26:	5b                   	pop    %ebx
41ec27:	e8 34 84 fe ff       	call   0x407060
41ec2c:	8b e5                	mov    %ebp,%esp
41ec2e:	5d                   	pop    %ebp
41ec2f:	c3                   	ret
41ec30:	8b 48 04             	mov    0x4(%eax),%ecx
41ec33:	2b 08                	sub    (%eax),%ecx
41ec35:	c1 f9 02             	sar    $0x2,%ecx
41ec38:	89 8d b0 fe ff ff    	mov    %ecx,-0x150(%ebp)
41ec3e:	80 bd e8 fe ff ff 2e 	cmpb   $0x2e,-0x118(%ebp)
41ec45:	75 18                	jne    0x41ec5f
41ec47:	8a 8d e9 fe ff ff    	mov    -0x117(%ebp),%cl
41ec4d:	84 c9                	test   %cl,%cl
41ec4f:	74 29                	je     0x41ec7a
41ec51:	80 f9 2e             	cmp    $0x2e,%cl