403981:	53                   	push   %ebx
403982:	50                   	push   %eax
403983:	53                   	push   %ebx
403984:	ff 74 24 28          	push   0x28(%esp)
403988:	c7 44 24 34 01 00 00 	movl   $0x1,0x34(%esp)
40398f:	00
403990:	c7 44 24 40 02 00 00 	movl   $0x2,0x40(%esp)
403997:	00
403998:	ff 15 00 80 40 00    	call   *0x408000
40399e:	6a 04                	push   $0x4
4039a0:	e8 1d 2e 00 00       	call   0x4067c2
4039a5:	3b c3                	cmp    %ebx,%eax
4039a7:	be 02 00 04 80       	mov    $0x80040002,%esi
4039ac:	74 0c                	je     0x4039ba
4039ae:	56                   	push   %esi
4039af:	6a 25                	push   $0x25
4039b1:	53                   	push   %ebx
4039b2:	53                   	push   %ebx
4039b3:	53                   	push   %ebx
4039b4:	ff d0                	call   *%eax
4039b6:	85 c0                	test   %eax,%eax
4039b8:	74 0d                	je     0x4039c7
4039ba:	56                   	push   %esi
4039bb:	6a 02                	push   $0x2
4039bd:	ff 15 4c 82 40 00    	call   *0x40824c
4039c3:	85 c0                	test   %eax,%eax
4039c5:	75 07                	jne    0x4039ce
4039c7:	6a 09                	push   $0x9
4039c9:	e8 3d da ff ff       	call   0x40140b
4039ce:	a1 0c a3 42 00       	mov    0x42a30c,%eax
4039d3:	83 f8 ff             	cmp    $0xffffffff,%eax
4039d6:	74 04                	je     0x4039dc
4039d8:	89 44 24 10          	mov    %eax,0x10(%esp)
4039dc:	ff 74 24 10          	push   0x10(%esp)
4039e0:	ff 15 70 80 40 00    	call   *0x408070
4039e6:	a1 18 a0 40 00       	mov    0x40a018,%eax
4039eb:	56                   	push   %esi
4039ec:	8b 35 20 81 40 00    	mov    0x408120,%esi
4039f2:	83 f8 ff             	cmp    $0xffffffff,%eax
4039f5:	74 0a                	je     0x403a01
4039f7:	50                   	push   %eax
4039f8:	ff d6                	call   *%esi
4039fa:	83 0d 18 a0 40 00 ff 	orl    $0xffffffff,0x40a018
403a01:	a1 1c a0 40 00       	mov    0x40a01c,%eax
403a06:	83 f8 ff             	cmp    $0xffffffff,%eax
403a09:	74 0a                	je     0x403a15
403a0b:	50                   	push   %eax
403a0c:	ff d6                	call   *%esi
403a0e:	83 0d 1c a0 40 00 ff 	orl    $0xffffffff,0x40a01c
403a15:	e8 29 00 00 00       	call   0x403a43
403a1a:	6a 07                	push   $0x7
403a1c:	68 00 80 43 00       	push   $0x438000
403a21:	e8 d4 20 00 00       	call   0x405afa
403a26:	5e                   	pop    %esi
403a27:	c3                   	ret
403a28:	56                   	push   %esi
403a29:	8b 35 ec 16 42 00    	mov    0x4216ec,%esi
403a2f:	eb 0a                	jmp    0x403a3b
403a31:	ff 74 24 08          	push   0x8(%esp)
403a35:	ff 56 04             	call   *0x4(%esi)
403a38:	8b 36                	mov    (%esi),%esi
403a3a:	59                   	pop    %ecx
403a3b:	85 f6                	test   %esi,%esi
403a3d:	75 f2                	jne    0x403a31
403a3f:	5e                   	pop    %esi
403a40:	c2 04 00             	ret    $0x4
403a43:	56                   	push   %esi
403a44:	8b 35 ec 16 42 00    	mov    0x4216ec,%esi
403a4a:	6a 00                	push   $0x0
403a4c:	e8 d7 ff ff ff       	call   0x403a28
403a51:	85 f6                	test   %esi,%esi
403a53:	74 1a                	je     0x403a6f
403a55:	57                   	push   %edi
403a56:	8b fe                	mov    %esi,%edi
403a58:	8b 36                	mov    (%esi),%esi
403a5a:	ff 77 08             	push   0x8(%edi)
403a5d:	ff 15 68 81 40 00    	call   *0x408168
403a63:	57                   	push   %edi
403a64:	ff 15 28 81 40 00    	call   *0x408128
403a6a:	85 f6                	test   %esi,%esi
403a6c:	75 e8                	jne    0x403a56
403a6e:	5f                   	pop    %edi
403a6f:	83 25 ec 16 42 00 00 	andl   $0x0,0x4216ec
403a76:	5e                   	pop    %esi
403a77:	c3                   	ret
403a78:	a1 ec 16 42 00       	mov    0x4216ec,%eax
403a7d:	eb 0b                	jmp    0x403a8a
403a7f:	8b 48 08             	mov    0x8(%eax),%ecx
403a82:	3b 4c 24 04          	cmp    0x4(%esp),%ecx
403a86:	74 0a                	je     0x403a92
403a88:	8b 00                	mov    (%eax),%eax
403a8a:	85 c0                	test   %eax,%eax
403a8c:	75 f1                	jne    0x403a7f
403a8e:	40                   	inc    %eax
403a8f:	c2 04 00             	ret    $0x4
403a92:	33 c0                	xor    %eax,%eax
403a94:	eb f9                	jmp    0x403a8f
403a96:	56                   	push   %esi
403a97:	8b 74 24 08          	mov    0x8(%esp),%esi
403a9b:	56                   	push   %esi
403a9c:	e8 d7 ff ff ff       	call   0x403a78
403aa1:	85 c0                	test   %eax,%eax
403aa3:	75 03                	jne    0x403aa8
403aa5:	40                   	inc    %eax
403aa6:	eb 2c                	jmp    0x403ad4
403aa8:	6a 0c                	push   $0xc
403aaa:	6a 40                	push   $0x40
403aac:	ff 15 34 81 40 00    	call   *0x408134
403ab2:	85 c0                	test   %eax,%eax
403ab4:	74 1b                	je     0x403ad1
403ab6:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
403aba:	89 70 08             	mov    %esi,0x8(%eax)
403abd:	89 48 04             	mov    %ecx,0x4(%eax)
403ac0:	8b 0d ec 16 42 00    	mov    0x4216ec,%ecx
403ac6:	89 08                	mov    %ecx,(%eax)
403ac8:	a3 ec 16 42 00       	mov    %eax,0x4216ec
403acd:	33 c0                	xor    %eax,%eax
403acf:	eb 03                	jmp    0x403ad4
403ad1:	83 c8 ff             	or     $0xffffffff,%eax
403ad4:	5e                   	pop    %esi
403ad5:	c2 08 00             	ret    $0x8
403ad8:	83 ec 10             	sub    $0x10,%esp
403adb:	53                   	push   %ebx
403adc:	55                   	push   %ebp
403add:	56                   	push   %esi
403ade:	8b 35 54 a2 42 00    	mov    0x42a254,%esi
403ae4:	57                   	push   %edi
403ae5:	6a 02                	push   $0x2
403ae7:	e8 d6 2c 00 00       	call   0x4067c2
403aec:	33 ff                	xor    %edi,%edi
403aee:	3b c7                	cmp    %edi,%eax
403af0:	74 12                	je     0x403b04
403af2:	ff d0                	call   *%eax
403af4:	0f b7 c0             	movzwl %ax,%eax
403af7:	50                   	push   %eax
403af8:	68 00 70 43 00       	push   $0x437000
403afd:	e8 2d 28 00 00       	call   0x40632f
403b02:	eb 5a                	jmp    0x403b5e
403b04:	bb 28 37 42 00       	mov    $0x423728,%ebx
403b09:	57                   	push   %edi
403b0a:	53                   	push   %ebx
403b0b:	57                   	push   %edi
403b0c:	68 98 83 40 00       	push   $0x408398
403b11:	68 01 00 00 80       	push   $0x80000001
403b16:	66 c7 05 00 70 43 00 	movw   $0x30,0x437000
403b1d:	30 00
403b1f:	66 c7 05 02 70 43 00 	movw   $0x78,0x437002
403b26:	78 00
403b28:	66 89 3d 04 70 43 00 	mov    %di,0x437004
403b2f:	e8 82 27 00 00       	call   0x4062b6
403b34:	66 39 3d 28 37 42 00 	cmp    %di,0x423728
403b3b:	75 16                	jne    0x403b53
403b3d:	57                   	push   %edi
403b3e:	53                   	push   %ebx
403b3f:	68 d4 83 40 00       	push   $0x4083d4
403b44:	68 48 83 40 00       	push   $0x408348
403b49:	68 03 00 00 80       	push   $0x80000003
403b4e:	e8 63 27 00 00       	call   0x4062b6
403b53:	53                   	push   %ebx
403b54:	68 00 70 43 00       	push   $0x437000
403b59:	e8 a6 28 00 00       	call   0x406404
403b5e:	e8 4b 02 00 00       	call   0x403dae
403b63:	a1 5c a2 42 00       	mov    0x42a25c,%eax
403b68:	bd 00 58 43 00       	mov    $0x435800,%ebp
403b6d:	83 e0 20             	and    $0x20,%eax
403b70:	55                   	push   %ebp
403b71:	a3 e0 a2 42 00       	mov    %eax,0x42a2e0
403b76:	c7 05 fc a2 42 00 00 	movl   $0x10000,0x42a2fc
403b7d:	00 01 00
403b80:	e8 40 22 00 00       	call   0x405dc5
403b85:	85 c0                	test   %eax,%eax
403b87:	0f 85 8c 00 00 00    	jne    0x403c19
403b8d:	8b 4e 48             	mov    0x48(%esi),%ecx
403b90:	3b cf                	cmp    %edi,%ecx
403b92:	0f 84 81 00 00 00    	je     0x403c19
403b98:	8b 56 4c             	mov    0x4c(%esi),%edx
403b9b:	a1 98 a2 42 00       	mov    0x42a298,%eax
403ba0:	bb e0 81 42 00       	mov    $0x4281e0,%ebx
403ba5:	57                   	push   %edi
403ba6:	8d 14 50             	lea    (%eax,%edx,2),%edx
403ba9:	53                   	push   %ebx
403baa:	8d 04 48             	lea    (%eax,%ecx,2),%eax
403bad:	52                   	push   %edx
403bae:	50                   	push   %eax
403baf:	ff 76 44             	push   0x44(%esi)
403bb2:	e8 ff 26 00 00       	call   0x4062b6
403bb7:	66 a1 e0 81 42 00    	mov    0x4281e0,%ax
403bbd:	66 3b c7             	cmp    %di,%ax
403bc0:	74 57                	je     0x403c19
403bc2:	66 3d 22 00          	cmp    $0x22,%ax
403bc6:	75 10                	jne    0x403bd8
403bc8:	bb e2 81 42 00       	mov    $0x4281e2,%ebx
403bcd:	6a 22                	push   $0x22
403bcf:	53                   	push   %ebx
403bd0:	e8 15 21 00 00       	call   0x405cea
403bd5:	66 89 38             	mov    %di,(%eax)
403bd8:	53                   	push   %ebx
403bd9:	e8 20 28 00 00       	call   0x4063fe
403bde:	8d 44 43 f8          	lea    -0x8(%ebx,%eax,2),%eax
403be2:	3b c3                	cmp    %ebx,%eax
403be4:	76 26                	jbe    0x403c0c
403be6:	68 bc a3 40 00       	push   $0x40a3bc
403beb:	50                   	push   %eax
403bec:	ff 15 04 81 40 00    	call   *0x408104
403bf2:	85 c0                	test   %eax,%eax
403bf4:	75 16                	jne    0x403c0c
403bf6:	53                   	push   %ebx
403bf7:	ff 15 94 80 40 00    	call   *0x408094
403bfd:	83 f8 ff             	cmp    $0xffffffff,%eax
403c00:	74 04                	je     0x403c06
403c02:	a8 10                	test   $0x10,%al
403c04:	75 06                	jne    0x403c0c
403c06:	53                   	push   %ebx
403c07:	e8 fd 20 00 00       	call   0x405d09
403c0c:	53                   	push   %ebx
403c0d:	e8 ab 20 00 00       	call   0x405cbd
403c12:	50                   	push   %eax
403c13:	55                   	push   %ebp
403c14:	e8 cf 27 00 00       	call   0x4063e8
403c19:	55                   	push   %ebp
403c1a:	e8 a6 21 00 00       	call   0x405dc5
403c1f:	85 c0                	test   %eax,%eax
403c21:	75 0c                	jne    0x403c2f
403c23:	ff b6 18 01 00 00    	push   0x118(%esi)
403c29:	55                   	push   %ebp
403c2a:	e8 db 27 00 00       	call   0x40640a
403c2f:	68 40 80 00 00       	push   $0x8040
403c34:	57                   	push   %edi
403c35:	57                   	push   %edi
403c36:	6a 01                	push   $0x1
403c38:	6a 67                	push   $0x67
403c3a:	ff 35 40 a2 42 00    	push   0x42a240
403c40:	ff 15 60 82 40 00    	call   *0x408260
403c46:	a3 28 92 42 00       	mov    %eax,0x429228
403c4b:	83 7e 50 ff          	cmpl   $0xffffffff,0x50(%esi)
403c4f:	bb e0 91 42 00       	mov    $0x4291e0,%ebx
403c54:	74 7f                	je     0x403cd5
403c56:	8b 0d 40 a2 42 00    	mov    0x42a240,%ecx
403c5c:	be b4 a3 40 00       	mov    $0x40a3b4,%esi
403c61:	53                   	push   %ebx
403c62:	c7 05 e4 91 42 00 00 	movl   $0x401000,0x4291e4
403c69:	10 40 00
403c6c:	89 0d f0 91 42 00    	mov    %ecx,0x4291f0
403c72:	a3 f4 91 42 00       	mov    %eax,0x4291f4
403c77:	89 35 04 92 42 00    	mov    %esi,0x429204
403c7d:	ff 15 34 82 40 00    	call   *0x408234
403c83:	66 85 c0             	test   %ax,%ax
403c86:	0f 84 18 01 00 00    	je     0x403da4
403c8c:	8d 44 24 10          	lea    0x10(%esp),%eax
403c90:	57                   	push   %edi
403c91:	50                   	push   %eax
403c92:	57                   	push   %edi
403c93:	6a 30                	push   $0x30
403c95:	ff 15 38 82 40 00    	call   *0x408238
403c9b:	57                   	push   %edi
403c9c:	ff 35 40 a2 42 00    	push   0x42a240
403ca2:	8b 44 24 24          	mov    0x24(%esp),%eax
403ca6:	2b 44 24 1c          	sub    0x1c(%esp),%eax
403caa:	57                   	push   %edi
403cab:	57                   	push   %edi
403cac:	50                   	push   %eax
403cad:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403cb1:	2b 44 24 24          	sub    0x24(%esp),%eax
403cb5:	50                   	push   %eax
403cb6:	ff 74 24 2c          	push   0x2c(%esp)
403cba:	ff 74 24 2c          	push   0x2c(%esp)
403cbe:	68 00 00 00 80       	push   $0x80000000
403cc3:	57                   	push   %edi
403cc4:	56                   	push   %esi
403cc5:	68 80 00 00 00       	push   $0x80
403cca:	ff 15 3c 82 40 00    	call   *0x40823c
403cd0:	a3 08 37 42 00       	mov    %eax,0x423708
403cd5:	57                   	push   %edi
403cd6:	e8 30 d7 ff ff       	call   0x40140b
403cdb:	85 c0                	test   %eax,%eax
403cdd:	74 08                	je     0x403ce7
403cdf:	6a 02                	push   $0x2
403ce1:	58                   	pop    %eax
403ce2:	e9 bf 00 00 00       	jmp    0x403da6
403ce7:	e8 c2 00 00 00       	call   0x403dae
403cec:	39 3d 00 a3 42 00    	cmp    %edi,0x42a300
403cf2:	0f 85 83 00 00 00    	jne    0x403d7b
403cf8:	6a 05                	push   $0x5
403cfa:	ff 35 08 37 42 00    	push   0x423708
403d00:	ff 15 68 82 40 00    	call   *0x408268
403d06:	68 3c 83 40 00       	push   $0x40833c
403d0b:	e8 42 2a 00 00       	call   0x406752
403d10:	85 c0                	test   %eax,%eax
403d12:	75 0a                	jne    0x403d1e
403d14:	68 30 83 40 00       	push   $0x408330
403d19:	e8 34 2a 00 00       	call   0x406752
403d1e:	8b 35 40 82 40 00    	mov    0x408240,%esi
403d24:	bd 18 83 40 00       	mov    $0x408318,%ebp
403d29:	53                   	push   %ebx
403d2a:	55                   	push   %ebp
403d2b:	57                   	push   %edi
403d2c:	ff d6                	call   *%esi
403d2e:	85 c0                	test   %eax,%eax
403d30:	75 16                	jne    0x403d48
403d32:	53                   	push   %ebx
403d33:	68 04 83 40 00       	push   $0x408304
403d38:	57                   	push   %edi
403d39:	ff d6                	call   *%esi
403d3b:	53                   	push   %ebx
403d3c:	89 2d 04 92 42 00    	mov    %ebp,0x429204
403d42:	ff 15 34 82 40 00    	call   *0x408234
403d48:	a1 20 92 42 00       	mov    0x429220,%eax
403d4d:	57                   	push   %edi
403d4e:	83 c0 69             	add    $0x69,%eax
403d51:	68 86 3e 40 00       	push   $0x403e86
403d56:	0f b7 c0             	movzwl %ax,%eax
403d59:	57                   	push   %edi
403d5a:	50                   	push   %eax
403d5b:	ff 35 40 a2 42 00    	push   0x42a240
403d61:	ff 15 44 82 40 00    	call   *0x408244
403d67:	6a 05                	push   $0x5
403d69:	8b f0                	mov    %eax,%esi
403d6b:	e8 9b d6 ff ff       	call   0x40140b
403d70:	6a 01                	push   $0x1
403d72:	e8 b1 fc ff ff       	call   0x403a28
403d77:	8b c6                	mov    %esi,%eax
403d79:	eb 2b                	jmp    0x403da6
403d7b:	57                   	push   %edi
403d7c:	e8 a2 17 00 00       	call   0x405523
403d81:	85 c0                	test   %eax,%eax
403d83:	74 18                	je     0x403d9d
403d85:	39 3d 0c 92 42 00    	cmp    %edi,0x42920c
403d8b:	0f 85 4e ff ff ff    	jne    0x403cdf
403d91:	6a 02                	push   $0x2
403d93:	e8 73 d6 ff ff       	call   0x40140b
403d98:	e9 42 ff ff ff       	jmp    0x403cdf
403d9d:	6a 01                	push   $0x1
403d9f:	e8 67 d6 ff ff       	call   0x40140b
403da4:	33 c0                	xor    %eax,%eax
403da6:	5f                   	pop    %edi
403da7:	5e                   	pop    %esi
403da8:	5d                   	pop    %ebp
403da9:	5b                   	pop    %ebx
403daa:	83 c4 10             	add    $0x10,%esp
403dad:	c3                   	ret
403dae:	53                   	push   %ebx
403daf:	55                   	push   %ebp
403db0:	56                   	push   %esi
403db1:	57                   	push   %edi
403db2:	bf 00 70 43 00       	mov    $0x437000,%edi
403db7:	bb ff ff 00 00       	mov    $0xffff,%ebx
403dbc:	57                   	push   %edi
403dbd:	e8 86 25 00 00       	call   0x406348
403dc2:	8b 35 a4 a2 42 00    	mov    0x42a2a4,%esi
403dc8:	85 f6                	test   %esi,%esi