569dac:	89 4d cc             	mov    %ecx,-0x34(%ebp)
569daf:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569db2:	8b 50 08             	mov    0x8(%eax),%edx
569db5:	85 d2                	test   %edx,%edx
569db7:	75 44                	jne    0x569dfd
569db9:	8b 4d ac             	mov    -0x54(%ebp),%ecx
569dbc:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569dbf:	8b 51 1c             	mov    0x1c(%ecx),%edx
569dc2:	2b c2                	sub    %edx,%eax
569dc4:	b9 3c 00 00 00       	mov    $0x3c,%ecx
569dc9:	99                   	cltd
569dca:	f7 f9                	idiv   %ecx
569dcc:	8b d0                	mov    %eax,%edx
569dce:	8b 45 ac             	mov    -0x54(%ebp),%eax
569dd1:	8b 40 20             	mov    0x20(%eax),%eax
569dd4:	e8 37 fd 00 00       	call   0x579b10
569dd9:	56                   	push   %esi
569dda:	8b f8                	mov    %eax,%edi
569ddc:	8b 45 ac             	mov    -0x54(%ebp),%eax
569ddf:	8b 4d 08             	mov    0x8(%ebp),%ecx
569de2:	41                   	inc    %ecx
569de3:	8b d7                	mov    %edi,%edx
569de5:	8b 40 20             	mov    0x20(%eax),%eax
569de8:	e8 2f fd 00 00       	call   0x579b1c
569ded:	85 c0                	test   %eax,%eax
569def:	0f 8d 11 01 00 00    	jge    0x569f06
569df5:	83 c8 ff             	or     $0xffffffff,%eax
569df8:	e9 ac 05 00 00       	jmp    0x56a3a9
569dfd:	f6 46 10 02          	testb  $0x2,0x10(%esi)
569e01:	75 17                	jne    0x569e1a
569e03:	68 30 01 00 00       	push   $0x130
569e08:	68 81 fa 69 00       	push   $0x69fa81
569e0d:	68 59 fa 69 00       	push   $0x69fa59
569e12:	e8 29 0d ff ff       	call   0x55ab40
569e17:	83 c4 0c             	add    $0xc,%esp
569e1a:	ff 4e 08             	decl   0x8(%esi)
569e1d:	0f 89 c0 00 00 00    	jns    0x569ee3
569e23:	66 8b 7e 04          	mov    0x4(%esi),%di
569e27:	c1 e7 08             	shl    $0x8,%edi
569e2a:	66 81 e7 ff ff       	and    $0xffff,%di
569e2f:	66 89 7e 04          	mov    %di,0x4(%esi)
569e33:	66 81 ff 00 ff       	cmp    $0xff00,%di
569e38:	75 07                	jne    0x569e41
569e3a:	b8 06 00 00 00       	mov    $0x6,%eax
569e3f:	eb 05                	jmp    0x569e46
569e41:	b8 07 00 00 00       	mov    $0x7,%eax
569e46:	89 46 08             	mov    %eax,0x8(%esi)
569e49:	66 8b 55 cc          	mov    -0x34(%ebp),%dx
569e4d:	8b 4e 08             	mov    0x8(%esi),%ecx
569e50:	66 83 e2 01          	and    $0x1,%dx
569e54:	66 d3 e2             	shl    %cl,%dx
569e57:	66 09 56 04          	or     %dx,0x4(%esi)
569e5b:	8b 46 0c             	mov    0xc(%esi),%eax
569e5e:	f6 40 08 07          	testb  $0x7,0x8(%eax)
569e62:	75 6c                	jne    0x569ed0
569e64:	8b 56 0c             	mov    0xc(%esi),%edx
569e67:	8b 4a 40             	mov    0x40(%edx),%ecx
569e6a:	85 c9                	test   %ecx,%ecx
569e6c:	7c 1c                	jl     0x569e8a
569e6e:	8b 46 0c             	mov    0xc(%esi),%eax
569e71:	8b 4e 0c             	mov    0xc(%esi),%ecx
569e74:	8b 50 40             	mov    0x40(%eax),%edx
569e77:	8b 41 3c             	mov    0x3c(%ecx),%eax
569e7a:	3b d0                	cmp    %eax,%edx
569e7c:	7f 0c                	jg     0x569e8a
569e7e:	8b 56 0c             	mov    0xc(%esi),%edx
569e81:	83 4a 08 04          	orl    $0x4,0x8(%edx)
569e85:	83 c9 ff             	or     $0xffffffff,%ecx
569e88:	eb 49                	jmp    0x569ed3
569e8a:	8b 46 0c             	mov    0xc(%esi),%eax
569e8d:	83 48 04 20          	orl    $0x20,0x4(%eax)
569e91:	8b 56 0c             	mov    0xc(%esi),%edx
569e94:	ff 4a 1c             	decl   0x1c(%edx)
569e97:	79 19                	jns    0x569eb2
569e99:	0f b7 56 04          	movzwl 0x4(%esi),%edx
569e9d:	c1 fa 08             	sar    $0x8,%edx
569ea0:	8b 46 0c             	mov    0xc(%esi),%eax
569ea3:	81 e2 ff 00 00 00    	and    $0xff,%edx
569ea9:	e8 6a ef 00 00       	call   0x578e18
569eae:	8b c8                	mov    %eax,%ecx
569eb0:	eb 21                	jmp    0x569ed3
569eb2:	8b 46 0c             	mov    0xc(%esi),%eax
569eb5:	ff 40 3c             	incl   0x3c(%eax)
569eb8:	8b 56 0c             	mov    0xc(%esi),%edx
569ebb:	8b 4a 18             	mov    0x18(%edx),%ecx
569ebe:	ff 42 18             	incl   0x18(%edx)
569ec1:	0f b7 46 04          	movzwl 0x4(%esi),%eax
569ec5:	c1 f8 08             	sar    $0x8,%eax
569ec8:	88 01                	mov    %al,(%ecx)
569eca:	33 c9                	xor    %ecx,%ecx
569ecc:	8a c8                	mov    %al,%cl
569ece:	eb 03                	jmp    0x569ed3
569ed0:	83 c9 ff             	or     $0xffffffff,%ecx
569ed3:	41                   	inc    %ecx
569ed4:	75 05                	jne    0x569edb
569ed6:	83 c8 ff             	or     $0xffffffff,%eax
569ed9:	eb 20                	jmp    0x569efb
569edb:	8b 45 cc             	mov    -0x34(%ebp),%eax
569ede:	83 e0 01             	and    $0x1,%eax
569ee1:	eb 18                	jmp    0x569efb
569ee3:	66 8b 55 cc          	mov    -0x34(%ebp),%dx
569ee7:	8b 4e 08             	mov    0x8(%esi),%ecx
569eea:	66 83 e2 01          	and    $0x1,%dx
569eee:	66 d3 e2             	shl    %cl,%dx
569ef1:	66 09 56 04          	or     %dx,0x4(%esi)
569ef5:	8b 45 cc             	mov    -0x34(%ebp),%eax
569ef8:	83 e0 01             	and    $0x1,%eax
569efb:	40                   	inc    %eax
569efc:	75 08                	jne    0x569f06
569efe:	83 c8 ff             	or     $0xffffffff,%eax
569f01:	e9 a3 04 00 00       	jmp    0x56a3a9
569f06:	8b 55 cc             	mov    -0x34(%ebp),%edx
569f09:	85 d2                	test   %edx,%edx
569f0b:	0f 84 41 02 00 00    	je     0x56a152
569f11:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
569f14:	8b 41 08             	mov    0x8(%ecx),%eax
569f17:	85 c0                	test   %eax,%eax
569f19:	75 7e                	jne    0x569f99
569f1b:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
569f22:	8b 55 ac             	mov    -0x54(%ebp),%edx
569f25:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569f28:	8b 52 1c             	mov    0x1c(%edx),%edx
569f2b:	2b c2                	sub    %edx,%eax
569f2d:	b9 3c 00 00 00       	mov    $0x3c,%ecx
569f32:	99                   	cltd
569f33:	f7 f9                	idiv   %ecx
569f35:	8b d0                	mov    %eax,%edx
569f37:	8b 45 ac             	mov    -0x54(%ebp),%eax
569f3a:	8b 40 24             	mov    0x24(%eax),%eax
569f3d:	e8 ce fb 00 00       	call   0x579b10
569f42:	8b f8                	mov    %eax,%edi
569f44:	56                   	push   %esi
569f45:	8b d7                	mov    %edi,%edx
569f47:	8b 45 ac             	mov    -0x54(%ebp),%eax
569f4a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
569f4d:	8b 40 24             	mov    0x24(%eax),%eax
569f50:	e8 c7 fb 00 00       	call   0x579b1c
569f55:	89 45 c8             	mov    %eax,-0x38(%ebp)
569f58:	85 c0                	test   %eax,%eax
569f5a:	7d 08                	jge    0x569f64
569f5c:	83 c8 ff             	or     $0xffffffff,%eax
569f5f:	e9 45 04 00 00       	jmp    0x56a3a9
569f64:	8b 55 c8             	mov    -0x38(%ebp),%edx
569f67:	85 d2                	test   %edx,%edx
569f69:	75 05                	jne    0x569f70
569f6b:	ff 45 d0             	incl   -0x30(%ebp)
569f6e:	eb d4                	jmp    0x569f44
569f70:	8b 4f 0c             	mov    0xc(%edi),%ecx
569f73:	85 c9                	test   %ecx,%ecx
569f75:	74 0b                	je     0x569f82
569f77:	8b 47 04             	mov    0x4(%edi),%eax
569f7a:	40                   	inc    %eax
569f7b:	8b 55 d0             	mov    -0x30(%ebp),%edx
569f7e:	3b c2                	cmp    %edx,%eax
569f80:	74 17                	je     0x569f99
569f82:	68 44 01 00 00       	push   $0x144
569f87:	68 b3 fa 69 00       	push   $0x69fab3
569f8c:	68 8d fa 69 00       	push   $0x69fa8d
569f91:	e8 aa 0b ff ff       	call   0x55ab40
569f96:	83 c4 0c             	add    $0xc,%esp
569f99:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
569f9c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
569f9f:	8b 41 04             	mov    0x4(%ecx),%eax
569fa2:	8b 0a                	mov    (%edx),%ecx
569fa4:	c1 e1 03             	shl    $0x3,%ecx
569fa7:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
569faa:	03 c1                	add    %ecx,%eax
569fac:	89 45 d4             	mov    %eax,-0x2c(%ebp)
569faf:	89 5d dc             	mov    %ebx,-0x24(%ebp)
569fb2:	8b 7d dc             	mov    -0x24(%ebp),%edi
569fb5:	eb 03                	jmp    0x569fba
569fb7:	83 c7 48             	add    $0x48,%edi
569fba:	8b 45 d4             	mov    -0x2c(%ebp),%eax
569fbd:	3b f8                	cmp    %eax,%edi
569fbf:	74 0a                	je     0x569fcb
569fc1:	8b 57 20             	mov    0x20(%edi),%edx
569fc4:	8b 4d 08             	mov    0x8(%ebp),%ecx
569fc7:	3b d1                	cmp    %ecx,%edx
569fc9:	74 ec                	je     0x569fb7
569fcb:	8b c7                	mov    %edi,%eax
569fcd:	8b 55 dc             	mov    -0x24(%ebp),%edx
569fd0:	2b c2                	sub    %edx,%eax
569fd2:	b9 48 00 00 00       	mov    $0x48,%ecx
569fd7:	99                   	cltd
569fd8:	f7 f9                	idiv   %ecx
569fda:	8b d8                	mov    %eax,%ebx
569fdc:	8b c6                	mov    %esi,%eax
569fde:	8b d3                	mov    %ebx,%edx
569fe0:	e8 e3 f7 ff ff       	call   0x5697c8
569fe5:	85 c0                	test   %eax,%eax
569fe7:	74 08                	je     0x569ff1
569fe9:	83 c8 ff             	or     $0xffffffff,%eax
569fec:	e9 b8 03 00 00       	jmp    0x56a3a9
569ff1:	8d 57 b8             	lea    -0x48(%edi),%edx
569ff4:	89 55 d8             	mov    %edx,-0x28(%ebp)
569ff7:	33 d2                	xor    %edx,%edx
569ff9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
569ffc:	8b 01                	mov    (%ecx),%eax
569ffe:	89 45 c4             	mov    %eax,-0x3c(%ebp)
56a001:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
56a008:	89 55 bc             	mov    %edx,-0x44(%ebp)
56a00b:	8b 5d dc             	mov    -0x24(%ebp),%ebx
56a00e:	3b fb                	cmp    %ebx,%edi
56a010:	74 6f                	je     0x56a081
56a012:	8b 43 0c             	mov    0xc(%ebx),%eax
56a015:	85 c0                	test   %eax,%eax
56a017:	75 07                	jne    0x56a020
56a019:	8b 55 d8             	mov    -0x28(%ebp),%edx
56a01c:	3b da                	cmp    %edx,%ebx
56a01e:	75 57                	jne    0x56a077
56a020:	8b 4b 04             	mov    0x4(%ebx),%ecx
56a023:	8b 45 c4             	mov    -0x3c(%ebp),%eax
56a026:	2b c8                	sub    %eax,%ecx
56a028:	89 4d b8             	mov    %ecx,-0x48(%ebp)
56a02b:	8b 45 b8             	mov    -0x48(%ebp),%eax
56a02e:	e8 31 f5 00 00       	call   0x579564
56a033:	40                   	inc    %eax
56a034:	89 45 c0             	mov    %eax,-0x40(%ebp)
56a037:	8b 45 b4             	mov    -0x4c(%ebp),%eax
56a03a:	e8 f5 f4 00 00       	call   0x579534
56a03f:	8b 55 e4             	mov    -0x1c(%ebp),%edx
56a042:	8b 4a 10             	mov    0x10(%edx),%ecx
56a045:	03 c1                	add    %ecx,%eax
56a047:	8b 55 c0             	mov    -0x40(%ebp),%edx
56a04a:	2b d0                	sub    %eax,%edx
56a04c:	85 d2                	test   %edx,%edx
56a04e:	7e 07                	jle    0x56a057
56a050:	8b 4d c0             	mov    -0x40(%ebp),%ecx
56a053:	2b c8                	sub    %eax,%ecx
56a055:	eb 02                	jmp    0x56a059
56a057:	33 c9                	xor    %ecx,%ecx
56a059:	8b c1                	mov    %ecx,%eax
56a05b:	8b 55 bc             	mov    -0x44(%ebp),%edx
56a05e:	3b c2                	cmp    %edx,%eax
56a060:	7f 03                	jg     0x56a065
56a062:	8b 45 bc             	mov    -0x44(%ebp),%eax
56a065:	89 45 bc             	mov    %eax,-0x44(%ebp)
56a068:	8b 45 b8             	mov    -0x48(%ebp),%eax
56a06b:	01 45 c4             	add    %eax,-0x3c(%ebp)
56a06e:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
56a075:	eb 03                	jmp    0x56a07a
56a077:	ff 45 b4             	incl   -0x4c(%ebp)
56a07a:	83 c3 48             	add    $0x48,%ebx
56a07d:	3b fb                	cmp    %ebx,%edi
56a07f:	75 91                	jne    0x56a012
56a081:	8b 55 bc             	mov    -0x44(%ebp),%edx
56a084:	8b c6                	mov    %esi,%eax
56a086:	e8 11 f5 ff ff       	call   0x56959c
56a08b:	85 c0                	test   %eax,%eax
56a08d:	74 08                	je     0x56a097
56a08f:	83 c8 ff             	or     $0xffffffff,%eax
56a092:	e9 12 03 00 00       	jmp    0x56a3a9
56a097:	8b 55 e4             	mov    -0x1c(%ebp),%edx
56a09a:	8b 4d bc             	mov    -0x44(%ebp),%ecx
56a09d:	01 4a 10             	add    %ecx,0x10(%edx)
56a0a0:	8d 47 b8             	lea    -0x48(%edi),%eax
56a0a3:	89 45 d8             	mov    %eax,-0x28(%ebp)
56a0a6:	8b 55 dc             	mov    -0x24(%ebp),%edx
56a0a9:	8b 0a                	mov    (%edx),%ecx
56a0ab:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
56a0ae:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
56a0b5:	8b 5d dc             	mov    -0x24(%ebp),%ebx
56a0b8:	3b fb                	cmp    %ebx,%edi
56a0ba:	0f 84 92 00 00 00    	je     0x56a152
56a0c0:	8b 43 0c             	mov    0xc(%ebx),%eax
56a0c3:	85 c0                	test   %eax,%eax
56a0c5:	75 07                	jne    0x56a0ce
56a0c7:	8b 55 d8             	mov    -0x28(%ebp),%edx
56a0ca:	3b da                	cmp    %edx,%ebx
56a0cc:	75 76                	jne    0x56a144
56a0ce:	8b 4b 04             	mov    0x4(%ebx),%ecx
56a0d1:	8b 45 c4             	mov    -0x3c(%ebp),%eax
56a0d4:	2b c8                	sub    %eax,%ecx
56a0d6:	89 4d b8             	mov    %ecx,-0x48(%ebp)
56a0d9:	8b 45 b4             	mov    -0x4c(%ebp),%eax
56a0dc:	e8 53 f4 00 00       	call   0x579534
56a0e1:	8b 55 e4             	mov    -0x1c(%ebp),%edx
56a0e4:	8b 4a 10             	mov    0x10(%edx),%ecx
56a0e7:	03 c1                	add    %ecx,%eax
56a0e9:	50                   	push   %eax
56a0ea:	8b 45 b8             	mov    -0x48(%ebp),%eax
56a0ed:	e8 72 f4 00 00       	call   0x579564
56a0f2:	5a                   	pop    %edx
56a0f3:	3b d0                	cmp    %eax,%edx
56a0f5:	7f 17                	jg     0x56a10e
56a0f7:	68 6f 01 00 00       	push   $0x16f
56a0fc:	68 03 fb 69 00       	push   $0x69fb03
56a101:	68 bf fa 69 00       	push   $0x69fabf
56a106:	e8 35 0a ff ff       	call   0x55ab40
56a10b:	83 c4 0c             	add    $0xc,%esp
56a10e:	8b 45 b4             	mov    -0x4c(%ebp),%eax
56a111:	e8 1e f4 00 00       	call   0x579534
56a116:	8b d0                	mov    %eax,%edx
56a118:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
56a11b:	8b 41 10             	mov    0x10(%ecx),%eax
56a11e:	03 d0                	add    %eax,%edx
56a120:	8b 4d b8             	mov    -0x48(%ebp),%ecx
56a123:	8b c6                	mov    %esi,%eax
56a125:	e8 da 69 00 00       	call   0x570b04
56a12a:	40                   	inc    %eax
56a12b:	75 08                	jne    0x56a135
56a12d:	83 c8 ff             	or     $0xffffffff,%eax
56a130:	e9 74 02 00 00       	jmp    0x56a3a9
56a135:	8b 55 b8             	mov    -0x48(%ebp),%edx
56a138:	01 55 c4             	add    %edx,-0x3c(%ebp)
56a13b:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
56a142:	eb 03                	jmp    0x56a147
56a144:	ff 45 b4             	incl   -0x4c(%ebp)
56a147:	83 c3 48             	add    $0x48,%ebx
56a14a:	3b fb                	cmp    %ebx,%edi
56a14c:	0f 85 6e ff ff ff    	jne    0x56a0c0
56a152:	83 45 e4 3c          	addl   $0x3c,-0x1c(%ebp)
56a156:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
56a159:	8b 45 e0             	mov    -0x20(%ebp),%eax
56a15c:	3b c8                	cmp    %eax,%ecx
56a15e:	0f 85 2b fc ff ff    	jne    0x569d8f
56a164:	83 45 ec 24          	addl   $0x24,-0x14(%ebp)
56a168:	8b 55 ec             	mov    -0x14(%ebp),%edx
56a16b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
56a16e:	3b d1                	cmp    %ecx,%edx
56a170:	0f 85 b0 fa ff ff    	jne    0x569c26
56a176:	33 d2                	xor    %edx,%edx
56a178:	8b c6                	mov    %esi,%eax
56a17a:	e8 cd 6d 00 00       	call   0x570f4c
56a17f:	8b c6                	mov    %esi,%eax
56a181:	e8 4e 67 00 00       	call   0x5708d4
56a186:	8b 55 a8             	mov    -0x58(%ebp),%edx
56a189:	f6 42 3c 04          	testb  $0x4,0x3c(%edx)
56a18d:	74 32                	je     0x56a1c1
56a18f:	b8 92 ff 00 00       	mov    $0xff92,%eax
56a194:	e8 47 be 00 00       	call   0x575fe0
56a199:	89 45 a4             	mov    %eax,-0x5c(%ebp)
56a19c:	85 c0                	test   %eax,%eax
56a19e:	75 08                	jne    0x56a1a8
56a1a0:	83 c8 ff             	or     $0xffffffff,%eax
56a1a3:	e9 01 02 00 00       	jmp    0x56a3a9
56a1a8:	8b 55 fc             	mov    -0x4(%ebp),%edx
56a1ab:	8b 52 10             	mov    0x10(%edx),%edx
56a1ae:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
56a1b1:	8b 45 f8             	mov    -0x8(%ebp),%eax
56a1b4:	e8 2f bd 00 00       	call   0x575ee8
56a1b9:	8b 45 a4             	mov    -0x5c(%ebp),%eax
56a1bc:	e8 67 be 00 00       	call   0x576028
56a1c1:	8b 55 b0             	mov    -0x50(%ebp),%edx
56a1c4:	8b 45 f4             	mov    -0xc(%ebp),%eax
56a1c7:	8b 4a 2c             	mov    0x2c(%edx),%ecx
56a1ca:	8b d0                	mov    %eax,%edx
56a1cc:	c1 e0 07             	shl    $0x7,%eax
56a1cf:	03 c2                	add    %edx,%eax
56a1d1:	c1 e0 02             	shl    $0x2,%eax