43a007:	51                   	push   %ecx
43a008:	ff 15 4c f0 43 00    	call   *0x43f04c
43a00e:	85 c0                	test   %eax,%eax
43a010:	75 09                	jne    0x43a01b
43a012:	ff 15 60 f0 43 00    	call   *0x43f060
43a018:	89 45 d0             	mov    %eax,-0x30(%ebp)
43a01b:	8d 75 d0             	lea    -0x30(%ebp),%esi
43a01e:	8d 7d dc             	lea    -0x24(%ebp),%edi
43a021:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a022:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a023:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a024:	8b 45 e0             	mov    -0x20(%ebp),%eax
43a027:	85 c0                	test   %eax,%eax
43a029:	75 68                	jne    0x43a093
43a02b:	8b 7d dc             	mov    -0x24(%ebp),%edi
43a02e:	33 f6                	xor    %esi,%esi
43a030:	8b 55 ec             	mov    -0x14(%ebp),%edx
43a033:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43a036:	85 ff                	test   %edi,%edi
43a038:	74 2c                	je     0x43a066
43a03a:	6a 05                	push   $0x5
43a03c:	58                   	pop    %eax
43a03d:	3b f8                	cmp    %eax,%edi
43a03f:	75 17                	jne    0x43a058
43a041:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
43a045:	c7 43 18 09 00 00 00 	movl   $0x9,0x18(%ebx)
43a04c:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
43a050:	89 43 20             	mov    %eax,0x20(%ebx)
43a053:	e9 79 fe ff ff       	jmp    0x439ed1
43a058:	53                   	push   %ebx
43a059:	57                   	push   %edi
43a05a:	e8 aa c5 fe ff       	call   0x426609
43a05f:	59                   	pop    %ecx
43a060:	59                   	pop    %ecx
43a061:	e9 6b fe ff ff       	jmp    0x439ed1
43a066:	8b 04 95 38 5d 45 00 	mov    0x455d38(,%edx,4),%eax
43a06d:	f6 44 08 28 40       	testb  $0x40,0x28(%eax,%ecx,1)
43a072:	74 08                	je     0x43a07c
43a074:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a077:	80 38 1a             	cmpb   $0x1a,(%eax)
43a07a:	74 1c                	je     0x43a098
43a07c:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
43a080:	c7 43 18 1c 00 00 00 	movl   $0x1c,0x18(%ebx)
43a087:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
43a08b:	89 73 20             	mov    %esi,0x20(%ebx)
43a08e:	e9 3e fe ff ff       	jmp    0x439ed1
43a093:	2b 45 e4             	sub    -0x1c(%ebp),%eax
43a096:	eb 02                	jmp    0x43a09a
43a098:	33 c0                	xor    %eax,%eax
43a09a:	5f                   	pop    %edi
43a09b:	5e                   	pop    %esi
43a09c:	5b                   	pop    %ebx
43a09d:	c9                   	leave
43a09e:	c3                   	ret
43a09f:	8b ff                	mov    %edi,%edi
43a0a1:	55                   	push   %ebp
43a0a2:	8b ec                	mov    %esp,%ebp
43a0a4:	53                   	push   %ebx
43a0a5:	56                   	push   %esi
43a0a6:	57                   	push   %edi
43a0a7:	33 ff                	xor    %edi,%edi
43a0a9:	bb e3 00 00 00       	mov    $0xe3,%ebx
43a0ae:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
43a0b1:	99                   	cltd
43a0b2:	2b c2                	sub    %edx,%eax
43a0b4:	8b f0                	mov    %eax,%esi
43a0b6:	d1 fe                	sar    $1,%esi
43a0b8:	6a 55                	push   $0x55
43a0ba:	ff 34 f5 58 59 44 00 	push   0x445958(,%esi,8)
43a0c1:	ff 75 08             	push   0x8(%ebp)
43a0c4:	e8 b8 df fe ff       	call   0x428081
43a0c9:	83 c4 0c             	add    $0xc,%esp
43a0cc:	85 c0                	test   %eax,%eax
43a0ce:	74 13                	je     0x43a0e3
43a0d0:	79 05                	jns    0x43a0d7
43a0d2:	8d 5e ff             	lea    -0x1(%esi),%ebx
43a0d5:	eb 03                	jmp    0x43a0da
43a0d7:	8d 7e 01             	lea    0x1(%esi),%edi
43a0da:	3b fb                	cmp    %ebx,%edi
43a0dc:	7e d0                	jle    0x43a0ae
43a0de:	83 c8 ff             	or     $0xffffffff,%eax
43a0e1:	eb 07                	jmp    0x43a0ea
43a0e3:	8b 04 f5 5c 59 44 00 	mov    0x44595c(,%esi,8),%eax
43a0ea:	5f                   	pop    %edi
43a0eb:	5e                   	pop    %esi
43a0ec:	5b                   	pop    %ebx
43a0ed:	5d                   	pop    %ebp
43a0ee:	c3                   	ret
43a0ef:	8b ff                	mov    %edi,%edi
43a0f1:	55                   	push   %ebp
43a0f2:	8b ec                	mov    %esp,%ebp
43a0f4:	8b 4d 08             	mov    0x8(%ebp),%ecx
43a0f7:	53                   	push   %ebx
43a0f8:	56                   	push   %esi
43a0f9:	57                   	push   %edi
43a0fa:	85 c9                	test   %ecx,%ecx
43a0fc:	74 4b                	je     0x43a149
43a0fe:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
43a104:	74 43                	je     0x43a149
43a106:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
43a10c:	74 3b                	je     0x43a149
43a10e:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
43a112:	8b 75 10             	mov    0x10(%ebp),%esi
43a115:	75 04                	jne    0x43a11b
43a117:	85 f6                	test   %esi,%esi
43a119:	7f 2e                	jg     0x43a149
43a11b:	85 f6                	test   %esi,%esi
43a11d:	78 2a                	js     0x43a149
43a11f:	33 ff                	xor    %edi,%edi
43a121:	bb e3 00 00 00       	mov    $0xe3,%ebx
43a126:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
43a129:	99                   	cltd
43a12a:	2b c2                	sub    %edx,%eax
43a12c:	8b d1                	mov    %ecx,%edx
43a12e:	d1 f8                	sar    $1,%eax
43a130:	2b 14 c5 38 48 44 00 	sub    0x444838(,%eax,8),%edx
43a137:	74 17                	je     0x43a150
43a139:	85 d2                	test   %edx,%edx
43a13b:	79 05                	jns    0x43a142
43a13d:	8d 58 ff             	lea    -0x1(%eax),%ebx
43a140:	eb 03                	jmp    0x43a145
43a142:	8d 78 01             	lea    0x1(%eax),%edi
43a145:	3b fb                	cmp    %ebx,%edi
43a147:	7e dd                	jle    0x43a126
43a149:	33 c0                	xor    %eax,%eax
43a14b:	5f                   	pop    %edi
43a14c:	5e                   	pop    %esi
43a14d:	5b                   	pop    %ebx
43a14e:	5d                   	pop    %ebp
43a14f:	c3                   	ret
43a150:	85 c0                	test   %eax,%eax
43a152:	78 f5                	js     0x43a149
43a154:	8b 1c c5 3c 48 44 00 	mov    0x44483c(,%eax,8),%ebx
43a15b:	6a 55                	push   $0x55
43a15d:	53                   	push   %ebx
43a15e:	e8 7c ef fe ff       	call   0x4290df
43a163:	8b f8                	mov    %eax,%edi
43a165:	59                   	pop    %ecx
43a166:	59                   	pop    %ecx
43a167:	85 f6                	test   %esi,%esi
43a169:	7e 15                	jle    0x43a180
43a16b:	3b fe                	cmp    %esi,%edi
43a16d:	7d da                	jge    0x43a149
43a16f:	53                   	push   %ebx
43a170:	56                   	push   %esi
43a171:	ff 75 0c             	push   0xc(%ebp)
43a174:	e8 fd c2 fe ff       	call   0x426476
43a179:	83 c4 0c             	add    $0xc,%esp
43a17c:	85 c0                	test   %eax,%eax
43a17e:	75 05                	jne    0x43a185
43a180:	8d 47 01             	lea    0x1(%edi),%eax
43a183:	eb c6                	jmp    0x43a14b
43a185:	33 c0                	xor    %eax,%eax
43a187:	50                   	push   %eax
43a188:	50                   	push   %eax
43a189:	50                   	push   %eax
43a18a:	50                   	push   %eax
43a18b:	50                   	push   %eax
43a18c:	e8 0b 69 fe ff       	call   0x420a9c
43a191:	cc                   	int3
43a192:	8b ff                	mov    %edi,%edi
43a194:	55                   	push   %ebp
43a195:	8b ec                	mov    %esp,%ebp
43a197:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
43a19b:	74 1d                	je     0x43a1ba
43a19d:	ff 75 08             	push   0x8(%ebp)
43a1a0:	e8 fa fe ff ff       	call   0x43a09f
43a1a5:	59                   	pop    %ecx
43a1a6:	85 c0                	test   %eax,%eax
43a1a8:	78 10                	js     0x43a1ba
43a1aa:	3d e4 00 00 00       	cmp    $0xe4,%eax
43a1af:	73 09                	jae    0x43a1ba
43a1b1:	8b 04 c5 38 48 44 00 	mov    0x444838(,%eax,8),%eax
43a1b8:	5d                   	pop    %ebp
43a1b9:	c3                   	ret
43a1ba:	33 c0                	xor    %eax,%eax
43a1bc:	5d                   	pop    %ebp
43a1bd:	c3                   	ret
43a1be:	8b ff                	mov    %edi,%edi
43a1c0:	55                   	push   %ebp
43a1c1:	8b ec                	mov    %esp,%ebp
43a1c3:	ff 05 68 59 45 00    	incl   0x455968
43a1c9:	56                   	push   %esi
43a1ca:	8b 75 08             	mov    0x8(%ebp),%esi
43a1cd:	57                   	push   %edi
43a1ce:	6a 01                	push   $0x1
43a1d0:	bf 00 10 00 00       	mov    $0x1000,%edi
43a1d5:	57                   	push   %edi
43a1d6:	e8 3f 22 ff ff       	call   0x42c41a
43a1db:	6a 00                	push   $0x0
43a1dd:	89 46 04             	mov    %eax,0x4(%esi)
43a1e0:	e8 92 22 ff ff       	call   0x42c477
43a1e5:	83 c4 0c             	add    $0xc,%esp
43a1e8:	8d 46 0c             	lea    0xc(%esi),%eax
43a1eb:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
43a1ef:	74 08                	je     0x43a1f9
43a1f1:	6a 40                	push   $0x40
43a1f3:	59                   	pop    %ecx
43a1f4:	f0 09 08             	lock or %ecx,(%eax)
43a1f7:	eb 11                	jmp    0x43a20a
43a1f9:	b9 00 04 00 00       	mov    $0x400,%ecx
43a1fe:	f0 09 08             	lock or %ecx,(%eax)
43a201:	8d 46 14             	lea    0x14(%esi),%eax
43a204:	6a 02                	push   $0x2
43a206:	89 46 04             	mov    %eax,0x4(%esi)
43a209:	5f                   	pop    %edi
43a20a:	89 7e 18             	mov    %edi,0x18(%esi)
43a20d:	8b 46 04             	mov    0x4(%esi),%eax
43a210:	83 66 08 00          	andl   $0x0,0x8(%esi)
43a214:	5f                   	pop    %edi
43a215:	89 06                	mov    %eax,(%esi)
43a217:	5e                   	pop    %esi
43a218:	5d                   	pop    %ebp
43a219:	c3                   	ret
43a21a:	8b ff                	mov    %edi,%edi
43a21c:	55                   	push   %ebp
43a21d:	8b ec                	mov    %esp,%ebp
43a21f:	ff 75 14             	push   0x14(%ebp)
43a222:	ff 75 10             	push   0x10(%ebp)
43a225:	ff 75 0c             	push   0xc(%ebp)
43a228:	ff 75 08             	push   0x8(%ebp)
43a22b:	ff 15 28 f1 43 00    	call   *0x43f128
43a231:	5d                   	pop    %ebp
43a232:	c3                   	ret
43a233:	8b ff                	mov    %edi,%edi
43a235:	55                   	push   %ebp
43a236:	8b ec                	mov    %esp,%ebp
43a238:	53                   	push   %ebx
43a239:	56                   	push   %esi
43a23a:	ba 40 80 00 00       	mov    $0x8040,%edx
43a23f:	33 f6                	xor    %esi,%esi
43a241:	57                   	push   %edi
43a242:	8b 7d 08             	mov    0x8(%ebp),%edi
43a245:	8b c7                	mov    %edi,%eax
43a247:	23 c2                	and    %edx,%eax
43a249:	8d 4a c0             	lea    -0x40(%edx),%ecx
43a24c:	66 3b c1             	cmp    %cx,%ax
43a24f:	75 07                	jne    0x43a258
43a251:	bb 00 0c 00 00       	mov    $0xc00,%ebx
43a256:	eb 19                	jmp    0x43a271
43a258:	66 83 f8 40          	cmp    $0x40,%ax
43a25c:	75 07                	jne    0x43a265
43a25e:	bb 00 08 00 00       	mov    $0x800,%ebx
43a263:	eb 0c                	jmp    0x43a271
43a265:	bb 00 04 00 00       	mov    $0x400,%ebx
43a26a:	66 3b c2             	cmp    %dx,%ax
43a26d:	74 02                	je     0x43a271
43a26f:	8b de                	mov    %esi,%ebx
43a271:	8b c7                	mov    %edi,%eax
43a273:	b9 00 60 00 00       	mov    $0x6000,%ecx
43a278:	23 c1                	and    %ecx,%eax
43a27a:	74 25                	je     0x43a2a1
43a27c:	3d 00 20 00 00       	cmp    $0x2000,%eax
43a281:	74 19                	je     0x43a29c
43a283:	3d 00 40 00 00       	cmp    $0x4000,%eax
43a288:	74 0b                	je     0x43a295
43a28a:	3b c1                	cmp    %ecx,%eax
43a28c:	75 13                	jne    0x43a2a1
43a28e:	be 00 03 00 00       	mov    $0x300,%esi
43a293:	eb 0c                	jmp    0x43a2a1
43a295:	be 00 02 00 00       	mov    $0x200,%esi
43a29a:	eb 05                	jmp    0x43a2a1
43a29c:	be 00 01 00 00       	mov    $0x100,%esi
43a2a1:	8b d7                	mov    %edi,%edx
43a2a3:	b9 00 04 00 00       	mov    $0x400,%ecx
43a2a8:	c1 ea 02             	shr    $0x2,%edx
43a2ab:	8b c7                	mov    %edi,%eax
43a2ad:	25 00 08 00 00       	and    $0x800,%eax
43a2b2:	23 d1                	and    %ecx,%edx
43a2b4:	0b d0                	or     %eax,%edx
43a2b6:	8b c7                	mov    %edi,%eax
43a2b8:	23 c1                	and    %ecx,%eax
43a2ba:	c1 ea 02             	shr    $0x2,%edx
43a2bd:	0b c2                	or     %edx,%eax
43a2bf:	8b cf                	mov    %edi,%ecx
43a2c1:	c1 e8 02             	shr    $0x2,%eax
43a2c4:	81 e1 00 02 00 00    	and    $0x200,%ecx
43a2ca:	0b c1                	or     %ecx,%eax
43a2cc:	81 e7 80 01 00 00    	and    $0x180,%edi
43a2d2:	c1 e8 03             	shr    $0x3,%eax
43a2d5:	0b c7                	or     %edi,%eax
43a2d7:	c1 e8 03             	shr    $0x3,%eax
43a2da:	0b c3                	or     %ebx,%eax
43a2dc:	5f                   	pop    %edi
43a2dd:	0b c6                	or     %esi,%eax
43a2df:	5e                   	pop    %esi
43a2e0:	5b                   	pop    %ebx
43a2e1:	5d                   	pop    %ebp
43a2e2:	c3                   	ret
43a2e3:	8b ff                	mov    %edi,%edi
43a2e5:	55                   	push   %ebp
43a2e6:	8b ec                	mov    %esp,%ebp
43a2e8:	51                   	push   %ecx
43a2e9:	53                   	push   %ebx
43a2ea:	56                   	push   %esi
43a2eb:	57                   	push   %edi
43a2ec:	8b 7d 08             	mov    0x8(%ebp),%edi
43a2ef:	ba 00 10 00 00       	mov    $0x1000,%edx
43a2f4:	0f b7 c7             	movzwl %di,%eax
43a2f7:	8b d8                	mov    %eax,%ebx
43a2f9:	89 55 fc             	mov    %edx,-0x4(%ebp)
43a2fc:	23 da                	and    %edx,%ebx
43a2fe:	8b c8                	mov    %eax,%ecx
43a300:	c1 e3 02             	shl    $0x2,%ebx
43a303:	ba 00 02 00 00       	mov    $0x200,%edx
43a308:	6a 00                	push   $0x0
43a30a:	5e                   	pop    %esi
43a30b:	81 e1 00 03 00 00    	and    $0x300,%ecx
43a311:	74 09                	je     0x43a31c
43a313:	3b ca                	cmp    %edx,%ecx
43a315:	74 0c                	je     0x43a323
43a317:	89 75 fc             	mov    %esi,-0x4(%ebp)
43a31a:	eb 07                	jmp    0x43a323
43a31c:	c7 45 fc 00 20 00 00 	movl   $0x2000,-0x4(%ebp)
43a323:	b9 00 0c 00 00       	mov    $0xc00,%ecx
43a328:	23 c1                	and    %ecx,%eax
43a32a:	74 22                	je     0x43a34e
43a32c:	3d 00 04 00 00       	cmp    $0x400,%eax
43a331:	74 16                	je     0x43a349
43a333:	3d 00 08 00 00       	cmp    $0x800,%eax
43a338:	74 0b                	je     0x43a345
43a33a:	3b c1                	cmp    %ecx,%eax
43a33c:	75 10                	jne    0x43a34e
43a33e:	be 00 03 00 00       	mov    $0x300,%esi
43a343:	eb 09                	jmp    0x43a34e
43a345:	8b f2                	mov    %edx,%esi
43a347:	eb 05                	jmp    0x43a34e
43a349:	be 00 01 00 00       	mov    $0x100,%esi
43a34e:	8b d7                	mov    %edi,%edx
43a350:	8b c7                	mov    %edi,%eax
43a352:	83 e0 10             	and    $0x10,%eax
43a355:	c1 ea 02             	shr    $0x2,%edx
43a358:	83 e2 08             	and    $0x8,%edx
43a35b:	8b cf                	mov    %edi,%ecx
43a35d:	0b d0                	or     %eax,%edx
43a35f:	83 e1 02             	and    $0x2,%ecx
43a362:	8b c7                	mov    %edi,%eax
43a364:	c1 ea 02             	shr    $0x2,%edx
43a367:	83 e0 08             	and    $0x8,%eax
43a36a:	c1 e1 03             	shl    $0x3,%ecx
43a36d:	0b d0                	or     %eax,%edx
43a36f:	8b c7                	mov    %edi,%eax
43a371:	83 e0 04             	and    $0x4,%eax
43a374:	d1 ea                	shr    $1,%edx
43a376:	0b c1                	or     %ecx,%eax
43a378:	83 e7 01             	and    $0x1,%edi
43a37b:	03 c0                	add    %eax,%eax
43a37d:	c1 e7 04             	shl    $0x4,%edi
43a380:	0b c2                	or     %edx,%eax
43a382:	0b c7                	or     %edi,%eax