4286bf:	49                   	dec    %ecx
4286c0:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
4286c6:	81 c1 00 80 ff 7f    	add    $0x7fff8000,%ecx
4286cc:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4286cf:	eb 3b                	jmp    0x42870c
4286d1:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
4286d5:	0b 75 a4             	or     -0x5c(%ebp),%esi
4286d8:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
4286dc:	8b 45 f4             	mov    -0xc(%ebp),%eax
4286df:	89 45 e2             	mov    %eax,-0x1e(%ebp)
4286e2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4286e5:	89 45 e6             	mov    %eax,-0x1a(%ebp)
4286e8:	66 89 75 ea          	mov    %si,-0x16(%ebp)
4286ec:	eb 1e                	jmp    0x42870c
4286ee:	33 c0                	xor    %eax,%eax
4286f0:	66 85 db             	test   %bx,%bx
4286f3:	0f 94 c0             	sete   %al
4286f6:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4286fa:	48                   	dec    %eax
4286fb:	25 00 00 00 80       	and    $0x80000000,%eax
428700:	05 00 80 ff 7f       	add    $0x7fff8000,%eax
428705:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
428709:	89 45 e8             	mov    %eax,-0x18(%ebp)
42870c:	f6 45 18 01          	testb  $0x1,0x18(%ebp)
428710:	8b 55 a0             	mov    -0x60(%ebp),%edx
428713:	8b 45 b4             	mov    -0x4c(%ebp),%eax
428716:	8b 7d 14             	mov    0x14(%ebp),%edi
428719:	66 89 02             	mov    %ax,(%edx)
42871c:	74 32                	je     0x428750
42871e:	98                   	cwtl
42871f:	03 f8                	add    %eax,%edi
428721:	85 ff                	test   %edi,%edi
428723:	7f 2b                	jg     0x428750
428725:	33 c0                	xor    %eax,%eax
428727:	66 89 02             	mov    %ax,(%edx)
42872a:	b8 00 80 00 00       	mov    $0x8000,%eax
42872f:	66 39 45 90          	cmp    %ax,-0x70(%ebp)
428733:	c6 42 03 01          	movb   $0x1,0x3(%edx)
428737:	0f 95 c0             	setne  %al
42873a:	fe c8                	dec    %al
42873c:	24 0d                	and    $0xd,%al
42873e:	04 20                	add    $0x20,%al
428740:	88 42 02             	mov    %al,0x2(%edx)
428743:	c6 42 04 30          	movb   $0x30,0x4(%edx)
428747:	c6 42 05 00          	movb   $0x0,0x5(%edx)
42874b:	e9 5e f9 ff ff       	jmp    0x4280ae
428750:	83 ff 15             	cmp    $0x15,%edi
428753:	7e 03                	jle    0x428758
428755:	6a 15                	push   $0x15
428757:	5f                   	pop    %edi
428758:	8b 75 e8             	mov    -0x18(%ebp),%esi
42875b:	c1 ee 10             	shr    $0x10,%esi
42875e:	81 ee fe 3f 00 00    	sub    $0x3ffe,%esi
428764:	33 c0                	xor    %eax,%eax
428766:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
42876a:	c7 45 bc 08 00 00 00 	movl   $0x8,-0x44(%ebp)
428771:	8b 45 e0             	mov    -0x20(%ebp),%eax
428774:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
428777:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
42877a:	d1 65 e0             	shll   $1,-0x20(%ebp)
42877d:	c1 e8 1f             	shr    $0x1f,%eax
428780:	03 db                	add    %ebx,%ebx
428782:	0b d8                	or     %eax,%ebx
428784:	8b 45 e8             	mov    -0x18(%ebp),%eax
428787:	c1 e9 1f             	shr    $0x1f,%ecx
42878a:	03 c0                	add    %eax,%eax
42878c:	0b c1                	or     %ecx,%eax
42878e:	ff 4d bc             	decl   -0x44(%ebp)
428791:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
428794:	89 45 e8             	mov    %eax,-0x18(%ebp)
428797:	75 d8                	jne    0x428771
428799:	85 f6                	test   %esi,%esi
42879b:	7d 32                	jge    0x4287cf
42879d:	f7 de                	neg    %esi
42879f:	81 e6 ff 00 00 00    	and    $0xff,%esi
4287a5:	7e 28                	jle    0x4287cf
4287a7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4287aa:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4287ad:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4287b0:	d1 6d e8             	shrl   $1,-0x18(%ebp)
4287b3:	c1 e0 1f             	shl    $0x1f,%eax
4287b6:	d1 eb                	shr    $1,%ebx
4287b8:	0b d8                	or     %eax,%ebx
4287ba:	8b 45 e0             	mov    -0x20(%ebp),%eax
4287bd:	c1 e1 1f             	shl    $0x1f,%ecx
4287c0:	d1 e8                	shr    $1,%eax
4287c2:	0b c1                	or     %ecx,%eax
4287c4:	4e                   	dec    %esi
4287c5:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4287c8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4287cb:	85 f6                	test   %esi,%esi
4287cd:	7f d8                	jg     0x4287a7
4287cf:	8d 47 01             	lea    0x1(%edi),%eax
4287d2:	8d 5a 04             	lea    0x4(%edx),%ebx
4287d5:	89 5d c0             	mov    %ebx,-0x40(%ebp)
4287d8:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4287db:	85 c0                	test   %eax,%eax
4287dd:	0f 8e b5 00 00 00    	jle    0x428898
4287e3:	8b 55 e0             	mov    -0x20(%ebp),%edx
4287e6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4287e9:	8d 75 e0             	lea    -0x20(%ebp),%esi
4287ec:	8d 7d c4             	lea    -0x3c(%ebp),%edi
4287ef:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4287f0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4287f1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4287f2:	d1 65 e0             	shll   $1,-0x20(%ebp)
4287f5:	8b 7d e0             	mov    -0x20(%ebp),%edi
4287f8:	d1 65 e0             	shll   $1,-0x20(%ebp)
4287fb:	c1 ea 1f             	shr    $0x1f,%edx
4287fe:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
428801:	0b ca                	or     %edx,%ecx
428803:	8b 55 e8             	mov    -0x18(%ebp),%edx
428806:	8b f0                	mov    %eax,%esi
428808:	c1 ee 1f             	shr    $0x1f,%esi
42880b:	03 d2                	add    %edx,%edx
42880d:	0b d6                	or     %esi,%edx
42880f:	8b c1                	mov    %ecx,%eax
428811:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
428814:	c1 e8 1f             	shr    $0x1f,%eax
428817:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
42881a:	8b 55 c4             	mov    -0x3c(%ebp),%edx
42881d:	c1 ef 1f             	shr    $0x1f,%edi
428820:	0b c8                	or     %eax,%ecx
428822:	8b 45 e0             	mov    -0x20(%ebp),%eax
428825:	0b f7                	or     %edi,%esi
428827:	8d 3c 02             	lea    (%edx,%eax,1),%edi
42882a:	3b f8                	cmp    %eax,%edi
42882c:	72 04                	jb     0x428832
42882e:	3b fa                	cmp    %edx,%edi
428830:	73 18                	jae    0x42884a
428832:	8d 46 01             	lea    0x1(%esi),%eax
428835:	33 d2                	xor    %edx,%edx
428837:	3b c6                	cmp    %esi,%eax
428839:	72 05                	jb     0x428840
42883b:	83 f8 01             	cmp    $0x1,%eax
42883e:	73 03                	jae    0x428843
428840:	33 d2                	xor    %edx,%edx
428842:	42                   	inc    %edx
428843:	8b f0                	mov    %eax,%esi
428845:	85 d2                	test   %edx,%edx
428847:	74 01                	je     0x42884a
428849:	41                   	inc    %ecx
42884a:	8b 45 c8             	mov    -0x38(%ebp),%eax
42884d:	8d 14 30             	lea    (%eax,%esi,1),%edx
428850:	89 55 bc             	mov    %edx,-0x44(%ebp)
428853:	3b d6                	cmp    %esi,%edx
428855:	72 04                	jb     0x42885b
428857:	3b d0                	cmp    %eax,%edx
428859:	73 01                	jae    0x42885c
42885b:	41                   	inc    %ecx
42885c:	03 4d cc             	add    -0x34(%ebp),%ecx
42885f:	c1 ea 1f             	shr    $0x1f,%edx
428862:	03 c9                	add    %ecx,%ecx
428864:	0b ca                	or     %edx,%ecx
428866:	8d 34 3f             	lea    (%edi,%edi,1),%esi
428869:	89 75 e0             	mov    %esi,-0x20(%ebp)
42886c:	8b 75 bc             	mov    -0x44(%ebp),%esi
42886f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
428872:	c1 e9 18             	shr    $0x18,%ecx
428875:	03 f6                	add    %esi,%esi
428877:	80 c1 30             	add    $0x30,%cl
42887a:	8b c7                	mov    %edi,%eax
42887c:	c1 e8 1f             	shr    $0x1f,%eax
42887f:	0b f0                	or     %eax,%esi
428881:	88 0b                	mov    %cl,(%ebx)
428883:	43                   	inc    %ebx
428884:	ff 4d b4             	decl   -0x4c(%ebp)
428887:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
42888b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
42888e:	c6 45 eb 00          	movb   $0x0,-0x15(%ebp)
428892:	0f 8f 4b ff ff ff    	jg     0x4287e3
428898:	4b                   	dec    %ebx
428899:	8a 03                	mov    (%ebx),%al
42889b:	4b                   	dec    %ebx
42889c:	3c 35                	cmp    $0x35,%al
42889e:	7d 0e                	jge    0x4288ae
4288a0:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4288a3:	eb 44                	jmp    0x4288e9
4288a5:	80 3b 39             	cmpb   $0x39,(%ebx)
4288a8:	75 09                	jne    0x4288b3
4288aa:	c6 03 30             	movb   $0x30,(%ebx)
4288ad:	4b                   	dec    %ebx
4288ae:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
4288b1:	73 f2                	jae    0x4288a5
4288b3:	8b 45 a0             	mov    -0x60(%ebp),%eax
4288b6:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
4288b9:	73 04                	jae    0x4288bf
4288bb:	43                   	inc    %ebx
4288bc:	66 ff 00             	incw   (%eax)
4288bf:	fe 03                	incb   (%ebx)
4288c1:	2a d8                	sub    %al,%bl
4288c3:	80 eb 03             	sub    $0x3,%bl
4288c6:	0f be cb             	movsbl %bl,%ecx
4288c9:	88 58 03             	mov    %bl,0x3(%eax)
4288cc:	c6 44 01 04 00       	movb   $0x0,0x4(%ecx,%eax,1)
4288d1:	8b 45 8c             	mov    -0x74(%ebp),%eax
4288d4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4288d7:	5f                   	pop    %edi
4288d8:	5e                   	pop    %esi
4288d9:	33 cd                	xor    %ebp,%ecx
4288db:	5b                   	pop    %ebx
4288dc:	e8 ed 58 ff ff       	call   0x41e1ce
4288e1:	c9                   	leave
4288e2:	c3                   	ret
4288e3:	80 3b 30             	cmpb   $0x30,(%ebx)
4288e6:	75 05                	jne    0x4288ed
4288e8:	4b                   	dec    %ebx
4288e9:	3b d9                	cmp    %ecx,%ebx
4288eb:	73 f6                	jae    0x4288e3
4288ed:	8b 45 a0             	mov    -0x60(%ebp),%eax
4288f0:	3b d9                	cmp    %ecx,%ebx
4288f2:	73 cd                	jae    0x4288c1
4288f4:	33 d2                	xor    %edx,%edx
4288f6:	66 89 10             	mov    %dx,(%eax)
4288f9:	ba 00 80 00 00       	mov    $0x8000,%edx
4288fe:	66 39 55 90          	cmp    %dx,-0x70(%ebp)
428902:	c6 40 03 01          	movb   $0x1,0x3(%eax)
428906:	0f 95 c2             	setne  %dl
428909:	fe ca                	dec    %dl
42890b:	80 e2 0d             	and    $0xd,%dl
42890e:	80 c2 20             	add    $0x20,%dl
428911:	88 50 02             	mov    %dl,0x2(%eax)
428914:	c6 01 30             	movb   $0x30,(%ecx)
428917:	c6 40 05 00          	movb   $0x0,0x5(%eax)
42891b:	e9 8e f7 ff ff       	jmp    0x4280ae
428920:	33 c0                	xor    %eax,%eax
428922:	f6 c3 10             	test   $0x10,%bl
428925:	74 01                	je     0x428928
428927:	40                   	inc    %eax
428928:	f6 c3 08             	test   $0x8,%bl
42892b:	74 03                	je     0x428930
42892d:	83 c8 04             	or     $0x4,%eax
428930:	f6 c3 04             	test   $0x4,%bl
428933:	74 03                	je     0x428938
428935:	83 c8 08             	or     $0x8,%eax
428938:	f6 c3 02             	test   $0x2,%bl
42893b:	74 03                	je     0x428940
42893d:	83 c8 10             	or     $0x10,%eax
428940:	f6 c3 01             	test   $0x1,%bl
428943:	74 03                	je     0x428948
428945:	83 c8 20             	or     $0x20,%eax
428948:	f7 c3 00 00 08 00    	test   $0x80000,%ebx
42894e:	74 03                	je     0x428953
428950:	83 c8 02             	or     $0x2,%eax
428953:	8b cb                	mov    %ebx,%ecx
428955:	ba 00 03 00 00       	mov    $0x300,%edx
42895a:	23 ca                	and    %edx,%ecx
42895c:	56                   	push   %esi
42895d:	be 00 02 00 00       	mov    $0x200,%esi
428962:	74 23                	je     0x428987
428964:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
42896a:	74 16                	je     0x428982
42896c:	3b ce                	cmp    %esi,%ecx
42896e:	74 0b                	je     0x42897b
428970:	3b ca                	cmp    %edx,%ecx
428972:	75 13                	jne    0x428987
428974:	0d 00 0c 00 00       	or     $0xc00,%eax
428979:	eb 0c                	jmp    0x428987
42897b:	0d 00 08 00 00       	or     $0x800,%eax
428980:	eb 05                	jmp    0x428987
428982:	0d 00 04 00 00       	or     $0x400,%eax
428987:	8b cb                	mov    %ebx,%ecx
428989:	81 e1 00 00 03 00    	and    $0x30000,%ecx
42898f:	74 0c                	je     0x42899d
428991:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
428997:	75 06                	jne    0x42899f
428999:	0b c6                	or     %esi,%eax
42899b:	eb 02                	jmp    0x42899f
42899d:	0b c2                	or     %edx,%eax
42899f:	5e                   	pop    %esi
4289a0:	f7 c3 00 00 04 00    	test   $0x40000,%ebx
4289a6:	74 05                	je     0x4289ad
4289a8:	0d 00 10 00 00       	or     $0x1000,%eax
4289ad:	c3                   	ret
4289ae:	33 c0                	xor    %eax,%eax
4289b0:	f6 c2 10             	test   $0x10,%dl
4289b3:	74 05                	je     0x4289ba
4289b5:	b8 80 00 00 00       	mov    $0x80,%eax
4289ba:	53                   	push   %ebx
4289bb:	56                   	push   %esi
4289bc:	57                   	push   %edi
4289bd:	bb 00 02 00 00       	mov    $0x200,%ebx
4289c2:	f6 c2 08             	test   $0x8,%dl
4289c5:	74 02                	je     0x4289c9
4289c7:	0b c3                	or     %ebx,%eax
4289c9:	f6 c2 04             	test   $0x4,%dl
4289cc:	74 05                	je     0x4289d3
4289ce:	0d 00 04 00 00       	or     $0x400,%eax
4289d3:	f6 c2 02             	test   $0x2,%dl
4289d6:	74 05                	je     0x4289dd
4289d8:	0d 00 08 00 00       	or     $0x800,%eax
4289dd:	f6 c2 01             	test   $0x1,%dl
4289e0:	74 05                	je     0x4289e7
4289e2:	0d 00 10 00 00       	or     $0x1000,%eax
4289e7:	bf 00 01 00 00       	mov    $0x100,%edi
4289ec:	f7 c2 00 00 08 00    	test   $0x80000,%edx
4289f2:	74 02                	je     0x4289f6
4289f4:	0b c7                	or     %edi,%eax
4289f6:	8b ca                	mov    %edx,%ecx
4289f8:	be 00 03 00 00       	mov    $0x300,%esi
4289fd:	23 ce                	and    %esi,%ecx
4289ff:	74 1f                	je     0x428a20
428a01:	3b cf                	cmp    %edi,%ecx
428a03:	74 16                	je     0x428a1b
428a05:	3b cb                	cmp    %ebx,%ecx
428a07:	74 0b                	je     0x428a14
428a09:	3b ce                	cmp    %esi,%ecx
428a0b:	75 13                	jne    0x428a20
428a0d:	0d 00 60 00 00       	or     $0x6000,%eax
428a12:	eb 0c                	jmp    0x428a20
428a14:	0d 00 40 00 00       	or     $0x4000,%eax
428a19:	eb 05                	jmp    0x428a20
428a1b:	0d 00 20 00 00       	or     $0x2000,%eax
428a20:	b9 00 00 00 03       	mov    $0x3000000,%ecx
428a25:	5f                   	pop    %edi
428a26:	23 d1                	and    %ecx,%edx
428a28:	5e                   	pop    %esi
428a29:	5b                   	pop    %ebx
428a2a:	81 fa 00 00 00 01    	cmp    $0x1000000,%edx
428a30:	74 16                	je     0x428a48
428a32:	81 fa 00 00 00 02    	cmp    $0x2000000,%edx
428a38:	74 0a                	je     0x428a44
428a3a:	3b d1                	cmp    %ecx,%edx
428a3c:	75 0f                	jne    0x428a4d
428a3e:	0d 00 80 00 00       	or     $0x8000,%eax
428a43:	c3                   	ret
428a44:	83 c8 40             	or     $0x40,%eax
428a47:	c3                   	ret
428a48:	0d 40 80 00 00       	or     $0x8040,%eax
428a4d:	c3                   	ret
428a4e:	8b ff                	mov    %edi,%edi
428a50:	55                   	push   %ebp
428a51:	8b ec                	mov    %esp,%ebp
428a53:	83 ec 14             	sub    $0x14,%esp
428a56:	53                   	push   %ebx
428a57:	56                   	push   %esi
428a58:	57                   	push   %edi
428a59:	9b d9 7d f8          	fstcw  -0x8(%ebp)
428a5d:	8b 5d f8             	mov    -0x8(%ebp),%ebx
428a60:	33 d2                	xor    %edx,%edx
428a62:	f6 c3 01             	test   $0x1,%bl
428a65:	74 03                	je     0x428a6a
428a67:	6a 10                	push   $0x10
428a69:	5a                   	pop    %edx
428a6a:	f6 c3 04             	test   $0x4,%bl
428a6d:	74 03                	je     0x428a72
428a6f:	83 ca 08             	or     $0x8,%edx
428a72:	f6 c3 08             	test   $0x8,%bl
428a75:	74 03                	je     0x428a7a
428a77:	83 ca 04             	or     $0x4,%edx