41af32:	0b d0                	or     %eax,%edx
41af34:	46                   	inc    %esi
41af35:	83 e9 01             	sub    $0x1,%ecx
41af38:	75 db                	jne    0x41af15
41af3a:	8d 82 00 28 ff ff    	lea    -0xd800(%edx),%eax
41af40:	3d ff 07 00 00       	cmp    $0x7ff,%eax
41af45:	76 64                	jbe    0x41afab
41af47:	8b 4d 08             	mov    0x8(%ebp),%ecx
41af4a:	66 89 11             	mov    %dx,(%ecx)
41af4d:	8b c6                	mov    %esi,%eax
41af4f:	eb 76                	jmp    0x41afc7
41af51:	0f b6 d2             	movzbl %dl,%edx
41af54:	33 f6                	xor    %esi,%esi
41af56:	8b ca                	mov    %edx,%ecx
41af58:	46                   	inc    %esi
41af59:	83 e1 07             	and    $0x7,%ecx
41af5c:	c1 ea 03             	shr    $0x3,%edx
41af5f:	8b c6                	mov    %esi,%eax
41af61:	d3 e0                	shl    %cl,%eax
41af63:	84 44 3a 0c          	test   %al,0xc(%edx,%edi,1)
41af67:	74 0f                	je     0x41af78
41af69:	39 75 10             	cmp    %esi,0x10(%ebp)
41af6c:	75 05                	jne    0x41af73
41af6e:	6a fe                	push   $0xfffffffe
41af70:	58                   	pop    %eax
41af71:	eb 54                	jmp    0x41afc7
41af73:	6a 02                	push   $0x2
41af75:	5b                   	pop    %ebx
41af76:	eb 02                	jmp    0x41af7a
41af78:	8b de                	mov    %esi,%ebx
41af7a:	56                   	push   %esi
41af7b:	ff 75 08             	push   0x8(%ebp)
41af7e:	53                   	push   %ebx
41af7f:	ff 75 0c             	push   0xc(%ebp)
41af82:	6a 09                	push   $0x9
41af84:	ff 37                	push   (%edi)
41af86:	ff 15 b0 f0 43 00    	call   *0x43f0b0
41af8c:	85 c0                	test   %eax,%eax
41af8e:	74 1b                	je     0x41afab
41af90:	8b c3                	mov    %ebx,%eax
41af92:	eb 33                	jmp    0x41afc7
41af94:	33 f6                	xor    %esi,%esi
41af96:	46                   	inc    %esi
41af97:	56                   	push   %esi
41af98:	ff 75 08             	push   0x8(%ebp)
41af9b:	56                   	push   %esi
41af9c:	53                   	push   %ebx
41af9d:	6a 09                	push   $0x9
41af9f:	ff 37                	push   (%edi)
41afa1:	ff 15 b0 f0 43 00    	call   *0x43f0b0
41afa7:	85 c0                	test   %eax,%eax
41afa9:	75 a2                	jne    0x41af4d
41afab:	e8 90 b6 00 00       	call   0x426640
41afb0:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
41afb6:	83 c8 ff             	or     $0xffffffff,%eax
41afb9:	eb 0c                	jmp    0x41afc7
41afbb:	8b 45 08             	mov    0x8(%ebp),%eax
41afbe:	0f b6 ca             	movzbl %dl,%ecx
41afc1:	66 89 08             	mov    %cx,(%eax)
41afc4:	33 c0                	xor    %eax,%eax
41afc6:	40                   	inc    %eax
41afc7:	5f                   	pop    %edi
41afc8:	5e                   	pop    %esi
41afc9:	5b                   	pop    %ebx
41afca:	c9                   	leave
41afcb:	c3                   	ret
41afcc:	55                   	push   %ebp
41afcd:	8b ec                	mov    %esp,%ebp
41afcf:	8a 4d 0c             	mov    0xc(%ebp),%cl
41afd2:	84 c9                	test   %cl,%cl
41afd4:	78 04                	js     0x41afda
41afd6:	33 c0                	xor    %eax,%eax
41afd8:	5d                   	pop    %ebp
41afd9:	c3                   	ret
41afda:	8a c1                	mov    %cl,%al
41afdc:	24 e0                	and    $0xe0,%al
41afde:	3c c0                	cmp    $0xc0,%al
41afe0:	75 10                	jne    0x41aff2
41afe2:	8b 45 08             	mov    0x8(%ebp),%eax
41afe5:	0f b6 c9             	movzbl %cl,%ecx
41afe8:	83 e1 1f             	and    $0x1f,%ecx
41afeb:	89 08                	mov    %ecx,(%eax)
41afed:	33 c0                	xor    %eax,%eax
41afef:	40                   	inc    %eax
41aff0:	5d                   	pop    %ebp
41aff1:	c3                   	ret
41aff2:	8a c1                	mov    %cl,%al
41aff4:	24 f0                	and    $0xf0,%al
41aff6:	3c e0                	cmp    $0xe0,%al
41aff8:	75 10                	jne    0x41b00a
41affa:	0f b6 c9             	movzbl %cl,%ecx
41affd:	83 e1 0f             	and    $0xf,%ecx
41b000:	6a 02                	push   $0x2
41b002:	8b 45 08             	mov    0x8(%ebp),%eax
41b005:	89 08                	mov    %ecx,(%eax)
41b007:	58                   	pop    %eax
41b008:	5d                   	pop    %ebp
41b009:	c3                   	ret
41b00a:	8a c1                	mov    %cl,%al
41b00c:	24 f8                	and    $0xf8,%al
41b00e:	3c f0                	cmp    $0xf0,%al
41b010:	75 0a                	jne    0x41b01c
41b012:	0f b6 c9             	movzbl %cl,%ecx
41b015:	83 e1 07             	and    $0x7,%ecx
41b018:	6a 03                	push   $0x3
41b01a:	eb e6                	jmp    0x41b002
41b01c:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41b021:	5d                   	pop    %ebp
41b022:	c3                   	ret
41b023:	33 c0                	xor    %eax,%eax
41b025:	57                   	push   %edi
41b026:	8b f9                	mov    %ecx,%edi
41b028:	40                   	inc    %eax
41b029:	f0 0f c1 05 00 40 45 	lock xadd %eax,0x454000
41b030:	00
41b031:	75 19                	jne    0x41b04c
41b033:	56                   	push   %esi
41b034:	be f8 52 45 00       	mov    $0x4552f8,%esi
41b039:	56                   	push   %esi
41b03a:	e8 6e 07 00 00       	call   0x41b7ad
41b03f:	83 c6 18             	add    $0x18,%esi
41b042:	59                   	pop    %ecx
41b043:	81 fe b8 53 45 00    	cmp    $0x4553b8,%esi
41b049:	75 ee                	jne    0x41b039
41b04b:	5e                   	pop    %esi
41b04c:	8b c7                	mov    %edi,%eax
41b04e:	5f                   	pop    %edi
41b04f:	c3                   	ret
41b050:	55                   	push   %ebp
41b051:	8b ec                	mov    %esp,%ebp
41b053:	8b 45 08             	mov    0x8(%ebp),%eax
41b056:	56                   	push   %esi
41b057:	8b f1                	mov    %ecx,%esi
41b059:	89 06                	mov    %eax,(%esi)
41b05b:	85 c0                	test   %eax,%eax
41b05d:	75 07                	jne    0x41b066
41b05f:	e8 c4 d4 00 00       	call   0x428528
41b064:	eb 14                	jmp    0x41b07a
41b066:	83 f8 08             	cmp    $0x8,%eax
41b069:	7d 0f                	jge    0x41b07a
41b06b:	6b c0 18             	imul   $0x18,%eax,%eax
41b06e:	05 f8 52 45 00       	add    $0x4552f8,%eax
41b073:	50                   	push   %eax
41b074:	e8 49 07 00 00       	call   0x41b7c2
41b079:	59                   	pop    %ecx
41b07a:	8b c6                	mov    %esi,%eax
41b07c:	5e                   	pop    %esi
41b07d:	5d                   	pop    %ebp
41b07e:	c2 04 00             	ret    $0x4
41b081:	83 c8 ff             	or     $0xffffffff,%eax
41b084:	f0 0f c1 05 00 40 45 	lock xadd %eax,0x454000
41b08b:	00
41b08c:	79 19                	jns    0x41b0a7
41b08e:	56                   	push   %esi
41b08f:	be f8 52 45 00       	mov    $0x4552f8,%esi
41b094:	56                   	push   %esi
41b095:	e8 05 07 00 00       	call   0x41b79f
41b09a:	83 c6 18             	add    $0x18,%esi
41b09d:	59                   	pop    %ecx
41b09e:	81 fe b8 53 45 00    	cmp    $0x4553b8,%esi
41b0a4:	75 ee                	jne    0x41b094
41b0a6:	5e                   	pop    %esi
41b0a7:	c3                   	ret
41b0a8:	8b 01                	mov    (%ecx),%eax
41b0aa:	85 c0                	test   %eax,%eax
41b0ac:	0f 84 84 d4 00 00    	je     0x428536
41b0b2:	83 f8 08             	cmp    $0x8,%eax
41b0b5:	7d 0f                	jge    0x41b0c6
41b0b7:	6b c0 18             	imul   $0x18,%eax,%eax
41b0ba:	05 f8 52 45 00       	add    $0x4552f8,%eax
41b0bf:	50                   	push   %eax
41b0c0:	e8 0b 07 00 00       	call   0x41b7d0
41b0c5:	59                   	pop    %ecx
41b0c6:	c3                   	ret
41b0c7:	55                   	push   %ebp
41b0c8:	8b ec                	mov    %esp,%ebp
41b0ca:	51                   	push   %ecx
41b0cb:	8a 45 08             	mov    0x8(%ebp),%al
41b0ce:	33 d2                	xor    %edx,%edx
41b0d0:	56                   	push   %esi
41b0d1:	8b f1                	mov    %ecx,%esi
41b0d3:	68 b8 f8 43 00       	push   $0x43f8b8
41b0d8:	89 75 fc             	mov    %esi,-0x4(%ebp)
41b0db:	8d 4e 18             	lea    0x18(%esi),%ecx
41b0de:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
41b0e5:	c7 06 ac f8 43 00    	movl   $0x43f8ac,(%esi)
41b0eb:	89 56 08             	mov    %edx,0x8(%esi)
41b0ee:	89 56 0c             	mov    %edx,0xc(%esi)
41b0f1:	89 56 10             	mov    %edx,0x10(%esi)
41b0f4:	88 46 14             	mov    %al,0x14(%esi)
41b0f7:	89 11                	mov    %edx,(%ecx)
41b0f9:	88 51 04             	mov    %dl,0x4(%ecx)
41b0fc:	e8 8a 00 00 00       	call   0x41b18b
41b101:	8b c6                	mov    %esi,%eax
41b103:	5e                   	pop    %esi
41b104:	c9                   	leave
41b105:	c2 04 00             	ret    $0x4
41b108:	56                   	push   %esi
41b109:	57                   	push   %edi
41b10a:	8b 79 04             	mov    0x4(%ecx),%edi
41b10d:	8b 07                	mov    (%edi),%eax
41b10f:	8b 70 08             	mov    0x8(%eax),%esi
41b112:	8b ce                	mov    %esi,%ecx
41b114:	ff 15 3c f2 43 00    	call   *0x43f23c
41b11a:	8b cf                	mov    %edi,%ecx
41b11c:	ff d6                	call   *%esi
41b11e:	8b f8                	mov    %eax,%edi
41b120:	85 ff                	test   %edi,%edi
41b122:	74 12                	je     0x41b136
41b124:	8b 0f                	mov    (%edi),%ecx
41b126:	6a 01                	push   $0x1
41b128:	8b 31                	mov    (%ecx),%esi
41b12a:	8b ce                	mov    %esi,%ecx
41b12c:	ff 15 3c f2 43 00    	call   *0x43f23c
41b132:	8b cf                	mov    %edi,%ecx
41b134:	ff d6                	call   *%esi
41b136:	5f                   	pop    %edi
41b137:	5e                   	pop    %esi
41b138:	c3                   	ret
41b139:	56                   	push   %esi
41b13a:	eb 18                	jmp    0x41b154
41b13c:	8b 06                	mov    (%esi),%eax
41b13e:	8b ce                	mov    %esi,%ecx
41b140:	a3 dc 53 45 00       	mov    %eax,0x4553dc
41b145:	e8 be ff ff ff       	call   0x41b108
41b14a:	6a 08                	push   $0x8
41b14c:	56                   	push   %esi
41b14d:	e8 bc 07 00 00       	call   0x41b90e
41b152:	59                   	pop    %ecx
41b153:	59                   	pop    %ecx
41b154:	8b 35 dc 53 45 00    	mov    0x4553dc,%esi
41b15a:	85 f6                	test   %esi,%esi
41b15c:	75 de                	jne    0x41b13c
41b15e:	5e                   	pop    %esi
41b15f:	c3                   	ret
41b160:	56                   	push   %esi
41b161:	8b f1                	mov    %ecx,%esi
41b163:	56                   	push   %esi
41b164:	c7 06 ac f8 43 00    	movl   $0x43f8ac,(%esi)
41b16a:	e8 55 01 00 00       	call   0x41b2c4
41b16f:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
41b173:	59                   	pop    %ecx
41b174:	74 09                	je     0x41b17f
41b176:	ff 76 18             	push   0x18(%esi)
41b179:	e8 cf ae 00 00       	call   0x42604d
41b17e:	59                   	pop    %ecx
41b17f:	83 66 18 00          	andl   $0x0,0x18(%esi)
41b183:	c7 06 9c f8 43 00    	movl   $0x43f89c,(%esi)
41b189:	5e                   	pop    %esi
41b18a:	c3                   	ret
41b18b:	55                   	push   %ebp
41b18c:	8b ec                	mov    %esp,%ebp
41b18e:	53                   	push   %ebx
41b18f:	8b d9                	mov    %ecx,%ebx
41b191:	57                   	push   %edi
41b192:	8b 7d 08             	mov    0x8(%ebp),%edi
41b195:	39 3b                	cmp    %edi,(%ebx)
41b197:	74 3e                	je     0x41b1d7
41b199:	83 3b 00             	cmpl   $0x0,(%ebx)
41b19c:	74 08                	je     0x41b1a6
41b19e:	ff 33                	push   (%ebx)
41b1a0:	e8 a8 ae 00 00       	call   0x42604d
41b1a5:	59                   	pop    %ecx
41b1a6:	83 23 00             	andl   $0x0,(%ebx)
41b1a9:	85 ff                	test   %edi,%edi
41b1ab:	74 2a                	je     0x41b1d7
41b1ad:	80 3f 00             	cmpb   $0x0,(%edi)
41b1b0:	56                   	push   %esi
41b1b1:	8b f7                	mov    %edi,%esi
41b1b3:	74 06                	je     0x41b1bb
41b1b5:	46                   	inc    %esi
41b1b6:	80 3e 00             	cmpb   $0x0,(%esi)
41b1b9:	75 fa                	jne    0x41b1b5
41b1bb:	2b f7                	sub    %edi,%esi
41b1bd:	46                   	inc    %esi
41b1be:	56                   	push   %esi
41b1bf:	e8 8f b4 00 00       	call   0x426653
41b1c4:	89 03                	mov    %eax,(%ebx)
41b1c6:	59                   	pop    %ecx
41b1c7:	85 c0                	test   %eax,%eax
41b1c9:	74 0b                	je     0x41b1d6
41b1cb:	56                   	push   %esi
41b1cc:	57                   	push   %edi
41b1cd:	50                   	push   %eax
41b1ce:	e8 7d 22 00 00       	call   0x41d450
41b1d3:	83 c4 0c             	add    $0xc,%esp
41b1d6:	5e                   	pop    %esi
41b1d7:	5f                   	pop    %edi
41b1d8:	8b c3                	mov    %ebx,%eax
41b1da:	5b                   	pop    %ebx
41b1db:	5d                   	pop    %ebp
41b1dc:	c2 04 00             	ret    $0x4
41b1df:	cc                   	int3
41b1e0:	55                   	push   %ebp
41b1e1:	8b ec                	mov    %esp,%ebp
41b1e3:	56                   	push   %esi
41b1e4:	8b f1                	mov    %ecx,%esi
41b1e6:	e8 75 ff ff ff       	call   0x41b160
41b1eb:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41b1ef:	74 0a                	je     0x41b1fb
41b1f1:	6a 20                	push   $0x20
41b1f3:	56                   	push   %esi
41b1f4:	e8 15 07 00 00       	call   0x41b90e
41b1f9:	59                   	pop    %ecx
41b1fa:	59                   	pop    %ecx
41b1fb:	8b c6                	mov    %esi,%eax
41b1fd:	5e                   	pop    %esi
41b1fe:	5d                   	pop    %ebp
41b1ff:	c2 04 00             	ret    $0x4
41b202:	55                   	push   %ebp
41b203:	8b ec                	mov    %esp,%ebp
41b205:	51                   	push   %ecx
41b206:	6a 08                	push   $0x8
41b208:	e8 d1 06 00 00       	call   0x41b8de
41b20d:	89 45 fc             	mov    %eax,-0x4(%ebp)
41b210:	59                   	pop    %ecx
41b211:	85 c0                	test   %eax,%eax
41b213:	74 10                	je     0x41b225
41b215:	8b 0d dc 53 45 00    	mov    0x4553dc,%ecx
41b21b:	89 08                	mov    %ecx,(%eax)
41b21d:	8b 4d 08             	mov    0x8(%ebp),%ecx
41b220:	89 48 04             	mov    %ecx,0x4(%eax)
41b223:	eb 02                	jmp    0x41b227
41b225:	33 c0                	xor    %eax,%eax
41b227:	a3 dc 53 45 00       	mov    %eax,0x4553dc
41b22c:	c9                   	leave
41b22d:	c3                   	ret
41b22e:	a1 e4 53 45 00       	mov    0x4553e4,%eax
41b233:	c3                   	ret
41b234:	6a 04                	push   $0x4
41b236:	b8 4d e8 43 00       	mov    $0x43e84d,%eax
41b23b:	e8 f5 0f 00 00       	call   0x41c235
41b240:	33 f6                	xor    %esi,%esi
41b242:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41b245:	56                   	push   %esi
41b246:	e8 05 fe ff ff       	call   0x41b050
41b24b:	8b 3d e4 53 45 00    	mov    0x4553e4,%edi
41b251:	89 75 fc             	mov    %esi,-0x4(%ebp)
41b254:	85 ff                	test   %edi,%edi
41b256:	75 45                	jne    0x41b29d
41b258:	56                   	push   %esi
41b259:	e8 3b 01 00 00       	call   0x41b399
41b25e:	8b f8                	mov    %eax,%edi
41b260:	57                   	push   %edi
41b261:	e8 56 01 00 00       	call   0x41b3bc
41b266:	59                   	pop    %ecx
41b267:	59                   	pop    %ecx
41b268:	68 bc f8 43 00       	push   $0x43f8bc
41b26d:	8d 4f 18             	lea    0x18(%edi),%ecx
41b270:	c7 47 10 3f 00 00 00 	movl   $0x3f,0x10(%edi)