405d32:	8b 75 08             	mov    0x8(%ebp),%esi
405d35:	57                   	push   %edi
405d36:	6a 64                	push   $0x64
405d38:	5f                   	pop    %edi
405d39:	a1 cc a3 40 00       	mov    0x40a3cc,%eax
405d3e:	4f                   	dec    %edi
405d3f:	89 45 08             	mov    %eax,0x8(%ebp)
405d42:	ff 15 90 80 40 00    	call   *0x408090
405d48:	6a 1a                	push   $0x1a
405d4a:	33 d2                	xor    %edx,%edx
405d4c:	59                   	pop    %ecx
405d4d:	f7 f1                	div    %ecx
405d4f:	56                   	push   %esi
405d50:	8d 45 08             	lea    0x8(%ebp),%eax
405d53:	6a 00                	push   $0x0
405d55:	50                   	push   %eax
405d56:	ff 75 0c             	push   0xc(%ebp)
405d59:	00 55 0a             	add    %dl,0xa(%ebp)
405d5c:	ff 15 d0 80 40 00    	call   *0x4080d0
405d62:	85 c0                	test   %eax,%eax
405d64:	75 0d                	jne    0x405d73
405d66:	85 ff                	test   %edi,%edi
405d68:	75 cf                	jne    0x405d39
405d6a:	80 26 00             	andb   $0x0,(%esi)
405d6d:	5f                   	pop    %edi
405d6e:	5e                   	pop    %esi
405d6f:	5d                   	pop    %ebp
405d70:	c2 08 00             	ret    $0x8
405d73:	8b c6                	mov    %esi,%eax
405d75:	eb f6                	jmp    0x405d6d
405d77:	55                   	push   %ebp
405d78:	8b ec                	mov    %esp,%ebp
405d7a:	56                   	push   %esi
405d7b:	8b 75 10             	mov    0x10(%ebp),%esi
405d7e:	8d 45 10             	lea    0x10(%ebp),%eax
405d81:	6a 00                	push   $0x0
405d83:	50                   	push   %eax
405d84:	56                   	push   %esi
405d85:	ff 75 0c             	push   0xc(%ebp)
405d88:	ff 75 08             	push   0x8(%ebp)
405d8b:	ff 15 80 80 40 00    	call   *0x408080
405d91:	85 c0                	test   %eax,%eax
405d93:	74 0a                	je     0x405d9f
405d95:	3b 75 10             	cmp    0x10(%ebp),%esi
405d98:	75 05                	jne    0x405d9f
405d9a:	33 c0                	xor    %eax,%eax
405d9c:	40                   	inc    %eax
405d9d:	eb 02                	jmp    0x405da1
405d9f:	33 c0                	xor    %eax,%eax
405da1:	5e                   	pop    %esi
405da2:	5d                   	pop    %ebp
405da3:	c2 0c 00             	ret    $0xc
405da6:	55                   	push   %ebp
405da7:	8b ec                	mov    %esp,%ebp
405da9:	56                   	push   %esi
405daa:	8b 75 10             	mov    0x10(%ebp),%esi
405dad:	8d 45 10             	lea    0x10(%ebp),%eax
405db0:	6a 00                	push   $0x0
405db2:	50                   	push   %eax
405db3:	56                   	push   %esi
405db4:	ff 75 0c             	push   0xc(%ebp)
405db7:	ff 75 08             	push   0x8(%ebp)
405dba:	ff 15 d4 80 40 00    	call   *0x4080d4
405dc0:	85 c0                	test   %eax,%eax
405dc2:	74 0a                	je     0x405dce
405dc4:	3b 75 10             	cmp    0x10(%ebp),%esi
405dc7:	75 05                	jne    0x405dce
405dc9:	33 c0                	xor    %eax,%eax
405dcb:	40                   	inc    %eax
405dcc:	eb 02                	jmp    0x405dd0
405dce:	33 c0                	xor    %eax,%eax
405dd0:	5e                   	pop    %esi
405dd1:	5d                   	pop    %ebp
405dd2:	c2 0c 00             	ret    $0xc
405dd5:	53                   	push   %ebx
405dd6:	8b 1d 0c 81 40 00    	mov    0x40810c,%ebx
405ddc:	55                   	push   %ebp
405ddd:	56                   	push   %esi
405dde:	8b 74 24 14          	mov    0x14(%esp),%esi
405de2:	57                   	push   %edi
405de3:	85 f6                	test   %esi,%esi
405de5:	c7 05 28 c6 42 00 4e 	movl   $0x4c554e,0x42c628
405dec:	55 4c 00
405def:	bf 00 04 00 00       	mov    $0x400,%edi
405df4:	bd 28 c6 42 00       	mov    $0x42c628,%ebp
405df9:	74 26                	je     0x405e21
405dfb:	6a 01                	push   $0x1
405dfd:	6a 00                	push   $0x0
405dff:	56                   	push   %esi
405e00:	e8 fa fe ff ff       	call   0x405cff
405e05:	50                   	push   %eax
405e06:	ff 15 14 81 40 00    	call   *0x408114
405e0c:	57                   	push   %edi
405e0d:	55                   	push   %ebp
405e0e:	56                   	push   %esi
405e0f:	ff d3                	call   *%ebx
405e11:	85 c0                	test   %eax,%eax
405e13:	0f 84 27 01 00 00    	je     0x405f40
405e19:	3b c7                	cmp    %edi,%eax
405e1b:	0f 8f 1f 01 00 00    	jg     0x405f40
405e21:	be 28 ca 42 00       	mov    $0x42ca28,%esi
405e26:	57                   	push   %edi
405e27:	56                   	push   %esi
405e28:	ff 74 24 1c          	push   0x1c(%esp)
405e2c:	ff d3                	call   *%ebx
405e2e:	85 c0                	test   %eax,%eax
405e30:	0f 84 0a 01 00 00    	je     0x405f40
405e36:	3b c7                	cmp    %edi,%eax
405e38:	0f 8f 02 01 00 00    	jg     0x405f40
405e3e:	56                   	push   %esi
405e3f:	55                   	push   %ebp
405e40:	68 e0 a3 40 00       	push   $0x40a3e0
405e45:	68 28 c2 42 00       	push   $0x42c228
405e4a:	ff 15 74 82 40 00    	call   *0x408274
405e50:	8b d8                	mov    %eax,%ebx
405e52:	a1 34 f4 42 00       	mov    0x42f434,%eax
405e57:	83 c4 10             	add    $0x10,%esp
405e5a:	ff b0 28 01 00 00    	push   0x128(%eax)
405e60:	56                   	push   %esi
405e61:	e8 22 03 00 00       	call   0x406188
405e66:	6a 04                	push   $0x4
405e68:	68 00 00 00 c0       	push   $0xc0000000
405e6d:	56                   	push   %esi
405e6e:	e8 8c fe ff ff       	call   0x405cff
405e73:	8b e8                	mov    %eax,%ebp
405e75:	83 fd ff             	cmp    $0xffffffff,%ebp
405e78:	89 6c 24 18          	mov    %ebp,0x18(%esp)
405e7c:	0f 84 be 00 00 00    	je     0x405f40
405e82:	6a 00                	push   $0x0
405e84:	55                   	push   %ebp
405e85:	ff 15 78 80 40 00    	call   *0x408078
405e8b:	8b f8                	mov    %eax,%edi
405e8d:	8d 44 1f 0a          	lea    0xa(%edi,%ebx,1),%eax
405e91:	50                   	push   %eax
405e92:	6a 40                	push   $0x40
405e94:	ff 15 58 81 40 00    	call   *0x408158
405e9a:	8b f0                	mov    %eax,%esi
405e9c:	85 f6                	test   %esi,%esi
405e9e:	0f 84 95 00 00 00    	je     0x405f39
405ea4:	57                   	push   %edi
405ea5:	56                   	push   %esi
405ea6:	55                   	push   %ebp
405ea7:	e8 cb fe ff ff       	call   0x405d77
405eac:	85 c0                	test   %eax,%eax
405eae:	0f 84 85 00 00 00    	je     0x405f39
405eb4:	68 d4 a3 40 00       	push   $0x40a3d4
405eb9:	56                   	push   %esi
405eba:	e8 a5 fd ff ff       	call   0x405c64
405ebf:	85 c0                	test   %eax,%eax
405ec1:	75 14                	jne    0x405ed7
405ec3:	8d 04 3e             	lea    (%esi,%edi,1),%eax
405ec6:	68 d4 a3 40 00       	push   $0x40a3d4
405ecb:	50                   	push   %eax
405ecc:	ff 15 d8 80 40 00    	call   *0x4080d8
405ed2:	83 c7 0a             	add    $0xa,%edi
405ed5:	eb 35                	jmp    0x405f0c
405ed7:	83 c0 0a             	add    $0xa,%eax
405eda:	68 d0 a3 40 00       	push   $0x40a3d0
405edf:	50                   	push   %eax
405ee0:	e8 7f fd ff ff       	call   0x405c64
405ee5:	8b e8                	mov    %eax,%ebp
405ee7:	85 ed                	test   %ebp,%ebp
405ee9:	74 1d                	je     0x405f08
405eeb:	8d 0c 3e             	lea    (%esi,%edi,1),%ecx
405eee:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
405ef1:	eb 06                	jmp    0x405ef9
405ef3:	8a 11                	mov    (%ecx),%dl
405ef5:	88 10                	mov    %dl,(%eax)
405ef7:	48                   	dec    %eax
405ef8:	49                   	dec    %ecx
405ef9:	3b cd                	cmp    %ebp,%ecx
405efb:	77 f6                	ja     0x405ef3
405efd:	2b ee                	sub    %esi,%ebp
405eff:	45                   	inc    %ebp
405f00:	8b c5                	mov    %ebp,%eax
405f02:	8b 6c 24 18          	mov    0x18(%esp),%ebp
405f06:	eb 06                	jmp    0x405f0e
405f08:	8b 6c 24 18          	mov    0x18(%esp),%ebp
405f0c:	8b c7                	mov    %edi,%eax
405f0e:	53                   	push   %ebx
405f0f:	03 c6                	add    %esi,%eax
405f11:	68 28 c2 42 00       	push   $0x42c228
405f16:	50                   	push   %eax
405f17:	e8 9e fd ff ff       	call   0x405cba
405f1c:	33 c0                	xor    %eax,%eax
405f1e:	50                   	push   %eax
405f1f:	50                   	push   %eax
405f20:	50                   	push   %eax
405f21:	55                   	push   %ebp
405f22:	ff 15 38 81 40 00    	call   *0x408138
405f28:	03 fb                	add    %ebx,%edi
405f2a:	57                   	push   %edi
405f2b:	56                   	push   %esi
405f2c:	55                   	push   %ebp
405f2d:	e8 74 fe ff ff       	call   0x405da6
405f32:	56                   	push   %esi
405f33:	ff 15 5c 81 40 00    	call   *0x40815c
405f39:	55                   	push   %ebp
405f3a:	ff 15 14 81 40 00    	call   *0x408114
405f40:	5f                   	pop    %edi
405f41:	5e                   	pop    %esi
405f42:	5d                   	pop    %ebp
405f43:	5b                   	pop    %ebx
405f44:	c3                   	ret
405f45:	6a 05                	push   $0x5
405f47:	ff 74 24 0c          	push   0xc(%esp)
405f4b:	ff 74 24 0c          	push   0xc(%esp)
405f4f:	ff 15 dc 80 40 00    	call   *0x4080dc
405f55:	85 c0                	test   %eax,%eax
405f57:	75 0f                	jne    0x405f68
405f59:	ff 74 24 08          	push   0x8(%esp)
405f5d:	ff 74 24 08          	push   0x8(%esp)
405f61:	e8 6f fe ff ff       	call   0x405dd5
405f66:	59                   	pop    %ecx
405f67:	59                   	pop    %ecx
405f68:	ff 05 d0 f4 42 00    	incl   0x42f4d0
405f6e:	c2 08 00             	ret    $0x8
405f71:	8b 15 2c f4 42 00    	mov    0x42f42c,%edx
405f77:	53                   	push   %ebx
405f78:	8b 5c 24 08          	mov    0x8(%esp),%ebx
405f7c:	57                   	push   %edi
405f7d:	8b 7c 24 10          	mov    0x10(%esp),%edi
405f81:	f7 d2                	not    %edx
405f83:	8b 07                	mov    (%edi),%eax
405f85:	c1 ea 16             	shr    $0x16,%edx
405f88:	81 e2 00 01 00 00    	and    $0x100,%edx
405f8e:	a8 20                	test   $0x20,%al
405f90:	74 34                	je     0x405fc6
405f92:	f7 c3 00 00 00 60    	test   $0x60000000,%ebx
405f98:	74 2c                	je     0x405fc6
405f9a:	8b cb                	mov    %ebx,%ecx
405f9c:	56                   	push   %esi
405f9d:	c1 e9 15             	shr    $0x15,%ecx
405fa0:	be 00 03 00 00       	mov    $0x300,%esi
405fa5:	23 ce                	and    %esi,%ecx
405fa7:	3b ce                	cmp    %esi,%ecx
405fa9:	5e                   	pop    %esi
405faa:	75 0a                	jne    0x405fb6
405fac:	8b ca                	mov    %edx,%ecx
405fae:	f7 d1                	not    %ecx
405fb0:	23 0d f0 f4 42 00    	and    0x42f4f0,%ecx
405fb6:	80 e4 fe             	and    $0xfe,%ah
405fb9:	0b c1                	or     %ecx,%eax
405fbb:	80 e4 fd             	and    $0xfd,%ah
405fbe:	81 e3 ff ff ff 9f    	and    $0x9fffffff,%ebx
405fc4:	eb 0d                	jmp    0x405fd3
405fc6:	a9 00 00 10 00       	test   $0x100000,%eax
405fcb:	74 06                	je     0x405fd3
405fcd:	0b 05 f0 f4 42 00    	or     0x42f4f0,%eax
405fd3:	8b c8                	mov    %eax,%ecx
405fd5:	23 c2                	and    %edx,%eax
405fd7:	81 e1 df ff ef ff    	and    $0xffefffdf,%ecx
405fdd:	f7 d8                	neg    %eax
405fdf:	1b c0                	sbb    %eax,%eax
405fe1:	89 0f                	mov    %ecx,(%edi)
405fe3:	f7 d0                	not    %eax
405fe5:	23 c3                	and    %ebx,%eax
405fe7:	5f                   	pop    %edi
405fe8:	5b                   	pop    %ebx
405fe9:	c2 08 00             	ret    $0x8
405fec:	55                   	push   %ebp
405fed:	8b ec                	mov    %esp,%ebp
405fef:	8d 45 10             	lea    0x10(%ebp),%eax
405ff2:	50                   	push   %eax
405ff3:	ff 75 08             	push   0x8(%ebp)
405ff6:	e8 76 ff ff ff       	call   0x405f71
405ffb:	85 c0                	test   %eax,%eax
405ffd:	75 05                	jne    0x406004
405fff:	6a 06                	push   $0x6
406001:	58                   	pop    %eax
406002:	eb 12                	jmp    0x406016
406004:	ff 75 14             	push   0x14(%ebp)
406007:	ff 75 10             	push   0x10(%ebp)
40600a:	6a 00                	push   $0x0
40600c:	ff 75 0c             	push   0xc(%ebp)
40600f:	50                   	push   %eax
406010:	ff 15 08 80 40 00    	call   *0x408008
406016:	5d                   	pop    %ebp
406017:	c2 10 00             	ret    $0x10
40601a:	55                   	push   %ebp
40601b:	8b ec                	mov    %esp,%ebp
40601d:	8d 45 10             	lea    0x10(%ebp),%eax
406020:	50                   	push   %eax
406021:	ff 75 08             	push   0x8(%ebp)
406024:	e8 48 ff ff ff       	call   0x405f71
406029:	33 c9                	xor    %ecx,%ecx
40602b:	3b c1                	cmp    %ecx,%eax
40602d:	75 05                	jne    0x406034
40602f:	6a 06                	push   $0x6
406031:	58                   	pop    %eax
406032:	eb 15                	jmp    0x406049
406034:	51                   	push   %ecx
406035:	ff 75 14             	push   0x14(%ebp)
406038:	51                   	push   %ecx
406039:	ff 75 10             	push   0x10(%ebp)
40603c:	51                   	push   %ecx
40603d:	51                   	push   %ecx
40603e:	51                   	push   %ecx
40603f:	ff 75 0c             	push   0xc(%ebp)
406042:	50                   	push   %eax
406043:	ff 15 04 80 40 00    	call   *0x408004
406049:	5d                   	pop    %ebp
40604a:	c2 10 00             	ret    $0x10
40604d:	55                   	push   %ebp
40604e:	8b ec                	mov    %esp,%ebp
406050:	51                   	push   %ecx
406051:	8d 45 18             	lea    0x18(%ebp),%eax
406054:	56                   	push   %esi
406055:	50                   	push   %eax
406056:	8b 45 18             	mov    0x18(%ebp),%eax
406059:	f7 d8                	neg    %eax
40605b:	1b c0                	sbb    %eax,%eax
40605d:	c7 45 fc 00 04 00 00 	movl   $0x400,-0x4(%ebp)
406064:	25 00 01 00 00       	and    $0x100,%eax
406069:	0d 19 00 02 00       	or     $0x20019,%eax
40606e:	50                   	push   %eax
40606f:	ff 75 0c             	push   0xc(%ebp)
406072:	ff 75 08             	push   0x8(%ebp)
406075:	e8 72 ff ff ff       	call   0x405fec
40607a:	8b 75 14             	mov    0x14(%ebp),%esi
40607d:	85 c0                	test   %eax,%eax
40607f:	75 3b                	jne    0x4060bc
406081:	8d 45 fc             	lea    -0x4(%ebp),%eax
406084:	57                   	push   %edi
406085:	50                   	push   %eax
406086:	8d 45 0c             	lea    0xc(%ebp),%eax
406089:	56                   	push   %esi
40608a:	50                   	push   %eax
40608b:	6a 00                	push   $0x0
40608d:	ff 75 10             	push   0x10(%ebp)
406090:	ff 75 18             	push   0x18(%ebp)
406093:	ff 15 2c 80 40 00    	call   *0x40802c
406099:	ff 75 18             	push   0x18(%ebp)
40609c:	8b f8                	mov    %eax,%edi
40609e:	ff 15 24 80 40 00    	call   *0x408024
4060a4:	80 a6 ff 03 00 00 00 	andb   $0x0,0x3ff(%esi)
4060ab:	85 ff                	test   %edi,%edi
4060ad:	5f                   	pop    %edi
4060ae:	75 0c                	jne    0x4060bc
4060b0:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4060b4:	74 09                	je     0x4060bf
4060b6:	83 7d 0c 02          	cmpl   $0x2,0xc(%ebp)
4060ba:	74 03                	je     0x4060bf
4060bc:	80 26 00             	andb   $0x0,(%esi)
4060bf:	5e                   	pop    %esi
4060c0:	c9                   	leave
4060c1:	c2 14 00             	ret    $0x14
4060c4:	ff 74 24 08          	push   0x8(%esp)
4060c8:	68 a4 83 40 00       	push   $0x4083a4
4060cd:	ff 74 24 0c          	push   0xc(%esp)