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
403a69:	8b 45 fc             	mov    -0x4(%ebp),%eax
403a6c:	83 d7 ff             	adc    $0xffffffff,%edi
403a6f:	40                   	inc    %eax
403a70:	83 c3 02             	add    $0x2,%ebx
403a73:	89 45 fc             	mov    %eax,-0x4(%ebp)
403a76:	6a 05                	push   $0x5
403a78:	5a                   	pop    %edx
403a79:	83 f8 10             	cmp    $0x10,%eax
403a7c:	7c 93                	jl     0x403a11
403a7e:	8b 45 f8             	mov    -0x8(%ebp),%eax
403a81:	89 30                	mov    %esi,(%eax)
403a83:	89 78 04             	mov    %edi,0x4(%eax)
403a86:	33 c0                	xor    %eax,%eax
403a88:	40                   	inc    %eax
403a89:	5f                   	pop    %edi
403a8a:	5e                   	pop    %esi
403a8b:	5b                   	pop    %ebx
403a8c:	c9                   	leave
403a8d:	c2 08 00             	ret    $0x8
403a90:	33 c0                	xor    %eax,%eax
403a92:	eb f5                	jmp    0x403a89
403a94:	8b ff                	mov    %edi,%edi
403a96:	55                   	push   %ebp
403a97:	8b ec                	mov    %esp,%ebp
403a99:	83 ec 0c             	sub    $0xc,%esp
403a9c:	53                   	push   %ebx
403a9d:	56                   	push   %esi
403a9e:	57                   	push   %edi
403a9f:	6a 78                	push   $0x78
403aa1:	8b f9                	mov    %ecx,%edi
403aa3:	89 55 fc             	mov    %edx,-0x4(%ebp)
403aa6:	5e                   	pop    %esi
403aa7:	6a 30                	push   $0x30
403aa9:	5b                   	pop    %ebx
403aaa:	0f b7 07             	movzwl (%edi),%eax
403aad:	8b c8                	mov    %eax,%ecx
403aaf:	66 3b c3             	cmp    %bx,%ax
403ab2:	75 19                	jne    0x403acd
403ab4:	0f b7 47 02          	movzwl 0x2(%edi),%eax
403ab8:	66 3b c6             	cmp    %si,%ax
403abb:	74 0a                	je     0x403ac7
403abd:	6a 58                	push   $0x58
403abf:	5e                   	pop    %esi
403ac0:	8b cb                	mov    %ebx,%ecx
403ac2:	66 3b c6             	cmp    %si,%ax
403ac5:	75 06                	jne    0x403acd
403ac7:	83 c7 04             	add    $0x4,%edi
403aca:	0f b7 0f             	movzwl (%edi),%ecx
403acd:	6a 2d                	push   $0x2d
403acf:	5e                   	pop    %esi
403ad0:	89 7d f8             	mov    %edi,-0x8(%ebp)
403ad3:	66 3b ce             	cmp    %si,%cx
403ad6:	74 17                	je     0x403aef
403ad8:	8d 4f 02             	lea    0x2(%edi),%ecx
403adb:	0f b7 01             	movzwl (%ecx),%eax
403ade:	8b d0                	mov    %eax,%edx
403ae0:	66 85 c0             	test   %ax,%ax
403ae3:	74 07                	je     0x403aec
403ae5:	8b f9                	mov    %ecx,%edi
403ae7:	66 3b d6             	cmp    %si,%dx
403aea:	75 ec                	jne    0x403ad8
403aec:	8b 55 fc             	mov    -0x4(%ebp),%edx
403aef:	0f b7 07             	movzwl (%edi),%eax
403af2:	8b d8                	mov    %eax,%ebx
403af4:	66 85 c0             	test   %ax,%ax
403af7:	74 51                	je     0x403b4a
403af9:	51                   	push   %ecx
403afa:	33 c0                	xor    %eax,%eax
403afc:	8b f7                	mov    %edi,%esi
403afe:	51                   	push   %ecx
403aff:	8b 4d f8             	mov    -0x8(%ebp),%ecx
403b02:	66 89 07             	mov    %ax,(%edi)
403b05:	83 c7 02             	add    $0x2,%edi
403b08:	e8 eb fe ff ff       	call   0x4039f8
403b0d:	66 89 1e             	mov    %bx,(%esi)
403b10:	85 c0                	test   %eax,%eax
403b12:	74 36                	je     0x403b4a
403b14:	6a 30                	push   $0x30
403b16:	58                   	pop    %eax
403b17:	66 39 07             	cmp    %ax,(%edi)
403b1a:	75 17                	jne    0x403b33
403b1c:	0f b7 47 02          	movzwl 0x2(%edi),%eax
403b20:	6a 78                	push   $0x78
403b22:	59                   	pop    %ecx
403b23:	66 3b c1             	cmp    %cx,%ax
403b26:	74 08                	je     0x403b30
403b28:	6a 58                	push   $0x58
403b2a:	59                   	pop    %ecx
403b2b:	66 3b c1             	cmp    %cx,%ax
403b2e:	75 03                	jne    0x403b33
403b30:	83 c7 04             	add    $0x4,%edi
403b33:	8b 55 fc             	mov    -0x4(%ebp),%edx
403b36:	51                   	push   %ecx
403b37:	51                   	push   %ecx
403b38:	83 c2 08             	add    $0x8,%edx
403b3b:	8b cf                	mov    %edi,%ecx
403b3d:	e8 b6 fe ff ff       	call   0x4039f8
403b42:	85 c0                	test   %eax,%eax
403b44:	74 04                	je     0x403b4a
403b46:	b0 01                	mov    $0x1,%al
403b48:	eb 02                	jmp    0x403b4c
403b4a:	32 c0                	xor    %al,%al
403b4c:	5f                   	pop    %edi
403b4d:	5e                   	pop    %esi
403b4e:	5b                   	pop    %ebx
403b4f:	c9                   	leave
403b50:	c3                   	ret
403b51:	8b ff                	mov    %edi,%edi
403b53:	55                   	push   %ebp
403b54:	8b ec                	mov    %esp,%ebp
403b56:	51                   	push   %ecx
403b57:	53                   	push   %ebx
403b58:	56                   	push   %esi
403b59:	57                   	push   %edi
403b5a:	8b f9                	mov    %ecx,%edi
403b5c:	33 d2                	xor    %edx,%edx
403b5e:	8b f7                	mov    %edi,%esi
403b60:	8d 4e 02             	lea    0x2(%esi),%ecx
403b63:	66 8b 06             	mov    (%esi),%ax
403b66:	83 c6 02             	add    $0x2,%esi
403b69:	66 3b c2             	cmp    %dx,%ax
403b6c:	75 f5                	jne    0x403b63
403b6e:	2b f1                	sub    %ecx,%esi
403b70:	8b da                	mov    %edx,%ebx
403b72:	d1 fe                	sar    $1,%esi
403b74:	74 47                	je     0x403bbd
403b76:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
403b7d:	0f b7 0f             	movzwl (%edi),%ecx
403b80:	8d 41 d0             	lea    -0x30(%ecx),%eax
403b83:	66 83 f8 09          	cmp    $0x9,%ax
403b87:	77 08                	ja     0x403b91
403b89:	c1 e2 04             	shl    $0x4,%edx
403b8c:	83 c2 d0             	add    $0xffffffd0,%edx
403b8f:	eb 20                	jmp    0x403bb1
403b91:	8d 41 bf             	lea    -0x41(%ecx),%eax
403b94:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
403b98:	77 08                	ja     0x403ba2
403b9a:	c1 e2 04             	shl    $0x4,%edx
403b9d:	83 c2 c9             	add    $0xffffffc9,%edx
403ba0:	eb 0f                	jmp    0x403bb1
403ba2:	8d 41 9f             	lea    -0x61(%ecx),%eax
403ba5:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
403ba9:	77 19                	ja     0x403bc4
403bab:	c1 e2 04             	shl    $0x4,%edx
403bae:	83 c2 a9             	add    $0xffffffa9,%edx
403bb1:	8b c1                	mov    %ecx,%eax
403bb3:	83 c7 02             	add    $0x2,%edi
403bb6:	03 d0                	add    %eax,%edx
403bb8:	43                   	inc    %ebx
403bb9:	3b de                	cmp    %esi,%ebx
403bbb:	72 c0                	jb     0x403b7d
403bbd:	8b c2                	mov    %edx,%eax
403bbf:	5f                   	pop    %edi
403bc0:	5e                   	pop    %esi
403bc1:	5b                   	pop    %ebx
403bc2:	c9                   	leave
403bc3:	c3                   	ret
403bc4:	33 c0                	xor    %eax,%eax
403bc6:	eb f7                	jmp    0x403bbf
403bc8:	8b ff                	mov    %edi,%edi
403bca:	55                   	push   %ebp
403bcb:	8b ec                	mov    %esp,%ebp
403bcd:	83 ec 20             	sub    $0x20,%esp
403bd0:	a1 04 a0 40 00       	mov    0x40a004,%eax
403bd5:	33 c5                	xor    %ebp,%eax
403bd7:	89 45 fc             	mov    %eax,-0x4(%ebp)
403bda:	53                   	push   %ebx
403bdb:	8b c1                	mov    %ecx,%eax
403bdd:	89 55 e0             	mov    %edx,-0x20(%ebp)
403be0:	8b 55 08             	mov    0x8(%ebp),%edx
403be3:	56                   	push   %esi
403be4:	8b f0                	mov    %eax,%esi
403be6:	89 45 e8             	mov    %eax,-0x18(%ebp)
403be9:	57                   	push   %edi
403bea:	33 ff                	xor    %edi,%edi