401d30:	89 44 24 20          	mov    %eax,0x20(%esp)
401d34:	8d 44 24 14          	lea    0x14(%esp),%eax
401d38:	50                   	push   %eax
401d39:	6a 04                	push   $0x4
401d3b:	5f                   	pop    %edi
401d3c:	57                   	push   %edi
401d3d:	8d 44 24 20          	lea    0x20(%esp),%eax
401d41:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
401d45:	50                   	push   %eax
401d46:	ff 75 0c             	push   0xc(%ebp)
401d49:	89 5c 24 28          	mov    %ebx,0x28(%esp)
401d4d:	ff 75 2c             	push   0x2c(%ebp)
401d50:	89 5c 24 28          	mov    %ebx,0x28(%esp)
401d54:	ff d6                	call   *%esi
401d56:	85 c0                	test   %eax,%eax
401d58:	0f 84 4f 01 00 00    	je     0x401ead
401d5e:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401d62:	0f 85 45 01 00 00    	jne    0x401ead
401d68:	8d 44 24 14          	lea    0x14(%esp),%eax
401d6c:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
401d70:	50                   	push   %eax
401d71:	57                   	push   %edi
401d72:	8d 44 24 24          	lea    0x24(%esp),%eax
401d76:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
401d7a:	50                   	push   %eax
401d7b:	ff 75 28             	push   0x28(%ebp)
401d7e:	ff 75 2c             	push   0x2c(%ebp)
401d81:	ff d6                	call   *%esi
401d83:	85 c0                	test   %eax,%eax
401d85:	0f 84 22 01 00 00    	je     0x401ead
401d8b:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401d8f:	0f 85 18 01 00 00    	jne    0x401ead
401d95:	68 ff ff 01 00       	push   $0x1ffff
401d9a:	8d 84 24 bd 02 02 00 	lea    0x202bd(%esp),%eax
401da1:	88 9c 24 bc 02 02 00 	mov    %bl,0x202bc(%esp)
401da8:	53                   	push   %ebx
401da9:	50                   	push   %eax
401daa:	e8 11 96 00 00       	call   0x40b3c0
401daf:	83 c4 0c             	add    $0xc,%esp
401db2:	89 5c 24 14          	mov    %ebx,0x14(%esp)
401db6:	8d 44 24 14          	lea    0x14(%esp),%eax
401dba:	bf 00 00 02 00       	mov    $0x20000,%edi
401dbf:	50                   	push   %eax
401dc0:	57                   	push   %edi
401dc1:	8d 84 24 c0 02 02 00 	lea    0x202c0(%esp),%eax
401dc8:	50                   	push   %eax
401dc9:	ff 75 10             	push   0x10(%ebp)
401dcc:	ff 75 2c             	push   0x2c(%ebp)
401dcf:	ff d6                	call   *%esi
401dd1:	85 c0                	test   %eax,%eax
401dd3:	0f 84 d4 00 00 00    	je     0x401ead
401dd9:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401ddd:	0f 85 ca 00 00 00    	jne    0x401ead
401de3:	33 c0                	xor    %eax,%eax
401de5:	68 fe 00 00 00       	push   $0xfe
401dea:	66 89 84 24 bc 01 02 	mov    %ax,0x201bc(%esp)
401df1:	00
401df2:	8d 84 24 be 01 02 00 	lea    0x201be(%esp),%eax
401df9:	53                   	push   %ebx
401dfa:	50                   	push   %eax
401dfb:	e8 c0 95 00 00       	call   0x40b3c0
401e00:	83 c4 0c             	add    $0xc,%esp
401e03:	89 5c 24 14          	mov    %ebx,0x14(%esp)
401e07:	8d 44 24 14          	lea    0x14(%esp),%eax
401e0b:	bf 80 00 00 00       	mov    $0x80,%edi
401e10:	50                   	push   %eax
401e11:	57                   	push   %edi
401e12:	8d 84 24 c0 01 02 00 	lea    0x201c0(%esp),%eax
401e19:	50                   	push   %eax
401e1a:	ff 75 14             	push   0x14(%ebp)
401e1d:	ff 75 2c             	push   0x2c(%ebp)
401e20:	ff d6                	call   *%esi
401e22:	85 c0                	test   %eax,%eax
401e24:	0f 84 83 00 00 00    	je     0x401ead
401e2a:	39 7c 24 14          	cmp    %edi,0x14(%esp)
401e2e:	75 7d                	jne    0x401ead
401e30:	8b 75 04             	mov    0x4(%ebp),%esi
401e33:	8d 84 24 b8 01 02 00 	lea    0x201b8(%esp),%eax
401e3a:	8b 7d 2c             	mov    0x2c(%ebp),%edi
401e3d:	51                   	push   %ecx
401e3e:	ff 75 08             	push   0x8(%ebp)
401e41:	50                   	push   %eax
401e42:	8d 84 24 c4 02 02 00 	lea    0x202c4(%esp),%eax
401e49:	50                   	push   %eax
401e4a:	ff 75 18             	push   0x18(%ebp)
401e4d:	ff 74 24 2c          	push   0x2c(%esp)
401e51:	ff 74 24 34          	push   0x34(%esp)
401e55:	ff 15 08 10 43 00    	call   *0x431008
401e5b:	50                   	push   %eax
401e5c:	8b 44 24 44          	mov    0x44(%esp),%eax
401e60:	8d 4c 24 48          	lea    0x48(%esp),%ecx
401e64:	56                   	push   %esi
401e65:	57                   	push   %edi
401e66:	83 c0 6c             	add    $0x6c,%eax
401e69:	50                   	push   %eax
401e6a:	e8 54 0b 00 00       	call   0x4029c3
401e6f:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
401e73:	8b 74 24 20          	mov    0x20(%esp),%esi
401e77:	74 0e                	je     0x401e87
401e79:	56                   	push   %esi
401e7a:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
401e7e:	e8 0a 11 00 00       	call   0x402f8d
401e83:	84 c0                	test   %al,%al
401e85:	74 19                	je     0x401ea0
401e87:	56                   	push   %esi
401e88:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
401e8c:	e8 41 10 00 00       	call   0x402ed2
401e91:	84 c0                	test   %al,%al
401e93:	74 0b                	je     0x401ea0
401e95:	8d 4c 24 28          	lea    0x28(%esp),%ecx
401e99:	e8 77 0c 00 00       	call   0x402b15
401e9e:	8a d8                	mov    %al,%bl
401ea0:	8d 4c 24 28          	lea    0x28(%esp),%ecx
401ea4:	e8 f0 0b 00 00       	call   0x402a99
401ea9:	8a c3                	mov    %bl,%al
401eab:	eb 02                	jmp    0x401eaf
401ead:	32 c0                	xor    %al,%al
401eaf:	8b 8c 24 bc 02 04 00 	mov    0x402bc(%esp),%ecx
401eb6:	5f                   	pop    %edi
401eb7:	5e                   	pop    %esi
401eb8:	5d                   	pop    %ebp
401eb9:	5b                   	pop    %ebx
401eba:	33 cc                	xor    %esp,%ecx
401ebc:	e8 e6 7d 00 00       	call   0x409ca7
401ec1:	81 c4 b4 02 04 00    	add    $0x402b4,%esp
401ec7:	c2 08 00             	ret    $0x8
401eca:	56                   	push   %esi
401ecb:	8b 31                	mov    (%ecx),%esi
401ecd:	85 f6                	test   %esi,%esi
401ecf:	74 11                	je     0x401ee2
401ed1:	8b ce                	mov    %esi,%ecx
401ed3:	e8 86 06 00 00       	call   0x40255e
401ed8:	6a 4c                	push   $0x4c
401eda:	56                   	push   %esi
401edb:	e8 10 4b 00 00       	call   0x4069f0
401ee0:	59                   	pop    %ecx
401ee1:	59                   	pop    %ecx
401ee2:	5e                   	pop    %esi
401ee3:	c3                   	ret
401ee4:	56                   	push   %esi
401ee5:	57                   	push   %edi
401ee6:	8b f9                	mov    %ecx,%edi
401ee8:	8b 37                	mov    (%edi),%esi
401eea:	8b 06                	mov    (%esi),%eax
401eec:	3b c6                	cmp    %esi,%eax
401eee:	74 42                	je     0x401f32
401ef0:	53                   	push   %ebx
401ef1:	55                   	push   %ebp
401ef2:	8b 6c 24 14          	mov    0x14(%esp),%ebp
401ef6:	8b d6                	mov    %esi,%edx
401ef8:	8d 58 08             	lea    0x8(%eax),%ebx
401efb:	8b 0b                	mov    (%ebx),%ecx
401efd:	3b 4d 00             	cmp    0x0(%ebp),%ecx
401f00:	75 17                	jne    0x401f19
401f02:	3b dd                	cmp    %ebp,%ebx
401f04:	75 04                	jne    0x401f0a
401f06:	8b f0                	mov    %eax,%esi
401f08:	eb 0f                	jmp    0x401f19
401f0a:	50                   	push   %eax
401f0b:	8d 44 24 18          	lea    0x18(%esp),%eax
401f0f:	8b cf                	mov    %edi,%ecx
401f11:	50                   	push   %eax
401f12:	e8 78 01 00 00       	call   0x40208f
401f17:	8b 17                	mov    (%edi),%edx
401f19:	8b 00                	mov    (%eax),%eax
401f1b:	3b c2                	cmp    %edx,%eax
401f1d:	75 d9                	jne    0x401ef8
401f1f:	5d                   	pop    %ebp
401f20:	5b                   	pop    %ebx
401f21:	3b f2                	cmp    %edx,%esi
401f23:	74 0d                	je     0x401f32
401f25:	56                   	push   %esi
401f26:	8d 44 24 10          	lea    0x10(%esp),%eax
401f2a:	8b cf                	mov    %edi,%ecx
401f2c:	50                   	push   %eax
401f2d:	e8 5d 01 00 00       	call   0x40208f
401f32:	5f                   	pop    %edi
401f33:	5e                   	pop    %esi
401f34:	c2 04 00             	ret    $0x4
401f37:	56                   	push   %esi
401f38:	8b f1                	mov    %ecx,%esi
401f3a:	57                   	push   %edi
401f3b:	8b 3e                	mov    (%esi),%edi
401f3d:	ff 77 04             	push   0x4(%edi)
401f40:	57                   	push   %edi
401f41:	e8 63 04 00 00       	call   0x4023a9
401f46:	8b d0                	mov    %eax,%edx
401f48:	8d 42 08             	lea    0x8(%edx),%eax
401f4b:	85 c0                	test   %eax,%eax
401f4d:	74 08                	je     0x401f57
401f4f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
401f53:	8b 09                	mov    (%ecx),%ecx
401f55:	89 08                	mov    %ecx,(%eax)
401f57:	8b 4e 04             	mov    0x4(%esi),%ecx
401f5a:	b8 54 55 55 15       	mov    $0x15555554,%eax
401f5f:	2b c1                	sub    %ecx,%eax
401f61:	83 f8 01             	cmp    $0x1,%eax
401f64:	72 13                	jb     0x401f79
401f66:	8d 41 01             	lea    0x1(%ecx),%eax
401f69:	89 46 04             	mov    %eax,0x4(%esi)
401f6c:	89 57 04             	mov    %edx,0x4(%edi)
401f6f:	8b 42 04             	mov    0x4(%edx),%eax
401f72:	5f                   	pop    %edi
401f73:	5e                   	pop    %esi
401f74:	89 10                	mov    %edx,(%eax)
401f76:	c2 04 00             	ret    $0x4
401f79:	68 28 93 43 00       	push   $0x439328
401f7e:	e8 96 79 00 00       	call   0x409919
401f83:	cc                   	int3
401f84:	53                   	push   %ebx
401f85:	57                   	push   %edi
401f86:	8b f9                	mov    %ecx,%edi
401f88:	8b 07                	mov    (%edi),%eax
401f8a:	8b 18                	mov    (%eax),%ebx
401f8c:	89 00                	mov    %eax,(%eax)
401f8e:	8b 07                	mov    (%edi),%eax
401f90:	89 40 04             	mov    %eax,0x4(%eax)
401f93:	83 67 04 00          	andl   $0x0,0x4(%edi)
401f97:	8b 0f                	mov    (%edi),%ecx
401f99:	3b d9                	cmp    %ecx,%ebx
401f9b:	74 19                	je     0x401fb6
401f9d:	56                   	push   %esi
401f9e:	8b 33                	mov    (%ebx),%esi
401fa0:	33 d2                	xor    %edx,%edx
401fa2:	6a 0c                	push   $0xc
401fa4:	42                   	inc    %edx
401fa5:	8b cb                	mov    %ebx,%ecx
401fa7:	e8 32 f2 ff ff       	call   0x4011de
401fac:	59                   	pop    %ecx
401fad:	8b 0f                	mov    (%edi),%ecx
401faf:	8b de                	mov    %esi,%ebx
401fb1:	3b f1                	cmp    %ecx,%esi
401fb3:	75 e9                	jne    0x401f9e
401fb5:	5e                   	pop    %esi
401fb6:	33 d2                	xor    %edx,%edx
401fb8:	6a 0c                	push   $0xc
401fba:	42                   	inc    %edx
401fbb:	e8 1e f2 ff ff       	call   0x4011de
401fc0:	59                   	pop    %ecx
401fc1:	5f                   	pop    %edi
401fc2:	5b                   	pop    %ebx
401fc3:	c3                   	ret
401fc4:	6a 00                	push   $0x0
401fc6:	6a 01                	push   $0x1
401fc8:	e8 f8 00 00 00       	call   0x4020c5
401fcd:	c3                   	ret
401fce:	56                   	push   %esi
401fcf:	ff 74 24 08          	push   0x8(%esp)
401fd3:	8b f1                	mov    %ecx,%esi
401fd5:	33 c0                	xor    %eax,%eax
401fd7:	83 66 10 00          	andl   $0x0,0x10(%esi)
401fdb:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
401fe2:	66 89 06             	mov    %ax,(%esi)
401fe5:	e8 a0 01 00 00       	call   0x40218a
401fea:	8b c6                	mov    %esi,%eax
401fec:	5e                   	pop    %esi
401fed:	c2 04 00             	ret    $0x4
401ff0:	53                   	push   %ebx
401ff1:	56                   	push   %esi
401ff2:	8b f1                	mov    %ecx,%esi
401ff4:	33 c0                	xor    %eax,%eax
401ff6:	57                   	push   %edi
401ff7:	8b 7c 24 10          	mov    0x10(%esp),%edi
401ffb:	8b cf                	mov    %edi,%ecx
401ffd:	83 66 10 00          	andl   $0x0,0x10(%esi)
402001:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
402008:	66 89 06             	mov    %ax,(%esi)
40200b:	e8 3c f1 ff ff       	call   0x40114c
402010:	57                   	push   %edi
402011:	8b ce                	mov    %esi,%ecx
402013:	8b d8                	mov    %eax,%ebx
402015:	e8 c4 01 00 00       	call   0x4021de
40201a:	84 c0                	test   %al,%al
40201c:	74 0e                	je     0x40202c
40201e:	2b fe                	sub    %esi,%edi
402020:	53                   	push   %ebx
402021:	d1 ff                	sar    $1,%edi
402023:	57                   	push   %edi
402024:	56                   	push   %esi
402025:	e8 e6 00 00 00       	call   0x402110
40202a:	eb 36                	jmp    0x402062
40202c:	6a 00                	push   $0x0
40202e:	53                   	push   %ebx
40202f:	e8 e3 01 00 00       	call   0x402217
402034:	84 c0                	test   %al,%al
402036:	74 2a                	je     0x402062
402038:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40203c:	72 04                	jb     0x402042
40203e:	8b 0e                	mov    (%esi),%ecx
402040:	eb 02                	jmp    0x402044
402042:	8b ce                	mov    %esi,%ecx
402044:	53                   	push   %ebx
402045:	8b d7                	mov    %edi,%edx
402047:	e8 20 f1 ff ff       	call   0x40116c
40204c:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
402050:	59                   	pop    %ecx
402051:	89 5e 10             	mov    %ebx,0x10(%esi)
402054:	72 04                	jb     0x40205a
402056:	8b 06                	mov    (%esi),%eax
402058:	eb 02                	jmp    0x40205c
40205a:	8b c6                	mov    %esi,%eax
40205c:	33 c9                	xor    %ecx,%ecx
40205e:	66 89 0c 58          	mov    %cx,(%eax,%ebx,2)
402062:	5f                   	pop    %edi
402063:	8b c6                	mov    %esi,%eax
402065:	5e                   	pop    %esi
402066:	5b                   	pop    %ebx
402067:	c2 04 00             	ret    $0x4
40206a:	56                   	push   %esi
40206b:	8b f1                	mov    %ecx,%esi
40206d:	33 c0                	xor    %eax,%eax
40206f:	6a ff                	push   $0xffffffff
402071:	50                   	push   %eax
402072:	ff 74 24 10          	push   0x10(%esp)
402076:	83 66 10 00          	andl   $0x0,0x10(%esi)
40207a:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
402081:	66 89 06             	mov    %ax,(%esi)
402084:	e8 87 00 00 00       	call   0x402110
402089:	8b c6                	mov    %esi,%eax
40208b:	5e                   	pop    %esi
40208c:	c2 04 00             	ret    $0x4
40208f:	56                   	push   %esi
402090:	8b f1                	mov    %ecx,%esi
402092:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
402096:	6a 0c                	push   $0xc
402098:	8b 11                	mov    (%ecx),%edx
40209a:	89 54 24 10          	mov    %edx,0x10(%esp)
40209e:	8b 41 04             	mov    0x4(%ecx),%eax
4020a1:	89 10                	mov    %edx,(%eax)
4020a3:	8b 11                	mov    (%ecx),%edx
4020a5:	8b 41 04             	mov    0x4(%ecx),%eax
4020a8:	89 42 04             	mov    %eax,0x4(%edx)
4020ab:	33 d2                	xor    %edx,%edx
4020ad:	ff 4e 04             	decl   0x4(%esi)
4020b0:	42                   	inc    %edx
4020b1:	e8 28 f1 ff ff       	call   0x4011de
4020b6:	8b 44 24 0c          	mov    0xc(%esp),%eax
4020ba:	59                   	pop    %ecx
4020bb:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4020bf:	5e                   	pop    %esi
4020c0:	89 08                	mov    %ecx,(%eax)
4020c2:	c2 08 00             	ret    $0x8
4020c5:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
4020ca:	56                   	push   %esi
4020cb:	8b f1                	mov    %ecx,%esi
4020cd:	74 2b                	je     0x4020fa
4020cf:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4020d3:	72 25                	jb     0x4020fa
4020d5:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
4020da:	53                   	push   %ebx