4127ee:	c1 e0 05             	shl    $0x5,%eax
4127f1:	83 c0 07             	add    $0x7,%eax
4127f4:	89 55 dc             	mov    %edx,-0x24(%ebp)
4127f7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4127fa:	33 c0                	xor    %eax,%eax
4127fc:	0b c1                	or     %ecx,%eax
4127fe:	6a 30                	push   $0x30
412800:	58                   	pop    %eax
412801:	75 1e                	jne    0x412821
412803:	88 06                	mov    %al,(%esi)
412805:	8b 43 04             	mov    0x4(%ebx),%eax
412808:	8b 0b                	mov    (%ebx),%ecx
41280a:	25 ff ff 0f 00       	and    $0xfffff,%eax
41280f:	0b c8                	or     %eax,%ecx
412811:	75 05                	jne    0x412818
412813:	89 4d f4             	mov    %ecx,-0xc(%ebp)
412816:	eb 0e                	jmp    0x412826
412818:	c7 45 f4 fe 03 00 00 	movl   $0x3fe,-0xc(%ebp)
41281f:	eb 03                	jmp    0x412824
412821:	c6 06 31             	movb   $0x31,(%esi)
412824:	33 c9                	xor    %ecx,%ecx
412826:	8d 72 01             	lea    0x1(%edx),%esi
412829:	89 75 f8             	mov    %esi,-0x8(%ebp)
41282c:	85 ff                	test   %edi,%edi
41282e:	75 04                	jne    0x412834
412830:	8a c1                	mov    %cl,%al
412832:	eb 0d                	jmp    0x412841
412834:	8b 45 cc             	mov    -0x34(%ebp),%eax
412837:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
41283d:	8b 00                	mov    (%eax),%eax
41283f:	8a 00                	mov    (%eax),%al
412841:	88 02                	mov    %al,(%edx)
412843:	8b 43 04             	mov    0x4(%ebx),%eax
412846:	25 ff ff 0f 00       	and    $0xfffff,%eax
41284b:	89 45 ec             	mov    %eax,-0x14(%ebp)
41284e:	77 08                	ja     0x412858
412850:	39 0b                	cmp    %ecx,(%ebx)
412852:	0f 86 b7 00 00 00    	jbe    0x41290f
412858:	6a 30                	push   $0x30
41285a:	8b d1                	mov    %ecx,%edx
41285c:	b9 00 00 0f 00       	mov    $0xf0000,%ecx
412861:	58                   	pop    %eax
412862:	89 45 f8             	mov    %eax,-0x8(%ebp)
412865:	89 55 f0             	mov    %edx,-0x10(%ebp)
412868:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41286b:	85 ff                	test   %edi,%edi
41286d:	7e 50                	jle    0x4128bf
41286f:	8b 03                	mov    (%ebx),%eax
412871:	23 c2                	and    %edx,%eax
412873:	8b 53 04             	mov    0x4(%ebx),%edx
412876:	23 d1                	and    %ecx,%edx
412878:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41287b:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
412881:	0f bf c9             	movswl %cx,%ecx
412884:	e8 87 6b 00 00       	call   0x419410
412889:	6a 30                	push   $0x30
41288b:	59                   	pop    %ecx
41288c:	66 03 c1             	add    %cx,%ax
41288f:	0f b7 c0             	movzwl %ax,%eax
412892:	83 f8 39             	cmp    $0x39,%eax
412895:	76 03                	jbe    0x41289a
412897:	03 45 e4             	add    -0x1c(%ebp),%eax
41289a:	8b 55 f0             	mov    -0x10(%ebp),%edx
41289d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4128a0:	0f ac ca 04          	shrd   $0x4,%ecx,%edx
4128a4:	88 06                	mov    %al,(%esi)
4128a6:	46                   	inc    %esi
4128a7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4128aa:	c1 e9 04             	shr    $0x4,%ecx
4128ad:	83 e8 04             	sub    $0x4,%eax
4128b0:	4f                   	dec    %edi
4128b1:	89 55 f0             	mov    %edx,-0x10(%ebp)
4128b4:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4128b7:	89 45 f8             	mov    %eax,-0x8(%ebp)
4128ba:	66 85 c0             	test   %ax,%ax
4128bd:	79 ac                	jns    0x41286b
4128bf:	89 75 f8             	mov    %esi,-0x8(%ebp)
4128c2:	66 85 c0             	test   %ax,%ax
4128c5:	78 48                	js     0x41290f
4128c7:	ff 75 2c             	push   0x2c(%ebp)
4128ca:	50                   	push   %eax
4128cb:	51                   	push   %ecx
4128cc:	52                   	push   %edx
4128cd:	53                   	push   %ebx
4128ce:	e8 5a 06 00 00       	call   0x412f2d
4128d3:	83 c4 14             	add    $0x14,%esp
4128d6:	84 c0                	test   %al,%al
4128d8:	74 35                	je     0x41290f
4128da:	6a 30                	push   $0x30
4128dc:	8d 46 ff             	lea    -0x1(%esi),%eax
4128df:	5b                   	pop    %ebx
4128e0:	8a 08                	mov    (%eax),%cl
4128e2:	80 f9 66             	cmp    $0x66,%cl
4128e5:	74 05                	je     0x4128ec
4128e7:	80 f9 46             	cmp    $0x46,%cl
4128ea:	75 05                	jne    0x4128f1
4128ec:	88 18                	mov    %bl,(%eax)
4128ee:	48                   	dec    %eax
4128ef:	eb ef                	jmp    0x4128e0
4128f1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4128f4:	3b 45 dc             	cmp    -0x24(%ebp),%eax
4128f7:	74 13                	je     0x41290c
4128f9:	80 f9 39             	cmp    $0x39,%cl
4128fc:	75 08                	jne    0x412906
4128fe:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
412901:	80 c1 3a             	add    $0x3a,%cl
412904:	eb 02                	jmp    0x412908
412906:	fe c1                	inc    %cl
412908:	88 08                	mov    %cl,(%eax)
41290a:	eb 03                	jmp    0x41290f
41290c:	fe 40 ff             	incb   -0x1(%eax)
41290f:	85 ff                	test   %edi,%edi
412911:	7e 13                	jle    0x412926
412913:	57                   	push   %edi
412914:	6a 30                	push   $0x30
412916:	58                   	pop    %eax
412917:	50                   	push   %eax
412918:	56                   	push   %esi
412919:	e8 f2 67 ff ff       	call   0x409110
41291e:	83 c4 0c             	add    $0xc,%esp
412921:	03 f7                	add    %edi,%esi
412923:	89 75 f8             	mov    %esi,-0x8(%ebp)
412926:	8b 45 dc             	mov    -0x24(%ebp),%eax
412929:	80 38 00             	cmpb   $0x0,(%eax)
41292c:	75 05                	jne    0x412933
41292e:	8b f0                	mov    %eax,%esi
412930:	89 75 f8             	mov    %esi,-0x8(%ebp)
412933:	8a 45 ff             	mov    -0x1(%ebp),%al
412936:	b1 34                	mov    $0x34,%cl
412938:	c0 e0 05             	shl    $0x5,%al
41293b:	04 50                	add    $0x50,%al
41293d:	88 06                	mov    %al,(%esi)
41293f:	8b 03                	mov    (%ebx),%eax
412941:	8b 53 04             	mov    0x4(%ebx),%edx
412944:	e8 c7 6a 00 00       	call   0x419410
412949:	8b c8                	mov    %eax,%ecx
41294b:	33 f6                	xor    %esi,%esi
41294d:	8b 45 f8             	mov    -0x8(%ebp),%eax
412950:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
412956:	2b 4d f4             	sub    -0xc(%ebp),%ecx
412959:	1b f6                	sbb    %esi,%esi
41295b:	8d 50 02             	lea    0x2(%eax),%edx
41295e:	89 55 dc             	mov    %edx,-0x24(%ebp)
412961:	78 0a                	js     0x41296d
412963:	7f 04                	jg     0x412969
412965:	85 c9                	test   %ecx,%ecx
412967:	72 04                	jb     0x41296d
412969:	b3 2b                	mov    $0x2b,%bl
41296b:	eb 0a                	jmp    0x412977
41296d:	f7 d9                	neg    %ecx
41296f:	6a 2d                	push   $0x2d
412971:	83 d6 00             	adc    $0x0,%esi
412974:	f7 de                	neg    %esi
412976:	5b                   	pop    %ebx
412977:	88 58 01             	mov    %bl,0x1(%eax)
41297a:	8b fa                	mov    %edx,%edi
41297c:	6a 30                	push   $0x30
41297e:	58                   	pop    %eax
41297f:	88 02                	mov    %al,(%edx)
412981:	33 c0                	xor    %eax,%eax
412983:	3b f0                	cmp    %eax,%esi
412985:	7c 28                	jl     0x4129af
412987:	bb e8 03 00 00       	mov    $0x3e8,%ebx
41298c:	7f 04                	jg     0x412992
41298e:	3b cb                	cmp    %ebx,%ecx
412990:	72 1d                	jb     0x4129af
412992:	53                   	push   %ebx
412993:	50                   	push   %eax
412994:	53                   	push   %ebx
412995:	56                   	push   %esi
412996:	51                   	push   %ecx
412997:	e8 74 69 00 00       	call   0x419310
41299c:	8b f3                	mov    %ebx,%esi
41299e:	5b                   	pop    %ebx
41299f:	90                   	nop
4129a0:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4129a3:	04 30                	add    $0x30,%al
4129a5:	8b 55 dc             	mov    -0x24(%ebp),%edx
4129a8:	88 02                	mov    %al,(%edx)
4129aa:	8d 7a 01             	lea    0x1(%edx),%edi
4129ad:	33 c0                	xor    %eax,%eax
4129af:	3b fa                	cmp    %edx,%edi
4129b1:	75 0b                	jne    0x4129be
4129b3:	3b f0                	cmp    %eax,%esi
4129b5:	7c 23                	jl     0x4129da
4129b7:	7f 05                	jg     0x4129be
4129b9:	83 f9 64             	cmp    $0x64,%ecx
4129bc:	72 1c                	jb     0x4129da
4129be:	53                   	push   %ebx
4129bf:	50                   	push   %eax
4129c0:	6a 64                	push   $0x64
4129c2:	56                   	push   %esi
4129c3:	51                   	push   %ecx
4129c4:	e8 47 69 00 00       	call   0x419310
4129c9:	8b f3                	mov    %ebx,%esi
4129cb:	5b                   	pop    %ebx
4129cc:	90                   	nop
4129cd:	04 30                	add    $0x30,%al
4129cf:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4129d2:	8b 55 dc             	mov    -0x24(%ebp),%edx
4129d5:	88 07                	mov    %al,(%edi)
4129d7:	47                   	inc    %edi
4129d8:	33 c0                	xor    %eax,%eax
4129da:	3b fa                	cmp    %edx,%edi
4129dc:	75 0b                	jne    0x4129e9
4129de:	3b f0                	cmp    %eax,%esi
4129e0:	7c 1e                	jl     0x412a00
4129e2:	7f 05                	jg     0x4129e9
4129e4:	83 f9 0a             	cmp    $0xa,%ecx
4129e7:	72 17                	jb     0x412a00
4129e9:	53                   	push   %ebx
4129ea:	50                   	push   %eax
4129eb:	6a 0a                	push   $0xa
4129ed:	56                   	push   %esi
4129ee:	51                   	push   %ecx
4129ef:	e8 1c 69 00 00       	call   0x419310
4129f4:	5b                   	pop    %ebx
4129f5:	90                   	nop
4129f6:	04 30                	add    $0x30,%al
4129f8:	89 55 dc             	mov    %edx,-0x24(%ebp)
4129fb:	88 07                	mov    %al,(%edi)
4129fd:	47                   	inc    %edi
4129fe:	33 c0                	xor    %eax,%eax
412a00:	80 c1 30             	add    $0x30,%cl
412a03:	88 0f                	mov    %cl,(%edi)
412a05:	88 47 01             	mov    %al,0x1(%edi)
412a08:	8b f8                	mov    %eax,%edi
412a0a:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)
412a0e:	5e                   	pop    %esi
412a0f:	5b                   	pop    %ebx
412a10:	74 0a                	je     0x412a1c
412a12:	8b 4d c8             	mov    -0x38(%ebp),%ecx
412a15:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
412a1c:	8b c7                	mov    %edi,%eax
412a1e:	5f                   	pop    %edi
412a1f:	c9                   	leave
412a20:	c3                   	ret
412a21:	8b ff                	mov    %edi,%edi
412a23:	55                   	push   %ebp
412a24:	8b ec                	mov    %esp,%ebp
412a26:	83 ec 0c             	sub    $0xc,%esp
412a29:	56                   	push   %esi
412a2a:	8b 75 1c             	mov    0x1c(%ebp),%esi
412a2d:	57                   	push   %edi
412a2e:	8d 7e 01             	lea    0x1(%esi),%edi
412a31:	8d 47 02             	lea    0x2(%edi),%eax
412a34:	3b 45 18             	cmp    0x18(%ebp),%eax
412a37:	72 03                	jb     0x412a3c
412a39:	8b 45 18             	mov    0x18(%ebp),%eax
412a3c:	50                   	push   %eax
412a3d:	ff 75 14             	push   0x14(%ebp)
412a40:	8d 45 f4             	lea    -0xc(%ebp),%eax
412a43:	50                   	push   %eax
412a44:	8b 45 08             	mov    0x8(%ebp),%eax
412a47:	57                   	push   %edi
412a48:	ff 70 04             	push   0x4(%eax)
412a4b:	ff 30                	push   (%eax)
412a4d:	e8 b6 28 00 00       	call   0x415308
412a52:	83 c9 ff             	or     $0xffffffff,%ecx
412a55:	83 c4 18             	add    $0x18,%esp
412a58:	8b d0                	mov    %eax,%edx
412a5a:	39 4d 10             	cmp    %ecx,0x10(%ebp)
412a5d:	74 17                	je     0x412a76
412a5f:	8b 4d 10             	mov    0x10(%ebp),%ecx
412a62:	33 c0                	xor    %eax,%eax
412a64:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
412a68:	0f 94 c0             	sete   %al
412a6b:	2b c8                	sub    %eax,%ecx
412a6d:	33 c0                	xor    %eax,%eax
412a6f:	85 f6                	test   %esi,%esi
412a71:	0f 9f c0             	setg   %al
412a74:	2b c8                	sub    %eax,%ecx
412a76:	ff 75 2c             	push   0x2c(%ebp)
412a79:	8d 45 f4             	lea    -0xc(%ebp),%eax
412a7c:	52                   	push   %edx
412a7d:	50                   	push   %eax
412a7e:	57                   	push   %edi
412a7f:	8b 7d 0c             	mov    0xc(%ebp),%edi
412a82:	51                   	push   %ecx
412a83:	33 c9                	xor    %ecx,%ecx
412a85:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
412a89:	0f 94 c1             	sete   %cl
412a8c:	33 c0                	xor    %eax,%eax
412a8e:	85 f6                	test   %esi,%esi
412a90:	0f 9f c0             	setg   %al
412a93:	03 cf                	add    %edi,%ecx
412a95:	03 c1                	add    %ecx,%eax
412a97:	50                   	push   %eax
412a98:	e8 f4 22 00 00       	call   0x414d91
412a9d:	83 c4 18             	add    $0x18,%esp
412aa0:	85 c0                	test   %eax,%eax
412aa2:	74 05                	je     0x412aa9
412aa4:	c6 07 00             	movb   $0x0,(%edi)
412aa7:	eb 1c                	jmp    0x412ac5
412aa9:	ff 75 28             	push   0x28(%ebp)
412aac:	8d 45 f4             	lea    -0xc(%ebp),%eax
412aaf:	6a 00                	push   $0x0
412ab1:	50                   	push   %eax
412ab2:	ff 75 24             	push   0x24(%ebp)
412ab5:	ff 75 20             	push   0x20(%ebp)
412ab8:	56                   	push   %esi
412ab9:	ff 75 10             	push   0x10(%ebp)
412abc:	57                   	push   %edi
412abd:	e8 07 00 00 00       	call   0x412ac9
412ac2:	83 c4 20             	add    $0x20,%esp
412ac5:	5f                   	pop    %edi
412ac6:	5e                   	pop    %esi
412ac7:	c9                   	leave
412ac8:	c3                   	ret
412ac9:	8b ff                	mov    %edi,%edi
412acb:	55                   	push   %ebp
412acc:	8b ec                	mov    %esp,%ebp
412ace:	83 ec 10             	sub    $0x10,%esp
412ad1:	56                   	push   %esi
412ad2:	57                   	push   %edi
412ad3:	8b 7d 10             	mov    0x10(%ebp),%edi
412ad6:	85 ff                	test   %edi,%edi
412ad8:	7e 04                	jle    0x412ade
412ada:	8b c7                	mov    %edi,%eax
412adc:	eb 02                	jmp    0x412ae0
412ade:	33 c0                	xor    %eax,%eax
412ae0:	83 c0 09             	add    $0x9,%eax
412ae3:	39 45 0c             	cmp    %eax,0xc(%ebp)
412ae6:	77 15                	ja     0x412afd
412ae8:	e8 e6 c1 ff ff       	call   0x40ecd3
412aed:	6a 22                	push   $0x22
412aef:	5e                   	pop    %esi
412af0:	89 30                	mov    %esi,(%eax)
412af2:	e8 1f c1 ff ff       	call   0x40ec16
412af7:	8b c6                	mov    %esi,%eax
412af9:	5f                   	pop    %edi
412afa:	5e                   	pop    %esi
412afb:	c9                   	leave
412afc:	c3                   	ret
412afd:	53                   	push   %ebx
412afe:	ff 75 24             	push   0x24(%ebp)
412b01:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412b04:	e8 41 9f ff ff       	call   0x40ca4a
412b09:	8a 55 20             	mov    0x20(%ebp),%dl
412b0c:	8b 5d 08             	mov    0x8(%ebp),%ebx
412b0f:	84 d2                	test   %dl,%dl
412b11:	74 25                	je     0x412b38
412b13:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
412b16:	33 c0                	xor    %eax,%eax
412b18:	85 ff                	test   %edi,%edi
412b1a:	0f 9f c0             	setg   %al
412b1d:	50                   	push   %eax
412b1e:	33 c0                	xor    %eax,%eax
412b20:	83 39 2d             	cmpl   $0x2d,(%ecx)
412b23:	0f 94 c0             	sete   %al