8f3159:	57                   	push   %edi
8f315a:	8b ce                	mov    %esi,%ecx
8f315c:	e8 c2 be b2 ff       	call   0x41f023
8f3161:	8b 46 04             	mov    0x4(%esi),%eax
8f3164:	f6 00 04             	testb  $0x4,(%eax)
8f3167:	74 0c                	je     0x8f3175
8f3169:	6a 00                	push   $0x0
8f316b:	6a 10                	push   $0x10
8f316d:	57                   	push   %edi
8f316e:	8b ce                	mov    %esi,%ecx
8f3170:	e8 ae be b2 ff       	call   0x41f023
8f3175:	8b 46 04             	mov    0x4(%esi),%eax
8f3178:	f6 00 10             	testb  $0x10,(%eax)
8f317b:	74 0c                	je     0x8f3189
8f317d:	6a 00                	push   $0x0
8f317f:	6a 12                	push   $0x12
8f3181:	57                   	push   %edi
8f3182:	8b ce                	mov    %esi,%ecx
8f3184:	e8 9a be b2 ff       	call   0x41f023
8f3189:	8b 46 04             	mov    0x4(%esi),%eax
8f318c:	f6 00 01             	testb  $0x1,(%eax)
8f318f:	74 11                	je     0x8f31a2
8f3191:	0f b7 40 02          	movzwl 0x2(%eax),%eax
8f3195:	8b ce                	mov    %esi,%ecx
8f3197:	6a 01                	push   $0x1
8f3199:	50                   	push   %eax
8f319a:	57                   	push   %edi
8f319b:	e8 83 be b2 ff       	call   0x41f023
8f31a0:	eb 17                	jmp    0x8f31b9
8f31a2:	66 83 78 02 1b       	cmpw   $0x1b,0x2(%eax)
8f31a7:	74 10                	je     0x8f31b9
8f31a9:	66 0f be 40 02       	movsbw 0x2(%eax),%ax
8f31ae:	8b cf                	mov    %edi,%ecx
8f31b0:	0f b7 c0             	movzwl %ax,%eax
8f31b3:	50                   	push   %eax
8f31b4:	e8 cc 01 b3 ff       	call   0x423385
8f31b9:	5f                   	pop    %edi
8f31ba:	5e                   	pop    %esi
8f31bb:	5d                   	pop    %ebp
8f31bc:	c2 04 00             	ret    $0x4
8f31bf:	cc                   	int3
8f31c0:	cc                   	int3
8f31c1:	cc                   	int3
8f31c2:	cc                   	int3
8f31c3:	cc                   	int3
8f31c4:	cc                   	int3
8f31c5:	cc                   	int3
8f31c6:	cc                   	int3
8f31c7:	cc                   	int3
8f31c8:	cc                   	int3
8f31c9:	cc                   	int3
8f31ca:	cc                   	int3
8f31cb:	cc                   	int3
8f31cc:	cc                   	int3
8f31cd:	cc                   	int3
8f31ce:	cc                   	int3
8f31cf:	cc                   	int3
8f31d0:	cc                   	int3
8f31d1:	cc                   	int3
8f31d2:	cc                   	int3
8f31d3:	cc                   	int3
8f31d4:	cc                   	int3
8f31d5:	cc                   	int3
8f31d6:	cc                   	int3
8f31d7:	cc                   	int3
8f31d8:	cc                   	int3
8f31d9:	cc                   	int3
8f31da:	cc                   	int3
8f31db:	cc                   	int3
8f31dc:	cc                   	int3
8f31dd:	cc                   	int3
8f31de:	cc                   	int3
8f31df:	cc                   	int3
8f31e0:	55                   	push   %ebp
8f31e1:	8b ec                	mov    %esp,%ebp
8f31e3:	56                   	push   %esi
8f31e4:	8b 75 14             	mov    0x14(%ebp),%esi
8f31e7:	85 f6                	test   %esi,%esi
8f31e9:	75 04                	jne    0x8f31ef
8f31eb:	33 c0                	xor    %eax,%eax
8f31ed:	eb 6d                	jmp    0x8f325c
8f31ef:	8b 45 08             	mov    0x8(%ebp),%eax
8f31f2:	85 c0                	test   %eax,%eax
8f31f4:	75 13                	jne    0x8f3209
8f31f6:	e8 74 b6 b4 ff       	call   0x43e86f
8f31fb:	6a 16                	push   $0x16
8f31fd:	5e                   	pop    %esi
8f31fe:	89 30                	mov    %esi,(%eax)
8f3200:	e8 f3 c0 b2 ff       	call   0x41f2f8
8f3205:	8b c6                	mov    %esi,%eax
8f3207:	eb 53                	jmp    0x8f325c
8f3209:	57                   	push   %edi
8f320a:	8b 7d 10             	mov    0x10(%ebp),%edi
8f320d:	85 ff                	test   %edi,%edi
8f320f:	74 14                	je     0x8f3225
8f3211:	39 75 0c             	cmp    %esi,0xc(%ebp)
8f3214:	72 0f                	jb     0x8f3225
8f3216:	56                   	push   %esi
8f3217:	57                   	push   %edi
8f3218:	50                   	push   %eax
8f3219:	e8 64 14 b2 ff       	call   0x414682
8f321e:	83 c4 0c             	add    $0xc,%esp
8f3221:	33 c0                	xor    %eax,%eax
8f3223:	eb 36                	jmp    0x8f325b
8f3225:	ff 75 0c             	push   0xc(%ebp)
8f3228:	6a 00                	push   $0x0
8f322a:	50                   	push   %eax
8f322b:	e8 88 15 b2 ff       	call   0x4147b8
8f3230:	83 c4 0c             	add    $0xc,%esp
8f3233:	85 ff                	test   %edi,%edi
8f3235:	75 09                	jne    0x8f3240
8f3237:	e8 33 b6 b4 ff       	call   0x43e86f
8f323c:	6a 16                	push   $0x16
8f323e:	eb 0c                	jmp    0x8f324c
8f3240:	39 75 0c             	cmp    %esi,0xc(%ebp)
8f3243:	73 13                	jae    0x8f3258
8f3245:	e8 25 b6 b4 ff       	call   0x43e86f
8f324a:	6a 22                	push   $0x22
8f324c:	5e                   	pop    %esi
8f324d:	89 30                	mov    %esi,(%eax)
8f324f:	e8 a4 c0 b2 ff       	call   0x41f2f8
8f3254:	8b c6                	mov    %esi,%eax
8f3256:	eb 03                	jmp    0x8f325b
8f3258:	6a 16                	push   $0x16
8f325a:	58                   	pop    %eax
8f325b:	5f                   	pop    %edi
8f325c:	5e                   	pop    %esi
8f325d:	5d                   	pop    %ebp
8f325e:	c3                   	ret
8f325f:	cc                   	int3
8f3260:	cc                   	int3
8f3261:	cc                   	int3
8f3262:	cc                   	int3
8f3263:	cc                   	int3
8f3264:	cc                   	int3
8f3265:	cc                   	int3
8f3266:	cc                   	int3
8f3267:	cc                   	int3
8f3268:	cc                   	int3
8f3269:	cc                   	int3
8f326a:	cc                   	int3
8f326b:	cc                   	int3
8f326c:	cc                   	int3
8f326d:	cc                   	int3
8f326e:	cc                   	int3
8f326f:	cc                   	int3
8f3270:	cc                   	int3
8f3271:	cc                   	int3
8f3272:	cc                   	int3
8f3273:	cc                   	int3
8f3274:	cc                   	int3
8f3275:	cc                   	int3
8f3276:	cc                   	int3
8f3277:	cc                   	int3
8f3278:	cc                   	int3
8f3279:	cc                   	int3
8f327a:	cc                   	int3
8f327b:	cc                   	int3
8f327c:	cc                   	int3
8f327d:	cc                   	int3
8f327e:	55                   	push   %ebp
8f327f:	8b ec                	mov    %esp,%ebp
8f3281:	8b 45 14             	mov    0x14(%ebp),%eax
8f3284:	56                   	push   %esi
8f3285:	85 c0                	test   %eax,%eax
8f3287:	74 3c                	je     0x8f32c5
8f3289:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
8f328d:	75 13                	jne    0x8f32a2
8f328f:	e8 db b5 b4 ff       	call   0x43e86f
8f3294:	6a 16                	push   $0x16
8f3296:	5e                   	pop    %esi
8f3297:	89 30                	mov    %esi,(%eax)
8f3299:	e8 5a c0 b2 ff       	call   0x41f2f8
8f329e:	8b c6                	mov    %esi,%eax
8f32a0:	eb 25                	jmp    0x8f32c7
8f32a2:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
8f32a6:	74 e7                	je     0x8f328f
8f32a8:	39 45 0c             	cmp    %eax,0xc(%ebp)
8f32ab:	73 09                	jae    0x8f32b6
8f32ad:	e8 bd b5 b4 ff       	call   0x43e86f
8f32b2:	6a 22                	push   $0x22
8f32b4:	eb e0                	jmp    0x8f3296
8f32b6:	50                   	push   %eax
8f32b7:	ff 75 10             	push   0x10(%ebp)
8f32ba:	ff 75 08             	push   0x8(%ebp)
8f32bd:	e8 c0 b8 b2 ff       	call   0x41eb82
8f32c2:	83 c4 0c             	add    $0xc,%esp
8f32c5:	33 c0                	xor    %eax,%eax
8f32c7:	5e                   	pop    %esi
8f32c8:	5d                   	pop    %ebp
8f32c9:	c3                   	ret
8f32ca:	cc                   	int3
8f32cb:	cc                   	int3
8f32cc:	cc                   	int3
8f32cd:	cc                   	int3
8f32ce:	cc                   	int3
8f32cf:	cc                   	int3
8f32d0:	cc                   	int3
8f32d1:	cc                   	int3
8f32d2:	cc                   	int3
8f32d3:	cc                   	int3
8f32d4:	cc                   	int3
8f32d5:	cc                   	int3
8f32d6:	cc                   	int3
8f32d7:	cc                   	int3
8f32d8:	cc                   	int3
8f32d9:	cc                   	int3
8f32da:	cc                   	int3
8f32db:	cc                   	int3
8f32dc:	cc                   	int3
8f32dd:	c7 01 0c cc c4 00    	movl   $0xc4cc0c,(%ecx)
8f32e3:	83 3d 7c ed d7 00 00 	cmpl   $0x0,0xd7ed7c
8f32ea:	0f 85 76 ec b3 ff    	jne    0x431f66
8f32f0:	89 0d 7c ed d7 00    	mov    %ecx,0xd7ed7c
8f32f6:	8b c1                	mov    %ecx,%eax
8f32f8:	c3                   	ret
8f32f9:	cc                   	int3
8f32fa:	cc                   	int3
8f32fb:	cc                   	int3
8f32fc:	cc                   	int3
8f32fd:	cc                   	int3
8f32fe:	cc                   	int3
8f32ff:	cc                   	int3
8f3300:	c7 01 0c cc c4 00    	movl   $0xc4cc0c,(%ecx)
8f3306:	83 25 7c ed d7 00 00 	andl   $0x0,0xd7ed7c
8f330d:	c3                   	ret
8f330e:	cc                   	int3
8f330f:	cc                   	int3
8f3310:	cc                   	int3
8f3311:	55                   	push   %ebp
8f3312:	8b ec                	mov    %esp,%ebp
8f3314:	56                   	push   %esi
8f3315:	8b f1                	mov    %ecx,%esi
8f3317:	c7 06 0c cc c4 00    	movl   $0xc4cc0c,(%esi)
8f331d:	83 25 7c ed d7 00 00 	andl   $0x0,0xd7ed7c
8f3324:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
8f3328:	74 18                	je     0x8f3342
8f332a:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
8f332e:	75 08                	jne    0x8f3338
8f3330:	56                   	push   %esi
8f3331:	e8 59 e4 b0 ff       	call   0x40178f
8f3336:	eb 09                	jmp    0x8f3341
8f3338:	6a 04                	push   $0x4
8f333a:	56                   	push   %esi
8f333b:	e8 9a c4 b2 ff       	call   0x41f7da
8f3340:	59                   	pop    %ecx
8f3341:	59                   	pop    %ecx
8f3342:	8b c6                	mov    %esi,%eax
8f3344:	5e                   	pop    %esi
8f3345:	5d                   	pop    %ebp
8f3346:	c2 04 00             	ret    $0x4
8f3349:	cc                   	int3
8f334a:	cc                   	int3
8f334b:	cc                   	int3
8f334c:	cc                   	int3
8f334d:	cc                   	int3
8f334e:	cc                   	int3
8f334f:	cc                   	int3
8f3350:	cc                   	int3
8f3351:	cc                   	int3
8f3352:	cc                   	int3
8f3353:	cc                   	int3
8f3354:	cc                   	int3
8f3355:	cc                   	int3
8f3356:	cc                   	int3
8f3357:	a1 64 ed d7 00       	mov    0xd7ed64,%eax
8f335c:	85 c0                	test   %eax,%eax
8f335e:	74 0e                	je     0x8f336e
8f3360:	50                   	push   %eax
8f3361:	e8 ac b2 b4 ff       	call   0x43e612
8f3366:	83 25 64 ed d7 00 00 	andl   $0x0,0xd7ed64
8f336d:	59                   	pop    %ecx
8f336e:	a1 60 ed d7 00       	mov    0xd7ed60,%eax
8f3373:	85 c0                	test   %eax,%eax
8f3375:	74 0e                	je     0x8f3385
8f3377:	50                   	push   %eax
8f3378:	e8 95 b2 b4 ff       	call   0x43e612
8f337d:	83 25 60 ed d7 00 00 	andl   $0x0,0xd7ed60
8f3384:	59                   	pop    %ecx
8f3385:	c3                   	ret
8f3386:	cc                   	int3
8f3387:	cc                   	int3
8f3388:	cc                   	int3
8f3389:	cc                   	int3
8f338a:	cc                   	int3
8f338b:	cc                   	int3
8f338c:	cc                   	int3
8f338d:	cc                   	int3
8f338e:	cc                   	int3
8f338f:	cc                   	int3
8f3390:	cc                   	int3
8f3391:	6a 1c                	push   $0x1c
8f3393:	b8 f4 53 ba 00       	mov    $0xba53f4,%eax
8f3398:	e8 ee 6e b1 ff       	call   0x40a28b
8f339d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
8f33a0:	8b cb                	mov    %ebx,%ecx
8f33a2:	e8 5b e9 b0 ff       	call   0x401d02
8f33a7:	8b 7d 10             	mov    0x10(%ebp),%edi
8f33aa:	85 ff                	test   %edi,%edi
8f33ac:	75 07                	jne    0x8f33b5
8f33ae:	33 c0                	xor    %eax,%eax
8f33b0:	e9 21 01 00 00       	jmp    0x8f34d6
8f33b5:	8b 07                	mov    (%edi),%eax
8f33b7:	8b b0 ac 01 00 00    	mov    0x1ac(%eax),%esi
8f33bd:	8b ce                	mov    %esi,%ecx
8f33bf:	e8 a1 92 b3 ff       	call   0x42c665
8f33c4:	8b cf                	mov    %edi,%ecx
8f33c6:	ff d6                	call   *%esi
8f33c8:	8b c8                	mov    %eax,%ecx
8f33ca:	85 c9                	test   %ecx,%ecx
8f33cc:	74 e0                	je     0x8f33ae
8f33ce:	8b 45 14             	mov    0x14(%ebp),%eax
8f33d1:	be 68 ed d7 00       	mov    $0xd7ed68,%esi
8f33d6:	85 c0                	test   %eax,%eax
8f33d8:	75 2b                	jne    0x8f3405
8f33da:	be 6c ed d7 00       	mov    $0xd7ed6c,%esi
8f33df:	bf 64 ed d7 00       	mov    $0xd7ed64,%edi
8f33e4:	85 c0                	test   %eax,%eax
8f33e6:	b8 70 ed d7 00       	mov    $0xd7ed70,%eax
8f33eb:	75 05                	jne    0x8f33f2
8f33ed:	b8 74 ed d7 00       	mov    $0xd7ed74,%eax
8f33f2:	51                   	push   %ecx
8f33f3:	56                   	push   %esi
8f33f4:	50                   	push   %eax
8f33f5:	57                   	push   %edi
8f33f6:	e8 c6 a1 b1 ff       	call   0x40d5c1
8f33fb:	83 3f 00             	cmpl   $0x0,(%edi)
8f33fe:	75 0c                	jne    0x8f340c
8f3400:	e8 61 eb b3 ff       	call   0x431f66
8f3405:	bf 60 ed d7 00       	mov    $0xd7ed60,%edi
8f340a:	eb d8                	jmp    0x8f33e4
8f340c:	33 c0                	xor    %eax,%eax
8f340e:	33 c9                	xor    %ecx,%ecx
8f3410:	89 45 ec             	mov    %eax,-0x14(%ebp)
8f3413:	89 4d e8             	mov    %ecx,-0x18(%ebp)
8f3416:	39 06                	cmp    %eax,(%esi)
8f3418:	0f 8e b8 00 00 00    	jle    0x8f34d6
8f341e:	33 d2                	xor    %edx,%edx
8f3420:	89 55 e4             	mov    %edx,-0x1c(%ebp)
8f3423:	8b 07                	mov    (%edi),%eax
8f3425:	03 c2                	add    %edx,%eax
8f3427:	89 45 e0             	mov    %eax,-0x20(%ebp)
8f342a:	0f b7 40 04          	movzwl 0x4(%eax),%eax
8f342e:	3b 45 08             	cmp    0x8(%ebp),%eax
8f3431:	75 7c                	jne    0x8f34af
8f3433:	ff 75 e0             	push   -0x20(%ebp)
8f3436:	8d 4d d8             	lea    -0x28(%ebp),%ecx
8f3439:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
8f3440:	e8 66 76 b1 ff       	call   0x40aaab
8f3445:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)