560029:	e8 8a 29 00 00       	call   0x5629b8
56002e:	89 46 18             	mov    %eax,0x18(%esi)
560031:	85 c0                	test   %eax,%eax
560033:	75 08                	jne    0x56003d
560035:	83 c8 ff             	or     $0xffffffff,%eax
560038:	e9 c7 01 00 00       	jmp    0x560204
56003d:	8b 56 14             	mov    0x14(%esi),%edx
560040:	85 d2                	test   %edx,%edx
560042:	74 68                	je     0x5600ac
560044:	8b 4e 18             	mov    0x18(%esi),%ecx
560047:	85 c9                	test   %ecx,%ecx
560049:	75 18                	jne    0x560063
56004b:	33 d2                	xor    %edx,%edx
56004d:	33 c0                	xor    %eax,%eax
56004f:	e8 c8 83 01 00       	call   0x57841c
560054:	89 46 18             	mov    %eax,0x18(%esi)
560057:	85 c0                	test   %eax,%eax
560059:	75 08                	jne    0x560063
56005b:	83 c8 ff             	or     $0xffffffff,%eax
56005e:	e9 a1 01 00 00       	jmp    0x560204
560063:	8b 46 18             	mov    0x18(%esi),%eax
560066:	e8 8d 8b 01 00       	call   0x578bf8
56006b:	8b f8                	mov    %eax,%edi
56006d:	b9 02 00 00 00       	mov    $0x2,%ecx
560072:	33 d2                	xor    %edx,%edx
560074:	8b 46 18             	mov    0x18(%esi),%eax
560077:	e8 ec 8a 01 00       	call   0x578b68
56007c:	8b 56 14             	mov    0x14(%esi),%edx
56007f:	8b 46 18             	mov    0x18(%esi),%eax
560082:	e8 21 2c 00 00       	call   0x562ca8
560087:	85 c0                	test   %eax,%eax
560089:	74 08                	je     0x560093
56008b:	83 c8 ff             	or     $0xffffffff,%eax
56008e:	e9 71 01 00 00       	jmp    0x560204
560093:	33 c9                	xor    %ecx,%ecx
560095:	8b d7                	mov    %edi,%edx
560097:	8b 46 18             	mov    0x18(%esi),%eax
56009a:	e8 c9 8a 01 00       	call   0x578b68
56009f:	8b 46 14             	mov    0x14(%esi),%eax
5600a2:	e8 d1 29 00 00       	call   0x562a78
5600a7:	33 d2                	xor    %edx,%edx
5600a9:	89 56 14             	mov    %edx,0x14(%esi)
5600ac:	e8 9b 9e 01 00       	call   0x579f4c
5600b1:	83 f8 0a             	cmp    $0xa,%eax
5600b4:	7c 0c                	jl     0x5600c2
5600b6:	ba 80 2e 6a 00       	mov    $0x6a2e80,%edx
5600bb:	8b c3                	mov    %ebx,%eax
5600bd:	e8 d2 25 00 00       	call   0x562694
5600c2:	8b 4e 18             	mov    0x18(%esi),%ecx
5600c5:	85 c9                	test   %ecx,%ecx
5600c7:	74 05                	je     0x5600ce
5600c9:	8b 56 18             	mov    0x18(%esi),%edx
5600cc:	eb 03                	jmp    0x5600d1
5600ce:	8b 53 3c             	mov    0x3c(%ebx),%edx
5600d1:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
5600d4:	8b c3                	mov    %ebx,%eax
5600d6:	e8 41 b2 00 00       	call   0x56b31c
5600db:	85 c0                	test   %eax,%eax
5600dd:	74 1a                	je     0x5600f9
5600df:	68 e5 e6 69 00       	push   $0x69e6e5
5600e4:	68 80 2e 6a 00       	push   $0x6a2e80
5600e9:	e8 de 9f 01 00       	call   0x57a0cc
5600ee:	83 c4 08             	add    $0x8,%esp
5600f1:	83 c8 ff             	or     $0xffffffff,%eax
5600f4:	e9 0b 01 00 00       	jmp    0x560204
5600f9:	8b 53 64             	mov    0x64(%ebx),%edx
5600fc:	85 d2                	test   %edx,%edx
5600fe:	0f 8e c5 00 00 00    	jle    0x5601c9
560104:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
560107:	8b 41 3c             	mov    0x3c(%ecx),%eax
56010a:	3b d0                	cmp    %eax,%edx
56010c:	0f 86 9b 00 00 00    	jbe    0x5601ad
560112:	2b d0                	sub    %eax,%edx
560114:	89 14 24             	mov    %edx,(%esp)
560117:	8b 14 24             	mov    (%esp),%edx
56011a:	52                   	push   %edx
56011b:	68 00 e7 69 00       	push   $0x69e700
560120:	68 80 2e 6a 00       	push   $0x6a2e80
560125:	e8 a2 9f 01 00       	call   0x57a0cc
56012a:	83 c4 0c             	add    $0xc,%esp
56012d:	eb 71                	jmp    0x5601a0
56012f:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
560132:	f6 41 08 07          	testb  $0x7,0x8(%ecx)
560136:	75 4b                	jne    0x560183
560138:	8b 7b 3c             	mov    0x3c(%ebx),%edi
56013b:	8b 6f 40             	mov    0x40(%edi),%ebp
56013e:	85 ed                	test   %ebp,%ebp
560140:	7c 13                	jl     0x560155
560142:	8b 47 3c             	mov    0x3c(%edi),%eax
560145:	3b e8                	cmp    %eax,%ebp
560147:	7f 0c                	jg     0x560155
560149:	8b 53 3c             	mov    0x3c(%ebx),%edx
56014c:	83 4a 08 04          	orl    $0x4,0x8(%edx)
560150:	83 c9 ff             	or     $0xffffffff,%ecx
560153:	eb 31                	jmp    0x560186
560155:	8b 43 3c             	mov    0x3c(%ebx),%eax
560158:	ff 48 1c             	decl   0x1c(%eax)
56015b:	79 11                	jns    0x56016e
56015d:	ba 01 00 00 00       	mov    $0x1,%edx
560162:	8b 43 3c             	mov    0x3c(%ebx),%eax
560165:	e8 be 8b 01 00       	call   0x578d28
56016a:	8b c8                	mov    %eax,%ecx
56016c:	eb 18                	jmp    0x560186
56016e:	8b 53 3c             	mov    0x3c(%ebx),%edx
560171:	ff 42 3c             	incl   0x3c(%edx)
560174:	8b 43 3c             	mov    0x3c(%ebx),%eax
560177:	8b 50 18             	mov    0x18(%eax),%edx
56017a:	ff 40 18             	incl   0x18(%eax)
56017d:	33 c9                	xor    %ecx,%ecx
56017f:	8a 0a                	mov    (%edx),%cl
560181:	eb 03                	jmp    0x560186
560183:	83 c9 ff             	or     $0xffffffff,%ecx
560186:	41                   	inc    %ecx
560187:	75 17                	jne    0x5601a0
560189:	68 30 e7 69 00       	push   $0x69e730
56018e:	68 80 2e 6a 00       	push   $0x6a2e80
560193:	e8 34 9f 01 00       	call   0x57a0cc
560198:	83 c4 08             	add    $0x8,%esp
56019b:	83 c8 ff             	or     $0xffffffff,%eax
56019e:	eb 64                	jmp    0x560204
5601a0:	8b 14 24             	mov    (%esp),%edx
5601a3:	83 04 24 ff          	addl   $0xffffffff,(%esp)
5601a7:	85 d2                	test   %edx,%edx
5601a9:	77 84                	ja     0x56012f
5601ab:	eb 1c                	jmp    0x5601c9
5601ad:	8b 53 64             	mov    0x64(%ebx),%edx
5601b0:	3b c2                	cmp    %edx,%eax
5601b2:	76 15                	jbe    0x5601c9
5601b4:	2b c2                	sub    %edx,%eax
5601b6:	50                   	push   %eax
5601b7:	68 3c e7 69 00       	push   $0x69e73c
5601bc:	68 80 2e 6a 00       	push   $0x6a2e80
5601c1:	e8 06 9f 01 00       	call   0x57a0cc
5601c6:	83 c4 0c             	add    $0xc,%esp
5601c9:	8b 46 2c             	mov    0x2c(%esi),%eax
5601cc:	85 c0                	test   %eax,%eax
5601ce:	7e 23                	jle    0x5601f3
5601d0:	48                   	dec    %eax
5601d1:	8b 4e 28             	mov    0x28(%esi),%ecx
5601d4:	3b c1                	cmp    %ecx,%eax
5601d6:	75 1b                	jne    0x5601f3
5601d8:	8b d6                	mov    %esi,%edx
5601da:	8b c3                	mov    %ebx,%eax
5601dc:	e8 43 0f 00 00       	call   0x561124
5601e1:	85 c0                	test   %eax,%eax
5601e3:	74 05                	je     0x5601ea
5601e5:	83 c8 ff             	or     $0xffffffff,%eax
5601e8:	eb 1a                	jmp    0x560204
5601ea:	8b d6                	mov    %esi,%edx
5601ec:	8b c3                	mov    %ebx,%eax
5601ee:	e8 b9 0c 00 00       	call   0x560eac
5601f3:	33 d2                	xor    %edx,%edx
5601f5:	89 53 34             	mov    %edx,0x34(%ebx)
5601f8:	ff 46 28             	incl   0x28(%esi)
5601fb:	33 c0                	xor    %eax,%eax
5601fd:	c7 43 54 08 00 00 00 	movl   $0x8,0x54(%ebx)
560204:	5a                   	pop    %edx
560205:	5d                   	pop    %ebp
560206:	5f                   	pop    %edi
560207:	5e                   	pop    %esi
560208:	5b                   	pop    %ebx
560209:	c3                   	ret
56020a:	90                   	nop
56020b:	90                   	nop
56020c:	53                   	push   %ebx
56020d:	56                   	push   %esi
56020e:	57                   	push   %edi
56020f:	55                   	push   %ebp
560210:	81 c4 74 f5 ff ff    	add    $0xfffff574,%esp
560216:	89 54 24 04          	mov    %edx,0x4(%esp)
56021a:	89 04 24             	mov    %eax,(%esp)
56021d:	8b 44 24 04          	mov    0x4(%esp),%eax
560221:	8b 50 20             	mov    0x20(%eax),%edx
560224:	89 54 24 78          	mov    %edx,0x78(%esp)
560228:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56022c:	33 c0                	xor    %eax,%eax
56022e:	89 41 30             	mov    %eax,0x30(%ecx)
560231:	8b 54 24 78          	mov    0x78(%esp),%edx
560235:	8a 4a 0c             	mov    0xc(%edx),%cl
560238:	80 f9 01             	cmp    $0x1,%cl
56023b:	75 0b                	jne    0x560248
56023d:	8b 44 24 04          	mov    0x4(%esp),%eax
560241:	c7 40 30 01 00 00 00 	movl   $0x1,0x30(%eax)
560248:	66 c7 44 24 0c 00 00 	movw   $0x0,0xc(%esp)
56024f:	8b 54 24 04          	mov    0x4(%esp),%edx
560253:	8b 4a 24             	mov    0x24(%edx),%ecx
560256:	89 4c 24 08          	mov    %ecx,0x8(%esp)
56025a:	8b 04 24             	mov    (%esp),%eax
56025d:	8b 50 58             	mov    0x58(%eax),%edx
560260:	89 94 24 84 00 00 00 	mov    %edx,0x84(%esp)
560267:	e9 7b 0b 00 00       	jmp    0x560de7
56026c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560270:	8b 41 20             	mov    0x20(%ecx),%eax
560273:	0f b7 4c 24 0c       	movzwl 0xc(%esp),%ecx
560278:	8b 50 10             	mov    0x10(%eax),%edx
56027b:	8d 04 c9             	lea    (%ecx,%ecx,8),%eax
56027e:	c1 e0 03             	shl    $0x3,%eax
560281:	2b c1                	sub    %ecx,%eax
560283:	c1 e0 02             	shl    $0x2,%eax
560286:	03 d0                	add    %eax,%edx
560288:	89 54 24 18          	mov    %edx,0x18(%esp)
56028c:	8b 54 24 18          	mov    0x18(%esp),%edx
560290:	8a 4a 08             	mov    0x8(%edx),%cl
560293:	84 c9                	test   %cl,%cl
560295:	75 0b                	jne    0x5602a2
560297:	8b 44 24 04          	mov    0x4(%esp),%eax
56029b:	c7 40 30 01 00 00 00 	movl   $0x1,0x30(%eax)
5602a2:	8b 54 24 18          	mov    0x18(%esp),%edx
5602a6:	8b 44 24 08          	mov    0x8(%esp),%eax
5602aa:	33 c9                	xor    %ecx,%ecx
5602ac:	8a 4a 05             	mov    0x5(%edx),%cl
5602af:	66 89 48 14          	mov    %cx,0x14(%eax)
5602b3:	8b 54 24 08          	mov    0x8(%esp),%edx
5602b7:	0f b7 4a 14          	movzwl 0x14(%edx),%ecx
5602bb:	8b c1                	mov    %ecx,%eax
5602bd:	c1 e0 03             	shl    $0x3,%eax
5602c0:	2b c1                	sub    %ecx,%eax
5602c2:	c1 e0 03             	shl    $0x3,%eax
5602c5:	e8 b2 80 01 00       	call   0x57837c
5602ca:	8b 54 24 08          	mov    0x8(%esp),%edx
5602ce:	85 c0                	test   %eax,%eax
5602d0:	89 42 18             	mov    %eax,0x18(%edx)
5602d3:	75 08                	jne    0x5602dd
5602d5:	83 c8 ff             	or     $0xffffffff,%eax
5602d8:	e9 c4 0b 00 00       	jmp    0x560ea1
5602dd:	8b 94 24 84 00 00 00 	mov    0x84(%esp),%edx
5602e4:	8b 4a 04             	mov    0x4(%edx),%ecx
5602e7:	85 c9                	test   %ecx,%ecx
5602e9:	77 17                	ja     0x560302
5602eb:	68 e9 02 00 00       	push   $0x2e9
5602f0:	68 15 e8 69 00       	push   $0x69e815
5602f5:	68 f2 e7 69 00       	push   $0x69e7f2
5602fa:	e8 41 a8 ff ff       	call   0x55ab40
5602ff:	83 c4 0c             	add    $0xc,%esp
560302:	8b 94 24 84 00 00 00 	mov    0x84(%esp),%edx
560309:	8b 44 24 04          	mov    0x4(%esp),%eax
56030d:	8b 4a 04             	mov    0x4(%edx),%ecx
560310:	8b 94 24 84 00 00 00 	mov    0x84(%esp),%edx
560317:	8b 40 10             	mov    0x10(%eax),%eax
56031a:	03 c1                	add    %ecx,%eax
56031c:	8b 4a 04             	mov    0x4(%edx),%ecx
56031f:	33 d2                	xor    %edx,%edx
560321:	48                   	dec    %eax
560322:	f7 f1                	div    %ecx
560324:	50                   	push   %eax
560325:	8b 84 24 88 00 00 00 	mov    0x88(%esp),%eax
56032c:	8b 00                	mov    (%eax),%eax
56032e:	85 c0                	test   %eax,%eax
560330:	77 17                	ja     0x560349
560332:	68 e8 02 00 00       	push   $0x2e8
560337:	68 e8 e7 69 00       	push   $0x69e7e8
56033c:	68 c5 e7 69 00       	push   $0x69e7c5
560341:	e8 fa a7 ff ff       	call   0x55ab40
560346:	83 c4 0c             	add    $0xc,%esp
560349:	8b 54 24 08          	mov    0x8(%esp),%edx
56034d:	8b 42 0c             	mov    0xc(%edx),%eax
560350:	8b 94 24 88 00 00 00 	mov    0x88(%esp),%edx
560357:	8b 0a                	mov    (%edx),%ecx
560359:	8b 94 24 88 00 00 00 	mov    0x88(%esp),%edx
560360:	03 c1                	add    %ecx,%eax
560362:	48                   	dec    %eax
560363:	8b 0a                	mov    (%edx),%ecx
560365:	33 d2                	xor    %edx,%edx
560367:	f7 f1                	div    %ecx
560369:	50                   	push   %eax
56036a:	8b 84 24 8c 00 00 00 	mov    0x8c(%esp),%eax
560371:	8b 40 04             	mov    0x4(%eax),%eax
560374:	85 c0                	test   %eax,%eax
560376:	77 17                	ja     0x56038f
560378:	68 e7 02 00 00       	push   $0x2e7
56037d:	68 bb e7 69 00       	push   $0x69e7bb
560382:	68 96 e7 69 00       	push   $0x69e796
560387:	e8 b4 a7 ff ff       	call   0x55ab40
56038c:	83 c4 0c             	add    $0xc,%esp
56038f:	8b 54 24 0c          	mov    0xc(%esp),%edx
560393:	8b 42 08             	mov    0x8(%edx),%eax
560396:	8b 94 24 8c 00 00 00 	mov    0x8c(%esp),%edx
56039d:	8b 4a 04             	mov    0x4(%edx),%ecx
5603a0:	8b 94 24 8c 00 00 00 	mov    0x8c(%esp),%edx
5603a7:	03 c1                	add    %ecx,%eax
5603a9:	48                   	dec    %eax
5603aa:	8b 4a 04             	mov    0x4(%edx),%ecx
5603ad:	33 d2                	xor    %edx,%edx
5603af:	f7 f1                	div    %ecx
5603b1:	50                   	push   %eax
5603b2:	8b 84 24 90 00 00 00 	mov    0x90(%esp),%eax
5603b9:	8b 00                	mov    (%eax),%eax
5603bb:	85 c0                	test   %eax,%eax
5603bd:	77 17                	ja     0x5603d6
5603bf:	68 e7 02 00 00       	push   $0x2e7
5603c4:	68 8c e7 69 00       	push   $0x69e78c
5603c9:	68 67 e7 69 00       	push   $0x69e767
5603ce:	e8 6d a7 ff ff       	call   0x55ab40
5603d3:	83 c4 0c             	add    $0xc,%esp
5603d6:	8b 54 24 10          	mov    0x10(%esp),%edx
5603da:	8b 42 04             	mov    0x4(%edx),%eax
5603dd:	8b 94 24 90 00 00 00 	mov    0x90(%esp),%edx
5603e4:	8b 0a                	mov    (%edx),%ecx
5603e6:	8b 94 24 90 00 00 00 	mov    0x90(%esp),%edx
5603ed:	03 c1                	add    %ecx,%eax
5603ef:	48                   	dec    %eax
5603f0:	8b 0a                	mov    (%edx),%ecx
5603f2:	33 d2                	xor    %edx,%edx
5603f4:	f7 f1                	div    %ecx
5603f6:	5a                   	pop    %edx
5603f7:	59                   	pop    %ecx
5603f8:	e8 5b 78 01 00       	call   0x577c58
5603fd:	8b 54 24 08          	mov    0x8(%esp),%edx
560401:	85 c0                	test   %eax,%eax
560403:	89 42 10             	mov    %eax,0x10(%edx)
560406:	75 08                	jne    0x560410
560408:	83 c8 ff             	or     $0xffffffff,%eax
56040b:	e9 91 0a 00 00       	jmp    0x560ea1
560410:	8b 54 24 08          	mov    0x8(%esp),%edx
560414:	8b 44 24 18          	mov    0x18(%esp),%eax
560418:	0f b7 52 14          	movzwl 0x14(%edx),%edx
56041c:	0f b6 40 08          	movzbl 0x8(%eax),%eax
560420:	4a                   	dec    %edx
560421:	e8 2a df 00 00       	call   0x56e350
560426:	8b 54 24 08          	mov    0x8(%esp),%edx
56042a:	85 c0                	test   %eax,%eax
56042c:	89 42 1c             	mov    %eax,0x1c(%edx)
56042f:	75 08                	jne    0x560439
560431:	83 c8 ff             	or     $0xffffffff,%eax
560434:	e9 68 0a 00 00       	jmp    0x560ea1
560439:	8b 54 24 08          	mov    0x8(%esp),%edx
56043d:	8b 4a 10             	mov    0x10(%edx),%ecx
560440:	8b 41 0c             	mov    0xc(%ecx),%eax
560443:	50                   	push   %eax
560444:	8b 54 24 0c          	mov    0xc(%esp),%edx
560448:	8b 4a 10             	mov    0x10(%edx),%ecx
56044b:	8b 41 10             	mov    0x10(%ecx),%eax
56044e:	50                   	push   %eax
56044f:	8d 94 24 94 00 00 00 	lea    0x94(%esp),%edx
560456:	52                   	push   %edx
560457:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56045b:	8b 54 24 14          	mov    0x14(%esp),%edx
56045f:	8b 41 10             	mov    0x10(%ecx),%eax
560462:	8b 48 08             	mov    0x8(%eax),%ecx
560465:	8b 42 10             	mov    0x10(%edx),%eax
560468:	8b 50 04             	mov    0x4(%eax),%edx
56046b:	8b 44 24 14          	mov    0x14(%esp),%eax
56046f:	8b 40 1c             	mov    0x1c(%eax),%eax
560472:	e8 1d d8 00 00       	call   0x56dc94
560477:	33 d2                	xor    %edx,%edx
560479:	89 54 24 10          	mov    %edx,0x10(%esp)
56047d:	8b 4c 24 08          	mov    0x8(%esp),%ecx
560481:	8b 44 24 18          	mov    0x18(%esp),%eax
560485:	8d 90 d7 00 00 00    	lea    0xd7(%eax),%edx
56048b:	8b 71 18             	mov    0x18(%ecx),%esi