403734:	57                   	push   %edi
403735:	68 44 a3 40 00       	push   $0x40a344
40373a:	ff d6                	call   *%esi
40373c:	e8 33 fd ff ff       	call   0x403474
403741:	85 c0                	test   %eax,%eax
403743:	0f 84 cb 00 00 00    	je     0x403814
403749:	68 00 70 43 00       	push   $0x437000
40374e:	ff 15 40 81 40 00    	call   *0x408140
403754:	ff 74 24 1c          	push   0x1c(%esp)
403758:	e8 d3 f7 ff ff       	call   0x402f30
40375d:	3b c3                	cmp    %ebx,%eax
40375f:	89 44 24 10          	mov    %eax,0x10(%esp)
403763:	0f 85 ab 00 00 00    	jne    0x403814
403769:	39 1d 60 a2 42 00    	cmp    %ebx,0x42a260
40376f:	0f 84 8f 00 00 00    	je     0x403804
403775:	53                   	push   %ebx
403776:	55                   	push   %ebp
403777:	e8 6e 25 00 00       	call   0x405cea
40377c:	8b f0                	mov    %eax,%esi
40377e:	3b f5                	cmp    %ebp,%esi
403780:	72 4c                	jb     0x4037ce
403782:	0f b7 05 3e a3 40 00 	movzwl 0x40a33e,%eax
403789:	99                   	cltd
40378a:	0f a4 c2 10          	shld   $0x10,%eax,%edx
40378e:	c1 e0 10             	shl    $0x10,%eax
403791:	8b d8                	mov    %eax,%ebx
403793:	0f b7 05 3c a3 40 00 	movzwl 0x40a33c,%eax
40379a:	0f b7 0d 38 a3 40 00 	movzwl 0x40a338,%ecx
4037a1:	99                   	cltd
4037a2:	0b d8                	or     %eax,%ebx
4037a4:	0f b7 05 3a a3 40 00 	movzwl 0x40a33a,%eax
4037ab:	c1 e0 10             	shl    $0x10,%eax
4037ae:	0b c1                	or     %ecx,%eax
4037b0:	33 c9                	xor    %ecx,%ecx
4037b2:	99                   	cltd
4037b3:	0b c8                	or     %eax,%ecx
4037b5:	8b c3                	mov    %ebx,%eax
4037b7:	0b c2                	or     %edx,%eax
4037b9:	8b 16                	mov    (%esi),%edx
4037bb:	3b d1                	cmp    %ecx,%edx
4037bd:	75 07                	jne    0x4037c6
4037bf:	8b 56 04             	mov    0x4(%esi),%edx
4037c2:	3b d0                	cmp    %eax,%edx
4037c4:	74 06                	je     0x4037cc
4037c6:	4e                   	dec    %esi
4037c7:	4e                   	dec    %esi
4037c8:	3b f5                	cmp    %ebp,%esi
4037ca:	73 ed                	jae    0x4037b9
4037cc:	33 db                	xor    %ebx,%ebx
4037ce:	3b f5                	cmp    %ebp,%esi
4037d0:	c7 44 24 10 b8 a2 40 	movl   $0x40a2b8,0x10(%esp)
4037d7:	00
4037d8:	72 66                	jb     0x403840
4037da:	66 89 1e             	mov    %bx,(%esi)
4037dd:	83 c6 08             	add    $0x8,%esi
4037e0:	56                   	push   %esi
4037e1:	e8 df 25 00 00       	call   0x405dc5
4037e6:	85 c0                	test   %eax,%eax
4037e8:	74 2a                	je     0x403814
4037ea:	56                   	push   %esi
4037eb:	68 00 58 43 00       	push   $0x435800
4037f0:	e8 f3 2b 00 00       	call   0x4063e8
4037f5:	56                   	push   %esi
4037f6:	68 00 60 43 00       	push   $0x436000
4037fb:	e8 e8 2b 00 00       	call   0x4063e8
403800:	89 5c 24 10          	mov    %ebx,0x10(%esp)
403804:	83 0d 0c a3 42 00 ff 	orl    $0xffffffff,0x42a30c
40380b:	e8 c8 02 00 00       	call   0x403ad8
403810:	89 44 24 14          	mov    %eax,0x14(%esp)
403814:	e8 cd 01 00 00       	call   0x4039e6
403819:	ff 15 9c 82 40 00    	call   *0x40829c
40381f:	39 5c 24 10          	cmp    %ebx,0x10(%esp)
403823:	5d                   	pop    %ebp
403824:	0f 84 20 01 00 00    	je     0x40394a
40382a:	68 10 00 20 00       	push   $0x200010
40382f:	ff 74 24 10          	push   0x10(%esp)
403833:	e8 16 22 00 00       	call   0x405a4e
403838:	6a 02                	push   $0x2
40383a:	ff 15 70 80 40 00    	call   *0x408070
403840:	e8 74 21 00 00       	call   0x4059b9
403845:	68 2c a3 40 00       	push   $0x40a32c
40384a:	57                   	push   %edi
40384b:	8b f0                	mov    %eax,%esi
40384d:	e8 b2 2b 00 00       	call   0x406404
403852:	3b f3                	cmp    %ebx,%esi
403854:	74 0b                	je     0x403861
403856:	68 28 a3 40 00       	push   $0x40a328
40385b:	57                   	push   %edi
40385c:	e8 a3 2b 00 00       	call   0x406404
403861:	68 1c a3 40 00       	push   $0x40a31c
403866:	57                   	push   %edi
403867:	e8 98 2b 00 00       	call   0x406404
40386c:	bd 00 68 43 00       	mov    $0x436800,%ebp
403871:	55                   	push   %ebp
403872:	57                   	push   %edi
403873:	ff 15 04 81 40 00    	call   *0x408104
403879:	85 c0                	test   %eax,%eax
40387b:	74 97                	je     0x403814
40387d:	3b f3                	cmp    %ebx,%esi
40387f:	57                   	push   %edi
403880:	74 07                	je     0x403889
403882:	e8 98 20 00 00       	call   0x40591f
403887:	eb 05                	jmp    0x40388e
403889:	e8 0e 21 00 00       	call   0x40599c
40388e:	57                   	push   %edi
40388f:	ff 15 90 80 40 00    	call   *0x408090
403895:	66 39 1d 00 58 43 00 	cmp    %bx,0x435800
40389c:	75 0b                	jne    0x4038a9
40389e:	55                   	push   %ebp
40389f:	68 00 58 43 00       	push   $0x435800
4038a4:	e8 3f 2b 00 00       	call   0x4063e8
4038a9:	ff 74 24 18          	push   0x18(%esp)
4038ad:	68 00 b0 42 00       	push   $0x42b000
4038b2:	e8 31 2b 00 00       	call   0x4063e8
4038b7:	0f b7 05 16 a3 40 00 	movzwl 0x40a316,%eax
4038be:	0f b7 0d 14 a3 40 00 	movzwl 0x40a314,%ecx
4038c5:	c1 e0 10             	shl    $0x10,%eax
4038c8:	0b c1                	or     %ecx,%eax
4038ca:	6a 1a                	push   $0x1a
4038cc:	a3 00 b8 42 00       	mov    %eax,0x42b800
4038d1:	5d                   	pop    %ebp
4038d2:	be e8 0e 42 00       	mov    $0x420ee8,%esi
4038d7:	a1 54 a2 42 00       	mov    0x42a254,%eax
4038dc:	ff b0 20 01 00 00    	push   0x120(%eax)
4038e2:	56                   	push   %esi
4038e3:	e8 22 2b 00 00       	call   0x40640a
4038e8:	56                   	push   %esi
4038e9:	ff 15 40 81 40 00    	call   *0x408140
4038ef:	39 5c 24 10          	cmp    %ebx,0x10(%esp)
4038f3:	74 3f                	je     0x403934
4038f5:	6a 01                	push   $0x1
4038f7:	56                   	push   %esi
4038f8:	68 00 88 43 00       	push   $0x438800
4038fd:	ff 15 b8 80 40 00    	call   *0x4080b8
403903:	85 c0                	test   %eax,%eax
403905:	74 2d                	je     0x403934
403907:	53                   	push   %ebx
403908:	56                   	push   %esi
403909:	e8 a0 28 00 00       	call   0x4061ae
40390e:	a1 54 a2 42 00       	mov    0x42a254,%eax
403913:	ff b0 24 01 00 00    	push   0x124(%eax)
403919:	56                   	push   %esi
40391a:	e8 eb 2a 00 00       	call   0x40640a
40391f:	56                   	push   %esi
403920:	e8 ac 20 00 00       	call   0x4059d1
403925:	3b c3                	cmp    %ebx,%eax
403927:	74 0b                	je     0x403934
403929:	50                   	push   %eax
40392a:	ff 15 20 81 40 00    	call   *0x408120
403930:	89 5c 24 10          	mov    %ebx,0x10(%esp)
403934:	66 ff 05 00 b8 42 00 	incw   0x42b800
40393b:	4d                   	dec    %ebp
40393c:	75 99                	jne    0x4038d7
40393e:	53                   	push   %ebx
40393f:	57                   	push   %edi
403940:	e8 69 28 00 00       	call   0x4061ae
403945:	e9 ca fe ff ff       	jmp    0x403814
40394a:	39 1d f4 a2 42 00    	cmp    %ebx,0x42a2f4
403950:	74 7c                	je     0x4039ce
403952:	8d 44 24 14          	lea    0x14(%esp),%eax
403956:	50                   	push   %eax
403957:	6a 28                	push   $0x28
403959:	ff 15 8c 80 40 00    	call   *0x40808c
40395f:	50                   	push   %eax
403960:	ff 15 10 80 40 00    	call   *0x408010
403966:	85 c0                	test   %eax,%eax
403968:	74 34                	je     0x40399e
40396a:	8d 44 24 20          	lea    0x20(%esp),%eax
40396e:	50                   	push   %eax
40396f:	68 ec a2 40 00       	push   $0x40a2ec
403974:	53                   	push   %ebx
403975:	ff 15 14 80 40 00    	call   *0x408014
40397b:	53                   	push   %ebx
40397c:	53                   	push   %ebx
40397d:	8d 44 24 24          	lea    0x24(%esp),%eax
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