4421e5:	55                   	push   %ebp
4421e6:	8b ec                	mov    %esp,%ebp
4421e8:	83 ec 2c             	sub    $0x2c,%esp
4421eb:	53                   	push   %ebx
4421ec:	56                   	push   %esi
4421ed:	8b d9                	mov    %ecx,%ebx
4421ef:	57                   	push   %edi
4421f0:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4421f3:	e8 ff b5 fc ff       	call   0x40d7f7
4421f8:	8b 75 08             	mov    0x8(%ebp),%esi
4421fb:	ff 73 04             	push   0x4(%ebx)
4421fe:	8b 7e 04             	mov    0x4(%esi),%edi
442201:	8d 4d e8             	lea    -0x18(%ebp),%ecx
442204:	89 7d fc             	mov    %edi,-0x4(%ebp)
442207:	e8 03 49 fc ff       	call   0x406b0f
44220c:	8b 45 10             	mov    0x10(%ebp),%eax
44220f:	85 c0                	test   %eax,%eax
442211:	79 3a                	jns    0x44224d
442213:	68 ff ff ff 7f       	push   $0x7fffffff
442218:	6a ff                	push   $0xffffffff
44221a:	57                   	push   %edi
44221b:	50                   	push   %eax
44221c:	ff 75 14             	push   0x14(%ebp)
44221f:	8b cb                	mov    %ebx,%ecx
442221:	ff 36                	push   (%esi)
442223:	e8 e9 fc ff ff       	call   0x441f11
442228:	8b f0                	mov    %eax,%esi
44222a:	85 f6                	test   %esi,%esi
44222c:	79 08                	jns    0x442236
44222e:	f7 d8                	neg    %eax
442230:	33 ff                	xor    %edi,%edi
442232:	8b f7                	mov    %edi,%esi
442234:	eb 10                	jmp    0x442246
442236:	56                   	push   %esi
442237:	33 ff                	xor    %edi,%edi
442239:	57                   	push   %edi
44223a:	53                   	push   %ebx
44223b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
44223e:	e8 a6 47 fc ff       	call   0x4069e9
442243:	8b 45 10             	mov    0x10(%ebp),%eax
442246:	f7 d8                	neg    %eax
442248:	89 45 10             	mov    %eax,0x10(%ebp)
44224b:	eb 04                	jmp    0x442251
44224d:	33 ff                	xor    %edi,%edi
44224f:	8b f7                	mov    %edi,%esi
442251:	8b 45 08             	mov    0x8(%ebp),%eax
442254:	6a ff                	push   $0xffffffff
442256:	56                   	push   %esi
442257:	ff 75 fc             	push   -0x4(%ebp)
44225a:	8b cb                	mov    %ebx,%ecx
44225c:	6a 01                	push   $0x1
44225e:	ff 75 14             	push   0x14(%ebp)
442261:	89 75 f8             	mov    %esi,-0x8(%ebp)
442264:	ff 30                	push   (%eax)
442266:	e8 a6 fc ff ff       	call   0x441f11
44226b:	8b f0                	mov    %eax,%esi
44226d:	3b 73 04             	cmp    0x4(%ebx),%esi
442270:	74 3f                	je     0x4422b1
442272:	8b 4d f8             	mov    -0x8(%ebp),%ecx
442275:	2b c1                	sub    %ecx,%eax
442277:	50                   	push   %eax
442278:	51                   	push   %ecx
442279:	53                   	push   %ebx
44227a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
44227d:	e8 67 47 fc ff       	call   0x4069e9
442282:	8d 45 d8             	lea    -0x28(%ebp),%eax
442285:	50                   	push   %eax
442286:	8d 4d e8             	lea    -0x18(%ebp),%ecx
442289:	e8 7f 2e fc ff       	call   0x40510d
44228e:	ff 75 0c             	push   0xc(%ebp)
442291:	8d 4d e8             	lea    -0x18(%ebp),%ecx
442294:	e8 74 2e fc ff       	call   0x40510d
442299:	8b 45 10             	mov    0x10(%ebp),%eax
44229c:	03 75 fc             	add    -0x4(%ebp),%esi
44229f:	47                   	inc    %edi
4422a0:	85 c0                	test   %eax,%eax
4422a2:	74 ad                	je     0x442251
4422a4:	3b f8                	cmp    %eax,%edi
4422a6:	75 a9                	jne    0x442251
4422a8:	8b 43 04             	mov    0x4(%ebx),%eax
4422ab:	2b c6                	sub    %esi,%eax
4422ad:	50                   	push   %eax
4422ae:	56                   	push   %esi
4422af:	eb 07                	jmp    0x4422b8
4422b1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4422b4:	2b f0                	sub    %eax,%esi
4422b6:	56                   	push   %esi
4422b7:	50                   	push   %eax
4422b8:	53                   	push   %ebx
4422b9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4422bc:	e8 28 47 fc ff       	call   0x4069e9
4422c1:	8d 45 d8             	lea    -0x28(%ebp),%eax
4422c4:	50                   	push   %eax
4422c5:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4422c8:	e8 40 2e fc ff       	call   0x40510d
4422cd:	85 ff                	test   %edi,%edi
4422cf:	74 0b                	je     0x4422dc
4422d1:	8d 45 e8             	lea    -0x18(%ebp),%eax
4422d4:	50                   	push   %eax
4422d5:	8b cb                	mov    %ebx,%ecx
4422d7:	e8 6b ba fc ff       	call   0x40dd47
4422dc:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4422df:	e8 53 a8 fc ff       	call   0x40cb37
4422e4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4422e7:	e8 4b a8 fc ff       	call   0x40cb37
4422ec:	8b c7                	mov    %edi,%eax
4422ee:	5f                   	pop    %edi
4422ef:	5e                   	pop    %esi
4422f0:	5b                   	pop    %ebx
4422f1:	c9                   	leave
4422f2:	c2 10 00             	ret    $0x10
4422f5:	55                   	push   %ebp
4422f6:	8b ec                	mov    %esp,%ebp
4422f8:	83 ec 18             	sub    $0x18,%esp
4422fb:	53                   	push   %ebx
4422fc:	56                   	push   %esi
4422fd:	57                   	push   %edi
4422fe:	8d 4d e8             	lea    -0x18(%ebp),%ecx
442301:	e8 f1 b4 fc ff       	call   0x40d7f7
442306:	8b 75 0c             	mov    0xc(%ebp),%esi
442309:	8b 7d 08             	mov    0x8(%ebp),%edi
44230c:	8b 06                	mov    (%esi),%eax
44230e:	89 45 f8             	mov    %eax,-0x8(%ebp)
442311:	8d 58 01             	lea    0x1(%eax),%ebx
442314:	89 1e                	mov    %ebx,(%esi)
442316:	3b 5f 04             	cmp    0x4(%edi),%ebx
442319:	0f 8d a2 00 00 00    	jge    0x4423c1
44231f:	33 c0                	xor    %eax,%eax
442321:	89 45 0c             	mov    %eax,0xc(%ebp)
442324:	38 45 10             	cmp    %al,0x10(%ebp)
442327:	74 1b                	je     0x442344
442329:	53                   	push   %ebx
44232a:	8b cf                	mov    %edi,%ecx
44232c:	e8 55 fd fb ff       	call   0x402086
442331:	66 83 38 7b          	cmpw   $0x7b,(%eax)
442335:	75 0b                	jne    0x442342
442337:	8d 43 01             	lea    0x1(%ebx),%eax
44233a:	c6 45 13 01          	movb   $0x1,0x13(%ebp)
44233e:	89 06                	mov    %eax,(%esi)
442340:	eb 05                	jmp    0x442347
442342:	33 c0                	xor    %eax,%eax
442344:	88 45 13             	mov    %al,0x13(%ebp)
442347:	8d 4d e8             	lea    -0x18(%ebp),%ecx
44234a:	e8 7f 99 fc ff       	call   0x40bcce
44234f:	eb 36                	jmp    0x442387
442351:	ff 36                	push   (%esi)
442353:	8b cf                	mov    %edi,%ecx
442355:	e8 2c fd fb ff       	call   0x402086
44235a:	0f b7 00             	movzwl (%eax),%eax
44235d:	50                   	push   %eax
44235e:	e8 c2 f9 fd ff       	call   0x421d25
442363:	59                   	pop    %ecx
442364:	85 c0                	test   %eax,%eax
442366:	74 26                	je     0x44238e
442368:	8b 0e                	mov    (%esi),%ecx
44236a:	51                   	push   %ecx
44236b:	8d 41 01             	lea    0x1(%ecx),%eax
44236e:	8b cf                	mov    %edi,%ecx
442370:	c6 45 0c 01          	movb   $0x1,0xc(%ebp)
442374:	89 06                	mov    %eax,(%esi)
442376:	e8 0b fd fb ff       	call   0x402086
44237b:	0f b7 00             	movzwl (%eax),%eax
44237e:	50                   	push   %eax
44237f:	8d 4d e8             	lea    -0x18(%ebp),%ecx
442382:	e8 12 a4 fc ff       	call   0x40c799
442387:	8b 06                	mov    (%esi),%eax
442389:	3b 47 04             	cmp    0x4(%edi),%eax
44238c:	7c c3                	jl     0x442351
44238e:	ff 75 e8             	push   -0x18(%ebp)
442391:	e8 8b f2 fd ff       	call   0x421621
442396:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
44239a:	59                   	pop    %ecx
44239b:	8b d8                	mov    %eax,%ebx
44239d:	74 1f                	je     0x4423be
44239f:	80 7d 13 00          	cmpb   $0x0,0x13(%ebp)
4423a3:	74 21                	je     0x4423c6
4423a5:	8b 06                	mov    (%esi),%eax
4423a7:	3b 47 04             	cmp    0x4(%edi),%eax
4423aa:	74 12                	je     0x4423be
4423ac:	50                   	push   %eax
4423ad:	8b cf                	mov    %edi,%ecx
4423af:	e8 d2 fc fb ff       	call   0x402086
4423b4:	66 83 38 7d          	cmpw   $0x7d,(%eax)
4423b8:	75 04                	jne    0x4423be
4423ba:	ff 06                	incl   (%esi)
4423bc:	eb 08                	jmp    0x4423c6
4423be:	8b 45 f8             	mov    -0x8(%ebp),%eax
4423c1:	83 cb ff             	or     $0xffffffff,%ebx
4423c4:	89 06                	mov    %eax,(%esi)
4423c6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4423c9:	e8 69 a7 fc ff       	call   0x40cb37
4423ce:	5f                   	pop    %edi
4423cf:	5e                   	pop    %esi
4423d0:	8b c3                	mov    %ebx,%eax
4423d2:	5b                   	pop    %ebx
4423d3:	c9                   	leave
4423d4:	c2 0c 00             	ret    $0xc
4423d7:	55                   	push   %ebp
4423d8:	8b ec                	mov    %esp,%ebp
4423da:	56                   	push   %esi
4423db:	8b f1                	mov    %ecx,%esi
4423dd:	e8 70 1c fc ff       	call   0x404052
4423e2:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4423e6:	74 07                	je     0x4423ef
4423e8:	56                   	push   %esi
4423e9:	e8 70 d1 fd ff       	call   0x41f55e
4423ee:	59                   	pop    %ecx
4423ef:	8b c6                	mov    %esi,%eax
4423f1:	5e                   	pop    %esi
4423f2:	5d                   	pop    %ebp
4423f3:	c2 04 00             	ret    $0x4
4423f6:	56                   	push   %esi
4423f7:	8b f1                	mov    %ecx,%esi
4423f9:	e8 f7 b4 fd ff       	call   0x41d8f5
4423fe:	56                   	push   %esi
4423ff:	e8 5a d1 fd ff       	call   0x41f55e
442404:	59                   	pop    %ecx
442405:	8b c6                	mov    %esi,%eax
442407:	5e                   	pop    %esi
442408:	c2 04 00             	ret    $0x4
44240b:	55                   	push   %ebp
44240c:	8b ec                	mov    %esp,%ebp
44240e:	57                   	push   %edi
44240f:	8b f9                	mov    %ecx,%edi
442411:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
442415:	74 56                	je     0x44246d
442417:	8b 47 0c             	mov    0xc(%edi),%eax
44241a:	56                   	push   %esi
44241b:	ff 30                	push   (%eax)
44241d:	e8 b9 e8 fd ff       	call   0x420cdb
442422:	ff 75 08             	push   0x8(%ebp)
442425:	8d 70 01             	lea    0x1(%eax),%esi
442428:	e8 ae e8 fd ff       	call   0x420cdb
44242d:	33 c9                	xor    %ecx,%ecx
44242f:	6a 02                	push   $0x2
442431:	8d 04 06             	lea    (%esi,%eax,1),%eax
442434:	5a                   	pop    %edx
442435:	f7 e2                	mul    %edx
442437:	0f 90 c1             	seto   %cl
44243a:	f7 d9                	neg    %ecx
44243c:	0b c8                	or     %eax,%ecx
44243e:	51                   	push   %ecx
44243f:	e8 a6 d0 fd ff       	call   0x41f4ea
442444:	8b 4f 0c             	mov    0xc(%edi),%ecx
442447:	8b f0                	mov    %eax,%esi
442449:	ff 31                	push   (%ecx)
44244b:	56                   	push   %esi
44244c:	e8 d2 e8 fd ff       	call   0x420d23
442451:	ff 75 08             	push   0x8(%ebp)
442454:	56                   	push   %esi
442455:	e8 9a e8 fd ff       	call   0x420cf4
44245a:	8b 47 0c             	mov    0xc(%edi),%eax
44245d:	ff 30                	push   (%eax)
44245f:	e8 fa d0 fd ff       	call   0x41f55e
442464:	8b 47 0c             	mov    0xc(%edi),%eax
442467:	83 c4 20             	add    $0x20,%esp
44246a:	89 30                	mov    %esi,(%eax)
44246c:	5e                   	pop    %esi
44246d:	5f                   	pop    %edi
44246e:	5d                   	pop    %ebp
44246f:	c2 04 00             	ret    $0x4
442472:	55                   	push   %ebp
442473:	8b ec                	mov    %esp,%ebp
442475:	53                   	push   %ebx
442476:	56                   	push   %esi
442477:	8b 75 08             	mov    0x8(%ebp),%esi
44247a:	57                   	push   %edi
44247b:	6a 0b                	push   $0xb
44247d:	68 e8 dc 49 00       	push   $0x49dce8
442482:	56                   	push   %esi
442483:	8b f9                	mov    %ecx,%edi
442485:	e8 d1 f3 fd ff       	call   0x42185b
44248a:	83 c4 0c             	add    $0xc,%esp
44248d:	85 c0                	test   %eax,%eax
44248f:	75 0d                	jne    0x44249e
442491:	c6 07 01             	movb   $0x1,(%edi)
442494:	33 c0                	xor    %eax,%eax
442496:	40                   	inc    %eax
442497:	5f                   	pop    %edi
442498:	5e                   	pop    %esi
442499:	5b                   	pop    %ebx
44249a:	5d                   	pop    %ebp
44249b:	c2 04 00             	ret    $0x4
44249e:	6a 0d                	push   $0xd
4424a0:	68 00 dd 49 00       	push   $0x49dd00
4424a5:	56                   	push   %esi
4424a6:	e8 b0 f3 fd ff       	call   0x42185b
4424ab:	83 c4 0c             	add    $0xc,%esp
4424ae:	85 c0                	test   %eax,%eax
4424b0:	75 06                	jne    0x4424b8
4424b2:	c6 47 01 01          	movb   $0x1,0x1(%edi)
4424b6:	eb dc                	jmp    0x442494
4424b8:	6a 16                	push   $0x16
4424ba:	68 1c dd 49 00       	push   $0x49dd1c
4424bf:	56                   	push   %esi
4424c0:	e8 96 f3 fd ff       	call   0x42185b
4424c5:	83 c4 0c             	add    $0xc,%esp
4424c8:	85 c0                	test   %eax,%eax
4424ca:	75 c8                	jne    0x442494
4424cc:	8d 4e 2c             	lea    0x2c(%esi),%ecx
4424cf:	e8 20 a2 fd ff       	call   0x41c6f4
4424d4:	8b f0                	mov    %eax,%esi
4424d6:	56                   	push   %esi
4424d7:	e8 7c 9d fd ff       	call   0x41c258
4424dc:	56                   	push   %esi
4424dd:	e8 78 a6 fc ff       	call   0x40cb5a
4424e2:	56                   	push   %esi
4424e3:	e8 f3 e7 fd ff       	call   0x420cdb
4424e8:	59                   	pop    %ecx
4424e9:	0f b7 4c 46 fe       	movzwl -0x2(%esi,%eax,2),%ecx
4424ee:	6a 22                	push   $0x22
4424f0:	5b                   	pop    %ebx
4424f1:	66 3b cb             	cmp    %bx,%cx
4424f4:	74 24                	je     0x44251a
4424f6:	6a 27                	push   $0x27
4424f8:	5a                   	pop    %edx
4424f9:	66 3b ca             	cmp    %dx,%cx
4424fc:	74 1c                	je     0x44251a
4424fe:	0f b7 06             	movzwl (%esi),%eax
442501:	66 3b c3             	cmp    %bx,%ax
442504:	74 10                	je     0x442516
442506:	66 3b c2             	cmp    %dx,%ax
442509:	74 0b                	je     0x442516
44250b:	8b 4f 04             	mov    0x4(%edi),%ecx
44250e:	56                   	push   %esi
44250f:	8b 01                	mov    (%ecx),%eax
442511:	ff 50 08             	call   *0x8(%eax)
442514:	eb 2a                	jmp    0x442540
442516:	33 ff                	xor    %edi,%edi
442518:	eb 29                	jmp    0x442543
44251a:	66 39 0e             	cmp    %cx,(%esi)
44251d:	74 0e                	je     0x44252d
44251f:	56                   	push   %esi
442520:	e8 39 d0 fd ff       	call   0x41f55e
442525:	59                   	pop    %ecx
442526:	33 c0                	xor    %eax,%eax
442528:	e9 6a ff ff ff       	jmp    0x442497
44252d:	33 c9                	xor    %ecx,%ecx
44252f:	66 89 4c 46 fe       	mov    %cx,-0x2(%esi,%eax,2)
442534:	8b 4f 04             	mov    0x4(%edi),%ecx
442537:	8d 46 02             	lea    0x2(%esi),%eax
44253a:	8b 11                	mov    (%ecx),%edx
44253c:	50                   	push   %eax
44253d:	ff 52 08             	call   *0x8(%edx)
442540:	33 ff                	xor    %edi,%edi
442542:	47                   	inc    %edi
442543:	56                   	push   %esi
442544:	e8 15 d0 fd ff       	call   0x41f55e
442549:	59                   	pop    %ecx
44254a:	8b c7                	mov    %edi,%eax