40aa6e:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
40aa72:	74 1c                	je     0x40aa90
40aa74:	8b 86 8c 01 00 00    	mov    0x18c(%esi),%eax
40aa7a:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40aa7f:	ff 70 0c             	push   0xc(%eax)
40aa82:	ff 71 14             	push   0x14(%ecx)
40aa85:	ff 71 10             	push   0x10(%ecx)
40aa88:	6a 5a                	push   $0x5a
40aa8a:	59                   	pop    %ecx
40aa8b:	e8 3e c9 ff ff       	call   0x4073ce
40aa90:	68 28 02 00 00       	push   $0x228
40aa95:	8d 85 cc fd ff ff    	lea    -0x234(%ebp),%eax
40aa9b:	57                   	push   %edi
40aa9c:	50                   	push   %eax
40aa9d:	e8 0b d9 01 00       	call   0x4283ad
40aaa2:	8b 96 8c 01 00 00    	mov    0x18c(%esi),%edx
40aaa8:	83 c4 0c             	add    $0xc,%esp
40aaab:	39 ba 60 9a 00 00    	cmp    %edi,0x9a60(%edx)
40aab1:	74 77                	je     0x40ab2a
40aab3:	c7 85 cc fd ff ff 28 	movl   $0x228,-0x234(%ebp)
40aaba:	02 00 00
40aabd:	8b 82 64 9a 00 00    	mov    0x9a64(%edx),%eax
40aac3:	89 85 d4 fd ff ff    	mov    %eax,-0x22c(%ebp)
40aac9:	8b 82 74 9a 00 00    	mov    0x9a74(%edx),%eax
40aacf:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40aad5:	8b 82 6c 9a 00 00    	mov    0x9a6c(%edx),%eax
40aadb:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
40aae1:	8b 82 68 9a 00 00    	mov    0x9a68(%edx),%eax
40aae7:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
40aaed:	8b 82 80 9a 00 00    	mov    0x9a80(%edx),%eax
40aaf3:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40aaf9:	8b 82 78 9a 00 00    	mov    0x9a78(%edx),%eax
40aaff:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40ab05:	8b 82 70 9a 00 00    	mov    0x9a70(%edx),%eax
40ab0b:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40ab11:	8b 82 7c 9a 00 00    	mov    0x9a7c(%edx),%eax
40ab17:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
40ab1d:	b8 ff fe ff ff       	mov    $0xfffffeff,%eax
40ab22:	89 85 d0 fd ff ff    	mov    %eax,-0x230(%ebp)
40ab28:	eb 06                	jmp    0x40ab30
40ab2a:	8b 85 d0 fd ff ff    	mov    -0x230(%ebp),%eax
40ab30:	8d b2 a4 07 00 00    	lea    0x7a4(%edx),%esi
40ab36:	66 39 3e             	cmp    %di,(%esi)
40ab39:	74 29                	je     0x40ab64
40ab3b:	0d 00 01 00 00       	or     $0x100,%eax
40ab40:	c7 85 cc fd ff ff 28 	movl   $0x228,-0x234(%ebp)
40ab47:	02 00 00
40ab4a:	89 85 d0 fd ff ff    	mov    %eax,-0x230(%ebp)
40ab50:	8d bd f4 fd ff ff    	lea    -0x20c(%ebp),%edi
40ab56:	b9 80 00 00 00       	mov    $0x80,%ecx
40ab5b:	33 c0                	xor    %eax,%eax
40ab5d:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ab5f:	89 45 f0             	mov    %eax,-0x10(%ebp)
40ab62:	33 ff                	xor    %edi,%edi
40ab64:	8b 85 cc fd ff ff    	mov    -0x234(%ebp),%eax
40ab6a:	8d 8d cc fd ff ff    	lea    -0x234(%ebp),%ecx
40ab70:	f7 d8                	neg    %eax
40ab72:	57                   	push   %edi
40ab73:	1b c0                	sbb    %eax,%eax
40ab75:	23 c1                	and    %ecx,%eax
40ab77:	8d 8d c0 fd ff ff    	lea    -0x240(%ebp),%ecx
40ab7d:	50                   	push   %eax
40ab7e:	8b 85 c0 fd ff ff    	mov    -0x240(%ebp),%eax
40ab84:	f7 d8                	neg    %eax
40ab86:	1b c0                	sbb    %eax,%eax
40ab88:	23 c1                	and    %ecx,%eax
40ab8a:	50                   	push   %eax
40ab8b:	6a 02                	push   $0x2
40ab8d:	53                   	push   %ebx
40ab8e:	ff 72 28             	push   0x28(%edx)
40ab91:	ff b5 c8 fd ff ff    	push   -0x238(%ebp)
40ab97:	ff 15 b4 c4 42 00    	call   *0x42c4b4
40ab9d:	8b f0                	mov    %eax,%esi
40ab9f:	85 f6                	test   %esi,%esi
40aba1:	79 2a                	jns    0x40abcd
40aba3:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40aba9:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40abaf:	74 1e                	je     0x40abcf
40abb1:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
40abb5:	74 18                	je     0x40abcf
40abb7:	56                   	push   %esi
40abb8:	ff 71 14             	push   0x14(%ecx)
40abbb:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40abc0:	ff 71 10             	push   0x10(%ecx)
40abc3:	6a 5b                	push   $0x5b
40abc5:	59                   	pop    %ecx
40abc6:	e8 03 c8 ff ff       	call   0x4073ce
40abcb:	eb 02                	jmp    0x40abcf
40abcd:	8b f7                	mov    %edi,%esi
40abcf:	85 db                	test   %ebx,%ebx
40abd1:	74 07                	je     0x40abda
40abd3:	53                   	push   %ebx
40abd4:	ff 15 30 c2 42 00    	call   *0x42c230
40abda:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40abdd:	8b c6                	mov    %esi,%eax
40abdf:	5f                   	pop    %edi
40abe0:	5e                   	pop    %esi
40abe1:	33 cd                	xor    %ebp,%ecx
40abe3:	5b                   	pop    %ebx
40abe4:	e8 f7 ce 01 00       	call   0x427ae0
40abe9:	c9                   	leave
40abea:	c2 04 00             	ret    $0x4
40abed:	cc                   	int3
40abee:	cc                   	int3
40abef:	68 bc 05 00 00       	push   $0x5bc
40abf4:	b8 1c 85 42 00       	mov    $0x42851c,%eax
40abf9:	e8 9d d4 01 00       	call   0x42809b
40abfe:	8b f9                	mov    %ecx,%edi
40ac00:	89 bd 50 fa ff ff    	mov    %edi,-0x5b0(%ebp)
40ac06:	8b 45 08             	mov    0x8(%ebp),%eax
40ac09:	33 db                	xor    %ebx,%ebx
40ac0b:	89 85 3c fa ff ff    	mov    %eax,-0x5c4(%ebp)
40ac11:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac14:	6a 50                	push   $0x50
40ac16:	89 85 38 fa ff ff    	mov    %eax,-0x5c8(%ebp)
40ac1c:	8d 85 58 fb ff ff    	lea    -0x4a8(%ebp),%eax
40ac22:	53                   	push   %ebx
40ac23:	50                   	push   %eax
40ac24:	e8 84 d7 01 00       	call   0x4283ad
40ac29:	83 c4 0c             	add    $0xc,%esp
40ac2c:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
40ac32:	68 cc 02 00 00       	push   $0x2cc
40ac37:	53                   	push   %ebx
40ac38:	50                   	push   %eax
40ac39:	e8 6f d7 01 00       	call   0x4283ad
40ac3e:	83 c4 0c             	add    $0xc,%esp
40ac41:	8d 85 a8 fb ff ff    	lea    -0x458(%ebp),%eax
40ac47:	68 b8 00 00 00       	push   $0xb8
40ac4c:	53                   	push   %ebx
40ac4d:	50                   	push   %eax
40ac4e:	e8 5a d7 01 00       	call   0x4283ad
40ac53:	83 c4 0c             	add    $0xc,%esp
40ac56:	8d 85 d8 fa ff ff    	lea    -0x528(%ebp),%eax
40ac5c:	be 80 00 00 00       	mov    $0x80,%esi
40ac61:	56                   	push   %esi
40ac62:	53                   	push   %ebx
40ac63:	50                   	push   %eax
40ac64:	e8 44 d7 01 00       	call   0x4283ad
40ac69:	83 c4 0c             	add    $0xc,%esp
40ac6c:	8d 85 58 fa ff ff    	lea    -0x5a8(%ebp),%eax
40ac72:	56                   	push   %esi
40ac73:	53                   	push   %ebx
40ac74:	50                   	push   %eax
40ac75:	e8 33 d7 01 00       	call   0x4283ad
40ac7a:	83 c4 0c             	add    $0xc,%esp
40ac7d:	89 9d 44 fa ff ff    	mov    %ebx,-0x5bc(%ebp)
40ac83:	8d 85 30 ff ff ff    	lea    -0xd0(%ebp),%eax
40ac89:	68 50 79 40 00       	push   $0x407950
40ac8e:	68 60 cc 40 00       	push   $0x40cc60
40ac93:	6a 08                	push   $0x8
40ac95:	6a 0c                	push   $0xc
40ac97:	50                   	push   %eax
40ac98:	e8 f1 d2 01 00       	call   0x427f8e
40ac9d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40aca0:	b9 9c 21 40 00       	mov    $0x40219c,%ecx
40aca5:	89 9d 4c fa ff ff    	mov    %ebx,-0x5b4(%ebp)
40acab:	89 9d 54 fa ff ff    	mov    %ebx,-0x5ac(%ebp)
40acb1:	e8 92 90 00 00       	call   0x413d48
40acb6:	8d 85 54 fa ff ff    	lea    -0x5ac(%ebp),%eax
40acbc:	50                   	push   %eax
40acbd:	ff 15 94 c4 42 00    	call   *0x42c494
40acc3:	8b 87 8c 01 00 00    	mov    0x18c(%edi),%eax
40acc9:	ff 70 0c             	push   0xc(%eax)
40accc:	53                   	push   %ebx
40accd:	68 ff ff 1f 00       	push   $0x1fffff
40acd2:	ff 15 7c c2 42 00    	call   *0x42c27c
40acd8:	8b f0                	mov    %eax,%esi
40acda:	89 b5 40 fa ff ff    	mov    %esi,-0x5c0(%ebp)
40ace0:	85 f6                	test   %esi,%esi
40ace2:	75 33                	jne    0x40ad17
40ace4:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40acea:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40acf0:	74 25                	je     0x40ad17
40acf2:	f6 41 1c 02          	testb  $0x2,0x1c(%ecx)
40acf6:	74 1f                	je     0x40ad17
40acf8:	ff 15 18 c2 42 00    	call   *0x42c218
40acfe:	50                   	push   %eax
40acff:	a1 00 b0 42 00       	mov    0x42b000,%eax
40ad04:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40ad09:	ff 70 14             	push   0x14(%eax)
40ad0c:	ff 70 10             	push   0x10(%eax)
40ad0f:	6a 5d                	push   $0x5d
40ad11:	59                   	pop    %ecx
40ad12:	e8 b7 c6 ff ff       	call   0x4073ce
40ad17:	8b 8f 8c 01 00 00    	mov    0x18c(%edi),%ecx
40ad1d:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
40ad23:	50                   	push   %eax
40ad24:	8d 85 58 fb ff ff    	lea    -0x4a8(%ebp),%eax
40ad2a:	50                   	push   %eax
40ad2b:	8b 51 14             	mov    0x14(%ecx),%edx
40ad2e:	8b 49 28             	mov    0x28(%ecx),%ecx
40ad31:	e8 a7 6d 00 00       	call   0x411add
40ad36:	85 c0                	test   %eax,%eax
40ad38:	79 3a                	jns    0x40ad74
40ad3a:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40ad40:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40ad46:	74 1a                	je     0x40ad62
40ad48:	f6 41 1c 02          	testb  $0x2,0x1c(%ecx)
40ad4c:	74 14                	je     0x40ad62
40ad4e:	50                   	push   %eax
40ad4f:	ff 71 14             	push   0x14(%ecx)
40ad52:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40ad57:	ff 71 10             	push   0x10(%ecx)
40ad5a:	6a 5e                	push   $0x5e
40ad5c:	59                   	pop    %ecx
40ad5d:	e8 6c c6 ff ff       	call   0x4073ce
40ad62:	6a 50                	push   $0x50
40ad64:	8d 85 58 fb ff ff    	lea    -0x4a8(%ebp),%eax
40ad6a:	53                   	push   %ebx
40ad6b:	50                   	push   %eax
40ad6c:	e8 3c d6 01 00       	call   0x4283ad
40ad71:	83 c4 0c             	add    $0xc,%esp
40ad74:	8b 85 64 fb ff ff    	mov    -0x49c(%ebp),%eax
40ad7a:	8b 8f 8c 01 00 00    	mov    0x18c(%edi),%ecx
40ad80:	85 c0                	test   %eax,%eax
40ad82:	75 03                	jne    0x40ad87
40ad84:	8b 41 10             	mov    0x10(%ecx),%eax
40ad87:	50                   	push   %eax
40ad88:	ff b5 58 fb ff ff    	push   -0x4a8(%ebp)
40ad8e:	8d 9f b0 01 00 00    	lea    0x1b0(%edi),%ebx
40ad94:	56                   	push   %esi
40ad95:	6a 00                	push   $0x0
40ad97:	ff 71 28             	push   0x28(%ecx)
40ad9a:	8b cb                	mov    %ebx,%ecx
40ad9c:	e8 3c c7 00 00       	call   0x4174dd
40ada1:	8b f0                	mov    %eax,%esi
40ada3:	85 f6                	test   %esi,%esi
40ada5:	79 33                	jns    0x40adda
40ada7:	a1 00 b0 42 00       	mov    0x42b000,%eax
40adac:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40adb1:	0f 84 bf 03 00 00    	je     0x40b176
40adb7:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40adbb:	0f 84 b5 03 00 00    	je     0x40b176
40adc1:	56                   	push   %esi
40adc2:	ff 70 14             	push   0x14(%eax)
40adc5:	ff 70 10             	push   0x10(%eax)
40adc8:	6a 5f                	push   $0x5f
40adca:	ba e0 21 40 00       	mov    $0x4021e0,%edx
40adcf:	59                   	pop    %ecx
40add0:	e8 f9 c5 ff ff       	call   0x4073ce
40add5:	e9 9c 03 00 00       	jmp    0x40b176
40adda:	ff b5 54 fa ff ff    	push   -0x5ac(%ebp)
40ade0:	8b cb                	mov    %ebx,%ecx
40ade2:	e8 c7 cf 00 00       	call   0x417dae
40ade7:	33 db                	xor    %ebx,%ebx
40ade9:	33 ff                	xor    %edi,%edi
40adeb:	8d b5 30 ff ff ff    	lea    -0xd0(%ebp),%esi
40adf1:	68 00 00 40 00       	push   $0x400000
40adf6:	ff b7 c0 21 40 00    	push   0x4021c0(%edi)
40adfc:	03 f3                	add    %ebx,%esi
40adfe:	8b ce                	mov    %esi,%ecx
40ae00:	e8 c7 18 00 00       	call   0x40c6cc
40ae05:	8b 06                	mov    (%esi),%eax
40ae07:	83 c7 04             	add    $0x4,%edi
40ae0a:	89 44 1d 90          	mov    %eax,-0x70(%ebp,%ebx,1)
40ae0e:	83 c3 0c             	add    $0xc,%ebx
40ae11:	83 ff 20             	cmp    $0x20,%edi
40ae14:	72 d5                	jb     0x40adeb
40ae16:	8b bd 50 fa ff ff    	mov    -0x5b0(%ebp),%edi
40ae1c:	8d 5d 90             	lea    -0x70(%ebp),%ebx
40ae1f:	c7 85 50 fa ff ff 08 	movl   $0x8,-0x5b0(%ebp)
40ae26:	00 00 00
40ae29:	33 d2                	xor    %edx,%edx
40ae2b:	8b 87 c4 01 00 00    	mov    0x1c4(%edi),%eax
40ae31:	89 45 94             	mov    %eax,-0x6c(%ebp)
40ae34:	8b 87 f8 01 00 00    	mov    0x1f8(%edi),%eax
40ae3a:	89 45 a0             	mov    %eax,-0x60(%ebp)
40ae3d:	8b 87 04 02 00 00    	mov    0x204(%edi),%eax
40ae43:	89 45 ac             	mov    %eax,-0x54(%ebp)
40ae46:	8b 87 1c 02 00 00    	mov    0x21c(%edi),%eax
40ae4c:	89 45 b8             	mov    %eax,-0x48(%ebp)
40ae4f:	8b 87 38 02 00 00    	mov    0x238(%edi),%eax
40ae55:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40ae58:	8b 87 44 02 00 00    	mov    0x244(%edi),%eax
40ae5e:	89 45 d0             	mov    %eax,-0x30(%ebp)
40ae61:	8b 87 68 02 00 00    	mov    0x268(%edi),%eax
40ae67:	89 45 dc             	mov    %eax,-0x24(%ebp)
40ae6a:	8b 87 5c 02 00 00    	mov    0x25c(%edi),%eax
40ae70:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ae73:	8b 4c 15 90          	mov    -0x70(%ebp,%edx,1),%ecx
40ae77:	8b 44 15 94          	mov    -0x6c(%ebp,%edx,1),%eax
40ae7b:	89 8c 15 ac fb ff ff 	mov    %ecx,-0x454(%ebp,%edx,1)
40ae82:	89 84 15 b0 fb ff ff 	mov    %eax,-0x450(%ebp,%edx,1)
40ae89:	89 8c 15 dc fa ff ff 	mov    %ecx,-0x524(%ebp,%edx,1)
40ae90:	89 84 15 e0 fa ff ff 	mov    %eax,-0x520(%ebp,%edx,1)
40ae97:	83 c2 0c             	add    $0xc,%edx
40ae9a:	83 fa 60             	cmp    $0x60,%edx
40ae9d:	72 d4                	jb     0x40ae73
40ae9f:	8d 47 48             	lea    0x48(%edi),%eax
40aea2:	68 60 1f 40 00       	push   $0x401f60
40aea7:	8b c8                	mov    %eax,%ecx
40aea9:	89 85 48 fa ff ff    	mov    %eax,-0x5b8(%ebp)
40aeaf:	e8 04 12 00 00       	call   0x40c0b8
40aeb4:	8b f0                	mov    %eax,%esi
40aeb6:	85 f6                	test   %esi,%esi
40aeb8:	79 27                	jns    0x40aee1
40aeba:	a1 00 b0 42 00       	mov    0x42b000,%eax
40aebf:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40aec4:	0f 84 ac 02 00 00    	je     0x40b176
40aeca:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40aece:	0f 84 a2 02 00 00    	je     0x40b176
40aed4:	ff 70 14             	push   0x14(%eax)
40aed7:	ff 70 10             	push   0x10(%eax)
40aeda:	6a 60                	push   $0x60
40aedc:	e9 8a 02 00 00       	jmp    0x40b16b
40aee1:	8d b7 e8 02 00 00    	lea    0x2e8(%edi),%esi
40aee7:	8b d6                	mov    %esi,%edx
40aee9:	e8 60 d0 00 00       	call   0x417f4e
40aeee:	85 c0                	test   %eax,%eax
40aef0:	0f 88 1b 01 00 00    	js     0x40b011
40aef6:	8b 8f 8c 01 00 00    	mov    0x18c(%edi),%ecx
40aefc:	8d 95 a8 fb ff ff    	lea    -0x458(%ebp),%edx
40af02:	8b 87 b8 01 00 00    	mov    0x1b8(%edi),%eax
40af08:	89 85 30 fc ff ff    	mov    %eax,-0x3d0(%ebp)
40af0e:	8b 87 10 02 00 00    	mov    0x210(%edi),%eax
40af14:	89 85 34 fc ff ff    	mov    %eax,-0x3cc(%ebp)
40af1a:	c7 85 a8 fb ff ff 60 	movl   $0x401f60,-0x458(%ebp)
40af21:	1f 40 00
40af24:	c7 85 24 fc ff ff 08 	movl   $0x8,-0x3dc(%ebp)
40af2b:	00 00 00
40af2e:	c7 85 28 fc ff ff 01 	movl   $0x1,-0x3d8(%ebp)
40af35:	00 00 00
40af38:	8b 41 08             	mov    0x8(%ecx),%eax
40af3b:	89 85 38 fc ff ff    	mov    %eax,-0x3c8(%ebp)
40af41:	8b 41 0c             	mov    0xc(%ecx),%eax
40af44:	89 85 3c fc ff ff    	mov    %eax,-0x3c4(%ebp)
40af4a:	8d 85 58 fb ff ff    	lea    -0x4a8(%ebp),%eax
40af50:	89 85 40 fc ff ff    	mov    %eax,-0x3c0(%ebp)
40af56:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
40af5c:	89 85 44 fc ff ff    	mov    %eax,-0x3bc(%ebp)
40af62:	8b 41 28             	mov    0x28(%ecx),%eax
40af65:	89 85 48 fc ff ff    	mov    %eax,-0x3b8(%ebp)
40af6b:	8b 85 40 fa ff ff    	mov    -0x5c0(%ebp),%eax
40af71:	51                   	push   %ecx
40af72:	89 85 4c fc ff ff    	mov    %eax,-0x3b4(%ebp)
40af78:	8b 87 d8 02 00 00    	mov    0x2d8(%edi),%eax
40af7e:	51                   	push   %ecx
40af7f:	8b 0e                	mov    (%esi),%ecx
40af81:	89 85 5c fc ff ff    	mov    %eax,-0x3a4(%ebp)
40af87:	e8 a9 d4 00 00       	call   0x418435
40af8c:	8b c8                	mov    %eax,%ecx
40af8e:	85 c9                	test   %ecx,%ecx
40af90:	78 52                	js     0x40afe4
40af92:	8b 0e                	mov    (%esi),%ecx
40af94:	8d 85 44 fa ff ff    	lea    -0x5bc(%ebp),%eax
40af9a:	50                   	push   %eax
40af9b:	8d 85 58 fa ff ff    	lea    -0x5a8(%ebp),%eax
40afa1:	c7 85 d8 fa ff ff 60 	movl   $0x401f60,-0x528(%ebp)
40afa8:	1f 40 00
40afab:	50                   	push   %eax