41fd55:	e8 33 1d 00 00       	call   0x421a8d
41fd5a:	8b c6                	mov    %esi,%eax
41fd5c:	5f                   	pop    %edi
41fd5d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41fd60:	5e                   	pop    %esi
41fd61:	33 cd                	xor    %ebp,%ecx
41fd63:	5b                   	pop    %ebx
41fd64:	e8 41 9e ff ff       	call   0x419baa
41fd69:	c9                   	leave
41fd6a:	c3                   	ret
41fd6b:	8b ff                	mov    %edi,%edi
41fd6d:	55                   	push   %ebp
41fd6e:	8b ec                	mov    %esp,%ebp
41fd70:	81 ec 74 04 00 00    	sub    $0x474,%esp
41fd76:	a1 14 50 45 00       	mov    0x455014,%eax
41fd7b:	33 c5                	xor    %ebp,%eax
41fd7d:	89 45 fc             	mov    %eax,-0x4(%ebp)
41fd80:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
41fd84:	8b 45 10             	mov    0x10(%ebp),%eax
41fd87:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
41fd8a:	53                   	push   %ebx
41fd8b:	56                   	push   %esi
41fd8c:	8b 75 14             	mov    0x14(%ebp),%esi
41fd8f:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
41fd95:	75 23                	jne    0x41fdba
41fd97:	51                   	push   %ecx
41fd98:	33 db                	xor    %ebx,%ebx
41fd9a:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
41fd9e:	53                   	push   %ebx
41fd9f:	53                   	push   %ebx
41fda0:	53                   	push   %ebx
41fda1:	53                   	push   %ebx
41fda2:	53                   	push   %ebx
41fda3:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
41fdaa:	e8 57 fb ff ff       	call   0x41f906
41fdaf:	83 c4 18             	add    $0x18,%esp
41fdb2:	83 c8 ff             	or     $0xffffffff,%eax
41fdb5:	e9 26 01 00 00       	jmp    0x41fee0
41fdba:	85 f6                	test   %esi,%esi
41fdbc:	74 04                	je     0x41fdc2
41fdbe:	85 c0                	test   %eax,%eax
41fdc0:	74 d5                	je     0x41fd97
41fdc2:	8b 55 08             	mov    0x8(%ebp),%edx
41fdc5:	33 c0                	xor    %eax,%eax
41fdc7:	57                   	push   %edi
41fdc8:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
41fdce:	33 db                	xor    %ebx,%ebx
41fdd0:	ab                   	stos   %eax,%es:(%edi)
41fdd1:	ab                   	stos   %eax,%es:(%edi)
41fdd2:	ab                   	stos   %eax,%es:(%edi)
41fdd3:	ab                   	stos   %eax,%es:(%edi)
41fdd4:	8b c2                	mov    %edx,%eax
41fdd6:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
41fddc:	83 e0 02             	and    $0x2,%eax
41fddf:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
41fde5:	0b c3                	or     %ebx,%eax
41fde7:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
41fded:	89 b5 94 fb ff ff    	mov    %esi,-0x46c(%ebp)
41fdf3:	89 9d 98 fb ff ff    	mov    %ebx,-0x468(%ebp)
41fdf9:	75 0a                	jne    0x41fe05
41fdfb:	88 9d 9c fb ff ff    	mov    %bl,-0x464(%ebp)
41fe01:	85 ff                	test   %edi,%edi
41fe03:	75 07                	jne    0x41fe0c
41fe05:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
41fe0c:	ff 75 20             	push   0x20(%ebp)
41fe0f:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
41fe15:	51                   	push   %ecx
41fe16:	ff 75 18             	push   0x18(%ebp)
41fe19:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
41fe1f:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
41fe25:	ff 75 0c             	push   0xc(%ebp)
41fe28:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
41fe2e:	52                   	push   %edx
41fe2f:	50                   	push   %eax
41fe30:	e8 ec 1b 00 00       	call   0x421a21
41fe35:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
41fe3b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
41fe3e:	e8 93 21 00 00       	call   0x421fd6
41fe43:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
41fe49:	85 ff                	test   %edi,%edi
41fe4b:	74 7f                	je     0x41fecc
41fe4d:	8b 4d 08             	mov    0x8(%ebp),%ecx
41fe50:	83 e1 01             	and    $0x1,%ecx
41fe53:	0b cb                	or     %ebx,%ecx
41fe55:	74 24                	je     0x41fe7b
41fe57:	85 f6                	test   %esi,%esi
41fe59:	75 04                	jne    0x41fe5f
41fe5b:	85 c0                	test   %eax,%eax
41fe5d:	75 4c                	jne    0x41feab
41fe5f:	8b 8d 98 fb ff ff    	mov    -0x468(%ebp),%ecx
41fe65:	3b ce                	cmp    %esi,%ecx
41fe67:	74 08                	je     0x41fe71
41fe69:	33 c0                	xor    %eax,%eax
41fe6b:	66 89 04 4f          	mov    %ax,(%edi,%ecx,2)
41fe6f:	eb 5b                	jmp    0x41fecc
41fe71:	85 c0                	test   %eax,%eax
41fe73:	78 57                	js     0x41fecc
41fe75:	3b c6                	cmp    %esi,%eax
41fe77:	77 32                	ja     0x41feab
41fe79:	eb 51                	jmp    0x41fecc
41fe7b:	8b 8d 8c fb ff ff    	mov    -0x474(%ebp),%ecx
41fe81:	0b cb                	or     %ebx,%ecx
41fe83:	74 22                	je     0x41fea7
41fe85:	85 f6                	test   %esi,%esi
41fe87:	74 43                	je     0x41fecc
41fe89:	85 c0                	test   %eax,%eax
41fe8b:	79 07                	jns    0x41fe94
41fe8d:	33 c0                	xor    %eax,%eax
41fe8f:	66 89 07             	mov    %ax,(%edi)
41fe92:	eb 38                	jmp    0x41fecc
41fe94:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
41fe9a:	3b c6                	cmp    %esi,%eax
41fe9c:	75 28                	jne    0x41fec6
41fe9e:	33 c0                	xor    %eax,%eax
41fea0:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
41fea5:	eb 25                	jmp    0x41fecc
41fea7:	85 f6                	test   %esi,%esi
41fea9:	75 05                	jne    0x41feb0
41feab:	83 ce ff             	or     $0xffffffff,%esi
41feae:	eb 22                	jmp    0x41fed2
41feb0:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
41feb6:	3b c6                	cmp    %esi,%eax
41feb8:	75 0c                	jne    0x41fec6
41feba:	33 c0                	xor    %eax,%eax
41febc:	6a fe                	push   $0xfffffffe
41febe:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
41fec3:	5e                   	pop    %esi
41fec4:	eb 0c                	jmp    0x41fed2
41fec6:	33 c9                	xor    %ecx,%ecx
41fec8:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
41fecc:	8b b5 a0 fb ff ff    	mov    -0x460(%ebp),%esi
41fed2:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
41fed8:	e8 b0 1b 00 00       	call   0x421a8d
41fedd:	8b c6                	mov    %esi,%eax
41fedf:	5f                   	pop    %edi
41fee0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41fee3:	5e                   	pop    %esi
41fee4:	33 cd                	xor    %ebp,%ecx
41fee6:	5b                   	pop    %ebx
41fee7:	e8 be 9c ff ff       	call   0x419baa
41feec:	c9                   	leave
41feed:	c3                   	ret
41feee:	8b ff                	mov    %edi,%edi
41fef0:	55                   	push   %ebp
41fef1:	8b ec                	mov    %esp,%ebp
41fef3:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
41fef7:	57                   	push   %edi
41fef8:	75 23                	jne    0x41ff1d
41fefa:	8b 45 1c             	mov    0x1c(%ebp),%eax
41fefd:	50                   	push   %eax
41fefe:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41ff02:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41ff09:	33 c0                	xor    %eax,%eax
41ff0b:	50                   	push   %eax
41ff0c:	50                   	push   %eax
41ff0d:	50                   	push   %eax
41ff0e:	50                   	push   %eax
41ff0f:	50                   	push   %eax
41ff10:	e8 f1 f9 ff ff       	call   0x41f906
41ff15:	83 c4 18             	add    $0x18,%esp
41ff18:	83 c8 ff             	or     $0xffffffff,%eax
41ff1b:	eb 6d                	jmp    0x41ff8a
41ff1d:	56                   	push   %esi
41ff1e:	8b 75 10             	mov    0x10(%ebp),%esi
41ff21:	85 f6                	test   %esi,%esi
41ff23:	74 43                	je     0x41ff68
41ff25:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
41ff29:	76 3d                	jbe    0x41ff68
41ff2b:	ff 75 20             	push   0x20(%ebp)
41ff2e:	8b 7d 1c             	mov    0x1c(%ebp),%edi
41ff31:	57                   	push   %edi
41ff32:	ff 75 18             	push   0x18(%ebp)
41ff35:	ff 75 14             	push   0x14(%ebp)
41ff38:	56                   	push   %esi
41ff39:	ff 75 0c             	push   0xc(%ebp)
41ff3c:	ff 75 08             	push   0x8(%ebp)
41ff3f:	e8 b3 fc ff ff       	call   0x41fbf7
41ff44:	8b c8                	mov    %eax,%ecx
41ff46:	83 c4 1c             	add    $0x1c,%esp
41ff49:	33 c0                	xor    %eax,%eax
41ff4b:	85 c9                	test   %ecx,%ecx
41ff4d:	79 02                	jns    0x41ff51
41ff4f:	88 06                	mov    %al,(%esi)
41ff51:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41ff54:	75 0e                	jne    0x41ff64
41ff56:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
41ff5a:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
41ff61:	57                   	push   %edi
41ff62:	eb 15                	jmp    0x41ff79
41ff64:	8b c1                	mov    %ecx,%eax
41ff66:	eb 21                	jmp    0x41ff89
41ff68:	8b 45 1c             	mov    0x1c(%ebp),%eax
41ff6b:	50                   	push   %eax
41ff6c:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41ff70:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41ff77:	33 c0                	xor    %eax,%eax
41ff79:	50                   	push   %eax
41ff7a:	50                   	push   %eax
41ff7b:	50                   	push   %eax
41ff7c:	50                   	push   %eax
41ff7d:	50                   	push   %eax
41ff7e:	e8 83 f9 ff ff       	call   0x41f906
41ff83:	83 c4 18             	add    $0x18,%esp
41ff86:	83 c8 ff             	or     $0xffffffff,%eax
41ff89:	5e                   	pop    %esi
41ff8a:	5f                   	pop    %edi
41ff8b:	5d                   	pop    %ebp
41ff8c:	c3                   	ret
41ff8d:	8b ff                	mov    %edi,%edi
41ff8f:	55                   	push   %ebp
41ff90:	8b ec                	mov    %esp,%ebp
41ff92:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
41ff96:	57                   	push   %edi
41ff97:	75 23                	jne    0x41ffbc
41ff99:	8b 45 1c             	mov    0x1c(%ebp),%eax
41ff9c:	50                   	push   %eax
41ff9d:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41ffa1:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41ffa8:	33 c0                	xor    %eax,%eax
41ffaa:	50                   	push   %eax
41ffab:	50                   	push   %eax
41ffac:	50                   	push   %eax
41ffad:	50                   	push   %eax
41ffae:	50                   	push   %eax
41ffaf:	e8 52 f9 ff ff       	call   0x41f906
41ffb4:	83 c4 18             	add    $0x18,%esp
41ffb7:	83 c8 ff             	or     $0xffffffff,%eax
41ffba:	eb 68                	jmp    0x420024
41ffbc:	56                   	push   %esi
41ffbd:	8b 75 10             	mov    0x10(%ebp),%esi
41ffc0:	85 f6                	test   %esi,%esi
41ffc2:	74 3e                	je     0x420002
41ffc4:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
41ffc8:	76 38                	jbe    0x420002
41ffca:	ff 75 20             	push   0x20(%ebp)
41ffcd:	8b 7d 1c             	mov    0x1c(%ebp),%edi
41ffd0:	57                   	push   %edi
41ffd1:	ff 75 18             	push   0x18(%ebp)
41ffd4:	ff 75 14             	push   0x14(%ebp)
41ffd7:	56                   	push   %esi
41ffd8:	ff 75 0c             	push   0xc(%ebp)
41ffdb:	ff 75 08             	push   0x8(%ebp)
41ffde:	e8 88 fd ff ff       	call   0x41fd6b
41ffe3:	83 c4 1c             	add    $0x1c,%esp
41ffe6:	85 c0                	test   %eax,%eax
41ffe8:	79 05                	jns    0x41ffef
41ffea:	33 c9                	xor    %ecx,%ecx
41ffec:	66 89 0e             	mov    %cx,(%esi)
41ffef:	83 f8 fe             	cmp    $0xfffffffe,%eax
41fff2:	75 2f                	jne    0x420023
41fff4:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
41fff8:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
41ffff:	57                   	push   %edi
420000:	eb 0f                	jmp    0x420011
420002:	8b 45 1c             	mov    0x1c(%ebp),%eax
420005:	50                   	push   %eax
420006:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42000a:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
420011:	33 c0                	xor    %eax,%eax
420013:	50                   	push   %eax
420014:	50                   	push   %eax
420015:	50                   	push   %eax
420016:	50                   	push   %eax
420017:	50                   	push   %eax
420018:	e8 e9 f8 ff ff       	call   0x41f906
42001d:	83 c4 18             	add    $0x18,%esp
420020:	83 c8 ff             	or     $0xffffffff,%eax
420023:	5e                   	pop    %esi
420024:	5f                   	pop    %edi
420025:	5d                   	pop    %ebp
420026:	c3                   	ret
420027:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
42002e:	75 06                	jne    0x420036
420030:	b8 00 02 00 00       	mov    $0x200,%eax
420035:	c3                   	ret
420036:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
42003c:	d1 e8                	shr    $1,%eax
42003e:	c3                   	ret
42003f:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
420046:	75 06                	jne    0x42004e
420048:	b8 00 01 00 00       	mov    $0x100,%eax
42004d:	c3                   	ret
42004e:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
420054:	c1 e8 02             	shr    $0x2,%eax
420057:	c3                   	ret
420058:	8b ff                	mov    %edi,%edi
42005a:	55                   	push   %ebp
42005b:	8b ec                	mov    %esp,%ebp
42005d:	51                   	push   %ecx
42005e:	56                   	push   %esi
42005f:	8b 75 08             	mov    0x8(%ebp),%esi
420062:	57                   	push   %edi
420063:	8b f9                	mov    %ecx,%edi
420065:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
42006b:	76 12                	jbe    0x42007f
42006d:	8b 45 0c             	mov    0xc(%ebp),%eax
420070:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420074:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
42007b:	32 c0                	xor    %al,%al
42007d:	eb 54                	jmp    0x4200d3
42007f:	53                   	push   %ebx
420080:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
420086:	03 f6                	add    %esi,%esi
420088:	83 3b 00             	cmpl   $0x0,(%ebx)
42008b:	75 08                	jne    0x420095
42008d:	81 fe 00 04 00 00    	cmp    $0x400,%esi
420093:	76 3b                	jbe    0x4200d0
420095:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
42009b:	76 33                	jbe    0x4200d0
42009d:	56                   	push   %esi
42009e:	e8 51 a8 00 00       	call   0x42a8f4
4200a3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4200a6:	59                   	pop    %ecx
4200a7:	85 c0                	test   %eax,%eax
4200a9:	75 0b                	jne    0x4200b6
4200ab:	50                   	push   %eax
4200ac:	e8 09 a8 00 00       	call   0x42a8ba
4200b1:	59                   	pop    %ecx
4200b2:	32 c0                	xor    %al,%al
4200b4:	eb 1c                	jmp    0x4200d2
4200b6:	8d 45 fc             	lea    -0x4(%ebp),%eax
4200b9:	8b cb                	mov    %ebx,%ecx
4200bb:	50                   	push   %eax
4200bc:	e8 e6 19 00 00       	call   0x421aa7
4200c1:	ff 75 fc             	push   -0x4(%ebp)
4200c4:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
4200ca:	e8 eb a7 00 00       	call   0x42a8ba
4200cf:	59                   	pop    %ecx
4200d0:	b0 01                	mov    $0x1,%al
4200d2:	5b                   	pop    %ebx
4200d3:	5f                   	pop    %edi
4200d4:	5e                   	pop    %esi
4200d5:	c9                   	leave
4200d6:	c2 08 00             	ret    $0x8
4200d9:	8b ff                	mov    %edi,%edi
4200db:	55                   	push   %ebp
4200dc:	8b ec                	mov    %esp,%ebp
4200de:	51                   	push   %ecx
4200df:	56                   	push   %esi
4200e0:	8b 75 08             	mov    0x8(%ebp),%esi
4200e3:	57                   	push   %edi
4200e4:	8b f9                	mov    %ecx,%edi
4200e6:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4200ec:	76 12                	jbe    0x420100
4200ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4200f1:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4200f5:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
4200fc:	32 c0                	xor    %al,%al
4200fe:	eb 55                	jmp    0x420155
420100:	53                   	push   %ebx