41ca21:	6a 16                	push   $0x16
41ca23:	5e                   	pop    %esi
41ca24:	89 30                	mov    %esi,(%eax)
41ca26:	e8 b7 f2 fe ff       	call   0x40bce2
41ca2b:	8b c6                	mov    %esi,%eax
41ca2d:	eb 6b                	jmp    0x41ca9a
41ca2f:	ff 75 1c             	push   0x1c(%ebp)
41ca32:	50                   	push   %eax
41ca33:	ff 75 14             	push   0x14(%ebp)
41ca36:	56                   	push   %esi
41ca37:	e8 16 fd ff ff       	call   0x41c752
41ca3c:	83 c4 10             	add    $0x10,%esp
41ca3f:	83 f8 ff             	cmp    $0xffffffff,%eax
41ca42:	75 10                	jne    0x41ca54
41ca44:	85 f6                	test   %esi,%esi
41ca46:	74 03                	je     0x41ca4b
41ca48:	c6 06 00             	movb   $0x0,(%esi)
41ca4b:	e8 1b 80 ff ff       	call   0x414a6b
41ca50:	8b 00                	mov    (%eax),%eax
41ca52:	eb 45                	jmp    0x41ca99
41ca54:	40                   	inc    %eax
41ca55:	85 f6                	test   %esi,%esi
41ca57:	74 35                	je     0x41ca8e
41ca59:	3b c7                	cmp    %edi,%eax
41ca5b:	76 27                	jbe    0x41ca84
41ca5d:	83 7d 18 ff          	cmpl   $0xffffffff,0x18(%ebp)
41ca61:	74 1a                	je     0x41ca7d
41ca63:	c6 06 00             	movb   $0x0,(%esi)
41ca66:	3b f8                	cmp    %eax,%edi
41ca68:	77 13                	ja     0x41ca7d
41ca6a:	e8 fc 7f ff ff       	call   0x414a6b
41ca6f:	6a 22                	push   $0x22
41ca71:	5e                   	pop    %esi
41ca72:	89 30                	mov    %esi,(%eax)
41ca74:	e8 69 f2 fe ff       	call   0x40bce2
41ca79:	8b c6                	mov    %esi,%eax
41ca7b:	eb 1c                	jmp    0x41ca99
41ca7d:	6a 50                	push   $0x50
41ca7f:	8b c7                	mov    %edi,%eax
41ca81:	59                   	pop    %ecx
41ca82:	eb 03                	jmp    0x41ca87
41ca84:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ca87:	c6 44 30 ff 00       	movb   $0x0,-0x1(%eax,%esi,1)
41ca8c:	eb 03                	jmp    0x41ca91
41ca8e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ca91:	85 db                	test   %ebx,%ebx
41ca93:	74 02                	je     0x41ca97
41ca95:	89 03                	mov    %eax,(%ebx)
41ca97:	8b c1                	mov    %ecx,%eax
41ca99:	5b                   	pop    %ebx
41ca9a:	5f                   	pop    %edi
41ca9b:	5e                   	pop    %esi
41ca9c:	8b e5                	mov    %ebp,%esp
41ca9e:	5d                   	pop    %ebp
41ca9f:	c3                   	ret
41caa0:	6a 0c                	push   $0xc
41caa2:	68 50 82 43 00       	push   $0x438250
41caa7:	e8 74 ab fe ff       	call   0x407620
41caac:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41cab0:	8b 45 08             	mov    0x8(%ebp),%eax
41cab3:	ff 30                	push   (%eax)
41cab5:	e8 04 79 ff ff       	call   0x4143be
41caba:	59                   	pop    %ecx
41cabb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41cabf:	8b 35 28 ba 43 00    	mov    0x43ba28,%esi
41cac5:	8b ce                	mov    %esi,%ecx
41cac7:	83 e1 1f             	and    $0x1f,%ecx
41caca:	33 35 e8 9f 83 02    	xor    0x2839fe8,%esi
41cad0:	d3 ce                	ror    %cl,%esi
41cad2:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41cad5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41cadc:	e8 0d 00 00 00       	call   0x41caee
41cae1:	8b c6                	mov    %esi,%eax
41cae3:	e8 7e ab fe ff       	call   0x407666
41cae8:	c2 0c 00             	ret    $0xc
41caeb:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41caee:	8b 4d 10             	mov    0x10(%ebp),%ecx
41caf1:	ff 31                	push   (%ecx)
41caf3:	e8 0e 79 ff ff       	call   0x414406
41caf8:	59                   	pop    %ecx
41caf9:	c3                   	ret
41cafa:	8b ff                	mov    %edi,%edi
41cafc:	55                   	push   %ebp
41cafd:	8b ec                	mov    %esp,%ebp
41caff:	83 ec 0c             	sub    $0xc,%esp
41cb02:	8b 45 08             	mov    0x8(%ebp),%eax
41cb05:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41cb08:	89 45 f8             	mov    %eax,-0x8(%ebp)
41cb0b:	89 45 f4             	mov    %eax,-0xc(%ebp)
41cb0e:	8d 45 f8             	lea    -0x8(%ebp),%eax
41cb11:	50                   	push   %eax
41cb12:	ff 75 0c             	push   0xc(%ebp)
41cb15:	8d 45 f4             	lea    -0xc(%ebp),%eax
41cb18:	50                   	push   %eax
41cb19:	e8 82 ff ff ff       	call   0x41caa0
41cb1e:	8b e5                	mov    %ebp,%esp
41cb20:	5d                   	pop    %ebp
41cb21:	c3                   	ret
41cb22:	8b ff                	mov    %edi,%edi
41cb24:	55                   	push   %ebp
41cb25:	8b ec                	mov    %esp,%ebp
41cb27:	8b 45 08             	mov    0x8(%ebp),%eax
41cb2a:	48                   	dec    %eax
41cb2b:	83 e8 01             	sub    $0x1,%eax
41cb2e:	74 2d                	je     0x41cb5d
41cb30:	83 e8 04             	sub    $0x4,%eax
41cb33:	74 13                	je     0x41cb48
41cb35:	83 e8 09             	sub    $0x9,%eax
41cb38:	74 1c                	je     0x41cb56
41cb3a:	83 e8 06             	sub    $0x6,%eax
41cb3d:	74 10                	je     0x41cb4f
41cb3f:	83 e8 01             	sub    $0x1,%eax
41cb42:	74 04                	je     0x41cb48
41cb44:	33 c0                	xor    %eax,%eax
41cb46:	5d                   	pop    %ebp
41cb47:	c3                   	ret
41cb48:	b8 e8 9f 83 02       	mov    $0x2839fe8,%eax
41cb4d:	5d                   	pop    %ebp
41cb4e:	c3                   	ret
41cb4f:	b8 e4 9f 83 02       	mov    $0x2839fe4,%eax
41cb54:	5d                   	pop    %ebp
41cb55:	c3                   	ret
41cb56:	b8 ec 9f 83 02       	mov    $0x2839fec,%eax
41cb5b:	5d                   	pop    %ebp
41cb5c:	c3                   	ret
41cb5d:	b8 e0 9f 83 02       	mov    $0x2839fe0,%eax
41cb62:	5d                   	pop    %ebp
41cb63:	c3                   	ret
41cb64:	8b ff                	mov    %edi,%edi
41cb66:	55                   	push   %ebp
41cb67:	8b ec                	mov    %esp,%ebp
41cb69:	8d 41 04             	lea    0x4(%ecx),%eax
41cb6c:	8b d0                	mov    %eax,%edx
41cb6e:	2b d1                	sub    %ecx,%edx
41cb70:	83 c2 03             	add    $0x3,%edx
41cb73:	56                   	push   %esi
41cb74:	33 f6                	xor    %esi,%esi
41cb76:	c1 ea 02             	shr    $0x2,%edx
41cb79:	3b c1                	cmp    %ecx,%eax
41cb7b:	1b c0                	sbb    %eax,%eax
41cb7d:	f7 d0                	not    %eax
41cb7f:	23 c2                	and    %edx,%eax
41cb81:	74 0d                	je     0x41cb90
41cb83:	8b 55 08             	mov    0x8(%ebp),%edx
41cb86:	46                   	inc    %esi
41cb87:	89 11                	mov    %edx,(%ecx)
41cb89:	8d 49 04             	lea    0x4(%ecx),%ecx
41cb8c:	3b f0                	cmp    %eax,%esi
41cb8e:	75 f6                	jne    0x41cb86
41cb90:	5e                   	pop    %esi
41cb91:	5d                   	pop    %ebp
41cb92:	c2 04 00             	ret    $0x4
41cb95:	8b ff                	mov    %edi,%edi
41cb97:	55                   	push   %ebp
41cb98:	8b ec                	mov    %esp,%ebp
41cb9a:	6b 0d 90 c5 42 00 0c 	imul   $0xc,0x42c590,%ecx
41cba1:	8b 45 0c             	mov    0xc(%ebp),%eax
41cba4:	03 c8                	add    %eax,%ecx
41cba6:	3b c1                	cmp    %ecx,%eax
41cba8:	74 0f                	je     0x41cbb9
41cbaa:	8b 55 08             	mov    0x8(%ebp),%edx
41cbad:	39 50 04             	cmp    %edx,0x4(%eax)
41cbb0:	74 09                	je     0x41cbbb
41cbb2:	83 c0 0c             	add    $0xc,%eax
41cbb5:	3b c1                	cmp    %ecx,%eax
41cbb7:	75 f4                	jne    0x41cbad
41cbb9:	33 c0                	xor    %eax,%eax
41cbbb:	5d                   	pop    %ebp
41cbbc:	c3                   	ret
41cbbd:	8b ff                	mov    %edi,%edi
41cbbf:	55                   	push   %ebp
41cbc0:	8b ec                	mov    %esp,%ebp
41cbc2:	51                   	push   %ecx
41cbc3:	8d 45 ff             	lea    -0x1(%ebp),%eax
41cbc6:	50                   	push   %eax
41cbc7:	6a 03                	push   $0x3
41cbc9:	e8 2c ff ff ff       	call   0x41cafa
41cbce:	59                   	pop    %ecx
41cbcf:	59                   	pop    %ecx
41cbd0:	8b e5                	mov    %ebp,%esp
41cbd2:	5d                   	pop    %ebp
41cbd3:	c3                   	ret
41cbd4:	8b ff                	mov    %edi,%edi
41cbd6:	55                   	push   %ebp
41cbd7:	8b ec                	mov    %esp,%ebp
41cbd9:	ff 75 08             	push   0x8(%ebp)
41cbdc:	b9 e0 9f 83 02       	mov    $0x2839fe0,%ecx
41cbe1:	e8 7e ff ff ff       	call   0x41cb64
41cbe6:	ff 75 08             	push   0x8(%ebp)
41cbe9:	b9 e4 9f 83 02       	mov    $0x2839fe4,%ecx
41cbee:	e8 71 ff ff ff       	call   0x41cb64
41cbf3:	ff 75 08             	push   0x8(%ebp)
41cbf6:	b9 e8 9f 83 02       	mov    $0x2839fe8,%ecx
41cbfb:	e8 64 ff ff ff       	call   0x41cb64
41cc00:	ff 75 08             	push   0x8(%ebp)
41cc03:	b9 ec 9f 83 02       	mov    $0x2839fec,%ecx
41cc08:	e8 57 ff ff ff       	call   0x41cb64
41cc0d:	5d                   	pop    %ebp
41cc0e:	c3                   	ret
41cc0f:	e8 48 bf ff ff       	call   0x418b5c
41cc14:	83 c0 08             	add    $0x8,%eax
41cc17:	c3                   	ret
41cc18:	6a 2c                	push   $0x2c
41cc1a:	68 30 82 43 00       	push   $0x438230
41cc1f:	e8 ec 97 00 00       	call   0x426410
41cc24:	33 db                	xor    %ebx,%ebx
41cc26:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
41cc29:	21 5d cc             	and    %ebx,-0x34(%ebp)
41cc2c:	b1 01                	mov    $0x1,%cl
41cc2e:	88 4d e3             	mov    %cl,-0x1d(%ebp)
41cc31:	8b 75 08             	mov    0x8(%ebp),%esi
41cc34:	6a 08                	push   $0x8
41cc36:	5f                   	pop    %edi
41cc37:	3b f7                	cmp    %edi,%esi
41cc39:	7f 18                	jg     0x41cc53
41cc3b:	74 35                	je     0x41cc72
41cc3d:	8d 46 ff             	lea    -0x1(%esi),%eax
41cc40:	83 e8 01             	sub    $0x1,%eax
41cc43:	74 22                	je     0x41cc67
41cc45:	48                   	dec    %eax
41cc46:	83 e8 01             	sub    $0x1,%eax
41cc49:	74 27                	je     0x41cc72
41cc4b:	48                   	dec    %eax
41cc4c:	83 e8 01             	sub    $0x1,%eax
41cc4f:	75 4c                	jne    0x41cc9d
41cc51:	eb 14                	jmp    0x41cc67
41cc53:	83 fe 0b             	cmp    $0xb,%esi
41cc56:	74 1a                	je     0x41cc72
41cc58:	83 fe 0f             	cmp    $0xf,%esi
41cc5b:	74 0a                	je     0x41cc67
41cc5d:	83 fe 14             	cmp    $0x14,%esi
41cc60:	7e 3b                	jle    0x41cc9d
41cc62:	83 fe 16             	cmp    $0x16,%esi
41cc65:	7f 36                	jg     0x41cc9d
41cc67:	56                   	push   %esi
41cc68:	e8 b5 fe ff ff       	call   0x41cb22
41cc6d:	83 c4 04             	add    $0x4,%esp
41cc70:	eb 45                	jmp    0x41ccb7
41cc72:	e8 69 bf ff ff       	call   0x418be0
41cc77:	8b d8                	mov    %eax,%ebx
41cc79:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
41cc7c:	85 db                	test   %ebx,%ebx
41cc7e:	75 08                	jne    0x41cc88
41cc80:	83 c8 ff             	or     $0xffffffff,%eax
41cc83:	e9 92 01 00 00       	jmp    0x41ce1a
41cc88:	ff 33                	push   (%ebx)
41cc8a:	56                   	push   %esi
41cc8b:	e8 05 ff ff ff       	call   0x41cb95
41cc90:	59                   	pop    %ecx
41cc91:	59                   	pop    %ecx
41cc92:	33 c9                	xor    %ecx,%ecx
41cc94:	85 c0                	test   %eax,%eax
41cc96:	0f 95 c1             	setne  %cl
41cc99:	85 c9                	test   %ecx,%ecx
41cc9b:	75 12                	jne    0x41ccaf
41cc9d:	e8 c9 7d ff ff       	call   0x414a6b
41cca2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41cca8:	e8 35 f0 fe ff       	call   0x40bce2
41ccad:	eb d1                	jmp    0x41cc80
41ccaf:	83 c0 08             	add    $0x8,%eax
41ccb2:	32 c9                	xor    %cl,%cl
41ccb4:	88 4d e3             	mov    %cl,-0x1d(%ebp)
41ccb7:	89 45 d8             	mov    %eax,-0x28(%ebp)
41ccba:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
41ccbe:	84 c9                	test   %cl,%cl
41ccc0:	74 0b                	je     0x41cccd
41ccc2:	6a 03                	push   $0x3
41ccc4:	e8 f5 76 ff ff       	call   0x4143be
41ccc9:	59                   	pop    %ecx
41ccca:	8a 4d e3             	mov    -0x1d(%ebp),%cl
41cccd:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
41ccd1:	c6 45 e2 00          	movb   $0x0,-0x1e(%ebp)
41ccd5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41ccd9:	8b 45 d8             	mov    -0x28(%ebp),%eax
41ccdc:	84 c9                	test   %cl,%cl
41ccde:	74 14                	je     0x41ccf4
41cce0:	8b 15 28 ba 43 00    	mov    0x43ba28,%edx
41cce6:	8b ca                	mov    %edx,%ecx
41cce8:	83 e1 1f             	and    $0x1f,%ecx
41cceb:	33 10                	xor    (%eax),%edx
41cced:	d3 ca                	ror    %cl,%edx
41ccef:	8a 4d e3             	mov    -0x1d(%ebp),%cl
41ccf2:	eb 02                	jmp    0x41ccf6
41ccf4:	8b 10                	mov    (%eax),%edx
41ccf6:	8b c2                	mov    %edx,%eax
41ccf8:	89 45 dc             	mov    %eax,-0x24(%ebp)
41ccfb:	33 d2                	xor    %edx,%edx
41ccfd:	83 f8 01             	cmp    $0x1,%eax
41cd00:	0f 94 c2             	sete   %dl
41cd03:	89 55 c8             	mov    %edx,-0x38(%ebp)
41cd06:	88 55 e2             	mov    %dl,-0x1e(%ebp)
41cd09:	84 d2                	test   %dl,%dl
41cd0b:	0f 85 8a 00 00 00    	jne    0x41cd9b
41cd11:	85 c0                	test   %eax,%eax
41cd13:	75 13                	jne    0x41cd28
41cd15:	84 c9                	test   %cl,%cl
41cd17:	74 08                	je     0x41cd21
41cd19:	6a 03                	push   $0x3
41cd1b:	e8 e6 76 ff ff       	call   0x414406
41cd20:	59                   	pop    %ecx
41cd21:	6a 03                	push   $0x3
41cd23:	e8 6b 8e ff ff       	call   0x415b93
41cd28:	3b f7                	cmp    %edi,%esi
41cd2a:	74 0a                	je     0x41cd36
41cd2c:	83 fe 0b             	cmp    $0xb,%esi
41cd2f:	74 05                	je     0x41cd36
41cd31:	83 fe 04             	cmp    $0x4,%esi
41cd34:	75 23                	jne    0x41cd59
41cd36:	8b 43 04             	mov    0x4(%ebx),%eax
41cd39:	89 45 d0             	mov    %eax,-0x30(%ebp)
41cd3c:	83 63 04 00          	andl   $0x0,0x4(%ebx)
41cd40:	3b f7                	cmp    %edi,%esi
41cd42:	75 3b                	jne    0x41cd7f
41cd44:	e8 c6 fe ff ff       	call   0x41cc0f
41cd49:	8b 00                	mov    (%eax),%eax
41cd4b:	89 45 cc             	mov    %eax,-0x34(%ebp)
41cd4e:	e8 bc fe ff ff       	call   0x41cc0f
41cd53:	c7 00 8c 00 00 00    	movl   $0x8c,(%eax)
41cd59:	3b f7                	cmp    %edi,%esi
41cd5b:	75 22                	jne    0x41cd7f
41cd5d:	6b 05 94 c5 42 00 0c 	imul   $0xc,0x42c594,%eax
41cd64:	03 03                	add    (%ebx),%eax
41cd66:	6b 0d 98 c5 42 00 0c 	imul   $0xc,0x42c598,%ecx
41cd6d:	03 c8                	add    %eax,%ecx
41cd6f:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41cd72:	3b c1                	cmp    %ecx,%eax
41cd74:	74 25                	je     0x41cd9b
41cd76:	83 60 08 00          	andl   $0x0,0x8(%eax)
41cd7a:	83 c0 0c             	add    $0xc,%eax
41cd7d:	eb f0                	jmp    0x41cd6f
41cd7f:	a1 28 ba 43 00       	mov    0x43ba28,%eax
41cd84:	83 e0 1f             	and    $0x1f,%eax
41cd87:	6a 20                	push   $0x20
41cd89:	59                   	pop    %ecx
41cd8a:	2b c8                	sub    %eax,%ecx
41cd8c:	33 c0                	xor    %eax,%eax
41cd8e:	d3 c8                	ror    %cl,%eax
41cd90:	33 05 28 ba 43 00    	xor    0x43ba28,%eax
41cd96:	8b 4d d8             	mov    -0x28(%ebp),%ecx
41cd99:	89 01                	mov    %eax,(%ecx)
41cd9b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41cda2:	e8 31 00 00 00       	call   0x41cdd8
41cda7:	80 7d c8 00          	cmpb   $0x0,-0x38(%ebp)
41cdab:	75 6b                	jne    0x41ce18
41cdad:	3b f7                	cmp    %edi,%esi
41cdaf:	75 36                	jne    0x41cde7
41cdb1:	e8 a6 bd ff ff       	call   0x418b5c
41cdb6:	ff 70 08             	push   0x8(%eax)
41cdb9:	57                   	push   %edi
41cdba:	8b 4d dc             	mov    -0x24(%ebp),%ecx