4554b9:	e8 42 0c 00 00       	call   0x456100
4554be:	5f                   	pop    %edi
4554bf:	66 33 c0             	xor    %ax,%ax
4554c2:	5e                   	pop    %esi
4554c3:	81 c4 fc 00 00 00    	add    $0xfc,%esp
4554c9:	c2 0c 00             	ret    $0xc
4554cc:	0f bf 44 24 22       	movswl 0x22(%esp),%eax
4554d1:	8b d0                	mov    %eax,%edx
4554d3:	d1 ea                	shr    $1,%edx
4554d5:	c1 e8 08             	shr    $0x8,%eax
4554d8:	23 d0                	and    %eax,%edx
4554da:	33 c0                	xor    %eax,%eax
4554dc:	83 e2 01             	and    $0x1,%edx
4554df:	66 81 7c 24 10 4c 01 	cmpw   $0x14c,0x10(%esp)
4554e6:	0f 94 c0             	sete   %al
4554e9:	84 d0                	test   %dl,%al
4554eb:	0f 84 31 01 00 00    	je     0x455622
4554f1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4554f5:	51                   	push   %ecx
4554f6:	56                   	push   %esi
4554f7:	e8 34 08 00 00       	call   0x455d30
4554fc:	85 c0                	test   %eax,%eax
4554fe:	74 1c                	je     0x45551c
455500:	8b 94 24 10 01 00 00 	mov    0x110(%esp),%edx
455507:	50                   	push   %eax
455508:	52                   	push   %edx
455509:	e8 f2 0b 00 00       	call   0x456100
45550e:	5f                   	pop    %edi
45550f:	66 33 c0             	xor    %ax,%ax
455512:	5e                   	pop    %esi
455513:	81 c4 fc 00 00 00    	add    $0xfc,%esp
455519:	c2 0c 00             	ret    $0xc
45551c:	8b 44 24 08          	mov    0x8(%esp),%eax
455520:	50                   	push   %eax
455521:	56                   	push   %esi
455522:	e8 b9 08 00 00       	call   0x455de0
455527:	85 c0                	test   %eax,%eax
455529:	74 1c                	je     0x455547
45552b:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
455532:	50                   	push   %eax
455533:	51                   	push   %ecx
455534:	e8 c7 0b 00 00       	call   0x456100
455539:	5f                   	pop    %edi
45553a:	66 33 c0             	xor    %ax,%ax
45553d:	5e                   	pop    %esi
45553e:	81 c4 fc 00 00 00    	add    $0xfc,%esp
455544:	c2 0c 00             	ret    $0xc
455547:	8b 54 24 08          	mov    0x8(%esp),%edx
45554b:	52                   	push   %edx
45554c:	e8 ef 00 00 00       	call   0x455640
455551:	85 c0                	test   %eax,%eax
455553:	74 1c                	je     0x455571
455555:	50                   	push   %eax
455556:	8b 84 24 14 01 00 00 	mov    0x114(%esp),%eax
45555d:	50                   	push   %eax
45555e:	e8 9d 0b 00 00       	call   0x456100
455563:	5f                   	pop    %edi
455564:	66 33 c0             	xor    %ax,%ax
455567:	5e                   	pop    %esi
455568:	81 c4 fc 00 00 00    	add    $0xfc,%esp
45556e:	c2 0c 00             	ret    $0xc
455571:	8b 4c 24 08          	mov    0x8(%esp),%ecx
455575:	51                   	push   %ecx
455576:	e8 d5 03 00 00       	call   0x455950
45557b:	85 c0                	test   %eax,%eax
45557d:	74 1c                	je     0x45559b
45557f:	8b 94 24 10 01 00 00 	mov    0x110(%esp),%edx
455586:	50                   	push   %eax
455587:	52                   	push   %edx
455588:	e8 73 0b 00 00       	call   0x456100
45558d:	5f                   	pop    %edi
45558e:	66 33 c0             	xor    %ax,%ax
455591:	5e                   	pop    %esi
455592:	81 c4 fc 00 00 00    	add    $0xfc,%esp
455598:	c2 0c 00             	ret    $0xc
45559b:	8b 44 24 08          	mov    0x8(%esp),%eax
45559f:	50                   	push   %eax
4555a0:	e8 ab 05 00 00       	call   0x455b50
4555a5:	85 c0                	test   %eax,%eax
4555a7:	74 1c                	je     0x4555c5
4555a9:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
4555b0:	50                   	push   %eax
4555b1:	51                   	push   %ecx
4555b2:	e8 49 0b 00 00       	call   0x456100
4555b7:	5f                   	pop    %edi
4555b8:	66 33 c0             	xor    %ax,%ax
4555bb:	5e                   	pop    %esi
4555bc:	81 c4 fc 00 00 00    	add    $0xfc,%esp
4555c2:	c2 0c 00             	ret    $0xc
4555c5:	8b 54 24 08          	mov    0x8(%esp),%edx
4555c9:	52                   	push   %edx
4555ca:	e8 11 02 00 00       	call   0x4557e0
4555cf:	85 c0                	test   %eax,%eax
4555d1:	74 1c                	je     0x4555ef
4555d3:	50                   	push   %eax
4555d4:	8b 84 24 14 01 00 00 	mov    0x114(%esp),%eax
4555db:	50                   	push   %eax
4555dc:	e8 1f 0b 00 00       	call   0x456100
4555e1:	5f                   	pop    %edi
4555e2:	66 33 c0             	xor    %ax,%ax
4555e5:	5e                   	pop    %esi
4555e6:	81 c4 fc 00 00 00    	add    $0xfc,%esp
4555ec:	c2 0c 00             	ret    $0xc
4555ef:	8b 84 24 10 01 00 00 	mov    0x110(%esp),%eax
4555f6:	85 c0                	test   %eax,%eax
4555f8:	74 0d                	je     0x455607
4555fa:	68 00 80 00 00       	push   $0x8000
4555ff:	6a 00                	push   $0x0
455601:	50                   	push   %eax
455602:	e8 89 0b 00 00       	call   0x456190
455607:	8b 4c 24 34          	mov    0x34(%esp),%ecx
45560b:	8b 74 24 08          	mov    0x8(%esp),%esi
45560f:	03 ce                	add    %esi,%ecx
455611:	70 1d                	jo     0x455630
455613:	51                   	push   %ecx
455614:	e8 47 0b 00 00       	call   0x456160
455619:	6a 00                	push   $0x0
45561b:	6a 00                	push   $0x0
45561d:	e8 de 0a 00 00       	call   0x456100
455622:	5f                   	pop    %edi
455623:	66 33 c0             	xor    %ax,%ax
455626:	5e                   	pop    %esi
455627:	81 c4 fc 00 00 00    	add    $0xfc,%esp
45562d:	c2 0c 00             	ret    $0xc
455630:	ff 15 7c 11 40 00    	call   *0x40117c
455636:	90                   	nop
455637:	90                   	nop
455638:	90                   	nop
455639:	90                   	nop
45563a:	90                   	nop
45563b:	90                   	nop
45563c:	90                   	nop
45563d:	90                   	nop
45563e:	90                   	nop
45563f:	90                   	nop
455640:	81 ec 9c 00 00 00    	sub    $0x9c,%esp
455646:	33 c0                	xor    %eax,%eax
455648:	53                   	push   %ebx
455649:	89 44 24 08          	mov    %eax,0x8(%esp)
45564d:	56                   	push   %esi
45564e:	89 44 24 10          	mov    %eax,0x10(%esp)
455652:	57                   	push   %edi
455653:	89 44 24 18          	mov    %eax,0x18(%esp)
455657:	b9 06 00 00 00       	mov    $0x6,%ecx
45565c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
455660:	8d 7c 24 24          	lea    0x24(%esp),%edi
455664:	f3 ab                	rep stos %eax,%es:(%edi)
455666:	b9 09 00 00 00       	mov    $0x9,%ecx
45566b:	8d 7c 24 3c          	lea    0x3c(%esp),%edi
45566f:	f3 ab                	rep stos %eax,%es:(%edi)
455671:	b9 12 00 00 00       	mov    $0x12,%ecx
455676:	8d 7c 24 60          	lea    0x60(%esp),%edi
45567a:	f3 ab                	rep stos %eax,%es:(%edi)
45567c:	33 f6                	xor    %esi,%esi
45567e:	33 db                	xor    %ebx,%ebx
455680:	89 44 24 20          	mov    %eax,0x20(%esp)
455684:	89 44 24 0c          	mov    %eax,0xc(%esp)
455688:	e8 a3 0b 00 00       	call   0x456230
45568d:	8d 4c 24 24          	lea    0x24(%esp),%ecx
455691:	8b f8                	mov    %eax,%edi
455693:	51                   	push   %ecx
455694:	e8 c7 0b 00 00       	call   0x456260
455699:	8d 54 24 0c          	lea    0xc(%esp),%edx
45569d:	52                   	push   %edx
45569e:	6a 18                	push   $0x18
4556a0:	50                   	push   %eax
4556a1:	53                   	push   %ebx
4556a2:	57                   	push   %edi
4556a3:	e8 98 0b 00 00       	call   0x456240
4556a8:	3d 04 00 00 c0       	cmp    $0xc0000004,%eax
4556ad:	75 56                	jne    0x455705
4556af:	8b 44 24 0c          	mov    0xc(%esp),%eax
4556b3:	6b c0 02             	imul   $0x2,%eax,%eax
4556b6:	0f 80 10 01 00 00    	jo     0x4557cc
4556bc:	85 f6                	test   %esi,%esi
4556be:	89 44 24 0c          	mov    %eax,0xc(%esp)
4556c2:	74 0e                	je     0x4556d2
4556c4:	e8 57 0b 00 00       	call   0x456220
4556c9:	56                   	push   %esi
4556ca:	6a 01                	push   $0x1
4556cc:	50                   	push   %eax
4556cd:	e8 3e 0b 00 00       	call   0x456210
4556d2:	e8 49 0b 00 00       	call   0x456220
4556d7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4556db:	51                   	push   %ecx
4556dc:	6a 01                	push   $0x1
4556de:	50                   	push   %eax
4556df:	e8 1c 0b 00 00       	call   0x456200
4556e4:	8b f0                	mov    %eax,%esi
4556e6:	e8 45 0b 00 00       	call   0x456230
4556eb:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4556ef:	8d 54 24 0c          	lea    0xc(%esp),%edx
4556f3:	52                   	push   %edx
4556f4:	51                   	push   %ecx
4556f5:	56                   	push   %esi
4556f6:	6a 00                	push   $0x0
4556f8:	50                   	push   %eax
4556f9:	e8 42 0b 00 00       	call   0x456240
4556fe:	3d 04 00 00 c0       	cmp    $0xc0000004,%eax
455703:	74 aa                	je     0x4556af
455705:	85 c0                	test   %eax,%eax
455707:	74 0a                	je     0x455713
455709:	bb 06 00 00 00       	mov    $0x6,%ebx
45570e:	e9 99 00 00 00       	jmp    0x4557ac
455713:	85 f6                	test   %esi,%esi
455715:	74 13                	je     0x45572a
455717:	8d 54 24 24          	lea    0x24(%esp),%edx
45571b:	52                   	push   %edx
45571c:	e8 3f 0b 00 00       	call   0x456260
455721:	6a 18                	push   $0x18
455723:	56                   	push   %esi
455724:	50                   	push   %eax
455725:	e8 76 0a 00 00       	call   0x4561a0
45572a:	8d 44 24 10          	lea    0x10(%esp),%eax
45572e:	50                   	push   %eax
45572f:	e8 2c 0b 00 00       	call   0x456260
455734:	6a 14                	push   $0x14
455736:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
45573a:	51                   	push   %ecx
45573b:	50                   	push   %eax
45573c:	e8 5f 0a 00 00       	call   0x4561a0
455741:	8d 54 24 10          	lea    0x10(%esp),%edx
455745:	8b bc 24 ac 00 00 00 	mov    0xac(%esp),%edi
45574c:	52                   	push   %edx
45574d:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
455751:	e8 0a 0b 00 00       	call   0x456260
455756:	6a 14                	push   $0x14
455758:	50                   	push   %eax
455759:	8b 44 24 30          	mov    0x30(%esp),%eax
45575d:	50                   	push   %eax
45575e:	e8 3d 0a 00 00       	call   0x4561a0
455763:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
455767:	51                   	push   %ecx
455768:	e8 f3 0a 00 00       	call   0x456260
45576d:	6a 24                	push   $0x24
45576f:	8b 54 24 20          	mov    0x20(%esp),%edx
455773:	52                   	push   %edx
455774:	50                   	push   %eax
455775:	e8 26 0a 00 00       	call   0x4561a0
45577a:	8d 44 24 60          	lea    0x60(%esp),%eax
45577e:	50                   	push   %eax
45577f:	e8 dc 0a 00 00       	call   0x456260
455784:	6a 48                	push   $0x48
455786:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
45578a:	51                   	push   %ecx
45578b:	50                   	push   %eax
45578c:	e8 0f 0a 00 00       	call   0x4561a0
455791:	8d 54 24 60          	lea    0x60(%esp),%edx
455795:	89 7c 24 78          	mov    %edi,0x78(%esp)
455799:	52                   	push   %edx
45579a:	e8 c1 0a 00 00       	call   0x456260
45579f:	6a 48                	push   $0x48
4557a1:	50                   	push   %eax
4557a2:	8b 44 24 50          	mov    0x50(%esp),%eax
4557a6:	50                   	push   %eax
4557a7:	e8 f4 09 00 00       	call   0x4561a0
4557ac:	85 f6                	test   %esi,%esi
4557ae:	74 0e                	je     0x4557be
4557b0:	e8 6b 0a 00 00       	call   0x456220
4557b5:	56                   	push   %esi
4557b6:	6a 01                	push   $0x1
4557b8:	50                   	push   %eax
4557b9:	e8 52 0a 00 00       	call   0x456210
4557be:	5f                   	pop    %edi
4557bf:	8b c3                	mov    %ebx,%eax
4557c1:	5e                   	pop    %esi
4557c2:	5b                   	pop    %ebx
4557c3:	81 c4 9c 00 00 00    	add    $0x9c,%esp
4557c9:	c2 04 00             	ret    $0x4
4557cc:	ff 15 7c 11 40 00    	call   *0x40117c
4557d2:	90                   	nop
4557d3:	90                   	nop
4557d4:	90                   	nop
4557d5:	90                   	nop
4557d6:	90                   	nop
4557d7:	90                   	nop
4557d8:	90                   	nop
4557d9:	90                   	nop
4557da:	90                   	nop
4557db:	90                   	nop
4557dc:	90                   	nop
4557dd:	90                   	nop
4557de:	90                   	nop
4557df:	90                   	nop
4557e0:	81 ec 24 01 00 00    	sub    $0x124,%esp
4557e6:	53                   	push   %ebx
4557e7:	55                   	push   %ebp
4557e8:	56                   	push   %esi
4557e9:	57                   	push   %edi
4557ea:	b9 3e 00 00 00       	mov    $0x3e,%ecx
4557ef:	33 c0                	xor    %eax,%eax
4557f1:	8d 7c 24 3c          	lea    0x3c(%esp),%edi
4557f5:	33 db                	xor    %ebx,%ebx
4557f7:	f3 ab                	rep stos %eax,%es:(%edi)
4557f9:	b9 0a 00 00 00       	mov    $0xa,%ecx
4557fe:	8d 7c 24 14          	lea    0x14(%esp),%edi
455802:	f3 ab                	rep stos %eax,%es:(%edi)
455804:	8b 8c 24 38 01 00 00 	mov    0x138(%esp),%ecx
45580b:	8d 44 24 3c          	lea    0x3c(%esp),%eax
45580f:	50                   	push   %eax
455810:	51                   	push   %ecx
455811:	89 5c 24 18          	mov    %ebx,0x18(%esp)
455815:	33 f6                	xor    %esi,%esi
455817:	e8 54 07 00 00       	call   0x455f70
45581c:	3b c3                	cmp    %ebx,%eax
45581e:	75 12                	jne    0x455832
455820:	5f                   	pop    %edi
455821:	5e                   	pop    %esi
455822:	5d                   	pop    %ebp
455823:	b8 01 00 00 00       	mov    $0x1,%eax
455828:	5b                   	pop    %ebx
455829:	81 c4 24 01 00 00    	add    $0x124,%esp
45582f:	c2 04 00             	ret    $0x4
455832:	0f bf 54 24 50       	movswl 0x50(%esp),%edx
455837:	83 c0 04             	add    $0x4,%eax
45583a:	0f 80 07 01 00 00    	jo     0x455947
455840:	83 c0 14             	add    $0x14,%eax
455843:	0f 80 fe 00 00 00    	jo     0x455947
455849:	03 c2                	add    %edx,%eax
45584b:	0f 80 f6 00 00 00    	jo     0x455947
455851:	8b f8                	mov    %eax,%edi
455853:	66 8b 44 24 42       	mov    0x42(%esp),%ax
455858:	66 2d 01 00          	sub    $0x1,%ax
45585c:	0f 80 e5 00 00 00    	jo     0x455947
455862:	0f bf e8             	movswl %ax,%ebp
455865:	3b eb                	cmp    %ebx,%ebp
455867:	0f 8c cb 00 00 00    	jl     0x455938
45586d:	8d 4c 24 14          	lea    0x14(%esp),%ecx
455871:	51                   	push   %ecx
455872:	e8 e9 09 00 00       	call   0x456260
455877:	6a 28                	push   $0x28
455879:	57                   	push   %edi
45587a:	50                   	push   %eax
45587b:	e8 20 09 00 00       	call   0x4561a0
455880:	8b 44 24 38          	mov    0x38(%esp),%eax
455884:	a9 00 00 00 20       	test   $0x20000000,%eax
455889:	74 29                	je     0x4558b4
45588b:	a9 00 00 00 40       	test   $0x40000000,%eax
455890:	74 11                	je     0x4558a3
455892:	25 00 00 00 80       	and    $0x80000000,%eax
455897:	f7 d8                	neg    %eax
455899:	1b c0                	sbb    %eax,%eax
45589b:	83 e0 20             	and    $0x20,%eax
45589e:	83 c0 20             	add    $0x20,%eax
4558a1:	eb 36                	jmp    0x4558d9
4558a3:	25 00 00 00 80       	and    $0x80000000,%eax
4558a8:	f7 d8                	neg    %eax
4558aa:	1b c0                	sbb    %eax,%eax
4558ac:	83 e0 70             	and    $0x70,%eax
4558af:	83 c0 10             	add    $0x10,%eax