403377:	75 03                	jne    0x40337c
403379:	8d 72 02             	lea    0x2(%edx),%esi
40337c:	83 c2 02             	add    $0x2,%edx
40337f:	0f b7 02             	movzwl (%edx),%eax
403382:	66 85 c0             	test   %ax,%ax
403385:	75 d3                	jne    0x40335a
403387:	5f                   	pop    %edi
403388:	8b c6                	mov    %esi,%eax
40338a:	5e                   	pop    %esi
40338b:	5d                   	pop    %ebp
40338c:	c2 04 00             	ret    $0x4
40338f:	55                   	push   %ebp
403390:	8b ec                	mov    %esp,%ebp
403392:	51                   	push   %ecx
403393:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403397:	8d 45 fc             	lea    -0x4(%ebp),%eax
40339a:	56                   	push   %esi
40339b:	8b 75 08             	mov    0x8(%ebp),%esi
40339e:	50                   	push   %eax
40339f:	ff 75 0c             	push   0xc(%ebp)
4033a2:	56                   	push   %esi
4033a3:	e8 af e8 ff ff       	call   0x401c57
4033a8:	85 c0                	test   %eax,%eax
4033aa:	78 24                	js     0x4033d0
4033ac:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4033af:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
4033b2:	72 07                	jb     0x4033bb
4033b4:	b8 7a 00 07 80       	mov    $0x8007007a,%eax
4033b9:	eb 15                	jmp    0x4033d0
4033bb:	6a 5c                	push   $0x5c
4033bd:	5a                   	pop    %edx
4033be:	66 3b 54 4e fe       	cmp    -0x2(%esi,%ecx,2),%dx
4033c3:	74 0b                	je     0x4033d0
4033c5:	66 89 14 4e          	mov    %dx,(%esi,%ecx,2)
4033c9:	33 d2                	xor    %edx,%edx
4033cb:	66 89 54 4e 02       	mov    %dx,0x2(%esi,%ecx,2)
4033d0:	5e                   	pop    %esi
4033d1:	8b e5                	mov    %ebp,%esp
4033d3:	5d                   	pop    %ebp
4033d4:	c2 08 00             	ret    $0x8
4033d7:	55                   	push   %ebp
4033d8:	8b ec                	mov    %esp,%ebp
4033da:	53                   	push   %ebx
4033db:	8b 5d 08             	mov    0x8(%ebp),%ebx
4033de:	56                   	push   %esi
4033df:	57                   	push   %edi
4033e0:	bf 04 01 00 00       	mov    $0x104,%edi
4033e5:	57                   	push   %edi
4033e6:	53                   	push   %ebx
4033e7:	e8 f2 ea ff ff       	call   0x401ede
4033ec:	8b f0                	mov    %eax,%esi
4033ee:	85 f6                	test   %esi,%esi
4033f0:	78 4b                	js     0x40343d
4033f2:	57                   	push   %edi
4033f3:	ff 33                	push   (%ebx)
4033f5:	ff 75 0c             	push   0xc(%ebp)
4033f8:	ff 15 10 b1 44 00    	call   *0x44b110
4033fe:	85 c0                	test   %eax,%eax
403400:	74 0d                	je     0x40340f
403402:	3b c7                	cmp    %edi,%eax
403404:	75 05                	jne    0x40340b
403406:	8d 78 01             	lea    0x1(%eax),%edi
403409:	eb da                	jmp    0x4033e5
40340b:	33 f6                	xor    %esi,%esi
40340d:	eb 2e                	jmp    0x40343d
40340f:	ff 15 e8 b0 44 00    	call   *0x44b0e8
403415:	0f b7 f0             	movzwl %ax,%esi
403418:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40341e:	85 c0                	test   %eax,%eax
403420:	0f 4e f0             	cmovle %eax,%esi
403423:	b8 05 40 00 80       	mov    $0x80004005,%eax
403428:	85 f6                	test   %esi,%esi
40342a:	0f 49 f0             	cmovns %eax,%esi
40342d:	56                   	push   %esi
40342e:	68 d4 01 00 00       	push   $0x1d4
403433:	68 64 b7 44 00       	push   $0x44b764
403438:	e8 96 03 00 00       	call   0x4037d3
40343d:	5f                   	pop    %edi
40343e:	8b c6                	mov    %esi,%eax
403440:	5e                   	pop    %esi
403441:	5b                   	pop    %ebx
403442:	5d                   	pop    %ebp
403443:	c2 08 00             	ret    $0x8
403446:	55                   	push   %ebp
403447:	8b ec                	mov    %esp,%ebp
403449:	8b 55 08             	mov    0x8(%ebp),%edx
40344c:	83 c9 ff             	or     $0xffffffff,%ecx
40344f:	56                   	push   %esi
403450:	57                   	push   %edi
403451:	8b f2                	mov    %edx,%esi
403453:	0f b7 3a             	movzwl (%edx),%edi
403456:	66 85 ff             	test   %di,%di
403459:	74 61                	je     0x4034bc
40345b:	53                   	push   %ebx
40345c:	8b c7                	mov    %edi,%eax
40345e:	33 db                	xor    %ebx,%ebx
403460:	c7 45 08 5c 00 00 00 	movl   $0x5c,0x8(%ebp)
403467:	66 39 45 08          	cmp    %ax,0x8(%ebp)
40346b:	74 21                	je     0x40348e
40346d:	c7 45 08 2f 00 00 00 	movl   $0x2f,0x8(%ebp)
403474:	66 39 45 08          	cmp    %ax,0x8(%ebp)
403478:	74 14                	je     0x40348e
40347a:	c7 45 08 3a 00 00 00 	movl   $0x3a,0x8(%ebp)
403481:	66 39 45 08          	cmp    %ax,0x8(%ebp)
403485:	75 0c                	jne    0x403493
403487:	8d 42 02             	lea    0x2(%edx),%eax
40348a:	3b f0                	cmp    %eax,%esi
40348c:	75 05                	jne    0x403493
40348e:	8b cb                	mov    %ebx,%ecx
403490:	d1 f9                	sar    $1,%ecx
403492:	41                   	inc    %ecx
403493:	83 c6 02             	add    $0x2,%esi
403496:	83 c3 02             	add    $0x2,%ebx
403499:	0f b7 06             	movzwl (%esi),%eax
40349c:	66 85 c0             	test   %ax,%ax
40349f:	75 bf                	jne    0x403460
4034a1:	5b                   	pop    %ebx
4034a2:	83 f9 ff             	cmp    $0xffffffff,%ecx
4034a5:	74 15                	je     0x4034bc
4034a7:	83 ff 22             	cmp    $0x22,%edi
4034aa:	75 04                	jne    0x4034b0
4034ac:	83 c2 02             	add    $0x2,%edx
4034af:	49                   	dec    %ecx
4034b0:	51                   	push   %ecx
4034b1:	52                   	push   %edx
4034b2:	ff 75 0c             	push   0xc(%ebp)
4034b5:	e8 eb ec ff ff       	call   0x4021a5
4034ba:	eb 03                	jmp    0x4034bf
4034bc:	33 c0                	xor    %eax,%eax
4034be:	40                   	inc    %eax
4034bf:	5f                   	pop    %edi
4034c0:	5e                   	pop    %esi
4034c1:	5d                   	pop    %ebp
4034c2:	c2 08 00             	ret    $0x8
4034c5:	55                   	push   %ebp
4034c6:	8b ec                	mov    %esp,%ebp
4034c8:	56                   	push   %esi
4034c9:	8b 75 0c             	mov    0xc(%ebp),%esi
4034cc:	68 04 01 00 00       	push   $0x104
4034d1:	56                   	push   %esi
4034d2:	e8 07 ea ff ff       	call   0x401ede
4034d7:	85 c0                	test   %eax,%eax
4034d9:	78 1a                	js     0x4034f5
4034db:	ff 36                	push   (%esi)
4034dd:	33 c0                	xor    %eax,%eax
4034df:	50                   	push   %eax
4034e0:	50                   	push   %eax
4034e1:	ff 75 08             	push   0x8(%ebp)
4034e4:	50                   	push   %eax
4034e5:	ff 15 3c b3 44 00    	call   *0x44b33c
4034eb:	85 c0                	test   %eax,%eax
4034ed:	78 06                	js     0x4034f5
4034ef:	56                   	push   %esi
4034f0:	e8 39 f6 ff ff       	call   0x402b2e
4034f5:	5e                   	pop    %esi
4034f6:	5d                   	pop    %ebp
4034f7:	c2 08 00             	ret    $0x8
4034fa:	55                   	push   %ebp
4034fb:	8b ec                	mov    %esp,%ebp
4034fd:	8b 55 08             	mov    0x8(%ebp),%edx
403500:	8b ca                	mov    %edx,%ecx
403502:	56                   	push   %esi
403503:	33 f6                	xor    %esi,%esi
403505:	8b c6                	mov    %esi,%eax
403507:	66 39 32             	cmp    %si,(%edx)
40350a:	74 48                	je     0x403554
40350c:	53                   	push   %ebx
40350d:	57                   	push   %edi
40350e:	66 39 71 02          	cmp    %si,0x2(%ecx)
403512:	74 1f                	je     0x403533
403514:	0f b7 19             	movzwl (%ecx),%ebx
403517:	c7 45 08 5c 00 00 00 	movl   $0x5c,0x8(%ebp)
40351e:	66 39 5d 08          	cmp    %bx,0x8(%ebp)
403522:	74 0d                	je     0x403531
403524:	c7 45 08 2f 00 00 00 	movl   $0x2f,0x8(%ebp)
40352b:	66 39 5d 08          	cmp    %bx,0x8(%ebp)
40352f:	75 02                	jne    0x403533
403531:	8b c1                	mov    %ecx,%eax
403533:	83 c1 02             	add    $0x2,%ecx
403536:	66 39 31             	cmp    %si,(%ecx)
403539:	75 d3                	jne    0x40350e
40353b:	5f                   	pop    %edi
40353c:	5b                   	pop    %ebx
40353d:	85 c0                	test   %eax,%eax
40353f:	74 13                	je     0x403554
403541:	2b c2                	sub    %edx,%eax
403543:	d1 f8                	sar    $1,%eax
403545:	40                   	inc    %eax
403546:	50                   	push   %eax
403547:	52                   	push   %edx
403548:	ff 75 0c             	push   0xc(%ebp)
40354b:	e8 55 ec ff ff       	call   0x4021a5
403550:	8b f0                	mov    %eax,%esi
403552:	eb 0d                	jmp    0x403561
403554:	39 75 0c             	cmp    %esi,0xc(%ebp)
403557:	74 08                	je     0x403561
403559:	ff 75 0c             	push   0xc(%ebp)
40355c:	e8 8e 1f 04 00       	call   0x4454ef
403561:	8b c6                	mov    %esi,%eax
403563:	5e                   	pop    %esi
403564:	5d                   	pop    %ebp
403565:	c2 08 00             	ret    $0x8
403568:	55                   	push   %ebp
403569:	8b ec                	mov    %esp,%ebp
40356b:	56                   	push   %esi
40356c:	8b 75 08             	mov    0x8(%ebp),%esi
40356f:	56                   	push   %esi
403570:	ff 15 f8 b0 44 00    	call   *0x44b0f8
403576:	33 c9                	xor    %ecx,%ecx
403578:	41                   	inc    %ecx
403579:	3b c1                	cmp    %ecx,%eax
40357b:	76 06                	jbe    0x403583
40357d:	66 83 3e 5c          	cmpw   $0x5c,(%esi)
403581:	74 09                	je     0x40358c
403583:	66 83 7e 02 3a       	cmpw   $0x3a,0x2(%esi)
403588:	74 02                	je     0x40358c
40358a:	33 c9                	xor    %ecx,%ecx
40358c:	8b c1                	mov    %ecx,%eax
40358e:	5e                   	pop    %esi
40358f:	5d                   	pop    %ebp
403590:	c2 04 00             	ret    $0x4
403593:	55                   	push   %ebp
403594:	8b ec                	mov    %esp,%ebp
403596:	53                   	push   %ebx
403597:	8b 5d 08             	mov    0x8(%ebp),%ebx
40359a:	33 c0                	xor    %eax,%eax
40359c:	56                   	push   %esi
40359d:	57                   	push   %edi
40359e:	6a 61                	push   $0x61
4035a0:	8b 33                	mov    (%ebx),%esi
4035a2:	5a                   	pop    %edx
4035a3:	89 45 08             	mov    %eax,0x8(%ebp)
4035a6:	6a 5c                	push   $0x5c
4035a8:	0f b7 0e             	movzwl (%esi),%ecx
4035ab:	5f                   	pop    %edi
4035ac:	66 3b d1             	cmp    %cx,%dx
4035af:	77 08                	ja     0x4035b9
4035b1:	6a 7a                	push   $0x7a
4035b3:	5a                   	pop    %edx
4035b4:	66 3b d1             	cmp    %cx,%dx
4035b7:	73 10                	jae    0x4035c9
4035b9:	6a 41                	push   $0x41
4035bb:	5a                   	pop    %edx
4035bc:	66 3b d1             	cmp    %cx,%dx
4035bf:	77 20                	ja     0x4035e1
4035c1:	6a 5a                	push   $0x5a
4035c3:	5a                   	pop    %edx
4035c4:	66 3b d1             	cmp    %cx,%dx
4035c7:	72 18                	jb     0x4035e1
4035c9:	6a 3a                	push   $0x3a
4035cb:	5a                   	pop    %edx
4035cc:	66 3b 56 02          	cmp    0x2(%esi),%dx
4035d0:	75 0f                	jne    0x4035e1
4035d2:	66 3b 7e 04          	cmp    0x4(%esi),%di
4035d6:	75 09                	jne    0x4035e1
4035d8:	6a 04                	push   $0x4
4035da:	68 74 b7 44 00       	push   $0x44b774
4035df:	eb 70                	jmp    0x403651
4035e1:	66 3b f9             	cmp    %cx,%di
4035e4:	75 73                	jne    0x403659
4035e6:	6a 5c                	push   $0x5c
4035e8:	8d 7e 02             	lea    0x2(%esi),%edi
4035eb:	5a                   	pop    %edx
4035ec:	66 3b 17             	cmp    (%edi),%dx
4035ef:	75 68                	jne    0x403659
4035f1:	6a 3f                	push   $0x3f
4035f3:	59                   	pop    %ecx
4035f4:	66 3b 4e 04          	cmp    0x4(%esi),%cx
4035f8:	75 06                	jne    0x403600
4035fa:	66 3b 56 06          	cmp    0x6(%esi),%dx
4035fe:	74 5e                	je     0x40365e
403600:	8d 45 08             	lea    0x8(%ebp),%eax
403603:	50                   	push   %eax
403604:	56                   	push   %esi
403605:	e8 e0 f1 ff ff       	call   0x4027ea
40360a:	85 c0                	test   %eax,%eax
40360c:	78 50                	js     0x40365e
40360e:	8b 4d 08             	mov    0x8(%ebp),%ecx
403611:	8d 41 fe             	lea    -0x2(%ecx),%eax
403614:	85 c0                	test   %eax,%eax
403616:	74 32                	je     0x40364a
403618:	85 ff                	test   %edi,%edi
40361a:	75 12                	jne    0x40362e
40361c:	e8 15 08 03 00       	call   0x433e36
403621:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403627:	e8 4e 07 03 00       	call   0x433d7a
40362c:	eb 1c                	jmp    0x40364a
40362e:	3b c8                	cmp    %eax,%ecx
403630:	73 0d                	jae    0x40363f
403632:	e8 ff 07 03 00       	call   0x433e36
403637:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40363d:	eb e8                	jmp    0x403627
40363f:	50                   	push   %eax
403640:	57                   	push   %edi
403641:	56                   	push   %esi
403642:	e8 29 b5 02 00       	call   0x42eb70
403647:	83 c4 0c             	add    $0xc,%esp
40364a:	6a 07                	push   $0x7
40364c:	68 80 b7 44 00       	push   $0x44b780
403651:	53                   	push   %ebx
403652:	e8 74 ea ff ff       	call   0x4020cb
403657:	eb 05                	jmp    0x40365e
403659:	b8 57 00 07 80       	mov    $0x80070057,%eax
40365e:	5f                   	pop    %edi
40365f:	5e                   	pop    %esi
403660:	5b                   	pop    %ebx
403661:	5d                   	pop    %ebp
403662:	c2 04 00             	ret    $0x4
403665:	55                   	push   %ebp
403666:	8b ec                	mov    %esp,%ebp
403668:	51                   	push   %ecx
403669:	56                   	push   %esi
40366a:	8b 75 0c             	mov    0xc(%ebp),%esi
40366d:	8d 45 fc             	lea    -0x4(%ebp),%eax
403670:	57                   	push   %edi
403671:	8b 7d 08             	mov    0x8(%ebp),%edi
403674:	68 ff ff ff 7f       	push   $0x7fffffff
403679:	50                   	push   %eax
40367a:	56                   	push   %esi
40367b:	57                   	push   %edi
40367c:	e8 f1 00 00 00       	call   0x403772
403681:	85 c0                	test   %eax,%eax
403683:	78 27                	js     0x4036ac
403685:	81 7d 14 fe ff ff 7f 	cmpl   $0x7ffffffe,0x14(%ebp)
40368c:	76 07                	jbe    0x403695
40368e:	b8 57 00 07 80       	mov    $0x80070057,%eax
403693:	eb 17                	jmp    0x4036ac
403695:	ff 75 14             	push   0x14(%ebp)
403698:	8b 45 fc             	mov    -0x4(%ebp),%eax
40369b:	2b f0                	sub    %eax,%esi
40369d:	ff 75 10             	push   0x10(%ebp)
4036a0:	6a 00                	push   $0x0
4036a2:	56                   	push   %esi
4036a3:	8d 04 47             	lea    (%edi,%eax,2),%eax
4036a6:	50                   	push   %eax
4036a7:	e8 02 c4 01 00       	call   0x41faae
4036ac:	5f                   	pop    %edi
4036ad:	5e                   	pop    %esi
4036ae:	8b e5                	mov    %ebp,%esp
4036b0:	5d                   	pop    %ebp
4036b1:	c2 10 00             	ret    $0x10
4036b4:	55                   	push   %ebp
4036b5:	8b ec                	mov    %esp,%ebp
4036b7:	51                   	push   %ecx
4036b8:	53                   	push   %ebx
4036b9:	56                   	push   %esi
4036ba:	8b 75 0c             	mov    0xc(%ebp),%esi
4036bd:	8d 45 fc             	lea    -0x4(%ebp),%eax
4036c0:	57                   	push   %edi
4036c1:	8b 7d 08             	mov    0x8(%ebp),%edi