56584b:	83 c0 fb             	add    $0xfffffffb,%eax
56584e:	85 c0                	test   %eax,%eax
565850:	7e 0c                	jle    0x56585e
565852:	8b c6                	mov    %esi,%eax
565854:	e8 0b 3d 01 00       	call   0x579564
565859:	83 c0 fb             	add    $0xfffffffb,%eax
56585c:	eb 02                	jmp    0x565860
56585e:	33 c0                	xor    %eax,%eax
565860:	89 43 24             	mov    %eax,0x24(%ebx)
565863:	83 c3 3c             	add    $0x3c,%ebx
565866:	8b 54 24 1c          	mov    0x1c(%esp),%edx
56586a:	3b da                	cmp    %edx,%ebx
56586c:	75 87                	jne    0x5657f5
56586e:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
565872:	8b 59 1c             	mov    0x1c(%ecx),%ebx
565875:	8b 44 24 1c          	mov    0x1c(%esp),%eax
565879:	3b d8                	cmp    %eax,%ebx
56587b:	74 35                	je     0x5658b2
56587d:	8b 54 24 14          	mov    0x14(%esp),%edx
565881:	8b 42 0c             	mov    0xc(%edx),%eax
565884:	8b 53 24             	mov    0x24(%ebx),%edx
565887:	2b c2                	sub    %edx,%eax
565889:	89 43 0c             	mov    %eax,0xc(%ebx)
56588c:	85 c0                	test   %eax,%eax
56588e:	7d 17                	jge    0x5658a7
565890:	68 d6 00 00 00       	push   $0xd6
565895:	68 50 f5 69 00       	push   $0x69f550
56589a:	68 3c f5 69 00       	push   $0x69f53c
56589f:	e8 9c 52 ff ff       	call   0x55ab40
5658a4:	83 c4 0c             	add    $0xc,%esp
5658a7:	83 c3 3c             	add    $0x3c,%ebx
5658aa:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5658ae:	3b d9                	cmp    %ecx,%ebx
5658b0:	75 cb                	jne    0x56587d
5658b2:	8b 44 24 2c          	mov    0x2c(%esp),%eax
5658b6:	8b 58 1c             	mov    0x1c(%eax),%ebx
5658b9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5658bd:	3b d8                	cmp    %eax,%ebx
5658bf:	74 2a                	je     0x5658eb
5658c1:	8b 54 24 14          	mov    0x14(%esp),%edx
5658c5:	52                   	push   %edx
5658c6:	53                   	push   %ebx
5658c7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5658cb:	8b 53 14             	mov    0x14(%ebx),%edx
5658ce:	8b 44 24 08          	mov    0x8(%esp),%eax
5658d2:	e8 e1 00 00 00       	call   0x5659b8
5658d7:	85 c0                	test   %eax,%eax
5658d9:	74 05                	je     0x5658e0
5658db:	83 c8 ff             	or     $0xffffffff,%eax
5658de:	eb 6b                	jmp    0x56594b
5658e0:	83 c3 3c             	add    $0x3c,%ebx
5658e3:	8b 54 24 1c          	mov    0x1c(%esp),%edx
5658e7:	3b da                	cmp    %edx,%ebx
5658e9:	75 d6                	jne    0x5658c1
5658eb:	ff 44 24 28          	incl   0x28(%esp)
5658ef:	83 44 24 2c 34       	addl   $0x34,0x2c(%esp)
5658f4:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5658f8:	8b 41 20             	mov    0x20(%ecx),%eax
5658fb:	8b 54 24 28          	mov    0x28(%esp),%edx
5658ff:	3b c2                	cmp    %edx,%eax
565901:	0f 87 b7 fe ff ff    	ja     0x5657be
565907:	83 44 24 14 24       	addl   $0x24,0x14(%esp)
56590c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
565910:	8b 44 24 18          	mov    0x18(%esp),%eax
565914:	3b c8                	cmp    %eax,%ecx
565916:	0f 85 7e fe ff ff    	jne    0x56579a
56591c:	83 44 24 0c 3c       	addl   $0x3c,0xc(%esp)
565921:	8b 54 24 0c          	mov    0xc(%esp),%edx
565925:	8b 4c 24 10          	mov    0x10(%esp),%ecx
565929:	3b d1                	cmp    %ecx,%edx
56592b:	0f 85 31 fe ff ff    	jne    0x565762
565931:	81 44 24 04 04 02 00 	addl   $0x204,0x4(%esp)
565938:	00
565939:	8b 44 24 04          	mov    0x4(%esp),%eax
56593d:	8b 54 24 08          	mov    0x8(%esp),%edx
565941:	3b c2                	cmp    %edx,%eax
565943:	0f 85 e6 fd ff ff    	jne    0x56572f
565949:	33 c0                	xor    %eax,%eax
56594b:	83 c4 30             	add    $0x30,%esp
56594e:	5f                   	pop    %edi
56594f:	5e                   	pop    %esi
565950:	5b                   	pop    %ebx
565951:	c3                   	ret
565952:	90                   	nop
565953:	90                   	nop
565954:	53                   	push   %ebx
565955:	56                   	push   %esi
565956:	57                   	push   %edi
565957:	8b fa                	mov    %edx,%edi
565959:	8b d8                	mov    %eax,%ebx
56595b:	8b c3                	mov    %ebx,%eax
56595d:	e8 96 32 01 00       	call   0x578bf8
565962:	8b f0                	mov    %eax,%esi
565964:	85 f6                	test   %esi,%esi
565966:	7d 17                	jge    0x56597f
565968:	68 ea 00 00 00       	push   $0xea
56596d:	68 68 f5 69 00       	push   $0x69f568
565972:	68 5c f5 69 00       	push   $0x69f55c
565977:	e8 c4 51 ff ff       	call   0x55ab40
56597c:	83 c4 0c             	add    $0xc,%esp
56597f:	33 c9                	xor    %ecx,%ecx
565981:	8b d7                	mov    %edi,%edx
565983:	8b c3                	mov    %ebx,%eax
565985:	e8 de 31 01 00       	call   0x578b68
56598a:	8b 43 1c             	mov    0x1c(%ebx),%eax
56598d:	85 c0                	test   %eax,%eax
56598f:	7f 0d                	jg     0x56599e
565991:	33 d2                	xor    %edx,%edx
565993:	8b c3                	mov    %ebx,%eax
565995:	e8 8e 33 01 00       	call   0x578d28
56599a:	8b f8                	mov    %eax,%edi
56599c:	eb 06                	jmp    0x5659a4
56599e:	8b 43 18             	mov    0x18(%ebx),%eax
5659a1:	0f b6 38             	movzbl (%eax),%edi
5659a4:	33 c9                	xor    %ecx,%ecx
5659a6:	8b d6                	mov    %esi,%edx
5659a8:	8b c3                	mov    %ebx,%eax
5659aa:	e8 b9 31 01 00       	call   0x578b68
5659af:	8b c7                	mov    %edi,%eax
5659b1:	5f                   	pop    %edi
5659b2:	5e                   	pop    %esi
5659b3:	5b                   	pop    %ebx
5659b4:	c3                   	ret
5659b5:	90                   	nop
5659b6:	90                   	nop
5659b7:	90                   	nop
5659b8:	55                   	push   %ebp
5659b9:	8b ec                	mov    %esp,%ebp
5659bb:	83 c4 cc             	add    $0xffffffcc,%esp
5659be:	53                   	push   %ebx
5659bf:	56                   	push   %esi
5659c0:	57                   	push   %edi
5659c1:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5659c4:	89 55 f8             	mov    %edx,-0x8(%ebp)
5659c7:	89 45 fc             	mov    %eax,-0x4(%ebp)
5659ca:	8b 75 08             	mov    0x8(%ebp),%esi
5659cd:	8b 7d 0c             	mov    0xc(%ebp),%edi
5659d0:	33 c0                	xor    %eax,%eax
5659d2:	89 45 e0             	mov    %eax,-0x20(%ebp)
5659d5:	33 d2                	xor    %edx,%edx
5659d7:	33 c0                	xor    %eax,%eax
5659d9:	e8 3e 2a 01 00       	call   0x57841c
5659de:	8b d8                	mov    %eax,%ebx
5659e0:	89 5e 14             	mov    %ebx,0x14(%esi)
5659e3:	85 db                	test   %ebx,%ebx
5659e5:	75 17                	jne    0x5659fe
5659e7:	68 08 01 00 00       	push   $0x108
5659ec:	68 81 f5 69 00       	push   $0x69f581
5659f1:	68 74 f5 69 00       	push   $0x69f574
5659f6:	e8 45 51 ff ff       	call   0x55ab40
5659fb:	83 c4 0c             	add    $0xc,%esp
5659fe:	8b 56 14             	mov    0x14(%esi),%edx
565a01:	b8 13 00 00 00       	mov    $0x13,%eax
565a06:	e8 31 c6 00 00       	call   0x57203c
565a0b:	8b d8                	mov    %eax,%ebx
565a0d:	89 5e 18             	mov    %ebx,0x18(%esi)
565a10:	85 db                	test   %ebx,%ebx
565a12:	75 17                	jne    0x565a2b
565a14:	68 0a 01 00 00       	push   $0x10a
565a19:	68 99 f5 69 00       	push   $0x69f599
565a1e:	68 8d f5 69 00       	push   $0x69f58d
565a23:	e8 18 51 ff ff       	call   0x55ab40
565a28:	83 c4 0c             	add    $0xc,%esp
565a2b:	b9 30 14 6b 00       	mov    $0x6b1430,%ecx
565a30:	ba 13 00 00 00       	mov    $0x13,%edx
565a35:	8b 46 18             	mov    0x18(%esi),%eax
565a38:	e8 97 c6 00 00       	call   0x5720d4
565a3d:	8b 46 24             	mov    0x24(%esi),%eax
565a40:	85 c0                	test   %eax,%eax
565a42:	7e 0b                	jle    0x565a4f
565a44:	8b 5e 24             	mov    0x24(%esi),%ebx
565a47:	8d 1c 5b             	lea    (%ebx,%ebx,2),%ebx
565a4a:	83 c3 fe             	add    $0xfffffffe,%ebx
565a4d:	eb 02                	jmp    0x565a51
565a4f:	33 db                	xor    %ebx,%ebx
565a51:	89 1e                	mov    %ebx,(%esi)
565a53:	85 db                	test   %ebx,%ebx
565a55:	7e 30                	jle    0x565a87
565a57:	8b c3                	mov    %ebx,%eax
565a59:	c1 e0 03             	shl    $0x3,%eax
565a5c:	8d 04 c0             	lea    (%eax,%eax,8),%eax
565a5f:	e8 18 29 01 00       	call   0x57837c
565a64:	89 46 04             	mov    %eax,0x4(%esi)
565a67:	8b 56 04             	mov    0x4(%esi),%edx
565a6a:	85 d2                	test   %edx,%edx
565a6c:	75 1e                	jne    0x565a8c
565a6e:	68 10 01 00 00       	push   $0x110
565a73:	68 b2 f5 69 00       	push   $0x69f5b2
565a78:	68 a5 f5 69 00       	push   $0x69f5a5
565a7d:	e8 be 50 ff ff       	call   0x55ab40
565a82:	83 c4 0c             	add    $0xc,%esp
565a85:	eb 05                	jmp    0x565a8c
565a87:	33 c9                	xor    %ecx,%ecx
565a89:	89 4e 04             	mov    %ecx,0x4(%esi)
565a8c:	8b 16                	mov    (%esi),%edx
565a8e:	c1 e2 03             	shl    $0x3,%edx
565a91:	8d 14 d2             	lea    (%edx,%edx,8),%edx
565a94:	8b 46 04             	mov    0x4(%esi),%eax
565a97:	03 d0                	add    %eax,%edx
565a99:	89 55 f0             	mov    %edx,-0x10(%ebp)
565a9c:	8b d8                	mov    %eax,%ebx
565a9e:	8b 45 f0             	mov    -0x10(%ebp),%eax
565aa1:	3b d8                	cmp    %eax,%ebx
565aa3:	0f 84 b2 00 00 00    	je     0x565b5b
565aa9:	33 d2                	xor    %edx,%edx
565aab:	33 c9                	xor    %ecx,%ecx
565aad:	89 13                	mov    %edx,(%ebx)
565aaf:	89 4b 04             	mov    %ecx,0x4(%ebx)
565ab2:	8b 45 f4             	mov    -0xc(%ebp),%eax
565ab5:	f6 80 30 01 00 00 04 	testb  $0x4,0x130(%eax)
565abc:	0f 95 c2             	setne  %dl
565abf:	83 e2 01             	and    $0x1,%edx
565ac2:	52                   	push   %edx
565ac3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
565ac6:	f6 81 30 01 00 00 01 	testb  $0x1,0x130(%ecx)
565acd:	0f 95 c0             	setne  %al
565ad0:	83 e0 01             	and    $0x1,%eax
565ad3:	b9 48 00 00 00       	mov    $0x48,%ecx
565ad8:	50                   	push   %eax
565ad9:	8b c3                	mov    %ebx,%eax
565adb:	8b 56 04             	mov    0x4(%esi),%edx
565ade:	2b c2                	sub    %edx,%eax
565ae0:	99                   	cltd
565ae1:	f7 f9                	idiv   %ecx
565ae3:	8b 0e                	mov    (%esi),%ecx
565ae5:	33 d2                	xor    %edx,%edx
565ae7:	e8 d0 74 00 00       	call   0x56cfbc
565aec:	89 43 0c             	mov    %eax,0xc(%ebx)
565aef:	8b c3                	mov    %ebx,%eax
565af1:	8b 56 04             	mov    0x4(%esi),%edx
565af4:	2b c2                	sub    %edx,%eax
565af6:	b9 48 00 00 00       	mov    $0x48,%ecx
565afb:	99                   	cltd
565afc:	f7 f9                	idiv   %ecx
565afe:	8b 55 f4             	mov    -0xc(%ebp),%edx
565b01:	f6 82 30 01 00 00 01 	testb  $0x1,0x130(%edx)
565b08:	0f 95 c1             	setne  %cl
565b0b:	83 e1 01             	and    $0x1,%ecx
565b0e:	33 d2                	xor    %edx,%edx
565b10:	e8 d7 73 00 00       	call   0x56ceec
565b15:	89 43 08             	mov    %eax,0x8(%ebx)
565b18:	c7 43 20 ff ff ff ff 	movl   $0xffffffff,0x20(%ebx)
565b1f:	8b 45 f0             	mov    -0x10(%ebp),%eax
565b22:	83 c0 b8             	add    $0xffffffb8,%eax
565b25:	3b d8                	cmp    %eax,%ebx
565b27:	75 24                	jne    0x565b4d
565b29:	8b 4b 0c             	mov    0xc(%ebx),%ecx
565b2c:	49                   	dec    %ecx
565b2d:	74 17                	je     0x565b46
565b2f:	68 1c 01 00 00       	push   $0x11c
565b34:	68 ce f5 69 00       	push   $0x69f5ce
565b39:	68 be f5 69 00       	push   $0x69f5be
565b3e:	e8 fd 4f ff ff       	call   0x55ab40
565b43:	83 c4 0c             	add    $0xc,%esp
565b46:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
565b4d:	83 c3 48             	add    $0x48,%ebx
565b50:	8b 45 f0             	mov    -0x10(%ebp),%eax
565b53:	3b d8                	cmp    %eax,%ebx
565b55:	0f 85 4e ff ff ff    	jne    0x565aa9
565b5b:	8b 5e 1c             	mov    0x1c(%esi),%ebx
565b5e:	8b 53 18             	mov    0x18(%ebx),%edx
565b61:	83 c2 02             	add    $0x2,%edx
565b64:	8b 43 14             	mov    0x14(%ebx),%eax
565b67:	83 c0 02             	add    $0x2,%eax
565b6a:	e8 51 21 01 00       	call   0x577cc0
565b6f:	89 46 20             	mov    %eax,0x20(%esi)
565b72:	8b 4e 20             	mov    0x20(%esi),%ecx
565b75:	85 c9                	test   %ecx,%ecx
565b77:	75 17                	jne    0x565b90
565b79:	68 23 01 00 00       	push   $0x123
565b7e:	68 e6 f5 69 00       	push   $0x69f5e6
565b83:	68 da f5 69 00       	push   $0x69f5da
565b88:	e8 b3 4f ff ff       	call   0x55ab40
565b8d:	83 c4 0c             	add    $0xc,%esp
565b90:	8b 46 24             	mov    0x24(%esi),%eax
565b93:	48                   	dec    %eax
565b94:	89 45 ec             	mov    %eax,-0x14(%ebp)
565b97:	8b 5e 04             	mov    0x4(%esi),%ebx
565b9a:	8b 06                	mov    (%esi),%eax
565b9c:	89 45 e8             	mov    %eax,-0x18(%ebp)
565b9f:	e9 28 03 00 00       	jmp    0x565ecc
565ba4:	8b 43 08             	mov    0x8(%ebx),%eax
565ba7:	83 f8 01             	cmp    $0x1,%eax
565baa:	74 51                	je     0x565bfd
565bac:	83 f8 02             	cmp    $0x2,%eax
565baf:	74 17                	je     0x565bc8
565bb1:	68 2e 01 00 00       	push   $0x12e
565bb6:	68 0c f6 69 00       	push   $0x69f60c
565bbb:	68 f2 f5 69 00       	push   $0x69f5f2
565bc0:	e8 7b 4f ff ff       	call   0x55ab40
565bc5:	83 c4 0c             	add    $0xc,%esp
565bc8:	8b 55 e0             	mov    -0x20(%ebp),%edx
565bcb:	85 d2                	test   %edx,%edx
565bcd:	75 2e                	jne    0x565bfd
565bcf:	ba 18 f6 69 00       	mov    $0x69f618,%edx
565bd4:	8b 46 14             	mov    0x14(%esi),%eax
565bd7:	e8 f4 ab 00 00       	call   0x5707d0
565bdc:	89 45 e0             	mov    %eax,-0x20(%ebp)
565bdf:	8b 4d e0             	mov    -0x20(%ebp),%ecx
565be2:	85 c9                	test   %ecx,%ecx
565be4:	75 17                	jne    0x565bfd
565be6:	68 31 01 00 00       	push   $0x131
565beb:	68 1f f6 69 00       	push   $0x69f61f
565bf0:	68 1a f6 69 00       	push   $0x69f61a
565bf5:	e8 46 4f ff ff       	call   0x55ab40
565bfa:	83 c4 0c             	add    $0xc,%esp
565bfd:	8b c3                	mov    %ebx,%eax
565bff:	8b 56 04             	mov    0x4(%esi),%edx
565c02:	2b c2                	sub    %edx,%eax
565c04:	b9 48 00 00 00       	mov    $0x48,%ecx
565c09:	99                   	cltd
565c0a:	f7 f9                	idiv   %ecx
565c0c:	83 c0 02             	add    $0x2,%eax
565c0f:	b9 03 00 00 00       	mov    $0x3,%ecx
565c14:	99                   	cltd
565c15:	f7 f9                	idiv   %ecx
565c17:	89 55 e4             	mov    %edx,-0x1c(%ebp)
565c1a:	8b 46 14             	mov    0x14(%esi),%eax
565c1d:	e8 d6 2f 01 00       	call   0x578bf8
565c22:	89 03                	mov    %eax,(%ebx)
565c24:	8b 45 ec             	mov    -0x14(%ebp),%eax
565c27:	85 c0                	test   %eax,%eax
565c29:	7d 17                	jge    0x565c42
565c2b:	68 3e 01 00 00       	push   $0x13e
565c30:	68 37 f6 69 00       	push   $0x69f637
565c35:	68 2b f6 69 00       	push   $0x69f62b
565c3a:	e8 01 4f ff ff       	call   0x55ab40
565c3f:	83 c4 0c             	add    $0xc,%esp
565c42:	8b 55 f4             	mov    -0xc(%ebp),%edx
565c45:	8b 82 30 01 00 00    	mov    0x130(%edx),%eax
565c4b:	a8 08                	test   $0x8,%al
565c4d:	0f 95 c2             	setne  %dl
565c50:	83 e2 01             	and    $0x1,%edx
565c53:	a8 20                	test   $0x20,%al
565c55:	0f 95 c1             	setne  %cl
565c58:	83 e1 01             	and    $0x1,%ecx
565c5b:	89 55 dc             	mov    %edx,-0x24(%ebp)
565c5e:	89 4d d8             	mov    %ecx,-0x28(%ebp)
565c61:	8b 53 0c             	mov    0xc(%ebx),%edx
565c64:	85 d2                	test   %edx,%edx
565c66:	74 13                	je     0x565c7b
565c68:	a8 10                	test   $0x10,%al
565c6a:	74 07                	je     0x565c73
565c6c:	b8 01 00 00 00       	mov    $0x1,%eax
565c71:	eb 02                	jmp    0x565c75
565c73:	33 c0                	xor    %eax,%eax
565c75:	40                   	inc    %eax
565c76:	89 45 d4             	mov    %eax,-0x2c(%ebp)
565c79:	eb 05                	jmp    0x565c80
565c7b:	33 d2                	xor    %edx,%edx