56fbc4:	83 c4 08             	add    $0x8,%esp
56fbc7:	85 c0                	test   %eax,%eax
56fbc9:	0f 84 8c 00 00 00    	je     0x56fc5b
56fbcf:	0f af 5c 24 18       	imul   0x18(%esp),%ebx
56fbd4:	33 d2                	xor    %edx,%edx
56fbd6:	8b c3                	mov    %ebx,%eax
56fbd8:	f7 74 24 18          	divl   0x18(%esp)
56fbdc:	3b c6                	cmp    %esi,%eax
56fbde:	74 79                	je     0x56fc59
56fbe0:	8b 44 24 10          	mov    0x10(%esp),%eax
56fbe4:	56                   	push   %esi
56fbe5:	57                   	push   %edi
56fbe6:	85 c0                	test   %eax,%eax
56fbe8:	74 34                	je     0x56fc1e
56fbea:	e8 01 39 f4 ff       	call   0x4b34f0
56fbef:	8b 5c 24 40          	mov    0x40(%esp),%ebx
56fbf3:	83 c4 08             	add    $0x8,%esp
56fbf6:	85 c0                	test   %eax,%eax
56fbf8:	0f 84 f7 00 00 00    	je     0x56fcf5
56fbfe:	53                   	push   %ebx
56fbff:	55                   	push   %ebp
56fc00:	8d 45 04             	lea    0x4(%ebp),%eax
56fc03:	50                   	push   %eax
56fc04:	57                   	push   %edi
56fc05:	57                   	push   %edi
56fc06:	e8 15 13 00 00       	call   0x570f20
56fc0b:	83 c4 14             	add    $0x14,%esp
56fc0e:	85 c0                	test   %eax,%eax
56fc10:	0f 84 df 00 00 00    	je     0x56fcf5
56fc16:	33 c0                	xor    %eax,%eax
56fc18:	89 44 24 10          	mov    %eax,0x10(%esp)
56fc1c:	eb 37                	jmp    0x56fc55
56fc1e:	e8 9d 3d f4 ff       	call   0x4b39c0
56fc23:	8b 5c 24 40          	mov    0x40(%esp),%ebx
56fc27:	83 c4 08             	add    $0x8,%esp
56fc2a:	85 c0                	test   %eax,%eax
56fc2c:	0f 84 c3 00 00 00    	je     0x56fcf5
56fc32:	8b 74 24 14          	mov    0x14(%esp),%esi
56fc36:	53                   	push   %ebx
56fc37:	ff 74 24 38          	push   0x38(%esp)
56fc3b:	57                   	push   %edi
56fc3c:	56                   	push   %esi
56fc3d:	6a 00                	push   $0x0
56fc3f:	e8 5c 07 00 00       	call   0x5703a0
56fc44:	83 c4 14             	add    $0x14,%esp
56fc47:	85 c0                	test   %eax,%eax
56fc49:	0f 84 a6 00 00 00    	je     0x56fcf5
56fc4f:	89 7c 24 14          	mov    %edi,0x14(%esp)
56fc53:	8b fe                	mov    %esi,%edi
56fc55:	8b 5c 24 18          	mov    0x18(%esp),%ebx
56fc59:	8b f3                	mov    %ebx,%esi
56fc5b:	83 6c 24 1c 01       	subl   $0x1,0x1c(%esp)
56fc60:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56fc64:	0f 89 a6 fe ff ff    	jns    0x56fb10
56fc6a:	8b 5c 24 38          	mov    0x38(%esp),%ebx
56fc6e:	83 fe 01             	cmp    $0x1,%esi
56fc71:	74 6a                	je     0x56fcdd
56fc73:	56                   	push   %esi
56fc74:	57                   	push   %edi
56fc75:	85 c9                	test   %ecx,%ecx
56fc77:	74 3d                	je     0x56fcb6
56fc79:	e8 72 38 f4 ff       	call   0x4b34f0
56fc7e:	83 c4 08             	add    $0x8,%esp
56fc81:	85 c0                	test   %eax,%eax
56fc83:	74 70                	je     0x56fcf5
56fc85:	53                   	push   %ebx
56fc86:	55                   	push   %ebp
56fc87:	8d 45 04             	lea    0x4(%ebp),%eax
56fc8a:	50                   	push   %eax
56fc8b:	57                   	push   %edi
56fc8c:	57                   	push   %edi
56fc8d:	e8 8e 12 00 00       	call   0x570f20
56fc92:	83 c4 14             	add    $0x14,%esp
56fc95:	85 c0                	test   %eax,%eax
56fc97:	74 5c                	je     0x56fcf5
56fc99:	53                   	push   %ebx
56fc9a:	55                   	push   %ebp
56fc9b:	57                   	push   %edi
56fc9c:	ff 74 24 34          	push   0x34(%esp)
56fca0:	e8 7b 0f 00 00       	call   0x570c20
56fca5:	83 c4 10             	add    $0x10,%esp
56fca8:	85 c0                	test   %eax,%eax
56fcaa:	74 49                	je     0x56fcf5
56fcac:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%esp)
56fcb3:	00
56fcb4:	eb 3f                	jmp    0x56fcf5
56fcb6:	e8 05 3d f4 ff       	call   0x4b39c0
56fcbb:	83 c4 08             	add    $0x8,%esp
56fcbe:	85 c0                	test   %eax,%eax
56fcc0:	74 33                	je     0x56fcf5
56fcc2:	53                   	push   %ebx
56fcc3:	ff 74 24 38          	push   0x38(%esp)
56fcc7:	57                   	push   %edi
56fcc8:	8b 7c 24 20          	mov    0x20(%esp),%edi
56fccc:	57                   	push   %edi
56fccd:	6a 00                	push   $0x0
56fccf:	e8 cc 06 00 00       	call   0x5703a0
56fcd4:	83 c4 14             	add    $0x14,%esp
56fcd7:	85 c0                	test   %eax,%eax
56fcd9:	74 1a                	je     0x56fcf5
56fcdb:	eb bc                	jmp    0x56fc99
56fcdd:	85 c9                	test   %ecx,%ecx
56fcdf:	74 b8                	je     0x56fc99
56fce1:	6a 01                	push   $0x1
56fce3:	ff 74 24 2c          	push   0x2c(%esp)
56fce7:	e8 04 38 f4 ff       	call   0x4b34f0
56fcec:	83 c4 08             	add    $0x8,%esp
56fcef:	eb b7                	jmp    0x56fca8
56fcf1:	8b 5c 24 38          	mov    0x38(%esp),%ebx
56fcf5:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
56fcfa:	75 0d                	jne    0x56fd09
56fcfc:	85 ed                	test   %ebp,%ebp
56fcfe:	74 09                	je     0x56fd09
56fd00:	55                   	push   %ebp
56fd01:	e8 3a 0c 00 00       	call   0x570940
56fd06:	83 c4 04             	add    $0x4,%esp
56fd09:	53                   	push   %ebx
56fd0a:	e8 41 80 f6 ff       	call   0x4d7d50
56fd0f:	8b 44 24 24          	mov    0x24(%esp),%eax
56fd13:	83 c4 04             	add    $0x4,%esp
56fd16:	5e                   	pop    %esi
56fd17:	5b                   	pop    %ebx
56fd18:	5f                   	pop    %edi
56fd19:	5d                   	pop    %ebp
56fd1a:	83 c4 14             	add    $0x14,%esp
56fd1d:	c3                   	ret
56fd1e:	68 ce 04 00 00       	push   $0x4ce
56fd23:	68 88 c9 6b 00       	push   $0x6bc988
56fd28:	6a 66                	push   $0x66
56fd2a:	6a 75                	push   $0x75
56fd2c:	6a 03                	push   $0x3
56fd2e:	e8 6d 17 f3 ff       	call   0x4a14a0
56fd33:	83 c4 14             	add    $0x14,%esp
56fd36:	33 c0                	xor    %eax,%eax
56fd38:	5b                   	pop    %ebx
56fd39:	5f                   	pop    %edi
56fd3a:	5d                   	pop    %ebp
56fd3b:	83 c4 14             	add    $0x14,%esp
56fd3e:	c3                   	ret
56fd3f:	cc                   	int3
56fd40:	b8 d8 00 00 00       	mov    $0xd8,%eax
56fd45:	e8 a6 17 07 00       	call   0x5e14f0
56fd4a:	a1 d4 89 72 00       	mov    0x7289d4,%eax
56fd4f:	33 c4                	xor    %esp,%eax
56fd51:	89 84 24 d4 00 00 00 	mov    %eax,0xd4(%esp)
56fd58:	8b 84 24 e0 00 00 00 	mov    0xe0(%esp),%eax
56fd5f:	53                   	push   %ebx
56fd60:	8b 9c 24 e0 00 00 00 	mov    0xe0(%esp),%ebx
56fd67:	89 44 24 14          	mov    %eax,0x14(%esp)
56fd6b:	8b 84 24 e8 00 00 00 	mov    0xe8(%esp),%eax
56fd72:	55                   	push   %ebp
56fd73:	8b ac 24 f4 00 00 00 	mov    0xf4(%esp),%ebp
56fd7a:	56                   	push   %esi
56fd7b:	f6 40 10 04          	testb  $0x4,0x10(%eax)
56fd7f:	8b b4 24 f4 00 00 00 	mov    0xf4(%esp),%esi
56fd86:	89 5c 24 28          	mov    %ebx,0x28(%esp)
56fd8a:	89 44 24 24          	mov    %eax,0x24(%esp)
56fd8e:	89 6c 24 18          	mov    %ebp,0x18(%esp)
56fd92:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
56fd99:	00
56fd9a:	74 33                	je     0x56fdcf
56fd9c:	68 1a 01 00 00       	push   $0x11a
56fda1:	68 88 c9 6b 00       	push   $0x6bc988
56fda6:	6a 42                	push   $0x42
56fda8:	6a 7d                	push   $0x7d
56fdaa:	6a 03                	push   $0x3
56fdac:	e8 ef 16 f3 ff       	call   0x4a14a0
56fdb1:	83 c4 14             	add    $0x14,%esp
56fdb4:	83 c8 ff             	or     $0xffffffff,%eax
56fdb7:	5e                   	pop    %esi
56fdb8:	5d                   	pop    %ebp
56fdb9:	5b                   	pop    %ebx
56fdba:	8b 8c 24 d4 00 00 00 	mov    0xd4(%esp),%ecx
56fdc1:	33 cc                	xor    %esp,%ecx
56fdc3:	e8 12 17 07 00       	call   0x5e14da
56fdc8:	81 c4 d8 00 00 00    	add    $0xd8,%esp
56fdce:	c3                   	ret
56fdcf:	50                   	push   %eax
56fdd0:	e8 9b 35 f4 ff       	call   0x4b3370
56fdd5:	83 c4 04             	add    $0x4,%esp
56fdd8:	89 44 24 10          	mov    %eax,0x10(%esp)
56fddc:	85 c0                	test   %eax,%eax
56fdde:	75 62                	jne    0x56fe42
56fde0:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
56fde4:	75 37                	jne    0x56fe1d
56fde6:	8b 06                	mov    (%esi),%eax
56fde8:	83 38 01             	cmpl   $0x1,(%eax)
56fdeb:	75 30                	jne    0x56fe1d
56fded:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
56fdf1:	75 2a                	jne    0x56fe1d
56fdf3:	6a 00                	push   $0x0
56fdf5:	53                   	push   %ebx
56fdf6:	be 01 00 00 00       	mov    $0x1,%esi
56fdfb:	e8 f0 36 f4 ff       	call   0x4b34f0
56fe00:	83 c4 08             	add    $0x8,%esp
56fe03:	8b c6                	mov    %esi,%eax
56fe05:	5e                   	pop    %esi
56fe06:	5d                   	pop    %ebp
56fe07:	5b                   	pop    %ebx
56fe08:	8b 8c 24 d4 00 00 00 	mov    0xd4(%esp),%ecx
56fe0f:	33 cc                	xor    %esp,%ecx
56fe11:	e8 c4 16 07 00       	call   0x5e14da
56fe16:	81 c4 d8 00 00 00    	add    $0xd8,%esp
56fe1c:	c3                   	ret
56fe1d:	6a 01                	push   $0x1
56fe1f:	53                   	push   %ebx
56fe20:	e8 cb 36 f4 ff       	call   0x4b34f0
56fe25:	83 c4 08             	add    $0x8,%esp
56fe28:	8b f0                	mov    %eax,%esi
56fe2a:	5e                   	pop    %esi
56fe2b:	5d                   	pop    %ebp
56fe2c:	5b                   	pop    %ebx
56fe2d:	8b 8c 24 d4 00 00 00 	mov    0xd4(%esp),%ecx
56fe34:	33 cc                	xor    %esp,%ecx
56fe36:	e8 9f 16 07 00       	call   0x5e14da
56fe3b:	81 c4 d8 00 00 00    	add    $0xd8,%esp
56fe41:	c3                   	ret
56fe42:	57                   	push   %edi
56fe43:	55                   	push   %ebp
56fe44:	e8 57 80 f6 ff       	call   0x4d7ea0
56fe49:	55                   	push   %ebp
56fe4a:	e8 71 7f f6 ff       	call   0x4d7dc0
56fe4f:	55                   	push   %ebp
56fe50:	89 44 24 1c          	mov    %eax,0x1c(%esp)
56fe54:	e8 67 7f f6 ff       	call   0x4d7dc0
56fe59:	83 c4 0c             	add    $0xc,%esp
56fe5c:	8b f8                	mov    %eax,%edi
56fe5e:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
56fe63:	89 7c 24 64          	mov    %edi,0x64(%esp)
56fe67:	0f 84 6a 02 00 00    	je     0x5700d7
56fe6d:	85 ff                	test   %edi,%edi
56fe6f:	0f 84 62 02 00 00    	je     0x5700d7
56fe75:	8d 44 24 30          	lea    0x30(%esp),%eax
56fe79:	50                   	push   %eax
56fe7a:	e8 21 73 01 00       	call   0x5871a0
56fe7f:	83 c4 04             	add    $0x4,%esp
56fe82:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
56fe86:	74 24                	je     0x56feac
56fe88:	56                   	push   %esi
56fe89:	ff 74 24 14          	push   0x14(%esp)
56fe8d:	e8 3e 32 f4 ff       	call   0x4b30d0
56fe92:	83 c4 08             	add    $0x8,%esp
56fe95:	85 c0                	test   %eax,%eax
56fe97:	0f 84 3a 02 00 00    	je     0x5700d7
56fe9d:	8b 44 24 10          	mov    0x10(%esp),%eax
56fea1:	55                   	push   %ebp
56fea2:	50                   	push   %eax
56fea3:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
56feaa:	eb 02                	jmp    0x56feae
56feac:	55                   	push   %ebp
56fead:	56                   	push   %esi
56feae:	8d 44 24 38          	lea    0x38(%esp),%eax
56feb2:	50                   	push   %eax
56feb3:	e8 18 73 01 00       	call   0x5871d0
56feb8:	83 c4 0c             	add    $0xc,%esp
56febb:	85 c0                	test   %eax,%eax
56febd:	0f 8e 14 02 00 00    	jle    0x5700d7
56fec3:	55                   	push   %ebp
56fec4:	56                   	push   %esi
56fec5:	ff 74 24 28          	push   0x28(%esp)
56fec9:	57                   	push   %edi
56feca:	e8 81 ee ff ff       	call   0x56ed50
56fecf:	83 c4 10             	add    $0x10,%esp
56fed2:	85 c0                	test   %eax,%eax
56fed4:	0f 84 fd 01 00 00    	je     0x5700d7
56feda:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
56fede:	75 10                	jne    0x56fef0
56fee0:	6a 00                	push   $0x0
56fee2:	53                   	push   %ebx
56fee3:	e8 08 36 f4 ff       	call   0x4b34f0
56fee8:	83 c4 08             	add    $0x8,%esp
56feeb:	e9 df 01 00 00       	jmp    0x5700cf
56fef0:	8b 44 24 14          	mov    0x14(%esp),%eax
56fef4:	3d 9f 02 00 00       	cmp    $0x29f,%eax
56fef9:	7e 0b                	jle    0x56ff06
56fefb:	be 06 00 00 00       	mov    $0x6,%esi
56ff00:	89 74 24 18          	mov    %esi,0x18(%esp)
56ff04:	eb 3e                	jmp    0x56ff44
56ff06:	3d ef 00 00 00       	cmp    $0xef,%eax
56ff0b:	7e 0b                	jle    0x56ff18
56ff0d:	be 05 00 00 00       	mov    $0x5,%esi
56ff12:	89 74 24 18          	mov    %esi,0x18(%esp)
56ff16:	eb 2c                	jmp    0x56ff44
56ff18:	83 f8 4f             	cmp    $0x4f,%eax
56ff1b:	7e 0b                	jle    0x56ff28
56ff1d:	be 04 00 00 00       	mov    $0x4,%esi
56ff22:	89 74 24 18          	mov    %esi,0x18(%esp)
56ff26:	eb 1c                	jmp    0x56ff44
56ff28:	33 c0                	xor    %eax,%eax
56ff2a:	83 7c 24 14 17       	cmpl   $0x17,0x14(%esp)
56ff2f:	0f 9f c0             	setg   %al
56ff32:	8d 04 45 01 00 00 00 	lea    0x1(,%eax,2),%eax
56ff39:	89 44 24 18          	mov    %eax,0x18(%esp)
56ff3d:	83 f8 01             	cmp    $0x1,%eax
56ff40:	7e 6a                	jle    0x56ffac
56ff42:	8b f0                	mov    %eax,%esi
56ff44:	55                   	push   %ebp
56ff45:	8d 44 24 34          	lea    0x34(%esp),%eax
56ff49:	50                   	push   %eax
56ff4a:	57                   	push   %edi
56ff4b:	57                   	push   %edi
56ff4c:	ff 74 24 20          	push   0x20(%esp)
56ff50:	e8 2b 75 01 00       	call   0x587480
56ff55:	83 c4 14             	add    $0x14,%esp
56ff58:	85 c0                	test   %eax,%eax
56ff5a:	0f 84 77 01 00 00    	je     0x5700d7
56ff60:	8d 4e ff             	lea    -0x1(%esi),%ecx
56ff63:	bf 01 00 00 00       	mov    $0x1,%edi
56ff68:	d3 e7                	shl    %cl,%edi
56ff6a:	be 01 00 00 00       	mov    $0x1,%esi
56ff6f:	3b fe                	cmp    %esi,%edi
56ff71:	7e 39                	jle    0x56ffac
56ff73:	55                   	push   %ebp
56ff74:	e8 47 7e f6 ff       	call   0x4d7dc0
56ff79:	83 c4 04             	add    $0x4,%esp
56ff7c:	89 44 b4 64          	mov    %eax,0x64(%esp,%esi,4)
56ff80:	85 c0                	test   %eax,%eax
56ff82:	0f 84 4f 01 00 00    	je     0x5700d7
56ff88:	55                   	push   %ebp
56ff89:	8d 4c 24 34          	lea    0x34(%esp),%ecx
56ff8d:	51                   	push   %ecx
56ff8e:	ff 74 24 18          	push   0x18(%esp)
56ff92:	ff 74 b4 6c          	push   0x6c(%esp,%esi,4)
56ff96:	50                   	push   %eax
56ff97:	e8 e4 74 01 00       	call   0x587480
56ff9c:	83 c4 14             	add    $0x14,%esp
56ff9f:	85 c0                	test   %eax,%eax
56ffa1:	0f 84 30 01 00 00    	je     0x5700d7
56ffa7:	46                   	inc    %esi
56ffa8:	3b f7                	cmp    %edi,%esi
56ffaa:	7c c7                	jl     0x56ff73
56ffac:	8b 74 24 14          	mov    0x14(%esp),%esi
56ffb0:	bf 01 00 00 00       	mov    $0x1,%edi
56ffb5:	57                   	push   %edi
56ffb6:	4e                   	dec    %esi
56ffb7:	89 7c 24 24          	mov    %edi,0x24(%esp)
56ffbb:	53                   	push   %ebx
56ffbc:	89 74 24 1c          	mov    %esi,0x1c(%esp)
56ffc0:	e8 2b 35 f4 ff       	call   0x4b34f0
56ffc5:	83 c4 08             	add    $0x8,%esp
56ffc8:	85 c0                	test   %eax,%eax
56ffca:	0f 84 07 01 00 00    	je     0x5700d7
56ffd0:	eb 04                	jmp    0x56ffd6
56ffd2:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56ffd6:	56                   	push   %esi
56ffd7:	ff 74 24 2c          	push   0x2c(%esp)
56ffdb:	e8 60 32 f4 ff       	call   0x4b3240
56ffe0:	83 c4 08             	add    $0x8,%esp
56ffe3:	85 c0                	test   %eax,%eax
56ffe5:	75 2c                	jne    0x570013