56cd05:	e8 06 f0 f7 ff       	call   0x4ebd10
56cd0a:	8b e8                	mov    %eax,%ebp
56cd0c:	83 c4 04             	add    $0x4,%esp
56cd0f:	85 ed                	test   %ebp,%ebp
56cd11:	0f 84 0e 01 00 00    	je     0x56ce25
56cd17:	8b 5c 24 28          	mov    0x28(%esp),%ebx
56cd1b:	33 ff                	xor    %edi,%edi
56cd1d:	53                   	push   %ebx
56cd1e:	e8 9d 83 f7 ff       	call   0x4e50c0
56cd23:	83 c4 04             	add    $0x4,%esp
56cd26:	85 c0                	test   %eax,%eax
56cd28:	0f 8e ce 00 00 00    	jle    0x56cdfc
56cd2e:	66 90                	xchg   %ax,%ax
56cd30:	57                   	push   %edi
56cd31:	53                   	push   %ebx
56cd32:	e8 49 85 f7 ff       	call   0x4e5280
56cd37:	8b f0                	mov    %eax,%esi
56cd39:	6a 09                	push   $0x9
56cd3b:	68 ac 94 65 00       	push   $0x6594ac
56cd40:	ff 76 04             	push   0x4(%esi)
56cd43:	e8 48 8a 07 00       	call   0x5e5790
56cd48:	83 c4 14             	add    $0x14,%esp
56cd4b:	85 c0                	test   %eax,%eax
56cd4d:	75 10                	jne    0x56cd5f
56cd4f:	8b 46 04             	mov    0x4(%esi),%eax
56cd52:	80 78 09 00          	cmpb   $0x0,0x9(%eax)
56cd56:	74 07                	je     0x56cd5f
56cd58:	8b dd                	mov    %ebp,%ebx
56cd5a:	83 c0 0a             	add    $0xa,%eax
56cd5d:	eb 2d                	jmp    0x56cd8c
56cd5f:	6a 08                	push   $0x8
56cd61:	68 b8 94 65 00       	push   $0x6594b8
56cd66:	ff 76 04             	push   0x4(%esi)
56cd69:	e8 22 8a 07 00       	call   0x5e5790
56cd6e:	83 c4 0c             	add    $0xc,%esp
56cd71:	85 c0                	test   %eax,%eax
56cd73:	0f 85 8d 00 00 00    	jne    0x56ce06
56cd79:	8b 46 04             	mov    0x4(%esi),%eax
56cd7c:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
56cd80:	0f 84 80 00 00 00    	je     0x56ce06
56cd86:	8d 5d 04             	lea    0x4(%ebp),%ebx
56cd89:	83 c0 09             	add    $0x9,%eax
56cd8c:	89 44 24 14          	mov    %eax,0x14(%esp)
56cd90:	8b 46 08             	mov    0x8(%esi),%eax
56cd93:	68 f0 93 65 00       	push   $0x6593f0
56cd98:	89 44 24 1c          	mov    %eax,0x1c(%esp)
56cd9c:	e8 6f ef f7 ff       	call   0x4ebd10
56cda1:	8b f0                	mov    %eax,%esi
56cda3:	83 c4 04             	add    $0x4,%esp
56cda6:	85 f6                	test   %esi,%esi
56cda8:	74 7b                	je     0x56ce25
56cdaa:	6a 01                	push   $0x1
56cdac:	8d 44 24 14          	lea    0x14(%esp),%eax
56cdb0:	50                   	push   %eax
56cdb1:	ff 74 24 2c          	push   0x2c(%esp)
56cdb5:	ff 74 24 2c          	push   0x2c(%esp)
56cdb9:	ff 36                	push   (%esi)
56cdbb:	e8 00 e1 00 00       	call   0x57aec0
56cdc0:	83 c4 14             	add    $0x14,%esp
56cdc3:	85 c0                	test   %eax,%eax
56cdc5:	74 79                	je     0x56ce40
56cdc7:	8b 03                	mov    (%ebx),%eax
56cdc9:	85 c0                	test   %eax,%eax
56cdcb:	75 0b                	jne    0x56cdd8
56cdcd:	e8 4e 82 f7 ff       	call   0x4e5020
56cdd2:	89 03                	mov    %eax,(%ebx)
56cdd4:	85 c0                	test   %eax,%eax
56cdd6:	74 4d                	je     0x56ce25
56cdd8:	56                   	push   %esi
56cdd9:	50                   	push   %eax
56cdda:	e8 71 83 f7 ff       	call   0x4e5150
56cddf:	83 c4 08             	add    $0x8,%esp
56cde2:	85 c0                	test   %eax,%eax
56cde4:	74 3f                	je     0x56ce25
56cde6:	8b 5c 24 28          	mov    0x28(%esp),%ebx
56cdea:	47                   	inc    %edi
56cdeb:	53                   	push   %ebx
56cdec:	e8 cf 82 f7 ff       	call   0x4e50c0
56cdf1:	83 c4 04             	add    $0x4,%esp
56cdf4:	3b f8                	cmp    %eax,%edi
56cdf6:	0f 8c 34 ff ff ff    	jl     0x56cd30
56cdfc:	5f                   	pop    %edi
56cdfd:	5e                   	pop    %esi
56cdfe:	8b c5                	mov    %ebp,%eax
56ce00:	5d                   	pop    %ebp
56ce01:	5b                   	pop    %ebx
56ce02:	83 c4 0c             	add    $0xc,%esp
56ce05:	c3                   	ret
56ce06:	6a 7f                	push   $0x7f
56ce08:	68 c4 94 65 00       	push   $0x6594c4
56ce0d:	68 8f 00 00 00       	push   $0x8f
56ce12:	68 93 00 00 00       	push   $0x93
56ce17:	6a 22                	push   $0x22
56ce19:	e8 62 c1 f6 ff       	call   0x4d8f80
56ce1e:	83 c4 14             	add    $0x14,%esp
56ce21:	33 f6                	xor    %esi,%esi
56ce23:	eb 1b                	jmp    0x56ce40
56ce25:	68 92 00 00 00       	push   $0x92
56ce2a:	68 c4 94 65 00       	push   $0x6594c4
56ce2f:	6a 41                	push   $0x41
56ce31:	68 93 00 00 00       	push   $0x93
56ce36:	6a 22                	push   $0x22
56ce38:	e8 43 c1 f6 ff       	call   0x4d8f80
56ce3d:	83 c4 14             	add    $0x14,%esp
56ce40:	68 34 94 65 00       	push   $0x659434
56ce45:	55                   	push   %ebp
56ce46:	e8 75 f4 f7 ff       	call   0x4ec2c0
56ce4b:	68 f0 93 65 00       	push   $0x6593f0
56ce50:	56                   	push   %esi
56ce51:	e8 6a f4 f7 ff       	call   0x4ec2c0
56ce56:	83 c4 10             	add    $0x10,%esp
56ce59:	33 c0                	xor    %eax,%eax
56ce5b:	5f                   	pop    %edi
56ce5c:	5e                   	pop    %esi
56ce5d:	5d                   	pop    %ebp
56ce5e:	5b                   	pop    %ebx
56ce5f:	83 c4 0c             	add    $0xc,%esp
56ce62:	c3                   	ret
56ce63:	cc                   	int3
56ce64:	cc                   	int3
56ce65:	cc                   	int3
56ce66:	cc                   	int3
56ce67:	cc                   	int3
56ce68:	cc                   	int3
56ce69:	cc                   	int3
56ce6a:	cc                   	int3
56ce6b:	cc                   	int3
56ce6c:	cc                   	int3
56ce6d:	cc                   	int3
56ce6e:	cc                   	int3
56ce6f:	cc                   	int3
56ce70:	57                   	push   %edi
56ce71:	8b 7c 24 0c          	mov    0xc(%esp),%edi
56ce75:	68 e0 94 65 00       	push   $0x6594e0
56ce7a:	ff 74 24 18          	push   0x18(%esp)
56ce7e:	ff 74 24 18          	push   0x18(%esp)
56ce82:	ff 37                	push   (%edi)
56ce84:	ff 74 24 18          	push   0x18(%esp)
56ce88:	e8 b3 03 00 00       	call   0x56d240
56ce8d:	68 ec 94 65 00       	push   $0x6594ec
56ce92:	ff 74 24 2c          	push   0x2c(%esp)
56ce96:	ff 74 24 2c          	push   0x2c(%esp)
56ce9a:	ff 77 04             	push   0x4(%edi)
56ce9d:	ff 74 24 2c          	push   0x2c(%esp)
56cea1:	e8 9a 03 00 00       	call   0x56d240
56cea6:	83 c4 28             	add    $0x28,%esp
56cea9:	b8 01 00 00 00       	mov    $0x1,%eax
56ceae:	5f                   	pop    %edi
56ceaf:	c3                   	ret
56ceb0:	b8 08 00 00 00       	mov    $0x8,%eax
56ceb5:	e8 f6 48 06 00       	call   0x5d17b0
56ceba:	53                   	push   %ebx
56cebb:	8b 5c 24 10          	mov    0x10(%esp),%ebx
56cebf:	55                   	push   %ebp
56cec0:	56                   	push   %esi
56cec1:	57                   	push   %edi
56cec2:	53                   	push   %ebx
56cec3:	e8 d8 a6 fa ff       	call   0x5175a0
56cec8:	ff b3 a0 00 00 00    	push   0xa0(%ebx)
56cece:	8b f8                	mov    %eax,%edi
56ced0:	e8 eb 81 f7 ff       	call   0x4e50c0
56ced5:	57                   	push   %edi
56ced6:	8b f0                	mov    %eax,%esi
56ced8:	e8 33 c6 00 00       	call   0x579510
56cedd:	8b c8                	mov    %eax,%ecx
56cedf:	83 c4 0c             	add    $0xc,%esp
56cee2:	33 c0                	xor    %eax,%eax
56cee4:	85 c9                	test   %ecx,%ecx
56cee6:	0f 48 c8             	cmovs  %eax,%ecx
56cee9:	85 f6                	test   %esi,%esi
56ceeb:	0f 48 f0             	cmovs  %eax,%esi
56ceee:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
56cef3:	2b c6                	sub    %esi,%eax
56cef5:	3b c8                	cmp    %eax,%ecx
56cef7:	0f 8f 3a 01 00 00    	jg     0x56d037
56cefd:	8b 6c 24 20          	mov    0x20(%esp),%ebp
56cf01:	03 f1                	add    %ecx,%esi
56cf03:	ff 75 04             	push   0x4(%ebp)
56cf06:	e8 b5 81 f7 ff       	call   0x4e50c0
56cf0b:	ff 75 00             	push   0x0(%ebp)
56cf0e:	89 44 24 24          	mov    %eax,0x24(%esp)
56cf12:	e8 a9 81 f7 ff       	call   0x4e50c0
56cf17:	33 c9                	xor    %ecx,%ecx
56cf19:	83 c4 08             	add    $0x8,%esp
56cf1c:	85 c0                	test   %eax,%eax
56cf1e:	0f 48 c1             	cmovs  %ecx,%eax
56cf21:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56cf25:	33 d2                	xor    %edx,%edx
56cf27:	85 c9                	test   %ecx,%ecx
56cf29:	0f 48 ca             	cmovs  %edx,%ecx
56cf2c:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
56cf31:	2b d1                	sub    %ecx,%edx
56cf33:	3b c2                	cmp    %edx,%eax
56cf35:	0f 8f fc 00 00 00    	jg     0x56d037
56cf3b:	03 c8                	add    %eax,%ecx
56cf3d:	85 f6                	test   %esi,%esi
56cf3f:	7e 10                	jle    0x56cf51
56cf41:	b8 00 00 10 00       	mov    $0x100000,%eax
56cf46:	99                   	cltd
56cf47:	f7 fe                	idiv   %esi
56cf49:	3b c8                	cmp    %eax,%ecx
56cf4b:	0f 8f e6 00 00 00    	jg     0x56d037
56cf51:	57                   	push   %edi
56cf52:	e8 b9 c5 00 00       	call   0x579510
56cf57:	83 c4 04             	add    $0x4,%esp
56cf5a:	85 c0                	test   %eax,%eax
56cf5c:	0f 8e 7d 00 00 00    	jle    0x56cfdf
56cf62:	8d 44 24 10          	lea    0x10(%esp),%eax
56cf66:	c7 44 24 10 04 00 00 	movl   $0x4,0x10(%esp)
56cf6d:	00
56cf6e:	55                   	push   %ebp
56cf6f:	50                   	push   %eax
56cf70:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
56cf74:	e8 97 04 00 00       	call   0x56d410
56cf79:	83 c4 08             	add    $0x8,%esp
56cf7c:	85 c0                	test   %eax,%eax
56cf7e:	0f 85 b8 00 00 00    	jne    0x56d03c
56cf84:	6a ff                	push   $0xffffffff
56cf86:	6a 30                	push   $0x30
56cf88:	57                   	push   %edi
56cf89:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
56cf90:	00
56cf91:	e8 ca c5 00 00       	call   0x579560
56cf96:	8b f0                	mov    %eax,%esi
56cf98:	83 c4 0c             	add    $0xc,%esp
56cf9b:	83 fe ff             	cmp    $0xffffffff,%esi
56cf9e:	74 3f                	je     0x56cfdf
56cfa0:	56                   	push   %esi
56cfa1:	57                   	push   %edi
56cfa2:	e8 89 c5 00 00       	call   0x579530
56cfa7:	50                   	push   %eax
56cfa8:	e8 43 c2 00 00       	call   0x5791f0
56cfad:	83 c4 0c             	add    $0xc,%esp
56cfb0:	89 44 24 14          	mov    %eax,0x14(%esp)
56cfb4:	83 78 04 16          	cmpl   $0x16,0x4(%eax)
56cfb8:	75 70                	jne    0x56d02a
56cfba:	8d 44 24 10          	lea    0x10(%esp),%eax
56cfbe:	55                   	push   %ebp
56cfbf:	50                   	push   %eax
56cfc0:	e8 4b 04 00 00       	call   0x56d410
56cfc5:	83 c4 08             	add    $0x8,%esp
56cfc8:	85 c0                	test   %eax,%eax
56cfca:	75 70                	jne    0x56d03c
56cfcc:	56                   	push   %esi
56cfcd:	6a 30                	push   $0x30
56cfcf:	57                   	push   %edi
56cfd0:	e8 8b c5 00 00       	call   0x579560
56cfd5:	8b f0                	mov    %eax,%esi
56cfd7:	83 c4 0c             	add    $0xc,%esp
56cfda:	83 fe ff             	cmp    $0xffffffff,%esi
56cfdd:	75 c1                	jne    0x56cfa0
56cfdf:	ff b3 a0 00 00 00    	push   0xa0(%ebx)
56cfe5:	33 f6                	xor    %esi,%esi
56cfe7:	e8 d4 80 f7 ff       	call   0x4e50c0
56cfec:	83 c4 04             	add    $0x4,%esp
56cfef:	85 c0                	test   %eax,%eax
56cff1:	7e 2d                	jle    0x56d020
56cff3:	56                   	push   %esi
56cff4:	ff b3 a0 00 00 00    	push   0xa0(%ebx)
56cffa:	e8 81 82 f7 ff       	call   0x4e5280
56cfff:	55                   	push   %ebp
56d000:	50                   	push   %eax
56d001:	e8 0a 04 00 00       	call   0x56d410
56d006:	83 c4 10             	add    $0x10,%esp
56d009:	85 c0                	test   %eax,%eax
56d00b:	75 2f                	jne    0x56d03c
56d00d:	ff b3 a0 00 00 00    	push   0xa0(%ebx)
56d013:	46                   	inc    %esi
56d014:	e8 a7 80 f7 ff       	call   0x4e50c0
56d019:	83 c4 04             	add    $0x4,%esp
56d01c:	3b f0                	cmp    %eax,%esi
56d01e:	7c d3                	jl     0x56cff3
56d020:	5f                   	pop    %edi
56d021:	5e                   	pop    %esi
56d022:	5d                   	pop    %ebp
56d023:	33 c0                	xor    %eax,%eax
56d025:	5b                   	pop    %ebx
56d026:	83 c4 08             	add    $0x8,%esp
56d029:	c3                   	ret
56d02a:	5f                   	pop    %edi
56d02b:	5e                   	pop    %esi
56d02c:	5d                   	pop    %ebp
56d02d:	b8 35 00 00 00       	mov    $0x35,%eax
56d032:	5b                   	pop    %ebx
56d033:	83 c4 08             	add    $0x8,%esp
56d036:	c3                   	ret
56d037:	b8 01 00 00 00       	mov    $0x1,%eax
56d03c:	5f                   	pop    %edi
56d03d:	5e                   	pop    %esi
56d03e:	5d                   	pop    %ebp
56d03f:	5b                   	pop    %ebx
56d040:	83 c4 08             	add    $0x8,%esp
56d043:	c3                   	ret
56d044:	cc                   	int3
56d045:	cc                   	int3
56d046:	cc                   	int3
56d047:	cc                   	int3
56d048:	cc                   	int3
56d049:	cc                   	int3
56d04a:	cc                   	int3
56d04b:	cc                   	int3
56d04c:	cc                   	int3
56d04d:	cc                   	int3
56d04e:	cc                   	int3
56d04f:	cc                   	int3
56d050:	b8 28 00 00 00       	mov    $0x28,%eax
56d055:	e8 56 47 06 00       	call   0x5d17b0
56d05a:	53                   	push   %ebx
56d05b:	55                   	push   %ebp
56d05c:	56                   	push   %esi
56d05d:	57                   	push   %edi
56d05e:	ff 74 24 3c          	push   0x3c(%esp)
56d062:	e8 39 a5 fa ff       	call   0x5175a0
56d067:	8b d8                	mov    %eax,%ebx
56d069:	c7 44 24 38 00 00 00 	movl   $0x0,0x38(%esp)
56d070:	00
56d071:	6a ff                	push   $0xffffffff
56d073:	8d 44 24 30          	lea    0x30(%esp),%eax
56d077:	89 5c 24 18          	mov    %ebx,0x18(%esp)
56d07b:	6a 0d                	push   $0xd
56d07d:	53                   	push   %ebx
56d07e:	c7 44 24 3c 16 00 00 	movl   $0x16,0x3c(%esp)
56d085:	00
56d086:	c7 44 24 30 02 00 00 	movl   $0x2,0x30(%esp)
56d08d:	00
56d08e:	89 44 24 34          	mov    %eax,0x34(%esp)
56d092:	e8 c9 c4 00 00       	call   0x579560
56d097:	83 c4 10             	add    $0x10,%esp
56d09a:	89 44 24 18          	mov    %eax,0x18(%esp)
56d09e:	83 f8 ff             	cmp    $0xffffffff,%eax
56d0a1:	0f 84 32 01 00 00    	je     0x56d1d9
56d0a7:	50                   	push   %eax
56d0a8:	53                   	push   %ebx
56d0a9:	e8 82 c4 00 00       	call   0x579530
56d0ae:	50                   	push   %eax
56d0af:	e8 3c c1 00 00       	call   0x5791f0
56d0b4:	50                   	push   %eax
56d0b5:	8d 44 24 2c          	lea    0x2c(%esp),%eax
56d0b9:	33 ff                	xor    %edi,%edi
56d0bb:	50                   	push   %eax
56d0bc:	89 7c 24 28          	mov    %edi,0x28(%esp)
56d0c0:	e8 0b 51 00 00       	call   0x5721d0
56d0c5:	8b d0                	mov    %eax,%edx
56d0c7:	83 c4 14             	add    $0x14,%esp
56d0ca:	85 d2                	test   %edx,%edx
56d0cc:	0f 88 3b 01 00 00    	js     0x56d20d
56d0d2:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56d0d6:	7e 0c                	jle    0x56d0e4
56d0d8:	80 7c 2a ff 00       	cmpb   $0x0,-0x1(%edx,%ebp,1)
56d0dd:	75 05                	jne    0x56d0e4