40b5a4:	75 08                	jne    0x40b5ae
40b5a6:	6a 08                	push   $0x8
40b5a8:	ff 15 74 20 41 00    	call   *0x412074
40b5ae:	e8 41 e2 ff ff       	call   0x4097f4
40b5b3:	6a 08                	push   $0x8
40b5b5:	58                   	pop    %eax
40b5b6:	e9 be 00 00 00       	jmp    0x40b679
40b5bb:	53                   	push   %ebx
40b5bc:	57                   	push   %edi
40b5bd:	ff 75 08             	push   0x8(%ebp)
40b5c0:	89 44 24 30          	mov    %eax,0x30(%esp)
40b5c4:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40b5c8:	50                   	push   %eax
40b5c9:	89 5c 24 20          	mov    %ebx,0x20(%esp)
40b5cd:	89 5c 24 28          	mov    %ebx,0x28(%esp)
40b5d1:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
40b5d5:	89 5c 24 38          	mov    %ebx,0x38(%esp)
40b5d9:	89 5c 24 24          	mov    %ebx,0x24(%esp)
40b5dd:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
40b5e1:	89 5c 24 30          	mov    %ebx,0x30(%esp)
40b5e5:	ff 15 0c 21 41 00    	call   *0x41210c
40b5eb:	8b f8                	mov    %eax,%edi
40b5ed:	85 ff                	test   %edi,%edi
40b5ef:	74 1d                	je     0x40b60e
40b5f1:	81 ff b8 04 00 00    	cmp    $0x4b8,%edi
40b5f7:	74 0e                	je     0x40b607
40b5f9:	57                   	push   %edi
40b5fa:	ff 15 74 20 41 00    	call   *0x412074
40b600:	e8 ef e1 ff ff       	call   0x4097f4
40b605:	eb 3c                	jmp    0x40b643
40b607:	e8 6d e2 ff ff       	call   0x409879
40b60c:	eb 35                	jmp    0x40b643
40b60e:	53                   	push   %ebx
40b60f:	8b fb                	mov    %ebx,%edi
40b611:	ff 15 74 20 41 00    	call   *0x412074
40b617:	8b ce                	mov    %esi,%ecx
40b619:	e8 15 fe ff ff       	call   0x40b433
40b61e:	3d 88 13 00 00       	cmp    $0x1388,%eax
40b623:	73 1e                	jae    0x40b643
40b625:	51                   	push   %ecx
40b626:	8b ce                	mov    %esi,%ecx
40b628:	e8 55 00 00 00       	call   0x40b682
40b62d:	b9 80 15 00 00       	mov    $0x1580,%ecx
40b632:	e8 1a e4 ff ff       	call   0x409a51
40b637:	8b c8                	mov    %eax,%ecx
40b639:	e8 ce e0 ff ff       	call   0x40970c
40b63e:	bf b8 04 00 00       	mov    $0x4b8,%edi
40b643:	8b c7                	mov    %edi,%eax
40b645:	eb 32                	jmp    0x40b679
40b647:	85 ff                	test   %edi,%edi
40b649:	74 2c                	je     0x40b677
40b64b:	57                   	push   %edi
40b64c:	ff 15 d4 20 41 00    	call   *0x4120d4
40b652:	85 c0                	test   %eax,%eax
40b654:	74 21                	je     0x40b677
40b656:	b9 7e 15 00 00       	mov    $0x157e,%ecx
40b65b:	e8 f1 e3 ff ff       	call   0x409a51
40b660:	8b c8                	mov    %eax,%ecx
40b662:	e8 a5 e0 ff ff       	call   0x40970c
40b667:	be 01 00 01 a0       	mov    $0xa0010001,%esi
40b66c:	56                   	push   %esi
40b66d:	ff 15 74 20 41 00    	call   *0x412074
40b673:	8b c6                	mov    %esi,%eax
40b675:	eb 02                	jmp    0x40b679
40b677:	33 c0                	xor    %eax,%eax
40b679:	5f                   	pop    %edi
40b67a:	5e                   	pop    %esi
40b67b:	5b                   	pop    %ebx
40b67c:	8b e5                	mov    %ebp,%esp
40b67e:	5d                   	pop    %ebp
40b67f:	c2 08 00             	ret    $0x8
40b682:	8b ff                	mov    %edi,%edi
40b684:	56                   	push   %esi
40b685:	8b f1                	mov    %ecx,%esi
40b687:	57                   	push   %edi
40b688:	85 f6                	test   %esi,%esi
40b68a:	0f 84 a6 00 00 00    	je     0x40b736
40b690:	56                   	push   %esi
40b691:	ff 15 d4 20 41 00    	call   *0x4120d4
40b697:	85 c0                	test   %eax,%eax
40b699:	0f 84 97 00 00 00    	je     0x40b736
40b69f:	8b ce                	mov    %esi,%ecx
40b6a1:	e8 fa f8 ff ff       	call   0x40afa0
40b6a6:	83 f8 01             	cmp    $0x1,%eax
40b6a9:	75 03                	jne    0x40b6ae
40b6ab:	83 c6 04             	add    $0x4,%esi
40b6ae:	68 dc 18 40 00       	push   $0x4018dc
40b6b3:	56                   	push   %esi
40b6b4:	68 e8 18 40 00       	push   $0x4018e8
40b6b9:	6a 02                	push   $0x2
40b6bb:	e8 ab e0 ff ff       	call   0x40976b
40b6c0:	83 c4 10             	add    $0x10,%esp
40b6c3:	85 c0                	test   %eax,%eax
40b6c5:	74 25                	je     0x40b6ec
40b6c7:	e8 20 e0 ff ff       	call   0x4096ec
40b6cc:	33 ff                	xor    %edi,%edi
40b6ce:	85 c0                	test   %eax,%eax
40b6d0:	75 0a                	jne    0x40b6dc
40b6d2:	6a 12                	push   $0x12
40b6d4:	59                   	pop    %ecx
40b6d5:	e8 7d de ff ff       	call   0x409557
40b6da:	eb 0c                	jmp    0x40b6e8
40b6dc:	57                   	push   %edi
40b6dd:	57                   	push   %edi
40b6de:	6a 12                	push   $0x12
40b6e0:	8b d0                	mov    %eax,%edx
40b6e2:	59                   	pop    %ecx
40b6e3:	e8 bb de ff ff       	call   0x4095a3
40b6e8:	85 c0                	test   %eax,%eax
40b6ea:	75 17                	jne    0x40b703
40b6ec:	ff 15 48 20 41 00    	call   *0x412048
40b6f2:	85 c0                	test   %eax,%eax
40b6f4:	75 08                	jne    0x40b6fe
40b6f6:	6a 08                	push   $0x8
40b6f8:	ff 15 74 20 41 00    	call   *0x412074
40b6fe:	6a 08                	push   $0x8
40b700:	58                   	pop    %eax
40b701:	eb 35                	jmp    0x40b738
40b703:	6a 01                	push   $0x1
40b705:	57                   	push   %edi
40b706:	50                   	push   %eax
40b707:	ff 15 04 21 41 00    	call   *0x412104
40b70d:	8b f0                	mov    %eax,%esi
40b70f:	85 f6                	test   %esi,%esi
40b711:	74 16                	je     0x40b729
40b713:	81 fe b8 04 00 00    	cmp    $0x4b8,%esi
40b719:	74 07                	je     0x40b722
40b71b:	e8 d4 e0 ff ff       	call   0x4097f4
40b720:	eb 10                	jmp    0x40b732
40b722:	e8 52 e1 ff ff       	call   0x409879
40b727:	eb 09                	jmp    0x40b732
40b729:	57                   	push   %edi
40b72a:	8b f7                	mov    %edi,%esi
40b72c:	ff 15 74 20 41 00    	call   *0x412074
40b732:	8b c6                	mov    %esi,%eax
40b734:	eb 02                	jmp    0x40b738
40b736:	33 c0                	xor    %eax,%eax
40b738:	5f                   	pop    %edi
40b739:	5e                   	pop    %esi
40b73a:	c2 04 00             	ret    $0x4
40b73d:	8b ff                	mov    %edi,%edi
40b73f:	56                   	push   %esi
40b740:	6a 00                	push   $0x0
40b742:	8b f1                	mov    %ecx,%esi
40b744:	ff 15 74 20 41 00    	call   *0x412074
40b74a:	85 f6                	test   %esi,%esi
40b74c:	75 16                	jne    0x40b764
40b74e:	ff 15 48 20 41 00    	call   *0x412048
40b754:	85 c0                	test   %eax,%eax
40b756:	75 08                	jne    0x40b760
40b758:	6a 57                	push   $0x57
40b75a:	ff 15 74 20 41 00    	call   *0x412074
40b760:	33 c0                	xor    %eax,%eax
40b762:	5e                   	pop    %esi
40b763:	c3                   	ret
40b764:	56                   	push   %esi
40b765:	ff 15 d4 20 41 00    	call   *0x4120d4
40b76b:	83 f8 01             	cmp    $0x1,%eax
40b76e:	7e f0                	jle    0x40b760
40b770:	66 8b 16             	mov    (%esi),%dx
40b773:	51                   	push   %ecx
40b774:	51                   	push   %ecx
40b775:	b9 9c 19 40 00       	mov    $0x40199c,%ecx
40b77a:	e8 21 e6 ff ff       	call   0x409da0
40b77f:	83 f8 ff             	cmp    $0xffffffff,%eax
40b782:	74 dc                	je     0x40b760
40b784:	33 c0                	xor    %eax,%eax
40b786:	40                   	inc    %eax
40b787:	5e                   	pop    %esi
40b788:	c3                   	ret
40b789:	8b ff                	mov    %edi,%edi
40b78b:	55                   	push   %ebp
40b78c:	8b ec                	mov    %esp,%ebp
40b78e:	83 ec 1c             	sub    $0x1c,%esp
40b791:	53                   	push   %ebx
40b792:	56                   	push   %esi
40b793:	33 f6                	xor    %esi,%esi
40b795:	8b d9                	mov    %ecx,%ebx
40b797:	57                   	push   %edi
40b798:	56                   	push   %esi
40b799:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40b79c:	89 75 f0             	mov    %esi,-0x10(%ebp)
40b79f:	89 75 fc             	mov    %esi,-0x4(%ebp)
40b7a2:	89 75 ec             	mov    %esi,-0x14(%ebp)
40b7a5:	ff 15 74 20 41 00    	call   *0x412074
40b7ab:	8b c6                	mov    %esi,%eax
40b7ad:	ba 04 01 00 00       	mov    $0x104,%edx
40b7b2:	f7 d8                	neg    %eax
40b7b4:	6a 01                	push   $0x1
40b7b6:	1b c0                	sbb    %eax,%eax
40b7b8:	25 04 01 00 00       	and    $0x104,%eax
40b7bd:	03 d0                	add    %eax,%edx
40b7bf:	52                   	push   %edx
40b7c0:	6a 07                	push   $0x7
40b7c2:	89 55 f8             	mov    %edx,-0x8(%ebp)
40b7c5:	33 d2                	xor    %edx,%edx
40b7c7:	59                   	pop    %ecx
40b7c8:	e8 d6 dd ff ff       	call   0x4095a3
40b7cd:	8b f8                	mov    %eax,%edi
40b7cf:	85 ff                	test   %edi,%edi
40b7d1:	0f 84 a9 01 00 00    	je     0x40b980
40b7d7:	ff 75 f8             	push   -0x8(%ebp)
40b7da:	57                   	push   %edi
40b7db:	56                   	push   %esi
40b7dc:	ff 15 e8 20 41 00    	call   *0x4120e8
40b7e2:	85 c0                	test   %eax,%eax
40b7e4:	0f 84 a8 01 00 00    	je     0x40b992
40b7ea:	8b 55 f8             	mov    -0x8(%ebp),%edx
40b7ed:	8d 4a ff             	lea    -0x1(%edx),%ecx
40b7f0:	3b c1                	cmp    %ecx,%eax
40b7f2:	73 be                	jae    0x40b7b2
40b7f4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40b7f7:	50                   	push   %eax
40b7f8:	57                   	push   %edi
40b7f9:	6a 01                	push   $0x1
40b7fb:	ff 15 b0 21 41 00    	call   *0x4121b0
40b801:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b804:	85 c0                	test   %eax,%eax
40b806:	75 23                	jne    0x40b82b
40b808:	ff 15 48 20 41 00    	call   *0x412048
40b80e:	85 c0                	test   %eax,%eax
40b810:	0f 85 7c 01 00 00    	jne    0x40b992
40b816:	ff 15 48 20 41 00    	call   *0x412048
40b81c:	85 c0                	test   %eax,%eax
40b81e:	0f 85 6e 01 00 00    	jne    0x40b992
40b824:	6a 57                	push   $0x57
40b826:	e9 61 01 00 00       	jmp    0x40b98c
40b82b:	83 c0 0a             	add    $0xa,%eax
40b82e:	8b c8                	mov    %eax,%ecx
40b830:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b833:	e8 32 f4 ff ff       	call   0x40ac6a
40b838:	8b f0                	mov    %eax,%esi
40b83a:	89 75 f4             	mov    %esi,-0xc(%ebp)
40b83d:	85 f6                	test   %esi,%esi
40b83f:	0f 84 4d 01 00 00    	je     0x40b992
40b845:	56                   	push   %esi
40b846:	ff 75 f8             	push   -0x8(%ebp)
40b849:	6a 00                	push   $0x0
40b84b:	57                   	push   %edi
40b84c:	6a 03                	push   $0x3
40b84e:	ff 15 a8 21 41 00    	call   *0x4121a8
40b854:	85 c0                	test   %eax,%eax
40b856:	0f 84 bd 01 00 00    	je     0x40ba19
40b85c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40b85f:	50                   	push   %eax
40b860:	8d 45 ec             	lea    -0x14(%ebp),%eax
40b863:	50                   	push   %eax
40b864:	68 f8 18 40 00       	push   $0x4018f8
40b869:	56                   	push   %esi
40b86a:	ff 15 ac 21 41 00    	call   *0x4121ac
40b870:	85 c0                	test   %eax,%eax
40b872:	0f 84 a1 01 00 00    	je     0x40ba19
40b878:	6a 01                	push   $0x1
40b87a:	6a 40                	push   $0x40
40b87c:	6a 07                	push   $0x7
40b87e:	33 d2                	xor    %edx,%edx
40b880:	59                   	pop    %ecx
40b881:	e8 1d dd ff ff       	call   0x4095a3
40b886:	33 ff                	xor    %edi,%edi
40b888:	89 45 e8             	mov    %eax,-0x18(%ebp)
40b88b:	f7 45 f0 fc ff ff ff 	testl  $0xfffffffc,-0x10(%ebp)
40b892:	0f 86 81 01 00 00    	jbe    0x40ba19
40b898:	8b 55 ec             	mov    -0x14(%ebp),%edx
40b89b:	0f b7 4c ba 02       	movzwl 0x2(%edx,%edi,4),%ecx
40b8a0:	0f b7 04 ba          	movzwl (%edx,%edi,4),%eax
40b8a4:	51                   	push   %ecx
40b8a5:	50                   	push   %eax
40b8a6:	68 30 19 40 00       	push   $0x401930
40b8ab:	6a 40                	push   $0x40
40b8ad:	ff 75 e8             	push   -0x18(%ebp)
40b8b0:	e8 6f db ff ff       	call   0x409424
40b8b5:	83 c4 14             	add    $0x14,%esp
40b8b8:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b8bb:	50                   	push   %eax
40b8bc:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b8bf:	50                   	push   %eax
40b8c0:	ff 75 e8             	push   -0x18(%ebp)
40b8c3:	56                   	push   %esi
40b8c4:	ff 15 ac 21 41 00    	call   *0x4121ac
40b8ca:	85 c0                	test   %eax,%eax
40b8cc:	75 12                	jne    0x40b8e0
40b8ce:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b8d1:	33 c9                	xor    %ecx,%ecx
40b8d3:	47                   	inc    %edi
40b8d4:	c1 e8 02             	shr    $0x2,%eax
40b8d7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b8da:	3b f8                	cmp    %eax,%edi
40b8dc:	72 ba                	jb     0x40b898
40b8de:	eb 03                	jmp    0x40b8e3
40b8e0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b8e3:	85 c9                	test   %ecx,%ecx
40b8e5:	0f 84 2e 01 00 00    	je     0x40ba19
40b8eb:	e8 9b eb ff ff       	call   0x40a48b
40b8f0:	83 f8 04             	cmp    $0x4,%eax
40b8f3:	77 1d                	ja     0x40b912
40b8f5:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b8f8:	e8 c9 f2 ff ff       	call   0x40abc6
40b8fd:	ff 15 48 20 41 00    	call   *0x412048
40b903:	85 c0                	test   %eax,%eax
40b905:	0f 85 87 00 00 00    	jne    0x40b992
40b90b:	68 2b 04 00 00       	push   $0x42b
40b910:	eb 7a                	jmp    0x40b98c
40b912:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b915:	bf 7c 19 40 00       	mov    $0x40197c,%edi
40b91a:	6a 00                	push   $0x0
40b91c:	6a 01                	push   $0x1
40b91e:	8b d7                	mov    %edi,%edx
40b920:	e8 1b e6 ff ff       	call   0x409f40
40b925:	83 f8 ff             	cmp    $0xffffffff,%eax
40b928:	74 1d                	je     0x40b947
40b92a:	ff 75 fc             	push   -0x4(%ebp)
40b92d:	ff 15 d4 20 41 00    	call   *0x4120d4
40b933:	57                   	push   %edi
40b934:	8b f0                	mov    %eax,%esi
40b936:	ff 15 d4 20 41 00    	call   *0x4120d4
40b93c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b93f:	2b f0                	sub    %eax,%esi
40b941:	33 c0                	xor    %eax,%eax
40b943:	66 89 04 71          	mov    %ax,(%ecx,%esi,2)
40b947:	85 db                	test   %ebx,%ebx
40b949:	74 65                	je     0x40b9b0
40b94b:	ff 75 fc             	push   -0x4(%ebp)
40b94e:	ff 15 d4 20 41 00    	call   *0x4120d4
40b954:	53                   	push   %ebx
40b955:	8b f0                	mov    %eax,%esi
40b957:	ff 15 d4 20 41 00    	call   *0x4120d4
40b95d:	6a 01                	push   $0x1
40b95f:	83 c6 0b             	add    $0xb,%esi
40b962:	33 d2                	xor    %edx,%edx
40b964:	03 c6                	add    %esi,%eax
40b966:	50                   	push   %eax
40b967:	6a 07                	push   $0x7
40b969:	59                   	pop    %ecx
40b96a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b96d:	e8 31 dc ff ff       	call   0x4095a3
40b972:	8b f0                	mov    %eax,%esi
40b974:	85 f6                	test   %esi,%esi
40b976:	75 21                	jne    0x40b999
40b978:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b97b:	e8 46 f2 ff ff       	call   0x40abc6
40b980:	ff 15 48 20 41 00    	call   *0x412048
40b986:	85 c0                	test   %eax,%eax
40b988:	75 08                	jne    0x40b992
40b98a:	6a 08                	push   $0x8
40b98c:	ff 15 74 20 41 00    	call   *0x412074
40b992:	33 c0                	xor    %eax,%eax
40b994:	5f                   	pop    %edi
40b995:	5e                   	pop    %esi
40b996:	5b                   	pop    %ebx
40b997:	c9                   	leave