5831f7:	ff 36                	push   (%esi)
5831f9:	ff 76 0c             	push   0xc(%esi)
5831fc:	ff 76 08             	push   0x8(%esi)
5831ff:	8b d7                	mov    %edi,%edx
583201:	8b c3                	mov    %ebx,%eax
583203:	e8 10 ff ff ff       	call   0x583118
583208:	85 c0                	test   %eax,%eax
58320a:	75 04                	jne    0x583210
58320c:	33 c0                	xor    %eax,%eax
58320e:	eb 3d                	jmp    0x58324d
583210:	ff 76 1c             	push   0x1c(%esi)
583213:	ff 76 18             	push   0x18(%esi)
583216:	ff 76 24             	push   0x24(%esi)
583219:	ff 76 20             	push   0x20(%esi)
58321c:	8b d7                	mov    %edi,%edx
58321e:	8b c3                	mov    %ebx,%eax
583220:	e8 f3 fe ff ff       	call   0x583118
583225:	85 c0                	test   %eax,%eax
583227:	75 04                	jne    0x58322d
583229:	33 c0                	xor    %eax,%eax
58322b:	eb 20                	jmp    0x58324d
58322d:	ff 76 34             	push   0x34(%esi)
583230:	ff 76 30             	push   0x30(%esi)
583233:	ff 76 3c             	push   0x3c(%esi)
583236:	ff 76 38             	push   0x38(%esi)
583239:	8b d7                	mov    %edi,%edx
58323b:	8b c3                	mov    %ebx,%eax
58323d:	e8 d6 fe ff ff       	call   0x583118
583242:	85 c0                	test   %eax,%eax
583244:	75 04                	jne    0x58324a
583246:	33 c0                	xor    %eax,%eax
583248:	eb 03                	jmp    0x58324d
58324a:	83 c8 ff             	or     $0xffffffff,%eax
58324d:	5a                   	pop    %edx
58324e:	5f                   	pop    %edi
58324f:	5e                   	pop    %esi
583250:	5b                   	pop    %ebx
583251:	c3                   	ret
583252:	8b c0                	mov    %eax,%eax
583254:	53                   	push   %ebx
583255:	56                   	push   %esi
583256:	57                   	push   %edi
583257:	55                   	push   %ebp
583258:	83 c4 c0             	add    $0xffffffc0,%esp
58325b:	89 0c 24             	mov    %ecx,(%esp)
58325e:	8b f2                	mov    %edx,%esi
583260:	8b f8                	mov    %eax,%edi
583262:	8d 5c 24 10          	lea    0x10(%esp),%ebx
583266:	8b 06                	mov    (%esi),%eax
583268:	a8 02                	test   $0x2,%al
58326a:	74 10                	je     0x58327c
58326c:	81 7e 30 00 01 00 00 	cmpl   $0x100,0x30(%esi)
583273:	74 07                	je     0x58327c
583275:	33 c0                	xor    %eax,%eax
583277:	e9 bf 02 00 00       	jmp    0x58353b
58327c:	a8 08                	test   $0x8,%al
58327e:	74 10                	je     0x583290
583280:	81 7e 34 00 01 00 00 	cmpl   $0x100,0x34(%esi)
583287:	74 07                	je     0x583290
583289:	33 c0                	xor    %eax,%eax
58328b:	e9 ab 02 00 00       	jmp    0x58353b
583290:	8b 0c 24             	mov    (%esp),%ecx
583293:	ba 31 74 66 6d       	mov    $0x6d667431,%edx
583298:	8b c7                	mov    %edi,%eax
58329a:	e8 29 fc ff ff       	call   0x582ec8
58329f:	85 c0                	test   %eax,%eax
5832a1:	75 07                	jne    0x5832aa
5832a3:	33 c0                	xor    %eax,%eax
5832a5:	e9 91 02 00 00       	jmp    0x58353b
5832aa:	8a 46 38             	mov    0x38(%esi),%al
5832ad:	88 43 02             	mov    %al,0x2(%ebx)
5832b0:	8a 46 28             	mov    0x28(%esi),%al
5832b3:	88 03                	mov    %al,(%ebx)
5832b5:	8a 46 2c             	mov    0x2c(%esi),%al
5832b8:	88 43 01             	mov    %al,0x1(%ebx)
5832bb:	f6 06 01             	testb  $0x1,(%esi)
5832be:	74 68                	je     0x583328
5832c0:	8b 46 04             	mov    0x4(%esi),%eax
5832c3:	e8 24 f9 ff ff       	call   0x582bec
5832c8:	89 43 04             	mov    %eax,0x4(%ebx)
5832cb:	8b 46 08             	mov    0x8(%esi),%eax
5832ce:	e8 19 f9 ff ff       	call   0x582bec
5832d3:	89 43 08             	mov    %eax,0x8(%ebx)
5832d6:	8b 46 0c             	mov    0xc(%esi),%eax
5832d9:	e8 0e f9 ff ff       	call   0x582bec
5832de:	89 43 0c             	mov    %eax,0xc(%ebx)
5832e1:	8b 46 10             	mov    0x10(%esi),%eax
5832e4:	e8 03 f9 ff ff       	call   0x582bec
5832e9:	89 43 10             	mov    %eax,0x10(%ebx)
5832ec:	8b 46 14             	mov    0x14(%esi),%eax
5832ef:	e8 f8 f8 ff ff       	call   0x582bec
5832f4:	89 43 14             	mov    %eax,0x14(%ebx)
5832f7:	8b 46 18             	mov    0x18(%esi),%eax
5832fa:	e8 ed f8 ff ff       	call   0x582bec
5832ff:	89 43 18             	mov    %eax,0x18(%ebx)
583302:	8b 46 1c             	mov    0x1c(%esi),%eax
583305:	e8 e2 f8 ff ff       	call   0x582bec
58330a:	89 43 1c             	mov    %eax,0x1c(%ebx)
58330d:	8b 46 20             	mov    0x20(%esi),%eax
583310:	e8 d7 f8 ff ff       	call   0x582bec
583315:	89 43 20             	mov    %eax,0x20(%ebx)
583318:	8b 46 24             	mov    0x24(%esi),%eax
58331b:	e8 cc f8 ff ff       	call   0x582bec
583320:	89 43 24             	mov    %eax,0x24(%ebx)
583323:	e9 a2 00 00 00       	jmp    0x5833ca
583328:	68 00 00 f0 3f       	push   $0x3ff00000
58332d:	6a 00                	push   $0x0
58332f:	e8 74 83 ff ff       	call   0x57b6a8
583334:	e8 b3 f8 ff ff       	call   0x582bec
583339:	89 43 04             	mov    %eax,0x4(%ebx)
58333c:	6a 00                	push   $0x0
58333e:	6a 00                	push   $0x0
583340:	e8 63 83 ff ff       	call   0x57b6a8
583345:	e8 a2 f8 ff ff       	call   0x582bec
58334a:	89 43 08             	mov    %eax,0x8(%ebx)
58334d:	6a 00                	push   $0x0
58334f:	6a 00                	push   $0x0
583351:	e8 52 83 ff ff       	call   0x57b6a8
583356:	e8 91 f8 ff ff       	call   0x582bec
58335b:	89 43 0c             	mov    %eax,0xc(%ebx)
58335e:	6a 00                	push   $0x0
583360:	6a 00                	push   $0x0
583362:	e8 41 83 ff ff       	call   0x57b6a8
583367:	e8 80 f8 ff ff       	call   0x582bec
58336c:	89 43 10             	mov    %eax,0x10(%ebx)
58336f:	68 00 00 f0 3f       	push   $0x3ff00000
583374:	6a 00                	push   $0x0
583376:	e8 2d 83 ff ff       	call   0x57b6a8
58337b:	e8 6c f8 ff ff       	call   0x582bec
583380:	89 43 14             	mov    %eax,0x14(%ebx)
583383:	6a 00                	push   $0x0
583385:	6a 00                	push   $0x0
583387:	e8 1c 83 ff ff       	call   0x57b6a8
58338c:	e8 5b f8 ff ff       	call   0x582bec
583391:	89 43 18             	mov    %eax,0x18(%ebx)
583394:	6a 00                	push   $0x0
583396:	6a 00                	push   $0x0
583398:	e8 0b 83 ff ff       	call   0x57b6a8
58339d:	e8 4a f8 ff ff       	call   0x582bec
5833a2:	89 43 1c             	mov    %eax,0x1c(%ebx)
5833a5:	6a 00                	push   $0x0
5833a7:	6a 00                	push   $0x0
5833a9:	e8 fa 82 ff ff       	call   0x57b6a8
5833ae:	e8 39 f8 ff ff       	call   0x582bec
5833b3:	89 43 20             	mov    %eax,0x20(%ebx)
5833b6:	68 00 00 f0 3f       	push   $0x3ff00000
5833bb:	6a 00                	push   $0x0
5833bd:	e8 e6 82 ff ff       	call   0x57b6a8
5833c2:	e8 25 f8 ff ff       	call   0x582bec
5833c7:	89 43 24             	mov    %eax,0x24(%ebx)
5833ca:	e8 5d c2 ff ff       	call   0x57f62c
5833cf:	ba 29 00 00 00       	mov    $0x29,%edx
5833d4:	2b d0                	sub    %eax,%edx
5833d6:	8b cb                	mov    %ebx,%ecx
5833d8:	8b 1c 24             	mov    (%esp),%ebx
5833db:	8b c7                	mov    %edi,%eax
5833dd:	ff 93 fc 03 00 00    	call   *0x3fc(%ebx)
5833e3:	8b 46 28             	mov    0x28(%esi),%eax
5833e6:	48                   	dec    %eax
5833e7:	85 c0                	test   %eax,%eax
5833e9:	7c 71                	jl     0x58345c
5833eb:	40                   	inc    %eax
5833ec:	89 44 24 0c          	mov    %eax,0xc(%esp)
5833f0:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
5833f7:	00
5833f8:	33 db                	xor    %ebx,%ebx
5833fa:	f6 06 02             	testb  $0x2,(%esi)
5833fd:	74 32                	je     0x583431
5833ff:	8b 44 24 04          	mov    0x4(%esp),%eax
583403:	8b 44 86 3c          	mov    0x3c(%esi,%eax,4),%eax
583407:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
58340b:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58340f:	db 44 24 3c          	fildl  0x3c(%esp)
583413:	d8 35 44 35 58 00    	fdivs  0x583544
583419:	d8 05 48 35 58 00    	fadds  0x583548
58341f:	83 c4 f4             	add    $0xfffffff4,%esp
583422:	db 3c 24             	fstpt  (%esp)
583425:	9b                   	fwait
583426:	e8 d5 f2 06 00       	call   0x5f2700
58342b:	88 44 24 08          	mov    %al,0x8(%esp)
58342f:	eb 04                	jmp    0x583435
583431:	88 5c 24 08          	mov    %bl,0x8(%esp)
583435:	8d 4c 24 08          	lea    0x8(%esp),%ecx
583439:	8b 2c 24             	mov    (%esp),%ebp
58343c:	ba 01 00 00 00       	mov    $0x1,%edx
583441:	8b c7                	mov    %edi,%eax
583443:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
583449:	43                   	inc    %ebx
58344a:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
583450:	75 a8                	jne    0x5833fa
583452:	ff 44 24 04          	incl   0x4(%esp)
583456:	ff 4c 24 0c          	decl   0xc(%esp)
58345a:	75 9c                	jne    0x5833f8
58345c:	8b 56 28             	mov    0x28(%esi),%edx
58345f:	8b 46 38             	mov    0x38(%esi),%eax
583462:	e8 d1 c3 ff ff       	call   0x57f838
583467:	f7 6e 2c             	imull  0x2c(%esi)
58346a:	48                   	dec    %eax
58346b:	85 c0                	test   %eax,%eax
58346d:	7c 50                	jl     0x5834bf
58346f:	40                   	inc    %eax
583470:	89 44 24 0c          	mov    %eax,0xc(%esp)
583474:	33 db                	xor    %ebx,%ebx
583476:	8b 86 bc 00 00 00    	mov    0xbc(%esi),%eax
58347c:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
583480:	89 44 24 3c          	mov    %eax,0x3c(%esp)
583484:	db 44 24 3c          	fildl  0x3c(%esp)
583488:	d8 35 44 35 58 00    	fdivs  0x583544
58348e:	d8 05 48 35 58 00    	fadds  0x583548
583494:	83 c4 f4             	add    $0xfffffff4,%esp
583497:	db 3c 24             	fstpt  (%esp)
58349a:	9b                   	fwait
58349b:	e8 60 f2 06 00       	call   0x5f2700
5834a0:	88 44 24 08          	mov    %al,0x8(%esp)
5834a4:	8d 4c 24 08          	lea    0x8(%esp),%ecx
5834a8:	8b 2c 24             	mov    (%esp),%ebp
5834ab:	ba 01 00 00 00       	mov    $0x1,%edx
5834b0:	8b c7                	mov    %edi,%eax
5834b2:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
5834b8:	43                   	inc    %ebx
5834b9:	ff 4c 24 0c          	decl   0xc(%esp)
5834bd:	75 b7                	jne    0x583476
5834bf:	8b 46 2c             	mov    0x2c(%esi),%eax
5834c2:	48                   	dec    %eax
5834c3:	85 c0                	test   %eax,%eax
5834c5:	7c 71                	jl     0x583538
5834c7:	40                   	inc    %eax
5834c8:	89 44 24 0c          	mov    %eax,0xc(%esp)
5834cc:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
5834d3:	00
5834d4:	33 db                	xor    %ebx,%ebx
5834d6:	f6 06 08             	testb  $0x8,(%esi)
5834d9:	74 32                	je     0x58350d
5834db:	8b 44 24 04          	mov    0x4(%esp),%eax
5834df:	8b 44 86 7c          	mov    0x7c(%esi,%eax,4),%eax
5834e3:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
5834e7:	89 44 24 3c          	mov    %eax,0x3c(%esp)
5834eb:	db 44 24 3c          	fildl  0x3c(%esp)
5834ef:	d8 35 44 35 58 00    	fdivs  0x583544
5834f5:	d8 05 48 35 58 00    	fadds  0x583548
5834fb:	83 c4 f4             	add    $0xfffffff4,%esp
5834fe:	db 3c 24             	fstpt  (%esp)
583501:	9b                   	fwait
583502:	e8 f9 f1 06 00       	call   0x5f2700
583507:	88 44 24 08          	mov    %al,0x8(%esp)
58350b:	eb 04                	jmp    0x583511
58350d:	88 5c 24 08          	mov    %bl,0x8(%esp)
583511:	8d 4c 24 08          	lea    0x8(%esp),%ecx
583515:	8b 2c 24             	mov    (%esp),%ebp
583518:	ba 01 00 00 00       	mov    $0x1,%edx
58351d:	8b c7                	mov    %edi,%eax
58351f:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
583525:	43                   	inc    %ebx
583526:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
58352c:	75 a8                	jne    0x5834d6
58352e:	ff 44 24 04          	incl   0x4(%esp)
583532:	ff 4c 24 0c          	decl   0xc(%esp)
583536:	75 9c                	jne    0x5834d4
583538:	83 c8 ff             	or     $0xffffffff,%eax
58353b:	83 c4 40             	add    $0x40,%esp
58353e:	5d                   	pop    %ebp
58353f:	5f                   	pop    %edi
583540:	5e                   	pop    %esi
583541:	5b                   	pop    %ebx
583542:	c3                   	ret
583543:	00 00                	add    %al,(%eax)
583545:	80 80 43 00 00 00 3f 	addb   $0x3f,0x43(%eax)
58354c:	55                   	push   %ebp
58354d:	8b ec                	mov    %esp,%ebp
58354f:	83 c4 f8             	add    $0xfffffff8,%esp
583552:	53                   	push   %ebx
583553:	56                   	push   %esi
583554:	57                   	push   %edi
583555:	89 4d f8             	mov    %ecx,-0x8(%ebp)
583558:	8b fa                	mov    %edx,%edi
58355a:	89 45 fc             	mov    %eax,-0x4(%ebp)
58355d:	8b f7                	mov    %edi,%esi
58355f:	03 f6                	add    %esi,%esi
583561:	8b c6                	mov    %esi,%eax
583563:	e8 44 f2 e7 ff       	call   0x4027ac
583568:	8b d8                	mov    %eax,%ebx
58356a:	85 db                	test   %ebx,%ebx
58356c:	75 04                	jne    0x583572
58356e:	33 c0                	xor    %eax,%eax
583570:	eb 2f                	jmp    0x5835a1
583572:	8b ce                	mov    %esi,%ecx
583574:	8b 55 f8             	mov    -0x8(%ebp),%edx
583577:	8b c3                	mov    %ebx,%eax
583579:	e8 42 49 e8 ff       	call   0x407ec0
58357e:	8b d7                	mov    %edi,%edx
583580:	8b c3                	mov    %ebx,%eax
583582:	e8 f1 d6 ff ff       	call   0x580c78
583587:	8b 7d 08             	mov    0x8(%ebp),%edi
58358a:	8b cb                	mov    %ebx,%ecx
58358c:	8b d6                	mov    %esi,%edx
58358e:	8b 45 fc             	mov    -0x4(%ebp),%eax
583591:	ff 97 fc 03 00 00    	call   *0x3fc(%edi)
583597:	8b c3                	mov    %ebx,%eax
583599:	e8 2e f2 e7 ff       	call   0x4027cc
58359e:	83 c8 ff             	or     $0xffffffff,%eax
5835a1:	5f                   	pop    %edi
5835a2:	5e                   	pop    %esi
5835a3:	5b                   	pop    %ebx
5835a4:	59                   	pop    %ecx
5835a5:	59                   	pop    %ecx
5835a6:	5d                   	pop    %ebp
5835a7:	c2 04 00             	ret    $0x4
5835aa:	8b c0                	mov    %eax,%eax
5835ac:	53                   	push   %ebx
5835ad:	56                   	push   %esi
5835ae:	57                   	push   %edi
5835af:	55                   	push   %ebp
5835b0:	83 c4 c8             	add    $0xffffffc8,%esp
5835b3:	89 4c 24 04          	mov    %ecx,0x4(%esp)
5835b7:	8b da                	mov    %edx,%ebx
5835b9:	89 04 24             	mov    %eax,(%esp)
5835bc:	8d 74 24 08          	lea    0x8(%esp),%esi
5835c0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5835c4:	ba 32 74 66 6d       	mov    $0x6d667432,%edx
5835c9:	8b 04 24             	mov    (%esp),%eax
5835cc:	e8 f7 f8 ff ff       	call   0x582ec8
5835d1:	85 c0                	test   %eax,%eax
5835d3:	75 07                	jne    0x5835dc
5835d5:	33 c0                	xor    %eax,%eax
5835d7:	e9 42 02 00 00       	jmp    0x58381e
5835dc:	8a 43 38             	mov    0x38(%ebx),%al
5835df:	88 46 02             	mov    %al,0x2(%esi)
5835e2:	8a 43 28             	mov    0x28(%ebx),%al
5835e5:	88 06                	mov    %al,(%esi)
5835e7:	8a 43 2c             	mov    0x2c(%ebx),%al
5835ea:	88 46 01             	mov    %al,0x1(%esi)
5835ed:	f6 03 02             	testb  $0x2,(%ebx)
5835f0:	74 0f                	je     0x583601
5835f2:	66 8b 43 30          	mov    0x30(%ebx),%ax
5835f6:	e8 01 f6 ff ff       	call   0x582bfc
5835fb:	66 89 46 28          	mov    %ax,0x28(%esi)
5835ff:	eb 0d                	jmp    0x58360e
583601:	66 b8 02 00          	mov    $0x2,%ax
583605:	e8 f2 f5 ff ff       	call   0x582bfc
58360a:	66 89 46 28          	mov    %ax,0x28(%esi)
58360e:	f6 03 08             	testb  $0x8,(%ebx)
583611:	74 0f                	je     0x583622
583613:	66 8b 43 34          	mov    0x34(%ebx),%ax
583617:	e8 e0 f5 ff ff       	call   0x582bfc
58361c:	66 89 46 2a          	mov    %ax,0x2a(%esi)
583620:	eb 0d                	jmp    0x58362f
583622:	66 b8 02 00          	mov    $0x2,%ax
583626:	e8 d1 f5 ff ff       	call   0x582bfc
58362b:	66 89 46 2a          	mov    %ax,0x2a(%esi)
58362f:	f6 03 01             	testb  $0x1,(%ebx)