405db7:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
405dba:	e8 3a f3 ff ff       	call   0x4050f9
405dbf:	85 c0                	test   %eax,%eax
405dc1:	0f 84 0d ff ff ff    	je     0x405cd4
405dc7:	ff 37                	push   (%edi)
405dc9:	ff 15 f0 61 41 00    	call   *0x4161f0
405dcf:	8b f0                	mov    %eax,%esi
405dd1:	89 37                	mov    %esi,(%edi)
405dd3:	0f b7 0e             	movzwl (%esi),%ecx
405dd6:	8b c1                	mov    %ecx,%eax
405dd8:	66 85 c9             	test   %cx,%cx
405ddb:	e9 08 ff ff ff       	jmp    0x405ce8
405de0:	bb 05 40 00 80       	mov    $0x80004005,%ebx
405de5:	eb 12                	jmp    0x405df9
405de7:	bb 09 00 02 80       	mov    $0x80020009,%ebx
405dec:	eb 0b                	jmp    0x405df9
405dee:	8b 45 98             	mov    -0x68(%ebp),%eax
405df1:	8b 4d ac             	mov    -0x54(%ebp),%ecx
405df4:	89 5d ac             	mov    %ebx,-0x54(%ebp)
405df7:	89 08                	mov    %ecx,(%eax)
405df9:	ff 75 ac             	push   -0x54(%ebp)
405dfc:	ff 15 34 62 41 00    	call   *0x416234
405e02:	8b c3                	mov    %ebx,%eax
405e04:	eb 05                	jmp    0x405e0b
405e06:	b8 03 40 00 80       	mov    $0x80004003,%eax
405e0b:	e8 30 c7 00 00       	call   0x412540
405e10:	c2 08 00             	ret    $0x8
405e13:	8b ff                	mov    %edi,%edi
405e15:	55                   	push   %ebp
405e16:	8b ec                	mov    %esp,%ebp
405e18:	b8 14 20 00 00       	mov    $0x2014,%eax
405e1d:	e8 9e cc 00 00       	call   0x412ac0
405e22:	a1 f4 51 41 00       	mov    0x4151f4,%eax
405e27:	33 c5                	xor    %ebp,%eax
405e29:	89 45 fc             	mov    %eax,-0x4(%ebp)
405e2c:	8b 45 08             	mov    0x8(%ebp),%eax
405e2f:	83 a5 f4 df ff ff 00 	andl   $0x0,-0x200c(%ebp)
405e36:	53                   	push   %ebx
405e37:	56                   	push   %esi
405e38:	57                   	push   %edi
405e39:	8b f9                	mov    %ecx,%edi
405e3b:	8d 8d f4 df ff ff    	lea    -0x200c(%ebp),%ecx
405e41:	51                   	push   %ecx
405e42:	50                   	push   %eax
405e43:	8b cf                	mov    %edi,%ecx
405e45:	e8 07 fe ff ff       	call   0x405c51
405e4a:	8b f0                	mov    %eax,%esi
405e4c:	85 f6                	test   %esi,%esi
405e4e:	0f 88 ff 00 00 00    	js     0x405f53
405e54:	8b 85 f4 df ff ff    	mov    -0x200c(%ebp),%eax
405e5a:	89 07                	mov    %eax,(%edi)
405e5c:	e9 d2 00 00 00       	jmp    0x405f33
405e61:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
405e67:	8b cf                	mov    %edi,%ecx
405e69:	50                   	push   %eax
405e6a:	e8 25 f7 ff ff       	call   0x405594
405e6f:	8b f0                	mov    %eax,%esi
405e71:	85 f6                	test   %esi,%esi
405e73:	0f 88 cc 00 00 00    	js     0x405f45
405e79:	33 f6                	xor    %esi,%esi
405e7b:	ff 34 f5 50 15 40 00 	push   0x401550(,%esi,8)
405e82:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
405e88:	50                   	push   %eax
405e89:	ff 15 d4 60 41 00    	call   *0x4160d4
405e8f:	85 c0                	test   %eax,%eax
405e91:	74 0a                	je     0x405e9d
405e93:	46                   	inc    %esi
405e94:	83 fe 0e             	cmp    $0xe,%esi
405e97:	72 e2                	jb     0x405e7b
405e99:	33 db                	xor    %ebx,%ebx
405e9b:	eb 07                	jmp    0x405ea4
405e9d:	8b 1c f5 54 15 40 00 	mov    0x401554(,%esi,8),%ebx
405ea4:	85 db                	test   %ebx,%ebx
405ea6:	0f 84 94 00 00 00    	je     0x405f40
405eac:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
405eb2:	8b cf                	mov    %edi,%ecx
405eb4:	50                   	push   %eax
405eb5:	e8 da f6 ff ff       	call   0x405594
405eba:	8b f0                	mov    %eax,%esi
405ebc:	85 f6                	test   %esi,%esi
405ebe:	0f 88 81 00 00 00    	js     0x405f45
405ec4:	6a 7b                	push   $0x7b
405ec6:	58                   	pop    %eax
405ec7:	66 3b 85 f8 df ff ff 	cmp    -0x2008(%ebp),%ax
405ece:	75 70                	jne    0x405f40
405ed0:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
405ed4:	8b cf                	mov    %edi,%ecx
405ed6:	6a 00                	push   $0x0
405ed8:	74 3b                	je     0x405f15
405eda:	ff 75 0c             	push   0xc(%ebp)
405edd:	8b 07                	mov    (%edi),%eax
405edf:	89 85 f0 df ff ff    	mov    %eax,-0x2010(%ebp)
405ee5:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
405eeb:	53                   	push   %ebx
405eec:	50                   	push   %eax
405eed:	e8 72 00 00 00       	call   0x405f64
405ef2:	8b f0                	mov    %eax,%esi
405ef4:	85 f6                	test   %esi,%esi
405ef6:	79 32                	jns    0x405f2a
405ef8:	8b 85 f0 df ff ff    	mov    -0x2010(%ebp),%eax
405efe:	8b cf                	mov    %edi,%ecx
405f00:	6a 00                	push   $0x0
405f02:	6a 00                	push   $0x0
405f04:	89 07                	mov    %eax,(%edi)
405f06:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
405f0c:	53                   	push   %ebx
405f0d:	50                   	push   %eax
405f0e:	e8 51 00 00 00       	call   0x405f64
405f13:	eb 30                	jmp    0x405f45
405f15:	6a 00                	push   $0x0
405f17:	53                   	push   %ebx
405f18:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
405f1e:	50                   	push   %eax
405f1f:	e8 40 00 00 00       	call   0x405f64
405f24:	8b f0                	mov    %eax,%esi
405f26:	85 f6                	test   %esi,%esi
405f28:	78 1b                	js     0x405f45
405f2a:	8b cf                	mov    %edi,%ecx
405f2c:	e8 36 f6 ff ff       	call   0x405567
405f31:	8b 07                	mov    (%edi),%eax
405f33:	33 c9                	xor    %ecx,%ecx
405f35:	66 3b 08             	cmp    (%eax),%cx
405f38:	0f 85 23 ff ff ff    	jne    0x405e61
405f3e:	eb 05                	jmp    0x405f45
405f40:	be 09 00 02 80       	mov    $0x80020009,%esi
405f45:	ff b5 f4 df ff ff    	push   -0x200c(%ebp)
405f4b:	ff 15 34 62 41 00    	call   *0x416234
405f51:	8b c6                	mov    %esi,%eax
405f53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405f56:	5f                   	pop    %edi
405f57:	5e                   	pop    %esi
405f58:	33 cd                	xor    %ebp,%ecx
405f5a:	5b                   	pop    %ebx
405f5b:	e8 90 c0 00 00       	call   0x411ff0
405f60:	c9                   	leave
405f61:	c2 08 00             	ret    $0x8
405f64:	8b ff                	mov    %edi,%edi
405f66:	55                   	push   %ebp
405f67:	8b ec                	mov    %esp,%ebp
405f69:	6a ff                	push   $0xffffffff
405f6b:	68 0c 2c 41 00       	push   $0x412c0c
405f70:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
405f76:	50                   	push   %eax
405f77:	b8 58 22 00 00       	mov    $0x2258,%eax
405f7c:	e8 3f cb 00 00       	call   0x412ac0
405f81:	a1 f4 51 41 00       	mov    0x4151f4,%eax
405f86:	33 c5                	xor    %ebp,%eax
405f88:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f8b:	53                   	push   %ebx
405f8c:	56                   	push   %esi
405f8d:	57                   	push   %edi
405f8e:	50                   	push   %eax
405f8f:	8d 45 f4             	lea    -0xc(%ebp),%eax
405f92:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405f98:	8b c1                	mov    %ecx,%eax
405f9a:	89 85 e0 dd ff ff    	mov    %eax,-0x2220(%ebp)
405fa0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405fa3:	8b 7d 08             	mov    0x8(%ebp),%edi
405fa6:	89 8d dc dd ff ff    	mov    %ecx,-0x2224(%ebp)
405fac:	33 c9                	xor    %ecx,%ecx
405fae:	8b d9                	mov    %ecx,%ebx
405fb0:	89 8d c4 dd ff ff    	mov    %ecx,-0x223c(%ebp)
405fb6:	89 9d c8 dd ff ff    	mov    %ebx,-0x2238(%ebp)
405fbc:	89 8d cc dd ff ff    	mov    %ecx,-0x2234(%ebp)
405fc2:	89 8d d0 dd ff ff    	mov    %ecx,-0x2230(%ebp)
405fc8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
405fcb:	8b c8                	mov    %eax,%ecx
405fcd:	57                   	push   %edi
405fce:	e8 c1 f5 ff ff       	call   0x405594
405fd3:	8b f0                	mov    %eax,%esi
405fd5:	85 f6                	test   %esi,%esi
405fd7:	0f 88 0c 06 00 00    	js     0x4065e9
405fdd:	e9 c2 05 00 00       	jmp    0x4065a4
405fe2:	68 8c 28 40 00       	push   $0x40288c
405fe7:	57                   	push   %edi
405fe8:	c7 85 d8 dd ff ff 01 	movl   $0x1,-0x2228(%ebp)
405fef:	00 00 00
405ff2:	ff 15 d4 60 41 00    	call   *0x4160d4
405ff8:	f7 d8                	neg    %eax
405ffa:	68 60 28 40 00       	push   $0x402860
405fff:	1b f6                	sbb    %esi,%esi
406001:	46                   	inc    %esi
406002:	57                   	push   %edi
406003:	89 b5 e4 dd ff ff    	mov    %esi,-0x221c(%ebp)
406009:	ff 15 d4 60 41 00    	call   *0x4160d4
40600f:	85 c0                	test   %eax,%eax
406011:	74 08                	je     0x40601b
406013:	85 f6                	test   %esi,%esi
406015:	0f 84 a0 00 00 00    	je     0x4060bb
40601b:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
406021:	57                   	push   %edi
406022:	e8 6d f5 ff ff       	call   0x405594
406027:	8b f0                	mov    %eax,%esi
406029:	85 f6                	test   %esi,%esi
40602b:	0f 88 ad 05 00 00    	js     0x4065de
406031:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
406035:	0f 84 80 00 00 00    	je     0x4060bb
40603b:	33 c0                	xor    %eax,%eax
40603d:	8b cf                	mov    %edi,%ecx
40603f:	6a 5c                	push   $0x5c
406041:	5a                   	pop    %edx
406042:	89 85 b8 dd ff ff    	mov    %eax,-0x2248(%ebp)
406048:	89 85 bc dd ff ff    	mov    %eax,-0x2244(%ebp)
40604e:	89 85 c0 dd ff ff    	mov    %eax,-0x2240(%ebp)
406054:	e8 d2 f4 ff ff       	call   0x40552b
406059:	85 c0                	test   %eax,%eax
40605b:	0f 85 78 05 00 00    	jne    0x4065d9
406061:	57                   	push   %edi
406062:	e8 1b fb ff ff       	call   0x405b82
406067:	85 c0                	test   %eax,%eax
406069:	74 20                	je     0x40608b
40606b:	8b 85 dc dd ff ff    	mov    -0x2224(%ebp),%eax
406071:	8d 8d b8 dd ff ff    	lea    -0x2248(%ebp),%ecx
406077:	57                   	push   %edi
406078:	89 85 b8 dd ff ff    	mov    %eax,-0x2248(%ebp)
40607e:	e8 a4 ed ff ff       	call   0x404e27
406083:	33 c0                	xor    %eax,%eax
406085:	89 85 b8 dd ff ff    	mov    %eax,-0x2248(%ebp)
40608b:	83 bd e4 dd ff ff 00 	cmpl   $0x0,-0x221c(%ebp)
406092:	74 27                	je     0x4060bb
406094:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
40609a:	57                   	push   %edi
40609b:	e8 f4 f4 ff ff       	call   0x405594
4060a0:	8b f0                	mov    %eax,%esi
4060a2:	85 f6                	test   %esi,%esi
4060a4:	0f 88 34 05 00 00    	js     0x4065de
4060aa:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
4060b0:	57                   	push   %edi
4060b1:	e8 34 fb ff ff       	call   0x405bea
4060b6:	e9 81 02 00 00       	jmp    0x40633c
4060bb:	68 78 28 40 00       	push   $0x402878
4060c0:	57                   	push   %edi
4060c1:	ff 15 d4 60 41 00    	call   *0x4160d4
4060c7:	85 c0                	test   %eax,%eax
4060c9:	75 1c                	jne    0x4060e7
4060cb:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
4060d1:	57                   	push   %edi
4060d2:	89 85 d8 dd ff ff    	mov    %eax,-0x2228(%ebp)
4060d8:	e8 b7 f4 ff ff       	call   0x405594
4060dd:	8b f0                	mov    %eax,%esi
4060df:	85 f6                	test   %esi,%esi
4060e1:	0f 88 f7 04 00 00    	js     0x4065de
4060e7:	68 58 28 40 00       	push   $0x402858
4060ec:	57                   	push   %edi
4060ed:	ff 15 d4 60 41 00    	call   *0x4160d4
4060f3:	85 c0                	test   %eax,%eax
4060f5:	0f 85 1c 01 00 00    	jne    0x406217
4060fb:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
406101:	8d 85 e8 dd ff ff    	lea    -0x2218(%ebp),%eax
406107:	50                   	push   %eax
406108:	e8 87 f4 ff ff       	call   0x405594
40610d:	8b f0                	mov    %eax,%esi
40610f:	85 f6                	test   %esi,%esi
406111:	0f 88 c7 04 00 00    	js     0x4065de
406117:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
40611d:	57                   	push   %edi
40611e:	e8 71 f4 ff ff       	call   0x405594
406123:	8b f0                	mov    %eax,%esi
406125:	85 f6                	test   %esi,%esi
406127:	0f 88 b1 04 00 00    	js     0x4065de
40612d:	6a 3d                	push   $0x3d
40612f:	58                   	pop    %eax
406130:	66 39 07             	cmp    %ax,(%edi)
406133:	0f 85 a0 04 00 00    	jne    0x4065d9
406139:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40613d:	74 52                	je     0x406191
40613f:	33 c0                	xor    %eax,%eax
406141:	89 85 b0 dd ff ff    	mov    %eax,-0x2250(%ebp)
406147:	89 85 b4 dd ff ff    	mov    %eax,-0x224c(%ebp)
40614d:	8b 85 dc dd ff ff    	mov    -0x2224(%ebp),%eax
406153:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
406159:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40615d:	89 85 ac dd ff ff    	mov    %eax,-0x2254(%ebp)
406163:	8d 85 e8 dd ff ff    	lea    -0x2218(%ebp),%eax
406169:	57                   	push   %edi
40616a:	50                   	push   %eax
40616b:	8d 85 ac dd ff ff    	lea    -0x2254(%ebp),%eax
406171:	50                   	push   %eax
406172:	e8 77 f5 ff ff       	call   0x4056ee
406177:	8b f0                	mov    %eax,%esi
406179:	33 c0                	xor    %eax,%eax
40617b:	89 85 ac dd ff ff    	mov    %eax,-0x2254(%ebp)
406181:	85 f6                	test   %esi,%esi
406183:	0f 88 55 04 00 00    	js     0x4065de
406189:	88 45 fc             	mov    %al,-0x4(%ebp)
40618c:	e9 b5 01 00 00       	jmp    0x406346
406191:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
406195:	75 65                	jne    0x4061fc
406197:	83 bd d8 dd ff ff 00 	cmpl   $0x0,-0x2228(%ebp)
40619e:	74 5c                	je     0x4061fc
4061a0:	8d 85 e4 dd ff ff    	lea    -0x221c(%ebp),%eax
4061a6:	33 c9                	xor    %ecx,%ecx
4061a8:	50                   	push   %eax
4061a9:	68 06 00 02 00       	push   $0x20006
4061ae:	51                   	push   %ecx
4061af:	51                   	push   %ecx
4061b0:	ff b5 dc dd ff ff    	push   -0x2224(%ebp)
4061b6:	89 8d e4 dd ff ff    	mov    %ecx,-0x221c(%ebp)
4061bc:	ff 15 04 60 41 00    	call   *0x416004
4061c2:	85 c0                	test   %eax,%eax
4061c4:	0f 85 04 04 00 00    	jne    0x4065ce
4061ca:	8b b5 e4 dd ff ff    	mov    -0x221c(%ebp),%esi
4061d0:	8d 85 e8 dd ff ff    	lea    -0x2218(%ebp),%eax
4061d6:	50                   	push   %eax
4061d7:	56                   	push   %esi
4061d8:	89 b5 d8 dd ff ff    	mov    %esi,-0x2228(%ebp)
4061de:	ff 15 00 60 41 00    	call   *0x416000
4061e4:	85 c0                	test   %eax,%eax
4061e6:	74 09                	je     0x4061f1
4061e8:	83 f8 02             	cmp    $0x2,%eax
4061eb:	0f 85 c1 03 00 00    	jne    0x4065b2
4061f1:	85 f6                	test   %esi,%esi
4061f3:	74 07                	je     0x4061fc
4061f5:	56                   	push   %esi
4061f6:	ff 15 18 60 41 00    	call   *0x416018
4061fc:	8b 8d e0 dd ff ff    	mov    -0x2220(%ebp),%ecx
406202:	57                   	push   %edi
406203:	e8 e2 f9 ff ff       	call   0x405bea
406208:	8b f0                	mov    %eax,%esi
40620a:	85 f6                	test   %esi,%esi
40620c:	0f 88 cc 03 00 00    	js     0x4065de
406212:	e9 8d 03 00 00       	jmp    0x4065a4
406217:	6a 5c                	push   $0x5c
406219:	5a                   	pop    %edx
40621a:	8b cf                	mov    %edi,%ecx
40621c:	e8 0a f3 ff ff       	call   0x40552b
406221:	85 c0                	test   %eax,%eax
406223:	0f 85 b0 03 00 00    	jne    0x4065d9
406229:	39 45 10             	cmp    %eax,0x10(%ebp)
40622c:	0f 84 6f 01 00 00    	je     0x4063a1
406232:	8b b5 dc dd ff ff    	mov    -0x2224(%ebp),%esi
406238:	8d 85 e4 dd ff ff    	lea    -0x221c(%ebp),%eax
40623e:	50                   	push   %eax
40623f:	68 1f 00 02 00       	push   $0x2001f
406244:	33 c9                	xor    %ecx,%ecx
406246:	51                   	push   %ecx
406247:	57                   	push   %edi
406248:	56                   	push   %esi
406249:	89 8d e4 dd ff ff    	mov    %ecx,-0x221c(%ebp)
40624f:	ff 15 04 60 41 00    	call   *0x416004
406255:	85 c0                	test   %eax,%eax
406257:	75 1f                	jne    0x406278
406259:	85 db                	test   %ebx,%ebx
40625b:	74 07                	je     0x406264
40625d:	53                   	push   %ebx
40625e:	ff 15 18 60 41 00    	call   *0x416018
406264:	8b 9d e4 dd ff ff    	mov    -0x221c(%ebp),%ebx
40626a:	89 9d c8 dd ff ff    	mov    %ebx,-0x2238(%ebp)
406270:	85 c0                	test   %eax,%eax
406272:	0f 84 8a 00 00 00    	je     0x406302