43a0c4:	f7 d8                	neg    %eax
43a0c6:	5f                   	pop    %edi
43a0c7:	1b c0                	sbb    %eax,%eax
43a0c9:	5e                   	pop    %esi
43a0ca:	f7 d8                	neg    %eax
43a0cc:	5b                   	pop    %ebx
43a0cd:	c9                   	leave
43a0ce:	c3                   	ret
43a0cf:	33 ff                	xor    %edi,%edi
43a0d1:	47                   	inc    %edi
43a0d2:	89 7d dc             	mov    %edi,-0x24(%ebp)
43a0d5:	ff 51 08             	call   *0x8(%ecx)
43a0d8:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a0db:	50                   	push   %eax
43a0dc:	8b 08                	mov    (%eax),%ecx
43a0de:	ff 51 08             	call   *0x8(%ecx)
43a0e1:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a0e4:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a0e7:	e9 39 ff ff ff       	jmp    0x43a025
43a0ec:	55                   	push   %ebp
43a0ed:	8b ec                	mov    %esp,%ebp
43a0ef:	51                   	push   %ecx
43a0f0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43a0f4:	56                   	push   %esi
43a0f5:	57                   	push   %edi
43a0f6:	8b f1                	mov    %ecx,%esi
43a0f8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
43a0fb:	8b 06                	mov    (%esi),%eax
43a0fd:	51                   	push   %ecx
43a0fe:	68 ac d9 48 00       	push   $0x48d9ac
43a103:	56                   	push   %esi
43a104:	bf 05 40 00 80       	mov    $0x80004005,%edi
43a109:	ff 10                	call   *(%eax)
43a10b:	85 c0                	test   %eax,%eax
43a10d:	75 13                	jne    0x43a122
43a10f:	8b 75 fc             	mov    -0x4(%ebp),%esi
43a112:	56                   	push   %esi
43a113:	8b 06                	mov    (%esi),%eax
43a115:	ff 50 20             	call   *0x20(%eax)
43a118:	8b 0e                	mov    (%esi),%ecx
43a11a:	56                   	push   %esi
43a11b:	8b f8                	mov    %eax,%edi
43a11d:	ff 51 08             	call   *0x8(%ecx)
43a120:	eb 25                	jmp    0x43a147
43a122:	8b 06                	mov    (%esi),%eax
43a124:	8d 4d fc             	lea    -0x4(%ebp),%ecx
43a127:	51                   	push   %ecx
43a128:	68 5c d9 48 00       	push   $0x48d95c
43a12d:	56                   	push   %esi
43a12e:	ff 10                	call   *(%eax)
43a130:	85 c0                	test   %eax,%eax
43a132:	75 13                	jne    0x43a147
43a134:	8b 75 fc             	mov    -0x4(%ebp),%esi
43a137:	6a 00                	push   $0x0
43a139:	8b 06                	mov    (%esi),%eax
43a13b:	56                   	push   %esi
43a13c:	ff 50 14             	call   *0x14(%eax)
43a13f:	8b f8                	mov    %eax,%edi
43a141:	8b 06                	mov    (%esi),%eax
43a143:	56                   	push   %esi
43a144:	ff 50 08             	call   *0x8(%eax)
43a147:	8b c7                	mov    %edi,%eax
43a149:	5f                   	pop    %edi
43a14a:	5e                   	pop    %esi
43a14b:	c9                   	leave
43a14c:	c3                   	ret
43a14d:	55                   	push   %ebp
43a14e:	8b ec                	mov    %esp,%ebp
43a150:	81 ec 70 02 00 00    	sub    $0x270,%esp
43a156:	53                   	push   %ebx
43a157:	56                   	push   %esi
43a158:	8b f1                	mov    %ecx,%esi
43a15a:	33 db                	xor    %ebx,%ebx
43a15c:	57                   	push   %edi
43a15d:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43a160:	8b fa                	mov    %edx,%edi
43a162:	89 5d f0             	mov    %ebx,-0x10(%ebp)
43a165:	89 5d f8             	mov    %ebx,-0x8(%ebp)
43a168:	e8 8a 36 fd ff       	call   0x40d7f7
43a16d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43a170:	e8 82 36 fd ff       	call   0x40d7f7
43a175:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a178:	e8 7a 36 fd ff       	call   0x40d7f7
43a17d:	68 ac 28 4b 00       	push   $0x4b28ac
43a182:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43a185:	e8 d9 c8 fc ff       	call   0x406a63
43a18a:	56                   	push   %esi
43a18b:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43a18e:	e8 f9 af fc ff       	call   0x40518c
43a193:	68 d0 28 4b 00       	push   $0x4b28d0
43a198:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43a19b:	e8 ec af fc ff       	call   0x40518c
43a1a0:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43a1a3:	e8 26 1b fd ff       	call   0x40bcce
43a1a8:	85 ff                	test   %edi,%edi
43a1aa:	74 24                	je     0x43a1d0
43a1ac:	6a 5c                	push   $0x5c
43a1ae:	58                   	pop    %eax
43a1af:	66 39 07             	cmp    %ax,(%edi)
43a1b2:	74 1c                	je     0x43a1d0
43a1b4:	66 39 47 02          	cmp    %ax,0x2(%edi)
43a1b8:	74 16                	je     0x43a1d0
43a1ba:	68 e0 28 4b 00       	push   $0x4b28e0
43a1bf:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43a1c2:	e8 9c c8 fc ff       	call   0x406a63
43a1c7:	57                   	push   %edi
43a1c8:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43a1cb:	e8 bc af fc ff       	call   0x40518c
43a1d0:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
43a1d3:	74 4c                	je     0x43a221
43a1d5:	6a 20                	push   $0x20
43a1d7:	8d 45 a0             	lea    -0x60(%ebp),%eax
43a1da:	53                   	push   %ebx
43a1db:	50                   	push   %eax
43a1dc:	e8 6f 6b fe ff       	call   0x420d50
43a1e1:	83 c4 0c             	add    $0xc,%esp
43a1e4:	8d 45 e0             	lea    -0x20(%ebp),%eax
43a1e7:	50                   	push   %eax
43a1e8:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a1eb:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
43a1ee:	e8 fa cc fc ff       	call   0x406eed
43a1f3:	68 e8 28 4b 00       	push   $0x4b28e8
43a1f8:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a1fb:	e8 8c af fc ff       	call   0x40518c
43a200:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a203:	53                   	push   %ebx
43a204:	ff 75 0c             	push   0xc(%ebp)
43a207:	89 45 b4             	mov    %eax,-0x4c(%ebp)
43a20a:	ff 75 10             	push   0x10(%ebp)
43a20d:	8d 45 a0             	lea    -0x60(%ebp),%eax
43a210:	50                   	push   %eax
43a211:	ff 15 f4 d3 48 00    	call   *0x48d3f4
43a217:	8b f0                	mov    %eax,%esi
43a219:	85 f6                	test   %esi,%esi
43a21b:	0f 88 8c 00 00 00    	js     0x43a2ad
43a221:	8d 45 f0             	lea    -0x10(%ebp),%eax
43a224:	50                   	push   %eax
43a225:	68 02 00 00 80       	push   $0x80000002
43a22a:	ff 75 e0             	push   -0x20(%ebp)
43a22d:	ff 15 2c d0 48 00    	call   *0x48d02c
43a233:	8b f0                	mov    %eax,%esi
43a235:	85 f6                	test   %esi,%esi
43a237:	75 74                	jne    0x43a2ad
43a239:	8d 45 f8             	lea    -0x8(%ebp),%eax
43a23c:	50                   	push   %eax
43a23d:	68 19 00 02 00       	push   $0x20019
43a242:	53                   	push   %ebx
43a243:	ff 75 d0             	push   -0x30(%ebp)
43a246:	ff 75 f0             	push   -0x10(%ebp)
43a249:	ff 15 20 d0 48 00    	call   *0x48d020
43a24f:	8b 3d 24 d0 48 00    	mov    0x48d024,%edi
43a255:	8b f0                	mov    %eax,%esi
43a257:	85 f6                	test   %esi,%esi
43a259:	75 4d                	jne    0x43a2a8
43a25b:	8d 45 f4             	lea    -0xc(%ebp),%eax
43a25e:	50                   	push   %eax
43a25f:	8d 85 94 fd ff ff    	lea    -0x26c(%ebp),%eax
43a265:	50                   	push   %eax
43a266:	53                   	push   %ebx
43a267:	53                   	push   %ebx
43a268:	53                   	push   %ebx
43a269:	ff 75 f8             	push   -0x8(%ebp)
43a26c:	c7 45 f4 fe 01 00 00 	movl   $0x1fe,-0xc(%ebp)
43a273:	ff 15 28 d0 48 00    	call   *0x48d028
43a279:	8b f0                	mov    %eax,%esi
43a27b:	85 f6                	test   %esi,%esi
43a27d:	75 24                	jne    0x43a2a3
43a27f:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a282:	ff 75 08             	push   0x8(%ebp)
43a285:	d1 e8                	shr    $1,%eax
43a287:	33 c9                	xor    %ecx,%ecx
43a289:	89 45 f4             	mov    %eax,-0xc(%ebp)
43a28c:	66 89 8c 45 94 fd ff 	mov    %cx,-0x26c(%ebp,%eax,2)
43a293:	ff
43a294:	8d 85 94 fd ff ff    	lea    -0x26c(%ebp),%eax
43a29a:	50                   	push   %eax
43a29b:	ff 15 14 d8 48 00    	call   *0x48d814
43a2a1:	8b f0                	mov    %eax,%esi
43a2a3:	ff 75 f8             	push   -0x8(%ebp)
43a2a6:	ff d7                	call   *%edi
43a2a8:	ff 75 f0             	push   -0x10(%ebp)
43a2ab:	ff d7                	call   *%edi
43a2ad:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a2b0:	e8 82 28 fd ff       	call   0x40cb37
43a2b5:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43a2b8:	e8 7a 28 fd ff       	call   0x40cb37
43a2bd:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43a2c0:	e8 72 28 fd ff       	call   0x40cb37
43a2c5:	5f                   	pop    %edi
43a2c6:	8b c6                	mov    %esi,%eax
43a2c8:	5e                   	pop    %esi
43a2c9:	5b                   	pop    %ebx
43a2ca:	c9                   	leave
43a2cb:	c3                   	ret
43a2cc:	55                   	push   %ebp
43a2cd:	8b ec                	mov    %esp,%ebp
43a2cf:	8b 45 08             	mov    0x8(%ebp),%eax
43a2d2:	83 ec 4c             	sub    $0x4c,%esp
43a2d5:	83 20 00             	andl   $0x0,(%eax)
43a2d8:	53                   	push   %ebx
43a2d9:	33 db                	xor    %ebx,%ebx
43a2db:	57                   	push   %edi
43a2dc:	8b fa                	mov    %edx,%edi
43a2de:	85 c9                	test   %ecx,%ecx
43a2e0:	75 0a                	jne    0x43a2ec
43a2e2:	b8 03 40 00 80       	mov    $0x80004003,%eax
43a2e7:	e9 09 02 00 00       	jmp    0x43a4f5
43a2ec:	8b 01                	mov    (%ecx),%eax
43a2ee:	8d 55 f4             	lea    -0xc(%ebp),%edx
43a2f1:	52                   	push   %edx
43a2f2:	68 00 08 00 00       	push   $0x800
43a2f7:	6a 00                	push   $0x0
43a2f9:	51                   	push   %ecx
43a2fa:	ff 50 10             	call   *0x10(%eax)
43a2fd:	85 c0                	test   %eax,%eax
43a2ff:	0f 88 f0 01 00 00    	js     0x43a4f5
43a305:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a308:	56                   	push   %esi
43a309:	8b 08                	mov    (%eax),%ecx
43a30b:	8d 55 cc             	lea    -0x34(%ebp),%edx
43a30e:	52                   	push   %edx
43a30f:	8d 55 fc             	lea    -0x4(%ebp),%edx
43a312:	52                   	push   %edx
43a313:	50                   	push   %eax
43a314:	ff 51 48             	call   *0x48(%ecx)
43a317:	8b f0                	mov    %eax,%esi
43a319:	85 f6                	test   %esi,%esi
43a31b:	79 10                	jns    0x43a32d
43a31d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a320:	51                   	push   %ecx
43a321:	8b 11                	mov    (%ecx),%edx
43a323:	ff 52 08             	call   *0x8(%edx)
43a326:	8b c6                	mov    %esi,%eax
43a328:	e9 c7 01 00 00       	jmp    0x43a4f4
43a32d:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a330:	85 ff                	test   %edi,%edi
43a332:	74 49                	je     0x43a37d
43a334:	8d 55 f0             	lea    -0x10(%ebp),%edx
43a337:	52                   	push   %edx
43a338:	8d 55 c4             	lea    -0x3c(%ebp),%edx
43a33b:	52                   	push   %edx
43a33c:	8d 55 d8             	lea    -0x28(%ebp),%edx
43a33f:	52                   	push   %edx
43a340:	33 db                	xor    %ebx,%ebx
43a342:	6a 00                	push   $0x0
43a344:	43                   	inc    %ebx
43a345:	89 5d f0             	mov    %ebx,-0x10(%ebp)
43a348:	8b 08                	mov    (%eax),%ecx
43a34a:	57                   	push   %edi
43a34b:	50                   	push   %eax
43a34c:	ff 51 2c             	call   *0x2c(%ecx)
43a34f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43a352:	51                   	push   %ecx
43a353:	8b 11                	mov    (%ecx),%edx
43a355:	8b f0                	mov    %eax,%esi
43a357:	ff 52 08             	call   *0x8(%edx)
43a35a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a35d:	51                   	push   %ecx
43a35e:	8b 11                	mov    (%ecx),%edx
43a360:	ff 52 08             	call   *0x8(%edx)
43a363:	85 f6                	test   %esi,%esi
43a365:	0f 88 20 01 00 00    	js     0x43a48b
43a36b:	66 39 5d f0          	cmp    %bx,-0x10(%ebp)
43a36f:	0f 82 16 01 00 00    	jb     0x43a48b
43a375:	8b 5d d8             	mov    -0x28(%ebp),%ebx
43a378:	e9 0a 01 00 00       	jmp    0x43a487
43a37d:	8b 08                	mov    (%eax),%ecx
43a37f:	50                   	push   %eax
43a380:	ff 51 0c             	call   *0xc(%ecx)
43a383:	33 f6                	xor    %esi,%esi
43a385:	33 ff                	xor    %edi,%edi
43a387:	89 45 d8             	mov    %eax,-0x28(%ebp)
43a38a:	89 75 f0             	mov    %esi,-0x10(%ebp)
43a38d:	85 c0                	test   %eax,%eax
43a38f:	0f 84 e0 00 00 00    	je     0x43a475
43a395:	85 f6                	test   %esi,%esi
43a397:	0f 85 d8 00 00 00    	jne    0x43a475
43a39d:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a3a0:	21 75 e4             	and    %esi,-0x1c(%ebp)
43a3a3:	8b 08                	mov    (%eax),%ecx
43a3a5:	8d 55 e4             	lea    -0x1c(%ebp),%edx
43a3a8:	52                   	push   %edx
43a3a9:	57                   	push   %edi
43a3aa:	50                   	push   %eax
43a3ab:	ff 51 14             	call   *0x14(%ecx)
43a3ae:	83 7d e4 05          	cmpl   $0x5,-0x1c(%ebp)
43a3b2:	0f 85 b3 00 00 00    	jne    0x43a46b
43a3b8:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a3bb:	8d 55 f8             	lea    -0x8(%ebp),%edx
43a3be:	8b 08                	mov    (%eax),%ecx
43a3c0:	52                   	push   %edx
43a3c1:	57                   	push   %edi
43a3c2:	50                   	push   %eax
43a3c3:	ff 51 10             	call   *0x10(%ecx)
43a3c6:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a3c9:	8d 55 d4             	lea    -0x2c(%ebp),%edx
43a3cc:	8b 08                	mov    (%eax),%ecx
43a3ce:	52                   	push   %edx
43a3cf:	50                   	push   %eax
43a3d0:	ff 51 0c             	call   *0xc(%ecx)
43a3d3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
43a3d6:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a3d9:	0f b7 72 30          	movzwl 0x30(%edx),%esi
43a3dd:	8b 08                	mov    (%eax),%ecx
43a3df:	52                   	push   %edx
43a3e0:	50                   	push   %eax
43a3e1:	89 75 dc             	mov    %esi,-0x24(%ebp)
43a3e4:	ff 51 4c             	call   *0x4c(%ecx)
43a3e7:	83 fe 01             	cmp    $0x1,%esi
43a3ea:	76 73                	jbe    0x43a45f
43a3ec:	83 4d ec ff          	orl    $0xffffffff,-0x14(%ebp)
43a3f0:	33 f6                	xor    %esi,%esi
43a3f2:	39 75 dc             	cmp    %esi,-0x24(%ebp)
43a3f5:	76 68                	jbe    0x43a45f
43a3f7:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a3fa:	8d 55 d0             	lea    -0x30(%ebp),%edx
43a3fd:	8b 08                	mov    (%eax),%ecx
43a3ff:	52                   	push   %edx
43a400:	56                   	push   %esi
43a401:	50                   	push   %eax
43a402:	ff 51 20             	call   *0x20(%ecx)
43a405:	85 c0                	test   %eax,%eax
43a407:	75 50                	jne    0x43a459
43a409:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a40c:	8d 55 e8             	lea    -0x18(%ebp),%edx
43a40f:	8b 08                	mov    (%eax),%ecx
43a411:	52                   	push   %edx
43a412:	ff 75 d0             	push   -0x30(%ebp)
43a415:	50                   	push   %eax
43a416:	ff 51 38             	call   *0x38(%ecx)
43a419:	83 7d ec ff          	cmpl   $0xffffffff,-0x14(%ebp)
43a41d:	75 0f                	jne    0x43a42e
43a41f:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a422:	8d 55 ec             	lea    -0x14(%ebp),%edx
43a425:	8b 08                	mov    (%eax),%ecx
43a427:	52                   	push   %edx
43a428:	6a 00                	push   $0x0
43a42a:	50                   	push   %eax
43a42b:	ff 51 48             	call   *0x48(%ecx)
43a42e:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a431:	8d 55 e0             	lea    -0x20(%ebp),%edx
43a434:	8b 08                	mov    (%eax),%ecx
43a436:	52                   	push   %edx
43a437:	56                   	push   %esi
43a438:	50                   	push   %eax
43a439:	ff 51 24             	call   *0x24(%ecx)
43a43c:	8b 45 ec             	mov    -0x14(%ebp),%eax
43a43f:	3b 45 cc             	cmp    -0x34(%ebp),%eax
43a442:	75 0c                	jne    0x43a450
43a444:	f6 45 e0 01          	testb  $0x1,-0x20(%ebp)