4088ab:	50                   	push   %eax
4088ac:	ba 00 20 00 00       	mov    $0x2000,%edx
4088b1:	8b ce                	mov    %esi,%ecx
4088b3:	e8 e8 6a 00 00       	call   0x40f3a0
4088b8:	33 c0                	xor    %eax,%eax
4088ba:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
4088bf:	38 05 fc 8d 44 00    	cmp    %al,0x448dfc
4088c5:	0f 94 c0             	sete   %al
4088c8:	48                   	dec    %eax
4088c9:	25 e3 7e 00 00       	and    $0x7ee3,%eax
4088ce:	05 04 01 00 00       	add    $0x104,%eax
4088d3:	50                   	push   %eax
4088d4:	e8 17 5b 00 00       	call   0x40e3f0
4088d9:	85 c0                	test   %eax,%eax
4088db:	0f 88 4e 02 00 00    	js     0x408b2f
4088e1:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
4088e7:	85 c9                	test   %ecx,%ecx
4088e9:	75 05                	jne    0x4088f0
4088eb:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
4088f0:	8b 15 00 8e 44 00    	mov    0x448e00,%edx
4088f6:	57                   	push   %edi
4088f7:	e8 a2 05 00 00       	call   0x408e9e
4088fc:	e8 e8 77 00 00       	call   0x4100e9
408901:	8b ce                	mov    %esi,%ecx
408903:	8d 51 02             	lea    0x2(%ecx),%edx
408906:	66 8b 01             	mov    (%ecx),%ax
408909:	83 c1 02             	add    $0x2,%ecx
40890c:	66 3b c7             	cmp    %di,%ax
40890f:	75 f5                	jne    0x408906
408911:	2b ca                	sub    %edx,%ecx
408913:	d1 f9                	sar    $1,%ecx
408915:	51                   	push   %ecx
408916:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
408919:	56                   	push   %esi
40891a:	6a 04                	push   $0x4
40891c:	5a                   	pop    %edx
40891d:	e8 2a 19 00 00       	call   0x40a24c
408922:	a1 f8 8d 44 00       	mov    0x448df8,%eax
408927:	ba f0 8b 44 00       	mov    $0x448bf0,%edx
40892c:	8b c8                	mov    %eax,%ecx
40892e:	85 c0                	test   %eax,%eax
408930:	75 02                	jne    0x408934
408932:	8b ca                	mov    %edx,%ecx
408934:	6a 5c                	push   $0x5c
408936:	5e                   	pop    %esi
408937:	66 39 31             	cmp    %si,(%ecx)
40893a:	8b 75 a0             	mov    -0x60(%ebp),%esi
40893d:	75 6c                	jne    0x4089ab
40893f:	8b c8                	mov    %eax,%ecx
408941:	85 c0                	test   %eax,%eax
408943:	75 02                	jne    0x408947
408945:	8b ca                	mov    %edx,%ecx
408947:	6a 5c                	push   $0x5c
408949:	5e                   	pop    %esi
40894a:	66 39 71 02          	cmp    %si,0x2(%ecx)
40894e:	8b 75 a0             	mov    -0x60(%ebp),%esi
408951:	75 58                	jne    0x4089ab
408953:	80 3d 51 90 44 00 00 	cmpb   $0x0,0x449051
40895a:	75 4f                	jne    0x4089ab
40895c:	85 c0                	test   %eax,%eax
40895e:	75 02                	jne    0x408962
408960:	8b c2                	mov    %edx,%eax
408962:	50                   	push   %eax
408963:	6a 01                	push   $0x1
408965:	68 c8 23 00 40       	push   $0x400023c8
40896a:	e8 75 ef ff ff       	call   0x4078e4
40896f:	a1 f8 8d 44 00       	mov    0x448df8,%eax
408974:	83 c4 0c             	add    $0xc,%esp
408977:	85 c0                	test   %eax,%eax
408979:	75 05                	jne    0x408980
40897b:	b8 f0 8b 44 00       	mov    $0x448bf0,%eax
408980:	ff 35 00 8e 44 00    	push   0x448e00
408986:	50                   	push   %eax
408987:	ff 15 d8 a2 44 00    	call   *0x44a2d8
40898d:	85 c0                	test   %eax,%eax
40898f:	0f 84 af 01 00 00    	je     0x408b44
408995:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
40899b:	85 c9                	test   %ecx,%ecx
40899d:	75 05                	jne    0x4089a4
40899f:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
4089a4:	33 d2                	xor    %edx,%edx
4089a6:	e8 1c 02 00 00       	call   0x408bc7
4089ab:	ff 15 1c a0 44 00    	call   *0x44a01c
4089b1:	68 f0 c9 43 00       	push   $0x43c9f0
4089b6:	50                   	push   %eax
4089b7:	a3 a0 25 43 00       	mov    %eax,0x4325a0
4089bc:	ff 15 9c a1 44 00    	call   *0x44a19c
4089c2:	e8 ab fb ff ff       	call   0x408572
4089c7:	68 0c 02 00 00       	push   $0x20c
4089cc:	57                   	push   %edi
4089cd:	ff 15 34 a1 44 00    	call   *0x44a134
4089d3:	50                   	push   %eax
4089d4:	ff 15 28 a1 44 00    	call   *0x44a128
4089da:	a3 a8 25 43 00       	mov    %eax,0x4325a8
4089df:	85 c0                	test   %eax,%eax
4089e1:	74 1a                	je     0x4089fd
4089e3:	68 04 01 00 00       	push   $0x104
4089e8:	50                   	push   %eax
4089e9:	ff 15 48 a0 44 00    	call   *0x44a048
4089ef:	85 c0                	test   %eax,%eax
4089f1:	75 0a                	jne    0x4089fd
4089f3:	a1 a8 25 43 00       	mov    0x4325a8,%eax
4089f8:	33 c9                	xor    %ecx,%ecx
4089fa:	66 89 08             	mov    %cx,(%eax)
4089fd:	39 3d 58 67 43 00    	cmp    %edi,0x436758
408a03:	75 4c                	jne    0x408a51
408a05:	33 c9                	xor    %ecx,%ecx
408a07:	41                   	inc    %ecx
408a08:	e8 04 10 00 00       	call   0x409a11
408a0d:	85 c0                	test   %eax,%eax
408a0f:	74 40                	je     0x408a51
408a11:	66 8b 0d 64 67 43 00 	mov    0x436764,%cx
408a18:	66 85 c9             	test   %cx,%cx
408a1b:	75 2f                	jne    0x408a4c
408a1d:	8d 45 a4             	lea    -0x5c(%ebp),%eax
408a20:	50                   	push   %eax
408a21:	6a f5                	push   $0xfffffff5
408a23:	ff 15 bc a1 44 00    	call   *0x44a1bc
408a29:	50                   	push   %eax
408a2a:	ff 15 28 a0 44 00    	call   *0x44a028
408a30:	85 c0                	test   %eax,%eax
408a32:	74 0c                	je     0x408a40
408a34:	66 8b 45 ac          	mov    -0x54(%ebp),%ax
408a38:	66 a3 64 67 43 00    	mov    %ax,0x436764
408a3e:	eb 11                	jmp    0x408a51
408a40:	66 8b 0d 64 67 43 00 	mov    0x436764,%cx
408a47:	66 85 c9             	test   %cx,%cx
408a4a:	74 05                	je     0x408a51
408a4c:	e8 45 fa 01 00       	call   0x428496
408a51:	8b 45 9c             	mov    -0x64(%ebp),%eax
408a54:	39 78 08             	cmp    %edi,0x8(%eax)
408a57:	75 62                	jne    0x408abb
408a59:	e8 78 e6 01 00       	call   0x4270d6
408a5e:	8d 4d bc             	lea    -0x44(%ebp),%ecx
408a61:	89 45 a0             	mov    %eax,-0x60(%ebp)
408a64:	e8 9f c2 ff ff       	call   0x404d08
408a69:	8d 45 bc             	lea    -0x44(%ebp),%eax
408a6c:	50                   	push   %eax
408a6d:	6a 01                	push   $0x1
408a6f:	68 50 23 00 00       	push   $0x2350
408a74:	e8 44 d9 ff ff       	call   0x4063bd
408a79:	68 8c 1f 40 00       	push   $0x401f8c
408a7e:	e8 cd 0e 00 00       	call   0x409950
408a83:	8b 45 a0             	mov    -0x60(%ebp),%eax
408a86:	83 c4 10             	add    $0x10,%esp
408a89:	85 c0                	test   %eax,%eax
408a8b:	74 1a                	je     0x408aa7
408a8d:	50                   	push   %eax
408a8e:	68 00 1f 40 00       	push   $0x401f00
408a93:	e8 b8 0e 00 00       	call   0x409950
408a98:	68 8c 1f 40 00       	push   $0x401f8c
408a9d:	e8 ae 0e 00 00       	call   0x409950
408aa2:	83 c4 0c             	add    $0xc,%esp
408aa5:	eb 0a                	jmp    0x408ab1
408aa7:	57                   	push   %edi
408aa8:	6a 08                	push   $0x8
408aaa:	e8 35 ee ff ff       	call   0x4078e4
408aaf:	59                   	pop    %ecx
408ab0:	59                   	pop    %ecx
408ab1:	8b 45 a0             	mov    -0x60(%ebp),%eax
408ab4:	50                   	push   %eax
408ab5:	ff 15 44 a1 44 00    	call   *0x44a144
408abb:	68 04 27 40 00       	push   $0x402704
408ac0:	ff 15 74 a1 44 00    	call   *0x44a174
408ac6:	68 24 35 40 00       	push   $0x403524
408acb:	50                   	push   %eax
408acc:	a3 c8 e0 42 00       	mov    %eax,0x42e0c8
408ad1:	ff 15 68 a1 44 00    	call   *0x44a168
408ad7:	68 30 35 40 00       	push   $0x403530
408adc:	ff 35 c8 e0 42 00    	push   0x42e0c8
408ae2:	a3 b8 25 43 00       	mov    %eax,0x4325b8
408ae7:	ff 15 68 a1 44 00    	call   *0x44a168
408aed:	68 44 35 40 00       	push   $0x403544
408af2:	ff 35 c8 e0 42 00    	push   0x42e0c8
408af8:	ff 15 68 a1 44 00    	call   *0x44a168
408afe:	a3 b4 25 43 00       	mov    %eax,0x4325b4
408b03:	8b 45 9c             	mov    -0x64(%ebp),%eax
408b06:	39 38                	cmp    %edi,(%eax)
408b08:	75 0a                	jne    0x408b14
408b0a:	39 78 04             	cmp    %edi,0x4(%eax)
408b0d:	75 05                	jne    0x408b14
408b0f:	39 78 08             	cmp    %edi,0x8(%eax)
408b12:	74 03                	je     0x408b17
408b14:	33 ff                	xor    %edi,%edi
408b16:	47                   	inc    %edi
408b17:	56                   	push   %esi
408b18:	ff 15 e0 a3 44 00    	call   *0x44a3e0
408b1e:	59                   	pop    %ecx
408b1f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408b22:	8b c7                	mov    %edi,%eax
408b24:	5f                   	pop    %edi
408b25:	33 cd                	xor    %ebp,%ecx
408b27:	5e                   	pop    %esi
408b28:	e8 03 e0 00 00       	call   0x416b30
408b2d:	c9                   	leave
408b2e:	c3                   	ret
408b2f:	57                   	push   %edi
408b30:	68 74 23 00 00       	push   $0x2374
408b35:	eb 06                	jmp    0x408b3d
408b37:	57                   	push   %edi
408b38:	68 df 23 00 40       	push   $0x400023df
408b3d:	e8 a2 ed ff ff       	call   0x4078e4
408b42:	59                   	pop    %ecx
408b43:	59                   	pop    %ecx
408b44:	33 c9                	xor    %ecx,%ecx
408b46:	41                   	inc    %ecx
408b47:	e8 cc f1 00 00       	call   0x417d18
408b4c:	cc                   	int3
408b4d:	8b 15 bc 67 43 00    	mov    0x4367bc,%edx
408b53:	33 c0                	xor    %eax,%eax
408b55:	53                   	push   %ebx
408b56:	8b d9                	mov    %ecx,%ebx
408b58:	85 d2                	test   %edx,%edx
408b5a:	7e 1e                	jle    0x408b7a
408b5c:	8b 0d b8 67 43 00    	mov    0x4367b8,%ecx
408b62:	39 1c 81             	cmp    %ebx,(%ecx,%eax,4)
408b65:	75 28                	jne    0x408b8f
408b67:	3b c2                	cmp    %edx,%eax
408b69:	7d 0f                	jge    0x408b7a
408b6b:	4a                   	dec    %edx
408b6c:	3b c2                	cmp    %edx,%eax
408b6e:	0f 8c 29 2a 01 00    	jl     0x41b59d
408b74:	89 15 bc 67 43 00    	mov    %edx,0x4367bc
408b7a:	53                   	push   %ebx
408b7b:	ff 15 d8 a0 44 00    	call   *0x44a0d8
408b81:	5b                   	pop    %ebx
408b82:	85 c0                	test   %eax,%eax
408b84:	74 03                	je     0x408b89
408b86:	33 c0                	xor    %eax,%eax
408b88:	c3                   	ret
408b89:	ff 25 80 a0 44 00    	jmp    *0x44a080
408b8f:	40                   	inc    %eax
408b90:	3b c2                	cmp    %edx,%eax
408b92:	7c ce                	jl     0x408b62
408b94:	eb d1                	jmp    0x408b67
408b96:	8b ff                	mov    %edi,%edi
408b98:	56                   	push   %esi
408b99:	6a 04                	push   $0x4
408b9b:	6a 08                	push   $0x8
408b9d:	ff 15 34 a1 44 00    	call   *0x44a134
408ba3:	50                   	push   %eax
408ba4:	ff 15 28 a1 44 00    	call   *0x44a128
408baa:	8b f0                	mov    %eax,%esi
408bac:	85 f6                	test   %esi,%esi
408bae:	0f 84 1c 2a 01 00    	je     0x41b5d0
408bb4:	e8 1b 1e 00 00       	call   0x40a9d4
408bb9:	89 06                	mov    %eax,(%esi)
408bbb:	85 c0                	test   %eax,%eax
408bbd:	0f 84 ef 29 01 00    	je     0x41b5b2
408bc3:	8b c6                	mov    %esi,%eax
408bc5:	5e                   	pop    %esi
408bc6:	c3                   	ret
408bc7:	68 40 02 00 00       	push   $0x240
408bcc:	68 b0 c9 42 00       	push   $0x42c9b0
408bd1:	e8 ba f1 00 00       	call   0x417d90
408bd6:	89 95 b4 fd ff ff    	mov    %edx,-0x24c(%ebp)
408bdc:	8b f1                	mov    %ecx,%esi
408bde:	6a 5c                	push   $0x5c
408be0:	58                   	pop    %eax
408be1:	66 39 06             	cmp    %ax,(%esi)
408be4:	0f 84 ea 29 01 00    	je     0x41b5d4
408bea:	8d 8d bc fd ff ff    	lea    -0x244(%ebp),%ecx
408bf0:	e8 39 ce 00 00       	call   0x415a2e
408bf5:	33 c0                	xor    %eax,%eax
408bf7:	38 45 c8             	cmp    %al,-0x38(%ebp)
408bfa:	0f 94 c0             	sete   %al
408bfd:	48                   	dec    %eax
408bfe:	25 e3 7e 00 00       	and    $0x7ee3,%eax
408c03:	05 04 01 00 00       	add    $0x104,%eax
408c08:	50                   	push   %eax
408c09:	8d 8d bc fd ff ff    	lea    -0x244(%ebp),%ecx
408c0f:	e8 dc 57 00 00       	call   0x40e3f0
408c14:	85 c0                	test   %eax,%eax
408c16:	0f 88 58 2b 01 00    	js     0x41b774
408c1c:	8b ce                	mov    %esi,%ecx
408c1e:	e8 8d 20 00 00       	call   0x40acb0
408c23:	8b f8                	mov    %eax,%edi
408c25:	89 bd b0 fd ff ff    	mov    %edi,-0x250(%ebp)
408c2b:	85 ff                	test   %edi,%edi
408c2d:	0f 84 41 2b 01 00    	je     0x41b774
408c33:	33 db                	xor    %ebx,%ebx
408c35:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408c38:	8b cf                	mov    %edi,%ecx
408c3a:	8d 51 02             	lea    0x2(%ecx),%edx
408c3d:	66 8b 01             	mov    (%ecx),%ax
408c40:	83 c1 02             	add    $0x2,%ecx
408c43:	66 3b c3             	cmp    %bx,%ax
408c46:	75 f5                	jne    0x408c3d
408c48:	2b ca                	sub    %edx,%ecx
408c4a:	d1 f9                	sar    $1,%ecx
408c4c:	8d 04 4f             	lea    (%edi,%ecx,2),%eax
408c4f:	8b c8                	mov    %eax,%ecx
408c51:	89 85 b8 fd ff ff    	mov    %eax,-0x248(%ebp)
408c57:	3b cf                	cmp    %edi,%ecx
408c59:	76 0b                	jbe    0x408c66
408c5b:	66 83 78 fe 20       	cmpw   $0x20,-0x2(%eax)
408c60:	0f 84 82 29 01 00    	je     0x41b5e8
408c66:	33 c9                	xor    %ecx,%ecx
408c68:	66 89 08             	mov    %cx,(%eax)
408c6b:	8b 45 c4             	mov    -0x3c(%ebp),%eax
408c6e:	85 c0                	test   %eax,%eax
408c70:	0f 84 7a 29 01 00    	je     0x41b5f0
408c76:	50                   	push   %eax
408c77:	ff 75 cc             	push   -0x34(%ebp)
408c7a:	ff 15 c4 a1 44 00    	call   *0x44a1c4
408c80:	8b 45 c4             	mov    -0x3c(%ebp),%eax
408c83:	85 c0                	test   %eax,%eax
408c85:	0f 84 70 29 01 00    	je     0x41b5fb
408c8b:	0f b7 00             	movzwl (%eax),%eax
408c8e:	50                   	push   %eax
408c8f:	ff 15 18 a4 44 00    	call   *0x44a418
408c95:	59                   	pop    %ecx
408c96:	66 8b d8             	mov    %ax,%bx
408c99:	6a 3d                	push   $0x3d
408c9b:	58                   	pop    %eax
408c9c:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
408ca0:	0f b7 0f             	movzwl (%edi),%ecx
408ca3:	51                   	push   %ecx
408ca4:	ff 15 d0 a3 44 00    	call   *0x44a3d0
408caa:	59                   	pop    %ecx
408cab:	6a 3a                	push   $0x3a
408cad:	5e                   	pop    %esi
408cae:	85 c0                	test   %eax,%eax
408cb0:	0f 84 50 29 01 00    	je     0x41b606
408cb6:	66 39 77 02          	cmp    %si,0x2(%edi)
408cba:	0f 85 46 29 01 00    	jne    0x41b606
408cc0:	0f b7 07             	movzwl (%edi),%eax
408cc3:	50                   	push   %eax
408cc4:	ff 15 18 a4 44 00    	call   *0x44a418
408cca:	59                   	pop    %ecx
408ccb:	66 89 45 da          	mov    %ax,-0x26(%ebp)
408ccf:	66 89 75 dc          	mov    %si,-0x24(%ebp)
408cd3:	33 c0                	xor    %eax,%eax
408cd5:	66 89 45 de          	mov    %ax,-0x22(%ebp)
408cd9:	8b 45 c4             	mov    -0x3c(%ebp),%eax
408cdc:	85 c0                	test   %eax,%eax
408cde:	0f 84 2b 29 01 00    	je     0x41b60f
408ce4:	8d 8d b8 fd ff ff    	lea    -0x248(%ebp),%ecx
408cea:	51                   	push   %ecx
408ceb:	50                   	push   %eax
408cec:	ff 75 cc             	push   -0x34(%ebp)
408cef:	57                   	push   %edi
408cf0:	ff 15 a4 a0 44 00    	call   *0x44a0a4
408cf6:	85 c0                	test   %eax,%eax
408cf8:	0f 84 1c 29 01 00    	je     0x41b61a
408cfe:	3b 45 cc             	cmp    -0x34(%ebp),%eax
408d01:	0f 87 45 29 01 00    	ja     0x41b64c
408d07:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
408d0a:	85 c9                	test   %ecx,%ecx
408d0c:	8b c1                	mov    %ecx,%eax