40364c:	ff 15 20 f1 40 00    	call   *0x40f120
403652:	85 c0                	test   %eax,%eax
403654:	75 04                	jne    0x40365a
403656:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
40365a:	ff 36                	push   (%esi)
40365c:	8d 45 bc             	lea    -0x44(%ebp),%eax
40365f:	50                   	push   %eax
403660:	68 04 14 40 00       	push   $0x401404
403665:	68 1c 14 40 00       	push   $0x40141c
40366a:	e8 4b f2 ff ff       	call   0x4028ba
40366f:	83 c4 10             	add    $0x10,%esp
403672:	8d 45 bc             	lea    -0x44(%ebp),%eax
403675:	53                   	push   %ebx
403676:	50                   	push   %eax
403677:	68 2d 04 00 00       	push   $0x42d
40367c:	57                   	push   %edi
40367d:	ff 15 20 f1 40 00    	call   *0x40f120
403683:	85 c0                	test   %eax,%eax
403685:	75 04                	jne    0x40368b
403687:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
40368b:	ff 76 04             	push   0x4(%esi)
40368e:	8d 45 bc             	lea    -0x44(%ebp),%eax
403691:	50                   	push   %eax
403692:	68 04 14 40 00       	push   $0x401404
403697:	68 50 14 40 00       	push   $0x401450
40369c:	e8 19 f2 ff ff       	call   0x4028ba
4036a1:	83 c4 10             	add    $0x10,%esp
4036a4:	f6 46 04 01          	testb  $0x1,0x4(%esi)
4036a8:	74 58                	je     0x403702
4036aa:	53                   	push   %ebx
4036ab:	8d 45 bc             	lea    -0x44(%ebp),%eax
4036ae:	50                   	push   %eax
4036af:	68 2e 04 00 00       	push   $0x42e
4036b4:	57                   	push   %edi
4036b5:	ff 15 20 f1 40 00    	call   *0x40f120
4036bb:	85 c0                	test   %eax,%eax
4036bd:	75 04                	jne    0x4036c3
4036bf:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
4036c3:	8d 45 bc             	lea    -0x44(%ebp),%eax
4036c6:	50                   	push   %eax
4036c7:	68 04 14 40 00       	push   $0x401404
4036cc:	68 6c 14 40 00       	push   $0x40146c
4036d1:	e8 e4 f1 ff ff       	call   0x4028ba
4036d6:	83 c4 0c             	add    $0xc,%esp
4036d9:	39 7e 10             	cmp    %edi,0x10(%esi)
4036dc:	75 07                	jne    0x4036e5
4036de:	68 2f 04 00 00       	push   $0x42f
4036e3:	eb 0b                	jmp    0x4036f0
4036e5:	83 7e 10 01          	cmpl   $0x1,0x10(%esi)
4036e9:	75 17                	jne    0x403702
4036eb:	68 30 04 00 00       	push   $0x430
4036f0:	e8 9a f2 ff ff       	call   0x40298f
4036f5:	c7 04 24 c4 13 40 00 	movl   $0x4013c4,(%esp)
4036fc:	e8 b9 f1 ff ff       	call   0x4028ba
403701:	59                   	pop    %ecx
403702:	f6 46 04 02          	testb  $0x2,0x4(%esi)
403706:	74 58                	je     0x403760
403708:	53                   	push   %ebx
403709:	8d 45 bc             	lea    -0x44(%ebp),%eax
40370c:	50                   	push   %eax
40370d:	68 31 04 00 00       	push   $0x431
403712:	57                   	push   %edi
403713:	ff 15 20 f1 40 00    	call   *0x40f120
403719:	85 c0                	test   %eax,%eax
40371b:	75 04                	jne    0x403721
40371d:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
403721:	8d 45 bc             	lea    -0x44(%ebp),%eax
403724:	50                   	push   %eax
403725:	68 04 14 40 00       	push   $0x401404
40372a:	68 90 14 40 00       	push   $0x401490
40372f:	e8 86 f1 ff ff       	call   0x4028ba
403734:	83 c4 0c             	add    $0xc,%esp
403737:	39 7e 14             	cmp    %edi,0x14(%esi)
40373a:	75 07                	jne    0x403743
40373c:	68 2f 04 00 00       	push   $0x42f
403741:	eb 0b                	jmp    0x40374e
403743:	83 7e 14 01          	cmpl   $0x1,0x14(%esi)
403747:	75 17                	jne    0x403760
403749:	68 30 04 00 00       	push   $0x430
40374e:	e8 3c f2 ff ff       	call   0x40298f
403753:	c7 04 24 c4 13 40 00 	movl   $0x4013c4,(%esp)
40375a:	e8 5b f1 ff ff       	call   0x4028ba
40375f:	59                   	pop    %ecx
403760:	8b 46 04             	mov    0x4(%esi),%eax
403763:	a8 04                	test   $0x4,%al
403765:	74 35                	je     0x40379c
403767:	53                   	push   %ebx
403768:	8d 45 bc             	lea    -0x44(%ebp),%eax
40376b:	50                   	push   %eax
40376c:	68 32 04 00 00       	push   $0x432
403771:	57                   	push   %edi
403772:	ff 15 20 f1 40 00    	call   *0x40f120
403778:	85 c0                	test   %eax,%eax
40377a:	75 04                	jne    0x403780
40377c:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
403780:	ff 76 18             	push   0x18(%esi)
403783:	8d 45 bc             	lea    -0x44(%ebp),%eax
403786:	50                   	push   %eax
403787:	68 04 14 40 00       	push   $0x401404
40378c:	68 b8 14 40 00       	push   $0x4014b8
403791:	e8 24 f1 ff ff       	call   0x4028ba
403796:	8b 46 04             	mov    0x4(%esi),%eax
403799:	83 c4 10             	add    $0x10,%esp
40379c:	a8 08                	test   $0x8,%al
40379e:	74 35                	je     0x4037d5
4037a0:	53                   	push   %ebx
4037a1:	8d 45 bc             	lea    -0x44(%ebp),%eax
4037a4:	50                   	push   %eax
4037a5:	68 33 04 00 00       	push   $0x433
4037aa:	57                   	push   %edi
4037ab:	ff 15 20 f1 40 00    	call   *0x40f120
4037b1:	85 c0                	test   %eax,%eax
4037b3:	75 04                	jne    0x4037b9
4037b5:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
4037b9:	ff 76 1c             	push   0x1c(%esi)
4037bc:	8d 45 bc             	lea    -0x44(%ebp),%eax
4037bf:	50                   	push   %eax
4037c0:	68 04 14 40 00       	push   $0x401404
4037c5:	68 b8 14 40 00       	push   $0x4014b8
4037ca:	e8 eb f0 ff ff       	call   0x4028ba
4037cf:	8b 46 04             	mov    0x4(%esi),%eax
4037d2:	83 c4 10             	add    $0x10,%esp
4037d5:	a8 10                	test   $0x10,%al
4037d7:	74 32                	je     0x40380b
4037d9:	53                   	push   %ebx
4037da:	8d 45 bc             	lea    -0x44(%ebp),%eax
4037dd:	50                   	push   %eax
4037de:	68 34 04 00 00       	push   $0x434
4037e3:	57                   	push   %edi
4037e4:	ff 15 20 f1 40 00    	call   *0x40f120
4037ea:	85 c0                	test   %eax,%eax
4037ec:	75 04                	jne    0x4037f2
4037ee:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
4037f2:	ff 76 20             	push   0x20(%esi)
4037f5:	8d 45 bc             	lea    -0x44(%ebp),%eax
4037f8:	50                   	push   %eax
4037f9:	68 04 14 40 00       	push   $0x401404
4037fe:	68 d4 14 40 00       	push   $0x4014d4
403803:	e8 b2 f0 ff ff       	call   0x4028ba
403808:	83 c4 10             	add    $0x10,%esp
40380b:	53                   	push   %ebx
40380c:	8d 45 bc             	lea    -0x44(%ebp),%eax
40380f:	50                   	push   %eax
403810:	68 35 04 00 00       	push   $0x435
403815:	57                   	push   %edi
403816:	ff 15 20 f1 40 00    	call   *0x40f120
40381c:	85 c0                	test   %eax,%eax
40381e:	75 04                	jne    0x403824
403820:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
403824:	ff 76 08             	push   0x8(%esi)
403827:	8d 45 bc             	lea    -0x44(%ebp),%eax
40382a:	50                   	push   %eax
40382b:	68 04 14 40 00       	push   $0x401404
403830:	68 ec 14 40 00       	push   $0x4014ec
403835:	e8 80 f0 ff ff       	call   0x4028ba
40383a:	8b 46 08             	mov    0x8(%esi),%eax
40383d:	83 c4 10             	add    $0x10,%esp
403840:	a8 01                	test   $0x1,%al
403842:	74 32                	je     0x403876
403844:	53                   	push   %ebx
403845:	8d 45 bc             	lea    -0x44(%ebp),%eax
403848:	50                   	push   %eax
403849:	68 36 04 00 00       	push   $0x436
40384e:	57                   	push   %edi
40384f:	ff 15 20 f1 40 00    	call   *0x40f120
403855:	85 c0                	test   %eax,%eax
403857:	75 04                	jne    0x40385d
403859:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
40385d:	8d 45 bc             	lea    -0x44(%ebp),%eax
403860:	50                   	push   %eax
403861:	68 04 14 40 00       	push   $0x401404
403866:	68 1c 15 40 00       	push   $0x40151c
40386b:	e8 4a f0 ff ff       	call   0x4028ba
403870:	8b 46 08             	mov    0x8(%esi),%eax
403873:	83 c4 0c             	add    $0xc,%esp
403876:	a8 02                	test   $0x2,%al
403878:	74 2f                	je     0x4038a9
40387a:	53                   	push   %ebx
40387b:	8d 45 bc             	lea    -0x44(%ebp),%eax
40387e:	50                   	push   %eax
40387f:	68 37 04 00 00       	push   $0x437
403884:	57                   	push   %edi
403885:	ff 15 20 f1 40 00    	call   *0x40f120
40388b:	85 c0                	test   %eax,%eax
40388d:	75 04                	jne    0x403893
40388f:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
403893:	8d 45 bc             	lea    -0x44(%ebp),%eax
403896:	50                   	push   %eax
403897:	68 04 14 40 00       	push   $0x401404
40389c:	68 1c 15 40 00       	push   $0x40151c
4038a1:	e8 14 f0 ff ff       	call   0x4028ba
4038a6:	83 c4 0c             	add    $0xc,%esp
4038a9:	f6 46 04 80          	testb  $0x80,0x4(%esi)
4038ad:	0f 84 94 00 00 00    	je     0x403947
4038b3:	53                   	push   %ebx
4038b4:	8d 45 bc             	lea    -0x44(%ebp),%eax
4038b7:	50                   	push   %eax
4038b8:	68 38 04 00 00       	push   $0x438
4038bd:	57                   	push   %edi
4038be:	ff 15 20 f1 40 00    	call   *0x40f120
4038c4:	85 c0                	test   %eax,%eax
4038c6:	75 04                	jne    0x4038cc
4038c8:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
4038cc:	8d 45 bc             	lea    -0x44(%ebp),%eax
4038cf:	50                   	push   %eax
4038d0:	68 04 14 40 00       	push   $0x401404
4038d5:	68 5c 15 40 00       	push   $0x40155c
4038da:	e8 db ef ff ff       	call   0x4028ba
4038df:	8b 46 0c             	mov    0xc(%esi),%eax
4038e2:	83 c4 0c             	add    $0xc,%esp
4038e5:	85 c0                	test   %eax,%eax
4038e7:	75 07                	jne    0x4038f0
4038e9:	68 2f 04 00 00       	push   $0x42f
4038ee:	eb 16                	jmp    0x403906
4038f0:	83 f8 01             	cmp    $0x1,%eax
4038f3:	75 07                	jne    0x4038fc
4038f5:	68 39 04 00 00       	push   $0x439
4038fa:	eb 0a                	jmp    0x403906
4038fc:	83 f8 02             	cmp    $0x2,%eax
4038ff:	75 19                	jne    0x40391a
403901:	68 3a 04 00 00       	push   $0x43a
403906:	e8 84 f0 ff ff       	call   0x40298f
40390b:	c7 04 24 c4 13 40 00 	movl   $0x4013c4,(%esp)
403912:	e8 a3 ef ff ff       	call   0x4028ba
403917:	59                   	pop    %ecx
403918:	eb 2d                	jmp    0x403947
40391a:	53                   	push   %ebx
40391b:	8d 45 bc             	lea    -0x44(%ebp),%eax
40391e:	50                   	push   %eax
40391f:	68 3b 04 00 00       	push   $0x43b
403924:	57                   	push   %edi
403925:	ff 15 20 f1 40 00    	call   *0x40f120
40392b:	85 c0                	test   %eax,%eax
40392d:	75 04                	jne    0x403933
40392f:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
403933:	ff 76 0c             	push   0xc(%esi)
403936:	8d 45 bc             	lea    -0x44(%ebp),%eax
403939:	50                   	push   %eax
40393a:	68 74 15 40 00       	push   $0x401574
40393f:	e8 76 ef ff ff       	call   0x4028ba
403944:	83 c4 0c             	add    $0xc,%esp
403947:	8b 46 04             	mov    0x4(%esi),%eax
40394a:	a8 20                	test   $0x20,%al
40394c:	74 42                	je     0x403990
40394e:	53                   	push   %ebx
40394f:	8d 45 bc             	lea    -0x44(%ebp),%eax
403952:	50                   	push   %eax
403953:	68 3c 04 00 00       	push   $0x43c
403958:	57                   	push   %edi
403959:	ff 15 20 f1 40 00    	call   *0x40f120
40395f:	85 c0                	test   %eax,%eax
403961:	75 04                	jne    0x403967
403963:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
403967:	8d 45 bc             	lea    -0x44(%ebp),%eax
40396a:	50                   	push   %eax
40396b:	68 04 14 40 00       	push   $0x401404
403970:	68 88 15 40 00       	push   $0x401588
403975:	e8 40 ef ff ff       	call   0x4028ba
40397a:	8b 56 2c             	mov    0x2c(%esi),%edx
40397d:	83 c4 0c             	add    $0xc,%esp
403980:	b9 b8 15 40 00       	mov    $0x4015b8,%ecx
403985:	ff 76 24             	push   0x24(%esi)
403988:	e8 ad fb ff ff       	call   0x40353a
40398d:	8b 46 04             	mov    0x4(%esi),%eax
403990:	a8 40                	test   $0x40,%al
403992:	74 55                	je     0x4039e9
403994:	53                   	push   %ebx
403995:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40399b:	50                   	push   %eax
40399c:	68 3e 04 00 00       	push   $0x43e
4039a1:	57                   	push   %edi
4039a2:	ff 15 20 f1 40 00    	call   *0x40f120
4039a8:	85 c0                	test   %eax,%eax
4039aa:	75 07                	jne    0x4039b3
4039ac:	66 89 85 7c ff ff ff 	mov    %ax,-0x84(%ebp)
4039b3:	53                   	push   %ebx
4039b4:	8d 45 bc             	lea    -0x44(%ebp),%eax
4039b7:	50                   	push   %eax
4039b8:	68 3d 04 00 00       	push   $0x43d
4039bd:	57                   	push   %edi
4039be:	ff 15 20 f1 40 00    	call   *0x40f120
4039c4:	85 c0                	test   %eax,%eax
4039c6:	75 04                	jne    0x4039cc
4039c8:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
4039cc:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4039d2:	50                   	push   %eax
4039d3:	8d 45 bc             	lea    -0x44(%ebp),%eax
4039d6:	50                   	push   %eax
4039d7:	68 04 14 40 00       	push   $0x401404
4039dc:	68 f0 15 40 00       	push   $0x4015f0
4039e1:	e8 d4 ee ff ff       	call   0x4028ba
4039e6:	83 c4 10             	add    $0x10,%esp
4039e9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4039ec:	5f                   	pop    %edi
4039ed:	5e                   	pop    %esi
4039ee:	33 cd                	xor    %ebp,%ecx
4039f0:	5b                   	pop    %ebx
4039f1:	e8 da 50 00 00       	call   0x408ad0
4039f6:	c9                   	leave
4039f7:	c3                   	ret
4039f8:	8b ff                	mov    %edi,%edi
4039fa:	55                   	push   %ebp
4039fb:	8b ec                	mov    %esp,%ebp
4039fd:	51                   	push   %ecx
4039fe:	51                   	push   %ecx
4039ff:	53                   	push   %ebx
403a00:	56                   	push   %esi
403a01:	57                   	push   %edi
403a02:	33 f6                	xor    %esi,%esi
403a04:	89 55 f8             	mov    %edx,-0x8(%ebp)
403a07:	6a 05                	push   $0x5
403a09:	8b d9                	mov    %ecx,%ebx
403a0b:	89 75 fc             	mov    %esi,-0x4(%ebp)
403a0e:	8b fe                	mov    %esi,%edi
403a10:	5a                   	pop    %edx
403a11:	0f b7 0b             	movzwl (%ebx),%ecx
403a14:	66 85 c9             	test   %cx,%cx
403a17:	74 65                	je     0x403a7e
403a19:	8d 41 d0             	lea    -0x30(%ecx),%eax
403a1c:	66 83 f8 09          	cmp    $0x9,%ax
403a20:	77 13                	ja     0x403a35
403a22:	0f a4 f7 04          	shld   $0x4,%esi,%edi
403a26:	8b c1                	mov    %ecx,%eax
403a28:	c1 e6 04             	shl    $0x4,%esi
403a2b:	99                   	cltd
403a2c:	03 f0                	add    %eax,%esi
403a2e:	13 fa                	adc    %edx,%edi
403a30:	83 c6 d0             	add    $0xffffffd0,%esi
403a33:	eb 34                	jmp    0x403a69
403a35:	8d 41 bf             	lea    -0x41(%ecx),%eax
403a38:	66 3b c2             	cmp    %dx,%ax
403a3b:	77 13                	ja     0x403a50
403a3d:	0f a4 f7 04          	shld   $0x4,%esi,%edi
403a41:	8b c1                	mov    %ecx,%eax
403a43:	c1 e6 04             	shl    $0x4,%esi
403a46:	99                   	cltd
403a47:	03 f0                	add    %eax,%esi
403a49:	13 fa                	adc    %edx,%edi
403a4b:	83 c6 c9             	add    $0xffffffc9,%esi
403a4e:	eb 19                	jmp    0x403a69
403a50:	8d 41 9f             	lea    -0x61(%ecx),%eax
403a53:	66 3b c2             	cmp    %dx,%ax
403a56:	77 38                	ja     0x403a90
403a58:	0f a4 f7 04          	shld   $0x4,%esi,%edi
403a5c:	8b c1                	mov    %ecx,%eax
403a5e:	c1 e6 04             	shl    $0x4,%esi
403a61:	99                   	cltd
403a62:	03 f0                	add    %eax,%esi
403a64:	13 fa                	adc    %edx,%edi
403a66:	83 c6 a9             	add    $0xffffffa9,%esi