563f22:	e8 19 6c ff ff       	call   0x55ab40
563f27:	83 c4 0c             	add    $0xc,%esp
563f2a:	ff 4e 08             	decl   0x8(%esi)
563f2d:	78 0e                	js     0x563f3d
563f2f:	8b 4e 08             	mov    0x8(%esi),%ecx
563f32:	0f b7 46 04          	movzwl 0x4(%esi),%eax
563f36:	d3 f8                	sar    %cl,%eax
563f38:	83 e0 01             	and    $0x1,%eax
563f3b:	eb 07                	jmp    0x563f44
563f3d:	8b c6                	mov    %esi,%eax
563f3f:	e8 38 cd 00 00       	call   0x570c7c
563f44:	85 c0                	test   %eax,%eax
563f46:	7d 08                	jge    0x563f50
563f48:	83 c8 ff             	or     $0xffffffff,%eax
563f4b:	e9 15 04 00 00       	jmp    0x564365
563f50:	85 c0                	test   %eax,%eax
563f52:	0f 84 ee 00 00 00    	je     0x564046
563f58:	f6 46 10 01          	testb  $0x1,0x10(%esi)
563f5c:	75 17                	jne    0x563f75
563f5e:	68 3a 02 00 00       	push   $0x23a
563f63:	68 85 f3 69 00       	push   $0x69f385
563f68:	68 60 f3 69 00       	push   $0x69f360
563f6d:	e8 ce 6b ff ff       	call   0x55ab40
563f72:	83 c4 0c             	add    $0xc,%esp
563f75:	ff 4e 08             	decl   0x8(%esi)
563f78:	78 0e                	js     0x563f88
563f7a:	8b 4e 08             	mov    0x8(%esi),%ecx
563f7d:	0f b7 46 04          	movzwl 0x4(%esi),%eax
563f81:	d3 f8                	sar    %cl,%eax
563f83:	83 e0 01             	and    $0x1,%eax
563f86:	eb 07                	jmp    0x563f8f
563f88:	8b c6                	mov    %esi,%eax
563f8a:	e8 ed cc 00 00       	call   0x570c7c
563f8f:	85 c0                	test   %eax,%eax
563f91:	7d 08                	jge    0x563f9b
563f93:	83 c8 ff             	or     $0xffffffff,%eax
563f96:	e9 ca 03 00 00       	jmp    0x564365
563f9b:	8b d7                	mov    %edi,%edx
563f9d:	8b cb                	mov    %ebx,%ecx
563f9f:	c1 e2 02             	shl    $0x2,%edx
563fa2:	2b ca                	sub    %edx,%ecx
563fa4:	8b d7                	mov    %edi,%edx
563fa6:	c1 e2 02             	shl    $0x2,%edx
563fa9:	89 4d ac             	mov    %ecx,-0x54(%ebp)
563fac:	03 d3                	add    %ebx,%edx
563fae:	eb 30                	jmp    0x563fe0
563fb0:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
563fb4:	83 4a 04 08          	orl    $0x8,0x4(%edx)
563fb8:	85 c0                	test   %eax,%eax
563fba:	74 14                	je     0x563fd0
563fbc:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
563fc2:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
563fc9:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
563fd0:	83 0a 10             	orl    $0x10,(%edx)
563fd3:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
563fd7:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
563fde:	eb 4d                	jmp    0x56402d
563fe0:	8b 4d ac             	mov    -0x54(%ebp),%ecx
563fe3:	83 49 fc 02          	orl    $0x2,-0x4(%ecx)
563fe7:	8b 4d ac             	mov    -0x54(%ebp),%ecx
563fea:	83 49 04 04          	orl    $0x4,0x4(%ecx)
563fee:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
563ff2:	83 4a 04 08          	orl    $0x8,0x4(%edx)
563ff6:	85 c0                	test   %eax,%eax
563ff8:	74 1f                	je     0x564019
563ffa:	8b 4d ac             	mov    -0x54(%ebp),%ecx
563ffd:	81 09 40 04 00 00    	orl    $0x440,(%ecx)
564003:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
564009:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
564010:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
564017:	eb 14                	jmp    0x56402d
564019:	8b 4d ac             	mov    -0x54(%ebp),%ecx
56401c:	83 09 40             	orl    $0x40,(%ecx)
56401f:	83 0a 10             	orl    $0x10,(%edx)
564022:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
564026:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
56402d:	81 0b 00 10 00 00    	orl    $0x1000,(%ebx)
564033:	85 c0                	test   %eax,%eax
564035:	74 07                	je     0x56403e
564037:	8b 45 e0             	mov    -0x20(%ebp),%eax
56403a:	f7 d8                	neg    %eax
56403c:	eb 03                	jmp    0x564041
56403e:	8b 45 e0             	mov    -0x20(%ebp),%eax
564041:	8b 55 c4             	mov    -0x3c(%ebp),%edx
564044:	89 02                	mov    %eax,(%edx)
564046:	81 0b 00 40 00 00    	orl    $0x4000,(%ebx)
56404c:	ff 4d ec             	decl   -0x14(%ebp)
56404f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
564052:	85 c9                	test   %ecx,%ecx
564054:	0f 8e d2 02 00 00    	jle    0x56432c
56405a:	8b c7                	mov    %edi,%eax
56405c:	8b 55 c0             	mov    -0x40(%ebp),%edx
56405f:	c1 e0 02             	shl    $0x2,%eax
564062:	c1 e2 02             	shl    $0x2,%edx
564065:	03 d8                	add    %eax,%ebx
564067:	01 55 c4             	add    %edx,-0x3c(%ebp)
56406a:	8b 03                	mov    (%ebx),%eax
56406c:	a8 ff                	test   $0xff,%al
56406e:	0f 84 48 01 00 00    	je     0x5641bc
564074:	f6 c4 50             	test   $0x50,%ah
564077:	0f 85 3f 01 00 00    	jne    0x5641bc
56407d:	f6 46 10 01          	testb  $0x1,0x10(%esi)
564081:	75 17                	jne    0x56409a
564083:	68 43 02 00 00       	push   $0x243
564088:	68 b6 f3 69 00       	push   $0x69f3b6
56408d:	68 91 f3 69 00       	push   $0x69f391
564092:	e8 a9 6a ff ff       	call   0x55ab40
564097:	83 c4 0c             	add    $0xc,%esp
56409a:	ff 4e 08             	decl   0x8(%esi)
56409d:	78 0e                	js     0x5640ad
56409f:	8b 4e 08             	mov    0x8(%esi),%ecx
5640a2:	0f b7 46 04          	movzwl 0x4(%esi),%eax
5640a6:	d3 f8                	sar    %cl,%eax
5640a8:	83 e0 01             	and    $0x1,%eax
5640ab:	eb 07                	jmp    0x5640b4
5640ad:	8b c6                	mov    %esi,%eax
5640af:	e8 c8 cb 00 00       	call   0x570c7c
5640b4:	85 c0                	test   %eax,%eax
5640b6:	7d 08                	jge    0x5640c0
5640b8:	83 c8 ff             	or     $0xffffffff,%eax
5640bb:	e9 a5 02 00 00       	jmp    0x564365
5640c0:	85 c0                	test   %eax,%eax
5640c2:	0f 84 ee 00 00 00    	je     0x5641b6
5640c8:	f6 46 10 01          	testb  $0x1,0x10(%esi)
5640cc:	75 17                	jne    0x5640e5
5640ce:	68 43 02 00 00       	push   $0x243
5640d3:	68 e7 f3 69 00       	push   $0x69f3e7
5640d8:	68 c2 f3 69 00       	push   $0x69f3c2
5640dd:	e8 5e 6a ff ff       	call   0x55ab40
5640e2:	83 c4 0c             	add    $0xc,%esp
5640e5:	ff 4e 08             	decl   0x8(%esi)
5640e8:	78 0e                	js     0x5640f8
5640ea:	8b 4e 08             	mov    0x8(%esi),%ecx
5640ed:	0f b7 46 04          	movzwl 0x4(%esi),%eax
5640f1:	d3 f8                	sar    %cl,%eax
5640f3:	83 e0 01             	and    $0x1,%eax
5640f6:	eb 07                	jmp    0x5640ff
5640f8:	8b c6                	mov    %esi,%eax
5640fa:	e8 7d cb 00 00       	call   0x570c7c
5640ff:	85 c0                	test   %eax,%eax
564101:	7d 08                	jge    0x56410b
564103:	83 c8 ff             	or     $0xffffffff,%eax
564106:	e9 5a 02 00 00       	jmp    0x564365
56410b:	8b d7                	mov    %edi,%edx
56410d:	8b cb                	mov    %ebx,%ecx
56410f:	c1 e2 02             	shl    $0x2,%edx
564112:	2b ca                	sub    %edx,%ecx
564114:	8b d7                	mov    %edi,%edx
564116:	c1 e2 02             	shl    $0x2,%edx
564119:	89 4d a8             	mov    %ecx,-0x58(%ebp)
56411c:	03 d3                	add    %ebx,%edx
56411e:	eb 30                	jmp    0x564150
564120:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
564124:	83 4a 04 08          	orl    $0x8,0x4(%edx)
564128:	85 c0                	test   %eax,%eax
56412a:	74 14                	je     0x564140
56412c:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
564132:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
564139:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
564140:	83 0a 10             	orl    $0x10,(%edx)
564143:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
564147:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
56414e:	eb 4d                	jmp    0x56419d
564150:	8b 4d a8             	mov    -0x58(%ebp),%ecx
564153:	83 49 fc 02          	orl    $0x2,-0x4(%ecx)
564157:	8b 4d a8             	mov    -0x58(%ebp),%ecx
56415a:	83 49 04 04          	orl    $0x4,0x4(%ecx)
56415e:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
564162:	83 4a 04 08          	orl    $0x8,0x4(%edx)
564166:	85 c0                	test   %eax,%eax
564168:	74 1f                	je     0x564189
56416a:	8b 4d a8             	mov    -0x58(%ebp),%ecx
56416d:	81 09 40 04 00 00    	orl    $0x440,(%ecx)
564173:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
564179:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
564180:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
564187:	eb 14                	jmp    0x56419d
564189:	8b 4d a8             	mov    -0x58(%ebp),%ecx
56418c:	83 09 40             	orl    $0x40,(%ecx)
56418f:	83 0a 10             	orl    $0x10,(%edx)
564192:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
564196:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
56419d:	81 0b 00 10 00 00    	orl    $0x1000,(%ebx)
5641a3:	85 c0                	test   %eax,%eax
5641a5:	74 07                	je     0x5641ae
5641a7:	8b 45 e0             	mov    -0x20(%ebp),%eax
5641aa:	f7 d8                	neg    %eax
5641ac:	eb 03                	jmp    0x5641b1
5641ae:	8b 45 e0             	mov    -0x20(%ebp),%eax
5641b1:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5641b4:	89 02                	mov    %eax,(%edx)
5641b6:	81 0b 00 40 00 00    	orl    $0x4000,(%ebx)
5641bc:	ff 4d ec             	decl   -0x14(%ebp)
5641bf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5641c2:	85 c9                	test   %ecx,%ecx
5641c4:	0f 8e 62 01 00 00    	jle    0x56432c
5641ca:	8b c7                	mov    %edi,%eax
5641cc:	8b 55 c0             	mov    -0x40(%ebp),%edx
5641cf:	c1 e0 02             	shl    $0x2,%eax
5641d2:	c1 e2 02             	shl    $0x2,%edx
5641d5:	03 d8                	add    %eax,%ebx
5641d7:	01 55 c4             	add    %edx,-0x3c(%ebp)
5641da:	8b 03                	mov    (%ebx),%eax
5641dc:	a8 ff                	test   $0xff,%al
5641de:	0f 84 48 01 00 00    	je     0x56432c
5641e4:	f6 c4 50             	test   $0x50,%ah
5641e7:	0f 85 3f 01 00 00    	jne    0x56432c
5641ed:	f6 46 10 01          	testb  $0x1,0x10(%esi)
5641f1:	75 17                	jne    0x56420a
5641f3:	68 4c 02 00 00       	push   $0x24c
5641f8:	68 18 f4 69 00       	push   $0x69f418
5641fd:	68 f3 f3 69 00       	push   $0x69f3f3
564202:	e8 39 69 ff ff       	call   0x55ab40
564207:	83 c4 0c             	add    $0xc,%esp
56420a:	ff 4e 08             	decl   0x8(%esi)
56420d:	78 0e                	js     0x56421d
56420f:	8b 4e 08             	mov    0x8(%esi),%ecx
564212:	0f b7 46 04          	movzwl 0x4(%esi),%eax
564216:	d3 f8                	sar    %cl,%eax
564218:	83 e0 01             	and    $0x1,%eax
56421b:	eb 07                	jmp    0x564224
56421d:	8b c6                	mov    %esi,%eax
56421f:	e8 58 ca 00 00       	call   0x570c7c
564224:	85 c0                	test   %eax,%eax
564226:	7d 08                	jge    0x564230
564228:	83 c8 ff             	or     $0xffffffff,%eax
56422b:	e9 35 01 00 00       	jmp    0x564365
564230:	85 c0                	test   %eax,%eax
564232:	0f 84 ee 00 00 00    	je     0x564326
564238:	f6 46 10 01          	testb  $0x1,0x10(%esi)
56423c:	75 17                	jne    0x564255
56423e:	68 4c 02 00 00       	push   $0x24c
564243:	68 49 f4 69 00       	push   $0x69f449
564248:	68 24 f4 69 00       	push   $0x69f424
56424d:	e8 ee 68 ff ff       	call   0x55ab40
564252:	83 c4 0c             	add    $0xc,%esp
564255:	ff 4e 08             	decl   0x8(%esi)
564258:	78 0e                	js     0x564268
56425a:	8b 4e 08             	mov    0x8(%esi),%ecx
56425d:	0f b7 46 04          	movzwl 0x4(%esi),%eax
564261:	d3 f8                	sar    %cl,%eax
564263:	83 e0 01             	and    $0x1,%eax
564266:	eb 07                	jmp    0x56426f
564268:	8b c6                	mov    %esi,%eax
56426a:	e8 0d ca 00 00       	call   0x570c7c
56426f:	85 c0                	test   %eax,%eax
564271:	7d 08                	jge    0x56427b
564273:	83 c8 ff             	or     $0xffffffff,%eax
564276:	e9 ea 00 00 00       	jmp    0x564365
56427b:	8b d7                	mov    %edi,%edx
56427d:	8b cb                	mov    %ebx,%ecx
56427f:	c1 e2 02             	shl    $0x2,%edx
564282:	2b ca                	sub    %edx,%ecx
564284:	8b d7                	mov    %edi,%edx
564286:	c1 e2 02             	shl    $0x2,%edx
564289:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
56428c:	03 d3                	add    %ebx,%edx
56428e:	eb 30                	jmp    0x5642c0
564290:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
564294:	83 4a 04 08          	orl    $0x8,0x4(%edx)
564298:	85 c0                	test   %eax,%eax
56429a:	74 14                	je     0x5642b0
56429c:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
5642a2:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
5642a9:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
5642b0:	83 0a 10             	orl    $0x10,(%edx)
5642b3:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
5642b7:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
5642be:	eb 4d                	jmp    0x56430d
5642c0:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642c3:	83 49 fc 02          	orl    $0x2,-0x4(%ecx)
5642c7:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642ca:	83 49 04 04          	orl    $0x4,0x4(%ecx)
5642ce:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
5642d2:	83 4a 04 08          	orl    $0x8,0x4(%edx)
5642d6:	85 c0                	test   %eax,%eax
5642d8:	74 1f                	je     0x5642f9
5642da:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642dd:	81 09 40 04 00 00    	orl    $0x440,(%ecx)
5642e3:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
5642e9:	81 4b fc 20 02 00 00 	orl    $0x220,-0x4(%ebx)
5642f0:	81 4b 04 80 08 00 00 	orl    $0x880,0x4(%ebx)
5642f7:	eb 14                	jmp    0x56430d
5642f9:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5642fc:	83 09 40             	orl    $0x40,(%ecx)
5642ff:	83 0a 10             	orl    $0x10,(%edx)
564302:	83 4b fc 20          	orl    $0x20,-0x4(%ebx)
564306:	81 4b 04 80 00 00 00 	orl    $0x80,0x4(%ebx)
56430d:	81 0b 00 10 00 00    	orl    $0x1000,(%ebx)
564313:	85 c0                	test   %eax,%eax
564315:	74 07                	je     0x56431e
564317:	8b 45 e0             	mov    -0x20(%ebp),%eax
56431a:	f7 d8                	neg    %eax
56431c:	eb 03                	jmp    0x564321
56431e:	8b 45 e0             	mov    -0x20(%ebp),%eax
564321:	8b 55 c4             	mov    -0x3c(%ebp),%edx
564324:	89 02                	mov    %eax,(%edx)
564326:	81 0b 00 40 00 00    	orl    $0x4000,(%ebx)
56432c:	ff 4d f0             	decl   -0x10(%ebp)
56432f:	83 45 c8 04          	addl   $0x4,-0x38(%ebp)
564333:	83 45 b4 04          	addl   $0x4,-0x4c(%ebp)
564337:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56433a:	85 c9                	test   %ecx,%ecx
56433c:	0f 8f 32 fa ff ff    	jg     0x563d74
564342:	83 6d f4 04          	subl   $0x4,-0xc(%ebp)
564346:	8b 45 d0             	mov    -0x30(%ebp),%eax
564349:	c1 e0 02             	shl    $0x2,%eax
56434c:	01 45 cc             	add    %eax,-0x34(%ebp)
56434f:	8b 55 bc             	mov    -0x44(%ebp),%edx
564352:	c1 e2 02             	shl    $0x2,%edx
564355:	01 55 b8             	add    %edx,-0x48(%ebp)
564358:	8b 4d f4             	mov    -0xc(%ebp),%ecx
56435b:	85 c9                	test   %ecx,%ecx
56435d:	0f 8f df f9 ff ff    	jg     0x563d42
564363:	33 c0                	xor    %eax,%eax
564365:	5f                   	pop    %edi
564366:	5e                   	pop    %esi
564367:	5b                   	pop    %ebx
564368:	8b e5                	mov    %ebp,%esp
56436a:	5d                   	pop    %ebp
56436b:	c2 0c 00             	ret    $0xc
56436e:	90                   	nop
56436f:	90                   	nop
564370:	55                   	push   %ebp
564371:	8b ec                	mov    %esp,%ebp
564373:	83 c4 b4             	add    $0xffffffb4,%esp
564376:	53                   	push   %ebx
564377:	56                   	push   %esi
564378:	57                   	push   %edi
564379:	89 4d f8             	mov    %ecx,-0x8(%ebp)
56437c:	8b da                	mov    %edx,%ebx
56437e:	89 45 fc             	mov    %eax,-0x4(%ebp)
564381:	8b 45 08             	mov    0x8(%ebp),%eax
564384:	8b 50 18             	mov    0x18(%eax),%edx
564387:	89 55 e8             	mov    %edx,-0x18(%ebp)
56438a:	8b 4d 08             	mov    0x8(%ebp),%ecx
56438d:	8b 41 14             	mov    0x14(%ecx),%eax
564390:	89 45 e4             	mov    %eax,-0x1c(%ebp)
564393:	8b 55 0c             	mov    0xc(%ebp),%edx
564396:	8b 4a 14             	mov    0x14(%edx),%ecx
564399:	49                   	dec    %ecx
56439a:	7e 1f                	jle    0x5643bb
56439c:	8b 45 0c             	mov    0xc(%ebp),%eax
56439f:	8b 50 1c             	mov    0x1c(%eax),%edx
5643a2:	8b 45 0c             	mov    0xc(%ebp),%eax
5643a5:	8b 4a 04             	mov    0x4(%edx),%ecx
5643a8:	8b 50 1c             	mov    0x1c(%eax),%edx
5643ab:	8b 02                	mov    (%edx),%eax
5643ad:	2b c8                	sub    %eax,%ecx
5643af:	85 c9                	test   %ecx,%ecx