403ddd:	33 f6                	xor    %esi,%esi
403ddf:	53                   	push   %ebx
403de0:	ff 15 14 71 40 00    	call   *0x407114
403de6:	0f b7 0b             	movzwl (%ebx),%ecx
403de9:	83 f9 5c             	cmp    $0x5c,%ecx
403dec:	74 0a                	je     0x403df8
403dee:	83 f9 2f             	cmp    $0x2f,%ecx
403df1:	74 05                	je     0x403df8
403df3:	83 f9 3a             	cmp    $0x3a,%ecx
403df6:	75 02                	jne    0x403dfa
403df8:	8b f8                	mov    %eax,%edi
403dfa:	8b d8                	mov    %eax,%ebx
403dfc:	66 39 30             	cmp    %si,(%eax)
403dff:	75 de                	jne    0x403ddf
403e01:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
403e07:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
403e0d:	2b f8                	sub    %eax,%edi
403e0f:	d1 ff                	sar    $1,%edi
403e11:	81 ff 05 01 00 00    	cmp    $0x105,%edi
403e17:	73 14                	jae    0x403e2d
403e19:	03 ff                	add    %edi,%edi
403e1b:	81 ff 0a 02 00 00    	cmp    $0x20a,%edi
403e21:	73 61                	jae    0x403e84
403e23:	33 c0                	xor    %eax,%eax
403e25:	66 89 84 3d f0 fd ff 	mov    %ax,-0x210(%ebp,%edi,1)
403e2c:	ff
403e2d:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
403e33:	50                   	push   %eax
403e34:	eb 01                	jmp    0x403e37
403e36:	53                   	push   %ebx
403e37:	56                   	push   %esi
403e38:	ff b5 ec fd ff ff    	push   -0x214(%ebp)
403e3e:	ff 15 10 80 40 00    	call   *0x408010
403e44:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
403e4a:	8b d8                	mov    %eax,%ebx
403e4c:	ff 15 14 80 40 00    	call   *0x408014
403e52:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
403e58:	85 c0                	test   %eax,%eax
403e5a:	74 10                	je     0x403e6c
403e5c:	8b 08                	mov    (%eax),%ecx
403e5e:	50                   	push   %eax
403e5f:	8b 79 08             	mov    0x8(%ecx),%edi
403e62:	8b cf                	mov    %edi,%ecx
403e64:	ff 15 d0 71 40 00    	call   *0x4071d0
403e6a:	ff d7                	call   *%edi
403e6c:	56                   	push   %esi
403e6d:	ff 15 14 80 40 00    	call   *0x408014
403e73:	8b c3                	mov    %ebx,%eax
403e75:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403e78:	5f                   	pop    %edi
403e79:	5e                   	pop    %esi
403e7a:	33 cd                	xor    %ebp,%ecx
403e7c:	5b                   	pop    %ebx
403e7d:	e8 1e 11 00 00       	call   0x404fa0
403e82:	c9                   	leave
403e83:	c3                   	ret
403e84:	e8 61 12 00 00       	call   0x4050ea
403e89:	cc                   	int3
403e8a:	8b ff                	mov    %edi,%edi
403e8c:	55                   	push   %ebp
403e8d:	8b ec                	mov    %esp,%ebp
403e8f:	56                   	push   %esi
403e90:	57                   	push   %edi
403e91:	ff 75 0c             	push   0xc(%ebp)
403e94:	c7 05 40 64 40 00 5c 	movl   $0x40605c,0x406440
403e9b:	60 40 00
403e9e:	c7 05 70 64 40 00 d0 	movl   $0x4063d0,0x406470
403ea5:	63 40 00
403ea8:	c7 05 d0 63 40 00 84 	movl   $0x84,0x4063d0
403eaf:	00 00 00
403eb2:	c7 05 34 64 40 00 00 	movl   $0x300,0x406434
403eb9:	03 00 00
403ebc:	e8 40 f6 ff ff       	call   0x403501
403ec1:	8b f0                	mov    %eax,%esi
403ec3:	33 ff                	xor    %edi,%edi
403ec5:	85 f6                	test   %esi,%esi
403ec7:	78 45                	js     0x403f0e
403ec9:	8b f7                	mov    %edi,%esi
403ecb:	85 f6                	test   %esi,%esi
403ecd:	78 3f                	js     0x403f0e
403ecf:	ff 15 c0 70 40 00    	call   *0x4070c0
403ed5:	6a 0c                	push   $0xc
403ed7:	a3 54 64 40 00       	mov    %eax,0x406454
403edc:	89 3d 58 64 40 00    	mov    %edi,0x406458
403ee2:	e8 29 0d 00 00       	call   0x404c10
403ee7:	59                   	pop    %ecx
403ee8:	85 c0                	test   %eax,%eax
403eea:	74 0a                	je     0x403ef6
403eec:	89 38                	mov    %edi,(%eax)
403eee:	89 78 04             	mov    %edi,0x4(%eax)
403ef1:	89 78 08             	mov    %edi,0x8(%eax)
403ef4:	eb 02                	jmp    0x403ef8
403ef6:	8b c7                	mov    %edi,%eax
403ef8:	a3 58 64 40 00       	mov    %eax,0x406458
403efd:	85 c0                	test   %eax,%eax
403eff:	75 07                	jne    0x403f08
403f01:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
403f06:	eb 08                	jmp    0x403f10
403f08:	89 3d 5c 64 40 00    	mov    %edi,0x40645c
403f0e:	8b c6                	mov    %esi,%eax
403f10:	5f                   	pop    %edi
403f11:	5e                   	pop    %esi
403f12:	5d                   	pop    %ebp
403f13:	c2 0c 00             	ret    $0xc
403f16:	8b ff                	mov    %edi,%edi
403f18:	51                   	push   %ecx
403f19:	a1 70 64 40 00       	mov    0x406470,%eax
403f1e:	56                   	push   %esi
403f1f:	57                   	push   %edi
403f20:	83 c0 1c             	add    $0x1c,%eax
403f23:	50                   	push   %eax
403f24:	ff 15 38 71 40 00    	call   *0x407138
403f2a:	8b 35 5c 64 40 00    	mov    0x40645c,%esi
403f30:	33 ff                	xor    %edi,%edi
403f32:	85 f6                	test   %esi,%esi
403f34:	74 35                	je     0x403f6b
403f36:	39 7e 04             	cmp    %edi,0x4(%esi)
403f39:	7e 10                	jle    0x403f4b
403f3b:	8b 06                	mov    (%esi),%eax
403f3d:	ff 30                	push   (%eax)
403f3f:	ff 15 24 80 40 00    	call   *0x408024
403f45:	8b 35 5c 64 40 00    	mov    0x40645c,%esi
403f4b:	85 f6                	test   %esi,%esi
403f4d:	74 1c                	je     0x403f6b
403f4f:	39 3e                	cmp    %edi,(%esi)
403f51:	74 0b                	je     0x403f5e
403f53:	ff 36                	push   (%esi)
403f55:	ff 15 64 71 40 00    	call   *0x407164
403f5b:	59                   	pop    %ecx
403f5c:	89 3e                	mov    %edi,(%esi)
403f5e:	56                   	push   %esi
403f5f:	89 7e 04             	mov    %edi,0x4(%esi)
403f62:	89 7e 08             	mov    %edi,0x8(%esi)
403f65:	e8 cf 0c 00 00       	call   0x404c39
403f6a:	59                   	pop    %ecx
403f6b:	a1 70 64 40 00       	mov    0x406470,%eax
403f70:	83 c0 1c             	add    $0x1c,%eax
403f73:	89 3d 5c 64 40 00    	mov    %edi,0x40645c
403f79:	50                   	push   %eax
403f7a:	ff 15 2c 71 40 00    	call   *0x40712c
403f80:	8b 35 58 64 40 00    	mov    0x406458,%esi
403f86:	85 f6                	test   %esi,%esi
403f88:	74 2b                	je     0x403fb5
403f8a:	39 3e                	cmp    %edi,(%esi)
403f8c:	74 0b                	je     0x403f99
403f8e:	ff 36                	push   (%esi)
403f90:	ff 15 64 71 40 00    	call   *0x407164
403f96:	59                   	pop    %ecx
403f97:	89 3e                	mov    %edi,(%esi)
403f99:	39 7e 04             	cmp    %edi,0x4(%esi)
403f9c:	74 0d                	je     0x403fab
403f9e:	ff 76 04             	push   0x4(%esi)
403fa1:	ff 15 64 71 40 00    	call   *0x407164
403fa7:	59                   	pop    %ecx
403fa8:	89 7e 04             	mov    %edi,0x4(%esi)
403fab:	56                   	push   %esi
403fac:	89 7e 08             	mov    %edi,0x8(%esi)
403faf:	e8 85 0c 00 00       	call   0x404c39
403fb4:	59                   	pop    %ecx
403fb5:	e8 53 f7 ff ff       	call   0x40370d
403fba:	5f                   	pop    %edi
403fbb:	5e                   	pop    %esi
403fbc:	59                   	pop    %ecx
403fbd:	c3                   	ret
403fbe:	8b ff                	mov    %edi,%edi
403fc0:	56                   	push   %esi
403fc1:	83 ce ff             	or     $0xffffffff,%esi
403fc4:	f0 0f c1 35 e4 63 40 	lock xadd %esi,0x4063e4
403fcb:	00
403fcc:	4e                   	dec    %esi
403fcd:	75 13                	jne    0x403fe2
403fcf:	ff 35 60 64 40 00    	push   0x406460
403fd5:	c6 05 64 64 40 00 01 	movb   $0x1,0x406464
403fdc:	ff 15 40 71 40 00    	call   *0x407140
403fe2:	8b c6                	mov    %esi,%eax
403fe4:	5e                   	pop    %esi
403fe5:	c3                   	ret
403fe6:	8b ff                	mov    %edi,%edi
403fe8:	53                   	push   %ebx
403fe9:	56                   	push   %esi
403fea:	8b f1                	mov    %ecx,%esi
403fec:	33 db                	xor    %ebx,%ebx
403fee:	6a ff                	push   $0xffffffff
403ff0:	ff b6 90 00 00 00    	push   0x90(%esi)
403ff6:	ff 15 34 71 40 00    	call   *0x407134
403ffc:	ff b6 98 00 00 00    	push   0x98(%esi)
404002:	88 9e 94 00 00 00    	mov    %bl,0x94(%esi)
404008:	ff b6 90 00 00 00    	push   0x90(%esi)
40400e:	ff 15 34 71 40 00    	call   *0x407134
404014:	85 c0                	test   %eax,%eax
404016:	74 e4                	je     0x403ffc
404018:	38 9e 94 00 00 00    	cmp    %bl,0x94(%esi)
40401e:	75 ce                	jne    0x403fee
404020:	39 5e 14             	cmp    %ebx,0x14(%esi)
404023:	75 c9                	jne    0x403fee
404025:	ff 15 1c 70 40 00    	call   *0x40701c
40402b:	38 9e 94 00 00 00    	cmp    %bl,0x94(%esi)
404031:	75 bb                	jne    0x403fee
404033:	39 5e 14             	cmp    %ebx,0x14(%esi)
404036:	75 b6                	jne    0x403fee
404038:	ff b6 90 00 00 00    	push   0x90(%esi)
40403e:	ff 15 58 70 40 00    	call   *0x407058
404044:	85 c0                	test   %eax,%eax
404046:	74 06                	je     0x40404e
404048:	89 9e 90 00 00 00    	mov    %ebx,0x90(%esi)
40404e:	53                   	push   %ebx
40404f:	53                   	push   %ebx
404050:	6a 12                	push   $0x12
404052:	ff b6 84 00 00 00    	push   0x84(%esi)
404058:	ff 15 28 80 40 00    	call   *0x408028
40405e:	5e                   	pop    %esi
40405f:	5b                   	pop    %ebx
404060:	c3                   	ret
404061:	8b ff                	mov    %edi,%edi
404063:	55                   	push   %ebp
404064:	8b ec                	mov    %esp,%ebp
404066:	51                   	push   %ecx
404067:	51                   	push   %ecx
404068:	56                   	push   %esi
404069:	33 f6                	xor    %esi,%esi
40406b:	56                   	push   %esi
40406c:	56                   	push   %esi
40406d:	56                   	push   %esi
40406e:	56                   	push   %esi
40406f:	ff 15 3c 71 40 00    	call   *0x40713c
404075:	a3 60 64 40 00       	mov    %eax,0x406460
40407a:	85 c0                	test   %eax,%eax
40407c:	75 04                	jne    0x404082
40407e:	32 c0                	xor    %al,%al
404080:	eb 35                	jmp    0x4040b7
404082:	8d 45 f8             	lea    -0x8(%ebp),%eax
404085:	89 75 f8             	mov    %esi,-0x8(%ebp)
404088:	50                   	push   %eax
404089:	56                   	push   %esi
40408a:	68 d0 63 40 00       	push   $0x4063d0
40408f:	68 c0 40 40 00       	push   $0x4040c0
404094:	56                   	push   %esi
404095:	56                   	push   %esi
404096:	ff 15 b8 71 40 00    	call   *0x4071b8
40409c:	83 c4 18             	add    $0x18,%esp
40409f:	85 c0                	test   %eax,%eax
4040a1:	0f 95 c1             	setne  %cl
4040a4:	88 4d ff             	mov    %cl,-0x1(%ebp)
4040a7:	85 c0                	test   %eax,%eax
4040a9:	74 0a                	je     0x4040b5
4040ab:	50                   	push   %eax
4040ac:	ff 15 58 70 40 00    	call   *0x407058
4040b2:	8a 4d ff             	mov    -0x1(%ebp),%cl
4040b5:	8a c1                	mov    %cl,%al
4040b7:	5e                   	pop    %esi
4040b8:	c9                   	leave
4040b9:	c3                   	ret
4040ba:	cc                   	int3
4040bb:	cc                   	int3
4040bc:	cc                   	int3
4040bd:	cc                   	int3
4040be:	cc                   	int3
4040bf:	cc                   	int3
4040c0:	8b ff                	mov    %edi,%edi
4040c2:	55                   	push   %ebp
4040c3:	8b ec                	mov    %esp,%ebp
4040c5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4040c8:	e8 19 ff ff ff       	call   0x403fe6
4040cd:	33 c0                	xor    %eax,%eax
4040cf:	5d                   	pop    %ebp
4040d0:	c2 04 00             	ret    $0x4
4040d3:	cc                   	int3
4040d4:	cc                   	int3
4040d5:	cc                   	int3
4040d6:	cc                   	int3
4040d7:	cc                   	int3
4040d8:	cc                   	int3
4040d9:	cc                   	int3
4040da:	cc                   	int3
4040db:	cc                   	int3
4040dc:	cc                   	int3
4040dd:	cc                   	int3
4040de:	cc                   	int3
4040df:	cc                   	int3
4040e0:	c2 04 00             	ret    $0x4
4040e3:	cc                   	int3
4040e4:	cc                   	int3
4040e5:	cc                   	int3
4040e6:	cc                   	int3
4040e7:	cc                   	int3
4040e8:	cc                   	int3
4040e9:	cc                   	int3
4040ea:	cc                   	int3
4040eb:	cc                   	int3
4040ec:	cc                   	int3
4040ed:	cc                   	int3
4040ee:	cc                   	int3
4040ef:	cc                   	int3
4040f0:	8b ff                	mov    %edi,%edi
4040f2:	55                   	push   %ebp
4040f3:	8b ec                	mov    %esp,%ebp
4040f5:	8b 4d 14             	mov    0x14(%ebp),%ecx
4040f8:	b8 03 40 00 80       	mov    $0x80004003,%eax
4040fd:	85 c9                	test   %ecx,%ecx
4040ff:	74 45                	je     0x404146
404101:	8b 45 10             	mov    0x10(%ebp),%eax
404104:	33 d2                	xor    %edx,%edx
404106:	89 11                	mov    %edx,(%ecx)
404108:	39 55 0c             	cmp    %edx,0xc(%ebp)
40410b:	74 22                	je     0x40412f
40410d:	39 10                	cmp    %edx,(%eax)
40410f:	75 17                	jne    0x404128
404111:	39 50 04             	cmp    %edx,0x4(%eax)
404114:	75 12                	jne    0x404128
404116:	81 78 08 c0 00 00 00 	cmpl   $0xc0,0x8(%eax)
40411d:	75 09                	jne    0x404128
40411f:	81 78 0c 00 00 00 46 	cmpl   $0x46000000,0xc(%eax)
404126:	74 07                	je     0x40412f
404128:	b8 10 01 04 80       	mov    $0x80040110,%eax
40412d:	eb 17                	jmp    0x404146
40412f:	56                   	push   %esi
404130:	51                   	push   %ecx
404131:	50                   	push   %eax
404132:	8b 45 08             	mov    0x8(%ebp),%eax
404135:	ff 75 0c             	push   0xc(%ebp)
404138:	8b 70 24             	mov    0x24(%eax),%esi
40413b:	8b ce                	mov    %esi,%ecx
40413d:	ff 15 d0 71 40 00    	call   *0x4071d0
404143:	ff d6                	call   *%esi
404145:	5e                   	pop    %esi
404146:	5d                   	pop    %ebp
404147:	c2 10 00             	ret    $0x10
40414a:	cc                   	int3
40414b:	cc                   	int3
40414c:	cc                   	int3
40414d:	cc                   	int3
40414e:	cc                   	int3
40414f:	cc                   	int3
404150:	8b ff                	mov    %edi,%edi
404152:	55                   	push   %ebp
404153:	8b ec                	mov    %esp,%ebp
404155:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
404159:	74 09                	je     0x404164
40415b:	f0 ff 05 e4 63 40 00 	lock incl 0x4063e4
404162:	eb 05                	jmp    0x404169
404164:	e8 55 fe ff ff       	call   0x403fbe
404169:	33 c0                	xor    %eax,%eax
40416b:	5d                   	pop    %ebp
40416c:	c2 08 00             	ret    $0x8
40416f:	cc                   	int3
404170:	8b ff                	mov    %edi,%edi
404172:	55                   	push   %ebp
404173:	8b ec                	mov    %esp,%ebp
404175:	51                   	push   %ecx
404176:	ff 75 08             	push   0x8(%ebp)