4380b7:	d1 ee                	shr    $1,%esi
4380b9:	ff 4d a4             	decl   -0x5c(%ebp)
4380bc:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4380bf:	89 55 f0             	mov    %edx,-0x10(%ebp)
4380c2:	75 d7                	jne    0x43809b
4380c4:	6a 00                	push   $0x0
4380c6:	85 ff                	test   %edi,%edi
4380c8:	8b 7d b4             	mov    -0x4c(%ebp),%edi
4380cb:	89 75 f8             	mov    %esi,-0x8(%ebp)
4380ce:	5b                   	pop    %ebx
4380cf:	0f 84 4d ff ff ff    	je     0x438022
4380d5:	33 c0                	xor    %eax,%eax
4380d7:	66 8b ca             	mov    %dx,%cx
4380da:	40                   	inc    %eax
4380db:	66 0b c8             	or     %ax,%cx
4380de:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
4380e2:	8b 55 f0             	mov    -0x10(%ebp),%edx
4380e5:	e9 3c ff ff ff       	jmp    0x438026
4380ea:	66 40                	inc    %ax
4380ec:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
4380f0:	eb 04                	jmp    0x4380f6
4380f2:	40                   	inc    %eax
4380f3:	89 45 f6             	mov    %eax,-0xa(%ebp)
4380f6:	8b 75 f8             	mov    -0x8(%ebp),%esi
4380f9:	eb 04                	jmp    0x4380ff
4380fb:	40                   	inc    %eax
4380fc:	89 45 f2             	mov    %eax,-0xe(%ebp)
4380ff:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
438104:	66 3b f8             	cmp    %ax,%di
438107:	73 20                	jae    0x438129
438109:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
43810d:	0b 7d ac             	or     -0x54(%ebp),%edi
438110:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
438114:	8b 45 f4             	mov    -0xc(%ebp),%eax
438117:	89 45 e2             	mov    %eax,-0x1e(%ebp)
43811a:	89 75 e6             	mov    %esi,-0x1a(%ebp)
43811d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
438120:	8b 75 e0             	mov    -0x20(%ebp),%esi
438123:	66 89 7d ea          	mov    %di,-0x16(%ebp)
438127:	eb 1b                	jmp    0x438144
438129:	33 c0                	xor    %eax,%eax
43812b:	66 39 45 ac          	cmp    %ax,-0x54(%ebp)
43812f:	0f 94 c0             	sete   %al
438132:	48                   	dec    %eax
438133:	25 00 00 00 80       	and    $0x80000000,%eax
438138:	05 00 80 ff 7f       	add    $0x7fff8000,%eax
43813d:	89 45 e8             	mov    %eax,-0x18(%ebp)
438140:	8b f3                	mov    %ebx,%esi
438142:	8b d3                	mov    %ebx,%edx
438144:	f6 45 18 01          	testb  $0x1,0x18(%ebp)
438148:	8b 4d 90             	mov    -0x70(%ebp),%ecx
43814b:	8b 45 b8             	mov    -0x48(%ebp),%eax
43814e:	8b 7d 14             	mov    0x14(%ebp),%edi
438151:	66 89 01             	mov    %ax,(%ecx)
438154:	74 36                	je     0x43818c
438156:	98                   	cwtl
438157:	03 f8                	add    %eax,%edi
438159:	89 7d b8             	mov    %edi,-0x48(%ebp)
43815c:	85 ff                	test   %edi,%edi
43815e:	7f 2f                	jg     0x43818f
438160:	33 c0                	xor    %eax,%eax
438162:	66 89 01             	mov    %ax,(%ecx)
438165:	b8 00 80 00 00       	mov    $0x8000,%eax
43816a:	66 39 45 88          	cmp    %ax,-0x78(%ebp)
43816e:	0f 95 c0             	setne  %al
438171:	fe c8                	dec    %al
438173:	24 0d                	and    $0xd,%al
438175:	04 20                	add    $0x20,%al
438177:	88 41 02             	mov    %al,0x2(%ecx)
43817a:	33 c0                	xor    %eax,%eax
43817c:	40                   	inc    %eax
43817d:	88 41 03             	mov    %al,0x3(%ecx)
438180:	c6 41 04 30          	movb   $0x30,0x4(%ecx)
438184:	88 59 05             	mov    %bl,0x5(%ecx)
438187:	e9 ac 01 00 00       	jmp    0x438338
43818c:	89 7d b8             	mov    %edi,-0x48(%ebp)
43818f:	6a 15                	push   $0x15
438191:	58                   	pop    %eax
438192:	3b f8                	cmp    %eax,%edi
438194:	7e 03                	jle    0x438199
438196:	89 45 b8             	mov    %eax,-0x48(%ebp)
438199:	8b 7d e8             	mov    -0x18(%ebp),%edi
43819c:	c1 ef 10             	shr    $0x10,%edi
43819f:	81 ef fe 3f 00 00    	sub    $0x3ffe,%edi
4381a5:	33 c0                	xor    %eax,%eax
4381a7:	6a 08                	push   $0x8
4381a9:	89 7d 98             	mov    %edi,-0x68(%ebp)
4381ac:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
4381b0:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4381b3:	5f                   	pop    %edi
4381b4:	8b ca                	mov    %edx,%ecx
4381b6:	8b c6                	mov    %esi,%eax
4381b8:	c1 e8 1f             	shr    $0x1f,%eax
4381bb:	c1 e9 1f             	shr    $0x1f,%ecx
4381be:	03 d2                	add    %edx,%edx
4381c0:	03 db                	add    %ebx,%ebx
4381c2:	03 f6                	add    %esi,%esi
4381c4:	0b d9                	or     %ecx,%ebx
4381c6:	0b d0                	or     %eax,%edx
4381c8:	89 75 e0             	mov    %esi,-0x20(%ebp)
4381cb:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4381ce:	4f                   	dec    %edi
4381cf:	75 e3                	jne    0x4381b4
4381d1:	8b 7d 98             	mov    -0x68(%ebp),%edi
4381d4:	6a 00                	push   $0x0
4381d6:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4381d9:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4381dc:	89 75 c0             	mov    %esi,-0x40(%ebp)
4381df:	5b                   	pop    %ebx
4381e0:	85 ff                	test   %edi,%edi
4381e2:	79 37                	jns    0x43821b
4381e4:	f7 df                	neg    %edi
4381e6:	81 e7 ff 00 00 00    	and    $0xff,%edi
4381ec:	7e 2d                	jle    0x43821b
4381ee:	8b 5d bc             	mov    -0x44(%ebp),%ebx
4381f1:	8b ca                	mov    %edx,%ecx
4381f3:	8b c3                	mov    %ebx,%eax
4381f5:	c1 e0 1f             	shl    $0x1f,%eax
4381f8:	c1 e1 1f             	shl    $0x1f,%ecx
4381fb:	d1 ea                	shr    $1,%edx
4381fd:	d1 ee                	shr    $1,%esi
4381ff:	d1 eb                	shr    $1,%ebx
438201:	0b f1                	or     %ecx,%esi
438203:	0b d0                	or     %eax,%edx
438205:	4f                   	dec    %edi
438206:	89 5d e8             	mov    %ebx,-0x18(%ebp)
438209:	89 75 e0             	mov    %esi,-0x20(%ebp)
43820c:	85 ff                	test   %edi,%edi
43820e:	7f e1                	jg     0x4381f1
438210:	89 5d bc             	mov    %ebx,-0x44(%ebp)
438213:	89 55 e4             	mov    %edx,-0x1c(%ebp)
438216:	89 75 c0             	mov    %esi,-0x40(%ebp)
438219:	33 db                	xor    %ebx,%ebx
43821b:	8b 75 90             	mov    -0x70(%ebp),%esi
43821e:	8b 45 b8             	mov    -0x48(%ebp),%eax
438221:	8d 7e 04             	lea    0x4(%esi),%edi
438224:	40                   	inc    %eax
438225:	8b cf                	mov    %edi,%ecx
438227:	89 7d 98             	mov    %edi,-0x68(%ebp)
43822a:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
43822d:	89 45 a8             	mov    %eax,-0x58(%ebp)
438230:	85 c0                	test   %eax,%eax
438232:	0f 8e c8 00 00 00    	jle    0x438300
438238:	8d 75 e0             	lea    -0x20(%ebp),%esi
43823b:	8d 7d c4             	lea    -0x3c(%ebp),%edi
43823e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43823f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
438240:	a5                   	movsl  %ds:(%esi),%es:(%edi)
438241:	8b 7d c0             	mov    -0x40(%ebp),%edi
438244:	8b ca                	mov    %edx,%ecx
438246:	8b c7                	mov    %edi,%eax
438248:	c1 e8 1f             	shr    $0x1f,%eax
43824b:	03 d2                	add    %edx,%edx
43824d:	0b d0                	or     %eax,%edx
43824f:	8b 45 bc             	mov    -0x44(%ebp),%eax
438252:	c1 e9 1f             	shr    $0x1f,%ecx
438255:	8d 34 00             	lea    (%eax,%eax,1),%esi
438258:	0b f1                	or     %ecx,%esi
43825a:	03 ff                	add    %edi,%edi
43825c:	8b c7                	mov    %edi,%eax
43825e:	8b ca                	mov    %edx,%ecx
438260:	c1 e8 1f             	shr    $0x1f,%eax
438263:	03 d2                	add    %edx,%edx
438265:	c1 e9 1f             	shr    $0x1f,%ecx
438268:	0b d0                	or     %eax,%edx
43826a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
43826d:	03 ff                	add    %edi,%edi
43826f:	03 f6                	add    %esi,%esi
438271:	0b f1                	or     %ecx,%esi
438273:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
438276:	89 4d b8             	mov    %ecx,-0x48(%ebp)
438279:	3b cf                	cmp    %edi,%ecx
43827b:	72 04                	jb     0x438281
43827d:	3b c8                	cmp    %eax,%ecx
43827f:	73 1b                	jae    0x43829c
438281:	8d 42 01             	lea    0x1(%edx),%eax
438284:	8b cb                	mov    %ebx,%ecx
438286:	3b c2                	cmp    %edx,%eax
438288:	72 05                	jb     0x43828f
43828a:	83 f8 01             	cmp    $0x1,%eax
43828d:	73 03                	jae    0x438292
43828f:	33 c9                	xor    %ecx,%ecx
438291:	41                   	inc    %ecx
438292:	85 c9                	test   %ecx,%ecx
438294:	8b 4d b8             	mov    -0x48(%ebp),%ecx
438297:	8b d0                	mov    %eax,%edx
438299:	74 01                	je     0x43829c
43829b:	46                   	inc    %esi
43829c:	8b 45 c8             	mov    -0x38(%ebp),%eax
43829f:	8d 3c 10             	lea    (%eax,%edx,1),%edi
4382a2:	3b fa                	cmp    %edx,%edi
4382a4:	72 04                	jb     0x4382aa
4382a6:	3b f8                	cmp    %eax,%edi
4382a8:	73 01                	jae    0x4382ab
4382aa:	46                   	inc    %esi
4382ab:	8b 55 b8             	mov    -0x48(%ebp),%edx
4382ae:	03 75 cc             	add    -0x34(%ebp),%esi
4382b1:	03 d2                	add    %edx,%edx
4382b3:	8b c1                	mov    %ecx,%eax
4382b5:	c1 e8 1f             	shr    $0x1f,%eax
4382b8:	89 55 c0             	mov    %edx,-0x40(%ebp)
4382bb:	89 55 e0             	mov    %edx,-0x20(%ebp)
4382be:	8d 14 3f             	lea    (%edi,%edi,1),%edx
4382c1:	0b d0                	or     %eax,%edx
4382c3:	8b cf                	mov    %edi,%ecx
4382c5:	c1 e9 1f             	shr    $0x1f,%ecx
4382c8:	8d 04 36             	lea    (%esi,%esi,1),%eax
4382cb:	0b c1                	or     %ecx,%eax
4382cd:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4382d0:	89 45 e8             	mov    %eax,-0x18(%ebp)
4382d3:	c1 e8 18             	shr    $0x18,%eax
4382d6:	04 30                	add    $0x30,%al
4382d8:	88 01                	mov    %al,(%ecx)
4382da:	8b 45 a8             	mov    -0x58(%ebp),%eax
4382dd:	41                   	inc    %ecx
4382de:	48                   	dec    %eax
4382df:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4382e2:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
4382e5:	88 5d eb             	mov    %bl,-0x15(%ebp)
4382e8:	89 45 a8             	mov    %eax,-0x58(%ebp)
4382eb:	85 c0                	test   %eax,%eax
4382ed:	7e 0b                	jle    0x4382fa
4382ef:	8b 45 e8             	mov    -0x18(%ebp),%eax
4382f2:	89 45 bc             	mov    %eax,-0x44(%ebp)
4382f5:	e9 3e ff ff ff       	jmp    0x438238
4382fa:	8b 75 90             	mov    -0x70(%ebp),%esi
4382fd:	8b 7d 98             	mov    -0x68(%ebp),%edi
438300:	8a 41 ff             	mov    -0x1(%ecx),%al
438303:	83 e9 02             	sub    $0x2,%ecx
438306:	3c 35                	cmp    $0x35,%al
438308:	7c 43                	jl     0x43834d
43830a:	eb 09                	jmp    0x438315
43830c:	80 39 39             	cmpb   $0x39,(%ecx)
43830f:	75 08                	jne    0x438319
438311:	c6 01 30             	movb   $0x30,(%ecx)
438314:	49                   	dec    %ecx
438315:	3b cf                	cmp    %edi,%ecx
438317:	73 f3                	jae    0x43830c
438319:	3b cf                	cmp    %edi,%ecx
43831b:	73 04                	jae    0x438321
43831d:	41                   	inc    %ecx
43831e:	66 ff 06             	incw   (%esi)
438321:	fe 01                	incb   (%ecx)
438323:	8b 45 90             	mov    -0x70(%ebp),%eax
438326:	2a c8                	sub    %al,%cl
438328:	80 e9 03             	sub    $0x3,%cl
43832b:	88 48 03             	mov    %cl,0x3(%eax)
43832e:	0f be c9             	movsbl %cl,%ecx
438331:	88 5c 01 04          	mov    %bl,0x4(%ecx,%eax,1)
438335:	33 c0                	xor    %eax,%eax
438337:	40                   	inc    %eax
438338:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43833b:	5f                   	pop    %edi
43833c:	5e                   	pop    %esi
43833d:	33 cd                	xor    %ebp,%ecx
43833f:	5b                   	pop    %ebx
438340:	e8 c7 23 ff ff       	call   0x42a70c
438345:	c9                   	leave
438346:	c3                   	ret
438347:	80 39 30             	cmpb   $0x30,(%ecx)
43834a:	75 05                	jne    0x438351
43834c:	49                   	dec    %ecx
43834d:	3b cf                	cmp    %edi,%ecx
43834f:	73 f6                	jae    0x438347
438351:	3b cf                	cmp    %edi,%ecx
438353:	73 ce                	jae    0x438323
438355:	8b 4d 90             	mov    -0x70(%ebp),%ecx
438358:	33 c0                	xor    %eax,%eax
43835a:	66 89 01             	mov    %ax,(%ecx)
43835d:	b8 00 80 00 00       	mov    $0x8000,%eax
438362:	66 39 45 88          	cmp    %ax,-0x78(%ebp)
438366:	0f 95 c0             	setne  %al
438369:	fe c8                	dec    %al
43836b:	24 0d                	and    $0xd,%al
43836d:	04 20                	add    $0x20,%al
43836f:	88 41 02             	mov    %al,0x2(%ecx)
438372:	33 c0                	xor    %eax,%eax
438374:	40                   	inc    %eax
438375:	88 41 03             	mov    %al,0x3(%ecx)
438378:	c6 07 30             	movb   $0x30,(%edi)
43837b:	e9 04 fe ff ff       	jmp    0x438184
438380:	33 db                	xor    %ebx,%ebx
438382:	53                   	push   %ebx
438383:	53                   	push   %ebx
438384:	53                   	push   %ebx
438385:	53                   	push   %ebx
438386:	53                   	push   %ebx
438387:	e8 94 ea fe ff       	call   0x426e20
43838c:	cc                   	int3
43838d:	55                   	push   %ebp
43838e:	8b ec                	mov    %esp,%ebp
438390:	8b 4d 08             	mov    0x8(%ebp),%ecx
438393:	33 c0                	xor    %eax,%eax
438395:	f6 c1 10             	test   $0x10,%cl
438398:	74 05                	je     0x43839f
43839a:	b8 80 00 00 00       	mov    $0x80,%eax
43839f:	53                   	push   %ebx
4383a0:	56                   	push   %esi
4383a1:	57                   	push   %edi
4383a2:	bf 00 02 00 00       	mov    $0x200,%edi
4383a7:	f6 c1 08             	test   $0x8,%cl
4383aa:	74 02                	je     0x4383ae
4383ac:	0b c7                	or     %edi,%eax
4383ae:	f6 c1 04             	test   $0x4,%cl
4383b1:	74 05                	je     0x4383b8
4383b3:	0d 00 04 00 00       	or     $0x400,%eax
4383b8:	f6 c1 02             	test   $0x2,%cl
4383bb:	74 05                	je     0x4383c2
4383bd:	0d 00 08 00 00       	or     $0x800,%eax
4383c2:	f6 c1 01             	test   $0x1,%cl
4383c5:	74 05                	je     0x4383cc
4383c7:	0d 00 10 00 00       	or     $0x1000,%eax
4383cc:	be 00 01 00 00       	mov    $0x100,%esi
4383d1:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
4383d7:	74 02                	je     0x4383db
4383d9:	0b c6                	or     %esi,%eax
4383db:	8b d1                	mov    %ecx,%edx
4383dd:	bb 00 03 00 00       	mov    $0x300,%ebx
4383e2:	23 d3                	and    %ebx,%edx
4383e4:	74 1f                	je     0x438405
4383e6:	3b d6                	cmp    %esi,%edx
4383e8:	74 16                	je     0x438400
4383ea:	3b d7                	cmp    %edi,%edx
4383ec:	74 0b                	je     0x4383f9
4383ee:	3b d3                	cmp    %ebx,%edx
4383f0:	75 13                	jne    0x438405
4383f2:	0d 00 60 00 00       	or     $0x6000,%eax
4383f7:	eb 0c                	jmp    0x438405
4383f9:	0d 00 40 00 00       	or     $0x4000,%eax
4383fe:	eb 05                	jmp    0x438405
438400:	0d 00 20 00 00       	or     $0x2000,%eax
438405:	ba 00 00 00 03       	mov    $0x3000000,%edx
43840a:	5f                   	pop    %edi
43840b:	23 ca                	and    %edx,%ecx
43840d:	5e                   	pop    %esi
43840e:	5b                   	pop    %ebx
43840f:	81 f9 00 00 00 01    	cmp    $0x1000000,%ecx
438415:	74 18                	je     0x43842f
438417:	81 f9 00 00 00 02    	cmp    $0x2000000,%ecx
43841d:	74 0b                	je     0x43842a
43841f:	3b ca                	cmp    %edx,%ecx
438421:	75 11                	jne    0x438434
438423:	0d 00 80 00 00       	or     $0x8000,%eax
438428:	5d                   	pop    %ebp
438429:	c3                   	ret
43842a:	83 c8 40             	or     $0x40,%eax
43842d:	5d                   	pop    %ebp
43842e:	c3                   	ret
43842f:	0d 40 80 00 00       	or     $0x8040,%eax
438434:	5d                   	pop    %ebp