409e9d:	ff d6                	call   *%esi
409e9f:	5f                   	pop    %edi
409ea0:	5e                   	pop    %esi
409ea1:	5b                   	pop    %ebx
409ea2:	c2 08 00             	ret    $0x8
409ea5:	8b ff                	mov    %edi,%edi
409ea7:	57                   	push   %edi
409ea8:	b9 14 51 41 00       	mov    $0x415114,%ecx
409ead:	e8 d8 01 00 00       	call   0x40a08a
409eb2:	8b f8                	mov    %eax,%edi
409eb4:	85 ff                	test   %edi,%edi
409eb6:	78 6c                	js     0x409f24
409eb8:	56                   	push   %esi
409eb9:	75 5f                	jne    0x409f1a
409ebb:	80 3d 04 56 41 00 00 	cmpb   $0x0,0x415604
409ec2:	74 43                	je     0x409f07
409ec4:	e8 97 00 00 00       	call   0x409f60
409ec9:	8b f0                	mov    %eax,%esi
409ecb:	85 f6                	test   %esi,%esi
409ecd:	75 07                	jne    0x409ed6
409ecf:	bf 05 40 00 80       	mov    $0x80004005,%edi
409ed4:	eb 3d                	jmp    0x409f13
409ed6:	ff 15 1c 62 41 00    	call   *0x41621c
409edc:	8b f8                	mov    %eax,%edi
409ede:	85 ff                	test   %edi,%edi
409ee0:	79 1c                	jns    0x409efe
409ee2:	ff 35 f8 55 41 00    	push   0x4155f8
409ee8:	ff 15 10 61 41 00    	call   *0x416110
409eee:	8b 0d fc 55 41 00    	mov    0x4155fc,%ecx
409ef4:	03 c9                	add    %ecx,%ecx
409ef6:	51                   	push   %ecx
409ef7:	56                   	push   %esi
409ef8:	ff 15 f4 60 41 00    	call   *0x4160f4
409efe:	56                   	push   %esi
409eff:	ff 15 b4 60 41 00    	call   *0x4160b4
409f05:	eb 08                	jmp    0x409f0f
409f07:	ff 15 1c 62 41 00    	call   *0x41621c
409f0d:	8b f8                	mov    %eax,%edi
409f0f:	85 ff                	test   %edi,%edi
409f11:	79 0e                	jns    0x409f21
409f13:	e8 10 00 00 00       	call   0x409f28
409f18:	eb 07                	jmp    0x409f21
409f1a:	c6 05 04 56 41 00 00 	movb   $0x0,0x415604
409f21:	8b c7                	mov    %edi,%eax
409f23:	5e                   	pop    %esi
409f24:	5f                   	pop    %edi
409f25:	c2 04 00             	ret    $0x4
409f28:	8b 0d 20 51 41 00    	mov    0x415120,%ecx
409f2e:	33 c0                	xor    %eax,%eax
409f30:	56                   	push   %esi
409f31:	8b 35 1c 51 41 00    	mov    0x41511c,%esi
409f37:	eb 21                	jmp    0x409f5a
409f39:	85 c0                	test   %eax,%eax
409f3b:	75 21                	jne    0x409f5e
409f3d:	8b 16                	mov    (%esi),%edx
409f3f:	85 d2                	test   %edx,%edx
409f41:	74 14                	je     0x409f57
409f43:	39 42 14             	cmp    %eax,0x14(%edx)
409f46:	74 0f                	je     0x409f57
409f48:	ff 72 14             	push   0x14(%edx)
409f4b:	ff 15 18 62 41 00    	call   *0x416218
409f51:	8b 0d 20 51 41 00    	mov    0x415120,%ecx
409f57:	83 c6 04             	add    $0x4,%esi
409f5a:	3b f1                	cmp    %ecx,%esi
409f5c:	72 db                	jb     0x409f39
409f5e:	5e                   	pop    %esi
409f5f:	c3                   	ret
409f60:	8b ff                	mov    %edi,%edi
409f62:	55                   	push   %ebp
409f63:	8b ec                	mov    %esp,%ebp
409f65:	51                   	push   %ecx
409f66:	56                   	push   %esi
409f67:	33 f6                	xor    %esi,%esi
409f69:	56                   	push   %esi
409f6a:	56                   	push   %esi
409f6b:	56                   	push   %esi
409f6c:	56                   	push   %esi
409f6d:	ff 15 54 61 41 00    	call   *0x416154
409f73:	a3 f8 55 41 00       	mov    %eax,0x4155f8
409f78:	85 c0                	test   %eax,%eax
409f7a:	74 2b                	je     0x409fa7
409f7c:	8d 45 fc             	lea    -0x4(%ebp),%eax
409f7f:	50                   	push   %eax
409f80:	56                   	push   %esi
409f81:	68 c8 55 41 00       	push   $0x4155c8
409f86:	68 b0 9f 40 00       	push   $0x409fb0
409f8b:	56                   	push   %esi
409f8c:	56                   	push   %esi
409f8d:	ff 15 f0 60 41 00    	call   *0x4160f0
409f93:	8b f0                	mov    %eax,%esi
409f95:	85 f6                	test   %esi,%esi
409f97:	75 0c                	jne    0x409fa5
409f99:	ff 35 f8 55 41 00    	push   0x4155f8
409f9f:	ff 15 b4 60 41 00    	call   *0x4160b4
409fa5:	8b c6                	mov    %esi,%eax
409fa7:	5e                   	pop    %esi
409fa8:	c9                   	leave
409fa9:	c3                   	ret
409faa:	cc                   	int3
409fab:	cc                   	int3
409fac:	cc                   	int3
409fad:	cc                   	int3
409fae:	cc                   	int3
409faf:	cc                   	int3
409fb0:	8b ff                	mov    %edi,%edi
409fb2:	55                   	push   %ebp
409fb3:	8b ec                	mov    %esp,%ebp
409fb5:	53                   	push   %ebx
409fb6:	56                   	push   %esi
409fb7:	8b 75 08             	mov    0x8(%ebp),%esi
409fba:	33 db                	xor    %ebx,%ebx
409fbc:	6a ff                	push   $0xffffffff
409fbe:	ff 76 30             	push   0x30(%esi)
409fc1:	ff 15 f4 60 41 00    	call   *0x4160f4
409fc7:	ff 76 34             	push   0x34(%esi)
409fca:	88 5e 3d             	mov    %bl,0x3d(%esi)
409fcd:	ff 76 30             	push   0x30(%esi)
409fd0:	ff 15 f4 60 41 00    	call   *0x4160f4
409fd6:	85 c0                	test   %eax,%eax
409fd8:	74 ed                	je     0x409fc7
409fda:	38 5e 3d             	cmp    %bl,0x3d(%esi)
409fdd:	75 dd                	jne    0x409fbc
409fdf:	39 5e 08             	cmp    %ebx,0x8(%esi)
409fe2:	75 d8                	jne    0x409fbc
409fe4:	ff 15 10 62 41 00    	call   *0x416210
409fea:	39 5e 08             	cmp    %ebx,0x8(%esi)
409fed:	75 cd                	jne    0x409fbc
409fef:	ff 76 30             	push   0x30(%esi)
409ff2:	ff 15 b4 60 41 00    	call   *0x4160b4
409ff8:	53                   	push   %ebx
409ff9:	53                   	push   %ebx
409ffa:	6a 12                	push   $0x12
409ffc:	ff 76 2c             	push   0x2c(%esi)
409fff:	ff 15 dc 61 41 00    	call   *0x4161dc
40a005:	5e                   	pop    %esi
40a006:	33 c0                	xor    %eax,%eax
40a008:	5b                   	pop    %ebx
40a009:	5d                   	pop    %ebp
40a00a:	c2 04 00             	ret    $0x4
40a00d:	cc                   	int3
40a00e:	cc                   	int3
40a00f:	cc                   	int3
40a010:	8b ff                	mov    %edi,%edi
40a012:	55                   	push   %ebp
40a013:	8b ec                	mov    %esp,%ebp
40a015:	53                   	push   %ebx
40a016:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a019:	85 db                	test   %ebx,%ebx
40a01b:	75 07                	jne    0x40a024
40a01d:	b8 03 40 00 80       	mov    $0x80004003,%eax
40a022:	eb 3f                	jmp    0x40a063
40a024:	56                   	push   %esi
40a025:	57                   	push   %edi
40a026:	33 ff                	xor    %edi,%edi
40a028:	8d 71 28             	lea    0x28(%ecx),%esi
40a02b:	39 3e                	cmp    %edi,(%esi)
40a02d:	75 1a                	jne    0x40a049
40a02f:	56                   	push   %esi
40a030:	68 a0 2f 40 00       	push   $0x402fa0
40a035:	6a 01                	push   $0x1
40a037:	57                   	push   %edi
40a038:	68 48 2c 40 00       	push   $0x402c48
40a03d:	ff 15 20 62 41 00    	call   *0x416220
40a043:	8b f8                	mov    %eax,%edi
40a045:	85 ff                	test   %edi,%edi
40a047:	78 16                	js     0x40a05f
40a049:	8b 0e                	mov    (%esi),%ecx
40a04b:	89 0b                	mov    %ecx,(%ebx)
40a04d:	8b 0e                	mov    (%esi),%ecx
40a04f:	51                   	push   %ecx
40a050:	8b 11                	mov    (%ecx),%edx
40a052:	8b 72 04             	mov    0x4(%edx),%esi
40a055:	8b ce                	mov    %esi,%ecx
40a057:	ff 15 28 63 41 00    	call   *0x416328
40a05d:	ff d6                	call   *%esi
40a05f:	8b c7                	mov    %edi,%eax
40a061:	5f                   	pop    %edi
40a062:	5e                   	pop    %esi
40a063:	5b                   	pop    %ebx
40a064:	5d                   	pop    %ebp
40a065:	c2 04 00             	ret    $0x4
40a068:	cc                   	int3
40a069:	cc                   	int3
40a06a:	cc                   	int3
40a06b:	cc                   	int3
40a06c:	cc                   	int3
40a06d:	cc                   	int3
40a06e:	cc                   	int3
40a06f:	cc                   	int3
40a070:	8b 41 08             	mov    0x8(%ecx),%eax
40a073:	c3                   	ret
40a074:	cc                   	int3
40a075:	cc                   	int3
40a076:	cc                   	int3
40a077:	cc                   	int3
40a078:	cc                   	int3
40a079:	cc                   	int3
40a07a:	cc                   	int3
40a07b:	cc                   	int3
40a07c:	cc                   	int3
40a07d:	cc                   	int3
40a07e:	cc                   	int3
40a07f:	cc                   	int3
40a080:	33 c0                	xor    %eax,%eax
40a082:	40                   	inc    %eax
40a083:	f0 0f c1 41 08       	lock xadd %eax,0x8(%ecx)
40a088:	40                   	inc    %eax
40a089:	c3                   	ret
40a08a:	8b ff                	mov    %edi,%edi
40a08c:	55                   	push   %ebp
40a08d:	8b ec                	mov    %esp,%ebp
40a08f:	51                   	push   %ecx
40a090:	51                   	push   %ecx
40a091:	8b c1                	mov    %ecx,%eax
40a093:	53                   	push   %ebx
40a094:	57                   	push   %edi
40a095:	33 ff                	xor    %edi,%edi
40a097:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a09a:	8b 58 08             	mov    0x8(%eax),%ebx
40a09d:	47                   	inc    %edi
40a09e:	3b 58 0c             	cmp    0xc(%eax),%ebx
40a0a1:	73 6a                	jae    0x40a10d
40a0a3:	56                   	push   %esi
40a0a4:	85 ff                	test   %edi,%edi
40a0a6:	78 64                	js     0x40a10c
40a0a8:	8b 33                	mov    (%ebx),%esi
40a0aa:	85 f6                	test   %esi,%esi
40a0ac:	74 56                	je     0x40a104
40a0ae:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a0b2:	8b 7e 08             	mov    0x8(%esi),%edi
40a0b5:	85 ff                	test   %edi,%edi
40a0b7:	74 4b                	je     0x40a104
40a0b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a0bc:	8b cf                	mov    %edi,%ecx
40a0be:	50                   	push   %eax
40a0bf:	68 98 2b 40 00       	push   $0x402b98
40a0c4:	ff 76 0c             	push   0xc(%esi)
40a0c7:	ff 15 28 63 41 00    	call   *0x416328
40a0cd:	ff d7                	call   *%edi
40a0cf:	8b f8                	mov    %eax,%edi
40a0d1:	85 ff                	test   %edi,%edi
40a0d3:	78 15                	js     0x40a0ea
40a0d5:	8d 46 14             	lea    0x14(%esi),%eax
40a0d8:	50                   	push   %eax
40a0d9:	6a 05                	push   $0x5
40a0db:	6a 04                	push   $0x4
40a0dd:	ff 75 fc             	push   -0x4(%ebp)
40a0e0:	ff 36                	push   (%esi)
40a0e2:	ff 15 14 62 41 00    	call   *0x416214
40a0e8:	8b f8                	mov    %eax,%edi
40a0ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a0ed:	85 c9                	test   %ecx,%ecx
40a0ef:	74 10                	je     0x40a101
40a0f1:	8b 01                	mov    (%ecx),%eax
40a0f3:	51                   	push   %ecx
40a0f4:	8b 70 08             	mov    0x8(%eax),%esi
40a0f7:	8b ce                	mov    %esi,%ecx
40a0f9:	ff 15 28 63 41 00    	call   *0x416328
40a0ff:	ff d6                	call   *%esi
40a101:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a104:	83 c3 04             	add    $0x4,%ebx
40a107:	3b 58 0c             	cmp    0xc(%eax),%ebx
40a10a:	72 98                	jb     0x40a0a4
40a10c:	5e                   	pop    %esi
40a10d:	8b c7                	mov    %edi,%eax
40a10f:	5f                   	pop    %edi
40a110:	5b                   	pop    %ebx
40a111:	c9                   	leave
40a112:	c3                   	ret
40a113:	8b ff                	mov    %edi,%edi
40a115:	55                   	push   %ebp
40a116:	8b ec                	mov    %esp,%ebp
40a118:	81 ec 18 02 00 00    	sub    $0x218,%esp
40a11e:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40a123:	33 c5                	xor    %ebp,%eax
40a125:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a128:	53                   	push   %ebx
40a129:	33 c0                	xor    %eax,%eax
40a12b:	56                   	push   %esi
40a12c:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
40a132:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40a138:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40a13e:	57                   	push   %edi
40a13f:	50                   	push   %eax
40a140:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
40a146:	50                   	push   %eax
40a147:	e8 b3 04 00 00       	call   0x40a5ff
40a14c:	8b b5 ec fd ff ff    	mov    -0x214(%ebp),%esi
40a152:	8b d8                	mov    %eax,%ebx
40a154:	85 db                	test   %ebx,%ebx
40a156:	0f 88 ee 00 00 00    	js     0x40a24a
40a15c:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40a162:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
40a168:	51                   	push   %ecx
40a169:	33 db                	xor    %ebx,%ebx
40a16b:	53                   	push   %ebx
40a16c:	53                   	push   %ebx
40a16d:	89 9d e8 fd ff ff    	mov    %ebx,-0x218(%ebp)
40a173:	8b 38                	mov    (%eax),%edi
40a175:	53                   	push   %ebx
40a176:	6a ff                	push   $0xffffffff
40a178:	50                   	push   %eax
40a179:	8b 4f 24             	mov    0x24(%edi),%ecx
40a17c:	ff 15 28 63 41 00    	call   *0x416328
40a182:	ff 57 24             	call   *0x24(%edi)
40a185:	85 c0                	test   %eax,%eax
40a187:	0f 88 a1 00 00 00    	js     0x40a22e
40a18d:	39 9d e8 fd ff ff    	cmp    %ebx,-0x218(%ebp)
40a193:	0f 84 95 00 00 00    	je     0x40a22e
40a199:	56                   	push   %esi
40a19a:	ff 15 7c 61 41 00    	call   *0x41617c
40a1a0:	50                   	push   %eax
40a1a1:	56                   	push   %esi
40a1a2:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a1a8:	68 04 01 00 00       	push   $0x104
40a1ad:	50                   	push   %eax
40a1ae:	ff 15 b4 62 41 00    	call   *0x4162b4
40a1b4:	83 c4 10             	add    $0x10,%esp
40a1b7:	8b c8                	mov    %eax,%ecx
40a1b9:	e8 4e aa ff ff       	call   0x404c0c
40a1be:	33 c0                	xor    %eax,%eax
40a1c0:	8d bd f4 fd ff ff    	lea    -0x20c(%ebp),%edi
40a1c6:	8b df                	mov    %edi,%ebx
40a1c8:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
40a1cc:	66 39 85 f4 fd ff ff 	cmp    %ax,-0x20c(%ebp)
40a1d3:	74 2a                	je     0x40a1ff
40a1d5:	33 f6                	xor    %esi,%esi
40a1d7:	53                   	push   %ebx
40a1d8:	ff 15 f0 61 41 00    	call   *0x4161f0
40a1de:	0f b7 0b             	movzwl (%ebx),%ecx
40a1e1:	83 f9 5c             	cmp    $0x5c,%ecx
40a1e4:	74 0a                	je     0x40a1f0
40a1e6:	83 f9 2f             	cmp    $0x2f,%ecx
40a1e9:	74 05                	je     0x40a1f0
40a1eb:	83 f9 3a             	cmp    $0x3a,%ecx
40a1ee:	75 02                	jne    0x40a1f2
40a1f0:	8b f8                	mov    %eax,%edi
40a1f2:	8b d8                	mov    %eax,%ebx
40a1f4:	66 39 30             	cmp    %si,(%eax)
40a1f7:	75 de                	jne    0x40a1d7
40a1f9:	8b b5 ec fd ff ff    	mov    -0x214(%ebp),%esi
40a1ff:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40a205:	2b f8                	sub    %eax,%edi
40a207:	d1 ff                	sar    $1,%edi
40a209:	81 ff 04 01 00 00    	cmp    $0x104,%edi
40a20f:	73 14                	jae    0x40a225
40a211:	03 ff                	add    %edi,%edi
40a213:	81 ff 08 02 00 00    	cmp    $0x208,%edi
40a219:	73 61                	jae    0x40a27c
40a21b:	33 c0                	xor    %eax,%eax