402deb:	83 f8 ff             	cmp    $0xffffffff,%eax
402dee:	0f 84 af 00 00 00    	je     0x402ea3
402df4:	50                   	push   %eax
402df5:	ff d5                	call   *%ebp
402df7:	e9 a7 00 00 00       	jmp    0x402ea3
402dfc:	80 7c 24 28 00       	cmpb   $0x0,0x28(%esp)
402e01:	8b 6c 24 24          	mov    0x24(%esp),%ebp
402e05:	c6 44 24 17 01       	movb   $0x1,0x17(%esp)
402e0a:	74 2f                	je     0x402e3b
402e0c:	53                   	push   %ebx
402e0d:	8d 44 24 1c          	lea    0x1c(%esp),%eax
402e11:	33 c9                	xor    %ecx,%ecx
402e13:	39 5f 20             	cmp    %ebx,0x20(%edi)
402e16:	50                   	push   %eax
402e17:	8d 44 24 34          	lea    0x34(%esp),%eax
402e1b:	0f 44 c1             	cmove  %ecx,%eax
402e1e:	50                   	push   %eax
402e1f:	8b 47 28             	mov    0x28(%edi),%eax
402e22:	83 c8 04             	or     $0x4,%eax
402e25:	50                   	push   %eax
402e26:	ff b7 4c 01 02 00    	push   0x2014c(%edi)
402e2c:	ff 77 14             	push   0x14(%edi)
402e2f:	ff 77 10             	push   0x10(%edi)
402e32:	ff d5                	call   *%ebp
402e34:	85 c0                	test   %eax,%eax
402e36:	0f 95 44 24 17       	setne  0x17(%esp)
402e3b:	6b 4c 24 18 0c       	imul   $0xc,0x18(%esp),%ecx
402e40:	8b 44 24 50          	mov    0x50(%esp),%eax
402e44:	3b 44 24 54          	cmp    0x54(%esp),%eax
402e48:	74 1f                	je     0x402e69
402e4a:	c7 04 31 12 00 00 00 	movl   $0x12,(%ecx,%esi,1)
402e51:	8b 44 24 54          	mov    0x54(%esp),%eax
402e55:	2b 44 24 50          	sub    0x50(%esp),%eax
402e59:	89 44 31 04          	mov    %eax,0x4(%ecx,%esi,1)
402e5d:	8b 44 24 50          	mov    0x50(%esp),%eax
402e61:	89 44 31 08          	mov    %eax,0x8(%ecx,%esi,1)
402e65:	ff 44 24 18          	incl   0x18(%esp)
402e69:	ff b7 58 01 02 00    	push   0x20158(%edi)
402e6f:	8d 44 24 1c          	lea    0x1c(%esp),%eax
402e73:	33 c9                	xor    %ecx,%ecx
402e75:	39 5f 20             	cmp    %ebx,0x20(%edi)
402e78:	50                   	push   %eax
402e79:	8d 44 24 34          	lea    0x34(%esp),%eax
402e7d:	0f 44 c1             	cmove  %ecx,%eax
402e80:	50                   	push   %eax
402e81:	8b 47 28             	mov    0x28(%edi),%eax
402e84:	83 e0 fd             	and    $0xfffffffd,%eax
402e87:	50                   	push   %eax
402e88:	ff b7 48 01 02 00    	push   0x20148(%edi)
402e8e:	ff 77 14             	push   0x14(%edi)
402e91:	ff 77 10             	push   0x10(%edi)
402e94:	ff d5                	call   *%ebp
402e96:	85 c0                	test   %eax,%eax
402e98:	74 09                	je     0x402ea3
402e9a:	80 7c 24 17 00       	cmpb   $0x0,0x17(%esp)
402e9f:	74 02                	je     0x402ea3
402ea1:	b3 01                	mov    $0x1,%bl
402ea3:	8d 4c 24 38          	lea    0x38(%esp),%ecx
402ea7:	e8 5a f9 ff ff       	call   0x402806
402eac:	56                   	push   %esi
402ead:	e8 3e 3b 00 00       	call   0x4069f0
402eb2:	59                   	pop    %ecx
402eb3:	8a c3                	mov    %bl,%al
402eb5:	eb 02                	jmp    0x402eb9
402eb7:	32 c0                	xor    %al,%al
402eb9:	8b 8c 24 7c 03 00 00 	mov    0x37c(%esp),%ecx
402ec0:	5f                   	pop    %edi
402ec1:	5e                   	pop    %esi
402ec2:	5d                   	pop    %ebp
402ec3:	5b                   	pop    %ebx
402ec4:	33 cc                	xor    %esp,%ecx
402ec6:	e8 dc 6d 00 00       	call   0x409ca7
402ecb:	81 c4 74 03 00 00    	add    $0x374,%esp
402ed1:	c3                   	ret
402ed2:	55                   	push   %ebp
402ed3:	8b ec                	mov    %esp,%ebp
402ed5:	83 ec 20             	sub    $0x20,%esp
402ed8:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
402edd:	33 c5                	xor    %ebp,%eax
402edf:	89 45 f8             	mov    %eax,-0x8(%ebp)
402ee2:	53                   	push   %ebx
402ee3:	56                   	push   %esi
402ee4:	8b f1                	mov    %ecx,%esi
402ee6:	57                   	push   %edi
402ee7:	8b 7d 08             	mov    0x8(%ebp),%edi
402eea:	83 be 48 01 02 00 ff 	cmpl   $0xffffffff,0x20148(%esi)
402ef1:	74 07                	je     0x402efa
402ef3:	32 c0                	xor    %al,%al
402ef5:	e9 82 00 00 00       	jmp    0x402f7c
402efa:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
402efe:	33 c0                	xor    %eax,%eax
402f00:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
402f04:	8d 45 e0             	lea    -0x20(%ebp),%eax
402f07:	50                   	push   %eax
402f08:	c7 45 f4 07 00 00 00 	movl   $0x7,-0xc(%ebp)
402f0f:	e8 6b 02 00 00       	call   0x40317f
402f14:	84 c0                	test   %al,%al
402f16:	74 4c                	je     0x402f64
402f18:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
402f1c:	8d 45 e0             	lea    -0x20(%ebp),%eax
402f1f:	6a 00                	push   $0x0
402f21:	0f 43 45 e0          	cmovae -0x20(%ebp),%eax
402f25:	33 db                	xor    %ebx,%ebx
402f27:	68 80 00 00 00       	push   $0x80
402f2c:	43                   	inc    %ebx
402f2d:	53                   	push   %ebx
402f2e:	6a 00                	push   $0x0
402f30:	6a 00                	push   $0x0
402f32:	68 00 00 00 40       	push   $0x40000000
402f37:	50                   	push   %eax
402f38:	ff 15 38 11 43 00    	call   *0x431138
402f3e:	89 86 48 01 02 00    	mov    %eax,0x20148(%esi)
402f44:	83 f8 ff             	cmp    $0xffffffff,%eax
402f47:	74 1b                	je     0x402f64
402f49:	8d 45 e0             	lea    -0x20(%ebp),%eax
402f4c:	88 9e 50 01 02 00    	mov    %bl,0x20150(%esi)
402f52:	3b f8                	cmp    %eax,%edi
402f54:	74 10                	je     0x402f66
402f56:	6a ff                	push   $0xffffffff
402f58:	6a 00                	push   $0x0
402f5a:	50                   	push   %eax
402f5b:	8b cf                	mov    %edi,%ecx
402f5d:	e8 ae f1 ff ff       	call   0x402110
402f62:	eb 02                	jmp    0x402f66
402f64:	32 db                	xor    %bl,%bl
402f66:	8b 55 f4             	mov    -0xc(%ebp),%edx
402f69:	83 fa 08             	cmp    $0x8,%edx
402f6c:	72 0c                	jb     0x402f7a
402f6e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
402f71:	42                   	inc    %edx
402f72:	6a 02                	push   $0x2
402f74:	e8 65 e2 ff ff       	call   0x4011de
402f79:	59                   	pop    %ecx
402f7a:	8a c3                	mov    %bl,%al
402f7c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402f7f:	5f                   	pop    %edi
402f80:	5e                   	pop    %esi
402f81:	33 cd                	xor    %ebp,%ecx
402f83:	5b                   	pop    %ebx
402f84:	e8 1e 6d 00 00       	call   0x409ca7
402f89:	c9                   	leave
402f8a:	c2 04 00             	ret    $0x4
402f8d:	83 ec 20             	sub    $0x20,%esp
402f90:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
402f95:	33 c4                	xor    %esp,%eax
402f97:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402f9b:	53                   	push   %ebx
402f9c:	55                   	push   %ebp
402f9d:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
402fa1:	8b d9                	mov    %ecx,%ebx
402fa3:	56                   	push   %esi
402fa4:	57                   	push   %edi
402fa5:	f6 43 28 02          	testb  $0x2,0x28(%ebx)
402fa9:	0f 84 48 01 00 00    	je     0x4030f7
402faf:	83 bb 4c 01 02 00 ff 	cmpl   $0xffffffff,0x2014c(%ebx)
402fb6:	0f 85 3b 01 00 00    	jne    0x4030f7
402fbc:	83 64 24 24 00       	andl   $0x0,0x24(%esp)
402fc1:	33 c0                	xor    %eax,%eax
402fc3:	66 89 44 24 14       	mov    %ax,0x14(%esp)
402fc8:	8d 44 24 14          	lea    0x14(%esp),%eax
402fcc:	50                   	push   %eax
402fcd:	c7 44 24 2c 07 00 00 	movl   $0x7,0x2c(%esp)
402fd4:	00
402fd5:	e8 a5 01 00 00       	call   0x40317f
402fda:	84 c0                	test   %al,%al
402fdc:	0f 84 f9 00 00 00    	je     0x4030db
402fe2:	8b 44 24 24          	mov    0x24(%esp),%eax
402fe6:	8d 4c 24 14          	lea    0x14(%esp),%ecx
402fea:	6a 00                	push   $0x0
402fec:	83 c0 fc             	add    $0xfffffffc,%eax
402fef:	50                   	push   %eax
402ff0:	e8 46 04 00 00       	call   0x40343b
402ff5:	be e8 93 43 00       	mov    $0x4393e8,%esi
402ffa:	8d 4c 24 14          	lea    0x14(%esp),%ecx
402ffe:	56                   	push   %esi
402fff:	e8 da f1 ff ff       	call   0x4021de
403004:	84 c0                	test   %al,%al
403006:	74 1d                	je     0x403025
403008:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
40300d:	8b c1                	mov    %ecx,%eax
40300f:	6a 09                	push   $0x9
403011:	0f 43 44 24 18       	cmovae 0x18(%esp),%eax
403016:	2b f0                	sub    %eax,%esi
403018:	8b c1                	mov    %ecx,%eax
40301a:	d1 fe                	sar    $1,%esi
40301c:	56                   	push   %esi
40301d:	50                   	push   %eax
40301e:	e8 9c 05 00 00       	call   0x4035bf
403023:	eb 65                	jmp    0x40308a
403025:	8b 4c 24 24          	mov    0x24(%esp),%ecx
403029:	83 c8 ff             	or     $0xffffffff,%eax
40302c:	2b c1                	sub    %ecx,%eax
40302e:	83 f8 09             	cmp    $0x9,%eax
403031:	0f 86 d7 00 00 00    	jbe    0x40310e
403037:	8d 41 09             	lea    0x9(%ecx),%eax
40303a:	6a 00                	push   $0x0
40303c:	50                   	push   %eax
40303d:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
403041:	89 44 24 18          	mov    %eax,0x18(%esp)
403045:	e8 cd f1 ff ff       	call   0x402217
40304a:	84 c0                	test   %al,%al
40304c:	74 3c                	je     0x40308a
40304e:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
403053:	8d 4c 24 14          	lea    0x14(%esp),%ecx
403057:	8b 44 24 24          	mov    0x24(%esp),%eax
40305b:	be e8 93 43 00       	mov    $0x4393e8,%esi
403060:	0f 43 4c 24 14       	cmovae 0x14(%esp),%ecx
403065:	8d 3c 41             	lea    (%ecx,%eax,2),%edi
403068:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40306c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40306d:	8d 44 24 14          	lea    0x14(%esp),%eax
403071:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403072:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403073:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403074:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
403076:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
40307b:	89 4c 24 24          	mov    %ecx,0x24(%esp)
40307f:	0f 43 44 24 14       	cmovae 0x14(%esp),%eax
403084:	33 d2                	xor    %edx,%edx
403086:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
40308a:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
40308f:	8d 44 24 14          	lea    0x14(%esp),%eax
403093:	0f 43 44 24 14       	cmovae 0x14(%esp),%eax
403098:	33 c9                	xor    %ecx,%ecx
40309a:	51                   	push   %ecx
40309b:	68 80 00 00 00       	push   $0x80
4030a0:	6a 01                	push   $0x1
4030a2:	51                   	push   %ecx
4030a3:	51                   	push   %ecx
4030a4:	68 00 00 00 40       	push   $0x40000000
4030a9:	50                   	push   %eax
4030aa:	ff 15 38 11 43 00    	call   *0x431138
4030b0:	89 83 4c 01 02 00    	mov    %eax,0x2014c(%ebx)
4030b6:	83 f8 ff             	cmp    $0xffffffff,%eax
4030b9:	74 20                	je     0x4030db
4030bb:	8d 44 24 14          	lea    0x14(%esp),%eax
4030bf:	c6 83 51 01 02 00 01 	movb   $0x1,0x20151(%ebx)
4030c6:	3b e8                	cmp    %eax,%ebp
4030c8:	74 0c                	je     0x4030d6
4030ca:	6a ff                	push   $0xffffffff
4030cc:	6a 00                	push   $0x0
4030ce:	50                   	push   %eax
4030cf:	8b cd                	mov    %ebp,%ecx
4030d1:	e8 3a f0 ff ff       	call   0x402110
4030d6:	33 db                	xor    %ebx,%ebx
4030d8:	43                   	inc    %ebx
4030d9:	eb 02                	jmp    0x4030dd
4030db:	32 db                	xor    %bl,%bl
4030dd:	8b 54 24 28          	mov    0x28(%esp),%edx
4030e1:	83 fa 08             	cmp    $0x8,%edx
4030e4:	72 0d                	jb     0x4030f3
4030e6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4030ea:	42                   	inc    %edx
4030eb:	6a 02                	push   $0x2
4030ed:	e8 ec e0 ff ff       	call   0x4011de
4030f2:	59                   	pop    %ecx
4030f3:	8a c3                	mov    %bl,%al
4030f5:	eb 02                	jmp    0x4030f9
4030f7:	32 c0                	xor    %al,%al
4030f9:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4030fd:	5f                   	pop    %edi
4030fe:	5e                   	pop    %esi
4030ff:	5d                   	pop    %ebp
403100:	5b                   	pop    %ebx
403101:	33 cc                	xor    %esp,%ecx
403103:	e8 9f 6b 00 00       	call   0x409ca7
403108:	83 c4 20             	add    $0x20,%esp
40310b:	c2 04 00             	ret    $0x4
40310e:	e8 f0 f1 ff ff       	call   0x402303
403113:	cc                   	int3
403114:	51                   	push   %ecx
403115:	56                   	push   %esi
403116:	8b f1                	mov    %ecx,%esi
403118:	57                   	push   %edi
403119:	8b 3d 14 10 43 00    	mov    0x431014,%edi
40311f:	8d 86 74 01 02 00    	lea    0x20174(%esi),%eax
403125:	50                   	push   %eax
403126:	89 44 24 0c          	mov    %eax,0xc(%esp)
40312a:	ff d7                	call   *%edi
40312c:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
403130:	75 3a                	jne    0x40316c
403132:	55                   	push   %ebp
403133:	8d ae 5c 01 02 00    	lea    0x2015c(%esi),%ebp
403139:	55                   	push   %ebp
40313a:	ff d7                	call   *%edi
40313c:	8b 3e                	mov    (%esi),%edi
40313e:	85 ff                	test   %edi,%edi
403140:	75 0f                	jne    0x403151
403142:	68 fc 93 43 00       	push   $0x4393fc
403147:	ff 15 3c 11 43 00    	call   *0x43113c
40314d:	8b f8                	mov    %eax,%edi
40314f:	89 3e                	mov    %edi,(%esi)
403151:	55                   	push   %ebp
403152:	ff 15 18 10 43 00    	call   *0x431018
403158:	5d                   	pop    %ebp
403159:	85 ff                	test   %edi,%edi
40315b:	74 0f                	je     0x40316c
40315d:	68 14 94 43 00       	push   $0x439414
403162:	57                   	push   %edi
403163:	ff 15 40 11 43 00    	call   *0x431140
403169:	89 46 04             	mov    %eax,0x4(%esi)
40316c:	ff 74 24 08          	push   0x8(%esp)
403170:	8b 76 04             	mov    0x4(%esi),%esi
403173:	ff 15 18 10 43 00    	call   *0x431018
403179:	5f                   	pop    %edi
40317a:	8b c6                	mov    %esi,%eax
40317c:	5e                   	pop    %esi
40317d:	59                   	pop    %ecx
40317e:	c3                   	ret
40317f:	81 ec 78 06 00 00    	sub    $0x678,%esp
403185:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
40318a:	33 c4                	xor    %esp,%eax
40318c:	89 84 24 74 06 00 00 	mov    %eax,0x674(%esp)
403193:	53                   	push   %ebx
403194:	55                   	push   %ebp
403195:	56                   	push   %esi
403196:	57                   	push   %edi
403197:	8b ac 24 8c 06 00 00 	mov    0x68c(%esp),%ebp
40319e:	8d 7c 24 78          	lea    0x78(%esp),%edi
4031a2:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
4031a7:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
4031ae:	be 28 94 43 00       	mov    $0x439428,%esi
4031b3:	8b d9                	mov    %ecx,%ebx
4031b5:	68 f8 01 00 00       	push   $0x1f8
4031ba:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031bb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031bc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031bd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031be:	33 ff                	xor    %edi,%edi
4031c0:	57                   	push   %edi
4031c1:	50                   	push   %eax
4031c2:	e8 f9 81 00 00       	call   0x40b3c0
4031c7:	83 c4 0c             	add    $0xc,%esp
4031ca:	8d 44 24 10          	lea    0x10(%esp),%eax
4031ce:	50                   	push   %eax
4031cf:	6a 04                	push   $0x4
4031d1:	8d 44 24 1c          	lea    0x1c(%esp),%eax
4031d5:	50                   	push   %eax
4031d6:	ff 73 10             	push   0x10(%ebx)
4031d9:	ff 15 b4 11 43 00    	call   *0x4311b4
4031df:	85 c0                	test   %eax,%eax
4031e1:	74 25                	je     0x403208
4031e3:	be 04 01 00 00       	mov    $0x104,%esi
4031e8:	8d 44 24 78          	lea    0x78(%esp),%eax
4031ec:	56                   	push   %esi
4031ed:	50                   	push   %eax
4031ee:	ff 74 24 1c          	push   0x1c(%esp)
4031f2:	ff 73 10             	push   0x10(%ebx)
4031f5:	ff 15 b8 11 43 00    	call   *0x4311b8
4031fb:	8d 44 24 78          	lea    0x78(%esp),%eax