40fd1b:	ff 77 14             	push   0x14(%edi)
40fd1e:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fd21:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40fd24:	50                   	push   %eax
40fd25:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd28:	e8 9e fa ff ff       	call   0x40f7cb
40fd2d:	ff 75 14             	push   0x14(%ebp)
40fd30:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd33:	ff 75 10             	push   0x10(%ebp)
40fd36:	e8 40 f9 ff ff       	call   0x40f67b
40fd3b:	eb 55                	jmp    0x40fd92
40fd3d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40fd40:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fd43:	39 46 04             	cmp    %eax,0x4(%esi)
40fd46:	76 7f                	jbe    0x40fdc7
40fd48:	ff 77 14             	push   0x14(%edi)
40fd4b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fd4e:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40fd51:	50                   	push   %eax
40fd52:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd55:	e8 71 fa ff ff       	call   0x40f7cb
40fd5a:	84 c0                	test   %al,%al
40fd5c:	74 26                	je     0x40fd84
40fd5e:	ff 75 14             	push   0x14(%ebp)
40fd61:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fd64:	ff 75 10             	push   0x10(%ebp)
40fd67:	e8 0f f9 ff ff       	call   0x40f67b
40fd6c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fd6f:	85 c0                	test   %eax,%eax
40fd71:	7e 21                	jle    0x40fd94
40fd73:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fd76:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40fd79:	40                   	inc    %eax
40fd7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fd7d:	3b 46 04             	cmp    0x4(%esi),%eax
40fd80:	72 c6                	jb     0x40fd48
40fd82:	eb 0b                	jmp    0x40fd8f
40fd84:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fd87:	51                   	push   %ecx
40fd88:	8b ce                	mov    %esi,%ecx
40fd8a:	e8 13 f9 ff ff       	call   0x40f6a2
40fd8f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40fd92:	85 c0                	test   %eax,%eax
40fd94:	75 31                	jne    0x40fdc7
40fd96:	8a 45 e2             	mov    -0x1e(%ebp),%al
40fd99:	84 c0                	test   %al,%al
40fd9b:	0f 95 c3             	setne  %bl
40fd9e:	84 c0                	test   %al,%al
40fda0:	74 0f                	je     0x40fdb1
40fda2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fda5:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40fda8:	03 45 18             	add    0x18(%ebp),%eax
40fdab:	50                   	push   %eax
40fdac:	e8 f1 f8 ff ff       	call   0x40f6a2
40fdb1:	84 db                	test   %bl,%bl
40fdb3:	75 09                	jne    0x40fdbe
40fdb5:	38 5f 20             	cmp    %bl,0x20(%edi)
40fdb8:	75 04                	jne    0x40fdbe
40fdba:	33 c0                	xor    %eax,%eax
40fdbc:	eb 02                	jmp    0x40fdc0
40fdbe:	b0 01                	mov    $0x1,%al
40fdc0:	88 47 20             	mov    %al,0x20(%edi)
40fdc3:	33 c0                	xor    %eax,%eax
40fdc5:	eb 02                	jmp    0x40fdc9
40fdc7:	8b c3                	mov    %ebx,%eax
40fdc9:	5f                   	pop    %edi
40fdca:	5e                   	pop    %esi
40fdcb:	5b                   	pop    %ebx
40fdcc:	c9                   	leave
40fdcd:	c2 14 00             	ret    $0x14
40fdd0:	8b ff                	mov    %edi,%edi
40fdd2:	55                   	push   %ebp
40fdd3:	8b ec                	mov    %esp,%ebp
40fdd5:	83 ec 14             	sub    $0x14,%esp
40fdd8:	53                   	push   %ebx
40fdd9:	8b d9                	mov    %ecx,%ebx
40fddb:	56                   	push   %esi
40fddc:	57                   	push   %edi
40fddd:	8b 7d 08             	mov    0x8(%ebp),%edi
40fde0:	8b 73 0c             	mov    0xc(%ebx),%esi
40fde3:	85 f6                	test   %esi,%esi
40fde5:	74 29                	je     0x40fe10
40fde7:	8b 43 14             	mov    0x14(%ebx),%eax
40fdea:	33 d2                	xor    %edx,%edx
40fdec:	2b 43 10             	sub    0x10(%ebx),%eax
40fdef:	f7 f6                	div    %esi
40fdf1:	8b 4f 04             	mov    0x4(%edi),%ecx
40fdf4:	3b c8                	cmp    %eax,%ecx
40fdf6:	76 0e                	jbe    0x40fe06
40fdf8:	50                   	push   %eax
40fdf9:	8b cf                	mov    %edi,%ecx
40fdfb:	e8 a2 f8 ff ff       	call   0x40f6a2
40fe00:	8b 4f 04             	mov    0x4(%edi),%ecx
40fe03:	8b 73 0c             	mov    0xc(%ebx),%esi
40fe06:	8b 45 0c             	mov    0xc(%ebp),%eax
40fe09:	0f af f1             	imul   %ecx,%esi
40fe0c:	03 c6                	add    %esi,%eax
40fe0e:	eb 48                	jmp    0x40fe58
40fe10:	66 8b 43 06          	mov    0x6(%ebx),%ax
40fe14:	33 f6                	xor    %esi,%esi
40fe16:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40fe1a:	8a 43 08             	mov    0x8(%ebx),%al
40fe1d:	88 45 ee             	mov    %al,-0x12(%ebp)
40fe20:	33 c0                	xor    %eax,%eax
40fe22:	89 75 f0             	mov    %esi,-0x10(%ebp)
40fe25:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
40fe29:	89 75 f8             	mov    %esi,-0x8(%ebp)
40fe2c:	89 75 fc             	mov    %esi,-0x4(%ebp)
40fe2f:	39 77 04             	cmp    %esi,0x4(%edi)
40fe32:	76 19                	jbe    0x40fe4d
40fe34:	ff 73 14             	push   0x14(%ebx)
40fe37:	8d 45 0c             	lea    0xc(%ebp),%eax
40fe3a:	50                   	push   %eax
40fe3b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40fe3e:	e8 88 f9 ff ff       	call   0x40f7cb
40fe43:	84 c0                	test   %al,%al
40fe45:	74 06                	je     0x40fe4d
40fe47:	46                   	inc    %esi
40fe48:	3b 77 04             	cmp    0x4(%edi),%esi
40fe4b:	72 e7                	jb     0x40fe34
40fe4d:	56                   	push   %esi
40fe4e:	8b cf                	mov    %edi,%ecx
40fe50:	e8 4d f8 ff ff       	call   0x40f6a2
40fe55:	8b 45 0c             	mov    0xc(%ebp),%eax
40fe58:	5f                   	pop    %edi
40fe59:	5e                   	pop    %esi
40fe5a:	5b                   	pop    %ebx
40fe5b:	c9                   	leave
40fe5c:	c2 08 00             	ret    $0x8
40fe5f:	8b ff                	mov    %edi,%edi
40fe61:	55                   	push   %ebp
40fe62:	8b ec                	mov    %esp,%ebp
40fe64:	83 ec 30             	sub    $0x30,%esp
40fe67:	53                   	push   %ebx
40fe68:	56                   	push   %esi
40fe69:	8b f1                	mov    %ecx,%esi
40fe6b:	57                   	push   %edi
40fe6c:	8b 7e 10             	mov    0x10(%esi),%edi
40fe6f:	85 ff                	test   %edi,%edi
40fe71:	0f 84 75 01 00 00    	je     0x40ffec
40fe77:	66 8b 46 02          	mov    0x2(%esi),%ax
40fe7b:	33 c9                	xor    %ecx,%ecx
40fe7d:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40fe81:	83 c7 0a             	add    $0xa,%edi
40fe84:	8a 46 04             	mov    0x4(%esi),%al
40fe87:	8a f9                	mov    %cl,%bh
40fe89:	88 45 e6             	mov    %al,-0x1a(%ebp)
40fe8c:	33 c0                	xor    %eax,%eax
40fe8e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40fe91:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40fe95:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40fe98:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40fe9b:	88 7d ff             	mov    %bh,-0x1(%ebp)
40fe9e:	eb 2c                	jmp    0x40fecc
40fea0:	ff 75 0c             	push   0xc(%ebp)
40fea3:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fea6:	ff 75 08             	push   0x8(%ebp)
40fea9:	e8 cd f7 ff ff       	call   0x40f67b
40feae:	85 c0                	test   %eax,%eax
40feb0:	0f 88 fe 00 00 00    	js     0x40ffb4
40feb6:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40feb9:	8b ce                	mov    %esi,%ecx
40febb:	0f 84 cd 00 00 00    	je     0x40ff8e
40fec1:	ff 75 f8             	push   -0x8(%ebp)
40fec4:	50                   	push   %eax
40fec5:	e8 06 ff ff ff       	call   0x40fdd0
40feca:	8b f8                	mov    %eax,%edi
40fecc:	ff 76 14             	push   0x14(%esi)
40fecf:	8d 45 f8             	lea    -0x8(%ebp),%eax
40fed2:	89 7d f8             	mov    %edi,-0x8(%ebp)
40fed5:	50                   	push   %eax
40fed6:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fed9:	e8 ed f8 ff ff       	call   0x40f7cb
40fede:	8a d8                	mov    %al,%bl
40fee0:	84 db                	test   %bl,%bl
40fee2:	75 bc                	jne    0x40fea0
40fee4:	8b 7d f8             	mov    -0x8(%ebp),%edi
40fee7:	89 7e 14             	mov    %edi,0x14(%esi)
40feea:	33 d2                	xor    %edx,%edx
40feec:	84 ff                	test   %bh,%bh
40feee:	75 21                	jne    0x40ff11
40fef0:	8b 45 0c             	mov    0xc(%ebp),%eax
40fef3:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40fef6:	21 55 f0             	and    %edx,-0x10(%ebp)
40fef9:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40fefd:	8b 45 08             	mov    0x8(%ebp),%eax
40ff00:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
40ff07:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ff0a:	e8 d8 f7 ff ff       	call   0x40f6e7
40ff0f:	8b d0                	mov    %eax,%edx
40ff11:	66 8b 4e 06          	mov    0x6(%esi),%cx
40ff15:	8b 45 18             	mov    0x18(%ebp),%eax
40ff18:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
40ff1c:	66 89 4d d0          	mov    %cx,-0x30(%ebp)
40ff20:	8a 4e 08             	mov    0x8(%esi),%cl
40ff23:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40ff26:	8b 45 14             	mov    0x14(%ebp),%eax
40ff29:	88 4d d2             	mov    %cl,-0x2e(%ebp)
40ff2c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40ff2f:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40ff33:	8b 45 10             	mov    0x10(%ebp),%eax
40ff36:	89 45 e0             	mov    %eax,-0x20(%ebp)
40ff39:	e8 a9 f7 ff ff       	call   0x40f6e7
40ff3e:	8d 1c 02             	lea    (%edx,%eax,1),%ebx
40ff41:	8b 46 18             	mov    0x18(%esi),%eax
40ff44:	8b d0                	mov    %eax,%edx
40ff46:	2b 56 14             	sub    0x14(%esi),%edx
40ff49:	39 46 14             	cmp    %eax,0x14(%esi)
40ff4c:	1b c9                	sbb    %ecx,%ecx
40ff4e:	23 ca                	and    %edx,%ecx
40ff50:	3b cb                	cmp    %ebx,%ecx
40ff52:	0f 82 94 00 00 00    	jb     0x40ffec
40ff58:	8b 4e 14             	mov    0x14(%esi),%ecx
40ff5b:	2b c3                	sub    %ebx,%eax
40ff5d:	2b cf                	sub    %edi,%ecx
40ff5f:	2b c7                	sub    %edi,%eax
40ff61:	51                   	push   %ecx
40ff62:	57                   	push   %edi
40ff63:	50                   	push   %eax
40ff64:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
40ff67:	50                   	push   %eax
40ff68:	ff 15 58 c3 42 00    	call   *0x42c358
40ff6e:	8b 46 14             	mov    0x14(%esi),%eax
40ff71:	83 c4 10             	add    $0x10,%esp
40ff74:	03 c3                	add    %ebx,%eax
40ff76:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40ff7a:	89 46 14             	mov    %eax,0x14(%esi)
40ff7d:	75 45                	jne    0x40ffc4
40ff7f:	50                   	push   %eax
40ff80:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ff83:	50                   	push   %eax
40ff84:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40ff87:	e8 7f f7 ff ff       	call   0x40f70b
40ff8c:	eb 49                	jmp    0x40ffd7
40ff8e:	ff 75 18             	push   0x18(%ebp)
40ff91:	ff 75 14             	push   0x14(%ebp)
40ff94:	ff 75 10             	push   0x10(%ebp)
40ff97:	ff 75 f8             	push   -0x8(%ebp)
40ff9a:	50                   	push   %eax
40ff9b:	e8 ff fc ff ff       	call   0x40fc9f
40ffa0:	8b f8                	mov    %eax,%edi
40ffa2:	89 7d f8             	mov    %edi,-0x8(%ebp)
40ffa5:	85 ff                	test   %edi,%edi
40ffa7:	75 04                	jne    0x40ffad
40ffa9:	b0 01                	mov    $0x1,%al
40ffab:	eb 41                	jmp    0x40ffee
40ffad:	b7 01                	mov    $0x1,%bh
40ffaf:	88 7d ff             	mov    %bh,-0x1(%ebp)
40ffb2:	eb 03                	jmp    0x40ffb7
40ffb4:	89 7d f8             	mov    %edi,-0x8(%ebp)
40ffb7:	84 db                	test   %bl,%bl
40ffb9:	0f 85 2b ff ff ff    	jne    0x40feea
40ffbf:	e9 23 ff ff ff       	jmp    0x40fee7
40ffc4:	80 7d e6 00          	cmpb   $0x0,-0x1a(%ebp)
40ffc8:	74 0d                	je     0x40ffd7
40ffca:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ffcd:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40ffd0:	40                   	inc    %eax
40ffd1:	50                   	push   %eax
40ffd2:	e8 cb f6 ff ff       	call   0x40f6a2
40ffd7:	ff 76 14             	push   0x14(%esi)
40ffda:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40ffdd:	51                   	push   %ecx
40ffde:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40ffe1:	e8 25 f7 ff ff       	call   0x40f70b
40ffe6:	c6 46 20 01          	movb   $0x1,0x20(%esi)
40ffea:	eb bd                	jmp    0x40ffa9
40ffec:	32 c0                	xor    %al,%al
40ffee:	5f                   	pop    %edi
40ffef:	5e                   	pop    %esi
40fff0:	5b                   	pop    %ebx
40fff1:	c9                   	leave
40fff2:	c2 14 00             	ret    $0x14
40fff5:	83 c1 0c             	add    $0xc,%ecx
40fff8:	e9 80 29 00 00       	jmp    0x41297d
40fffd:	8b ff                	mov    %edi,%edi
40ffff:	55                   	push   %ebp
410000:	8b ec                	mov    %esp,%ebp
410002:	6a ff                	push   $0xffffffff
410004:	68 59 87 42 00       	push   $0x428759
410009:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
41000f:	50                   	push   %eax
410010:	b8 50 10 00 00       	mov    $0x1050,%eax
410015:	e8 56 83 01 00       	call   0x428370
41001a:	a1 74 b6 42 00       	mov    0x42b674,%eax
41001f:	33 c5                	xor    %ebp,%eax
410021:	89 45 f0             	mov    %eax,-0x10(%ebp)
410024:	53                   	push   %ebx
410025:	56                   	push   %esi
410026:	57                   	push   %edi
410027:	50                   	push   %eax
410028:	8d 45 f4             	lea    -0xc(%ebp),%eax
41002b:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
410031:	8b d9                	mov    %ecx,%ebx
410033:	83 a5 e4 ef ff ff 00 	andl   $0x0,-0x101c(%ebp)
41003a:	8d 04 d3             	lea    (%ebx,%edx,8),%eax
41003d:	83 a5 d8 ef ff ff 00 	andl   $0x0,-0x1028(%ebp)
410044:	89 85 d4 ef ff ff    	mov    %eax,-0x102c(%ebp)
41004a:	8b 4d 08             	mov    0x8(%ebp),%ecx
41004d:	0f b6 41 08          	movzbl 0x8(%ecx),%eax
410051:	50                   	push   %eax
410052:	0f b7 41 06          	movzwl 0x6(%ecx),%eax
410056:	50                   	push   %eax
410057:	0f b6 41 04          	movzbl 0x4(%ecx),%eax
41005b:	50                   	push   %eax
41005c:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
410060:	50                   	push   %eax
410061:	0f b7 01             	movzwl (%ecx),%eax
410064:	8d 8d a4 ef ff ff    	lea    -0x105c(%ebp),%ecx
41006a:	50                   	push   %eax
41006b:	e8 05 f8 ff ff       	call   0x40f875
410070:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
410074:	8d 85 e8 ef ff ff    	lea    -0x1018(%ebp),%eax
41007a:	50                   	push   %eax
41007b:	8d 85 f0 ef ff ff    	lea    -0x1010(%ebp),%eax
410081:	c7 85 e8 ef ff ff 00 	movl   $0x1000,-0x1018(%ebp)
410088:	10 00 00
41008b:	50                   	push   %eax
41008c:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
410092:	50                   	push   %eax
410093:	51                   	push   %ecx
410094:	8b cb                	mov    %ebx,%ecx
410096:	e8 c7 e1 ff ff       	call   0x40e262
41009b:	8b f0                	mov    %eax,%esi
41009d:	8b ce                	mov    %esi,%ecx
41009f:	e8 17 d7 ff ff       	call   0x40d7bb
4100a4:	85 f6                	test   %esi,%esi
4100a6:	74 10                	je     0x4100b8
4100a8:	33 c0                	xor    %eax,%eax
4100aa:	21 85 e0 ef ff ff    	and    %eax,-0x1020(%ebp)
4100b0:	89 85 e8 ef ff ff    	mov    %eax,-0x1018(%ebp)
4100b6:	eb 06                	jmp    0x4100be
4100b8:	8b 85 e8 ef ff ff    	mov    -0x1018(%ebp),%eax
4100be:	68 00 10 00 00       	push   $0x1000
4100c3:	50                   	push   %eax
4100c4:	8d 85 f0 ef ff ff    	lea    -0x1010(%ebp),%eax
4100ca:	50                   	push   %eax
4100cb:	8d 8d a4 ef ff ff    	lea    -0x105c(%ebp),%ecx
4100d1:	e8 98 f8 ff ff       	call   0x40f96e
4100d6:	80 bd c5 ef ff ff 00 	cmpb   $0x0,-0x103b(%ebp)
4100dd:	0f 85 fc 00 00 00    	jne    0x4101df
4100e3:	83 a5 dc ef ff ff 00 	andl   $0x0,-0x1024(%ebp)
4100ea:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
4100f0:	89 85 c8 ef ff ff    	mov    %eax,-0x1038(%ebp)
4100f6:	8d b5 c8 ef ff ff    	lea    -0x1038(%ebp),%esi
4100fc:	83 ec 48             	sub    $0x48,%esp
4100ff:	8d 85 d8 ef ff ff    	lea    -0x1028(%ebp),%eax
410105:	89 85 cc ef ff ff    	mov    %eax,-0x1034(%ebp)
41010b:	8b cc                	mov    %esp,%ecx
41010d:	8d 85 a4 ef ff ff    	lea    -0x105c(%ebp),%eax