40982b:	89 4e 3c             	mov    %ecx,0x3c(%esi)
40982e:	8d 52 fe             	lea    -0x2(%edx),%edx
409831:	e8 6a 5b 00 00       	call   0x40f3a0
409836:	5f                   	pop    %edi
409837:	5e                   	pop    %esi
409838:	5b                   	pop    %ebx
409839:	c3                   	ret
40983a:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
409841:	0f 84 db 27 01 00    	je     0x41c022
409847:	68 60 20 40 00       	push   $0x402060
40984c:	57                   	push   %edi
40984d:	ff 15 40 a4 44 00    	call   *0x44a440
409853:	59                   	pop    %ecx
409854:	59                   	pop    %ecx
409855:	85 c0                	test   %eax,%eax
409857:	74 62                	je     0x4098bb
409859:	68 58 20 40 00       	push   $0x402058
40985e:	57                   	push   %edi
40985f:	ff 15 40 a4 44 00    	call   *0x44a440
409865:	59                   	pop    %ecx
409866:	59                   	pop    %ecx
409867:	85 c0                	test   %eax,%eax
409869:	74 59                	je     0x4098c4
40986b:	68 24 20 40 00       	push   $0x402024
409870:	57                   	push   %edi
409871:	ff 15 40 a4 44 00    	call   *0x44a440
409877:	59                   	pop    %ecx
409878:	59                   	pop    %ecx
409879:	85 c0                	test   %eax,%eax
40987b:	74 5f                	je     0x4098dc
40987d:	68 1c 20 40 00       	push   $0x40201c
409882:	57                   	push   %edi
409883:	ff 15 40 a4 44 00    	call   *0x44a440
409889:	59                   	pop    %ecx
40988a:	59                   	pop    %ecx
40988b:	85 c0                	test   %eax,%eax
40988d:	74 48                	je     0x4098d7
40988f:	68 14 20 40 00       	push   $0x402014
409894:	57                   	push   %edi
409895:	ff 15 40 a4 44 00    	call   *0x44a440
40989b:	59                   	pop    %ecx
40989c:	59                   	pop    %ecx
40989d:	85 c0                	test   %eax,%eax
40989f:	75 44                	jne    0x4098e5
4098a1:	c7 46 44 05 00 00 00 	movl   $0x5,0x44(%esi)
4098a8:	c7 06 3a 00 00 00    	movl   $0x3a,(%esi)
4098ae:	e8 7e 10 00 00       	call   0x40a931
4098b3:	89 46 3c             	mov    %eax,0x3c(%esi)
4098b6:	e9 7b ff ff ff       	jmp    0x409836
4098bb:	c7 46 44 01 00 00 00 	movl   $0x1,0x44(%esi)
4098c2:	eb e4                	jmp    0x4098a8
4098c4:	c7 46 44 02 00 00 00 	movl   $0x2,0x44(%esi)
4098cb:	eb db                	jmp    0x4098a8
4098cd:	1b c0                	sbb    %eax,%eax
4098cf:	83 c8 01             	or     $0x1,%eax
4098d2:	e9 0c ff ff ff       	jmp    0x4097e3
4098d7:	89 5e 44             	mov    %ebx,0x44(%esi)
4098da:	eb cc                	jmp    0x4098a8
4098dc:	c7 46 44 03 00 00 00 	movl   $0x3,0x44(%esi)
4098e3:	eb c3                	jmp    0x4098a8
4098e5:	68 9c 1f 40 00       	push   $0x401f9c
4098ea:	57                   	push   %edi
4098eb:	ff 15 40 a4 44 00    	call   *0x44a440
4098f1:	59                   	pop    %ecx
4098f2:	59                   	pop    %ecx
4098f3:	85 c0                	test   %eax,%eax
4098f5:	75 09                	jne    0x409900
4098f7:	c7 46 44 06 00 00 00 	movl   $0x6,0x44(%esi)
4098fe:	eb a8                	jmp    0x4098a8
409900:	e8 54 f0 01 00       	call   0x428959
409905:	eb a1                	jmp    0x4098a8
409907:	8b ff                	mov    %edi,%edi
409909:	55                   	push   %ebp
40990a:	8b ec                	mov    %esp,%ebp
40990c:	83 ec 1c             	sub    $0x1c,%esp
40990f:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
409914:	33 c5                	xor    %ebp,%eax
409916:	89 45 fc             	mov    %eax,-0x4(%ebp)
409919:	56                   	push   %esi
40991a:	6a 2f                	push   $0x2f
40991c:	58                   	pop    %eax
40991d:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
409921:	8b f2                	mov    %edx,%esi
409923:	33 c0                	xor    %eax,%eax
409925:	8d 55 e8             	lea    -0x18(%ebp),%edx
409928:	6a 02                	push   $0x2
40992a:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40992f:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
409933:	e8 f8 22 00 00       	call   0x40bc30
409938:	6a 00                	push   $0x0
40993a:	8b d0                	mov    %eax,%edx
40993c:	8b ce                	mov    %esi,%ecx
40993e:	e8 bd 0e 00 00       	call   0x40a800
409943:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409946:	33 cd                	xor    %ebp,%ecx
409948:	5e                   	pop    %esi
409949:	e8 e2 d1 00 00       	call   0x416b30
40994e:	c9                   	leave
40994f:	c3                   	ret
409950:	8b ff                	mov    %edi,%edi
409952:	55                   	push   %ebp
409953:	8b ec                	mov    %esp,%ebp
409955:	56                   	push   %esi
409956:	57                   	push   %edi
409957:	8d 45 0c             	lea    0xc(%ebp),%eax
40995a:	bf f0 0a 44 00       	mov    $0x440af0,%edi
40995f:	50                   	push   %eax
409960:	ff 75 08             	push   0x8(%ebp)
409963:	ba 00 20 00 00       	mov    $0x2000,%edx
409968:	8b cf                	mov    %edi,%ecx
40996a:	e8 1e 01 00 00       	call   0x409a8d
40996f:	8b d7                	mov    %edi,%edx
409971:	8d 72 02             	lea    0x2(%edx),%esi
409974:	0f b7 02             	movzwl (%edx),%eax
409977:	83 c2 02             	add    $0x2,%edx
40997a:	66 85 c0             	test   %ax,%ax
40997d:	75 f5                	jne    0x409974
40997f:	2b d6                	sub    %esi,%edx
409981:	8b cf                	mov    %edi,%ecx
409983:	5f                   	pop    %edi
409984:	d1 fa                	sar    $1,%edx
409986:	5e                   	pop    %esi
409987:	5d                   	pop    %ebp
409988:	e9 00 00 00 00       	jmp    0x40998d
40998d:	8b ff                	mov    %edi,%edi
40998f:	55                   	push   %ebp
409990:	8b ec                	mov    %esp,%ebp
409992:	51                   	push   %ecx
409993:	53                   	push   %ebx
409994:	56                   	push   %esi
409995:	57                   	push   %edi
409996:	8b fa                	mov    %edx,%edi
409998:	33 f6                	xor    %esi,%esi
40999a:	8b d9                	mov    %ecx,%ebx
40999c:	85 ff                	test   %edi,%edi
40999e:	7e 30                	jle    0x4099d0
4099a0:	33 c9                	xor    %ecx,%ecx
4099a2:	41                   	inc    %ecx
4099a3:	e8 69 00 00 00       	call   0x409a11
4099a8:	85 c0                	test   %eax,%eax
4099aa:	75 2b                	jne    0x4099d7
4099ac:	8d 45 fc             	lea    -0x4(%ebp),%eax
4099af:	03 ff                	add    %edi,%edi
4099b1:	50                   	push   %eax
4099b2:	33 c9                	xor    %ecx,%ecx
4099b4:	8b d3                	mov    %ebx,%edx
4099b6:	57                   	push   %edi
4099b7:	41                   	inc    %ecx
4099b8:	e8 7e 01 00 00       	call   0x409b3b
4099bd:	8b d8                	mov    %eax,%ebx
4099bf:	85 db                	test   %ebx,%ebx
4099c1:	0f 84 70 26 01 00    	je     0x41c037
4099c7:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4099ca:	0f 85 67 26 01 00    	jne    0x41c037
4099d0:	8b c6                	mov    %esi,%eax
4099d2:	5f                   	pop    %edi
4099d3:	5e                   	pop    %esi
4099d4:	5b                   	pop    %ebx
4099d5:	c9                   	leave
4099d6:	c3                   	ret
4099d7:	68 04 8e 44 00       	push   $0x448e04
4099dc:	ff 15 90 a2 44 00    	call   *0x44a290
4099e2:	6a 00                	push   $0x0
4099e4:	8d 45 fc             	lea    -0x4(%ebp),%eax
4099e7:	50                   	push   %eax
4099e8:	57                   	push   %edi
4099e9:	53                   	push   %ebx
4099ea:	6a 01                	push   $0x1
4099ec:	ff 15 2c a4 44 00    	call   *0x44a42c
4099f2:	59                   	pop    %ecx
4099f3:	50                   	push   %eax
4099f4:	ff 15 0c a0 44 00    	call   *0x44a00c
4099fa:	8b d8                	mov    %eax,%ebx
4099fc:	85 db                	test   %ebx,%ebx
4099fe:	0f 84 26 26 01 00    	je     0x41c02a
409a04:	68 04 8e 44 00       	push   $0x448e04
409a09:	ff 15 94 a2 44 00    	call   *0x44a294
409a0f:	eb ae                	jmp    0x4099bf
409a11:	8b ff                	mov    %edi,%edi
409a13:	55                   	push   %ebp
409a14:	8b ec                	mov    %esp,%ebp
409a16:	51                   	push   %ecx
409a17:	56                   	push   %esi
409a18:	8b f1                	mov    %ecx,%esi
409a1a:	57                   	push   %edi
409a1b:	56                   	push   %esi
409a1c:	ff 15 2c a4 44 00    	call   *0x44a42c
409a22:	8b f8                	mov    %eax,%edi
409a24:	59                   	pop    %ecx
409a25:	83 ff ff             	cmp    $0xffffffff,%edi
409a28:	74 4b                	je     0x409a75
409a2a:	57                   	push   %edi
409a2b:	ff 15 d0 a0 44 00    	call   *0x44a0d0
409a31:	25 ff 7f ff ff       	and    $0xffff7fff,%eax
409a36:	83 f8 02             	cmp    $0x2,%eax
409a39:	75 3a                	jne    0x409a75
409a3b:	83 ee 00             	sub    $0x0,%esi
409a3e:	74 49                	je     0x409a89
409a40:	83 ee 01             	sub    $0x1,%esi
409a43:	75 3b                	jne    0x409a80
409a45:	6a f5                	push   $0xfffffff5
409a47:	ff 15 bc a1 44 00    	call   *0x44a1bc
409a4d:	8b f8                	mov    %eax,%edi
409a4f:	53                   	push   %ebx
409a50:	bb 04 8e 44 00       	mov    $0x448e04,%ebx
409a55:	53                   	push   %ebx
409a56:	ff 15 90 a2 44 00    	call   *0x44a290
409a5c:	8d 45 fc             	lea    -0x4(%ebp),%eax
409a5f:	50                   	push   %eax
409a60:	57                   	push   %edi
409a61:	ff 15 10 a0 44 00    	call   *0x44a010
409a67:	53                   	push   %ebx
409a68:	8b f0                	mov    %eax,%esi
409a6a:	ff 15 94 a2 44 00    	call   *0x44a294
409a70:	5b                   	pop    %ebx
409a71:	85 f6                	test   %esi,%esi
409a73:	75 06                	jne    0x409a7b
409a75:	33 c0                	xor    %eax,%eax
409a77:	5f                   	pop    %edi
409a78:	5e                   	pop    %esi
409a79:	c9                   	leave
409a7a:	c3                   	ret
409a7b:	33 c0                	xor    %eax,%eax
409a7d:	40                   	inc    %eax
409a7e:	eb f7                	jmp    0x409a77
409a80:	83 ee 01             	sub    $0x1,%esi
409a83:	75 ca                	jne    0x409a4f
409a85:	6a f4                	push   $0xfffffff4
409a87:	eb be                	jmp    0x409a47
409a89:	6a f6                	push   $0xfffffff6
409a8b:	eb ba                	jmp    0x409a47
409a8d:	8b ff                	mov    %edi,%edi
409a8f:	55                   	push   %ebp
409a90:	8b ec                	mov    %esp,%ebp
409a92:	33 c0                	xor    %eax,%eax
409a94:	85 d2                	test   %edx,%edx
409a96:	74 20                	je     0x409ab8
409a98:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
409a9e:	77 18                	ja     0x409ab8
409aa0:	85 c0                	test   %eax,%eax
409aa2:	0f 88 e5 25 01 00    	js     0x41c08d
409aa8:	ff 75 0c             	push   0xc(%ebp)
409aab:	ff 75 08             	push   0x8(%ebp)
409aae:	51                   	push   %ecx
409aaf:	e8 47 00 00 00       	call   0x409afb
409ab4:	5d                   	pop    %ebp
409ab5:	c2 08 00             	ret    $0x8
409ab8:	b8 57 00 07 80       	mov    $0x80070057,%eax
409abd:	eb e1                	jmp    0x409aa0
409abf:	8b ff                	mov    %edi,%edi
409ac1:	55                   	push   %ebp
409ac2:	8b ec                	mov    %esp,%ebp
409ac4:	8b 45 0c             	mov    0xc(%ebp),%eax
409ac7:	33 c9                	xor    %ecx,%ecx
409ac9:	85 c0                	test   %eax,%eax
409acb:	74 27                	je     0x409af4
409acd:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
409ad2:	77 20                	ja     0x409af4
409ad4:	85 c9                	test   %ecx,%ecx
409ad6:	0f 88 c3 25 01 00    	js     0x41c09f
409adc:	8d 4d 14             	lea    0x14(%ebp),%ecx
409adf:	8b d0                	mov    %eax,%edx
409ae1:	51                   	push   %ecx
409ae2:	ff 75 10             	push   0x10(%ebp)
409ae5:	51                   	push   %ecx
409ae6:	8b 4d 08             	mov    0x8(%ebp),%ecx
409ae9:	e8 0d 00 00 00       	call   0x409afb
409aee:	8b c8                	mov    %eax,%ecx
409af0:	8b c1                	mov    %ecx,%eax
409af2:	5d                   	pop    %ebp
409af3:	c3                   	ret
409af4:	b9 57 00 07 80       	mov    $0x80070057,%ecx
409af9:	eb d9                	jmp    0x409ad4
409afb:	8b ff                	mov    %edi,%edi
409afd:	55                   	push   %ebp
409afe:	8b ec                	mov    %esp,%ebp
409b00:	53                   	push   %ebx
409b01:	56                   	push   %esi
409b02:	57                   	push   %edi
409b03:	ff 75 10             	push   0x10(%ebp)
409b06:	8d 72 ff             	lea    -0x1(%edx),%esi
409b09:	8b f9                	mov    %ecx,%edi
409b0b:	ff 75 0c             	push   0xc(%ebp)
409b0e:	33 db                	xor    %ebx,%ebx
409b10:	56                   	push   %esi
409b11:	57                   	push   %edi
409b12:	ff 15 3c a4 44 00    	call   *0x44a43c
409b18:	83 c4 10             	add    $0x10,%esp
409b1b:	85 c0                	test   %eax,%eax
409b1d:	78 0f                	js     0x409b2e
409b1f:	3b c6                	cmp    %esi,%eax
409b21:	77 0b                	ja     0x409b2e
409b23:	74 0e                	je     0x409b33
409b25:	5f                   	pop    %edi
409b26:	5e                   	pop    %esi
409b27:	8b c3                	mov    %ebx,%eax
409b29:	5b                   	pop    %ebx
409b2a:	5d                   	pop    %ebp
409b2b:	c2 0c 00             	ret    $0xc
409b2e:	bb 7a 00 07 80       	mov    $0x8007007a,%ebx
409b33:	33 c0                	xor    %eax,%eax
409b35:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
409b39:	eb ea                	jmp    0x409b25
409b3b:	8b ff                	mov    %edi,%edi
409b3d:	55                   	push   %ebp
409b3e:	8b ec                	mov    %esp,%ebp
409b40:	83 ec 0c             	sub    $0xc,%esp
409b43:	53                   	push   %ebx
409b44:	56                   	push   %esi
409b45:	8b 75 08             	mov    0x8(%ebp),%esi
409b48:	8b da                	mov    %edx,%ebx
409b4a:	51                   	push   %ecx
409b4b:	89 75 f4             	mov    %esi,-0xc(%ebp)
409b4e:	ff 15 2c a4 44 00    	call   *0x44a42c
409b54:	80 3d 50 90 44 00 00 	cmpb   $0x0,0x449050
409b5b:	59                   	pop    %ecx
409b5c:	89 45 fc             	mov    %eax,-0x4(%ebp)
409b5f:	0f 85 4f 25 01 00    	jne    0x41c0b4
409b65:	57                   	push   %edi
409b66:	8b 7d 0c             	mov    0xc(%ebp),%edi
409b69:	33 c0                	xor    %eax,%eax
409b6b:	b9 00 20 00 00       	mov    $0x2000,%ecx
409b70:	3b f1                	cmp    %ecx,%esi
409b72:	0f 87 4f 25 01 00    	ja     0x41c0c7
409b78:	85 f6                	test   %esi,%esi
409b7a:	74 35                	je     0x409bb1
409b7c:	50                   	push   %eax
409b7d:	50                   	push   %eax
409b7e:	51                   	push   %ecx
409b7f:	68 f0 a7 43 00       	push   $0x43a7f0
409b84:	6a ff                	push   $0xffffffff
409b86:	53                   	push   %ebx
409b87:	50                   	push   %eax
409b88:	ff 35 a0 25 43 00    	push   0x4325a0
409b8e:	ff 15 64 a2 44 00    	call   *0x44a264
409b94:	6a 00                	push   $0x0
409b96:	57                   	push   %edi
409b97:	8d 70 ff             	lea    -0x1(%eax),%esi
409b9a:	56                   	push   %esi
409b9b:	68 f0 a7 43 00       	push   $0x43a7f0
409ba0:	ff 75 fc             	push   -0x4(%ebp)
409ba3:	ff 15 b0 a0 44 00    	call   *0x44a0b0
409ba9:	85 c0                	test   %eax,%eax
409bab:	74 13                	je     0x409bc0
409bad:	39 37                	cmp    %esi,(%edi)
409baf:	75 0f                	jne    0x409bc0
409bb1:	8b 45 f4             	mov    -0xc(%ebp),%eax
409bb4:	89 07                	mov    %eax,(%edi)
409bb6:	33 c0                	xor    %eax,%eax
409bb8:	40                   	inc    %eax