420946:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
42094c:	89 08                	mov    %ecx,(%eax)
42094e:	33 c0                	xor    %eax,%eax
420950:	eb 65                	jmp    0x4209b7
420952:	8b 75 fc             	mov    -0x4(%ebp),%esi
420955:	56                   	push   %esi
420956:	53                   	push   %ebx
420957:	e8 47 de ff ff       	call   0x41e7a3
42095c:	59                   	pop    %ecx
42095d:	59                   	pop    %ecx
42095e:	84 c0                	test   %al,%al
420960:	74 40                	je     0x4209a2
420962:	8b 45 08             	mov    0x8(%ebp),%eax
420965:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420969:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
420970:	f6 c3 01             	test   $0x1,%bl
420973:	75 05                	jne    0x42097a
420975:	83 ce ff             	or     $0xffffffff,%esi
420978:	eb 2f                	jmp    0x4209a9
42097a:	8b 4d 10             	mov    0x10(%ebp),%ecx
42097d:	f6 c3 02             	test   $0x2,%bl
420980:	74 10                	je     0x420992
420982:	85 c9                	test   %ecx,%ecx
420984:	74 05                	je     0x42098b
420986:	8b 45 0c             	mov    0xc(%ebp),%eax
420989:	89 01                	mov    %eax,(%ecx)
42098b:	b8 00 00 00 80       	mov    $0x80000000,%eax
420990:	eb 25                	jmp    0x4209b7
420992:	85 c9                	test   %ecx,%ecx
420994:	74 05                	je     0x42099b
420996:	8b 45 0c             	mov    0xc(%ebp),%eax
420999:	89 01                	mov    %eax,(%ecx)
42099b:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4209a0:	eb 15                	jmp    0x4209b7
4209a2:	f6 c3 02             	test   $0x2,%bl
4209a5:	74 02                	je     0x4209a9
4209a7:	f7 de                	neg    %esi
4209a9:	8b 55 10             	mov    0x10(%ebp),%edx
4209ac:	85 d2                	test   %edx,%edx
4209ae:	74 05                	je     0x4209b5
4209b0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4209b3:	89 0a                	mov    %ecx,(%edx)
4209b5:	8b c6                	mov    %esi,%eax
4209b7:	5f                   	pop    %edi
4209b8:	5e                   	pop    %esi
4209b9:	5b                   	pop    %ebx
4209ba:	c9                   	leave
4209bb:	c3                   	ret
4209bc:	8b ff                	mov    %edi,%edi
4209be:	56                   	push   %esi
4209bf:	8b f1                	mov    %ecx,%esi
4209c1:	57                   	push   %edi
4209c2:	8b be 04 04 00 00    	mov    0x404(%esi),%edi
4209c8:	e8 5a f6 ff ff       	call   0x420027
4209cd:	85 ff                	test   %edi,%edi
4209cf:	75 04                	jne    0x4209d5
4209d1:	03 c6                	add    %esi,%eax
4209d3:	eb 02                	jmp    0x4209d7
4209d5:	03 c7                	add    %edi,%eax
4209d7:	5f                   	pop    %edi
4209d8:	5e                   	pop    %esi
4209d9:	c3                   	ret
4209da:	8b ff                	mov    %edi,%edi
4209dc:	55                   	push   %ebp
4209dd:	8b ec                	mov    %esp,%ebp
4209df:	83 ec 0c             	sub    $0xc,%esp
4209e2:	53                   	push   %ebx
4209e3:	56                   	push   %esi
4209e4:	8b f1                	mov    %ecx,%esi
4209e6:	57                   	push   %edi
4209e7:	ff 76 28             	push   0x28(%esi)
4209ea:	e8 5d 22 00 00       	call   0x422c4c
4209ef:	59                   	pop    %ecx
4209f0:	8b c8                	mov    %eax,%ecx
4209f2:	89 45 f4             	mov    %eax,-0xc(%ebp)
4209f5:	6a 00                	push   $0x0
4209f7:	5b                   	pop    %ebx
4209f8:	83 e9 01             	sub    $0x1,%ecx
4209fb:	0f 84 99 00 00 00    	je     0x420a9a
420a01:	83 e9 01             	sub    $0x1,%ecx
420a04:	74 75                	je     0x420a7b
420a06:	49                   	dec    %ecx
420a07:	83 e9 01             	sub    $0x1,%ecx
420a0a:	74 46                	je     0x420a52
420a0c:	83 e9 04             	sub    $0x4,%ecx
420a0f:	74 27                	je     0x420a38
420a11:	8b 46 08             	mov    0x8(%esi),%eax
420a14:	83 c0 18             	add    $0x18,%eax
420a17:	c6 40 04 01          	movb   $0x1,0x4(%eax)
420a1b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
420a21:	ff 76 08             	push   0x8(%esi)
420a24:	53                   	push   %ebx
420a25:	53                   	push   %ebx
420a26:	53                   	push   %ebx
420a27:	53                   	push   %ebx
420a28:	53                   	push   %ebx
420a29:	e8 d8 ee ff ff       	call   0x41f906
420a2e:	83 c4 18             	add    $0x18,%esp
420a31:	32 c0                	xor    %al,%al
420a33:	e9 28 01 00 00       	jmp    0x420b60
420a38:	8b 4e 10             	mov    0x10(%esi),%ecx
420a3b:	8b 7e 1c             	mov    0x1c(%esi),%edi
420a3e:	8b c7                	mov    %edi,%eax
420a40:	c1 e8 04             	shr    $0x4,%eax
420a43:	a8 01                	test   $0x1,%al
420a45:	8d 41 08             	lea    0x8(%ecx),%eax
420a48:	89 46 10             	mov    %eax,0x10(%esi)
420a4b:	8b 01                	mov    (%ecx),%eax
420a4d:	8b 51 04             	mov    0x4(%ecx),%edx
420a50:	eb 66                	jmp    0x420ab8
420a52:	8b 7e 1c             	mov    0x1c(%esi),%edi
420a55:	8b c7                	mov    %edi,%eax
420a57:	c1 e8 04             	shr    $0x4,%eax
420a5a:	a8 01                	test   $0x1,%al
420a5c:	74 0d                	je     0x420a6b
420a5e:	8b 46 10             	mov    0x10(%esi),%eax
420a61:	8d 48 04             	lea    0x4(%eax),%ecx
420a64:	89 4e 10             	mov    %ecx,0x10(%esi)
420a67:	8b 00                	mov    (%eax),%eax
420a69:	eb 4c                	jmp    0x420ab7
420a6b:	8b 4e 10             	mov    0x10(%esi),%ecx
420a6e:	89 5d f8             	mov    %ebx,-0x8(%ebp)
420a71:	8d 41 04             	lea    0x4(%ecx),%eax
420a74:	89 46 10             	mov    %eax,0x10(%esi)
420a77:	8b 01                	mov    (%ecx),%eax
420a79:	eb 40                	jmp    0x420abb
420a7b:	8b 7e 1c             	mov    0x1c(%esi),%edi
420a7e:	8b c7                	mov    %edi,%eax
420a80:	8b 4e 10             	mov    0x10(%esi),%ecx
420a83:	c1 e8 04             	shr    $0x4,%eax
420a86:	a8 01                	test   $0x1,%al
420a88:	8d 41 04             	lea    0x4(%ecx),%eax
420a8b:	89 46 10             	mov    %eax,0x10(%esi)
420a8e:	74 05                	je     0x420a95
420a90:	0f bf 01             	movswl (%ecx),%eax
420a93:	eb 22                	jmp    0x420ab7
420a95:	0f b7 01             	movzwl (%ecx),%eax
420a98:	eb 1d                	jmp    0x420ab7
420a9a:	8b 7e 1c             	mov    0x1c(%esi),%edi
420a9d:	8b c7                	mov    %edi,%eax
420a9f:	8b 4e 10             	mov    0x10(%esi),%ecx
420aa2:	c1 e8 04             	shr    $0x4,%eax
420aa5:	a8 01                	test   $0x1,%al
420aa7:	8d 41 04             	lea    0x4(%ecx),%eax
420aaa:	89 46 10             	mov    %eax,0x10(%esi)
420aad:	74 05                	je     0x420ab4
420aaf:	0f be 01             	movsbl (%ecx),%eax
420ab2:	eb 03                	jmp    0x420ab7
420ab4:	0f b6 01             	movzbl (%ecx),%eax
420ab7:	99                   	cltd
420ab8:	89 55 f8             	mov    %edx,-0x8(%ebp)
420abb:	8b 55 f8             	mov    -0x8(%ebp),%edx
420abe:	89 45 fc             	mov    %eax,-0x4(%ebp)
420ac1:	8b c7                	mov    %edi,%eax
420ac3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
420ac6:	c1 e8 04             	shr    $0x4,%eax
420ac9:	a8 01                	test   $0x1,%al
420acb:	74 16                	je     0x420ae3
420acd:	3b d3                	cmp    %ebx,%edx
420acf:	7f 12                	jg     0x420ae3
420ad1:	7c 04                	jl     0x420ad7
420ad3:	3b cb                	cmp    %ebx,%ecx
420ad5:	73 0c                	jae    0x420ae3
420ad7:	f7 d9                	neg    %ecx
420ad9:	13 d3                	adc    %ebx,%edx
420adb:	f7 da                	neg    %edx
420add:	83 cf 40             	or     $0x40,%edi
420ae0:	89 7e 1c             	mov    %edi,0x1c(%esi)
420ae3:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
420ae7:	89 55 f8             	mov    %edx,-0x8(%ebp)
420aea:	89 4d fc             	mov    %ecx,-0x4(%ebp)
420aed:	7d 09                	jge    0x420af8
420aef:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
420af6:	eb 1a                	jmp    0x420b12
420af8:	ff 76 08             	push   0x8(%esi)
420afb:	83 e7 f7             	and    $0xfffffff7,%edi
420afe:	8d 4e 3c             	lea    0x3c(%esi),%ecx
420b01:	ff 76 24             	push   0x24(%esi)
420b04:	89 7e 1c             	mov    %edi,0x1c(%esi)
420b07:	e8 4c f5 ff ff       	call   0x420058
420b0c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
420b0f:	8b 55 f8             	mov    -0x8(%ebp),%edx
420b12:	8b c1                	mov    %ecx,%eax
420b14:	0b c2                	or     %edx,%eax
420b16:	75 04                	jne    0x420b1c
420b18:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
420b1c:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
420b20:	ff 75 08             	push   0x8(%ebp)
420b23:	88 5e 38             	mov    %bl,0x38(%esi)
420b26:	75 0b                	jne    0x420b33
420b28:	52                   	push   %edx
420b29:	51                   	push   %ecx
420b2a:	8b ce                	mov    %esi,%ecx
420b2c:	e8 06 0b 00 00       	call   0x421637
420b31:	eb 08                	jmp    0x420b3b
420b33:	51                   	push   %ecx
420b34:	8b ce                	mov    %esi,%ecx
420b36:	e8 fc 07 00 00       	call   0x421337
420b3b:	8b 46 1c             	mov    0x1c(%esi),%eax
420b3e:	c1 e8 07             	shr    $0x7,%eax
420b41:	a8 01                	test   $0x1,%al
420b43:	74 19                	je     0x420b5e
420b45:	39 5e 34             	cmp    %ebx,0x34(%esi)
420b48:	74 08                	je     0x420b52
420b4a:	8b 46 30             	mov    0x30(%esi),%eax
420b4d:	80 38 30             	cmpb   $0x30,(%eax)
420b50:	74 0c                	je     0x420b5e
420b52:	ff 4e 30             	decl   0x30(%esi)
420b55:	8b 4e 30             	mov    0x30(%esi),%ecx
420b58:	c6 01 30             	movb   $0x30,(%ecx)
420b5b:	ff 46 34             	incl   0x34(%esi)
420b5e:	b0 01                	mov    $0x1,%al
420b60:	5f                   	pop    %edi
420b61:	5e                   	pop    %esi
420b62:	5b                   	pop    %ebx
420b63:	c9                   	leave
420b64:	c2 04 00             	ret    $0x4
420b67:	8b ff                	mov    %edi,%edi
420b69:	55                   	push   %ebp
420b6a:	8b ec                	mov    %esp,%ebp
420b6c:	83 ec 0c             	sub    $0xc,%esp
420b6f:	53                   	push   %ebx
420b70:	56                   	push   %esi
420b71:	8b f1                	mov    %ecx,%esi
420b73:	57                   	push   %edi
420b74:	ff 76 28             	push   0x28(%esi)
420b77:	e8 d0 20 00 00       	call   0x422c4c
420b7c:	59                   	pop    %ecx
420b7d:	8b c8                	mov    %eax,%ecx
420b7f:	89 45 f4             	mov    %eax,-0xc(%ebp)
420b82:	6a 00                	push   $0x0
420b84:	5b                   	pop    %ebx
420b85:	83 e9 01             	sub    $0x1,%ecx
420b88:	0f 84 99 00 00 00    	je     0x420c27
420b8e:	83 e9 01             	sub    $0x1,%ecx
420b91:	74 75                	je     0x420c08
420b93:	49                   	dec    %ecx
420b94:	83 e9 01             	sub    $0x1,%ecx
420b97:	74 46                	je     0x420bdf
420b99:	83 e9 04             	sub    $0x4,%ecx
420b9c:	74 27                	je     0x420bc5
420b9e:	8b 46 08             	mov    0x8(%esi),%eax
420ba1:	83 c0 18             	add    $0x18,%eax
420ba4:	c6 40 04 01          	movb   $0x1,0x4(%eax)
420ba8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
420bae:	ff 76 08             	push   0x8(%esi)
420bb1:	53                   	push   %ebx
420bb2:	53                   	push   %ebx
420bb3:	53                   	push   %ebx
420bb4:	53                   	push   %ebx
420bb5:	53                   	push   %ebx
420bb6:	e8 4b ed ff ff       	call   0x41f906
420bbb:	83 c4 18             	add    $0x18,%esp
420bbe:	32 c0                	xor    %al,%al
420bc0:	e9 2d 01 00 00       	jmp    0x420cf2
420bc5:	8b 4e 10             	mov    0x10(%esi),%ecx
420bc8:	8b 7e 1c             	mov    0x1c(%esi),%edi
420bcb:	8b c7                	mov    %edi,%eax
420bcd:	c1 e8 04             	shr    $0x4,%eax
420bd0:	a8 01                	test   $0x1,%al
420bd2:	8d 41 08             	lea    0x8(%ecx),%eax
420bd5:	89 46 10             	mov    %eax,0x10(%esi)
420bd8:	8b 01                	mov    (%ecx),%eax
420bda:	8b 51 04             	mov    0x4(%ecx),%edx
420bdd:	eb 66                	jmp    0x420c45
420bdf:	8b 7e 1c             	mov    0x1c(%esi),%edi
420be2:	8b c7                	mov    %edi,%eax
420be4:	c1 e8 04             	shr    $0x4,%eax
420be7:	a8 01                	test   $0x1,%al
420be9:	74 0d                	je     0x420bf8
420beb:	8b 46 10             	mov    0x10(%esi),%eax
420bee:	8d 48 04             	lea    0x4(%eax),%ecx
420bf1:	89 4e 10             	mov    %ecx,0x10(%esi)
420bf4:	8b 00                	mov    (%eax),%eax
420bf6:	eb 4c                	jmp    0x420c44
420bf8:	8b 4e 10             	mov    0x10(%esi),%ecx
420bfb:	89 5d f8             	mov    %ebx,-0x8(%ebp)
420bfe:	8d 41 04             	lea    0x4(%ecx),%eax
420c01:	89 46 10             	mov    %eax,0x10(%esi)
420c04:	8b 01                	mov    (%ecx),%eax
420c06:	eb 40                	jmp    0x420c48
420c08:	8b 7e 1c             	mov    0x1c(%esi),%edi
420c0b:	8b c7                	mov    %edi,%eax
420c0d:	8b 4e 10             	mov    0x10(%esi),%ecx
420c10:	c1 e8 04             	shr    $0x4,%eax
420c13:	a8 01                	test   $0x1,%al
420c15:	8d 41 04             	lea    0x4(%ecx),%eax
420c18:	89 46 10             	mov    %eax,0x10(%esi)
420c1b:	74 05                	je     0x420c22
420c1d:	0f bf 01             	movswl (%ecx),%eax
420c20:	eb 22                	jmp    0x420c44
420c22:	0f b7 01             	movzwl (%ecx),%eax
420c25:	eb 1d                	jmp    0x420c44
420c27:	8b 7e 1c             	mov    0x1c(%esi),%edi
420c2a:	8b c7                	mov    %edi,%eax
420c2c:	8b 4e 10             	mov    0x10(%esi),%ecx
420c2f:	c1 e8 04             	shr    $0x4,%eax
420c32:	a8 01                	test   $0x1,%al
420c34:	8d 41 04             	lea    0x4(%ecx),%eax
420c37:	89 46 10             	mov    %eax,0x10(%esi)
420c3a:	74 05                	je     0x420c41
420c3c:	0f be 01             	movsbl (%ecx),%eax
420c3f:	eb 03                	jmp    0x420c44
420c41:	0f b6 01             	movzbl (%ecx),%eax
420c44:	99                   	cltd
420c45:	89 55 f8             	mov    %edx,-0x8(%ebp)
420c48:	8b 55 f8             	mov    -0x8(%ebp),%edx
420c4b:	89 45 fc             	mov    %eax,-0x4(%ebp)
420c4e:	8b c7                	mov    %edi,%eax
420c50:	8b 4d fc             	mov    -0x4(%ebp),%ecx
420c53:	c1 e8 04             	shr    $0x4,%eax
420c56:	a8 01                	test   $0x1,%al
420c58:	74 16                	je     0x420c70
420c5a:	3b d3                	cmp    %ebx,%edx
420c5c:	7f 12                	jg     0x420c70
420c5e:	7c 04                	jl     0x420c64
420c60:	3b cb                	cmp    %ebx,%ecx
420c62:	73 0c                	jae    0x420c70
420c64:	f7 d9                	neg    %ecx
420c66:	13 d3                	adc    %ebx,%edx
420c68:	f7 da                	neg    %edx
420c6a:	83 cf 40             	or     $0x40,%edi
420c6d:	89 7e 1c             	mov    %edi,0x1c(%esi)
420c70:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
420c74:	89 55 f8             	mov    %edx,-0x8(%ebp)
420c77:	89 4d fc             	mov    %ecx,-0x4(%ebp)
420c7a:	7d 09                	jge    0x420c85
420c7c:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
420c83:	eb 1a                	jmp    0x420c9f
420c85:	ff 76 08             	push   0x8(%esi)
420c88:	83 e7 f7             	and    $0xfffffff7,%edi
420c8b:	8d 4e 3c             	lea    0x3c(%esi),%ecx
420c8e:	ff 76 24             	push   0x24(%esi)
420c91:	89 7e 1c             	mov    %edi,0x1c(%esi)
420c94:	e8 40 f4 ff ff       	call   0x4200d9
420c99:	8b 4d fc             	mov    -0x4(%ebp),%ecx
420c9c:	8b 55 f8             	mov    -0x8(%ebp),%edx
420c9f:	8b c1                	mov    %ecx,%eax
420ca1:	0b c2                	or     %edx,%eax
420ca3:	75 04                	jne    0x420ca9
420ca5:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
420ca9:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
420cad:	ff 75 08             	push   0x8(%ebp)
420cb0:	c6 46 38 01          	movb   $0x1,0x38(%esi)
420cb4:	75 0b                	jne    0x420cc1
420cb6:	52                   	push   %edx
420cb7:	51                   	push   %ecx
420cb8:	8b ce                	mov    %esi,%ecx
420cba:	e8 f0 09 00 00       	call   0x4216af
420cbf:	eb 08                	jmp    0x420cc9