41fd98:	03 f0                	add    %eax,%esi
41fd9a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41fd9d:	81 fe ff 7f 00 00    	cmp    $0x7fff,%esi
41fda3:	89 30                	mov    %esi,(%eax)
41fda5:	1b f6                	sbb    %esi,%esi
41fda7:	81 e6 fa fe ff 2f    	and    $0x2ffffefa,%esi
41fdad:	81 c6 06 01 00 d0    	add    $0xd0000106,%esi
41fdb3:	eb 16                	jmp    0x41fdcb
41fdb5:	be 2b 01 07 80       	mov    $0x8007012b,%esi
41fdba:	eb 0f                	jmp    0x41fdcb
41fdbc:	ff 15 18 c2 42 00    	call   *0x42c218
41fdc2:	8b c8                	mov    %eax,%ecx
41fdc4:	e8 e1 b7 fe ff       	call   0x40b5aa
41fdc9:	8b f0                	mov    %eax,%esi
41fdcb:	68 00 80 00 00       	push   $0x8000
41fdd0:	6a 00                	push   $0x0
41fdd2:	57                   	push   %edi
41fdd3:	ff 15 d4 c0 42 00    	call   *0x42c0d4
41fdd9:	5f                   	pop    %edi
41fdda:	8b c6                	mov    %esi,%eax
41fddc:	5e                   	pop    %esi
41fddd:	5b                   	pop    %ebx
41fdde:	c9                   	leave
41fddf:	c2 08 00             	ret    $0x8
41fde2:	8b ff                	mov    %edi,%edi
41fde4:	55                   	push   %ebp
41fde5:	8b ec                	mov    %esp,%ebp
41fde7:	83 ec 34             	sub    $0x34,%esp
41fdea:	a1 74 b6 42 00       	mov    0x42b674,%eax
41fdef:	33 c5                	xor    %ebp,%eax
41fdf1:	89 45 fc             	mov    %eax,-0x4(%ebp)
41fdf4:	8b 45 08             	mov    0x8(%ebp),%eax
41fdf7:	53                   	push   %ebx
41fdf8:	56                   	push   %esi
41fdf9:	57                   	push   %edi
41fdfa:	89 45 d8             	mov    %eax,-0x28(%ebp)
41fdfd:	8d 7d e8             	lea    -0x18(%ebp),%edi
41fe00:	33 c0                	xor    %eax,%eax
41fe02:	89 55 d4             	mov    %edx,-0x2c(%ebp)
41fe05:	ab                   	stos   %eax,%es:(%edi)
41fe06:	33 f6                	xor    %esi,%esi
41fe08:	6a 04                	push   $0x4
41fe0a:	89 4d d0             	mov    %ecx,-0x30(%ebp)
41fe0d:	8b de                	mov    %esi,%ebx
41fe0f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fe12:	ab                   	stos   %eax,%es:(%edi)
41fe13:	89 31                	mov    %esi,(%ecx)
41fe15:	ab                   	stos   %eax,%es:(%edi)
41fe16:	ab                   	stos   %eax,%es:(%edi)
41fe17:	ab                   	stos   %eax,%es:(%edi)
41fe18:	b8 00 10 00 00       	mov    $0x1000,%eax
41fe1d:	50                   	push   %eax
41fe1e:	50                   	push   %eax
41fe1f:	56                   	push   %esi
41fe20:	ff 15 d8 c0 42 00    	call   *0x42c0d8
41fe26:	89 45 e0             	mov    %eax,-0x20(%ebp)
41fe29:	85 c0                	test   %eax,%eax
41fe2b:	75 14                	jne    0x41fe41
41fe2d:	ff 15 18 c2 42 00    	call   *0x42c218
41fe33:	8b c8                	mov    %eax,%ecx
41fe35:	e8 70 b7 fe ff       	call   0x40b5aa
41fe3a:	8b f0                	mov    %eax,%esi
41fe3c:	e9 ad 00 00 00       	jmp    0x41feee
41fe41:	56                   	push   %esi
41fe42:	56                   	push   %esi
41fe43:	56                   	push   %esi
41fe44:	56                   	push   %esi
41fe45:	56                   	push   %esi
41fe46:	8d 45 e8             	lea    -0x18(%ebp),%eax
41fe49:	50                   	push   %eax
41fe4a:	6a 21                	push   $0x21
41fe4c:	ff 15 f4 c2 42 00    	call   *0x42c2f4
41fe52:	85 c0                	test   %eax,%eax
41fe54:	79 05                	jns    0x41fe5b
41fe56:	6a 07                	push   $0x7
41fe58:	59                   	pop    %ecx
41fe59:	cd 29                	int    $0x29
41fe5b:	8b 7d 0c             	mov    0xc(%ebp),%edi
41fe5e:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
41fe65:	85 ff                	test   %edi,%edi
41fe67:	74 51                	je     0x41feba
41fe69:	8b f7                	mov    %edi,%esi
41fe6b:	b8 00 10 00 00       	mov    $0x1000,%eax
41fe70:	2b f3                	sub    %ebx,%esi
41fe72:	3b f0                	cmp    %eax,%esi
41fe74:	76 02                	jbe    0x41fe78
41fe76:	8b f0                	mov    %eax,%esi
41fe78:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41fe7b:	50                   	push   %eax
41fe7c:	8b 45 d8             	mov    -0x28(%ebp),%eax
41fe7f:	56                   	push   %esi
41fe80:	ff 75 e0             	push   -0x20(%ebp)
41fe83:	03 c3                	add    %ebx,%eax
41fe85:	50                   	push   %eax
41fe86:	ff 75 d4             	push   -0x2c(%ebp)
41fe89:	ff 15 38 c1 42 00    	call   *0x42c138
41fe8f:	85 c0                	test   %eax,%eax
41fe91:	74 75                	je     0x41ff08
41fe93:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
41fe96:	75 69                	jne    0x41ff01
41fe98:	33 f6                	xor    %esi,%esi
41fe9a:	56                   	push   %esi
41fe9b:	ff 75 e4             	push   -0x1c(%ebp)
41fe9e:	ff 75 e0             	push   -0x20(%ebp)
41fea1:	ff 75 e8             	push   -0x18(%ebp)
41fea4:	ff 15 f8 c2 42 00    	call   *0x42c2f8
41feaa:	85 c0                	test   %eax,%eax
41feac:	79 05                	jns    0x41feb3
41feae:	6a 07                	push   $0x7
41feb0:	59                   	pop    %ecx
41feb1:	cd 29                	int    $0x29
41feb3:	03 5d e4             	add    -0x1c(%ebp),%ebx
41feb6:	3b df                	cmp    %edi,%ebx
41feb8:	72 af                	jb     0x41fe69
41feba:	8d 4d e8             	lea    -0x18(%ebp),%ecx
41febd:	e8 21 09 00 00       	call   0x4207e3
41fec2:	8b 4d d0             	mov    -0x30(%ebp),%ecx
41fec5:	8d 55 ec             	lea    -0x14(%ebp),%edx
41fec8:	89 75 dc             	mov    %esi,-0x24(%ebp)
41fecb:	e8 c2 fd ff ff       	call   0x41fc92
41fed0:	68 00 80 00 00       	push   $0x8000
41fed5:	6a 00                	push   $0x0
41fed7:	ff 75 e0             	push   -0x20(%ebp)
41feda:	ff 15 d4 c0 42 00    	call   *0x42c0d4
41fee0:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
41fee4:	74 08                	je     0x41feee
41fee6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
41fee9:	e8 f5 08 00 00       	call   0x4207e3
41feee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41fef1:	8b c6                	mov    %esi,%eax
41fef3:	5f                   	pop    %edi
41fef4:	5e                   	pop    %esi
41fef5:	33 cd                	xor    %ebp,%ecx
41fef7:	5b                   	pop    %ebx
41fef8:	e8 e3 7b 00 00       	call   0x427ae0
41fefd:	c9                   	leave
41fefe:	c2 08 00             	ret    $0x8
41ff01:	be 2b 01 07 80       	mov    $0x8007012b,%esi
41ff06:	eb c8                	jmp    0x41fed0
41ff08:	ff 15 18 c2 42 00    	call   *0x42c218
41ff0e:	8b c8                	mov    %eax,%ecx
41ff10:	e8 95 b6 fe ff       	call   0x40b5aa
41ff15:	8b f0                	mov    %eax,%esi
41ff17:	eb b7                	jmp    0x41fed0
41ff19:	8b ff                	mov    %edi,%edi
41ff1b:	55                   	push   %ebp
41ff1c:	8b ec                	mov    %esp,%ebp
41ff1e:	51                   	push   %ecx
41ff1f:	51                   	push   %ecx
41ff20:	53                   	push   %ebx
41ff21:	8b 5d 08             	mov    0x8(%ebp),%ebx
41ff24:	56                   	push   %esi
41ff25:	57                   	push   %edi
41ff26:	8b f2                	mov    %edx,%esi
41ff28:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41ff2b:	33 ff                	xor    %edi,%edi
41ff2d:	3b de                	cmp    %esi,%ebx
41ff2f:	7d 05                	jge    0x41ff36
41ff31:	e8 04 64 00 00       	call   0x42633a
41ff36:	8b c3                	mov    %ebx,%eax
41ff38:	2b c6                	sub    %esi,%eax
41ff3a:	40                   	inc    %eax
41ff3b:	83 f8 20             	cmp    $0x20,%eax
41ff3e:	76 23                	jbe    0x41ff63
41ff40:	e8 f5 63 00 00       	call   0x42633a
41ff45:	eb 1c                	jmp    0x41ff63
41ff47:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ff4a:	8b c3                	mov    %ebx,%eax
41ff4c:	c1 f8 03             	sar    $0x3,%eax
41ff4f:	03 ff                	add    %edi,%edi
41ff51:	0f b6 14 08          	movzbl (%eax,%ecx,1),%edx
41ff55:	0f b6 cb             	movzbl %bl,%ecx
41ff58:	83 e1 07             	and    $0x7,%ecx
41ff5b:	d3 ea                	shr    %cl,%edx
41ff5d:	83 e2 01             	and    $0x1,%edx
41ff60:	0b fa                	or     %edx,%edi
41ff62:	4b                   	dec    %ebx
41ff63:	3b de                	cmp    %esi,%ebx
41ff65:	7d e0                	jge    0x41ff47
41ff67:	8b c7                	mov    %edi,%eax
41ff69:	5f                   	pop    %edi
41ff6a:	5e                   	pop    %esi
41ff6b:	5b                   	pop    %ebx
41ff6c:	c9                   	leave
41ff6d:	c2 04 00             	ret    $0x4
41ff70:	8b ff                	mov    %edi,%edi
41ff72:	55                   	push   %ebp
41ff73:	8b ec                	mov    %esp,%ebp
41ff75:	83 ec 38             	sub    $0x38,%esp
41ff78:	a1 74 b6 42 00       	mov    0x42b674,%eax
41ff7d:	33 c5                	xor    %ebp,%eax
41ff7f:	89 45 fc             	mov    %eax,-0x4(%ebp)
41ff82:	8b 45 10             	mov    0x10(%ebp),%eax
41ff85:	53                   	push   %ebx
41ff86:	56                   	push   %esi
41ff87:	57                   	push   %edi
41ff88:	89 45 d0             	mov    %eax,-0x30(%ebp)
41ff8b:	8d 7d e8             	lea    -0x18(%ebp),%edi
41ff8e:	33 c0                	xor    %eax,%eax
41ff90:	8b 5d 08             	mov    0x8(%ebp),%ebx
41ff93:	ab                   	stos   %eax,%es:(%edi)
41ff94:	8b 75 0c             	mov    0xc(%ebp),%esi
41ff97:	89 55 d4             	mov    %edx,-0x2c(%ebp)
41ff9a:	89 4d c8             	mov    %ecx,-0x38(%ebp)
41ff9d:	ab                   	stos   %eax,%es:(%edi)
41ff9e:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41ffa1:	89 75 dc             	mov    %esi,-0x24(%ebp)
41ffa4:	ab                   	stos   %eax,%es:(%edi)
41ffa5:	ab                   	stos   %eax,%es:(%edi)
41ffa6:	ab                   	stos   %eax,%es:(%edi)
41ffa7:	8d 45 e8             	lea    -0x18(%ebp),%eax
41ffaa:	33 ff                	xor    %edi,%edi
41ffac:	57                   	push   %edi
41ffad:	57                   	push   %edi
41ffae:	57                   	push   %edi
41ffaf:	57                   	push   %edi
41ffb0:	57                   	push   %edi
41ffb1:	50                   	push   %eax
41ffb2:	6a 21                	push   $0x21
41ffb4:	89 7d e4             	mov    %edi,-0x1c(%ebp)
41ffb7:	89 7d d8             	mov    %edi,-0x28(%ebp)
41ffba:	89 39                	mov    %edi,(%ecx)
41ffbc:	ff 15 f4 c2 42 00    	call   *0x42c2f4
41ffc2:	85 c0                	test   %eax,%eax
41ffc4:	79 05                	jns    0x41ffcb
41ffc6:	6a 07                	push   $0x7
41ffc8:	59                   	pop    %ecx
41ffc9:	cd 29                	int    $0x29
41ffcb:	39 7d d4             	cmp    %edi,-0x2c(%ebp)
41ffce:	0f 86 d2 00 00 00    	jbe    0x4200a6
41ffd4:	ff 34 bb             	push   (%ebx,%edi,4)
41ffd7:	8b d6                	mov    %esi,%edx
41ffd9:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
41ffdc:	e8 eb 00 00 00       	call   0x4200cc
41ffe1:	85 c0                	test   %eax,%eax
41ffe3:	79 16                	jns    0x41fffb
41ffe5:	ff 34 bb             	push   (%ebx,%edi,4)
41ffe8:	8b 55 d0             	mov    -0x30(%ebp),%edx
41ffeb:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
41ffee:	e8 d9 00 00 00       	call   0x4200cc
41fff3:	85 c0                	test   %eax,%eax
41fff5:	0f 88 a1 00 00 00    	js     0x42009c
41fffb:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41fffe:	33 db                	xor    %ebx,%ebx
420000:	8b 52 14             	mov    0x14(%edx),%edx
420003:	8b f2                	mov    %edx,%esi
420005:	89 55 cc             	mov    %edx,-0x34(%ebp)
420008:	8d 4e 02             	lea    0x2(%esi),%ecx
42000b:	66 8b 06             	mov    (%esi),%ax
42000e:	83 c6 02             	add    $0x2,%esi
420011:	66 3b c3             	cmp    %bx,%ax
420014:	75 f5                	jne    0x42000b
420016:	2b f1                	sub    %ecx,%esi
420018:	d1 fe                	sar    $1,%esi
42001a:	8b c6                	mov    %esi,%eax
42001c:	74 15                	je     0x420033
42001e:	8d 0c 72             	lea    (%edx,%esi,2),%ecx
420021:	66 83 39 2e          	cmpw   $0x2e,(%ecx)
420025:	74 0a                	je     0x420031
420027:	83 e9 02             	sub    $0x2,%ecx
42002a:	83 e8 01             	sub    $0x1,%eax
42002d:	75 f2                	jne    0x420021
42002f:	eb 02                	jmp    0x420033
420031:	8b f0                	mov    %eax,%esi
420033:	56                   	push   %esi
420034:	ff b3 a0 13 40 00    	push   0x4013a0(%ebx)
42003a:	52                   	push   %edx
42003b:	ff 15 34 c3 42 00    	call   *0x42c334
420041:	83 c4 0c             	add    $0xc,%esp
420044:	85 c0                	test   %eax,%eax
420046:	74 4e                	je     0x420096
420048:	8b 55 cc             	mov    -0x34(%ebp),%edx
42004b:	83 c3 04             	add    $0x4,%ebx
42004e:	83 fb 30             	cmp    $0x30,%ebx
420051:	72 e0                	jb     0x420033
420053:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
420056:	8d 04 36             	lea    (%esi,%esi,1),%eax
420059:	6a 00                	push   $0x0
42005b:	50                   	push   %eax
42005c:	ff 73 14             	push   0x14(%ebx)
42005f:	ff 75 e8             	push   -0x18(%ebp)
420062:	ff 15 f8 c2 42 00    	call   *0x42c2f8
420068:	85 c0                	test   %eax,%eax
42006a:	79 05                	jns    0x420071
42006c:	6a 07                	push   $0x7
42006e:	59                   	pop    %ecx
42006f:	cd 29                	int    $0x29
420071:	8b 45 e0             	mov    -0x20(%ebp),%eax
420074:	6a 00                	push   $0x0
420076:	6a 04                	push   $0x4
420078:	8b 04 b8             	mov    (%eax,%edi,4),%eax
42007b:	2b 03                	sub    (%ebx),%eax
42007d:	89 45 d8             	mov    %eax,-0x28(%ebp)
420080:	8d 45 d8             	lea    -0x28(%ebp),%eax
420083:	50                   	push   %eax
420084:	ff 75 e8             	push   -0x18(%ebp)
420087:	ff 15 f8 c2 42 00    	call   *0x42c2f8
42008d:	85 c0                	test   %eax,%eax
42008f:	79 05                	jns    0x420096
420091:	6a 07                	push   $0x7
420093:	59                   	pop    %ecx
420094:	cd 29                	int    $0x29
420096:	8b 5d e0             	mov    -0x20(%ebp),%ebx
420099:	8b 75 dc             	mov    -0x24(%ebp),%esi
42009c:	47                   	inc    %edi
42009d:	3b 7d d4             	cmp    -0x2c(%ebp),%edi
4200a0:	0f 82 2e ff ff ff    	jb     0x41ffd4
4200a6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4200a9:	e8 35 07 00 00       	call   0x4207e3
4200ae:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4200b1:	8d 55 ec             	lea    -0x14(%ebp),%edx
4200b4:	e8 d9 fb ff ff       	call   0x41fc92
4200b9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4200bc:	33 c0                	xor    %eax,%eax
4200be:	5f                   	pop    %edi
4200bf:	5e                   	pop    %esi
4200c0:	33 cd                	xor    %ebp,%ecx
4200c2:	5b                   	pop    %ebx
4200c3:	e8 18 7a 00 00       	call   0x427ae0
4200c8:	c9                   	leave
4200c9:	c2 0c 00             	ret    $0xc
4200cc:	8b ff                	mov    %edi,%edi
4200ce:	55                   	push   %ebp
4200cf:	8b ec                	mov    %esp,%ebp
4200d1:	51                   	push   %ecx
4200d2:	51                   	push   %ecx
4200d3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4200d7:	53                   	push   %ebx
4200d8:	56                   	push   %esi
4200d9:	33 f6                	xor    %esi,%esi
4200db:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4200de:	57                   	push   %edi
4200df:	39 72 08             	cmp    %esi,0x8(%edx)
4200e2:	76 56                	jbe    0x42013a
4200e4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4200e7:	8b 02                	mov    (%edx),%eax
4200e9:	33 c9                	xor    %ecx,%ecx
4200eb:	33 ff                	xor    %edi,%edi
4200ed:	39 4a 0c             	cmp    %ecx,0xc(%edx)
4200f0:	74 1a                	je     0x42010c
4200f2:	39 72 14             	cmp    %esi,0x14(%edx)
4200f5:	77 15                	ja     0x42010c
4200f7:	8b 42 0c             	mov    0xc(%edx),%eax
4200fa:	8b 7a 10             	mov    0x10(%edx),%edi
4200fd:	8b 4a 14             	mov    0x14(%edx),%ecx
420100:	eb 0a                	jmp    0x42010c
420102:	85 c0                	test   %eax,%eax
420104:	74 1c                	je     0x420122
420106:	8b f8                	mov    %eax,%edi
420108:	41                   	inc    %ecx